Add Android CPU feature detection for NEON

Also see https://developer.android.com/ndk/guides/cpu-features.html
pull/461/head
Jeffrey Walton 2017-08-07 11:33:12 -04:00
parent d95a38a9fc
commit a8b3327265
No known key found for this signature in database
GPG Key ID: B36AB348921B1838
1 changed files with 10 additions and 1 deletions

View File

@ -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;