summaryrefslogtreecommitdiffstats
path: root/crypto/armcap.c
diff options
context:
space:
mode:
authorTom Cosgrove <tom.cosgrove@arm.com>2023-01-25 19:34:25 +0000
committerPauli <pauli@openssl.org>2023-01-30 09:49:13 +1100
commitd79bb5316e1318bd776d6b2d6723a36778e07f9d (patch)
treea77514f4dd4d16fec8e0eb45c8959f9b4ffe3e41 /crypto/armcap.c
parenta4347a9a57dcb985283bba03dd3b16294b55945b (diff)
Enable AES optimisation on Apple Silicon M2-based systems
Gives a performance enhancement of 16-38%, similar to the M1. Reviewed-by: Tomas Mraz <tomas@openssl.org> Reviewed-by: Hugo Landau <hlandau@openssl.org> Reviewed-by: Paul Dale <pauli@openssl.org> (Merged from https://github.com/openssl/openssl/pull/20141)
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 71296786c3..68f735baec 100644
--- a/crypto/armcap.c
+++ b/crypto/armcap.c
@@ -254,7 +254,8 @@ void OPENSSL_cpuid_setup(void)
OPENSSL_armcap_P |= ARMV8_SHA3;
len = sizeof(uarch);
if ((sysctlbyname("machdep.cpu.brand_string", uarch, &len, NULL, 0) == 0) &&
- (strncmp(uarch, "Apple M1", 8) == 0))
+ ((strncmp(uarch, "Apple M1", 8) == 0) ||
+ (strncmp(uarch, "Apple M2", 8) == 0)))
OPENSSL_armcap_P |= ARMV8_UNROLL8_EOR3;
}
}