summaryrefslogtreecommitdiffstats
path: root/crypto/armcap.c
diff options
context:
space:
mode:
authorXiaokangQian <xiaokang.qian@arm.com>2022-05-18 02:27:55 +0000
committerPauli <pauli@openssl.org>2022-05-23 11:05:51 +1000
commit9224a407f9bb4c2af087ecf6e691c9027b594ec0 (patch)
treef82608d1121600b4d0c5399a86892a08e1e0226f /crypto/armcap.c
parentbe4b2ed2fbae0efe8d4984d1bfefe5a8e3a45d02 (diff)
Apply the AES-GCM unroll8 optimization patch to Neoverse N2
The loop unrolling and use of EOR3 can improve N2 performance by up to 32% Signed-off-by: XiaokangQian <xiaokang.qian@arm.com> Reviewed-by: Tomas Mraz <tomas@openssl.org> Reviewed-by: Paul Dale <pauli@openssl.org> (Merged from https://github.com/openssl/openssl/pull/18350)
Diffstat (limited to 'crypto/armcap.c')
-rw-r--r--crypto/armcap.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/crypto/armcap.c b/crypto/armcap.c
index bcd6b4052b..7e6cd8fe90 100644
--- a/crypto/armcap.c
+++ b/crypto/armcap.c
@@ -375,7 +375,8 @@ void OPENSSL_cpuid_setup(void)
(OPENSSL_armcap_P & ARMV7_NEON)) {
OPENSSL_armv8_rsa_neonized = 1;
}
- if ((MIDR_IS_CPU_MODEL(OPENSSL_arm_midr, ARM_CPU_IMP_ARM, ARM_CPU_PART_V1)) &&
+ if ((MIDR_IS_CPU_MODEL(OPENSSL_arm_midr, ARM_CPU_IMP_ARM, ARM_CPU_PART_V1) ||
+ MIDR_IS_CPU_MODEL(OPENSSL_arm_midr, ARM_CPU_IMP_ARM, ARM_CPU_PART_N2)) &&
(OPENSSL_armcap_P & ARMV8_SHA3))
OPENSSL_armcap_P |= ARMV8_UNROLL8_EOR3;
# endif