64.h 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. /*
  2. Copyright Rene Rivera 2008-2021
  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_64_H
  8. #define BOOST_PREDEF_ARCHITECTURE_X86_64_H
  9. #include <boost/predef/version_number.h>
  10. #include <boost/predef/make.h>
  11. /* tag::reference[]
  12. = `BOOST_ARCH_X86_64`
  13. https://en.wikipedia.org/wiki/X86-64[X86-64] architecture.
  14. [options="header"]
  15. |===
  16. | {predef_symbol} | {predef_version}
  17. | `+__x86_64+` | {predef_detection}
  18. | `+__x86_64__+` | {predef_detection}
  19. | `+__amd64__+` | {predef_detection}
  20. | `+__amd64+` | {predef_detection}
  21. | `+_M_X64+` | {predef_detection}
  22. |===
  23. */ // end::reference[]
  24. #define BOOST_ARCH_X86_64 BOOST_VERSION_NUMBER_NOT_AVAILABLE
  25. #if defined(__x86_64) || defined(__x86_64__) || \
  26. defined(__amd64__) || defined(__amd64) || \
  27. defined(_M_X64)
  28. # undef BOOST_ARCH_X86_64
  29. # define BOOST_ARCH_X86_64 BOOST_VERSION_NUMBER_AVAILABLE
  30. #endif
  31. #if BOOST_ARCH_X86_64
  32. # define BOOST_ARCH_X86_64_AVAILABLE
  33. #endif
  34. #if BOOST_ARCH_X86_64
  35. # undef BOOST_ARCH_WORD_BITS_64
  36. # define BOOST_ARCH_WORD_BITS_64 BOOST_VERSION_NUMBER_AVAILABLE
  37. #endif
  38. #define BOOST_ARCH_X86_64_NAME "Intel x86-64"
  39. #include <boost/predef/architecture/x86.h>
  40. #endif
  41. #include <boost/predef/detail/test.h>
  42. BOOST_PREDEF_DECLARE_TEST(BOOST_ARCH_X86_64,BOOST_ARCH_X86_64_NAME)