Skip to content

Commit 2c47fd8

Browse files
committed
ML-KEM assembly: AVX512F and AVX512VBMI.
New assembly for ML-KEM for Intel x64 machines that support AVX512 extensions. Update how much is added to the stack of others.
1 parent d97ca01 commit 2c47fd8

11 files changed

Lines changed: 60148 additions & 692 deletions

File tree

.wolfssl_known_macro_extras

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -401,6 +401,8 @@ NO_ARDUINO_DEFAULT
401401
NO_ASM
402402
NO_ASN_OLD_TYPE_NAMES
403403
NO_AVX512_SUPPORT
404+
NO_AVX512_VBMI2_SUPPORT
405+
NO_AVX512_VBMI_SUPPORT
404406
NO_CAMELLIA_CBC
405407
NO_CERT
406408
NO_CERT_IN_TICKET
@@ -898,6 +900,7 @@ WOLFSSL_MANUALLY_SELECT_DEVICE_CONFIG
898900
WOLFSSL_MDK5
899901
WOLFSSL_MEM_FAIL_COUNT
900902
WOLFSSL_MICROCHIP_AESGCM
903+
WOLFSSL_MLKEM_ASM_TEST
901904
WOLFSSL_MLKEM_INVNTT_UNROLL
902905
WOLFSSL_MLKEM_NO_MALLOC
903906
WOLFSSL_MLKEM_NTT_UNROLL

wolfcrypt/src/cpuid.c

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,12 @@
149149
if (cpuid_flag(7, 0, EBX, 29)) { new_cpuid_flags |= CPUID_SHA ; }
150150
if (cpuid_flag(7, 0, ECX, 9)) { new_cpuid_flags |= CPUID_VAES ; }
151151
if (cpuid_flag(7, 0, EBX, 16)) { new_cpuid_flags |= CPUID_AVX512; }
152+
if (cpuid_flag(7, 0, ECX, 1)) {
153+
new_cpuid_flags |= CPUID_AVX512_VBMI;
154+
}
155+
if (cpuid_flag(7, 0, ECX, 6)) {
156+
new_cpuid_flags |= CPUID_AVX512_VBMI2;
157+
}
152158
if (cpuid_is_intel()) { new_cpuid_flags |= CPUID_INTEL ; }
153159
if (cpuid_is_amd()) { new_cpuid_flags |= CPUID_AMD ; }
154160
(void)wolfSSL_Atomic_Uint_CompareExchange

0 commit comments

Comments
 (0)