From 51cff62bd0e2165e580726e6717483555d687c65 Mon Sep 17 00:00:00 2001 From: Jeffrey Walton Date: Mon, 31 Jul 2017 05:22:35 -0400 Subject: [PATCH] Fix ARMv7 --- config.h | 2 +- crc-simd.cpp | 9 ++++++--- gcm-simd.cpp | 9 ++++++--- sha-simd.cpp | 5 +++++ 4 files changed, 18 insertions(+), 7 deletions(-) diff --git a/config.h b/config.h index af32ea98..65196a37 100644 --- a/config.h +++ b/config.h @@ -550,7 +550,7 @@ NAMESPACE_END // 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_ARM_CRC32_AVAILABLE) && !defined(CRYPTOPP_DISABLE_ASM) -# if defined(__ARM_FEATURE_CRYPTO) || (CRYPTOPP_MSC_VERSION >= 2000) || \ +# if defined(__ARM_FEATURE_CRC32) || (CRYPTOPP_MSC_VERSION >= 2000) || \ (CRYPTOPP_GCC_VERSION >= 40800) || (CRYPTOPP_LLVM_CLANG_VERSION >= 30500) # define CRYPTOPP_ARM_CRC32_AVAILABLE 1 # endif diff --git a/crc-simd.cpp b/crc-simd.cpp index 1e74f711..181327a0 100644 --- a/crc-simd.cpp +++ b/crc-simd.cpp @@ -10,15 +10,18 @@ #include "config.h" #include "misc.h" +// Clang and GCC hoops... +#if !(defined(__ARM_FEATURE_CRC32) || defined(__aarch32__) || defined(__aarch64__) || defined(_MSC_VER)) +# undef CRYPTOPP_ARM_CRC32_AVAILABLE +#endif + #if (CRYPTOPP_SSE42_AVAILABLE) # include "nmmintrin.h" #endif -#if (CRYPTOPP_ARM_NEON_AVAILABLE) +#if (CRYPTOPP_ARM_CRC32_AVAILABLE) # include "arm_neon.h" -# if (CRYPTOPP_ARM_CRC32_AVAILABLE) # include "arm_acle.h" -# endif #endif #ifdef CRYPTOPP_GNU_STYLE_INLINE_ASSEMBLY diff --git a/gcm-simd.cpp b/gcm-simd.cpp index c02f6dd4..ccf713ac 100644 --- a/gcm-simd.cpp +++ b/gcm-simd.cpp @@ -10,16 +10,19 @@ #include "config.h" #include "misc.h" +// Clang and GCC hoops... +#if !(defined(__ARM_FEATURE_CRYPTO) || defined(__aarch32__) || defined(__aarch64__) || defined(_MSC_VER)) +# undef CRYPTOPP_ARM_PMULL_AVAILABLE +#endif + #if (CRYPTOPP_CLMUL_AVAILABLE) # include "tmmintrin.h" # include "wmmintrin.h" #endif -#if (CRYPTOPP_ARM_NEON_AVAILABLE) +#if (CRYPTOPP_ARM_PMULL_AVAILABLE) # include "arm_neon.h" -# if (CRYPTOPP_ARM_PMULL_AVAILABLE) # include "arm_acle.h" -# endif #endif #ifdef CRYPTOPP_GNU_STYLE_INLINE_ASSEMBLY diff --git a/sha-simd.cpp b/sha-simd.cpp index e2f92f41..ce1644ae 100644 --- a/sha-simd.cpp +++ b/sha-simd.cpp @@ -10,6 +10,11 @@ #include "config.h" #include "misc.h" +// Clang and GCC hoops... +#if !(defined(__ARM_FEATURE_CRYPTO) || defined(__aarch32__) || defined(__aarch64__) || defined(_MSC_VER)) +# undef CRYPTOPP_ARM_SHA_AVAILABLE +#endif + #if (CRYPTOPP_SSE42_AVAILABLE) # include "nmmintrin.h" #endif