1/*
2Copyright Rene Rivera 2008-2015
3Distributed under the Boost Software License, Version 1.0.
4(See accompanying file LICENSE_1_0.txt or copy at
5http://www.boost.org/LICENSE_1_0.txt)
6*/
7
8#ifndef BOOST_PREDEF_ARCHITECTURE_RS6K_H
9#define BOOST_PREDEF_ARCHITECTURE_RS6K_H
10
11#include <boost/predef/version_number.h>
12#include <boost/predef/make.h>
13
14/* tag::reference[]
15= `BOOST_ARCH_RS6000`
16
17http://en.wikipedia.org/wiki/RS/6000[RS/6000] architecture.
18
19[options="header"]
20|===
21| {predef_symbol} | {predef_version}
22
23| `+__THW_RS6000+` | {predef_detection}
24| `+_IBMR2+` | {predef_detection}
25| `+_POWER+` | {predef_detection}
26| `+_ARCH_PWR+` | {predef_detection}
27| `+_ARCH_PWR2+` | {predef_detection}
28|===
29*/ // end::reference[]
30
31#define BOOST_ARCH_RS6000 BOOST_VERSION_NUMBER_NOT_AVAILABLE
32
33#if defined(__THW_RS6000) || defined(_IBMR2) || \
34 defined(_POWER) || defined(_ARCH_PWR) || \
35 defined(_ARCH_PWR2)
36# undef BOOST_ARCH_RS6000
37# define BOOST_ARCH_RS6000 BOOST_VERSION_NUMBER_AVAILABLE
38#endif
39
40#if BOOST_ARCH_RS6000
41# define BOOST_ARCH_RS6000_AVAILABLE
42#endif
43
44#if BOOST_ARCH_RS6000
45# undef BOOST_ARCH_WORD_BITS_32
46# define BOOST_ARCH_WORD_BITS_32 BOOST_VERSION_NUMBER_AVAILABLE
47#endif
48
49#define BOOST_ARCH_RS6000_NAME "RS/6000"
50
51#define BOOST_ARCH_PWR BOOST_ARCH_RS6000
52
53#if BOOST_ARCH_PWR
54# define BOOST_ARCH_PWR_AVAILABLE
55#endif
56
57#if BOOST_ARCH_PWR
58# undef BOOST_ARCH_WORD_BITS_32
59# define BOOST_ARCH_WORD_BITS_32 BOOST_VERSION_NUMBER_AVAILABLE
60#endif
61
62#define BOOST_ARCH_PWR_NAME BOOST_ARCH_RS6000_NAME
63
64#endif
65
66#include <boost/predef/detail/test.h>
67BOOST_PREDEF_DECLARE_TEST(BOOST_ARCH_RS6000,BOOST_ARCH_RS6000_NAME)
68