diff options
Diffstat (limited to 'deps/openssl/config/archs/VC-WIN64A/asm/crypto/aes/vpaes-x86_64.asm')
-rw-r--r-- | deps/openssl/config/archs/VC-WIN64A/asm/crypto/aes/vpaes-x86_64.asm | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/aes/vpaes-x86_64.asm b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/aes/vpaes-x86_64.asm index 3edde9fdbc..b6814770fb 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/aes/vpaes-x86_64.asm +++ b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/aes/vpaes-x86_64.asm @@ -23,6 +23,7 @@ section .text code align=64 ALIGN 16 _vpaes_encrypt_core: + mov r9,rdx mov r11,16 mov eax,DWORD[240+rdx] @@ -111,8 +112,10 @@ DB 102,15,56,0,193 + ALIGN 16 _vpaes_decrypt_core: + mov r9,rdx mov eax,DWORD[240+rdx] movdqa xmm1,xmm9 @@ -217,6 +220,7 @@ DB 102,15,56,0,194 + ALIGN 16 _vpaes_schedule_core: @@ -224,6 +228,7 @@ _vpaes_schedule_core: + call _vpaes_preheat movdqa xmm8,XMMWORD[$L$k_rcon] movdqu xmm0,XMMWORD[rdi] @@ -402,8 +407,10 @@ $L$schedule_mangle_last_dec: + ALIGN 16 _vpaes_schedule_192_smear: + pshufd xmm1,xmm6,0x80 pshufd xmm0,xmm7,0xFE pxor xmm6,xmm1 @@ -433,9 +440,11 @@ _vpaes_schedule_192_smear: + ALIGN 16 _vpaes_schedule_round: + pxor xmm1,xmm1 DB 102,65,15,58,15,200,15 DB 102,69,15,58,15,192,15 @@ -500,8 +509,10 @@ DB 102,15,56,0,195 + ALIGN 16 _vpaes_schedule_transform: + movdqa xmm1,xmm9 pandn xmm1,xmm0 psrld xmm1,4 @@ -538,8 +549,10 @@ DB 102,15,56,0,193 + ALIGN 16 _vpaes_schedule_mangle: + movdqa xmm4,xmm0 movdqa xmm5,XMMWORD[$L$k_mc_forward] test rcx,rcx @@ -609,6 +622,7 @@ DB 102,15,56,0,217 + global vpaes_set_encrypt_key ALIGN 16 @@ -622,6 +636,7 @@ $L$SEH_begin_vpaes_set_encrypt_key: mov rdx,r8 + lea rsp,[((-184))+rsp] movaps XMMWORD[16+rsp],xmm6 movaps XMMWORD[32+rsp],xmm7 @@ -658,6 +673,7 @@ $L$enc_key_epilogue: mov rdi,QWORD[8+rsp] ;WIN64 epilogue mov rsi,QWORD[16+rsp] DB 0F3h,0C3h ;repret + $L$SEH_end_vpaes_set_encrypt_key: global vpaes_set_decrypt_key @@ -673,6 +689,7 @@ $L$SEH_begin_vpaes_set_decrypt_key: mov rdx,r8 + lea rsp,[((-184))+rsp] movaps XMMWORD[16+rsp],xmm6 movaps XMMWORD[32+rsp],xmm7 @@ -714,6 +731,7 @@ $L$dec_key_epilogue: mov rdi,QWORD[8+rsp] ;WIN64 epilogue mov rsi,QWORD[16+rsp] DB 0F3h,0C3h ;repret + $L$SEH_end_vpaes_set_decrypt_key: global vpaes_encrypt @@ -729,6 +747,7 @@ $L$SEH_begin_vpaes_encrypt: mov rdx,r8 + lea rsp,[((-184))+rsp] movaps XMMWORD[16+rsp],xmm6 movaps XMMWORD[32+rsp],xmm7 @@ -760,6 +779,7 @@ $L$enc_epilogue: mov rdi,QWORD[8+rsp] ;WIN64 epilogue mov rsi,QWORD[16+rsp] DB 0F3h,0C3h ;repret + $L$SEH_end_vpaes_encrypt: global vpaes_decrypt @@ -775,6 +795,7 @@ $L$SEH_begin_vpaes_decrypt: mov rdx,r8 + lea rsp,[((-184))+rsp] movaps XMMWORD[16+rsp],xmm6 movaps XMMWORD[32+rsp],xmm7 @@ -806,6 +827,7 @@ $L$dec_epilogue: mov rdi,QWORD[8+rsp] ;WIN64 epilogue mov rsi,QWORD[16+rsp] DB 0F3h,0C3h ;repret + $L$SEH_end_vpaes_decrypt: global vpaes_cbc_encrypt @@ -823,6 +845,7 @@ $L$SEH_begin_vpaes_cbc_encrypt: mov r9,QWORD[48+rsp] + xchg rdx,rcx sub rcx,16 jc NEAR $L$cbc_abort @@ -884,6 +907,7 @@ $L$cbc_abort: mov rdi,QWORD[8+rsp] ;WIN64 epilogue mov rsi,QWORD[16+rsp] DB 0F3h,0C3h ;repret + $L$SEH_end_vpaes_cbc_encrypt: @@ -894,6 +918,7 @@ $L$SEH_end_vpaes_cbc_encrypt: ALIGN 16 _vpaes_preheat: + lea r10,[$L$k_s0F] movdqa xmm10,XMMWORD[((-32))+r10] movdqa xmm11,XMMWORD[((-16))+r10] @@ -910,6 +935,7 @@ _vpaes_preheat: + ALIGN 64 _vpaes_consts: $L$k_inv: |