Skip to content

Commit 0cecccd

Browse files
authored
Merge pull request wolfSSL#10756 from SparkiDev/aes_asm_ymm_zmm
Intel x64 ASM: Add new assembly for AES
2 parents 39c0336 + a342eba commit 0cecccd

28 files changed

Lines changed: 47480 additions & 3449 deletions

.github/workflows/symbol-prefixes.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ jobs:
4949
{
5050
if (($7 !~ /^[0-9]+$/) ||
5151
($8 ~ /^(wc_|wolf|WOLF|__pfx|fe_|sp_[a-zA-Z090-0_]*[0-9])/) ||
52-
($8 ~ /(_avx[12]|_AVX[12]|_sse[12]|_SSE[12]|_aesni|_AESNI|_bmi2|_x64$)/))
52+
($8 ~ /(_avx[12]|_AVX[12]|_sse[12]|_SSE[12]|_aesni|_AESNI|_vaes|_VAES|_avx512|_AVX512|_bmi2|_x64$)/))
5353
{
5454
next;
5555
}

.wolfssl_known_macro_extras

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -381,6 +381,7 @@ NO_AES_DECRYPT
381381
NO_ARDUINO_DEFAULT
382382
NO_ASM
383383
NO_ASN_OLD_TYPE_NAMES
384+
NO_AVX512_SUPPORT
384385
NO_CAMELLIA_CBC
385386
NO_CERT
386387
NO_CERT_IN_TICKET
@@ -459,6 +460,7 @@ NO_STDIO_FGETS_REMAP
459460
NO_STM32_HMAC
460461
NO_TKERNEL_MEM_POOL
461462
NO_TLSX_PSKKEM_PLAIN_ANNOUNCE
463+
NO_VAES_SUPPORT
462464
NO_VERIFY_OID
463465
NO_WC_DHGENERATEPUBLIC
464466
NO_WC_SHE_GETUID

linuxkm/Kbuild

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -200,6 +200,8 @@ $(obj)/wolfcrypt/src/aes_gcm_asm.o: asflags-y := $(WOLFSSL_ASFLAGS) $(ASFLAGS_FP
200200
$(obj)/wolfcrypt/src/aes_gcm_asm.o: OBJECT_FILES_NON_STANDARD := y
201201
$(obj)/wolfcrypt/src/aes_xts_asm.o: asflags-y := $(WOLFSSL_ASFLAGS) $(ASFLAGS_FPU_DISABLE_SIMD_ENABLE)
202202
$(obj)/wolfcrypt/src/aes_xts_asm.o: OBJECT_FILES_NON_STANDARD := y
203+
$(obj)/wolfcrypt/src/aes_x86_64_asm.o: asflags-y := $(WOLFSSL_ASFLAGS) $(ASFLAGS_FPU_DISABLE_SIMD_ENABLE)
204+
$(obj)/wolfcrypt/src/aes_x86_64_asm.o: OBJECT_FILES_NON_STANDARD := y
203205
$(obj)/wolfcrypt/src/sp_x86_64_asm.o: asflags-y := $(WOLFSSL_ASFLAGS) $(ASFLAGS_FPU_DISABLE_SIMD_ENABLE)
204206
$(obj)/wolfcrypt/src/sp_x86_64_asm.o: OBJECT_FILES_NON_STANDARD := y
205207
$(obj)/wolfcrypt/src/sha256_asm.o: asflags-y := $(WOLFSSL_ASFLAGS) $(ASFLAGS_FPU_DISABLE_SIMD_ENABLE)

src/include.am

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,7 @@ endif
109109

110110
if BUILD_AESNI
111111
src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/aes_asm.S
112+
src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/aes_x86_64_asm.S
112113
if BUILD_X86_ASM
113114
src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/aes_gcm_x86_asm.S
114115
else
@@ -259,6 +260,7 @@ endif BUILD_PPC64_ASM
259260

260261
if BUILD_AESNI
261262
src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/aes_asm.S
263+
src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/aes_x86_64_asm.S
262264
if BUILD_X86_ASM
263265
src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/aes_gcm_x86_asm.S
264266
else
@@ -532,6 +534,7 @@ endif BUILD_PPC64_ASM
532534

533535
if BUILD_AESNI
534536
src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/aes_asm.S
537+
src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/aes_x86_64_asm.S
535538
if BUILD_X86_ASM
536539
src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/aes_gcm_x86_asm.S
537540
else
@@ -867,6 +870,7 @@ endif BUILD_AES
867870

868871
if BUILD_AESNI
869872
src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/aes_asm.S
873+
src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/aes_x86_64_asm.S
870874
if BUILD_X86_ASM
871875
src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/aes_gcm_x86_asm.S
872876
else
@@ -1708,6 +1712,7 @@ endif
17081712
if !BUILD_FIPS_V2_PLUS
17091713
if BUILD_AESNI
17101714
src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/aes_asm.S
1715+
src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/aes_x86_64_asm.S
17111716
if BUILD_X86_ASM
17121717
src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/aes_gcm_x86_asm.S
17131718
else

wolfcrypt/benchmark/benchmark.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4794,6 +4794,8 @@ static void print_cpu_features(void)
47944794
if (IS_INTEL_MOVBE(cpuid_flags)) printf(" movbe");
47954795
if (IS_INTEL_BMI1(cpuid_flags)) printf(" bmi1");
47964796
if (IS_INTEL_SHA(cpuid_flags)) printf(" sha");
4797+
if (IS_INTEL_VAES(cpuid_flags)) printf(" vaes");
4798+
if (IS_INTEL_AVX512(cpuid_flags)) printf(" avx512");
47974799
#endif
47984800
#ifdef __aarch64__
47994801
printf("Aarch64 -");

0 commit comments

Comments
 (0)