From 2745ef908283e38bd1695ae226e63b140dc805f8 Mon Sep 17 00:00:00 2001 From: Adam Langley Date: Mon, 12 Nov 2018 11:57:32 -0800 Subject: [PATCH] Also accept __ARM_NEON The Clang used in the Android SDK, at least, defines both __ARM_NEON__ and __ARM_NEON for ARMv7, but only the latter for AArch64. This change switches each use of __ARM_NEON__ to accept either. Change-Id: I3b5d5badc9ff0210888fd456e9329dc53a2b9b09 Reviewed-on: https://boringssl-review.googlesource.com/c/33104 Commit-Queue: Adam Langley Commit-Queue: David Benjamin Reviewed-by: David Benjamin CQ-Verified: CQ bot account: commit-bot@chromium.org --- crypto/crypto.c | 3 ++- include/openssl/cpu.h | 5 +++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/crypto/crypto.c b/crypto/crypto.c index 783d7d961..5f1a69a8c 100644 --- a/crypto/crypto.c +++ b/crypto/crypto.c @@ -82,7 +82,8 @@ HIDDEN unsigned long OPENSSL_ppc64le_hwcap2 = 0; #if defined(OPENSSL_STATIC_ARMCAP) HIDDEN uint32_t OPENSSL_armcap_P = -#if defined(OPENSSL_STATIC_ARMCAP_NEON) || defined(__ARM_NEON__) +#if defined(OPENSSL_STATIC_ARMCAP_NEON) || \ + (defined(__ARM_NEON__) || defined(__ARM_NEON)) ARMV7_NEON | #endif #if defined(OPENSSL_STATIC_ARMCAP_AES) || defined(__ARM_FEATURE_CRYPTO) diff --git a/include/openssl/cpu.h b/include/openssl/cpu.h index b2759fed1..edac98ea2 100644 --- a/include/openssl/cpu.h +++ b/include/openssl/cpu.h @@ -125,7 +125,7 @@ OPENSSL_INLINE int CRYPTO_is_NEON_capable(void) { // hand-written NEON assembly. For now, continue to apply the workaround even // when the compiler is instructed to freely emit NEON code. See // https://crbug.com/341598 and https://crbug.com/606629. -#if defined(__ARM_NEON__) && !defined(OPENSSL_ARM) +#if (defined(__ARM_NEON__) || defined(__ARM_NEON)) && !defined(OPENSSL_ARM) return 1; #else return CRYPTO_is_NEON_capable_at_runtime(); @@ -153,7 +153,8 @@ int CRYPTO_is_ARMv8_PMULL_capable(void); #else OPENSSL_INLINE int CRYPTO_is_NEON_capable(void) { -#if defined(OPENSSL_STATIC_ARMCAP_NEON) || defined(__ARM_NEON__) +#if defined(OPENSSL_STATIC_ARMCAP_NEON) || \ + (defined(__ARM_NEON__) || defined(__ARM_NEON)) return 1; #else return 0;