24#ifndef CRYPTOPP_CONFIG_CPU_H
25#define CRYPTOPP_CONFIG_CPU_H
29#if defined(CRYPTOPP_DOXYGEN_PROCESSING)
44 #define CRYPTOPP_BOOL_X32 ...
48 #define CRYPTOPP_BOOL_X64 ...
52 #define CRYPTOPP_BOOL_X86 ...
53#elif (defined(__ILP32__) || defined(_ILP32)) && defined(__x86_64__)
54 #define CRYPTOPP_BOOL_X32 1
55#elif (defined(_M_X64) || defined(__x86_64__))
56 #define CRYPTOPP_BOOL_X64 1
57#elif (defined(_M_IX86) || defined(__i386__) || defined(__i386) || defined(_X86_) || defined(__I86__) || defined(__INTEL__))
58 #define CRYPTOPP_BOOL_X86 1
61#if defined(CRYPTOPP_DOXYGEN_PROCESSING)
67 #define CRYPTOPP_BOOL_ARMV8 ...
72 #define CRYPTOPP_BOOL_ARM64 ...
77 #define CRYPTOPP_BOOL_ARM32 ...
78#elif defined(__arm64__) || defined(__aarch32__) || defined(__aarch64__) || defined(_M_ARM64)
80 #define CRYPTOPP_BOOL_ARMV8 1
82#if defined(__arm64__) || defined(__aarch64__) || defined(_M_ARM64)
83 #define CRYPTOPP_BOOL_ARM64 1
84#elif defined(__arm__) || defined(_M_ARM)
85 #define CRYPTOPP_BOOL_ARM32 1
88#if defined(CRYPTOPP_DOXYGEN_PROCESSING)
92 #define CRYPTOPP_BOOL_PPC64 ...
96 #define CRYPTOPP_BOOL_PPC32 ...
97#elif defined(__ppc64__) || defined(__powerpc64__) || defined(__PPC64__) || defined(_ARCH_PPC64)
98 #define CRYPTOPP_BOOL_PPC64 1
99#elif defined(__powerpc__) || defined(__ppc__) || defined(__PPC__) || defined(_ARCH_PPC)
100 #define CRYPTOPP_BOOL_PPC32 1
103#if defined(CRYPTOPP_DOXYGEN_PROCESSING)
107 #define CRYPTOPP_BOOL_MIPS64 ...
111 #define CRYPTOPP_BOOL_MIPS32 ...
112#elif defined(__mips64__)
113 #define CRYPTOPP_BOOL_MIPS64 1
114#elif defined(__mips__)
115 #define CRYPTOPP_BOOL_MIPS32 1
118#if defined(CRYPTOPP_DOXYGEN_PROCESSING)
122 #define CRYPTOPP_BOOL_SPARC64 ...
126 #define CRYPTOPP_BOOL_SPARC32 ...
127#elif defined(__sparc64__) || defined(__sparc64) || defined(__sparcv9) || defined(__sparc_v9__)
128 #define CRYPTOPP_BOOL_SPARC64 1
129#elif defined(__sparc__) || defined(__sparc) || defined(__sparcv8) || defined(__sparc_v8__)
130 #define CRYPTOPP_BOOL_SPARC32 1
133#if defined(CRYPTOPP_DOXYGEN_PROCESSING)
147 #define CRYPTOPP_L1_CACHE_LINE_SIZE ...
149 #ifndef CRYPTOPP_L1_CACHE_LINE_SIZE
150 #if defined(CRYPTOPP_BOOL_X32) || defined(CRYPTOPP_BOOL_X64) || defined(CRYPTOPP_BOOL_ARMV8) || \
151 defined(CRYPTOPP_BOOL_MIPS64) || defined(CRYPTOPP_BOOL_SPARC64)
152 #define CRYPTOPP_L1_CACHE_LINE_SIZE 64
153 #elif defined(CRYPTOPP_BOOL_PPC32) || defined(CRYPTOPP_BOOL_PPC64)
155 #define CRYPTOPP_L1_CACHE_LINE_SIZE 128
158 #define CRYPTOPP_L1_CACHE_LINE_SIZE 32
163#if defined(CRYPTOPP_DOXYGEN_PROCESSING)
168 #define CRYPTOPP_SECTION_INIT ...
171 #if ((defined(__MACH__) && defined(__APPLE__)) && ((CRYPTOPP_LLVM_CLANG_VERSION >= 30600) || \
172 (CRYPTOPP_APPLE_CLANG_VERSION >= 70100) || (CRYPTOPP_GCC_VERSION >= 40300)))
173 #define CRYPTOPP_SECTION_INIT __attribute__((section ("__DATA,__data")))
174 #elif (defined(__ELF__) && (CRYPTOPP_GCC_VERSION >= 40300))
175 #define CRYPTOPP_SECTION_INIT __attribute__((section ("nocommon")))
176 #elif defined(__ELF__) && (defined(__xlC__) || defined(__ibmxl__))
177 #define CRYPTOPP_SECTION_INIT __attribute__((section ("nocommon")))
179 #define CRYPTOPP_SECTION_INIT
191#if defined(__APPLE__)
192 #define CRYPTOPP_NO_CPU_FEATURE_PROBES 1
196#if defined(CRYPTOPP_DOXYGEN_PROCESSING)
200 #define CRYPTOPP_MS_STYLE_INLINE_ASSEMBLY ...
204 #define CRYPTOPP_GNU_STYLE_INLINE_ASSEMBLY ...
205#elif defined(CRYPTOPP_MSC_VERSION) || defined(__BORLANDC__) || \
206 defined(CRYPTOPP_MSVC_CLANG_VERSION)
207 #define CRYPTOPP_MS_STYLE_INLINE_ASSEMBLY 1
209 #define CRYPTOPP_GNU_STYLE_INLINE_ASSEMBLY 1
Library configuration file.