Intel x86 architecture:
If available versions [3-6] are specifically detected.
@@ -2594,7 +2655,7 @@ If available versions [3-6] are specifically detected.
-
4.1.22. BOOST_ARCH_X86_64
+
4.1.23. BOOST_ARCH_X86_64
diff --git a/include/boost/predef/architecture/ppc.h b/include/boost/predef/architecture/ppc.h
index 55ba5a1..73d99f3 100644
--- a/include/boost/predef/architecture/ppc.h
+++ b/include/boost/predef/architecture/ppc.h
@@ -22,13 +22,19 @@ http://en.wikipedia.org/wiki/PowerPC[PowerPC] architecture.
| `+__powerpc+` | {predef_detection}
| `+__powerpc__+` | {predef_detection}
+| `+__powerpc64__+` | {predef_detection}
| `+__POWERPC__+` | {predef_detection}
| `+__ppc__+` | {predef_detection}
+| `+__ppc64__+` | {predef_detection}
+| `+__PPC__+` | {predef_detection}
+| `+__PPC64__+` | {predef_detection}
| `+_M_PPC+` | {predef_detection}
| `+_ARCH_PPC+` | {predef_detection}
+| `+_ARCH_PPC64+` | {predef_detection}
| `+__PPCGECKO__+` | {predef_detection}
| `+__PPCBROADWAY__+` | {predef_detection}
| `+_XENON+` | {predef_detection}
+| `+__ppc+` | {predef_detection}
| `+__ppc601__+` | 6.1.0
| `+_ARCH_601+` | 6.1.0
@@ -41,11 +47,13 @@ http://en.wikipedia.org/wiki/PowerPC[PowerPC] architecture.
#define BOOST_ARCH_PPC BOOST_VERSION_NUMBER_NOT_AVAILABLE
-#if defined(__powerpc) || defined(__powerpc__) || \
- defined(__POWERPC__) || defined(__ppc__) || \
- defined(_M_PPC) || defined(_ARCH_PPC) || \
+#if defined(__powerpc) || defined(__powerpc__) || defined(__powerpc64__) || \
+ defined(__POWERPC__) || defined(__ppc__) || defined(__ppc64__) || \
+ defined(__PPC__) || defined(__PPC64__) || \
+ defined(_M_PPC) || defined(_ARCH_PPC) || defined(_ARCH_PPC64) || \
defined(__PPCGECKO__) || defined(__PPCBROADWAY__) || \
- defined(_XENON)
+ defined(_XENON) || \
+ defined(__ppc)
# undef BOOST_ARCH_PPC
# if !defined (BOOST_ARCH_PPC) && (defined(__ppc601__) || defined(_ARCH_601))
# define BOOST_ARCH_PPC BOOST_VERSION_NUMBER(6,1,0)
@@ -65,14 +73,52 @@ http://en.wikipedia.org/wiki/PowerPC[PowerPC] architecture.
# define BOOST_ARCH_PPC_AVAILABLE
#endif
-#if BOOST_ARCH_PPC
+#define BOOST_ARCH_PPC_NAME "PowerPC"
+
+
+/* tag::reference[]
+= `BOOST_ARCH_PPC_64`
+
+http://en.wikipedia.org/wiki/PowerPC[PowerPC] 64 bit architecture.
+
+[options="header"]
+|===
+| {predef_symbol} | {predef_version}
+
+| `+__powerpc64__+` | {predef_detection}
+| `+__ppc64__+` | {predef_detection}
+| `+__PPC64__+` | {predef_detection}
+| `+_ARCH_PPC64+` | {predef_detection}
+|===
+*/ // end::reference[]
+
+#define BOOST_ARCH_PPC_64 BOOST_VERSION_NUMBER_NOT_AVAILABLE
+
+#if defined(__powerpc64__) || defined(__ppc64__) || defined(__PPC64__) || \
+ defined(_ARCH_PPC64)
+# undef BOOST_ARCH_PPC_64
+# define BOOST_ARCH_PPC_64 BOOST_VERSION_NUMBER_AVAILABLE
+#endif
+
+#if BOOST_ARCH_PPC_64
+# define BOOST_ARCH_PPC_64_AVAILABLE
+#endif
+
+#define BOOST_ARCH_PPC_64_NAME "PowerPC64"
+
+
+#if BOOST_ARCH_PPC_64
+# undef BOOST_ARCH_WORD_BITS_64
+# define BOOST_ARCH_WORD_BITS_64 BOOST_VERSION_NUMBER_AVAILABLE
+#else
# undef BOOST_ARCH_WORD_BITS_32
# define BOOST_ARCH_WORD_BITS_32 BOOST_VERSION_NUMBER_AVAILABLE
#endif
-#define BOOST_ARCH_PPC_NAME "PowerPC"
-
#endif
#include
BOOST_PREDEF_DECLARE_TEST(BOOST_ARCH_PPC,BOOST_ARCH_PPC_NAME)
+
+#include
+BOOST_PREDEF_DECLARE_TEST(BOOST_ARCH_PPC_64,BOOST_ARCH_PPC_64_NAME)
diff --git a/include/boost/predef/other/wordsize.h b/include/boost/predef/other/wordsize.h
index 165e786..ce3016f 100644
--- a/include/boost/predef/other/wordsize.h
+++ b/include/boost/predef/other/wordsize.h
@@ -1,5 +1,5 @@
/*
-Copyright Rene Ferdinand Rivera Morell 2020
+Copyright Rene Ferdinand Rivera Morell 2020-2021
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
@@ -31,34 +31,38 @@ the `wordsize.h` header will also include all the architecture headers.
*/ // end::reference[]
-#ifndef BOOST_ARCH_WORD_BITS_16
-# define BOOST_ARCH_WORD_BITS_16 BOOST_VERSION_NUMBER_NOT_AVAILABLE
-#else
-# define BOOST_ARCH_WORD_BITS 16
+#if !defined(BOOST_ARCH_WORD_BITS_64)
+# define BOOST_ARCH_WORD_BITS_64 BOOST_VERSION_NUMBER_NOT_AVAILABLE
+#elif !defined(BOOST_ARCH_WORD_BITS)
+# define BOOST_ARCH_WORD_BITS 64
#endif
-#ifndef BOOST_ARCH_WORD_BITS_32
-# define BOOST_ARCH_WORD_BITS_32 BOOST_VERSION_NUMBER_NOT_AVAILABLE
-#else
-# define BOOST_ARCH_WORD_BITS 32
+#if !defined(BOOST_ARCH_WORD_BITS_32)
+# define BOOST_ARCH_WORD_BITS_32 BOOST_VERSION_NUMBER_NOT_AVAILABLE
+#elif !defined(BOOST_ARCH_WORD_BITS)
+# define BOOST_ARCH_WORD_BITS 32
#endif
-#ifndef BOOST_ARCH_WORD_BITS_64
-# define BOOST_ARCH_WORD_BITS_64 BOOST_VERSION_NUMBER_NOT_AVAILABLE
-#else
-# define BOOST_ARCH_WORD_BITS 64
+#if !defined(BOOST_ARCH_WORD_BITS_16)
+# define BOOST_ARCH_WORD_BITS_16 BOOST_VERSION_NUMBER_NOT_AVAILABLE
+#elif !defined(BOOST_ARCH_WORD_BITS)
+# define BOOST_ARCH_WORD_BITS 16
#endif
-#ifndef BOOST_ARCH_WORD_BITS
-# define BOOST_ARCH_WORD_BITS 0
+#if !defined(BOOST_ARCH_WORD_BITS)
+# define BOOST_ARCH_WORD_BITS 0
#endif
+#define BOOST_ARCH_WORD_BITS_NAME "Word Bits"
#define BOOST_ARCH_WORD_BITS_16_NAME "16-bit Word Size"
#define BOOST_ARCH_WORD_BITS_32_NAME "32-bit Word Size"
#define BOOST_ARCH_WORD_BITS_64_NAME "64-bit Word Size"
#endif
+#include
+BOOST_PREDEF_DECLARE_TEST(BOOST_ARCH_WORD_BITS,BOOST_ARCH_WORD_BITS_NAME)
+
#include
BOOST_PREDEF_DECLARE_TEST(BOOST_ARCH_WORD_BITS_16,BOOST_ARCH_WORD_BITS_16_NAME)