summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeffrey Walton <noloader@gmail.com>2017-08-17 02:15:42 -0400
committerJeffrey Walton <noloader@gmail.com>2017-08-17 02:15:42 -0400
commit7779fa3e7ab3ddf02efdd9a688cb874ac93b8e98 (patch)
tree86d47ec92019d83e8df3a3efae5703cafca14eed
parent6e35e7387a7bc9c7fd81a4c80266d500c81d051a (diff)
downloadcryptopp-git-7779fa3e7ab3ddf02efdd9a688cb874ac93b8e98.tar.gz
Fix NEON detection on Aarch32 and Aarch64
I wish GCC would get its head out of its ass and define the apprpriate defines. NEON/ASIMD cannot be disgorged from Aarch32/Aarch64 just like SSE2 cannot be disgorged from x86_64. They are core instruction sets
-rw-r--r--config.h2
-rw-r--r--cpu.cpp6
-rw-r--r--cpu.h2
3 files changed, 7 insertions, 3 deletions
diff --git a/config.h b/config.h
index ba779641..0b48e8a6 100644
--- a/config.h
+++ b/config.h
@@ -458,7 +458,7 @@ NAMESPACE_END
// 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)
+# if defined(__ARM_NEON__) || defined(__ARM_NEON) || defined(__aarch32__) || defined(__aarch64__) || defined(_M_ARM)
# define CRYPTOPP_BOOL_NEON_INTRINSICS_AVAILABLE 1
# endif
#endif
diff --git a/cpu.cpp b/cpu.cpp
index 366c35e8..dcd94dd4 100644
--- a/cpu.cpp
+++ b/cpu.cpp
@@ -11,7 +11,11 @@
#include "cpu.h"
#include "misc.h"
-#include <algorithm>
+#include "stdcpp.h"
+
+#if CRYPTOPP_BOOL_NEON_INTRINSICS_AVAILABLE
+# include <arm_neon.h>
+#endif
#ifndef CRYPTOPP_MS_STYLE_INLINE_ASSEMBLY
#include <signal.h>
diff --git a/cpu.h b/cpu.h
index d833f95c..d1ccf6f1 100644
--- a/cpu.h
+++ b/cpu.h
@@ -22,7 +22,7 @@
# if defined(__GNUC__)
# include <stdint.h>
# endif
-# if defined(__ARM_NEON) || defined(_MSC_VER)
+# if defined(__ARM_NEON) || defined(__aarch32__) || defined(__aarch64__) || defined(_MSC_VER)
# include <arm_neon.h>
# endif
# if defined(__GNUC__) && !defined(__apple_build_version__)