diff options
| author | Jeffrey Walton <noloader@gmail.com> | 2017-08-17 02:15:42 -0400 |
|---|---|---|
| committer | Jeffrey Walton <noloader@gmail.com> | 2017-08-17 02:15:42 -0400 |
| commit | 7779fa3e7ab3ddf02efdd9a688cb874ac93b8e98 (patch) | |
| tree | 86d47ec92019d83e8df3a3efae5703cafca14eed | |
| parent | 6e35e7387a7bc9c7fd81a4c80266d500c81d051a (diff) | |
| download | cryptopp-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.h | 2 | ||||
| -rw-r--r-- | cpu.cpp | 6 | ||||
| -rw-r--r-- | cpu.h | 2 |
3 files changed, 7 insertions, 3 deletions
@@ -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
@@ -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>
@@ -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__)
|
