You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
292 lines
5.0 KiB
292 lines
5.0 KiB
; 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 |
|
$@feat.00 equ 1 |
|
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
|
|
|