xref: /aosp_15_r20/external/boringssl/src/gen/bcm/ghash-ssse3-x86-linux.S (revision 8fb009dc861624b67b6cdb62ea21f0f22d0c584b)
1*8fb009dcSAndroid Build Coastguard Worker// This file is generated from a similarly-named Perl script in the BoringSSL
2*8fb009dcSAndroid Build Coastguard Worker// source tree. Do not edit by hand.
3*8fb009dcSAndroid Build Coastguard Worker
4*8fb009dcSAndroid Build Coastguard Worker#include <openssl/asm_base.h>
5*8fb009dcSAndroid Build Coastguard Worker
6*8fb009dcSAndroid Build Coastguard Worker#if !defined(OPENSSL_NO_ASM) && defined(OPENSSL_X86) && defined(__ELF__)
7*8fb009dcSAndroid Build Coastguard Worker.text
8*8fb009dcSAndroid Build Coastguard Worker.globl	gcm_gmult_ssse3
9*8fb009dcSAndroid Build Coastguard Worker.hidden	gcm_gmult_ssse3
10*8fb009dcSAndroid Build Coastguard Worker.type	gcm_gmult_ssse3,@function
11*8fb009dcSAndroid Build Coastguard Worker.align	16
12*8fb009dcSAndroid Build Coastguard Workergcm_gmult_ssse3:
13*8fb009dcSAndroid Build Coastguard Worker.L_gcm_gmult_ssse3_begin:
14*8fb009dcSAndroid Build Coastguard Worker	pushl	%ebp
15*8fb009dcSAndroid Build Coastguard Worker	pushl	%ebx
16*8fb009dcSAndroid Build Coastguard Worker	pushl	%esi
17*8fb009dcSAndroid Build Coastguard Worker	pushl	%edi
18*8fb009dcSAndroid Build Coastguard Worker	movl	20(%esp),%edi
19*8fb009dcSAndroid Build Coastguard Worker	movl	24(%esp),%esi
20*8fb009dcSAndroid Build Coastguard Worker	movdqu	(%edi),%xmm0
21*8fb009dcSAndroid Build Coastguard Worker	call	.L000pic_point
22*8fb009dcSAndroid Build Coastguard Worker.L000pic_point:
23*8fb009dcSAndroid Build Coastguard Worker	popl	%eax
24*8fb009dcSAndroid Build Coastguard Worker	movdqa	.Lreverse_bytes-.L000pic_point(%eax),%xmm7
25*8fb009dcSAndroid Build Coastguard Worker	movdqa	.Llow4_mask-.L000pic_point(%eax),%xmm2
26*8fb009dcSAndroid Build Coastguard Worker.byte	102,15,56,0,199
27*8fb009dcSAndroid Build Coastguard Worker	movdqa	%xmm2,%xmm1
28*8fb009dcSAndroid Build Coastguard Worker	pandn	%xmm0,%xmm1
29*8fb009dcSAndroid Build Coastguard Worker	psrld	$4,%xmm1
30*8fb009dcSAndroid Build Coastguard Worker	pand	%xmm2,%xmm0
31*8fb009dcSAndroid Build Coastguard Worker	pxor	%xmm2,%xmm2
32*8fb009dcSAndroid Build Coastguard Worker	pxor	%xmm3,%xmm3
33*8fb009dcSAndroid Build Coastguard Worker	movl	$5,%eax
34*8fb009dcSAndroid Build Coastguard Worker.L001loop_row_1:
35*8fb009dcSAndroid Build Coastguard Worker	movdqa	(%esi),%xmm4
36*8fb009dcSAndroid Build Coastguard Worker	leal	16(%esi),%esi
37*8fb009dcSAndroid Build Coastguard Worker	movdqa	%xmm2,%xmm6
38*8fb009dcSAndroid Build Coastguard Worker.byte	102,15,58,15,243,1
39*8fb009dcSAndroid Build Coastguard Worker	movdqa	%xmm6,%xmm3
40*8fb009dcSAndroid Build Coastguard Worker	psrldq	$1,%xmm2
41*8fb009dcSAndroid Build Coastguard Worker	movdqa	%xmm4,%xmm5
42*8fb009dcSAndroid Build Coastguard Worker.byte	102,15,56,0,224
43*8fb009dcSAndroid Build Coastguard Worker.byte	102,15,56,0,233
44*8fb009dcSAndroid Build Coastguard Worker	pxor	%xmm5,%xmm2
45*8fb009dcSAndroid Build Coastguard Worker	movdqa	%xmm4,%xmm5
46*8fb009dcSAndroid Build Coastguard Worker	psllq	$60,%xmm5
47*8fb009dcSAndroid Build Coastguard Worker	movdqa	%xmm5,%xmm6
48*8fb009dcSAndroid Build Coastguard Worker	pslldq	$8,%xmm6
49*8fb009dcSAndroid Build Coastguard Worker	pxor	%xmm6,%xmm3
50*8fb009dcSAndroid Build Coastguard Worker	psrldq	$8,%xmm5
51*8fb009dcSAndroid Build Coastguard Worker	pxor	%xmm5,%xmm2
52*8fb009dcSAndroid Build Coastguard Worker	psrlq	$4,%xmm4
53*8fb009dcSAndroid Build Coastguard Worker	pxor	%xmm4,%xmm2
54*8fb009dcSAndroid Build Coastguard Worker	subl	$1,%eax
55*8fb009dcSAndroid Build Coastguard Worker	jnz	.L001loop_row_1
56*8fb009dcSAndroid Build Coastguard Worker	pxor	%xmm3,%xmm2
57*8fb009dcSAndroid Build Coastguard Worker	psrlq	$1,%xmm3
58*8fb009dcSAndroid Build Coastguard Worker	pxor	%xmm3,%xmm2
59*8fb009dcSAndroid Build Coastguard Worker	psrlq	$1,%xmm3
60*8fb009dcSAndroid Build Coastguard Worker	pxor	%xmm3,%xmm2
61*8fb009dcSAndroid Build Coastguard Worker	psrlq	$5,%xmm3
62*8fb009dcSAndroid Build Coastguard Worker	pxor	%xmm3,%xmm2
63*8fb009dcSAndroid Build Coastguard Worker	pxor	%xmm3,%xmm3
64*8fb009dcSAndroid Build Coastguard Worker	movl	$5,%eax
65*8fb009dcSAndroid Build Coastguard Worker.L002loop_row_2:
66*8fb009dcSAndroid Build Coastguard Worker	movdqa	(%esi),%xmm4
67*8fb009dcSAndroid Build Coastguard Worker	leal	16(%esi),%esi
68*8fb009dcSAndroid Build Coastguard Worker	movdqa	%xmm2,%xmm6
69*8fb009dcSAndroid Build Coastguard Worker.byte	102,15,58,15,243,1
70*8fb009dcSAndroid Build Coastguard Worker	movdqa	%xmm6,%xmm3
71*8fb009dcSAndroid Build Coastguard Worker	psrldq	$1,%xmm2
72*8fb009dcSAndroid Build Coastguard Worker	movdqa	%xmm4,%xmm5
73*8fb009dcSAndroid Build Coastguard Worker.byte	102,15,56,0,224
74*8fb009dcSAndroid Build Coastguard Worker.byte	102,15,56,0,233
75*8fb009dcSAndroid Build Coastguard Worker	pxor	%xmm5,%xmm2
76*8fb009dcSAndroid Build Coastguard Worker	movdqa	%xmm4,%xmm5
77*8fb009dcSAndroid Build Coastguard Worker	psllq	$60,%xmm5
78*8fb009dcSAndroid Build Coastguard Worker	movdqa	%xmm5,%xmm6
79*8fb009dcSAndroid Build Coastguard Worker	pslldq	$8,%xmm6
80*8fb009dcSAndroid Build Coastguard Worker	pxor	%xmm6,%xmm3
81*8fb009dcSAndroid Build Coastguard Worker	psrldq	$8,%xmm5
82*8fb009dcSAndroid Build Coastguard Worker	pxor	%xmm5,%xmm2
83*8fb009dcSAndroid Build Coastguard Worker	psrlq	$4,%xmm4
84*8fb009dcSAndroid Build Coastguard Worker	pxor	%xmm4,%xmm2
85*8fb009dcSAndroid Build Coastguard Worker	subl	$1,%eax
86*8fb009dcSAndroid Build Coastguard Worker	jnz	.L002loop_row_2
87*8fb009dcSAndroid Build Coastguard Worker	pxor	%xmm3,%xmm2
88*8fb009dcSAndroid Build Coastguard Worker	psrlq	$1,%xmm3
89*8fb009dcSAndroid Build Coastguard Worker	pxor	%xmm3,%xmm2
90*8fb009dcSAndroid Build Coastguard Worker	psrlq	$1,%xmm3
91*8fb009dcSAndroid Build Coastguard Worker	pxor	%xmm3,%xmm2
92*8fb009dcSAndroid Build Coastguard Worker	psrlq	$5,%xmm3
93*8fb009dcSAndroid Build Coastguard Worker	pxor	%xmm3,%xmm2
94*8fb009dcSAndroid Build Coastguard Worker	pxor	%xmm3,%xmm3
95*8fb009dcSAndroid Build Coastguard Worker	movl	$6,%eax
96*8fb009dcSAndroid Build Coastguard Worker.L003loop_row_3:
97*8fb009dcSAndroid Build Coastguard Worker	movdqa	(%esi),%xmm4
98*8fb009dcSAndroid Build Coastguard Worker	leal	16(%esi),%esi
99*8fb009dcSAndroid Build Coastguard Worker	movdqa	%xmm2,%xmm6
100*8fb009dcSAndroid Build Coastguard Worker.byte	102,15,58,15,243,1
101*8fb009dcSAndroid Build Coastguard Worker	movdqa	%xmm6,%xmm3
102*8fb009dcSAndroid Build Coastguard Worker	psrldq	$1,%xmm2
103*8fb009dcSAndroid Build Coastguard Worker	movdqa	%xmm4,%xmm5
104*8fb009dcSAndroid Build Coastguard Worker.byte	102,15,56,0,224
105*8fb009dcSAndroid Build Coastguard Worker.byte	102,15,56,0,233
106*8fb009dcSAndroid Build Coastguard Worker	pxor	%xmm5,%xmm2
107*8fb009dcSAndroid Build Coastguard Worker	movdqa	%xmm4,%xmm5
108*8fb009dcSAndroid Build Coastguard Worker	psllq	$60,%xmm5
109*8fb009dcSAndroid Build Coastguard Worker	movdqa	%xmm5,%xmm6
110*8fb009dcSAndroid Build Coastguard Worker	pslldq	$8,%xmm6
111*8fb009dcSAndroid Build Coastguard Worker	pxor	%xmm6,%xmm3
112*8fb009dcSAndroid Build Coastguard Worker	psrldq	$8,%xmm5
113*8fb009dcSAndroid Build Coastguard Worker	pxor	%xmm5,%xmm2
114*8fb009dcSAndroid Build Coastguard Worker	psrlq	$4,%xmm4
115*8fb009dcSAndroid Build Coastguard Worker	pxor	%xmm4,%xmm2
116*8fb009dcSAndroid Build Coastguard Worker	subl	$1,%eax
117*8fb009dcSAndroid Build Coastguard Worker	jnz	.L003loop_row_3
118*8fb009dcSAndroid Build Coastguard Worker	pxor	%xmm3,%xmm2
119*8fb009dcSAndroid Build Coastguard Worker	psrlq	$1,%xmm3
120*8fb009dcSAndroid Build Coastguard Worker	pxor	%xmm3,%xmm2
121*8fb009dcSAndroid Build Coastguard Worker	psrlq	$1,%xmm3
122*8fb009dcSAndroid Build Coastguard Worker	pxor	%xmm3,%xmm2
123*8fb009dcSAndroid Build Coastguard Worker	psrlq	$5,%xmm3
124*8fb009dcSAndroid Build Coastguard Worker	pxor	%xmm3,%xmm2
125*8fb009dcSAndroid Build Coastguard Worker	pxor	%xmm3,%xmm3
126*8fb009dcSAndroid Build Coastguard Worker.byte	102,15,56,0,215
127*8fb009dcSAndroid Build Coastguard Worker	movdqu	%xmm2,(%edi)
128*8fb009dcSAndroid Build Coastguard Worker	pxor	%xmm0,%xmm0
129*8fb009dcSAndroid Build Coastguard Worker	pxor	%xmm1,%xmm1
130*8fb009dcSAndroid Build Coastguard Worker	pxor	%xmm2,%xmm2
131*8fb009dcSAndroid Build Coastguard Worker	pxor	%xmm3,%xmm3
132*8fb009dcSAndroid Build Coastguard Worker	pxor	%xmm4,%xmm4
133*8fb009dcSAndroid Build Coastguard Worker	pxor	%xmm5,%xmm5
134*8fb009dcSAndroid Build Coastguard Worker	pxor	%xmm6,%xmm6
135*8fb009dcSAndroid Build Coastguard Worker	popl	%edi
136*8fb009dcSAndroid Build Coastguard Worker	popl	%esi
137*8fb009dcSAndroid Build Coastguard Worker	popl	%ebx
138*8fb009dcSAndroid Build Coastguard Worker	popl	%ebp
139*8fb009dcSAndroid Build Coastguard Worker	ret
140*8fb009dcSAndroid Build Coastguard Worker.size	gcm_gmult_ssse3,.-.L_gcm_gmult_ssse3_begin
141*8fb009dcSAndroid Build Coastguard Worker.globl	gcm_ghash_ssse3
142*8fb009dcSAndroid Build Coastguard Worker.hidden	gcm_ghash_ssse3
143*8fb009dcSAndroid Build Coastguard Worker.type	gcm_ghash_ssse3,@function
144*8fb009dcSAndroid Build Coastguard Worker.align	16
145*8fb009dcSAndroid Build Coastguard Workergcm_ghash_ssse3:
146*8fb009dcSAndroid Build Coastguard Worker.L_gcm_ghash_ssse3_begin:
147*8fb009dcSAndroid Build Coastguard Worker	pushl	%ebp
148*8fb009dcSAndroid Build Coastguard Worker	pushl	%ebx
149*8fb009dcSAndroid Build Coastguard Worker	pushl	%esi
150*8fb009dcSAndroid Build Coastguard Worker	pushl	%edi
151*8fb009dcSAndroid Build Coastguard Worker	movl	20(%esp),%edi
152*8fb009dcSAndroid Build Coastguard Worker	movl	24(%esp),%esi
153*8fb009dcSAndroid Build Coastguard Worker	movl	28(%esp),%edx
154*8fb009dcSAndroid Build Coastguard Worker	movl	32(%esp),%ecx
155*8fb009dcSAndroid Build Coastguard Worker	movdqu	(%edi),%xmm0
156*8fb009dcSAndroid Build Coastguard Worker	call	.L004pic_point
157*8fb009dcSAndroid Build Coastguard Worker.L004pic_point:
158*8fb009dcSAndroid Build Coastguard Worker	popl	%ebx
159*8fb009dcSAndroid Build Coastguard Worker	movdqa	.Lreverse_bytes-.L004pic_point(%ebx),%xmm7
160*8fb009dcSAndroid Build Coastguard Worker	andl	$-16,%ecx
161*8fb009dcSAndroid Build Coastguard Worker.byte	102,15,56,0,199
162*8fb009dcSAndroid Build Coastguard Worker	pxor	%xmm3,%xmm3
163*8fb009dcSAndroid Build Coastguard Worker.L005loop_ghash:
164*8fb009dcSAndroid Build Coastguard Worker	movdqa	.Llow4_mask-.L004pic_point(%ebx),%xmm2
165*8fb009dcSAndroid Build Coastguard Worker	movdqu	(%edx),%xmm1
166*8fb009dcSAndroid Build Coastguard Worker.byte	102,15,56,0,207
167*8fb009dcSAndroid Build Coastguard Worker	pxor	%xmm1,%xmm0
168*8fb009dcSAndroid Build Coastguard Worker	movdqa	%xmm2,%xmm1
169*8fb009dcSAndroid Build Coastguard Worker	pandn	%xmm0,%xmm1
170*8fb009dcSAndroid Build Coastguard Worker	psrld	$4,%xmm1
171*8fb009dcSAndroid Build Coastguard Worker	pand	%xmm2,%xmm0
172*8fb009dcSAndroid Build Coastguard Worker	pxor	%xmm2,%xmm2
173*8fb009dcSAndroid Build Coastguard Worker	movl	$5,%eax
174*8fb009dcSAndroid Build Coastguard Worker.L006loop_row_4:
175*8fb009dcSAndroid Build Coastguard Worker	movdqa	(%esi),%xmm4
176*8fb009dcSAndroid Build Coastguard Worker	leal	16(%esi),%esi
177*8fb009dcSAndroid Build Coastguard Worker	movdqa	%xmm2,%xmm6
178*8fb009dcSAndroid Build Coastguard Worker.byte	102,15,58,15,243,1
179*8fb009dcSAndroid Build Coastguard Worker	movdqa	%xmm6,%xmm3
180*8fb009dcSAndroid Build Coastguard Worker	psrldq	$1,%xmm2
181*8fb009dcSAndroid Build Coastguard Worker	movdqa	%xmm4,%xmm5
182*8fb009dcSAndroid Build Coastguard Worker.byte	102,15,56,0,224
183*8fb009dcSAndroid Build Coastguard Worker.byte	102,15,56,0,233
184*8fb009dcSAndroid Build Coastguard Worker	pxor	%xmm5,%xmm2
185*8fb009dcSAndroid Build Coastguard Worker	movdqa	%xmm4,%xmm5
186*8fb009dcSAndroid Build Coastguard Worker	psllq	$60,%xmm5
187*8fb009dcSAndroid Build Coastguard Worker	movdqa	%xmm5,%xmm6
188*8fb009dcSAndroid Build Coastguard Worker	pslldq	$8,%xmm6
189*8fb009dcSAndroid Build Coastguard Worker	pxor	%xmm6,%xmm3
190*8fb009dcSAndroid Build Coastguard Worker	psrldq	$8,%xmm5
191*8fb009dcSAndroid Build Coastguard Worker	pxor	%xmm5,%xmm2
192*8fb009dcSAndroid Build Coastguard Worker	psrlq	$4,%xmm4
193*8fb009dcSAndroid Build Coastguard Worker	pxor	%xmm4,%xmm2
194*8fb009dcSAndroid Build Coastguard Worker	subl	$1,%eax
195*8fb009dcSAndroid Build Coastguard Worker	jnz	.L006loop_row_4
196*8fb009dcSAndroid Build Coastguard Worker	pxor	%xmm3,%xmm2
197*8fb009dcSAndroid Build Coastguard Worker	psrlq	$1,%xmm3
198*8fb009dcSAndroid Build Coastguard Worker	pxor	%xmm3,%xmm2
199*8fb009dcSAndroid Build Coastguard Worker	psrlq	$1,%xmm3
200*8fb009dcSAndroid Build Coastguard Worker	pxor	%xmm3,%xmm2
201*8fb009dcSAndroid Build Coastguard Worker	psrlq	$5,%xmm3
202*8fb009dcSAndroid Build Coastguard Worker	pxor	%xmm3,%xmm2
203*8fb009dcSAndroid Build Coastguard Worker	pxor	%xmm3,%xmm3
204*8fb009dcSAndroid Build Coastguard Worker	movl	$5,%eax
205*8fb009dcSAndroid Build Coastguard Worker.L007loop_row_5:
206*8fb009dcSAndroid Build Coastguard Worker	movdqa	(%esi),%xmm4
207*8fb009dcSAndroid Build Coastguard Worker	leal	16(%esi),%esi
208*8fb009dcSAndroid Build Coastguard Worker	movdqa	%xmm2,%xmm6
209*8fb009dcSAndroid Build Coastguard Worker.byte	102,15,58,15,243,1
210*8fb009dcSAndroid Build Coastguard Worker	movdqa	%xmm6,%xmm3
211*8fb009dcSAndroid Build Coastguard Worker	psrldq	$1,%xmm2
212*8fb009dcSAndroid Build Coastguard Worker	movdqa	%xmm4,%xmm5
213*8fb009dcSAndroid Build Coastguard Worker.byte	102,15,56,0,224
214*8fb009dcSAndroid Build Coastguard Worker.byte	102,15,56,0,233
215*8fb009dcSAndroid Build Coastguard Worker	pxor	%xmm5,%xmm2
216*8fb009dcSAndroid Build Coastguard Worker	movdqa	%xmm4,%xmm5
217*8fb009dcSAndroid Build Coastguard Worker	psllq	$60,%xmm5
218*8fb009dcSAndroid Build Coastguard Worker	movdqa	%xmm5,%xmm6
219*8fb009dcSAndroid Build Coastguard Worker	pslldq	$8,%xmm6
220*8fb009dcSAndroid Build Coastguard Worker	pxor	%xmm6,%xmm3
221*8fb009dcSAndroid Build Coastguard Worker	psrldq	$8,%xmm5
222*8fb009dcSAndroid Build Coastguard Worker	pxor	%xmm5,%xmm2
223*8fb009dcSAndroid Build Coastguard Worker	psrlq	$4,%xmm4
224*8fb009dcSAndroid Build Coastguard Worker	pxor	%xmm4,%xmm2
225*8fb009dcSAndroid Build Coastguard Worker	subl	$1,%eax
226*8fb009dcSAndroid Build Coastguard Worker	jnz	.L007loop_row_5
227*8fb009dcSAndroid Build Coastguard Worker	pxor	%xmm3,%xmm2
228*8fb009dcSAndroid Build Coastguard Worker	psrlq	$1,%xmm3
229*8fb009dcSAndroid Build Coastguard Worker	pxor	%xmm3,%xmm2
230*8fb009dcSAndroid Build Coastguard Worker	psrlq	$1,%xmm3
231*8fb009dcSAndroid Build Coastguard Worker	pxor	%xmm3,%xmm2
232*8fb009dcSAndroid Build Coastguard Worker	psrlq	$5,%xmm3
233*8fb009dcSAndroid Build Coastguard Worker	pxor	%xmm3,%xmm2
234*8fb009dcSAndroid Build Coastguard Worker	pxor	%xmm3,%xmm3
235*8fb009dcSAndroid Build Coastguard Worker	movl	$6,%eax
236*8fb009dcSAndroid Build Coastguard Worker.L008loop_row_6:
237*8fb009dcSAndroid Build Coastguard Worker	movdqa	(%esi),%xmm4
238*8fb009dcSAndroid Build Coastguard Worker	leal	16(%esi),%esi
239*8fb009dcSAndroid Build Coastguard Worker	movdqa	%xmm2,%xmm6
240*8fb009dcSAndroid Build Coastguard Worker.byte	102,15,58,15,243,1
241*8fb009dcSAndroid Build Coastguard Worker	movdqa	%xmm6,%xmm3
242*8fb009dcSAndroid Build Coastguard Worker	psrldq	$1,%xmm2
243*8fb009dcSAndroid Build Coastguard Worker	movdqa	%xmm4,%xmm5
244*8fb009dcSAndroid Build Coastguard Worker.byte	102,15,56,0,224
245*8fb009dcSAndroid Build Coastguard Worker.byte	102,15,56,0,233
246*8fb009dcSAndroid Build Coastguard Worker	pxor	%xmm5,%xmm2
247*8fb009dcSAndroid Build Coastguard Worker	movdqa	%xmm4,%xmm5
248*8fb009dcSAndroid Build Coastguard Worker	psllq	$60,%xmm5
249*8fb009dcSAndroid Build Coastguard Worker	movdqa	%xmm5,%xmm6
250*8fb009dcSAndroid Build Coastguard Worker	pslldq	$8,%xmm6
251*8fb009dcSAndroid Build Coastguard Worker	pxor	%xmm6,%xmm3
252*8fb009dcSAndroid Build Coastguard Worker	psrldq	$8,%xmm5
253*8fb009dcSAndroid Build Coastguard Worker	pxor	%xmm5,%xmm2
254*8fb009dcSAndroid Build Coastguard Worker	psrlq	$4,%xmm4
255*8fb009dcSAndroid Build Coastguard Worker	pxor	%xmm4,%xmm2
256*8fb009dcSAndroid Build Coastguard Worker	subl	$1,%eax
257*8fb009dcSAndroid Build Coastguard Worker	jnz	.L008loop_row_6
258*8fb009dcSAndroid Build Coastguard Worker	pxor	%xmm3,%xmm2
259*8fb009dcSAndroid Build Coastguard Worker	psrlq	$1,%xmm3
260*8fb009dcSAndroid Build Coastguard Worker	pxor	%xmm3,%xmm2
261*8fb009dcSAndroid Build Coastguard Worker	psrlq	$1,%xmm3
262*8fb009dcSAndroid Build Coastguard Worker	pxor	%xmm3,%xmm2
263*8fb009dcSAndroid Build Coastguard Worker	psrlq	$5,%xmm3
264*8fb009dcSAndroid Build Coastguard Worker	pxor	%xmm3,%xmm2
265*8fb009dcSAndroid Build Coastguard Worker	pxor	%xmm3,%xmm3
266*8fb009dcSAndroid Build Coastguard Worker	movdqa	%xmm2,%xmm0
267*8fb009dcSAndroid Build Coastguard Worker	leal	-256(%esi),%esi
268*8fb009dcSAndroid Build Coastguard Worker	leal	16(%edx),%edx
269*8fb009dcSAndroid Build Coastguard Worker	subl	$16,%ecx
270*8fb009dcSAndroid Build Coastguard Worker	jnz	.L005loop_ghash
271*8fb009dcSAndroid Build Coastguard Worker.byte	102,15,56,0,199
272*8fb009dcSAndroid Build Coastguard Worker	movdqu	%xmm0,(%edi)
273*8fb009dcSAndroid Build Coastguard Worker	pxor	%xmm0,%xmm0
274*8fb009dcSAndroid Build Coastguard Worker	pxor	%xmm1,%xmm1
275*8fb009dcSAndroid Build Coastguard Worker	pxor	%xmm2,%xmm2
276*8fb009dcSAndroid Build Coastguard Worker	pxor	%xmm3,%xmm3
277*8fb009dcSAndroid Build Coastguard Worker	pxor	%xmm4,%xmm4
278*8fb009dcSAndroid Build Coastguard Worker	pxor	%xmm5,%xmm5
279*8fb009dcSAndroid Build Coastguard Worker	pxor	%xmm6,%xmm6
280*8fb009dcSAndroid Build Coastguard Worker	popl	%edi
281*8fb009dcSAndroid Build Coastguard Worker	popl	%esi
282*8fb009dcSAndroid Build Coastguard Worker	popl	%ebx
283*8fb009dcSAndroid Build Coastguard Worker	popl	%ebp
284*8fb009dcSAndroid Build Coastguard Worker	ret
285*8fb009dcSAndroid Build Coastguard Worker.size	gcm_ghash_ssse3,.-.L_gcm_ghash_ssse3_begin
286*8fb009dcSAndroid Build Coastguard Worker.align	16
287*8fb009dcSAndroid Build Coastguard Worker.Lreverse_bytes:
288*8fb009dcSAndroid Build Coastguard Worker.byte	15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0
289*8fb009dcSAndroid Build Coastguard Worker.align	16
290*8fb009dcSAndroid Build Coastguard Worker.Llow4_mask:
291*8fb009dcSAndroid Build Coastguard Worker.long	252645135,252645135,252645135,252645135
292*8fb009dcSAndroid Build Coastguard Worker#endif  // !defined(OPENSSL_NO_ASM) && defined(OPENSSL_X86) && defined(__ELF__)
293