File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -89,9 +89,13 @@ void OPENSSL_cpuid_setup(void) {
8989 }
9090 if (MIDR_IS_CPU_MODEL (OPENSSL_arm_midr , ARM_CPU_IMP_ARM , ARM_CPU_PART_V1 )) {
9191 OPENSSL_armcap_P |= ARMV8_NEOVERSE_V1 ;
92+ // CPU capabilities of N1 are a subset of CPU capabilities of V1
93+ OPENSSL_armcap_P |= ARMV8_NEOVERSE_N1 ;
9294 }
9395 if (MIDR_IS_CPU_MODEL (OPENSSL_arm_midr , ARM_CPU_IMP_ARM , ARM_CPU_PART_V2 )) {
9496 OPENSSL_armcap_P |= ARMV8_NEOVERSE_V2 ;
97+ // CPU capabilities of N1 are a subset of CPU capabilities of V1
98+ OPENSSL_armcap_P |= ARMV8_NEOVERSE_N1 ;
9599 }
96100 }
97101
Original file line number Diff line number Diff line change @@ -259,7 +259,10 @@ OPENSSL_INLINE int CRYPTO_is_ARMv8_RNDR_capable(void) {
259259}
260260
261261OPENSSL_INLINE int CRYPTO_is_Neoverse_N1 (void ) {
262- return (OPENSSL_armcap_P & ARMV8_NEOVERSE_N1 ) != 0 ;
262+ // It is Neoverse N1 if only ARMV8_NEOVERSE_N1 = 1 and
263+ // ARMV8_NEOVERSE_<V1|V2> = 0.
264+ return ((OPENSSL_armcap_P & ARMV8_NEOVERSE_N1 ) != 0 &&
265+ (OPENSSL_armcap_P & (ARMV8_NEOVERSE_V1 | ARMV8_NEOVERSE_V2 )) == 0 );
263266}
264267
265268OPENSSL_INLINE int CRYPTO_is_Neoverse_V1 (void ) {
You can’t perform that action at this time.
0 commit comments