Source release 15.2.0

This commit is contained in:
John W. Bruce
2019-06-28 16:02:52 -07:00
parent 2b26dee09c
commit 2990f23065
1236 changed files with 166886 additions and 142315 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,300 @@
; This file is generated from a similarly-named Perl script in the BoringSSL
; source tree. Do not edit by hand.
%ifdef BORINGSSL_PREFIX
%include "boringssl_prefix_symbols_nasm.inc"
%endif
%ifidn __OUTPUT_FORMAT__,obj
section code use32 class=code align=64
%elifidn __OUTPUT_FORMAT__,win32
%ifdef __YASM_VERSION_ID__
%if __YASM_VERSION_ID__ < 01010000h
%error yasm version 1.1.0 or later needed.
%endif
; Yasm automatically includes .00 and complains about redefining it.
; https://www.tortall.net/projects/yasm/manual/html/objfmt-win32-safeseh.html
%else
$@feat.00 equ 1
%endif
section .text code align=64
%else
section .text code
%endif
global _gcm_gmult_ssse3
align 16
_gcm_gmult_ssse3:
L$_gcm_gmult_ssse3_begin:
push ebp
push ebx
push esi
push edi
mov edi,DWORD [20+esp]
mov esi,DWORD [24+esp]
movdqu xmm0,[edi]
call L$000pic_point
L$000pic_point:
pop eax
movdqa xmm7,[(L$reverse_bytes-L$000pic_point)+eax]
movdqa xmm2,[(L$low4_mask-L$000pic_point)+eax]
db 102,15,56,0,199
movdqa xmm1,xmm2
pandn xmm1,xmm0
psrld xmm1,4
pand xmm0,xmm2
pxor xmm2,xmm2
pxor xmm3,xmm3
mov eax,5
L$001loop_row_1:
movdqa xmm4,[esi]
lea esi,[16+esi]
movdqa xmm6,xmm2
db 102,15,58,15,243,1
movdqa xmm3,xmm6
psrldq xmm2,1
movdqa xmm5,xmm4
db 102,15,56,0,224
db 102,15,56,0,233
pxor xmm2,xmm5
movdqa xmm5,xmm4
psllq xmm5,60
movdqa xmm6,xmm5
pslldq xmm6,8
pxor xmm3,xmm6
psrldq xmm5,8
pxor xmm2,xmm5
psrlq xmm4,4
pxor xmm2,xmm4
sub eax,1
jnz NEAR L$001loop_row_1
pxor xmm2,xmm3
psrlq xmm3,1
pxor xmm2,xmm3
psrlq xmm3,1
pxor xmm2,xmm3
psrlq xmm3,5
pxor xmm2,xmm3
pxor xmm3,xmm3
mov eax,5
L$002loop_row_2:
movdqa xmm4,[esi]
lea esi,[16+esi]
movdqa xmm6,xmm2
db 102,15,58,15,243,1
movdqa xmm3,xmm6
psrldq xmm2,1
movdqa xmm5,xmm4
db 102,15,56,0,224
db 102,15,56,0,233
pxor xmm2,xmm5
movdqa xmm5,xmm4
psllq xmm5,60
movdqa xmm6,xmm5
pslldq xmm6,8
pxor xmm3,xmm6
psrldq xmm5,8
pxor xmm2,xmm5
psrlq xmm4,4
pxor xmm2,xmm4
sub eax,1
jnz NEAR L$002loop_row_2
pxor xmm2,xmm3
psrlq xmm3,1
pxor xmm2,xmm3
psrlq xmm3,1
pxor xmm2,xmm3
psrlq xmm3,5
pxor xmm2,xmm3
pxor xmm3,xmm3
mov eax,6
L$003loop_row_3:
movdqa xmm4,[esi]
lea esi,[16+esi]
movdqa xmm6,xmm2
db 102,15,58,15,243,1
movdqa xmm3,xmm6
psrldq xmm2,1
movdqa xmm5,xmm4
db 102,15,56,0,224
db 102,15,56,0,233
pxor xmm2,xmm5
movdqa xmm5,xmm4
psllq xmm5,60
movdqa xmm6,xmm5
pslldq xmm6,8
pxor xmm3,xmm6
psrldq xmm5,8
pxor xmm2,xmm5
psrlq xmm4,4
pxor xmm2,xmm4
sub eax,1
jnz NEAR L$003loop_row_3
pxor xmm2,xmm3
psrlq xmm3,1
pxor xmm2,xmm3
psrlq xmm3,1
pxor xmm2,xmm3
psrlq xmm3,5
pxor xmm2,xmm3
pxor xmm3,xmm3
db 102,15,56,0,215
movdqu [edi],xmm2
pxor xmm0,xmm0
pxor xmm1,xmm1
pxor xmm2,xmm2
pxor xmm3,xmm3
pxor xmm4,xmm4
pxor xmm5,xmm5
pxor xmm6,xmm6
pop edi
pop esi
pop ebx
pop ebp
ret
global _gcm_ghash_ssse3
align 16
_gcm_ghash_ssse3:
L$_gcm_ghash_ssse3_begin:
push ebp
push ebx
push esi
push edi
mov edi,DWORD [20+esp]
mov esi,DWORD [24+esp]
mov edx,DWORD [28+esp]
mov ecx,DWORD [32+esp]
movdqu xmm0,[edi]
call L$004pic_point
L$004pic_point:
pop ebx
movdqa xmm7,[(L$reverse_bytes-L$004pic_point)+ebx]
and ecx,-16
db 102,15,56,0,199
pxor xmm3,xmm3
L$005loop_ghash:
movdqa xmm2,[(L$low4_mask-L$004pic_point)+ebx]
movdqu xmm1,[edx]
db 102,15,56,0,207
pxor xmm0,xmm1
movdqa xmm1,xmm2
pandn xmm1,xmm0
psrld xmm1,4
pand xmm0,xmm2
pxor xmm2,xmm2
mov eax,5
L$006loop_row_4:
movdqa xmm4,[esi]
lea esi,[16+esi]
movdqa xmm6,xmm2
db 102,15,58,15,243,1
movdqa xmm3,xmm6
psrldq xmm2,1
movdqa xmm5,xmm4
db 102,15,56,0,224
db 102,15,56,0,233
pxor xmm2,xmm5
movdqa xmm5,xmm4
psllq xmm5,60
movdqa xmm6,xmm5
pslldq xmm6,8
pxor xmm3,xmm6
psrldq xmm5,8
pxor xmm2,xmm5
psrlq xmm4,4
pxor xmm2,xmm4
sub eax,1
jnz NEAR L$006loop_row_4
pxor xmm2,xmm3
psrlq xmm3,1
pxor xmm2,xmm3
psrlq xmm3,1
pxor xmm2,xmm3
psrlq xmm3,5
pxor xmm2,xmm3
pxor xmm3,xmm3
mov eax,5
L$007loop_row_5:
movdqa xmm4,[esi]
lea esi,[16+esi]
movdqa xmm6,xmm2
db 102,15,58,15,243,1
movdqa xmm3,xmm6
psrldq xmm2,1
movdqa xmm5,xmm4
db 102,15,56,0,224
db 102,15,56,0,233
pxor xmm2,xmm5
movdqa xmm5,xmm4
psllq xmm5,60
movdqa xmm6,xmm5
pslldq xmm6,8
pxor xmm3,xmm6
psrldq xmm5,8
pxor xmm2,xmm5
psrlq xmm4,4
pxor xmm2,xmm4
sub eax,1
jnz NEAR L$007loop_row_5
pxor xmm2,xmm3
psrlq xmm3,1
pxor xmm2,xmm3
psrlq xmm3,1
pxor xmm2,xmm3
psrlq xmm3,5
pxor xmm2,xmm3
pxor xmm3,xmm3
mov eax,6
L$008loop_row_6:
movdqa xmm4,[esi]
lea esi,[16+esi]
movdqa xmm6,xmm2
db 102,15,58,15,243,1
movdqa xmm3,xmm6
psrldq xmm2,1
movdqa xmm5,xmm4
db 102,15,56,0,224
db 102,15,56,0,233
pxor xmm2,xmm5
movdqa xmm5,xmm4
psllq xmm5,60
movdqa xmm6,xmm5
pslldq xmm6,8
pxor xmm3,xmm6
psrldq xmm5,8
pxor xmm2,xmm5
psrlq xmm4,4
pxor xmm2,xmm4
sub eax,1
jnz NEAR L$008loop_row_6
pxor xmm2,xmm3
psrlq xmm3,1
pxor xmm2,xmm3
psrlq xmm3,1
pxor xmm2,xmm3
psrlq xmm3,5
pxor xmm2,xmm3
pxor xmm3,xmm3
movdqa xmm0,xmm2
lea esi,[esi-256]
lea edx,[16+edx]
sub ecx,16
jnz NEAR L$005loop_ghash
db 102,15,56,0,199
movdqu [edi],xmm0
pxor xmm0,xmm0
pxor xmm1,xmm1
pxor xmm2,xmm2
pxor xmm3,xmm3
pxor xmm4,xmm4
pxor xmm5,xmm5
pxor xmm6,xmm6
pop edi
pop esi
pop ebx
pop ebp
ret
align 16
L$reverse_bytes:
db 15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0
align 16
L$low4_mask:
dd 252645135,252645135,252645135,252645135

View File

@@ -20,6 +20,9 @@ section .text code align=64
%else
section .text code
%endif
%ifndef NDEBUG
extern _BORINGSSL_function_hit
%endif
align 64
L$_vpaes_consts:
dd 218628480,235210255,168496130,67568393
@@ -471,6 +474,18 @@ L$_vpaes_set_encrypt_key_begin:
push ebx
push esi
push edi
%ifndef NDEBUG
push ebx
push edx
call L$016pic
L$016pic:
pop ebx
lea ebx,[(_BORINGSSL_function_hit+5-L$016pic)+ebx]
mov edx,1
mov BYTE [ebx],dl
pop edx
pop ebx
%endif
mov esi,DWORD [20+esp]
lea ebx,[esp-56]
mov eax,DWORD [24+esp]
@@ -484,9 +499,9 @@ L$_vpaes_set_encrypt_key_begin:
mov DWORD [240+edx],ebx
mov ecx,48
mov edi,0
lea ebp,[(L$_vpaes_consts+0x30-L$016pic_point)]
lea ebp,[(L$_vpaes_consts+0x30-L$017pic_point)]
call __vpaes_schedule_core
L$016pic_point:
L$017pic_point:
mov esp,DWORD [48+esp]
xor eax,eax
pop edi
@@ -520,9 +535,9 @@ L$_vpaes_set_decrypt_key_begin:
shr ecx,1
and ecx,32
xor ecx,32
lea ebp,[(L$_vpaes_consts+0x30-L$017pic_point)]
lea ebp,[(L$_vpaes_consts+0x30-L$018pic_point)]
call __vpaes_schedule_core
L$017pic_point:
L$018pic_point:
mov esp,DWORD [48+esp]
xor eax,eax
pop edi
@@ -538,9 +553,21 @@ L$_vpaes_encrypt_begin:
push ebx
push esi
push edi
lea ebp,[(L$_vpaes_consts+0x30-L$018pic_point)]
%ifndef NDEBUG
push ebx
push edx
call L$019pic
L$019pic:
pop ebx
lea ebx,[(_BORINGSSL_function_hit+4-L$019pic)+ebx]
mov edx,1
mov BYTE [ebx],dl
pop edx
pop ebx
%endif
lea ebp,[(L$_vpaes_consts+0x30-L$020pic_point)]
call __vpaes_preheat
L$018pic_point:
L$020pic_point:
mov esi,DWORD [20+esp]
lea ebx,[esp-56]
mov edi,DWORD [24+esp]
@@ -565,9 +592,9 @@ L$_vpaes_decrypt_begin:
push ebx
push esi
push edi
lea ebp,[(L$_vpaes_consts+0x30-L$019pic_point)]
lea ebp,[(L$_vpaes_consts+0x30-L$021pic_point)]
call __vpaes_preheat
L$019pic_point:
L$021pic_point:
mov esi,DWORD [20+esp]
lea ebx,[esp-56]
mov edi,DWORD [24+esp]
@@ -597,7 +624,7 @@ L$_vpaes_cbc_encrypt_begin:
mov eax,DWORD [28+esp]
mov edx,DWORD [32+esp]
sub eax,16
jc NEAR L$020cbc_abort
jc NEAR L$022cbc_abort
lea ebx,[esp-56]
mov ebp,DWORD [36+esp]
and ebx,-16
@@ -610,14 +637,14 @@ L$_vpaes_cbc_encrypt_begin:
mov DWORD [4+esp],edx
mov DWORD [8+esp],ebp
mov edi,eax
lea ebp,[(L$_vpaes_consts+0x30-L$021pic_point)]
lea ebp,[(L$_vpaes_consts+0x30-L$023pic_point)]
call __vpaes_preheat
L$021pic_point:
L$023pic_point:
cmp ecx,0
je NEAR L$022cbc_dec_loop
jmp NEAR L$023cbc_enc_loop
je NEAR L$024cbc_dec_loop
jmp NEAR L$025cbc_enc_loop
align 16
L$023cbc_enc_loop:
L$025cbc_enc_loop:
movdqu xmm0,[esi]
pxor xmm0,xmm1
call __vpaes_encrypt_core
@@ -627,10 +654,10 @@ L$023cbc_enc_loop:
movdqu [esi*1+ebx],xmm0
lea esi,[16+esi]
sub edi,16
jnc NEAR L$023cbc_enc_loop
jmp NEAR L$024cbc_done
jnc NEAR L$025cbc_enc_loop
jmp NEAR L$026cbc_done
align 16
L$022cbc_dec_loop:
L$024cbc_dec_loop:
movdqu xmm0,[esi]
movdqa [16+esp],xmm1
movdqa [32+esp],xmm0
@@ -642,12 +669,12 @@ L$022cbc_dec_loop:
movdqu [esi*1+ebx],xmm0
lea esi,[16+esi]
sub edi,16
jnc NEAR L$022cbc_dec_loop
L$024cbc_done:
jnc NEAR L$024cbc_dec_loop
L$026cbc_done:
mov ebx,DWORD [8+esp]
mov esp,DWORD [48+esp]
movdqu [ebx],xmm1
L$020cbc_abort:
L$022cbc_abort:
pop edi
pop esi
pop ebx

View File

@@ -0,0 +1,164 @@
; This file is generated from a similarly-named Perl script in the BoringSSL
; source tree. Do not edit by hand.
%ifdef BORINGSSL_PREFIX
%include "boringssl_prefix_symbols_nasm.inc"
%endif
%ifidn __OUTPUT_FORMAT__,obj
section code use32 class=code align=64
%elifidn __OUTPUT_FORMAT__,win32
%ifdef __YASM_VERSION_ID__
%if __YASM_VERSION_ID__ < 01010000h
%error yasm version 1.1.0 or later needed.
%endif
; Yasm automatically includes .00 and complains about redefining it.
; https://www.tortall.net/projects/yasm/manual/html/objfmt-win32-safeseh.html
%else
$@feat.00 equ 1
%endif
section .text code align=64
%else
section .text code
%endif
global _abi_test_trampoline
align 16
_abi_test_trampoline:
L$_abi_test_trampoline_begin:
push ebp
push ebx
push esi
push edi
mov ecx,DWORD [24+esp]
mov esi,DWORD [ecx]
mov edi,DWORD [4+ecx]
mov ebx,DWORD [8+ecx]
mov ebp,DWORD [12+ecx]
sub esp,44
mov eax,DWORD [72+esp]
xor ecx,ecx
L$000loop:
cmp ecx,DWORD [76+esp]
jae NEAR L$001loop_done
mov edx,DWORD [ecx*4+eax]
mov DWORD [ecx*4+esp],edx
add ecx,1
jmp NEAR L$000loop
L$001loop_done:
call DWORD [64+esp]
add esp,44
mov ecx,DWORD [24+esp]
mov DWORD [ecx],esi
mov DWORD [4+ecx],edi
mov DWORD [8+ecx],ebx
mov DWORD [12+ecx],ebp
pop edi
pop esi
pop ebx
pop ebp
ret
global _abi_test_get_and_clear_direction_flag
align 16
_abi_test_get_and_clear_direction_flag:
L$_abi_test_get_and_clear_direction_flag_begin:
pushfd
pop eax
and eax,1024
shr eax,10
cld
ret
global _abi_test_set_direction_flag
align 16
_abi_test_set_direction_flag:
L$_abi_test_set_direction_flag_begin:
std
ret
global _abi_test_clobber_eax
align 16
_abi_test_clobber_eax:
L$_abi_test_clobber_eax_begin:
xor eax,eax
ret
global _abi_test_clobber_ebx
align 16
_abi_test_clobber_ebx:
L$_abi_test_clobber_ebx_begin:
xor ebx,ebx
ret
global _abi_test_clobber_ecx
align 16
_abi_test_clobber_ecx:
L$_abi_test_clobber_ecx_begin:
xor ecx,ecx
ret
global _abi_test_clobber_edx
align 16
_abi_test_clobber_edx:
L$_abi_test_clobber_edx_begin:
xor edx,edx
ret
global _abi_test_clobber_edi
align 16
_abi_test_clobber_edi:
L$_abi_test_clobber_edi_begin:
xor edi,edi
ret
global _abi_test_clobber_esi
align 16
_abi_test_clobber_esi:
L$_abi_test_clobber_esi_begin:
xor esi,esi
ret
global _abi_test_clobber_ebp
align 16
_abi_test_clobber_ebp:
L$_abi_test_clobber_ebp_begin:
xor ebp,ebp
ret
global _abi_test_clobber_xmm0
align 16
_abi_test_clobber_xmm0:
L$_abi_test_clobber_xmm0_begin:
pxor xmm0,xmm0
ret
global _abi_test_clobber_xmm1
align 16
_abi_test_clobber_xmm1:
L$_abi_test_clobber_xmm1_begin:
pxor xmm1,xmm1
ret
global _abi_test_clobber_xmm2
align 16
_abi_test_clobber_xmm2:
L$_abi_test_clobber_xmm2_begin:
pxor xmm2,xmm2
ret
global _abi_test_clobber_xmm3
align 16
_abi_test_clobber_xmm3:
L$_abi_test_clobber_xmm3_begin:
pxor xmm3,xmm3
ret
global _abi_test_clobber_xmm4
align 16
_abi_test_clobber_xmm4:
L$_abi_test_clobber_xmm4_begin:
pxor xmm4,xmm4
ret
global _abi_test_clobber_xmm5
align 16
_abi_test_clobber_xmm5:
L$_abi_test_clobber_xmm5_begin:
pxor xmm5,xmm5
ret
global _abi_test_clobber_xmm6
align 16
_abi_test_clobber_xmm6:
L$_abi_test_clobber_xmm6_begin:
pxor xmm6,xmm6
ret
global _abi_test_clobber_xmm7
align 16
_abi_test_clobber_xmm7:
L$_abi_test_clobber_xmm7_begin:
pxor xmm7,xmm7
ret