Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 09:48:05

0001 /*
0002 Copyright Rene Rivera 2008-2019
0003 Copyright Franz Detro 2014
0004 Copyright (c) Microsoft Corporation 2014
0005 Distributed under the Boost Software License, Version 1.0.
0006 (See accompanying file LICENSE_1_0.txt or copy at
0007 http://www.boost.org/LICENSE_1_0.txt)
0008 */
0009 
0010 #ifndef BOOST_PREDEF_ARCHITECTURE_ARM_H
0011 #define BOOST_PREDEF_ARCHITECTURE_ARM_H
0012 
0013 #include <boost/predef/version_number.h>
0014 #include <boost/predef/make.h>
0015 
0016 /* tag::reference[]
0017 = `BOOST_ARCH_ARM`
0018 
0019 http://en.wikipedia.org/wiki/ARM_architecture[ARM] architecture.
0020 
0021 [options="header"]
0022 |===
0023 | {predef_symbol} | {predef_version}
0024 
0025 | `+__ARM_ARCH+` | {predef_detection}
0026 | `+__TARGET_ARCH_ARM+` | {predef_detection}
0027 | `+__TARGET_ARCH_THUMB+` | {predef_detection}
0028 | `+_M_ARM+` | {predef_detection}
0029 | `+__arm__+` | {predef_detection}
0030 | `+__arm64+` | {predef_detection}
0031 | `+__thumb__+` | {predef_detection}
0032 | `+_M_ARM64+` | {predef_detection}
0033 | `+__aarch64__+` | {predef_detection}
0034 | `+__AARCH64EL__+` | {predef_detection}
0035 | `+__ARM_ARCH_7__+` | {predef_detection}
0036 | `+__ARM_ARCH_7A__+` | {predef_detection}
0037 | `+__ARM_ARCH_7R__+` | {predef_detection}
0038 | `+__ARM_ARCH_7M__+` | {predef_detection}
0039 | `+__ARM_ARCH_6K__+` | {predef_detection}
0040 | `+__ARM_ARCH_6Z__+` | {predef_detection}
0041 | `+__ARM_ARCH_6KZ__+` | {predef_detection}
0042 | `+__ARM_ARCH_6T2__+` | {predef_detection}
0043 | `+__ARM_ARCH_5TE__+` | {predef_detection}
0044 | `+__ARM_ARCH_5TEJ__+` | {predef_detection}
0045 | `+__ARM_ARCH_4T__+` | {predef_detection}
0046 | `+__ARM_ARCH_4__+` | {predef_detection}
0047 
0048 | `+__ARM_ARCH+` | V.0.0
0049 | `+__TARGET_ARCH_ARM+` | V.0.0
0050 | `+__TARGET_ARCH_THUMB+` | V.0.0
0051 | `+_M_ARM+` | V.0.0
0052 | `+__arm64+` | 8.0.0
0053 | `+_M_ARM64+` | 8.0.0
0054 | `+__aarch64__+` | 8.0.0
0055 | `+__AARCH64EL__+` | 8.0.0
0056 | `+__ARM_ARCH_7__+` | 7.0.0
0057 | `+__ARM_ARCH_7A__+` | 7.0.0
0058 | `+__ARM_ARCH_7R__+` | 7.0.0
0059 | `+__ARM_ARCH_7M__+` | 7.0.0
0060 | `+__ARM_ARCH_6K__+` | 6.0.0
0061 | `+__ARM_ARCH_6Z__+` | 6.0.0
0062 | `+__ARM_ARCH_6KZ__+` | 6.0.0
0063 | `+__ARM_ARCH_6T2__+` | 6.0.0
0064 | `+__ARM_ARCH_5TE__+` | 5.0.0
0065 | `+__ARM_ARCH_5TEJ__+` | 5.0.0
0066 | `+__ARM_ARCH_4T__+` | 4.0.0
0067 | `+__ARM_ARCH_4__+` | 4.0.0
0068 |===
0069 */ // end::reference[]
0070 
0071 #define BOOST_ARCH_ARM BOOST_VERSION_NUMBER_NOT_AVAILABLE
0072 
0073 #if \
0074     defined(__ARM_ARCH) || defined(__TARGET_ARCH_ARM) || \
0075     defined(__TARGET_ARCH_THUMB) || defined(_M_ARM) || \
0076     defined(__arm__) || defined(__arm64) || defined(__thumb__) || \
0077     defined(_M_ARM64) || defined(__aarch64__) || defined(__AARCH64EL__) || \
0078     defined(__ARM_ARCH_7__) || defined(__ARM_ARCH_7A__) || \
0079     defined(__ARM_ARCH_7R__) || defined(__ARM_ARCH_7M__) || \
0080     defined(__ARM_ARCH_6K__) || defined(__ARM_ARCH_6Z__) || \
0081     defined(__ARM_ARCH_6KZ__) || defined(__ARM_ARCH_6T2__) || \
0082     defined(__ARM_ARCH_5TE__) || defined(__ARM_ARCH_5TEJ__) || \
0083     defined(__ARM_ARCH_4T__) || defined(__ARM_ARCH_4__)
0084 #   undef BOOST_ARCH_ARM
0085 #   if !defined(BOOST_ARCH_ARM) && defined(__ARM_ARCH)
0086 #       define BOOST_ARCH_ARM BOOST_VERSION_NUMBER(__ARM_ARCH,0,0)
0087 #   endif
0088 #   if !defined(BOOST_ARCH_ARM) && defined(__TARGET_ARCH_ARM)
0089 #       define BOOST_ARCH_ARM BOOST_VERSION_NUMBER(__TARGET_ARCH_ARM,0,0)
0090 #   endif
0091 #   if !defined(BOOST_ARCH_ARM) && defined(__TARGET_ARCH_THUMB)
0092 #       define BOOST_ARCH_ARM BOOST_VERSION_NUMBER(__TARGET_ARCH_THUMB,0,0)
0093 #   endif
0094 #   if !defined(BOOST_ARCH_ARM) && defined(_M_ARM)
0095 #       define BOOST_ARCH_ARM BOOST_VERSION_NUMBER(_M_ARM,0,0)
0096 #   endif
0097 #   if !defined(BOOST_ARCH_ARM) && ( \
0098         defined(__arm64) || defined(_M_ARM64) || defined(__aarch64__) || \
0099         defined(__AARCH64EL__) )
0100 #       define BOOST_ARCH_ARM BOOST_VERSION_NUMBER(8,0,0)
0101 #   endif
0102 #   if !defined(BOOST_ARCH_ARM) && ( \
0103     defined(__ARM_ARCH_7__) || defined(__ARM_ARCH_7A__) || \
0104     defined(__ARM_ARCH_7R__) || defined(__ARM_ARCH_7M__) )
0105 #       define BOOST_ARCH_ARM BOOST_VERSION_NUMBER(7,0,0)
0106 #   endif
0107 #   if !defined(BOOST_ARCH_ARM) && ( \
0108     defined(__ARM_ARCH_6K__) || defined(__ARM_ARCH_6Z__) || \
0109     defined(__ARM_ARCH_6KZ__) || defined(__ARM_ARCH_6T2__) )
0110 #       define BOOST_ARCH_ARM BOOST_VERSION_NUMBER(6,0,0)
0111 #   endif
0112 #   if !defined(BOOST_ARCH_ARM) && ( \
0113     defined(__ARM_ARCH_5TE__) || defined(__ARM_ARCH_5TEJ__) )
0114 #       define BOOST_ARCH_ARM BOOST_VERSION_NUMBER(5,0,0)
0115 #   endif
0116 #   if !defined(BOOST_ARCH_ARM) && ( \
0117     defined(__ARM_ARCH_4T__) || defined(__ARM_ARCH_4__) )
0118 #       define BOOST_ARCH_ARM BOOST_VERSION_NUMBER(4,0,0)
0119 #   endif
0120 #   if !defined(BOOST_ARCH_ARM)
0121 #       define BOOST_ARCH_ARM BOOST_VERSION_NUMBER_AVAILABLE
0122 #   endif
0123 #endif
0124 
0125 #if BOOST_ARCH_ARM
0126 #   define BOOST_ARCH_ARM_AVAILABLE
0127 #endif
0128 
0129 #if BOOST_ARCH_ARM
0130 #   if BOOST_ARCH_ARM >= BOOST_VERSION_NUMBER(8,0,0)
0131 #       undef BOOST_ARCH_WORD_BITS_64
0132 #       define BOOST_ARCH_WORD_BITS_64 BOOST_VERSION_NUMBER_AVAILABLE
0133 #   else
0134 #       undef BOOST_ARCH_WORD_BITS_32
0135 #       define BOOST_ARCH_WORD_BITS_32 BOOST_VERSION_NUMBER_AVAILABLE
0136 #   endif
0137 #endif
0138 
0139 #define BOOST_ARCH_ARM_NAME "ARM"
0140 
0141 #endif
0142 
0143 #include <boost/predef/detail/test.h>
0144 BOOST_PREDEF_DECLARE_TEST(BOOST_ARCH_ARM,BOOST_ARCH_ARM_NAME)