Skip to content

Commit 40df9df

Browse files
committed
Intel x64 ASM: Add new assembly for AES
Support AES-XTS AVX512/VAES Support AES-GCM AVX512/VAES Support AES-ECB/CBC/CTR AVX512/VAES/AVX1/AES-NI. Remove code from aes_asm.S/aes_asm.asm Add CPU defines for AVX512 and VAES Updated ASM files with new defines for AVX512. Added support for printing out the new CPU Id flags in benchmark. Added new files to Windows projects. aes.c: Supports ECB/CBC/CTR in assembly. Supports calling AVX512/VAES assembly.
1 parent 63fd322 commit 40df9df

25 files changed

Lines changed: 49408 additions & 3419 deletions

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)