1 /* 2 Copyright Rene Rivera 2008-2015 3 Distributed under the Boost Software License, Version 1.0. 4 (See accompanying file LICENSE_1_0.txt or copy at 5 http://www.boost.org/LICENSE_1_0.txt) 6 */ 7 8 #ifndef BOOST_PREDEF_ARCHITECTURE_SUPERH_H 9 #define BOOST_PREDEF_ARCHITECTURE_SUPERH_H 10 11 #include <boost/predef/version_number.h> 12 #include <boost/predef/make.h> 13 14 /*` 15 [heading `BOOST_ARCH_SH`] 16 17 [@http://en.wikipedia.org/wiki/SuperH SuperH] architecture: 18 If available versions \[1-5\] are specifically detected. 19 20 [table 21 [[__predef_symbol__] [__predef_version__]] 22 23 [[`__sh__`] [__predef_detection__]] 24 25 [[`__SH5__`] [5.0.0]] 26 [[`__SH4__`] [4.0.0]] 27 [[`__sh3__`] [3.0.0]] 28 [[`__SH3__`] [3.0.0]] 29 [[`__sh2__`] [2.0.0]] 30 [[`__sh1__`] [1.0.0]] 31 ] 32 */ 33 34 #define BOOST_ARCH_SH BOOST_VERSION_NUMBER_NOT_AVAILABLE 35 36 #if defined(__sh__) 37 # undef BOOST_ARCH_SH 38 # if !defined(BOOST_ARCH_SH) && (defined(__SH5__)) 39 # define BOOST_ARCH_SH BOOST_VERSION_NUMBER(5,0,0) 40 # endif 41 # if !defined(BOOST_ARCH_SH) && (defined(__SH4__)) 42 # define BOOST_ARCH_SH BOOST_VERSION_NUMBER(4,0,0) 43 # endif 44 # if !defined(BOOST_ARCH_SH) && (defined(__sh3__) || defined(__SH3__)) 45 # define BOOST_ARCH_SH BOOST_VERSION_NUMBER(3,0,0) 46 # endif 47 # if !defined(BOOST_ARCH_SH) && (defined(__sh2__)) 48 # define BOOST_ARCH_SH BOOST_VERSION_NUMBER(2,0,0) 49 # endif 50 # if !defined(BOOST_ARCH_SH) && (defined(__sh1__)) 51 # define BOOST_ARCH_SH BOOST_VERSION_NUMBER(1,0,0) 52 # endif 53 # if !defined(BOOST_ARCH_SH) 54 # define BOOST_ARCH_SH BOOST_VERSION_NUMBER_AVAILABLE 55 # endif 56 #endif 57 58 #if BOOST_ARCH_SH 59 # define BOOST_ARCH_SH_AVAILABLE 60 #endif 61 62 #define BOOST_ARCH_SH_NAME "SuperH" 63 64 #endif 65 66 #include <boost/predef/detail/test.h> 67 BOOST_PREDEF_DECLARE_TEST(BOOST_ARCH_SH,BOOST_ARCH_SH_NAME) 68