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	GFp_aes_hw_encrypt
10.hidden	GFp_aes_hw_encrypt
11.type	GFp_aes_hw_encrypt,@function
12.align	16
13GFp_aes_hw_encrypt:
14.L_GFp_aes_hw_encrypt_begin:
15	movl	4(%esp),%eax
16	movl	12(%esp),%edx
17	movups	(%eax),%xmm2
18	movl	240(%edx),%ecx
19	movl	8(%esp),%eax
20	movups	(%edx),%xmm0
21	movups	16(%edx),%xmm1
22	leal	32(%edx),%edx
23	xorps	%xmm0,%xmm2
24.L000enc1_loop_1:
25.byte	102,15,56,220,209
26	decl	%ecx
27	movups	(%edx),%xmm1
28	leal	16(%edx),%edx
29	jnz	.L000enc1_loop_1
30.byte	102,15,56,221,209
31	pxor	%xmm0,%xmm0
32	pxor	%xmm1,%xmm1
33	movups	%xmm2,(%eax)
34	pxor	%xmm2,%xmm2
35	ret
36.size	GFp_aes_hw_encrypt,.-.L_GFp_aes_hw_encrypt_begin
37.hidden	_aesni_encrypt2
38.type	_aesni_encrypt2,@function
39.align	16
40_aesni_encrypt2:
41	movups	(%edx),%xmm0
42	shll	$4,%ecx
43	movups	16(%edx),%xmm1
44	xorps	%xmm0,%xmm2
45	pxor	%xmm0,%xmm3
46	movups	32(%edx),%xmm0
47	leal	32(%edx,%ecx,1),%edx
48	negl	%ecx
49	addl	$16,%ecx
50.L001enc2_loop:
51.byte	102,15,56,220,209
52.byte	102,15,56,220,217
53	movups	(%edx,%ecx,1),%xmm1
54	addl	$32,%ecx
55.byte	102,15,56,220,208
56.byte	102,15,56,220,216
57	movups	-16(%edx,%ecx,1),%xmm0
58	jnz	.L001enc2_loop
59.byte	102,15,56,220,209
60.byte	102,15,56,220,217
61.byte	102,15,56,221,208
62.byte	102,15,56,221,216
63	ret
64.size	_aesni_encrypt2,.-_aesni_encrypt2
65.hidden	_aesni_encrypt3
66.type	_aesni_encrypt3,@function
67.align	16
68_aesni_encrypt3:
69	movups	(%edx),%xmm0
70	shll	$4,%ecx
71	movups	16(%edx),%xmm1
72	xorps	%xmm0,%xmm2
73	pxor	%xmm0,%xmm3
74	pxor	%xmm0,%xmm4
75	movups	32(%edx),%xmm0
76	leal	32(%edx,%ecx,1),%edx
77	negl	%ecx
78	addl	$16,%ecx
79.L002enc3_loop:
80.byte	102,15,56,220,209
81.byte	102,15,56,220,217
82.byte	102,15,56,220,225
83	movups	(%edx,%ecx,1),%xmm1
84	addl	$32,%ecx
85.byte	102,15,56,220,208
86.byte	102,15,56,220,216
87.byte	102,15,56,220,224
88	movups	-16(%edx,%ecx,1),%xmm0
89	jnz	.L002enc3_loop
90.byte	102,15,56,220,209
91.byte	102,15,56,220,217
92.byte	102,15,56,220,225
93.byte	102,15,56,221,208
94.byte	102,15,56,221,216
95.byte	102,15,56,221,224
96	ret
97.size	_aesni_encrypt3,.-_aesni_encrypt3
98.hidden	_aesni_encrypt4
99.type	_aesni_encrypt4,@function
100.align	16
101_aesni_encrypt4:
102	movups	(%edx),%xmm0
103	movups	16(%edx),%xmm1
104	shll	$4,%ecx
105	xorps	%xmm0,%xmm2
106	pxor	%xmm0,%xmm3
107	pxor	%xmm0,%xmm4
108	pxor	%xmm0,%xmm5
109	movups	32(%edx),%xmm0
110	leal	32(%edx,%ecx,1),%edx
111	negl	%ecx
112.byte	15,31,64,0
113	addl	$16,%ecx
114.L003enc4_loop:
115.byte	102,15,56,220,209
116.byte	102,15,56,220,217
117.byte	102,15,56,220,225
118.byte	102,15,56,220,233
119	movups	(%edx,%ecx,1),%xmm1
120	addl	$32,%ecx
121.byte	102,15,56,220,208
122.byte	102,15,56,220,216
123.byte	102,15,56,220,224
124.byte	102,15,56,220,232
125	movups	-16(%edx,%ecx,1),%xmm0
126	jnz	.L003enc4_loop
127.byte	102,15,56,220,209
128.byte	102,15,56,220,217
129.byte	102,15,56,220,225
130.byte	102,15,56,220,233
131.byte	102,15,56,221,208
132.byte	102,15,56,221,216
133.byte	102,15,56,221,224
134.byte	102,15,56,221,232
135	ret
136.size	_aesni_encrypt4,.-_aesni_encrypt4
137.hidden	_aesni_encrypt6
138.type	_aesni_encrypt6,@function
139.align	16
140_aesni_encrypt6:
141	movups	(%edx),%xmm0
142	shll	$4,%ecx
143	movups	16(%edx),%xmm1
144	xorps	%xmm0,%xmm2
145	pxor	%xmm0,%xmm3
146	pxor	%xmm0,%xmm4
147.byte	102,15,56,220,209
148	pxor	%xmm0,%xmm5
149	pxor	%xmm0,%xmm6
150.byte	102,15,56,220,217
151	leal	32(%edx,%ecx,1),%edx
152	negl	%ecx
153.byte	102,15,56,220,225
154	pxor	%xmm0,%xmm7
155	movups	(%edx,%ecx,1),%xmm0
156	addl	$16,%ecx
157	jmp	.L004_aesni_encrypt6_inner
158.align	16
159.L005enc6_loop:
160.byte	102,15,56,220,209
161.byte	102,15,56,220,217
162.byte	102,15,56,220,225
163.L004_aesni_encrypt6_inner:
164.byte	102,15,56,220,233
165.byte	102,15,56,220,241
166.byte	102,15,56,220,249
167.L_aesni_encrypt6_enter:
168	movups	(%edx,%ecx,1),%xmm1
169	addl	$32,%ecx
170.byte	102,15,56,220,208
171.byte	102,15,56,220,216
172.byte	102,15,56,220,224
173.byte	102,15,56,220,232
174.byte	102,15,56,220,240
175.byte	102,15,56,220,248
176	movups	-16(%edx,%ecx,1),%xmm0
177	jnz	.L005enc6_loop
178.byte	102,15,56,220,209
179.byte	102,15,56,220,217
180.byte	102,15,56,220,225
181.byte	102,15,56,220,233
182.byte	102,15,56,220,241
183.byte	102,15,56,220,249
184.byte	102,15,56,221,208
185.byte	102,15,56,221,216
186.byte	102,15,56,221,224
187.byte	102,15,56,221,232
188.byte	102,15,56,221,240
189.byte	102,15,56,221,248
190	ret
191.size	_aesni_encrypt6,.-_aesni_encrypt6
192.globl	GFp_aes_hw_ctr32_encrypt_blocks
193.hidden	GFp_aes_hw_ctr32_encrypt_blocks
194.type	GFp_aes_hw_ctr32_encrypt_blocks,@function
195.align	16
196GFp_aes_hw_ctr32_encrypt_blocks:
197.L_GFp_aes_hw_ctr32_encrypt_blocks_begin:
198	pushl	%ebp
199	pushl	%ebx
200	pushl	%esi
201	pushl	%edi
202	movl	20(%esp),%esi
203	movl	24(%esp),%edi
204	movl	28(%esp),%eax
205	movl	32(%esp),%edx
206	movl	36(%esp),%ebx
207	movl	%esp,%ebp
208	subl	$88,%esp
209	andl	$-16,%esp
210	movl	%ebp,80(%esp)
211	cmpl	$1,%eax
212	je	.L006ctr32_one_shortcut
213	movdqu	(%ebx),%xmm7
214	movl	$202182159,(%esp)
215	movl	$134810123,4(%esp)
216	movl	$67438087,8(%esp)
217	movl	$66051,12(%esp)
218	movl	$6,%ecx
219	xorl	%ebp,%ebp
220	movl	%ecx,16(%esp)
221	movl	%ecx,20(%esp)
222	movl	%ecx,24(%esp)
223	movl	%ebp,28(%esp)
224.byte	102,15,58,22,251,3
225.byte	102,15,58,34,253,3
226	movl	240(%edx),%ecx
227	bswap	%ebx
228	pxor	%xmm0,%xmm0
229	pxor	%xmm1,%xmm1
230	movdqa	(%esp),%xmm2
231.byte	102,15,58,34,195,0
232	leal	3(%ebx),%ebp
233.byte	102,15,58,34,205,0
234	incl	%ebx
235.byte	102,15,58,34,195,1
236	incl	%ebp
237.byte	102,15,58,34,205,1
238	incl	%ebx
239.byte	102,15,58,34,195,2
240	incl	%ebp
241.byte	102,15,58,34,205,2
242	movdqa	%xmm0,48(%esp)
243.byte	102,15,56,0,194
244	movdqu	(%edx),%xmm6
245	movdqa	%xmm1,64(%esp)
246.byte	102,15,56,0,202
247	pshufd	$192,%xmm0,%xmm2
248	pshufd	$128,%xmm0,%xmm3
249	cmpl	$6,%eax
250	jb	.L007ctr32_tail
251	pxor	%xmm6,%xmm7
252	shll	$4,%ecx
253	movl	$16,%ebx
254	movdqa	%xmm7,32(%esp)
255	movl	%edx,%ebp
256	subl	%ecx,%ebx
257	leal	32(%edx,%ecx,1),%edx
258	subl	$6,%eax
259	jmp	.L008ctr32_loop6
260.align	16
261.L008ctr32_loop6:
262	pshufd	$64,%xmm0,%xmm4
263	movdqa	32(%esp),%xmm0
264	pshufd	$192,%xmm1,%xmm5
265	pxor	%xmm0,%xmm2
266	pshufd	$128,%xmm1,%xmm6
267	pxor	%xmm0,%xmm3
268	pshufd	$64,%xmm1,%xmm7
269	movups	16(%ebp),%xmm1
270	pxor	%xmm0,%xmm4
271	pxor	%xmm0,%xmm5
272.byte	102,15,56,220,209
273	pxor	%xmm0,%xmm6
274	pxor	%xmm0,%xmm7
275.byte	102,15,56,220,217
276	movups	32(%ebp),%xmm0
277	movl	%ebx,%ecx
278.byte	102,15,56,220,225
279.byte	102,15,56,220,233
280.byte	102,15,56,220,241
281.byte	102,15,56,220,249
282	call	.L_aesni_encrypt6_enter
283	movups	(%esi),%xmm1
284	movups	16(%esi),%xmm0
285	xorps	%xmm1,%xmm2
286	movups	32(%esi),%xmm1
287	xorps	%xmm0,%xmm3
288	movups	%xmm2,(%edi)
289	movdqa	16(%esp),%xmm0
290	xorps	%xmm1,%xmm4
291	movdqa	64(%esp),%xmm1
292	movups	%xmm3,16(%edi)
293	movups	%xmm4,32(%edi)
294	paddd	%xmm0,%xmm1
295	paddd	48(%esp),%xmm0
296	movdqa	(%esp),%xmm2
297	movups	48(%esi),%xmm3
298	movups	64(%esi),%xmm4
299	xorps	%xmm3,%xmm5
300	movups	80(%esi),%xmm3
301	leal	96(%esi),%esi
302	movdqa	%xmm0,48(%esp)
303.byte	102,15,56,0,194
304	xorps	%xmm4,%xmm6
305	movups	%xmm5,48(%edi)
306	xorps	%xmm3,%xmm7
307	movdqa	%xmm1,64(%esp)
308.byte	102,15,56,0,202
309	movups	%xmm6,64(%edi)
310	pshufd	$192,%xmm0,%xmm2
311	movups	%xmm7,80(%edi)
312	leal	96(%edi),%edi
313	pshufd	$128,%xmm0,%xmm3
314	subl	$6,%eax
315	jnc	.L008ctr32_loop6
316	addl	$6,%eax
317	jz	.L009ctr32_ret
318	movdqu	(%ebp),%xmm7
319	movl	%ebp,%edx
320	pxor	32(%esp),%xmm7
321	movl	240(%ebp),%ecx
322.L007ctr32_tail:
323	por	%xmm7,%xmm2
324	cmpl	$2,%eax
325	jb	.L010ctr32_one
326	pshufd	$64,%xmm0,%xmm4
327	por	%xmm7,%xmm3
328	je	.L011ctr32_two
329	pshufd	$192,%xmm1,%xmm5
330	por	%xmm7,%xmm4
331	cmpl	$4,%eax
332	jb	.L012ctr32_three
333	pshufd	$128,%xmm1,%xmm6
334	por	%xmm7,%xmm5
335	je	.L013ctr32_four
336	por	%xmm7,%xmm6
337	call	_aesni_encrypt6
338	movups	(%esi),%xmm1
339	movups	16(%esi),%xmm0
340	xorps	%xmm1,%xmm2
341	movups	32(%esi),%xmm1
342	xorps	%xmm0,%xmm3
343	movups	48(%esi),%xmm0
344	xorps	%xmm1,%xmm4
345	movups	64(%esi),%xmm1
346	xorps	%xmm0,%xmm5
347	movups	%xmm2,(%edi)
348	xorps	%xmm1,%xmm6
349	movups	%xmm3,16(%edi)
350	movups	%xmm4,32(%edi)
351	movups	%xmm5,48(%edi)
352	movups	%xmm6,64(%edi)
353	jmp	.L009ctr32_ret
354.align	16
355.L006ctr32_one_shortcut:
356	movups	(%ebx),%xmm2
357	movl	240(%edx),%ecx
358.L010ctr32_one:
359	movups	(%edx),%xmm0
360	movups	16(%edx),%xmm1
361	leal	32(%edx),%edx
362	xorps	%xmm0,%xmm2
363.L014enc1_loop_2:
364.byte	102,15,56,220,209
365	decl	%ecx
366	movups	(%edx),%xmm1
367	leal	16(%edx),%edx
368	jnz	.L014enc1_loop_2
369.byte	102,15,56,221,209
370	movups	(%esi),%xmm6
371	xorps	%xmm2,%xmm6
372	movups	%xmm6,(%edi)
373	jmp	.L009ctr32_ret
374.align	16
375.L011ctr32_two:
376	call	_aesni_encrypt2
377	movups	(%esi),%xmm5
378	movups	16(%esi),%xmm6
379	xorps	%xmm5,%xmm2
380	xorps	%xmm6,%xmm3
381	movups	%xmm2,(%edi)
382	movups	%xmm3,16(%edi)
383	jmp	.L009ctr32_ret
384.align	16
385.L012ctr32_three:
386	call	_aesni_encrypt3
387	movups	(%esi),%xmm5
388	movups	16(%esi),%xmm6
389	xorps	%xmm5,%xmm2
390	movups	32(%esi),%xmm7
391	xorps	%xmm6,%xmm3
392	movups	%xmm2,(%edi)
393	xorps	%xmm7,%xmm4
394	movups	%xmm3,16(%edi)
395	movups	%xmm4,32(%edi)
396	jmp	.L009ctr32_ret
397.align	16
398.L013ctr32_four:
399	call	_aesni_encrypt4
400	movups	(%esi),%xmm6
401	movups	16(%esi),%xmm7
402	movups	32(%esi),%xmm1
403	xorps	%xmm6,%xmm2
404	movups	48(%esi),%xmm0
405	xorps	%xmm7,%xmm3
406	movups	%xmm2,(%edi)
407	xorps	%xmm1,%xmm4
408	movups	%xmm3,16(%edi)
409	xorps	%xmm0,%xmm5
410	movups	%xmm4,32(%edi)
411	movups	%xmm5,48(%edi)
412.L009ctr32_ret:
413	pxor	%xmm0,%xmm0
414	pxor	%xmm1,%xmm1
415	pxor	%xmm2,%xmm2
416	pxor	%xmm3,%xmm3
417	pxor	%xmm4,%xmm4
418	movdqa	%xmm0,32(%esp)
419	pxor	%xmm5,%xmm5
420	movdqa	%xmm0,48(%esp)
421	pxor	%xmm6,%xmm6
422	movdqa	%xmm0,64(%esp)
423	pxor	%xmm7,%xmm7
424	movl	80(%esp),%esp
425	popl	%edi
426	popl	%esi
427	popl	%ebx
428	popl	%ebp
429	ret
430.size	GFp_aes_hw_ctr32_encrypt_blocks,.-.L_GFp_aes_hw_ctr32_encrypt_blocks_begin
431.hidden	_aesni_set_encrypt_key
432.type	_aesni_set_encrypt_key,@function
433.align	16
434_aesni_set_encrypt_key:
435	pushl	%ebp
436	pushl	%ebx
437	testl	%eax,%eax
438	jz	.L015bad_pointer
439	testl	%edx,%edx
440	jz	.L015bad_pointer
441	call	.L016pic
442.L016pic:
443	popl	%ebx
444	leal	.Lkey_const-.L016pic(%ebx),%ebx
445	leal	GFp_ia32cap_P-.Lkey_const(%ebx),%ebp
446	movups	(%eax),%xmm0
447	xorps	%xmm4,%xmm4
448	movl	4(%ebp),%ebp
449	leal	16(%edx),%edx
450	andl	$268437504,%ebp
451	cmpl	$256,%ecx
452	je	.L01714rounds
453	cmpl	$128,%ecx
454	jne	.L018bad_keybits
455.align	16
456.L01910rounds:
457	cmpl	$268435456,%ebp
458	je	.L02010rounds_alt
459	movl	$9,%ecx
460	movups	%xmm0,-16(%edx)
461.byte	102,15,58,223,200,1
462	call	.L021key_128_cold
463.byte	102,15,58,223,200,2
464	call	.L022key_128
465.byte	102,15,58,223,200,4
466	call	.L022key_128
467.byte	102,15,58,223,200,8
468	call	.L022key_128
469.byte	102,15,58,223,200,16
470	call	.L022key_128
471.byte	102,15,58,223,200,32
472	call	.L022key_128
473.byte	102,15,58,223,200,64
474	call	.L022key_128
475.byte	102,15,58,223,200,128
476	call	.L022key_128
477.byte	102,15,58,223,200,27
478	call	.L022key_128
479.byte	102,15,58,223,200,54
480	call	.L022key_128
481	movups	%xmm0,(%edx)
482	movl	%ecx,80(%edx)
483	jmp	.L023good_key
484.align	16
485.L022key_128:
486	movups	%xmm0,(%edx)
487	leal	16(%edx),%edx
488.L021key_128_cold:
489	shufps	$16,%xmm0,%xmm4
490	xorps	%xmm4,%xmm0
491	shufps	$140,%xmm0,%xmm4
492	xorps	%xmm4,%xmm0
493	shufps	$255,%xmm1,%xmm1
494	xorps	%xmm1,%xmm0
495	ret
496.align	16
497.L02010rounds_alt:
498	movdqa	(%ebx),%xmm5
499	movl	$8,%ecx
500	movdqa	32(%ebx),%xmm4
501	movdqa	%xmm0,%xmm2
502	movdqu	%xmm0,-16(%edx)
503.L024loop_key128:
504.byte	102,15,56,0,197
505.byte	102,15,56,221,196
506	pslld	$1,%xmm4
507	leal	16(%edx),%edx
508	movdqa	%xmm2,%xmm3
509	pslldq	$4,%xmm2
510	pxor	%xmm2,%xmm3
511	pslldq	$4,%xmm2
512	pxor	%xmm2,%xmm3
513	pslldq	$4,%xmm2
514	pxor	%xmm3,%xmm2
515	pxor	%xmm2,%xmm0
516	movdqu	%xmm0,-16(%edx)
517	movdqa	%xmm0,%xmm2
518	decl	%ecx
519	jnz	.L024loop_key128
520	movdqa	48(%ebx),%xmm4
521.byte	102,15,56,0,197
522.byte	102,15,56,221,196
523	pslld	$1,%xmm4
524	movdqa	%xmm2,%xmm3
525	pslldq	$4,%xmm2
526	pxor	%xmm2,%xmm3
527	pslldq	$4,%xmm2
528	pxor	%xmm2,%xmm3
529	pslldq	$4,%xmm2
530	pxor	%xmm3,%xmm2
531	pxor	%xmm2,%xmm0
532	movdqu	%xmm0,(%edx)
533	movdqa	%xmm0,%xmm2
534.byte	102,15,56,0,197
535.byte	102,15,56,221,196
536	movdqa	%xmm2,%xmm3
537	pslldq	$4,%xmm2
538	pxor	%xmm2,%xmm3
539	pslldq	$4,%xmm2
540	pxor	%xmm2,%xmm3
541	pslldq	$4,%xmm2
542	pxor	%xmm3,%xmm2
543	pxor	%xmm2,%xmm0
544	movdqu	%xmm0,16(%edx)
545	movl	$9,%ecx
546	movl	%ecx,96(%edx)
547	jmp	.L023good_key
548.align	16
549.L01714rounds:
550	movups	16(%eax),%xmm2
551	leal	16(%edx),%edx
552	cmpl	$268435456,%ebp
553	je	.L02514rounds_alt
554	movl	$13,%ecx
555	movups	%xmm0,-32(%edx)
556	movups	%xmm2,-16(%edx)
557.byte	102,15,58,223,202,1
558	call	.L026key_256a_cold
559.byte	102,15,58,223,200,1
560	call	.L027key_256b
561.byte	102,15,58,223,202,2
562	call	.L028key_256a
563.byte	102,15,58,223,200,2
564	call	.L027key_256b
565.byte	102,15,58,223,202,4
566	call	.L028key_256a
567.byte	102,15,58,223,200,4
568	call	.L027key_256b
569.byte	102,15,58,223,202,8
570	call	.L028key_256a
571.byte	102,15,58,223,200,8
572	call	.L027key_256b
573.byte	102,15,58,223,202,16
574	call	.L028key_256a
575.byte	102,15,58,223,200,16
576	call	.L027key_256b
577.byte	102,15,58,223,202,32
578	call	.L028key_256a
579.byte	102,15,58,223,200,32
580	call	.L027key_256b
581.byte	102,15,58,223,202,64
582	call	.L028key_256a
583	movups	%xmm0,(%edx)
584	movl	%ecx,16(%edx)
585	xorl	%eax,%eax
586	jmp	.L023good_key
587.align	16
588.L028key_256a:
589	movups	%xmm2,(%edx)
590	leal	16(%edx),%edx
591.L026key_256a_cold:
592	shufps	$16,%xmm0,%xmm4
593	xorps	%xmm4,%xmm0
594	shufps	$140,%xmm0,%xmm4
595	xorps	%xmm4,%xmm0
596	shufps	$255,%xmm1,%xmm1
597	xorps	%xmm1,%xmm0
598	ret
599.align	16
600.L027key_256b:
601	movups	%xmm0,(%edx)
602	leal	16(%edx),%edx
603	shufps	$16,%xmm2,%xmm4
604	xorps	%xmm4,%xmm2
605	shufps	$140,%xmm2,%xmm4
606	xorps	%xmm4,%xmm2
607	shufps	$170,%xmm1,%xmm1
608	xorps	%xmm1,%xmm2
609	ret
610.align	16
611.L02514rounds_alt:
612	movdqa	(%ebx),%xmm5
613	movdqa	32(%ebx),%xmm4
614	movl	$7,%ecx
615	movdqu	%xmm0,-32(%edx)
616	movdqa	%xmm2,%xmm1
617	movdqu	%xmm2,-16(%edx)
618.L029loop_key256:
619.byte	102,15,56,0,213
620.byte	102,15,56,221,212
621	movdqa	%xmm0,%xmm3
622	pslldq	$4,%xmm0
623	pxor	%xmm0,%xmm3
624	pslldq	$4,%xmm0
625	pxor	%xmm0,%xmm3
626	pslldq	$4,%xmm0
627	pxor	%xmm3,%xmm0
628	pslld	$1,%xmm4
629	pxor	%xmm2,%xmm0
630	movdqu	%xmm0,(%edx)
631	decl	%ecx
632	jz	.L030done_key256
633	pshufd	$255,%xmm0,%xmm2
634	pxor	%xmm3,%xmm3
635.byte	102,15,56,221,211
636	movdqa	%xmm1,%xmm3
637	pslldq	$4,%xmm1
638	pxor	%xmm1,%xmm3
639	pslldq	$4,%xmm1
640	pxor	%xmm1,%xmm3
641	pslldq	$4,%xmm1
642	pxor	%xmm3,%xmm1
643	pxor	%xmm1,%xmm2
644	movdqu	%xmm2,16(%edx)
645	leal	32(%edx),%edx
646	movdqa	%xmm2,%xmm1
647	jmp	.L029loop_key256
648.L030done_key256:
649	movl	$13,%ecx
650	movl	%ecx,16(%edx)
651.L023good_key:
652	pxor	%xmm0,%xmm0
653	pxor	%xmm1,%xmm1
654	pxor	%xmm2,%xmm2
655	pxor	%xmm3,%xmm3
656	pxor	%xmm4,%xmm4
657	pxor	%xmm5,%xmm5
658	xorl	%eax,%eax
659	popl	%ebx
660	popl	%ebp
661	ret
662.align	4
663.L015bad_pointer:
664	movl	$-1,%eax
665	popl	%ebx
666	popl	%ebp
667	ret
668.align	4
669.L018bad_keybits:
670	pxor	%xmm0,%xmm0
671	movl	$-2,%eax
672	popl	%ebx
673	popl	%ebp
674	ret
675.size	_aesni_set_encrypt_key,.-_aesni_set_encrypt_key
676.globl	GFp_aes_hw_set_encrypt_key
677.hidden	GFp_aes_hw_set_encrypt_key
678.type	GFp_aes_hw_set_encrypt_key,@function
679.align	16
680GFp_aes_hw_set_encrypt_key:
681.L_GFp_aes_hw_set_encrypt_key_begin:
682	movl	4(%esp),%eax
683	movl	8(%esp),%ecx
684	movl	12(%esp),%edx
685	call	_aesni_set_encrypt_key
686	ret
687.size	GFp_aes_hw_set_encrypt_key,.-.L_GFp_aes_hw_set_encrypt_key_begin
688.align	64
689.Lkey_const:
690.long	202313229,202313229,202313229,202313229
691.long	67569157,67569157,67569157,67569157
692.long	1,1,1,1
693.long	27,27,27,27
694.byte	65,69,83,32,102,111,114,32,73,110,116,101,108,32,65,69
695.byte	83,45,78,73,44,32,67,82,89,80,84,79,71,65,77,83
696.byte	32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115
697.byte	115,108,46,111,114,103,62,0
698#endif
699.section	.note.GNU-stack,"",@progbits
700