1 /* 2 Copyright Rene Rivera 2008-2015 3 Copyright Franz Detro 2014 4 Copyright (c) Microsoft Corporation 2014 5 Distributed under the Boost Software License, Version 1.0. 6 (See accompanying file LICENSE_1_0.txt or copy at 7 http://www.boost.org/LICENSE_1_0.txt) 8 */ 9 10 #ifndef BOOST_PREDEF_ARCHITECTURE_ARM_H 11 #define BOOST_PREDEF_ARCHITECTURE_ARM_H 12 13 #include <boost/predef/version_number.h> 14 #include <boost/predef/make.h> 15 16 /*` 17 [heading `BOOST_ARCH_ARM`] 18 19 [@http://en.wikipedia.org/wiki/ARM_architecture ARM] architecture. 20 21 [table 22 [[__predef_symbol__] [__predef_version__]] 23 24 [[`__arm__`] [__predef_detection__]] 25 [[`__arm64`] [__predef_detection__]] 26 [[`__thumb__`] [__predef_detection__]] 27 [[`__TARGET_ARCH_ARM`] [__predef_detection__]] 28 [[`__TARGET_ARCH_THUMB`] [__predef_detection__]] 29 [[`_M_ARM`] [__predef_detection__]] 30 [[`_M_ARM64`] [__predef_detection__]] 31 32 [[`__arm64`] [8.0.0]] 33 [[`__TARGET_ARCH_ARM`] [V.0.0]] 34 [[`__TARGET_ARCH_THUMB`] [V.0.0]] 35 [[`__ARM_ARCH`] [V.0.0]] 36 [[`_M_ARM`] [V.0.0]] 37 [[`_M_ARM64`] [8.0.0]] 38 ] 39 */ 40 41 #define BOOST_ARCH_ARM BOOST_VERSION_NUMBER_NOT_AVAILABLE 42 43 #if defined(__arm__) || defined(__arm64) || defined(__thumb__) || \ 44 defined(__TARGET_ARCH_ARM) || defined(__TARGET_ARCH_THUMB) || \ 45 defined(__ARM_ARCH) || \ 46 defined(_M_ARM) || defined(_M_ARM64) 47 # undef BOOST_ARCH_ARM 48 # if !defined(BOOST_ARCH_ARM) && defined(__arm64) 49 # define BOOST_ARCH_ARM BOOST_VERSION_NUMBER(8,0,0) 50 # endif 51 # if !defined(BOOST_ARCH_ARM) && defined(__TARGET_ARCH_ARM) 52 # define BOOST_ARCH_ARM BOOST_VERSION_NUMBER(__TARGET_ARCH_ARM,0,0) 53 # endif 54 # if !defined(BOOST_ARCH_ARM) && defined(__TARGET_ARCH_THUMB) 55 # define BOOST_ARCH_ARM BOOST_VERSION_NUMBER(__TARGET_ARCH_THUMB,0,0) 56 # endif 57 # if !defined(BOOST_ARCH_ARM) && defined(__ARM_ARCH) 58 # define BOOST_ARCH_ARM BOOST_VERSION_NUMBER(__ARM_ARCH,0,0) 59 # endif 60 # if !defined(BOOST_ARCH_ARM) && defined(_M_ARM64) 61 # define BOOST_ARCH_ARM BOOST_VERSION_NUMBER(8,0,0) 62 # endif 63 # if !defined(BOOST_ARCH_ARM) && defined(_M_ARM) 64 # define BOOST_ARCH_ARM BOOST_VERSION_NUMBER(_M_ARM,0,0) 65 # endif 66 # if !defined(BOOST_ARCH_ARM) 67 # define BOOST_ARCH_ARM BOOST_VERSION_NUMBER_AVAILABLE 68 # endif 69 #endif 70 71 #if BOOST_ARCH_ARM 72 # define BOOST_ARCH_ARM_AVAILABLE 73 #endif 74 75 #define BOOST_ARCH_ARM_NAME "ARM" 76 77 #endif 78 79 #include <boost/predef/detail/test.h> 80 BOOST_PREDEF_DECLARE_TEST(BOOST_ARCH_ARM,BOOST_ARCH_ARM_NAME) 81