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_SPARC_H
9 #define BOOST_PREDEF_ARCHITECTURE_SPARC_H
10 
11 #include <boost/predef/version_number.h>
12 #include <boost/predef/make.h>
13 
14 /* tag::reference[]
15 = `BOOST_ARCH_SPARC`
16 
17 http://en.wikipedia.org/wiki/SPARC[SPARC] architecture.
18 
19 [options="header"]
20 |===
21 | {predef_symbol} | {predef_version}
22 
23 | `+__sparc__+` | {predef_detection}
24 | `+__sparc+` | {predef_detection}
25 
26 | `+__sparcv9+` | 9.0.0
27 | `+__sparc_v9__+` | 9.0.0
28 | `+__sparcv8+` | 8.0.0
29 | `+__sparc_v8__+` | 8.0.0
30 |===
31 */ // end::reference[]
32 
33 #define BOOST_ARCH_SPARC BOOST_VERSION_NUMBER_NOT_AVAILABLE
34 
35 #if defined(__sparc__) || defined(__sparc)
36 #   undef BOOST_ARCH_SPARC
37 #   if !defined(BOOST_ARCH_SPARC) && (defined(__sparcv9) || defined(__sparc_v9__)
38 #       define BOOST_ARCH_SPARC BOOST_VERSION_NUMBER(9,0,0)
39 #   endif
40 #   if !defined(BOOST_ARCH_SPARC) && (defined(__sparcv8) || defined(__sparc_v8__)
41 #       define BOOST_ARCH_SPARC BOOST_VERSION_NUMBER(8,0,0)
42 #   endif
43 #   if !defined(BOOST_ARCH_SPARC)
44 #       define BOOST_ARCH_SPARC BOOST_VERSION_NUMBER_AVAILABLE
45 #   endif
46 #endif
47 
48 #if BOOST_ARCH_SPARC
49 #   define BOOST_ARCH_SPARC_AVAILABLE
50 #endif
51 
52 #if BOOST_ARCH_SPARC
53 #   if BOOST_ARCH_SPARC >= BOOST_VERSION_NUMBER(9,0,0)
54 #       undef BOOST_ARCH_WORD_BITS_64
55 #       define BOOST_ARCH_WORD_BITS_64 BOOST_VERSION_NUMBER_AVAILABLE
56 #   else
57 #       undef BOOST_ARCH_WORD_BITS_32
58 #       define BOOST_ARCH_WORD_BITS_32 BOOST_VERSION_NUMBER_AVAILABLE
59 #   endif
60 #endif
61 
62 #define BOOST_ARCH_SPARC_NAME "SPARC"
63 
64 #endif
65 
66 #include <boost/predef/detail/test.h>
67 BOOST_PREDEF_DECLARE_TEST(BOOST_ARCH_SPARC,BOOST_ARCH_SPARC_NAME)
68