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