summaryrefslogtreecommitdiff
path: root/crc-simd.cpp
diff options
context:
space:
mode:
authorJeffrey Walton <noloader@gmail.com>2017-09-17 20:07:53 -0400
committerJeffrey Walton <noloader@gmail.com>2017-09-17 20:07:53 -0400
commitf0c2324f6be1a3b91b88412354e7c80e19cd03e7 (patch)
treee741c2a1b1c2e340d01afc7d6734773842541a84 /crc-simd.cpp
parent09f1a2fb38fa493de110d620472bc5b3617a2f8e (diff)
downloadcryptopp-git-f0c2324f6be1a3b91b88412354e7c80e19cd03e7.tar.gz
Fix armeabi and armv7-a for Android (GH #509)
Diffstat (limited to 'crc-simd.cpp')
-rw-r--r--crc-simd.cpp15
1 files changed, 8 insertions, 7 deletions
diff --git a/crc-simd.cpp b/crc-simd.cpp
index fe287279..67ab460f 100644
--- a/crc-simd.cpp
+++ b/crc-simd.cpp
@@ -11,8 +11,10 @@
#include "misc.h"
// We set CRYPTOPP_ARM_CRC32_AVAILABLE based on compiler version.
-// If the crypto is not available, then we have to disable it here.
-#if !(defined(__ARM_FEATURE_CRC32) || defined(_MSC_VER))
+// If the crc is not available, then we have to disable it here.
+// Android does not provide -march=armv8-a+crc or -march=armv8.1-a+crc, so
+// it looks like we will have to disable CRC acceleration of their devices.
+#if !(defined(__ARM_FEATURE_CRC32) || defined(_MSC_VER)) || defined(__ANDROID__)
# undef CRYPTOPP_ARM_CRC32_AVAILABLE
#endif
@@ -20,12 +22,11 @@
# include <nmmintrin.h>
#endif
-#if (CRYPTOPP_ARM_NEON_AVAILABLE)
+#if (CRYPTOPP_ARM_CRC32_AVAILABLE)
# include <arm_neon.h>
-#endif
-
-#if defined(CRYPTOPP_ARM_ACLE_AVAILABLE)
-# include <arm_acle.h>
+# if defined(CRYPTOPP_ARM_ACLE_AVAILABLE)
+# include <arm_acle.h>
+# endif
#endif
#ifdef CRYPTOPP_GNU_STYLE_INLINE_ASSEMBLY