Cleanup feature defines in <config.h>. Cleanup intrinsic includes in <cpu.h>
parent
51423972b1
commit
49d7187255
|
|
@ -510,6 +510,13 @@ NAMESPACE_END
|
|||
#define CRYPTOPP_BOOL_AESNI_INTRINSICS_AVAILABLE 0
|
||||
#endif
|
||||
|
||||
// AVX2 in MSC 18.00
|
||||
#if !defined(CRYPTOPP_DISABLE_ASM) && !defined(CRYPTOPP_DISABLE_AVX) && (((_MSC_VER >= 1600) && !defined(_M_ARM)) || (defined(__RDRND__) || defined(__RDSEED__) || defined(__AVX__)))
|
||||
#define CRYPTOPP_BOOL_AVX_AVAILABLE 1
|
||||
#else
|
||||
#define CRYPTOPP_BOOL_AVX_AVAILABLE 0
|
||||
#endif
|
||||
|
||||
// Requires ARMv7 and ACLE 1.0. Testing shows ARMv7 is really ARMv7a under most toolchains.
|
||||
#if !defined(CRYPTOPP_BOOL_NEON_INTRINSICS_AVAILABLE) && !defined(CRYPTOPP_DISABLE_ASM)
|
||||
# if defined(__ARM_NEON__) || defined(__ARM_NEON) || defined(_M_ARM)
|
||||
|
|
|
|||
7
config.h
7
config.h
|
|
@ -510,6 +510,13 @@ NAMESPACE_END
|
|||
#define CRYPTOPP_BOOL_AESNI_INTRINSICS_AVAILABLE 0
|
||||
#endif
|
||||
|
||||
// AVX2 in MSC 18.00
|
||||
#if !defined(CRYPTOPP_DISABLE_ASM) && !defined(CRYPTOPP_DISABLE_AVX) && (((_MSC_VER >= 1600) && !defined(_M_ARM)) || (defined(__RDRND__) || defined(__RDSEED__) || defined(__AVX__)))
|
||||
#define CRYPTOPP_BOOL_AVX_AVAILABLE 1
|
||||
#else
|
||||
#define CRYPTOPP_BOOL_AVX_AVAILABLE 0
|
||||
#endif
|
||||
|
||||
// Requires ARMv7 and ACLE 1.0. Testing shows ARMv7 is really ARMv7a under most toolchains.
|
||||
#if !defined(CRYPTOPP_BOOL_NEON_INTRINSICS_AVAILABLE) && !defined(CRYPTOPP_DISABLE_ASM)
|
||||
# if defined(__ARM_NEON__) || defined(__ARM_NEON) || defined(_M_ARM)
|
||||
|
|
|
|||
21
cpu.h
21
cpu.h
|
|
@ -29,31 +29,30 @@
|
|||
#if (CRYPTOPP_GCC_VERSION >= 40800)
|
||||
# include <x86intrin.h>
|
||||
#endif
|
||||
#if (CRYPTOPP_MSC_VERSION >= 1400)
|
||||
# include <intrin.h>
|
||||
#endif
|
||||
|
||||
// Baseline include
|
||||
#if CRYPTOPP_BOOL_SSE2_ASM_AVAILABLE || CRYPTOPP_BOOL_SSE2_INTRINSICS_AVAILABLE
|
||||
# include <emmintrin.h> // __m64, __m128i, _mm_set_epi64x
|
||||
#endif
|
||||
|
||||
// PUSHFB needs Clang 3.3 and Apple Clang 5.0.
|
||||
// #if (defined(__SSE3__) || defined(__SSSE3__)) || defined(__INTEL_COMPILER) || (CRYPTOPP_LLVM_CLANG_VERSION >= 30300) || (CRYPTOPP_APPLE_CLANG_VERSION >= 50000)
|
||||
#if CRYPTOPP_BOOL_SSSE3_ASM_AVAILABLE
|
||||
# include <tmmintrin.h> // _mm_shuffle_pi8, _mm_shuffle_epi8
|
||||
#endif // tmmintrin.h
|
||||
|
||||
// PEXTRD needs Clang 3.3 and Apple Clang 5.0.
|
||||
// #if (defined(__SSE4_1__) || defined(__SSE4_1__)) || defined(__INTEL_COMPILER) || (CRYPTOPP_LLVM_CLANG_VERSION >= 30300) || (CRYPTOPP_APPLE_CLANG_VERSION >= 50000)
|
||||
#if CRYPTOPP_BOOL_SSE4_INTRINSICS_AVAILABLE
|
||||
# include <smmintrin.h> // _mm_blend_epi16
|
||||
# include <nmmintrin.h> // _mm_crc32_u{8|16|32}
|
||||
#endif // smmintrin.h
|
||||
|
||||
// AES and CLMUL need Clang 2.8 and Apple Clang 4.6. CLMUL needs Clang 3.4 and Apple Clang 6.0
|
||||
// #if (defined(__AES__) || defined(__PCLMUL__)) || defined(__INTEL_COMPILER) || (CRYPTOPP_LLVM_CLANG_VERSION >= 30400) || (CRYPTOPP_APPLE_CLANG_VERSION >= 60000)
|
||||
#if CRYPTOPP_BOOL_AESNI_INTRINSICS_AVAILABLE
|
||||
# include <wmmintrin.h>
|
||||
# include <wmmintrin.h> // aesenc, aesdec, etc
|
||||
#endif // wmmintrin.h
|
||||
|
||||
#if CRYPTOPP_BOOL_AVX_INTRINSICS_AVAILABLE
|
||||
# include <immintrin.h> // RDRAND, RDSEED and AVX
|
||||
#endif
|
||||
#if CRYPTOPP_BOOL_AVX2_INTRINSICS_AVAILABLE
|
||||
# include <zmmintrin.h> // AVX 512-bit extensions
|
||||
#endif
|
||||
#endif // X86/X64/X32 Headers
|
||||
|
||||
// Applies to both X86/X32/X64 and ARM32/ARM64. And we've got MIPS devices on the way.
|
||||
|
|
|
|||
Loading…
Reference in New Issue