Source release 14.1.0
This commit is contained in:
@@ -331,14 +331,14 @@ $L$enc_compact_done:
|
||||
DB 0xf3,0xc3
|
||||
|
||||
ALIGN 16
|
||||
global asm_AES_encrypt
|
||||
global aes_nohw_encrypt
|
||||
|
||||
|
||||
asm_AES_encrypt:
|
||||
aes_nohw_encrypt:
|
||||
mov QWORD[8+rsp],rdi ;WIN64 prologue
|
||||
mov QWORD[16+rsp],rsi
|
||||
mov rax,rsp
|
||||
$L$SEH_begin_asm_AES_encrypt:
|
||||
$L$SEH_begin_aes_nohw_encrypt:
|
||||
mov rdi,rcx
|
||||
mov rsi,rdx
|
||||
mov rdx,r8
|
||||
@@ -423,7 +423,7 @@ $L$enc_epilogue:
|
||||
mov rsi,QWORD[16+rsp]
|
||||
DB 0F3h,0C3h ;repret
|
||||
|
||||
$L$SEH_end_asm_AES_encrypt:
|
||||
$L$SEH_end_aes_nohw_encrypt:
|
||||
|
||||
ALIGN 16
|
||||
_x86_64_AES_decrypt:
|
||||
@@ -805,14 +805,14 @@ $L$dec_compact_done:
|
||||
DB 0xf3,0xc3
|
||||
|
||||
ALIGN 16
|
||||
global asm_AES_decrypt
|
||||
global aes_nohw_decrypt
|
||||
|
||||
|
||||
asm_AES_decrypt:
|
||||
aes_nohw_decrypt:
|
||||
mov QWORD[8+rsp],rdi ;WIN64 prologue
|
||||
mov QWORD[16+rsp],rsi
|
||||
mov rax,rsp
|
||||
$L$SEH_begin_asm_AES_decrypt:
|
||||
$L$SEH_begin_aes_nohw_decrypt:
|
||||
mov rdi,rcx
|
||||
mov rsi,rdx
|
||||
mov rdx,r8
|
||||
@@ -899,15 +899,15 @@ $L$dec_epilogue:
|
||||
mov rsi,QWORD[16+rsp]
|
||||
DB 0F3h,0C3h ;repret
|
||||
|
||||
$L$SEH_end_asm_AES_decrypt:
|
||||
$L$SEH_end_aes_nohw_decrypt:
|
||||
ALIGN 16
|
||||
global asm_AES_set_encrypt_key
|
||||
global aes_nohw_set_encrypt_key
|
||||
|
||||
asm_AES_set_encrypt_key:
|
||||
aes_nohw_set_encrypt_key:
|
||||
mov QWORD[8+rsp],rdi ;WIN64 prologue
|
||||
mov QWORD[16+rsp],rsi
|
||||
mov rax,rsp
|
||||
$L$SEH_begin_asm_AES_set_encrypt_key:
|
||||
$L$SEH_begin_aes_nohw_set_encrypt_key:
|
||||
mov rdi,rcx
|
||||
mov rsi,rdx
|
||||
mov rdx,r8
|
||||
@@ -943,7 +943,7 @@ $L$enc_key_epilogue:
|
||||
mov rsi,QWORD[16+rsp]
|
||||
DB 0F3h,0C3h ;repret
|
||||
|
||||
$L$SEH_end_asm_AES_set_encrypt_key:
|
||||
$L$SEH_end_aes_nohw_set_encrypt_key:
|
||||
|
||||
|
||||
ALIGN 16
|
||||
@@ -1185,13 +1185,13 @@ $L$exit:
|
||||
DB 0xf3,0xc3
|
||||
|
||||
ALIGN 16
|
||||
global asm_AES_set_decrypt_key
|
||||
global aes_nohw_set_decrypt_key
|
||||
|
||||
asm_AES_set_decrypt_key:
|
||||
aes_nohw_set_decrypt_key:
|
||||
mov QWORD[8+rsp],rdi ;WIN64 prologue
|
||||
mov QWORD[16+rsp],rsi
|
||||
mov rax,rsp
|
||||
$L$SEH_begin_asm_AES_set_decrypt_key:
|
||||
$L$SEH_begin_aes_nohw_set_decrypt_key:
|
||||
mov rdi,rcx
|
||||
mov rsi,rdx
|
||||
mov rdx,r8
|
||||
@@ -1397,17 +1397,17 @@ $L$dec_key_epilogue:
|
||||
mov rsi,QWORD[16+rsp]
|
||||
DB 0F3h,0C3h ;repret
|
||||
|
||||
$L$SEH_end_asm_AES_set_decrypt_key:
|
||||
$L$SEH_end_aes_nohw_set_decrypt_key:
|
||||
ALIGN 16
|
||||
global asm_AES_cbc_encrypt
|
||||
global aes_nohw_cbc_encrypt
|
||||
|
||||
EXTERN OPENSSL_ia32cap_P
|
||||
|
||||
asm_AES_cbc_encrypt:
|
||||
aes_nohw_cbc_encrypt:
|
||||
mov QWORD[8+rsp],rdi ;WIN64 prologue
|
||||
mov QWORD[16+rsp],rsi
|
||||
mov rax,rsp
|
||||
$L$SEH_begin_asm_AES_cbc_encrypt:
|
||||
$L$SEH_begin_aes_nohw_cbc_encrypt:
|
||||
mov rdi,rcx
|
||||
mov rsi,rdx
|
||||
mov rdx,r8
|
||||
@@ -1886,7 +1886,7 @@ $L$cbc_epilogue:
|
||||
mov rsi,QWORD[16+rsp]
|
||||
DB 0F3h,0C3h ;repret
|
||||
|
||||
$L$SEH_end_asm_AES_cbc_encrypt:
|
||||
$L$SEH_end_aes_nohw_cbc_encrypt:
|
||||
ALIGN 64
|
||||
$L$AES_Te:
|
||||
DD 0xa56363c6,0xa56363c6
|
||||
@@ -2898,44 +2898,44 @@ $L$common_seh_exit:
|
||||
|
||||
section .pdata rdata align=4
|
||||
ALIGN 4
|
||||
DD $L$SEH_begin_asm_AES_encrypt wrt ..imagebase
|
||||
DD $L$SEH_end_asm_AES_encrypt wrt ..imagebase
|
||||
DD $L$SEH_info_asm_AES_encrypt wrt ..imagebase
|
||||
DD $L$SEH_begin_aes_nohw_encrypt wrt ..imagebase
|
||||
DD $L$SEH_end_aes_nohw_encrypt wrt ..imagebase
|
||||
DD $L$SEH_info_aes_nohw_encrypt wrt ..imagebase
|
||||
|
||||
DD $L$SEH_begin_asm_AES_decrypt wrt ..imagebase
|
||||
DD $L$SEH_end_asm_AES_decrypt wrt ..imagebase
|
||||
DD $L$SEH_info_asm_AES_decrypt wrt ..imagebase
|
||||
DD $L$SEH_begin_aes_nohw_decrypt wrt ..imagebase
|
||||
DD $L$SEH_end_aes_nohw_decrypt wrt ..imagebase
|
||||
DD $L$SEH_info_aes_nohw_decrypt wrt ..imagebase
|
||||
|
||||
DD $L$SEH_begin_asm_AES_set_encrypt_key wrt ..imagebase
|
||||
DD $L$SEH_end_asm_AES_set_encrypt_key wrt ..imagebase
|
||||
DD $L$SEH_info_asm_AES_set_encrypt_key wrt ..imagebase
|
||||
DD $L$SEH_begin_aes_nohw_set_encrypt_key wrt ..imagebase
|
||||
DD $L$SEH_end_aes_nohw_set_encrypt_key wrt ..imagebase
|
||||
DD $L$SEH_info_aes_nohw_set_encrypt_key wrt ..imagebase
|
||||
|
||||
DD $L$SEH_begin_asm_AES_set_decrypt_key wrt ..imagebase
|
||||
DD $L$SEH_end_asm_AES_set_decrypt_key wrt ..imagebase
|
||||
DD $L$SEH_info_asm_AES_set_decrypt_key wrt ..imagebase
|
||||
DD $L$SEH_begin_aes_nohw_set_decrypt_key wrt ..imagebase
|
||||
DD $L$SEH_end_aes_nohw_set_decrypt_key wrt ..imagebase
|
||||
DD $L$SEH_info_aes_nohw_set_decrypt_key wrt ..imagebase
|
||||
|
||||
DD $L$SEH_begin_asm_AES_cbc_encrypt wrt ..imagebase
|
||||
DD $L$SEH_end_asm_AES_cbc_encrypt wrt ..imagebase
|
||||
DD $L$SEH_info_asm_AES_cbc_encrypt wrt ..imagebase
|
||||
DD $L$SEH_begin_aes_nohw_cbc_encrypt wrt ..imagebase
|
||||
DD $L$SEH_end_aes_nohw_cbc_encrypt wrt ..imagebase
|
||||
DD $L$SEH_info_aes_nohw_cbc_encrypt wrt ..imagebase
|
||||
|
||||
section .xdata rdata align=8
|
||||
ALIGN 8
|
||||
$L$SEH_info_asm_AES_encrypt:
|
||||
$L$SEH_info_aes_nohw_encrypt:
|
||||
DB 9,0,0,0
|
||||
DD block_se_handler wrt ..imagebase
|
||||
DD $L$enc_prologue wrt ..imagebase,$L$enc_epilogue wrt ..imagebase
|
||||
$L$SEH_info_asm_AES_decrypt:
|
||||
$L$SEH_info_aes_nohw_decrypt:
|
||||
DB 9,0,0,0
|
||||
DD block_se_handler wrt ..imagebase
|
||||
DD $L$dec_prologue wrt ..imagebase,$L$dec_epilogue wrt ..imagebase
|
||||
$L$SEH_info_asm_AES_set_encrypt_key:
|
||||
$L$SEH_info_aes_nohw_set_encrypt_key:
|
||||
DB 9,0,0,0
|
||||
DD key_se_handler wrt ..imagebase
|
||||
DD $L$enc_key_prologue wrt ..imagebase,$L$enc_key_epilogue wrt ..imagebase
|
||||
$L$SEH_info_asm_AES_set_decrypt_key:
|
||||
$L$SEH_info_aes_nohw_set_decrypt_key:
|
||||
DB 9,0,0,0
|
||||
DD key_se_handler wrt ..imagebase
|
||||
DD $L$dec_key_prologue wrt ..imagebase,$L$dec_key_epilogue wrt ..imagebase
|
||||
$L$SEH_info_asm_AES_cbc_encrypt:
|
||||
$L$SEH_info_aes_nohw_cbc_encrypt:
|
||||
DB 9,0,0,0
|
||||
DD cbc_se_handler wrt ..imagebase
|
||||
|
||||
@@ -5,10 +5,10 @@ default rel
|
||||
section .text code align=64
|
||||
|
||||
EXTERN OPENSSL_ia32cap_P
|
||||
global aesni_encrypt
|
||||
global aes_hw_encrypt
|
||||
|
||||
ALIGN 16
|
||||
aesni_encrypt:
|
||||
aes_hw_encrypt:
|
||||
movups xmm2,XMMWORD[rcx]
|
||||
mov eax,DWORD[240+r8]
|
||||
movups xmm0,XMMWORD[r8]
|
||||
@@ -29,10 +29,10 @@ DB 102,15,56,221,209
|
||||
DB 0F3h,0C3h ;repret
|
||||
|
||||
|
||||
global aesni_decrypt
|
||||
global aes_hw_decrypt
|
||||
|
||||
ALIGN 16
|
||||
aesni_decrypt:
|
||||
aes_hw_decrypt:
|
||||
movups xmm2,XMMWORD[rcx]
|
||||
mov eax,DWORD[240+r8]
|
||||
movups xmm0,XMMWORD[r8]
|
||||
@@ -494,14 +494,14 @@ DB 102,68,15,56,223,192
|
||||
DB 102,68,15,56,223,200
|
||||
DB 0F3h,0C3h ;repret
|
||||
|
||||
global aesni_ecb_encrypt
|
||||
global aes_hw_ecb_encrypt
|
||||
|
||||
ALIGN 16
|
||||
aesni_ecb_encrypt:
|
||||
aes_hw_ecb_encrypt:
|
||||
mov QWORD[8+rsp],rdi ;WIN64 prologue
|
||||
mov QWORD[16+rsp],rsi
|
||||
mov rax,rsp
|
||||
$L$SEH_begin_aesni_ecb_encrypt:
|
||||
$L$SEH_begin_aes_hw_ecb_encrypt:
|
||||
mov rdi,rcx
|
||||
mov rsi,rdx
|
||||
mov rdx,r8
|
||||
@@ -864,15 +864,15 @@ $L$ecb_enc_ret:
|
||||
mov rdi,QWORD[8+rsp] ;WIN64 epilogue
|
||||
mov rsi,QWORD[16+rsp]
|
||||
DB 0F3h,0C3h ;repret
|
||||
$L$SEH_end_aesni_ecb_encrypt:
|
||||
global aesni_ccm64_encrypt_blocks
|
||||
$L$SEH_end_aes_hw_ecb_encrypt:
|
||||
global aes_hw_ccm64_encrypt_blocks
|
||||
|
||||
ALIGN 16
|
||||
aesni_ccm64_encrypt_blocks:
|
||||
aes_hw_ccm64_encrypt_blocks:
|
||||
mov QWORD[8+rsp],rdi ;WIN64 prologue
|
||||
mov QWORD[16+rsp],rsi
|
||||
mov rax,rsp
|
||||
$L$SEH_begin_aesni_ccm64_encrypt_blocks:
|
||||
$L$SEH_begin_aes_hw_ccm64_encrypt_blocks:
|
||||
mov rdi,rcx
|
||||
mov rsi,rdx
|
||||
mov rdx,r8
|
||||
@@ -957,15 +957,15 @@ $L$ccm64_enc_ret:
|
||||
mov rdi,QWORD[8+rsp] ;WIN64 epilogue
|
||||
mov rsi,QWORD[16+rsp]
|
||||
DB 0F3h,0C3h ;repret
|
||||
$L$SEH_end_aesni_ccm64_encrypt_blocks:
|
||||
global aesni_ccm64_decrypt_blocks
|
||||
$L$SEH_end_aes_hw_ccm64_encrypt_blocks:
|
||||
global aes_hw_ccm64_decrypt_blocks
|
||||
|
||||
ALIGN 16
|
||||
aesni_ccm64_decrypt_blocks:
|
||||
aes_hw_ccm64_decrypt_blocks:
|
||||
mov QWORD[8+rsp],rdi ;WIN64 prologue
|
||||
mov QWORD[16+rsp],rsi
|
||||
mov rax,rsp
|
||||
$L$SEH_begin_aesni_ccm64_decrypt_blocks:
|
||||
$L$SEH_begin_aes_hw_ccm64_decrypt_blocks:
|
||||
mov rdi,rcx
|
||||
mov rsi,rdx
|
||||
mov rdx,r8
|
||||
@@ -1084,15 +1084,15 @@ $L$ccm64_dec_ret:
|
||||
mov rdi,QWORD[8+rsp] ;WIN64 epilogue
|
||||
mov rsi,QWORD[16+rsp]
|
||||
DB 0F3h,0C3h ;repret
|
||||
$L$SEH_end_aesni_ccm64_decrypt_blocks:
|
||||
global aesni_ctr32_encrypt_blocks
|
||||
$L$SEH_end_aes_hw_ccm64_decrypt_blocks:
|
||||
global aes_hw_ctr32_encrypt_blocks
|
||||
|
||||
ALIGN 16
|
||||
aesni_ctr32_encrypt_blocks:
|
||||
aes_hw_ctr32_encrypt_blocks:
|
||||
mov QWORD[8+rsp],rdi ;WIN64 prologue
|
||||
mov QWORD[16+rsp],rsi
|
||||
mov rax,rsp
|
||||
$L$SEH_begin_aesni_ctr32_encrypt_blocks:
|
||||
$L$SEH_begin_aes_hw_ctr32_encrypt_blocks:
|
||||
mov rdi,rcx
|
||||
mov rsi,rdx
|
||||
mov rdx,r8
|
||||
@@ -1697,15 +1697,15 @@ $L$ctr32_epilogue:
|
||||
mov rsi,QWORD[16+rsp]
|
||||
DB 0F3h,0C3h ;repret
|
||||
|
||||
$L$SEH_end_aesni_ctr32_encrypt_blocks:
|
||||
global aesni_xts_encrypt
|
||||
$L$SEH_end_aes_hw_ctr32_encrypt_blocks:
|
||||
global aes_hw_xts_encrypt
|
||||
|
||||
ALIGN 16
|
||||
aesni_xts_encrypt:
|
||||
aes_hw_xts_encrypt:
|
||||
mov QWORD[8+rsp],rdi ;WIN64 prologue
|
||||
mov QWORD[16+rsp],rsi
|
||||
mov rax,rsp
|
||||
$L$SEH_begin_aesni_xts_encrypt:
|
||||
$L$SEH_begin_aes_hw_xts_encrypt:
|
||||
mov rdi,rcx
|
||||
mov rsi,rdx
|
||||
mov rdx,r8
|
||||
@@ -2202,15 +2202,15 @@ $L$xts_enc_epilogue:
|
||||
mov rsi,QWORD[16+rsp]
|
||||
DB 0F3h,0C3h ;repret
|
||||
|
||||
$L$SEH_end_aesni_xts_encrypt:
|
||||
global aesni_xts_decrypt
|
||||
$L$SEH_end_aes_hw_xts_encrypt:
|
||||
global aes_hw_xts_decrypt
|
||||
|
||||
ALIGN 16
|
||||
aesni_xts_decrypt:
|
||||
aes_hw_xts_decrypt:
|
||||
mov QWORD[8+rsp],rdi ;WIN64 prologue
|
||||
mov QWORD[16+rsp],rsi
|
||||
mov rax,rsp
|
||||
$L$SEH_begin_aesni_xts_decrypt:
|
||||
$L$SEH_begin_aes_hw_xts_decrypt:
|
||||
mov rdi,rcx
|
||||
mov rsi,rdx
|
||||
mov rdx,r8
|
||||
@@ -2744,15 +2744,15 @@ $L$xts_dec_epilogue:
|
||||
mov rsi,QWORD[16+rsp]
|
||||
DB 0F3h,0C3h ;repret
|
||||
|
||||
$L$SEH_end_aesni_xts_decrypt:
|
||||
global aesni_ocb_encrypt
|
||||
$L$SEH_end_aes_hw_xts_decrypt:
|
||||
global aes_hw_ocb_encrypt
|
||||
|
||||
ALIGN 32
|
||||
aesni_ocb_encrypt:
|
||||
aes_hw_ocb_encrypt:
|
||||
mov QWORD[8+rsp],rdi ;WIN64 prologue
|
||||
mov QWORD[16+rsp],rsi
|
||||
mov rax,rsp
|
||||
$L$SEH_begin_aesni_ocb_encrypt:
|
||||
$L$SEH_begin_aes_hw_ocb_encrypt:
|
||||
mov rdi,rcx
|
||||
mov rsi,rdx
|
||||
mov rdx,r8
|
||||
@@ -2989,7 +2989,7 @@ $L$ocb_enc_epilogue:
|
||||
mov rsi,QWORD[16+rsp]
|
||||
DB 0F3h,0C3h ;repret
|
||||
|
||||
$L$SEH_end_aesni_ocb_encrypt:
|
||||
$L$SEH_end_aes_hw_ocb_encrypt:
|
||||
|
||||
|
||||
ALIGN 32
|
||||
@@ -3197,14 +3197,14 @@ DB 102,15,56,221,215
|
||||
DB 0F3h,0C3h ;repret
|
||||
|
||||
|
||||
global aesni_ocb_decrypt
|
||||
global aes_hw_ocb_decrypt
|
||||
|
||||
ALIGN 32
|
||||
aesni_ocb_decrypt:
|
||||
aes_hw_ocb_decrypt:
|
||||
mov QWORD[8+rsp],rdi ;WIN64 prologue
|
||||
mov QWORD[16+rsp],rsi
|
||||
mov rax,rsp
|
||||
$L$SEH_begin_aesni_ocb_decrypt:
|
||||
$L$SEH_begin_aes_hw_ocb_decrypt:
|
||||
mov rdi,rcx
|
||||
mov rsi,rdx
|
||||
mov rdx,r8
|
||||
@@ -3463,7 +3463,7 @@ $L$ocb_dec_epilogue:
|
||||
mov rsi,QWORD[16+rsp]
|
||||
DB 0F3h,0C3h ;repret
|
||||
|
||||
$L$SEH_end_aesni_ocb_decrypt:
|
||||
$L$SEH_end_aes_hw_ocb_decrypt:
|
||||
|
||||
|
||||
ALIGN 32
|
||||
@@ -3659,14 +3659,14 @@ DB 102,15,56,222,209
|
||||
DB 102,15,56,223,215
|
||||
DB 0F3h,0C3h ;repret
|
||||
|
||||
global aesni_cbc_encrypt
|
||||
global aes_hw_cbc_encrypt
|
||||
|
||||
ALIGN 16
|
||||
aesni_cbc_encrypt:
|
||||
aes_hw_cbc_encrypt:
|
||||
mov QWORD[8+rsp],rdi ;WIN64 prologue
|
||||
mov QWORD[16+rsp],rsi
|
||||
mov rax,rsp
|
||||
$L$SEH_begin_aesni_cbc_encrypt:
|
||||
$L$SEH_begin_aes_hw_cbc_encrypt:
|
||||
mov rdi,rcx
|
||||
mov rsi,rdx
|
||||
mov rdx,r8
|
||||
@@ -4291,11 +4291,11 @@ $L$cbc_ret:
|
||||
mov rsi,QWORD[16+rsp]
|
||||
DB 0F3h,0C3h ;repret
|
||||
|
||||
$L$SEH_end_aesni_cbc_encrypt:
|
||||
global aesni_set_decrypt_key
|
||||
$L$SEH_end_aes_hw_cbc_encrypt:
|
||||
global aes_hw_set_decrypt_key
|
||||
|
||||
ALIGN 16
|
||||
aesni_set_decrypt_key:
|
||||
aes_hw_set_decrypt_key:
|
||||
|
||||
DB 0x48,0x83,0xEC,0x08
|
||||
|
||||
@@ -4336,10 +4336,10 @@ $L$dec_key_ret:
|
||||
|
||||
$L$SEH_end_set_decrypt_key:
|
||||
|
||||
global aesni_set_encrypt_key
|
||||
global aes_hw_set_encrypt_key
|
||||
|
||||
ALIGN 16
|
||||
aesni_set_encrypt_key:
|
||||
aes_hw_set_encrypt_key:
|
||||
__aesni_set_encrypt_key:
|
||||
|
||||
DB 0x48,0x83,0xEC,0x08
|
||||
@@ -4966,46 +4966,46 @@ $L$common_seh_tail:
|
||||
|
||||
section .pdata rdata align=4
|
||||
ALIGN 4
|
||||
DD $L$SEH_begin_aesni_ecb_encrypt wrt ..imagebase
|
||||
DD $L$SEH_end_aesni_ecb_encrypt wrt ..imagebase
|
||||
DD $L$SEH_begin_aes_hw_ecb_encrypt wrt ..imagebase
|
||||
DD $L$SEH_end_aes_hw_ecb_encrypt wrt ..imagebase
|
||||
DD $L$SEH_info_ecb wrt ..imagebase
|
||||
|
||||
DD $L$SEH_begin_aesni_ccm64_encrypt_blocks wrt ..imagebase
|
||||
DD $L$SEH_end_aesni_ccm64_encrypt_blocks wrt ..imagebase
|
||||
DD $L$SEH_begin_aes_hw_ccm64_encrypt_blocks wrt ..imagebase
|
||||
DD $L$SEH_end_aes_hw_ccm64_encrypt_blocks wrt ..imagebase
|
||||
DD $L$SEH_info_ccm64_enc wrt ..imagebase
|
||||
|
||||
DD $L$SEH_begin_aesni_ccm64_decrypt_blocks wrt ..imagebase
|
||||
DD $L$SEH_end_aesni_ccm64_decrypt_blocks wrt ..imagebase
|
||||
DD $L$SEH_begin_aes_hw_ccm64_decrypt_blocks wrt ..imagebase
|
||||
DD $L$SEH_end_aes_hw_ccm64_decrypt_blocks wrt ..imagebase
|
||||
DD $L$SEH_info_ccm64_dec wrt ..imagebase
|
||||
|
||||
DD $L$SEH_begin_aesni_ctr32_encrypt_blocks wrt ..imagebase
|
||||
DD $L$SEH_end_aesni_ctr32_encrypt_blocks wrt ..imagebase
|
||||
DD $L$SEH_begin_aes_hw_ctr32_encrypt_blocks wrt ..imagebase
|
||||
DD $L$SEH_end_aes_hw_ctr32_encrypt_blocks wrt ..imagebase
|
||||
DD $L$SEH_info_ctr32 wrt ..imagebase
|
||||
|
||||
DD $L$SEH_begin_aesni_xts_encrypt wrt ..imagebase
|
||||
DD $L$SEH_end_aesni_xts_encrypt wrt ..imagebase
|
||||
DD $L$SEH_begin_aes_hw_xts_encrypt wrt ..imagebase
|
||||
DD $L$SEH_end_aes_hw_xts_encrypt wrt ..imagebase
|
||||
DD $L$SEH_info_xts_enc wrt ..imagebase
|
||||
|
||||
DD $L$SEH_begin_aesni_xts_decrypt wrt ..imagebase
|
||||
DD $L$SEH_end_aesni_xts_decrypt wrt ..imagebase
|
||||
DD $L$SEH_begin_aes_hw_xts_decrypt wrt ..imagebase
|
||||
DD $L$SEH_end_aes_hw_xts_decrypt wrt ..imagebase
|
||||
DD $L$SEH_info_xts_dec wrt ..imagebase
|
||||
|
||||
DD $L$SEH_begin_aesni_ocb_encrypt wrt ..imagebase
|
||||
DD $L$SEH_end_aesni_ocb_encrypt wrt ..imagebase
|
||||
DD $L$SEH_begin_aes_hw_ocb_encrypt wrt ..imagebase
|
||||
DD $L$SEH_end_aes_hw_ocb_encrypt wrt ..imagebase
|
||||
DD $L$SEH_info_ocb_enc wrt ..imagebase
|
||||
|
||||
DD $L$SEH_begin_aesni_ocb_decrypt wrt ..imagebase
|
||||
DD $L$SEH_end_aesni_ocb_decrypt wrt ..imagebase
|
||||
DD $L$SEH_begin_aes_hw_ocb_decrypt wrt ..imagebase
|
||||
DD $L$SEH_end_aes_hw_ocb_decrypt wrt ..imagebase
|
||||
DD $L$SEH_info_ocb_dec wrt ..imagebase
|
||||
DD $L$SEH_begin_aesni_cbc_encrypt wrt ..imagebase
|
||||
DD $L$SEH_end_aesni_cbc_encrypt wrt ..imagebase
|
||||
DD $L$SEH_begin_aes_hw_cbc_encrypt wrt ..imagebase
|
||||
DD $L$SEH_end_aes_hw_cbc_encrypt wrt ..imagebase
|
||||
DD $L$SEH_info_cbc wrt ..imagebase
|
||||
|
||||
DD aesni_set_decrypt_key wrt ..imagebase
|
||||
DD aes_hw_set_decrypt_key wrt ..imagebase
|
||||
DD $L$SEH_end_set_decrypt_key wrt ..imagebase
|
||||
DD $L$SEH_info_key wrt ..imagebase
|
||||
|
||||
DD aesni_set_encrypt_key wrt ..imagebase
|
||||
DD aes_hw_set_encrypt_key wrt ..imagebase
|
||||
DD $L$SEH_end_set_encrypt_key wrt ..imagebase
|
||||
DD $L$SEH_info_key wrt ..imagebase
|
||||
section .xdata rdata align=8
|
||||
|
||||
@@ -5,8 +5,8 @@ default rel
|
||||
section .text code align=64
|
||||
|
||||
|
||||
EXTERN asm_AES_encrypt
|
||||
EXTERN asm_AES_decrypt
|
||||
EXTERN aes_nohw_encrypt
|
||||
EXTERN aes_nohw_decrypt
|
||||
|
||||
|
||||
ALIGN 64
|
||||
@@ -1067,7 +1067,7 @@ DB 102,15,56,0,244
|
||||
|
||||
DB 0F3h,0C3h ;repret
|
||||
|
||||
EXTERN asm_AES_cbc_encrypt
|
||||
EXTERN aes_nohw_cbc_encrypt
|
||||
global bsaes_cbc_encrypt
|
||||
|
||||
ALIGN 16
|
||||
@@ -1075,9 +1075,9 @@ bsaes_cbc_encrypt:
|
||||
|
||||
mov r11d,DWORD[48+rsp]
|
||||
cmp r11d,0
|
||||
jne NEAR asm_AES_cbc_encrypt
|
||||
jne NEAR aes_nohw_cbc_encrypt
|
||||
cmp r8,128
|
||||
jb NEAR asm_AES_cbc_encrypt
|
||||
jb NEAR aes_nohw_cbc_encrypt
|
||||
|
||||
mov rax,rsp
|
||||
$L$cbc_dec_prologue:
|
||||
@@ -1312,7 +1312,7 @@ $L$cbc_dec_one:
|
||||
lea rcx,[r12]
|
||||
lea rdx,[32+rbp]
|
||||
lea r8,[r15]
|
||||
call asm_AES_decrypt
|
||||
call aes_nohw_decrypt
|
||||
pxor xmm14,XMMWORD[32+rbp]
|
||||
movdqu XMMWORD[r13],xmm14
|
||||
movdqa xmm14,xmm15
|
||||
@@ -1546,7 +1546,7 @@ $L$ctr_enc_short:
|
||||
lea rcx,[32+rbp]
|
||||
lea rdx,[48+rbp]
|
||||
lea r8,[r15]
|
||||
call asm_AES_encrypt
|
||||
call aes_nohw_encrypt
|
||||
movdqu xmm0,XMMWORD[r12]
|
||||
lea r12,[16+r12]
|
||||
mov eax,DWORD[44+rbp]
|
||||
@@ -1647,7 +1647,7 @@ $L$xts_enc_body:
|
||||
lea rcx,[r11]
|
||||
lea rdx,[32+rbp]
|
||||
lea r8,[r10]
|
||||
call asm_AES_encrypt
|
||||
call aes_nohw_encrypt
|
||||
|
||||
mov eax,DWORD[240+r15]
|
||||
mov rbx,r14
|
||||
@@ -2017,7 +2017,7 @@ $L$xts_enc_1:
|
||||
lea rcx,[32+rbp]
|
||||
lea rdx,[32+rbp]
|
||||
lea r8,[r15]
|
||||
call asm_AES_encrypt
|
||||
call aes_nohw_encrypt
|
||||
pxor xmm15,XMMWORD[32+rbp]
|
||||
|
||||
|
||||
@@ -2050,7 +2050,7 @@ $L$xts_enc_steal:
|
||||
lea rdx,[32+rbp]
|
||||
movdqa XMMWORD[32+rbp],xmm15
|
||||
lea r8,[r15]
|
||||
call asm_AES_encrypt
|
||||
call aes_nohw_encrypt
|
||||
pxor xmm6,XMMWORD[32+rbp]
|
||||
movdqu XMMWORD[(-16)+r13],xmm6
|
||||
|
||||
@@ -2141,7 +2141,7 @@ $L$xts_dec_body:
|
||||
lea rcx,[r11]
|
||||
lea rdx,[32+rbp]
|
||||
lea r8,[r10]
|
||||
call asm_AES_encrypt
|
||||
call aes_nohw_encrypt
|
||||
|
||||
mov eax,DWORD[240+r15]
|
||||
mov rbx,r14
|
||||
@@ -2518,7 +2518,7 @@ $L$xts_dec_1:
|
||||
lea rcx,[32+rbp]
|
||||
lea rdx,[32+rbp]
|
||||
lea r8,[r15]
|
||||
call asm_AES_decrypt
|
||||
call aes_nohw_decrypt
|
||||
pxor xmm15,XMMWORD[32+rbp]
|
||||
|
||||
|
||||
@@ -2549,7 +2549,7 @@ $L$xts_dec_done:
|
||||
lea rdx,[32+rbp]
|
||||
movdqa XMMWORD[32+rbp],xmm15
|
||||
lea r8,[r15]
|
||||
call asm_AES_decrypt
|
||||
call aes_nohw_decrypt
|
||||
pxor xmm6,XMMWORD[32+rbp]
|
||||
mov rdx,r13
|
||||
movdqu XMMWORD[r13],xmm6
|
||||
@@ -2570,7 +2570,7 @@ $L$xts_dec_steal:
|
||||
lea rdx,[32+rbp]
|
||||
movdqa XMMWORD[32+rbp],xmm15
|
||||
lea r8,[r15]
|
||||
call asm_AES_decrypt
|
||||
call aes_nohw_decrypt
|
||||
pxor xmm5,XMMWORD[32+rbp]
|
||||
movdqu XMMWORD[r13],xmm5
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1817,6 +1817,11 @@ ALIGN 32
|
||||
rsaz_avx2_eligible:
|
||||
lea rax,[OPENSSL_ia32cap_P]
|
||||
mov eax,DWORD[8+rax]
|
||||
mov ecx,524544
|
||||
mov edx,0
|
||||
and ecx,eax
|
||||
cmp ecx,524544
|
||||
cmove eax,edx
|
||||
and eax,32
|
||||
shr eax,5
|
||||
DB 0F3h,0C3h ;repret
|
||||
|
||||
@@ -31,6 +31,8 @@ $L$SEH_begin_bn_mul_mont:
|
||||
jnz NEAR $L$mul_enter
|
||||
cmp r9d,8
|
||||
jb NEAR $L$mul_enter
|
||||
lea r11,[OPENSSL_ia32cap_P]
|
||||
mov r11d,DWORD[8+r11]
|
||||
cmp rdx,rsi
|
||||
jne NEAR $L$mul4x_enter
|
||||
test r9d,7
|
||||
@@ -222,30 +224,30 @@ $L$inner_enter:
|
||||
|
||||
xor r14,r14
|
||||
mov rax,QWORD[rsp]
|
||||
lea rsi,[rsp]
|
||||
mov r15,r9
|
||||
jmp NEAR $L$sub
|
||||
|
||||
ALIGN 16
|
||||
$L$sub: sbb rax,QWORD[r14*8+rcx]
|
||||
mov QWORD[r14*8+rdi],rax
|
||||
mov rax,QWORD[8+r14*8+rsi]
|
||||
mov rax,QWORD[8+r14*8+rsp]
|
||||
lea r14,[1+r14]
|
||||
dec r15
|
||||
jnz NEAR $L$sub
|
||||
|
||||
sbb rax,0
|
||||
mov rbx,-1
|
||||
xor rbx,rax
|
||||
xor r14,r14
|
||||
and rsi,rax
|
||||
not rax
|
||||
mov rcx,rdi
|
||||
and rcx,rax
|
||||
mov r15,r9
|
||||
or rsi,rcx
|
||||
ALIGN 16
|
||||
|
||||
$L$copy:
|
||||
mov rax,QWORD[r14*8+rsi]
|
||||
mov QWORD[r14*8+rsp],r14
|
||||
mov QWORD[r14*8+rdi],rax
|
||||
mov rcx,QWORD[r14*8+rdi]
|
||||
mov rdx,QWORD[r14*8+rsp]
|
||||
and rcx,rbx
|
||||
and rdx,rax
|
||||
mov QWORD[r14*8+rsp],r9
|
||||
or rdx,rcx
|
||||
mov QWORD[r14*8+rdi],rdx
|
||||
lea r14,[1+r14]
|
||||
sub r15,1
|
||||
jnz NEAR $L$copy
|
||||
@@ -293,6 +295,9 @@ $L$SEH_begin_bn_mul4x_mont:
|
||||
mov rax,rsp
|
||||
|
||||
$L$mul4x_enter:
|
||||
and r11d,0x80100
|
||||
cmp r11d,0x80100
|
||||
je NEAR $L$mulx4x_enter
|
||||
push rbx
|
||||
|
||||
push rbp
|
||||
@@ -630,7 +635,6 @@ $L$inner4x:
|
||||
mov rdi,QWORD[16+r9*8+rsp]
|
||||
lea r15,[((-4))+r9]
|
||||
mov rax,QWORD[rsp]
|
||||
pxor xmm0,xmm0
|
||||
mov rdx,QWORD[8+rsp]
|
||||
shr r15,2
|
||||
lea rsi,[rsp]
|
||||
@@ -640,8 +644,7 @@ $L$inner4x:
|
||||
mov rbx,QWORD[16+rsi]
|
||||
mov rbp,QWORD[24+rsi]
|
||||
sbb rdx,QWORD[8+rcx]
|
||||
jmp NEAR $L$sub4x
|
||||
ALIGN 16
|
||||
|
||||
$L$sub4x:
|
||||
mov QWORD[r14*8+rdi],rax
|
||||
mov QWORD[8+r14*8+rdi],rdx
|
||||
@@ -668,34 +671,35 @@ $L$sub4x:
|
||||
|
||||
sbb rax,0
|
||||
mov QWORD[24+r14*8+rdi],rbp
|
||||
xor r14,r14
|
||||
and rsi,rax
|
||||
not rax
|
||||
mov rcx,rdi
|
||||
and rcx,rax
|
||||
lea r15,[((-4))+r9]
|
||||
or rsi,rcx
|
||||
pxor xmm0,xmm0
|
||||
DB 102,72,15,110,224
|
||||
pcmpeqd xmm5,xmm5
|
||||
pshufd xmm4,xmm4,0
|
||||
mov r15,r9
|
||||
pxor xmm5,xmm4
|
||||
shr r15,2
|
||||
xor eax,eax
|
||||
|
||||
movdqu xmm1,XMMWORD[rsi]
|
||||
movdqa XMMWORD[rsp],xmm0
|
||||
movdqu XMMWORD[rdi],xmm1
|
||||
jmp NEAR $L$copy4x
|
||||
ALIGN 16
|
||||
$L$copy4x:
|
||||
movdqu xmm2,XMMWORD[16+r14*1+rsi]
|
||||
movdqu xmm1,XMMWORD[32+r14*1+rsi]
|
||||
movdqa XMMWORD[16+r14*1+rsp],xmm0
|
||||
movdqu XMMWORD[16+r14*1+rdi],xmm2
|
||||
movdqa XMMWORD[32+r14*1+rsp],xmm0
|
||||
movdqu XMMWORD[32+r14*1+rdi],xmm1
|
||||
lea r14,[32+r14]
|
||||
movdqa xmm1,XMMWORD[rax*1+rsp]
|
||||
movdqu xmm2,XMMWORD[rax*1+rdi]
|
||||
pand xmm1,xmm4
|
||||
pand xmm2,xmm5
|
||||
movdqa xmm3,XMMWORD[16+rax*1+rsp]
|
||||
movdqa XMMWORD[rax*1+rsp],xmm0
|
||||
por xmm1,xmm2
|
||||
movdqu xmm2,XMMWORD[16+rax*1+rdi]
|
||||
movdqu XMMWORD[rax*1+rdi],xmm1
|
||||
pand xmm3,xmm4
|
||||
pand xmm2,xmm5
|
||||
movdqa XMMWORD[16+rax*1+rsp],xmm0
|
||||
por xmm3,xmm2
|
||||
movdqu XMMWORD[16+rax*1+rdi],xmm3
|
||||
lea rax,[32+rax]
|
||||
dec r15
|
||||
jnz NEAR $L$copy4x
|
||||
|
||||
movdqu xmm2,XMMWORD[16+r14*1+rsi]
|
||||
movdqa XMMWORD[16+r14*1+rsp],xmm0
|
||||
movdqu XMMWORD[16+r14*1+rdi],xmm2
|
||||
mov rsi,QWORD[8+r9*8+rsp]
|
||||
|
||||
mov rax,1
|
||||
@@ -719,6 +723,7 @@ $L$mul4x_epilogue:
|
||||
DB 0F3h,0C3h ;repret
|
||||
|
||||
$L$SEH_end_bn_mul4x_mont:
|
||||
EXTERN bn_sqrx8x_internal
|
||||
EXTERN bn_sqr8x_internal
|
||||
|
||||
|
||||
@@ -814,6 +819,26 @@ DB 102,72,15,110,209
|
||||
pxor xmm0,xmm0
|
||||
DB 102,72,15,110,207
|
||||
DB 102,73,15,110,218
|
||||
lea rax,[OPENSSL_ia32cap_P]
|
||||
mov eax,DWORD[8+rax]
|
||||
and eax,0x80100
|
||||
cmp eax,0x80100
|
||||
jne NEAR $L$sqr8x_nox
|
||||
|
||||
call bn_sqrx8x_internal
|
||||
|
||||
|
||||
|
||||
|
||||
lea rbx,[rcx*1+r8]
|
||||
mov r9,rcx
|
||||
mov rdx,rcx
|
||||
DB 102,72,15,126,207
|
||||
sar rcx,3+2
|
||||
jmp NEAR $L$sqr8x_sub
|
||||
|
||||
ALIGN 32
|
||||
$L$sqr8x_nox:
|
||||
call bn_sqr8x_internal
|
||||
|
||||
|
||||
@@ -903,6 +928,376 @@ $L$sqr8x_epilogue:
|
||||
DB 0F3h,0C3h ;repret
|
||||
|
||||
$L$SEH_end_bn_sqr8x_mont:
|
||||
|
||||
ALIGN 32
|
||||
bn_mulx4x_mont:
|
||||
mov QWORD[8+rsp],rdi ;WIN64 prologue
|
||||
mov QWORD[16+rsp],rsi
|
||||
mov rax,rsp
|
||||
$L$SEH_begin_bn_mulx4x_mont:
|
||||
mov rdi,rcx
|
||||
mov rsi,rdx
|
||||
mov rdx,r8
|
||||
mov rcx,r9
|
||||
mov r8,QWORD[40+rsp]
|
||||
mov r9,QWORD[48+rsp]
|
||||
|
||||
|
||||
|
||||
mov rax,rsp
|
||||
|
||||
$L$mulx4x_enter:
|
||||
push rbx
|
||||
|
||||
push rbp
|
||||
|
||||
push r12
|
||||
|
||||
push r13
|
||||
|
||||
push r14
|
||||
|
||||
push r15
|
||||
|
||||
$L$mulx4x_prologue:
|
||||
|
||||
shl r9d,3
|
||||
xor r10,r10
|
||||
sub r10,r9
|
||||
mov r8,QWORD[r8]
|
||||
lea rbp,[((-72))+r10*1+rsp]
|
||||
and rbp,-128
|
||||
mov r11,rsp
|
||||
sub r11,rbp
|
||||
and r11,-4096
|
||||
lea rsp,[rbp*1+r11]
|
||||
mov r10,QWORD[rsp]
|
||||
cmp rsp,rbp
|
||||
ja NEAR $L$mulx4x_page_walk
|
||||
jmp NEAR $L$mulx4x_page_walk_done
|
||||
|
||||
ALIGN 16
|
||||
$L$mulx4x_page_walk:
|
||||
lea rsp,[((-4096))+rsp]
|
||||
mov r10,QWORD[rsp]
|
||||
cmp rsp,rbp
|
||||
ja NEAR $L$mulx4x_page_walk
|
||||
$L$mulx4x_page_walk_done:
|
||||
|
||||
lea r10,[r9*1+rdx]
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
mov QWORD[rsp],r9
|
||||
shr r9,5
|
||||
mov QWORD[16+rsp],r10
|
||||
sub r9,1
|
||||
mov QWORD[24+rsp],r8
|
||||
mov QWORD[32+rsp],rdi
|
||||
mov QWORD[40+rsp],rax
|
||||
|
||||
mov QWORD[48+rsp],r9
|
||||
jmp NEAR $L$mulx4x_body
|
||||
|
||||
ALIGN 32
|
||||
$L$mulx4x_body:
|
||||
lea rdi,[8+rdx]
|
||||
mov rdx,QWORD[rdx]
|
||||
lea rbx,[((64+32))+rsp]
|
||||
mov r9,rdx
|
||||
|
||||
mulx rax,r8,QWORD[rsi]
|
||||
mulx r14,r11,QWORD[8+rsi]
|
||||
add r11,rax
|
||||
mov QWORD[8+rsp],rdi
|
||||
mulx r13,r12,QWORD[16+rsi]
|
||||
adc r12,r14
|
||||
adc r13,0
|
||||
|
||||
mov rdi,r8
|
||||
imul r8,QWORD[24+rsp]
|
||||
xor rbp,rbp
|
||||
|
||||
mulx r14,rax,QWORD[24+rsi]
|
||||
mov rdx,r8
|
||||
lea rsi,[32+rsi]
|
||||
adcx r13,rax
|
||||
adcx r14,rbp
|
||||
|
||||
mulx r10,rax,QWORD[rcx]
|
||||
adcx rdi,rax
|
||||
adox r10,r11
|
||||
mulx r11,rax,QWORD[8+rcx]
|
||||
adcx r10,rax
|
||||
adox r11,r12
|
||||
DB 0xc4,0x62,0xfb,0xf6,0xa1,0x10,0x00,0x00,0x00
|
||||
mov rdi,QWORD[48+rsp]
|
||||
mov QWORD[((-32))+rbx],r10
|
||||
adcx r11,rax
|
||||
adox r12,r13
|
||||
mulx r15,rax,QWORD[24+rcx]
|
||||
mov rdx,r9
|
||||
mov QWORD[((-24))+rbx],r11
|
||||
adcx r12,rax
|
||||
adox r15,rbp
|
||||
lea rcx,[32+rcx]
|
||||
mov QWORD[((-16))+rbx],r12
|
||||
|
||||
jmp NEAR $L$mulx4x_1st
|
||||
|
||||
ALIGN 32
|
||||
$L$mulx4x_1st:
|
||||
adcx r15,rbp
|
||||
mulx rax,r10,QWORD[rsi]
|
||||
adcx r10,r14
|
||||
mulx r14,r11,QWORD[8+rsi]
|
||||
adcx r11,rax
|
||||
mulx rax,r12,QWORD[16+rsi]
|
||||
adcx r12,r14
|
||||
mulx r14,r13,QWORD[24+rsi]
|
||||
DB 0x67,0x67
|
||||
mov rdx,r8
|
||||
adcx r13,rax
|
||||
adcx r14,rbp
|
||||
lea rsi,[32+rsi]
|
||||
lea rbx,[32+rbx]
|
||||
|
||||
adox r10,r15
|
||||
mulx r15,rax,QWORD[rcx]
|
||||
adcx r10,rax
|
||||
adox r11,r15
|
||||
mulx r15,rax,QWORD[8+rcx]
|
||||
adcx r11,rax
|
||||
adox r12,r15
|
||||
mulx r15,rax,QWORD[16+rcx]
|
||||
mov QWORD[((-40))+rbx],r10
|
||||
adcx r12,rax
|
||||
mov QWORD[((-32))+rbx],r11
|
||||
adox r13,r15
|
||||
mulx r15,rax,QWORD[24+rcx]
|
||||
mov rdx,r9
|
||||
mov QWORD[((-24))+rbx],r12
|
||||
adcx r13,rax
|
||||
adox r15,rbp
|
||||
lea rcx,[32+rcx]
|
||||
mov QWORD[((-16))+rbx],r13
|
||||
|
||||
dec rdi
|
||||
jnz NEAR $L$mulx4x_1st
|
||||
|
||||
mov rax,QWORD[rsp]
|
||||
mov rdi,QWORD[8+rsp]
|
||||
adc r15,rbp
|
||||
add r14,r15
|
||||
sbb r15,r15
|
||||
mov QWORD[((-8))+rbx],r14
|
||||
jmp NEAR $L$mulx4x_outer
|
||||
|
||||
ALIGN 32
|
||||
$L$mulx4x_outer:
|
||||
mov rdx,QWORD[rdi]
|
||||
lea rdi,[8+rdi]
|
||||
sub rsi,rax
|
||||
mov QWORD[rbx],r15
|
||||
lea rbx,[((64+32))+rsp]
|
||||
sub rcx,rax
|
||||
|
||||
mulx r11,r8,QWORD[rsi]
|
||||
xor ebp,ebp
|
||||
mov r9,rdx
|
||||
mulx r12,r14,QWORD[8+rsi]
|
||||
adox r8,QWORD[((-32))+rbx]
|
||||
adcx r11,r14
|
||||
mulx r13,r15,QWORD[16+rsi]
|
||||
adox r11,QWORD[((-24))+rbx]
|
||||
adcx r12,r15
|
||||
adox r12,QWORD[((-16))+rbx]
|
||||
adcx r13,rbp
|
||||
adox r13,rbp
|
||||
|
||||
mov QWORD[8+rsp],rdi
|
||||
mov r15,r8
|
||||
imul r8,QWORD[24+rsp]
|
||||
xor ebp,ebp
|
||||
|
||||
mulx r14,rax,QWORD[24+rsi]
|
||||
mov rdx,r8
|
||||
adcx r13,rax
|
||||
adox r13,QWORD[((-8))+rbx]
|
||||
adcx r14,rbp
|
||||
lea rsi,[32+rsi]
|
||||
adox r14,rbp
|
||||
|
||||
mulx r10,rax,QWORD[rcx]
|
||||
adcx r15,rax
|
||||
adox r10,r11
|
||||
mulx r11,rax,QWORD[8+rcx]
|
||||
adcx r10,rax
|
||||
adox r11,r12
|
||||
mulx r12,rax,QWORD[16+rcx]
|
||||
mov QWORD[((-32))+rbx],r10
|
||||
adcx r11,rax
|
||||
adox r12,r13
|
||||
mulx r15,rax,QWORD[24+rcx]
|
||||
mov rdx,r9
|
||||
mov QWORD[((-24))+rbx],r11
|
||||
lea rcx,[32+rcx]
|
||||
adcx r12,rax
|
||||
adox r15,rbp
|
||||
mov rdi,QWORD[48+rsp]
|
||||
mov QWORD[((-16))+rbx],r12
|
||||
|
||||
jmp NEAR $L$mulx4x_inner
|
||||
|
||||
ALIGN 32
|
||||
$L$mulx4x_inner:
|
||||
mulx rax,r10,QWORD[rsi]
|
||||
adcx r15,rbp
|
||||
adox r10,r14
|
||||
mulx r14,r11,QWORD[8+rsi]
|
||||
adcx r10,QWORD[rbx]
|
||||
adox r11,rax
|
||||
mulx rax,r12,QWORD[16+rsi]
|
||||
adcx r11,QWORD[8+rbx]
|
||||
adox r12,r14
|
||||
mulx r14,r13,QWORD[24+rsi]
|
||||
mov rdx,r8
|
||||
adcx r12,QWORD[16+rbx]
|
||||
adox r13,rax
|
||||
adcx r13,QWORD[24+rbx]
|
||||
adox r14,rbp
|
||||
lea rsi,[32+rsi]
|
||||
lea rbx,[32+rbx]
|
||||
adcx r14,rbp
|
||||
|
||||
adox r10,r15
|
||||
mulx r15,rax,QWORD[rcx]
|
||||
adcx r10,rax
|
||||
adox r11,r15
|
||||
mulx r15,rax,QWORD[8+rcx]
|
||||
adcx r11,rax
|
||||
adox r12,r15
|
||||
mulx r15,rax,QWORD[16+rcx]
|
||||
mov QWORD[((-40))+rbx],r10
|
||||
adcx r12,rax
|
||||
adox r13,r15
|
||||
mulx r15,rax,QWORD[24+rcx]
|
||||
mov rdx,r9
|
||||
mov QWORD[((-32))+rbx],r11
|
||||
mov QWORD[((-24))+rbx],r12
|
||||
adcx r13,rax
|
||||
adox r15,rbp
|
||||
lea rcx,[32+rcx]
|
||||
mov QWORD[((-16))+rbx],r13
|
||||
|
||||
dec rdi
|
||||
jnz NEAR $L$mulx4x_inner
|
||||
|
||||
mov rax,QWORD[rsp]
|
||||
mov rdi,QWORD[8+rsp]
|
||||
adc r15,rbp
|
||||
sub rbp,QWORD[rbx]
|
||||
adc r14,r15
|
||||
sbb r15,r15
|
||||
mov QWORD[((-8))+rbx],r14
|
||||
|
||||
cmp rdi,QWORD[16+rsp]
|
||||
jne NEAR $L$mulx4x_outer
|
||||
|
||||
lea rbx,[64+rsp]
|
||||
sub rcx,rax
|
||||
neg r15
|
||||
mov rdx,rax
|
||||
shr rax,3+2
|
||||
mov rdi,QWORD[32+rsp]
|
||||
jmp NEAR $L$mulx4x_sub
|
||||
|
||||
ALIGN 32
|
||||
$L$mulx4x_sub:
|
||||
mov r11,QWORD[rbx]
|
||||
mov r12,QWORD[8+rbx]
|
||||
mov r13,QWORD[16+rbx]
|
||||
mov r14,QWORD[24+rbx]
|
||||
lea rbx,[32+rbx]
|
||||
sbb r11,QWORD[rcx]
|
||||
sbb r12,QWORD[8+rcx]
|
||||
sbb r13,QWORD[16+rcx]
|
||||
sbb r14,QWORD[24+rcx]
|
||||
lea rcx,[32+rcx]
|
||||
mov QWORD[rdi],r11
|
||||
mov QWORD[8+rdi],r12
|
||||
mov QWORD[16+rdi],r13
|
||||
mov QWORD[24+rdi],r14
|
||||
lea rdi,[32+rdi]
|
||||
dec rax
|
||||
jnz NEAR $L$mulx4x_sub
|
||||
|
||||
sbb r15,0
|
||||
lea rbx,[64+rsp]
|
||||
sub rdi,rdx
|
||||
|
||||
DB 102,73,15,110,207
|
||||
pxor xmm0,xmm0
|
||||
pshufd xmm1,xmm1,0
|
||||
mov rsi,QWORD[40+rsp]
|
||||
|
||||
jmp NEAR $L$mulx4x_cond_copy
|
||||
|
||||
ALIGN 32
|
||||
$L$mulx4x_cond_copy:
|
||||
movdqa xmm2,XMMWORD[rbx]
|
||||
movdqa xmm3,XMMWORD[16+rbx]
|
||||
lea rbx,[32+rbx]
|
||||
movdqu xmm4,XMMWORD[rdi]
|
||||
movdqu xmm5,XMMWORD[16+rdi]
|
||||
lea rdi,[32+rdi]
|
||||
movdqa XMMWORD[(-32)+rbx],xmm0
|
||||
movdqa XMMWORD[(-16)+rbx],xmm0
|
||||
pcmpeqd xmm0,xmm1
|
||||
pand xmm2,xmm1
|
||||
pand xmm3,xmm1
|
||||
pand xmm4,xmm0
|
||||
pand xmm5,xmm0
|
||||
pxor xmm0,xmm0
|
||||
por xmm4,xmm2
|
||||
por xmm5,xmm3
|
||||
movdqu XMMWORD[(-32)+rdi],xmm4
|
||||
movdqu XMMWORD[(-16)+rdi],xmm5
|
||||
sub rdx,32
|
||||
jnz NEAR $L$mulx4x_cond_copy
|
||||
|
||||
mov QWORD[rbx],rdx
|
||||
|
||||
mov rax,1
|
||||
mov r15,QWORD[((-48))+rsi]
|
||||
|
||||
mov r14,QWORD[((-40))+rsi]
|
||||
|
||||
mov r13,QWORD[((-32))+rsi]
|
||||
|
||||
mov r12,QWORD[((-24))+rsi]
|
||||
|
||||
mov rbp,QWORD[((-16))+rsi]
|
||||
|
||||
mov rbx,QWORD[((-8))+rsi]
|
||||
|
||||
lea rsp,[rsi]
|
||||
|
||||
$L$mulx4x_epilogue:
|
||||
mov rdi,QWORD[8+rsp] ;WIN64 epilogue
|
||||
mov rsi,QWORD[16+rsp]
|
||||
DB 0F3h,0C3h ;repret
|
||||
|
||||
$L$SEH_end_bn_mulx4x_mont:
|
||||
DB 77,111,110,116,103,111,109,101,114,121,32,77,117,108,116,105
|
||||
DB 112,108,105,99,97,116,105,111,110,32,102,111,114,32,120,56
|
||||
DB 54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83
|
||||
@@ -1054,6 +1449,9 @@ ALIGN 4
|
||||
DD $L$SEH_begin_bn_sqr8x_mont wrt ..imagebase
|
||||
DD $L$SEH_end_bn_sqr8x_mont wrt ..imagebase
|
||||
DD $L$SEH_info_bn_sqr8x_mont wrt ..imagebase
|
||||
DD $L$SEH_begin_bn_mulx4x_mont wrt ..imagebase
|
||||
DD $L$SEH_end_bn_mulx4x_mont wrt ..imagebase
|
||||
DD $L$SEH_info_bn_mulx4x_mont wrt ..imagebase
|
||||
section .xdata rdata align=8
|
||||
ALIGN 8
|
||||
$L$SEH_info_bn_mul_mont:
|
||||
@@ -1069,3 +1467,8 @@ DB 9,0,0,0
|
||||
DD sqr_handler wrt ..imagebase
|
||||
DD $L$sqr8x_prologue wrt ..imagebase,$L$sqr8x_body wrt ..imagebase,$L$sqr8x_epilogue wrt ..imagebase
|
||||
ALIGN 8
|
||||
$L$SEH_info_bn_mulx4x_mont:
|
||||
DB 9,0,0,0
|
||||
DD sqr_handler wrt ..imagebase
|
||||
DD $L$mulx4x_prologue wrt ..imagebase,$L$mulx4x_body wrt ..imagebase,$L$mulx4x_epilogue wrt ..imagebase
|
||||
ALIGN 8
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user