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