32.h 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  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. #ifndef BOOST_PREDEF_ARCHITECTURE_X86_32_H
  8. #define BOOST_PREDEF_ARCHITECTURE_X86_32_H
  9. #include <boost/predef/version_number.h>
  10. #include <boost/predef/make.h>
  11. /*`
  12. [heading `BOOST_ARCH_X86_32`]
  13. [@http://en.wikipedia.org/wiki/X86 Intel x86] architecture:
  14. If available versions \[3-6\] are specifically detected.
  15. [table
  16. [[__predef_symbol__] [__predef_version__]]
  17. [[`i386`] [__predef_detection__]]
  18. [[`__i386__`] [__predef_detection__]]
  19. [[`__i486__`] [__predef_detection__]]
  20. [[`__i586__`] [__predef_detection__]]
  21. [[`__i686__`] [__predef_detection__]]
  22. [[`__i386`] [__predef_detection__]]
  23. [[`_M_IX86`] [__predef_detection__]]
  24. [[`_X86_`] [__predef_detection__]]
  25. [[`__THW_INTEL__`] [__predef_detection__]]
  26. [[`__I86__`] [__predef_detection__]]
  27. [[`__INTEL__`] [__predef_detection__]]
  28. [[`__I86__`] [V.0.0]]
  29. [[`_M_IX86`] [V.0.0]]
  30. [[`__i686__`] [6.0.0]]
  31. [[`__i586__`] [5.0.0]]
  32. [[`__i486__`] [4.0.0]]
  33. [[`__i386__`] [3.0.0]]
  34. ]
  35. */
  36. #define BOOST_ARCH_X86_32 BOOST_VERSION_NUMBER_NOT_AVAILABLE
  37. #if defined(i386) || defined(__i386__) || \
  38. defined(__i486__) || defined(__i586__) || \
  39. defined(__i686__) || defined(__i386) || \
  40. defined(_M_IX86) || defined(_X86_) || \
  41. defined(__THW_INTEL__) || defined(__I86__) || \
  42. defined(__INTEL__)
  43. # undef BOOST_ARCH_X86_32
  44. # if !defined(BOOST_ARCH_X86_32) && defined(__I86__)
  45. # define BOOST_ARCH_X86_32 BOOST_VERSION_NUMBER(__I86__,0,0)
  46. # endif
  47. # if !defined(BOOST_ARCH_X86_32) && defined(_M_IX86)
  48. # define BOOST_ARCH_X86_32 BOOST_PREDEF_MAKE_10_VV00(_M_IX86)
  49. # endif
  50. # if !defined(BOOST_ARCH_X86_32) && defined(__i686__)
  51. # define BOOST_ARCH_X86_32 BOOST_VERSION_NUMBER(6,0,0)
  52. # endif
  53. # if !defined(BOOST_ARCH_X86_32) && defined(__i586__)
  54. # define BOOST_ARCH_X86_32 BOOST_VERSION_NUMBER(5,0,0)
  55. # endif
  56. # if !defined(BOOST_ARCH_X86_32) && defined(__i486__)
  57. # define BOOST_ARCH_X86_32 BOOST_VERSION_NUMBER(4,0,0)
  58. # endif
  59. # if !defined(BOOST_ARCH_X86_32) && defined(__i386__)
  60. # define BOOST_ARCH_X86_32 BOOST_VERSION_NUMBER(3,0,0)
  61. # endif
  62. # if !defined(BOOST_ARCH_X86_32)
  63. # define BOOST_ARCH_X86_32 BOOST_VERSION_NUMBER_AVAILABLE
  64. # endif
  65. #endif
  66. #if BOOST_ARCH_X86_32
  67. # define BOOST_ARCH_X86_32_AVAILABLE
  68. #endif
  69. #define BOOST_ARCH_X86_32_NAME "Intel x86-32"
  70. #include <boost/predef/architecture/x86.h>
  71. #endif
  72. #include <boost/predef/detail/test.h>
  73. BOOST_PREDEF_DECLARE_TEST(BOOST_ARCH_X86_32,BOOST_ARCH_X86_32_NAME)