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_X86_32_H
9#define BOOST_PREDEF_ARCHITECTURE_X86_32_H
10
11#include <boost/predef/version_number.h>
12#include <boost/predef/make.h>
13
14/* tag::reference[]
15= `BOOST_ARCH_X86_32`
16
17http://en.wikipedia.org/wiki/X86[Intel x86] architecture:
18If available versions [3-6] are specifically detected.
19
20[options="header"]
21|===
22| {predef_symbol} | {predef_version}
23
24| `i386` | {predef_detection}
25| `+__i386__+` | {predef_detection}
26| `+__i486__+` | {predef_detection}
27| `+__i586__+` | {predef_detection}
28| `+__i686__+` | {predef_detection}
29| `+__i386+` | {predef_detection}
30| `+_M_IX86+` | {predef_detection}
31| `+_X86_+` | {predef_detection}
32| `+__THW_INTEL__+` | {predef_detection}
33| `+__I86__+` | {predef_detection}
34| `+__INTEL__+` | {predef_detection}
35
36| `+__I86__+` | V.0.0
37| `+_M_IX86+` | V.0.0
38| `+__i686__+` | 6.0.0
39| `+__i586__+` | 5.0.0
40| `+__i486__+` | 4.0.0
41| `+__i386__+` | 3.0.0
42|===
43*/ // end::reference[]
44
45#define BOOST_ARCH_X86_32 BOOST_VERSION_NUMBER_NOT_AVAILABLE
46
47#if defined(i386) || defined(__i386__) || \
48 defined(__i486__) || defined(__i586__) || \
49 defined(__i686__) || defined(__i386) || \
50 defined(_M_IX86) || defined(_X86_) || \
51 defined(__THW_INTEL__) || defined(__I86__) || \
52 defined(__INTEL__)
53# undef BOOST_ARCH_X86_32
54# if !defined(BOOST_ARCH_X86_32) && defined(__I86__)
55# define BOOST_ARCH_X86_32 BOOST_VERSION_NUMBER(__I86__,0,0)
56# endif
57# if !defined(BOOST_ARCH_X86_32) && defined(_M_IX86)
58# define BOOST_ARCH_X86_32 BOOST_PREDEF_MAKE_10_VV00(_M_IX86)
59# endif
60# if !defined(BOOST_ARCH_X86_32) && defined(__i686__)
61# define BOOST_ARCH_X86_32 BOOST_VERSION_NUMBER(6,0,0)
62# endif
63# if !defined(BOOST_ARCH_X86_32) && defined(__i586__)
64# define BOOST_ARCH_X86_32 BOOST_VERSION_NUMBER(5,0,0)
65# endif
66# if !defined(BOOST_ARCH_X86_32) && defined(__i486__)
67# define BOOST_ARCH_X86_32 BOOST_VERSION_NUMBER(4,0,0)
68# endif
69# if !defined(BOOST_ARCH_X86_32) && defined(__i386__)
70# define BOOST_ARCH_X86_32 BOOST_VERSION_NUMBER(3,0,0)
71# endif
72# if !defined(BOOST_ARCH_X86_32)
73# define BOOST_ARCH_X86_32 BOOST_VERSION_NUMBER_AVAILABLE
74# endif
75#endif
76
77#if BOOST_ARCH_X86_32
78# define BOOST_ARCH_X86_32_AVAILABLE
79#endif
80
81#define BOOST_ARCH_X86_32_NAME "Intel x86-32"
82
83#include <boost/predef/architecture/x86.h>
84
85#endif
86
87#include <boost/predef/detail/test.h>
88BOOST_PREDEF_DECLARE_TEST(BOOST_ARCH_X86_32,BOOST_ARCH_X86_32_NAME)
89

source code of include/boost/predef/architecture/x86/32.h