Source release 14.1.0

This commit is contained in:
John W. Bruce
2018-06-29 15:59:47 -07:00
parent 3ab70cec4e
commit afa11a48a0
1941 changed files with 557780 additions and 105547 deletions

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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