|  | ; 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__, win32 | 
|  | %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_init_clmul | 
|  | align	16 | 
|  | _gcm_init_clmul: | 
|  | L$_gcm_init_clmul_begin: | 
|  | mov	edx,DWORD [4+esp] | 
|  | mov	eax,DWORD [8+esp] | 
|  | call	L$000pic | 
|  | L$000pic: | 
|  | pop	ecx | 
|  | lea	ecx,[(L$bswap-L$000pic)+ecx] | 
|  | movdqu	xmm2,[eax] | 
|  | pshufd	xmm2,xmm2,78 | 
|  | pshufd	xmm4,xmm2,255 | 
|  | movdqa	xmm3,xmm2 | 
|  | psllq	xmm2,1 | 
|  | pxor	xmm5,xmm5 | 
|  | psrlq	xmm3,63 | 
|  | pcmpgtd	xmm5,xmm4 | 
|  | pslldq	xmm3,8 | 
|  | por	xmm2,xmm3 | 
|  | pand	xmm5,[16+ecx] | 
|  | pxor	xmm2,xmm5 | 
|  | movdqa	xmm0,xmm2 | 
|  | movdqa	xmm1,xmm0 | 
|  | pshufd	xmm3,xmm0,78 | 
|  | pshufd	xmm4,xmm2,78 | 
|  | pxor	xmm3,xmm0 | 
|  | pxor	xmm4,xmm2 | 
|  | db	102,15,58,68,194,0 | 
|  | db	102,15,58,68,202,17 | 
|  | db	102,15,58,68,220,0 | 
|  | xorps	xmm3,xmm0 | 
|  | xorps	xmm3,xmm1 | 
|  | movdqa	xmm4,xmm3 | 
|  | psrldq	xmm3,8 | 
|  | pslldq	xmm4,8 | 
|  | pxor	xmm1,xmm3 | 
|  | pxor	xmm0,xmm4 | 
|  | movdqa	xmm4,xmm0 | 
|  | movdqa	xmm3,xmm0 | 
|  | psllq	xmm0,5 | 
|  | pxor	xmm3,xmm0 | 
|  | psllq	xmm0,1 | 
|  | pxor	xmm0,xmm3 | 
|  | psllq	xmm0,57 | 
|  | movdqa	xmm3,xmm0 | 
|  | pslldq	xmm0,8 | 
|  | psrldq	xmm3,8 | 
|  | pxor	xmm0,xmm4 | 
|  | pxor	xmm1,xmm3 | 
|  | movdqa	xmm4,xmm0 | 
|  | psrlq	xmm0,1 | 
|  | pxor	xmm1,xmm4 | 
|  | pxor	xmm4,xmm0 | 
|  | psrlq	xmm0,5 | 
|  | pxor	xmm0,xmm4 | 
|  | psrlq	xmm0,1 | 
|  | pxor	xmm0,xmm1 | 
|  | pshufd	xmm3,xmm2,78 | 
|  | pshufd	xmm4,xmm0,78 | 
|  | pxor	xmm3,xmm2 | 
|  | movdqu	[edx],xmm2 | 
|  | pxor	xmm4,xmm0 | 
|  | movdqu	[16+edx],xmm0 | 
|  | db	102,15,58,15,227,8 | 
|  | movdqu	[32+edx],xmm4 | 
|  | ret | 
|  | global	_gcm_gmult_clmul | 
|  | align	16 | 
|  | _gcm_gmult_clmul: | 
|  | L$_gcm_gmult_clmul_begin: | 
|  | mov	eax,DWORD [4+esp] | 
|  | mov	edx,DWORD [8+esp] | 
|  | call	L$001pic | 
|  | L$001pic: | 
|  | pop	ecx | 
|  | lea	ecx,[(L$bswap-L$001pic)+ecx] | 
|  | movdqu	xmm0,[eax] | 
|  | movdqa	xmm5,[ecx] | 
|  | movups	xmm2,[edx] | 
|  | db	102,15,56,0,197 | 
|  | movups	xmm4,[32+edx] | 
|  | movdqa	xmm1,xmm0 | 
|  | pshufd	xmm3,xmm0,78 | 
|  | pxor	xmm3,xmm0 | 
|  | db	102,15,58,68,194,0 | 
|  | db	102,15,58,68,202,17 | 
|  | db	102,15,58,68,220,0 | 
|  | xorps	xmm3,xmm0 | 
|  | xorps	xmm3,xmm1 | 
|  | movdqa	xmm4,xmm3 | 
|  | psrldq	xmm3,8 | 
|  | pslldq	xmm4,8 | 
|  | pxor	xmm1,xmm3 | 
|  | pxor	xmm0,xmm4 | 
|  | movdqa	xmm4,xmm0 | 
|  | movdqa	xmm3,xmm0 | 
|  | psllq	xmm0,5 | 
|  | pxor	xmm3,xmm0 | 
|  | psllq	xmm0,1 | 
|  | pxor	xmm0,xmm3 | 
|  | psllq	xmm0,57 | 
|  | movdqa	xmm3,xmm0 | 
|  | pslldq	xmm0,8 | 
|  | psrldq	xmm3,8 | 
|  | pxor	xmm0,xmm4 | 
|  | pxor	xmm1,xmm3 | 
|  | movdqa	xmm4,xmm0 | 
|  | psrlq	xmm0,1 | 
|  | pxor	xmm1,xmm4 | 
|  | pxor	xmm4,xmm0 | 
|  | psrlq	xmm0,5 | 
|  | pxor	xmm0,xmm4 | 
|  | psrlq	xmm0,1 | 
|  | pxor	xmm0,xmm1 | 
|  | db	102,15,56,0,197 | 
|  | movdqu	[eax],xmm0 | 
|  | ret | 
|  | global	_gcm_ghash_clmul | 
|  | align	16 | 
|  | _gcm_ghash_clmul: | 
|  | L$_gcm_ghash_clmul_begin: | 
|  | push	ebp | 
|  | push	ebx | 
|  | push	esi | 
|  | push	edi | 
|  | mov	eax,DWORD [20+esp] | 
|  | mov	edx,DWORD [24+esp] | 
|  | mov	esi,DWORD [28+esp] | 
|  | mov	ebx,DWORD [32+esp] | 
|  | call	L$002pic | 
|  | L$002pic: | 
|  | pop	ecx | 
|  | lea	ecx,[(L$bswap-L$002pic)+ecx] | 
|  | movdqu	xmm0,[eax] | 
|  | movdqa	xmm5,[ecx] | 
|  | movdqu	xmm2,[edx] | 
|  | db	102,15,56,0,197 | 
|  | sub	ebx,16 | 
|  | jz	NEAR L$003odd_tail | 
|  | movdqu	xmm3,[esi] | 
|  | movdqu	xmm6,[16+esi] | 
|  | db	102,15,56,0,221 | 
|  | db	102,15,56,0,245 | 
|  | movdqu	xmm5,[32+edx] | 
|  | pxor	xmm0,xmm3 | 
|  | pshufd	xmm3,xmm6,78 | 
|  | movdqa	xmm7,xmm6 | 
|  | pxor	xmm3,xmm6 | 
|  | lea	esi,[32+esi] | 
|  | db	102,15,58,68,242,0 | 
|  | db	102,15,58,68,250,17 | 
|  | db	102,15,58,68,221,0 | 
|  | movups	xmm2,[16+edx] | 
|  | nop | 
|  | sub	ebx,32 | 
|  | jbe	NEAR L$004even_tail | 
|  | jmp	NEAR L$005mod_loop | 
|  | align	32 | 
|  | L$005mod_loop: | 
|  | pshufd	xmm4,xmm0,78 | 
|  | movdqa	xmm1,xmm0 | 
|  | pxor	xmm4,xmm0 | 
|  | nop | 
|  | db	102,15,58,68,194,0 | 
|  | db	102,15,58,68,202,17 | 
|  | db	102,15,58,68,229,16 | 
|  | movups	xmm2,[edx] | 
|  | xorps	xmm0,xmm6 | 
|  | movdqa	xmm5,[ecx] | 
|  | xorps	xmm1,xmm7 | 
|  | movdqu	xmm7,[esi] | 
|  | pxor	xmm3,xmm0 | 
|  | movdqu	xmm6,[16+esi] | 
|  | pxor	xmm3,xmm1 | 
|  | db	102,15,56,0,253 | 
|  | pxor	xmm4,xmm3 | 
|  | movdqa	xmm3,xmm4 | 
|  | psrldq	xmm4,8 | 
|  | pslldq	xmm3,8 | 
|  | pxor	xmm1,xmm4 | 
|  | pxor	xmm0,xmm3 | 
|  | db	102,15,56,0,245 | 
|  | pxor	xmm1,xmm7 | 
|  | movdqa	xmm7,xmm6 | 
|  | movdqa	xmm4,xmm0 | 
|  | movdqa	xmm3,xmm0 | 
|  | psllq	xmm0,5 | 
|  | pxor	xmm3,xmm0 | 
|  | psllq	xmm0,1 | 
|  | pxor	xmm0,xmm3 | 
|  | db	102,15,58,68,242,0 | 
|  | movups	xmm5,[32+edx] | 
|  | psllq	xmm0,57 | 
|  | movdqa	xmm3,xmm0 | 
|  | pslldq	xmm0,8 | 
|  | psrldq	xmm3,8 | 
|  | pxor	xmm0,xmm4 | 
|  | pxor	xmm1,xmm3 | 
|  | pshufd	xmm3,xmm7,78 | 
|  | movdqa	xmm4,xmm0 | 
|  | psrlq	xmm0,1 | 
|  | pxor	xmm3,xmm7 | 
|  | pxor	xmm1,xmm4 | 
|  | db	102,15,58,68,250,17 | 
|  | movups	xmm2,[16+edx] | 
|  | pxor	xmm4,xmm0 | 
|  | psrlq	xmm0,5 | 
|  | pxor	xmm0,xmm4 | 
|  | psrlq	xmm0,1 | 
|  | pxor	xmm0,xmm1 | 
|  | db	102,15,58,68,221,0 | 
|  | lea	esi,[32+esi] | 
|  | sub	ebx,32 | 
|  | ja	NEAR L$005mod_loop | 
|  | L$004even_tail: | 
|  | pshufd	xmm4,xmm0,78 | 
|  | movdqa	xmm1,xmm0 | 
|  | pxor	xmm4,xmm0 | 
|  | db	102,15,58,68,194,0 | 
|  | db	102,15,58,68,202,17 | 
|  | db	102,15,58,68,229,16 | 
|  | movdqa	xmm5,[ecx] | 
|  | xorps	xmm0,xmm6 | 
|  | xorps	xmm1,xmm7 | 
|  | pxor	xmm3,xmm0 | 
|  | pxor	xmm3,xmm1 | 
|  | pxor	xmm4,xmm3 | 
|  | movdqa	xmm3,xmm4 | 
|  | psrldq	xmm4,8 | 
|  | pslldq	xmm3,8 | 
|  | pxor	xmm1,xmm4 | 
|  | pxor	xmm0,xmm3 | 
|  | movdqa	xmm4,xmm0 | 
|  | movdqa	xmm3,xmm0 | 
|  | psllq	xmm0,5 | 
|  | pxor	xmm3,xmm0 | 
|  | psllq	xmm0,1 | 
|  | pxor	xmm0,xmm3 | 
|  | psllq	xmm0,57 | 
|  | movdqa	xmm3,xmm0 | 
|  | pslldq	xmm0,8 | 
|  | psrldq	xmm3,8 | 
|  | pxor	xmm0,xmm4 | 
|  | pxor	xmm1,xmm3 | 
|  | movdqa	xmm4,xmm0 | 
|  | psrlq	xmm0,1 | 
|  | pxor	xmm1,xmm4 | 
|  | pxor	xmm4,xmm0 | 
|  | psrlq	xmm0,5 | 
|  | pxor	xmm0,xmm4 | 
|  | psrlq	xmm0,1 | 
|  | pxor	xmm0,xmm1 | 
|  | test	ebx,ebx | 
|  | jnz	NEAR L$006done | 
|  | movups	xmm2,[edx] | 
|  | L$003odd_tail: | 
|  | movdqu	xmm3,[esi] | 
|  | db	102,15,56,0,221 | 
|  | pxor	xmm0,xmm3 | 
|  | movdqa	xmm1,xmm0 | 
|  | pshufd	xmm3,xmm0,78 | 
|  | pshufd	xmm4,xmm2,78 | 
|  | pxor	xmm3,xmm0 | 
|  | pxor	xmm4,xmm2 | 
|  | db	102,15,58,68,194,0 | 
|  | db	102,15,58,68,202,17 | 
|  | db	102,15,58,68,220,0 | 
|  | xorps	xmm3,xmm0 | 
|  | xorps	xmm3,xmm1 | 
|  | movdqa	xmm4,xmm3 | 
|  | psrldq	xmm3,8 | 
|  | pslldq	xmm4,8 | 
|  | pxor	xmm1,xmm3 | 
|  | pxor	xmm0,xmm4 | 
|  | movdqa	xmm4,xmm0 | 
|  | movdqa	xmm3,xmm0 | 
|  | psllq	xmm0,5 | 
|  | pxor	xmm3,xmm0 | 
|  | psllq	xmm0,1 | 
|  | pxor	xmm0,xmm3 | 
|  | psllq	xmm0,57 | 
|  | movdqa	xmm3,xmm0 | 
|  | pslldq	xmm0,8 | 
|  | psrldq	xmm3,8 | 
|  | pxor	xmm0,xmm4 | 
|  | pxor	xmm1,xmm3 | 
|  | movdqa	xmm4,xmm0 | 
|  | psrlq	xmm0,1 | 
|  | pxor	xmm1,xmm4 | 
|  | pxor	xmm4,xmm0 | 
|  | psrlq	xmm0,5 | 
|  | pxor	xmm0,xmm4 | 
|  | psrlq	xmm0,1 | 
|  | pxor	xmm0,xmm1 | 
|  | L$006done: | 
|  | db	102,15,56,0,197 | 
|  | movdqu	[eax],xmm0 | 
|  | pop	edi | 
|  | pop	esi | 
|  | pop	ebx | 
|  | pop	ebp | 
|  | ret | 
|  | align	64 | 
|  | L$bswap: | 
|  | db	15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0 | 
|  | db	1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,194 | 
|  | db	71,72,65,83,72,32,102,111,114,32,120,56,54,44,32,67 | 
|  | db	82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112 | 
|  | db	112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62 | 
|  | db	0 | 
|  | %else | 
|  | ; Work around https://bugzilla.nasm.us/show_bug.cgi?id=3392738 | 
|  | ret | 
|  | %endif |