From a8b33272654389b0ce9d5935ae4acc861794e7c8 Mon Sep 17 00:00:00 2001 From: Jeffrey Walton Date: Mon, 7 Aug 2017 11:33:12 -0400 Subject: [PATCH] Add Android CPU feature detection for NEON Also see https://developer.android.com/ndk/guides/cpu-features.html --- neon.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/neon.cpp b/neon.cpp index f96ea993..99d87463 100644 --- a/neon.cpp +++ b/neon.cpp @@ -73,9 +73,18 @@ bool CPU_TryNEON_ARM() } return result; # else -# if defined(__linux__) && (defined(__aarch32__) || defined(__aarch64__)) +# if defined(__android__) && defined(CRYPTOPP_BOOL_ARM64) + if (android_getCpuFeatures() & ANDROID_CPU_ARM64_FEATURE_ASIMD) + return true; +# elif defined(__android__) && defined(CRYPTOPP_BOOL_ARM32) + if (android_getCpuFeatures() & ANDROID_CPU_ARM_FEATURE_NEON) + return true; +# elif defined(__linux__) && defined(__aarch64__) if (getauxval(AT_HWCAP) & HWCAP_ASIMD) return true; +# elif defined(__linux__) && defined(__aarch32__) + if (getauxval(AT_HWCAP2) & HWCAP2_ASIMD) + return true; # elif defined(__linux__) && defined(__arm__) if (getauxval(AT_HWCAP) & HWCAP_ARM_NEON) return true;