Relocate ARM defines to contribute to CRYPTOPP_BOOL_ALIGN16
parent
884f7fd4ac
commit
733c78ba23
64
config.h
64
config.h
|
|
@ -452,7 +452,38 @@ NAMESPACE_END
|
||||||
#define CRYPTOPP_BOOL_AESNI_INTRINSICS_AVAILABLE 0
|
#define CRYPTOPP_BOOL_AESNI_INTRINSICS_AVAILABLE 0
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if CRYPTOPP_BOOL_SSE2_INTRINSICS_AVAILABLE || CRYPTOPP_BOOL_SSE2_ASM_AVAILABLE || defined(CRYPTOPP_X64_MASM_AVAILABLE)
|
// Requires ARMv7 and ACLE 1.0. Testing shows ARMv7 is really ARMv7a under most toolchains.
|
||||||
|
#if !defined(CRYPTOPP_BOOL_NEON_INTRINSICS_AVAILABLE)
|
||||||
|
# if (CRYPTOPP_BOOL_ARM32 || CRYPTOPP_BOOL_ARM64) && ((CRYPTOPP_GCC_VERSION >= 40400) || (CRYPTOPP_CLANG_VERSION >= 20800) || (CRYPTOPP_APPLE_CLANG_VERSION >= 60000) || (CRYPTOPP_MSC_VERSION >= 1700))
|
||||||
|
# if defined(__ARM_NEON__) || defined(__ARM_NEON) || defined(_M_ARM)
|
||||||
|
# define CRYPTOPP_BOOL_NEON_INTRINSICS_AVAILABLE 1
|
||||||
|
# endif
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Requires ARMv8 and ACLE 2.0.
|
||||||
|
// Microsoft plans to support ARM-64, but its not clear how to detect it.
|
||||||
|
// TODO: Add MSC_VER and ARM-64 platform define when available
|
||||||
|
#if !defined(CRYPTOPP_BOOL_ARM_CRC32_INTRINSICS_AVAILABLE)
|
||||||
|
# if (CRYPTOPP_BOOL_ARM32 || CRYPTOPP_BOOL_ARM64) && ((CRYPTOPP_GCC_VERSION >= 40400) || (CRYPTOPP_CLANG_VERSION >= 20800) || (CRYPTOPP_APPLE_CLANG_VERSION >= 60000) || (CRYPTOPP_MSC_VERSION >= 2000))
|
||||||
|
# if defined(__ARM_FEATURE_CRC32) || defined(_M_ARM64)
|
||||||
|
# define CRYPTOPP_BOOL_ARM_CRC32_INTRINSICS_AVAILABLE 1
|
||||||
|
# endif
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Requires ARMv8 and ACLE 2.0.
|
||||||
|
// Microsoft plans to support ARM-64, but its not clear how to detect it.
|
||||||
|
// TODO: Add MSC_VER and ARM-64 platform define when available
|
||||||
|
#if !defined(CRYPTOPP_BOOL_ARM_CRYPTO_INTRINSICS_AVAILABLE)
|
||||||
|
# if (CRYPTOPP_BOOL_ARM32 || CRYPTOPP_BOOL_ARM64) && ((CRYPTOPP_GCC_VERSION >= 40400) || (CRYPTOPP_CLANG_VERSION >= 20800) || (CRYPTOPP_APPLE_CLANG_VERSION >= 60000) || (CRYPTOPP_MSC_VERSION >= 2000))
|
||||||
|
# if defined(__ARM_FEATURE_CRYPTO) || defined(_M_ARM64)
|
||||||
|
# define CRYPTOPP_BOOL_ARM_CRYPTO_INTRINSICS_AVAILABLE 1
|
||||||
|
# endif
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if CRYPTOPP_BOOL_SSE2_INTRINSICS_AVAILABLE || CRYPTOPP_BOOL_SSE2_ASM_AVAILABLE || CRYPTOPP_BOOL_NEON_INTRINSICS_AVAILABLE || defined(CRYPTOPP_X64_MASM_AVAILABLE)
|
||||||
#define CRYPTOPP_BOOL_ALIGN16 1
|
#define CRYPTOPP_BOOL_ALIGN16 1
|
||||||
#else
|
#else
|
||||||
#define CRYPTOPP_BOOL_ALIGN16 0
|
#define CRYPTOPP_BOOL_ALIGN16 0
|
||||||
|
|
@ -534,37 +565,6 @@ NAMESPACE_END
|
||||||
#define CRYPTOPP_BOOL_ARM64 0
|
#define CRYPTOPP_BOOL_ARM64 0
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Requires ARMv7 and ACLE 1.0. Testing shows ARMv7 is really ARMv7a under the toolchains.
|
|
||||||
#if !defined(CRYPTOPP_BOOL_NEON_INTRINSICS_AVAILABLE)
|
|
||||||
# if (CRYPTOPP_BOOL_ARM32 || CRYPTOPP_BOOL_ARM64) && ((CRYPTOPP_GCC_VERSION >= 40400) || (CRYPTOPP_CLANG_VERSION >= 20800) || (CRYPTOPP_APPLE_CLANG_VERSION >= 60000) || (CRYPTOPP_MSC_VERSION >= 1700))
|
|
||||||
# if defined(__ARM_NEON__) || defined(__ARM_NEON) || defined(_M_ARM)
|
|
||||||
# define CRYPTOPP_BOOL_NEON_INTRINSICS_AVAILABLE 1
|
|
||||||
# endif
|
|
||||||
# endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// Requires ARMv8 and ACLE 2.0.
|
|
||||||
// Microsoft plans to support ARM-64, but its not clear how to detect it.
|
|
||||||
// TODO: Add MSC_VER and ARM-64 platform define when available
|
|
||||||
#if !defined(CRYPTOPP_BOOL_ARM_CRC32_INTRINSICS_AVAILABLE)
|
|
||||||
# if (CRYPTOPP_BOOL_ARM32 || CRYPTOPP_BOOL_ARM64) && ((CRYPTOPP_GCC_VERSION >= 40400) || (CRYPTOPP_CLANG_VERSION >= 20800) || (CRYPTOPP_APPLE_CLANG_VERSION >= 60000) || (CRYPTOPP_MSC_VERSION >= 2000))
|
|
||||||
# if defined(__ARM_FEATURE_CRC32) || defined(_M_ARM64)
|
|
||||||
# define CRYPTOPP_BOOL_ARM_CRC32_INTRINSICS_AVAILABLE 1
|
|
||||||
# endif
|
|
||||||
# endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// Requires ARMv8 and ACLE 2.0.
|
|
||||||
// Microsoft plans to support ARM-64, but its not clear how to detect it.
|
|
||||||
// TODO: Add MSC_VER and ARM-64 platform define when available
|
|
||||||
#if !defined(CRYPTOPP_BOOL_ARM_CRYPTO_INTRINSICS_AVAILABLE)
|
|
||||||
# if (CRYPTOPP_BOOL_ARM32 || CRYPTOPP_BOOL_ARM64) && ((CRYPTOPP_GCC_VERSION >= 40400) || (CRYPTOPP_CLANG_VERSION >= 20800) || (CRYPTOPP_APPLE_CLANG_VERSION >= 60000) || (CRYPTOPP_MSC_VERSION >= 2000))
|
|
||||||
# if defined(__ARM_FEATURE_CRYPTO) || defined(_M_ARM64)
|
|
||||||
# define CRYPTOPP_BOOL_ARM_CRYPTO_INTRINSICS_AVAILABLE 1
|
|
||||||
# endif
|
|
||||||
# endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if !defined(CRYPTOPP_NO_UNALIGNED_DATA_ACCESS) && !defined(CRYPTOPP_ALLOW_UNALIGNED_DATA_ACCESS)
|
#if !defined(CRYPTOPP_NO_UNALIGNED_DATA_ACCESS) && !defined(CRYPTOPP_ALLOW_UNALIGNED_DATA_ACCESS)
|
||||||
#if (CRYPTOPP_BOOL_X64 || CRYPTOPP_BOOL_X86 || CRYPTOPP_BOOL_X32 || defined(__powerpc__) || (__ARM_FEATURE_UNALIGNED >= 1))
|
#if (CRYPTOPP_BOOL_X64 || CRYPTOPP_BOOL_X86 || CRYPTOPP_BOOL_X32 || defined(__powerpc__) || (__ARM_FEATURE_UNALIGNED >= 1))
|
||||||
#define CRYPTOPP_ALLOW_UNALIGNED_DATA_ACCESS
|
#define CRYPTOPP_ALLOW_UNALIGNED_DATA_ACCESS
|
||||||
|
|
|
||||||
|
|
@ -452,7 +452,38 @@ NAMESPACE_END
|
||||||
#define CRYPTOPP_BOOL_AESNI_INTRINSICS_AVAILABLE 0
|
#define CRYPTOPP_BOOL_AESNI_INTRINSICS_AVAILABLE 0
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if CRYPTOPP_BOOL_SSE2_INTRINSICS_AVAILABLE || CRYPTOPP_BOOL_SSE2_ASM_AVAILABLE || defined(CRYPTOPP_X64_MASM_AVAILABLE)
|
// Requires ARMv7 and ACLE 1.0. Testing shows ARMv7 is really ARMv7a under most toolchains.
|
||||||
|
#if !defined(CRYPTOPP_BOOL_NEON_INTRINSICS_AVAILABLE)
|
||||||
|
# if (CRYPTOPP_BOOL_ARM32 || CRYPTOPP_BOOL_ARM64) && ((CRYPTOPP_GCC_VERSION >= 40400) || (CRYPTOPP_CLANG_VERSION >= 20800) || (CRYPTOPP_APPLE_CLANG_VERSION >= 60000) || (CRYPTOPP_MSC_VERSION >= 1700))
|
||||||
|
# if defined(__ARM_NEON__) || defined(__ARM_NEON) || defined(_M_ARM)
|
||||||
|
# define CRYPTOPP_BOOL_NEON_INTRINSICS_AVAILABLE 1
|
||||||
|
# endif
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Requires ARMv8 and ACLE 2.0.
|
||||||
|
// Microsoft plans to support ARM-64, but its not clear how to detect it.
|
||||||
|
// TODO: Add MSC_VER and ARM-64 platform define when available
|
||||||
|
#if !defined(CRYPTOPP_BOOL_ARM_CRC32_INTRINSICS_AVAILABLE)
|
||||||
|
# if (CRYPTOPP_BOOL_ARM32 || CRYPTOPP_BOOL_ARM64) && ((CRYPTOPP_GCC_VERSION >= 40400) || (CRYPTOPP_CLANG_VERSION >= 20800) || (CRYPTOPP_APPLE_CLANG_VERSION >= 60000) || (CRYPTOPP_MSC_VERSION >= 2000))
|
||||||
|
# if defined(__ARM_FEATURE_CRC32) || defined(_M_ARM64)
|
||||||
|
# define CRYPTOPP_BOOL_ARM_CRC32_INTRINSICS_AVAILABLE 1
|
||||||
|
# endif
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Requires ARMv8 and ACLE 2.0.
|
||||||
|
// Microsoft plans to support ARM-64, but its not clear how to detect it.
|
||||||
|
// TODO: Add MSC_VER and ARM-64 platform define when available
|
||||||
|
#if !defined(CRYPTOPP_BOOL_ARM_CRYPTO_INTRINSICS_AVAILABLE)
|
||||||
|
# if (CRYPTOPP_BOOL_ARM32 || CRYPTOPP_BOOL_ARM64) && ((CRYPTOPP_GCC_VERSION >= 40400) || (CRYPTOPP_CLANG_VERSION >= 20800) || (CRYPTOPP_APPLE_CLANG_VERSION >= 60000) || (CRYPTOPP_MSC_VERSION >= 2000))
|
||||||
|
# if defined(__ARM_FEATURE_CRYPTO) || defined(_M_ARM64)
|
||||||
|
# define CRYPTOPP_BOOL_ARM_CRYPTO_INTRINSICS_AVAILABLE 1
|
||||||
|
# endif
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if CRYPTOPP_BOOL_SSE2_INTRINSICS_AVAILABLE || CRYPTOPP_BOOL_SSE2_ASM_AVAILABLE || CRYPTOPP_BOOL_NEON_INTRINSICS_AVAILABLE || defined(CRYPTOPP_X64_MASM_AVAILABLE)
|
||||||
#define CRYPTOPP_BOOL_ALIGN16 1
|
#define CRYPTOPP_BOOL_ALIGN16 1
|
||||||
#else
|
#else
|
||||||
#define CRYPTOPP_BOOL_ALIGN16 0
|
#define CRYPTOPP_BOOL_ALIGN16 0
|
||||||
|
|
@ -534,37 +565,6 @@ NAMESPACE_END
|
||||||
#define CRYPTOPP_BOOL_ARM64 0
|
#define CRYPTOPP_BOOL_ARM64 0
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Requires ARMv7 and ACLE 1.0. Testing shows ARMv7 is really ARMv7a under the toolchains.
|
|
||||||
#if !defined(CRYPTOPP_BOOL_NEON_INTRINSICS_AVAILABLE)
|
|
||||||
# if (CRYPTOPP_BOOL_ARM32 || CRYPTOPP_BOOL_ARM64) && ((CRYPTOPP_GCC_VERSION >= 40400) || (CRYPTOPP_CLANG_VERSION >= 20800) || (CRYPTOPP_APPLE_CLANG_VERSION >= 60000) || (CRYPTOPP_MSC_VERSION >= 1700))
|
|
||||||
# if defined(__ARM_NEON__) || defined(__ARM_NEON) || defined(_M_ARM)
|
|
||||||
# define CRYPTOPP_BOOL_NEON_INTRINSICS_AVAILABLE 1
|
|
||||||
# endif
|
|
||||||
# endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// Requires ARMv8 and ACLE 2.0.
|
|
||||||
// Microsoft plans to support ARM-64, but its not clear how to detect it.
|
|
||||||
// TODO: Add MSC_VER and ARM-64 platform define when available
|
|
||||||
#if !defined(CRYPTOPP_BOOL_ARM_CRC32_INTRINSICS_AVAILABLE)
|
|
||||||
# if (CRYPTOPP_BOOL_ARM32 || CRYPTOPP_BOOL_ARM64) && ((CRYPTOPP_GCC_VERSION >= 40400) || (CRYPTOPP_CLANG_VERSION >= 20800) || (CRYPTOPP_APPLE_CLANG_VERSION >= 60000) || (CRYPTOPP_MSC_VERSION >= 2000))
|
|
||||||
# if defined(__ARM_FEATURE_CRC32) || defined(_M_ARM64)
|
|
||||||
# define CRYPTOPP_BOOL_ARM_CRC32_INTRINSICS_AVAILABLE 1
|
|
||||||
# endif
|
|
||||||
# endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// Requires ARMv8 and ACLE 2.0.
|
|
||||||
// Microsoft plans to support ARM-64, but its not clear how to detect it.
|
|
||||||
// TODO: Add MSC_VER and ARM-64 platform define when available
|
|
||||||
#if !defined(CRYPTOPP_BOOL_ARM_CRYPTO_INTRINSICS_AVAILABLE)
|
|
||||||
# if (CRYPTOPP_BOOL_ARM32 || CRYPTOPP_BOOL_ARM64) && ((CRYPTOPP_GCC_VERSION >= 40400) || (CRYPTOPP_CLANG_VERSION >= 20800) || (CRYPTOPP_APPLE_CLANG_VERSION >= 60000) || (CRYPTOPP_MSC_VERSION >= 2000))
|
|
||||||
# if defined(__ARM_FEATURE_CRYPTO) || defined(_M_ARM64)
|
|
||||||
# define CRYPTOPP_BOOL_ARM_CRYPTO_INTRINSICS_AVAILABLE 1
|
|
||||||
# endif
|
|
||||||
# endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if !defined(CRYPTOPP_NO_UNALIGNED_DATA_ACCESS) && !defined(CRYPTOPP_ALLOW_UNALIGNED_DATA_ACCESS)
|
#if !defined(CRYPTOPP_NO_UNALIGNED_DATA_ACCESS) && !defined(CRYPTOPP_ALLOW_UNALIGNED_DATA_ACCESS)
|
||||||
#if (CRYPTOPP_BOOL_X64 || CRYPTOPP_BOOL_X86 || CRYPTOPP_BOOL_X32 || defined(__powerpc__) || (__ARM_FEATURE_UNALIGNED >= 1))
|
#if (CRYPTOPP_BOOL_X64 || CRYPTOPP_BOOL_X86 || CRYPTOPP_BOOL_X32 || defined(__powerpc__) || (__ARM_FEATURE_UNALIGNED >= 1))
|
||||||
#define CRYPTOPP_ALLOW_UNALIGNED_DATA_ACCESS
|
#define CRYPTOPP_ALLOW_UNALIGNED_DATA_ACCESS
|
||||||
|
|
|
||||||
4
misc.h
4
misc.h
|
|
@ -59,8 +59,8 @@
|
||||||
#include <byteswap.h>
|
#include <byteswap.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(__GNUC__) && defined(__BMI__)
|
#if defined(__GNUC__) && defined(__BMI__) && !defined(CRYPTOPP_DISABLE_ASM)
|
||||||
# include "cpu.h"
|
# include <immintrin.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif // CRYPTOPP_DOXYGEN_PROCESSING
|
#endif // CRYPTOPP_DOXYGEN_PROCESSING
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue