Source release 15.2.0
This commit is contained in:
File diff suppressed because it is too large
Load Diff
300
third_party/boringssl/kit/win-x86/crypto/fipsmodule/ghash-ssse3-x86.asm
vendored
Normal file
300
third_party/boringssl/kit/win-x86/crypto/fipsmodule/ghash-ssse3-x86.asm
vendored
Normal 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
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user