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