Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
78 changes: 32 additions & 46 deletions wolfcrypt/src/aes_gcm_asm.S
Original file line number Diff line number Diff line change
Expand Up @@ -19,24 +19,10 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA
*/

#ifdef WOLFSSL_USER_SETTINGS
#ifdef WOLFSSL_USER_SETTINGS_ASM
/*
* user_settings_asm.h is a file generated by the script user_settings_asm.sh.
* The script takes in a user_settings.h and produces user_settings_asm.h, which
* is a stripped down version of user_settings.h containing only preprocessor
* directives. This makes the header safe to include in assembly (.S) files.
*/
#include "user_settings_asm.h"
#else
/*
* Note: if user_settings.h contains any C code (e.g. a typedef or function
* prototype), including it here in an assembly (.S) file will cause an
* assembler failure. See user_settings_asm.h above.
*/
#include "user_settings.h"
#endif /* WOLFSSL_USER_SETTINGS_ASM */
#endif /* WOLFSSL_USER_SETTINGS */
#define WC_FIPS_LL_CRYPTO
#define _WC_BUILDING_AES_GCM_ASM_S

#include <wolfssl/wolfcrypt/libwolfssl_sources_asm.h>

#ifndef HAVE_INTEL_AVX1
#define HAVE_INTEL_AVX1
Expand Down Expand Up @@ -10190,7 +10176,7 @@ _AES_GCM_init_avx1:
movq %rdx, %r10
movl %ecx, %r11d
movq 24(%rsp), %rax
subq $16, %rsp
subq $24, %rsp
vpxor %xmm4, %xmm4, %xmm4
movl %r11d, %edx
cmpl $12, %edx
Expand Down Expand Up @@ -10483,7 +10469,7 @@ L_AES_GCM_init_avx1_iv_done:
vpaddd L_avx1_aes_gcm_one(%rip), %xmm4, %xmm4
vmovdqa %xmm5, (%r8)
vmovdqa %xmm4, (%r9)
addq $16, %rsp
addq $24, %rsp
popq %r13
popq %r12
repz retq
Expand Down Expand Up @@ -11811,7 +11797,7 @@ _AES_GCM_decrypt_update_avx1:
movq %rcx, %r11
movq 32(%rsp), %rax
movq 40(%rsp), %r12
subq $0xa8, %rsp
subq $0xb0, %rsp
vmovdqa (%r9), %xmm6
vmovdqa (%rax), %xmm5
vpsrlq $63, %xmm5, %xmm9
Expand Down Expand Up @@ -12393,7 +12379,7 @@ L_AES_GCM_decrypt_update_avx1_last_block_done:
L_AES_GCM_decrypt_update_avx1_done_dec:
vmovdqa %xmm6, (%r9)
vzeroupper
addq $0xa8, %rsp
addq $0xb0, %rsp
popq %r14
popq %r12
popq %r13
Expand Down Expand Up @@ -13379,7 +13365,7 @@ _AES_GCM_encrypt_avx2:
movl 64(%rsp), %r14d
movq 72(%rsp), %rsi
movl 80(%rsp), %r9d
subq $0xb8, %rsp
subq $0xc0, %rsp
vpxor %xmm4, %xmm4, %xmm4
vpxor %xmm6, %xmm6, %xmm6
movl %ebx, %edx
Expand Down Expand Up @@ -14825,7 +14811,7 @@ L_AES_GCM_encrypt_avx2_store_tag_16:
vmovdqu %xmm0, (%r15)
L_AES_GCM_encrypt_avx2_store_tag_done:
vzeroupper
addq $0xb8, %rsp
addq $0xc0, %rsp
popq %r14
popq %rbx
popq %r15
Expand Down Expand Up @@ -15999,7 +15985,7 @@ _AES_GCM_init_avx2:
movq %rdx, %r10
movl %ecx, %r11d
movq 24(%rsp), %rax
subq $16, %rsp
subq $24, %rsp
vpxor %xmm4, %xmm4, %xmm4
movl %r11d, %edx
cmpl $12, %edx
Expand Down Expand Up @@ -16248,7 +16234,7 @@ L_AES_GCM_init_avx2_iv_done:
vmovdqu %xmm5, (%r8)
vmovdqu %xmm4, (%r9)
vzeroupper
addq $16, %rsp
addq $24, %rsp
popq %r12
popq %rbx
repz retq
Expand Down Expand Up @@ -16451,7 +16437,7 @@ _AES_GCM_encrypt_update_avx2:
movq %rcx, %r11
movq 32(%rsp), %rax
movq 40(%rsp), %r12
subq $0x98, %rsp
subq $0xa0, %rsp
vmovdqu (%r9), %xmm6
vmovdqu (%rax), %xmm5
vmovdqu (%r12), %xmm4
Expand Down Expand Up @@ -17282,7 +17268,7 @@ L_AES_GCM_encrypt_update_avx2_done_enc:
vmovdqu %xmm6, (%r9)
vmovdqu %xmm4, (%r12)
vzeroupper
addq $0x98, %rsp
addq $0xa0, %rsp
popq %r14
popq %r13
popq %r12
Expand All @@ -17303,7 +17289,7 @@ AES_GCM_encrypt_final_avx2:
_AES_GCM_encrypt_final_avx2:
#endif /* __APPLE__ */
movq 8(%rsp), %rax
subq $16, %rsp
subq $24, %rsp
vmovdqu (%rdi), %xmm4
vmovdqu (%r9), %xmm5
vmovdqu (%rax), %xmm6
Expand Down Expand Up @@ -17357,7 +17343,7 @@ L_AES_GCM_encrypt_final_avx2_store_tag_16:
vmovdqu %xmm0, (%rsi)
L_AES_GCM_encrypt_final_avx2_store_tag_done:
vzeroupper
addq $16, %rsp
addq $24, %rsp
repz retq
#ifndef __APPLE__
.size AES_GCM_encrypt_final_avx2,.-AES_GCM_encrypt_final_avx2
Expand All @@ -17381,7 +17367,7 @@ _AES_GCM_decrypt_update_avx2:
movq %rcx, %r11
movq 32(%rsp), %rax
movq 40(%rsp), %r12
subq $0xa8, %rsp
subq $0xb0, %rsp
vmovdqu (%r9), %xmm6
vmovdqu (%rax), %xmm5
vmovdqu (%r12), %xmm4
Expand Down Expand Up @@ -17865,7 +17851,7 @@ L_AES_GCM_decrypt_update_avx2_done_dec:
vmovdqu %xmm6, (%r9)
vmovdqu %xmm4, (%r12)
vzeroupper
addq $0xa8, %rsp
addq $0xb0, %rsp
popq %r14
popq %r12
popq %r13
Expand Down Expand Up @@ -20407,7 +20393,7 @@ _AES_GCM_decrypt_vaes:
movq 80(%rsp), %r15
movl 88(%rsp), %r10d
movq 96(%rsp), %rbp
subq $0x250, %rsp
subq $0x258, %rsp
vpxor %xmm5, %xmm5, %xmm5
vpxor %xmm15, %xmm15, %xmm15
cmpl $12, %ebx
Expand Down Expand Up @@ -22328,7 +22314,7 @@ L_AES_GCM_decrypt_vaes_cmp_tag_16:
L_AES_GCM_decrypt_vaes_cmp_tag_done:
movl %ebx, (%rbp)
vzeroupper
addq $0x250, %rsp
addq $0x258, %rsp
popq %rbp
popq %r15
popq %r14
Expand Down Expand Up @@ -22357,7 +22343,7 @@ _AES_GCM_init_vaes:
movq %rdx, %r10
movl %ecx, %r11d
movq 24(%rsp), %rax
subq $16, %rsp
subq $24, %rsp
vpxor %xmm4, %xmm4, %xmm4
movl %r11d, %edx
cmpl $12, %edx
Expand Down Expand Up @@ -22650,7 +22636,7 @@ L_AES_GCM_init_vaes_iv_done:
vpaddd L_vaes_aes_gcm_one(%rip), %xmm4, %xmm4
vmovdqa %xmm5, (%r8)
vmovdqa %xmm4, (%r9)
addq $16, %rsp
addq $24, %rsp
popq %r13
popq %r12
repz retq
Expand All @@ -22671,7 +22657,7 @@ _AES_GCM_aad_update_vaes:
#endif /* __APPLE__ */
movq %rdx, %r8
movq %rcx, %r9
subq $0x200, %rsp
subq $0x208, %rsp
vmovdqa (%r8), %xmm15
vmovdqa (%r9), %xmm6
xorl %edx, %edx
Expand Down Expand Up @@ -23185,7 +23171,7 @@ L_AES_GCM_aad_update_vaes_tail:
L_AES_GCM_aad_update_vaes_done:
vmovdqa %xmm15, (%r8)
vzeroupper
addq $0x200, %rsp
addq $0x208, %rsp
repz retq
#ifndef __APPLE__
.size AES_GCM_aad_update_vaes,.-AES_GCM_aad_update_vaes
Expand Down Expand Up @@ -29305,7 +29291,7 @@ _AES_GCM_decrypt_avx512:
movq 80(%rsp), %r15
movl 88(%rsp), %r10d
movq 96(%rsp), %rbp
subq $0x460, %rsp
subq $0x468, %rsp
vpxor %xmm4, %xmm4, %xmm4
vpxor %xmm6, %xmm6, %xmm6
cmpl $12, %ebx
Expand Down Expand Up @@ -31770,7 +31756,7 @@ L_AES_GCM_decrypt_avx512_cmp_tag_16:
L_AES_GCM_decrypt_avx512_cmp_tag_done:
movl %ebx, (%rbp)
vzeroupper
addq $0x460, %rsp
addq $0x468, %rsp
popq %rbp
popq %r15
popq %r14
Expand Down Expand Up @@ -31799,7 +31785,7 @@ _AES_GCM_init_avx512:
movq %rdx, %r10
movl %ecx, %r11d
movq 24(%rsp), %rax
subq $16, %rsp
subq $24, %rsp
vpxor %xmm4, %xmm4, %xmm4
movl %r11d, %edx
cmpl $12, %edx
Expand Down Expand Up @@ -32092,7 +32078,7 @@ L_AES_GCM_init_avx512_iv_done:
vpaddd L_avx512_aes_gcm_one(%rip), %xmm4, %xmm4
vmovdqa %xmm5, (%r8)
vmovdqa %xmm4, (%r9)
addq $16, %rsp
addq $24, %rsp
popq %r13
popq %r12
repz retq
Expand All @@ -32113,7 +32099,7 @@ _AES_GCM_aad_update_avx512:
#endif /* __APPLE__ */
movq %rdx, %r8
movq %rcx, %r9
subq $0x100, %rsp
subq $0x108, %rsp
vmovdqa (%r8), %xmm6
vmovdqa (%r9), %xmm7
xorl %edx, %edx
Expand Down Expand Up @@ -32526,7 +32512,7 @@ L_AES_GCM_aad_update_avx512_tail:
L_AES_GCM_aad_update_avx512_done:
vmovdqa %xmm6, (%r8)
vzeroupper
addq $0x100, %rsp
addq $0x108, %rsp
repz retq
#ifndef __APPLE__
.size AES_GCM_aad_update_avx512,.-AES_GCM_aad_update_avx512
Expand Down Expand Up @@ -32669,7 +32655,7 @@ _AES_GCM_encrypt_update_avx512:
movq %rcx, %r11
movq 56(%rsp), %rax
movq 64(%rsp), %r12
subq $0x410, %rsp
subq $0x418, %rsp
vmovdqa (%r9), %xmm6
vmovdqa (%rax), %xmm5
vpsrlq $63, %xmm5, %xmm9
Expand Down Expand Up @@ -34389,7 +34375,7 @@ L_AES_GCM_encrypt_update_avx512_last_block_done:
L_AES_GCM_encrypt_update_avx512_done_enc:
vmovdqa %xmm6, (%r9)
vzeroupper
addq $0x410, %rsp
addq $0x418, %rsp
popq %rbp
popq %rbx
popq %r15
Expand Down
Loading
Loading