xref: /freebsd/sys/crypto/openssl/i386/x86-gf2m.S (revision d37eb51047221dc3322b34db1038ff3aa533883f)
1/* Do not modify. This file is auto-generated from x86-gf2m.pl. */
2#ifdef PIC
3.text
4.type	_mul_1x1_mmx,@function
5.align	16
6_mul_1x1_mmx:
7	#ifdef __CET__
8
9.byte	243,15,30,251
10	#endif
11
12	subl	$36,%esp
13	movl	%eax,%ecx
14	leal	(%eax,%eax,1),%edx
15	andl	$1073741823,%ecx
16	leal	(%edx,%edx,1),%ebp
17	movl	$0,(%esp)
18	andl	$2147483647,%edx
19	movd	%eax,%mm2
20	movd	%ebx,%mm3
21	movl	%ecx,4(%esp)
22	xorl	%edx,%ecx
23	pxor	%mm5,%mm5
24	pxor	%mm4,%mm4
25	movl	%edx,8(%esp)
26	xorl	%ebp,%edx
27	movl	%ecx,12(%esp)
28	pcmpgtd	%mm2,%mm5
29	paddd	%mm2,%mm2
30	xorl	%edx,%ecx
31	movl	%ebp,16(%esp)
32	xorl	%edx,%ebp
33	pand	%mm3,%mm5
34	pcmpgtd	%mm2,%mm4
35	movl	%ecx,20(%esp)
36	xorl	%ecx,%ebp
37	psllq	$31,%mm5
38	pand	%mm3,%mm4
39	movl	%edx,24(%esp)
40	movl	$7,%esi
41	movl	%ebp,28(%esp)
42	movl	%esi,%ebp
43	andl	%ebx,%esi
44	shrl	$3,%ebx
45	movl	%ebp,%edi
46	psllq	$30,%mm4
47	andl	%ebx,%edi
48	shrl	$3,%ebx
49	movd	(%esp,%esi,4),%mm0
50	movl	%ebp,%esi
51	andl	%ebx,%esi
52	shrl	$3,%ebx
53	movd	(%esp,%edi,4),%mm2
54	movl	%ebp,%edi
55	psllq	$3,%mm2
56	andl	%ebx,%edi
57	shrl	$3,%ebx
58	pxor	%mm2,%mm0
59	movd	(%esp,%esi,4),%mm1
60	movl	%ebp,%esi
61	psllq	$6,%mm1
62	andl	%ebx,%esi
63	shrl	$3,%ebx
64	pxor	%mm1,%mm0
65	movd	(%esp,%edi,4),%mm2
66	movl	%ebp,%edi
67	psllq	$9,%mm2
68	andl	%ebx,%edi
69	shrl	$3,%ebx
70	pxor	%mm2,%mm0
71	movd	(%esp,%esi,4),%mm1
72	movl	%ebp,%esi
73	psllq	$12,%mm1
74	andl	%ebx,%esi
75	shrl	$3,%ebx
76	pxor	%mm1,%mm0
77	movd	(%esp,%edi,4),%mm2
78	movl	%ebp,%edi
79	psllq	$15,%mm2
80	andl	%ebx,%edi
81	shrl	$3,%ebx
82	pxor	%mm2,%mm0
83	movd	(%esp,%esi,4),%mm1
84	movl	%ebp,%esi
85	psllq	$18,%mm1
86	andl	%ebx,%esi
87	shrl	$3,%ebx
88	pxor	%mm1,%mm0
89	movd	(%esp,%edi,4),%mm2
90	movl	%ebp,%edi
91	psllq	$21,%mm2
92	andl	%ebx,%edi
93	shrl	$3,%ebx
94	pxor	%mm2,%mm0
95	movd	(%esp,%esi,4),%mm1
96	movl	%ebp,%esi
97	psllq	$24,%mm1
98	andl	%ebx,%esi
99	shrl	$3,%ebx
100	pxor	%mm1,%mm0
101	movd	(%esp,%edi,4),%mm2
102	pxor	%mm4,%mm0
103	psllq	$27,%mm2
104	pxor	%mm2,%mm0
105	movd	(%esp,%esi,4),%mm1
106	pxor	%mm5,%mm0
107	psllq	$30,%mm1
108	addl	$36,%esp
109	pxor	%mm1,%mm0
110	ret
111.size	_mul_1x1_mmx,.-_mul_1x1_mmx
112.type	_mul_1x1_ialu,@function
113.align	16
114_mul_1x1_ialu:
115	#ifdef __CET__
116
117.byte	243,15,30,251
118	#endif
119
120	subl	$36,%esp
121	movl	%eax,%ecx
122	leal	(%eax,%eax,1),%edx
123	leal	(,%eax,4),%ebp
124	andl	$1073741823,%ecx
125	leal	(%eax,%eax,1),%edi
126	sarl	$31,%eax
127	movl	$0,(%esp)
128	andl	$2147483647,%edx
129	movl	%ecx,4(%esp)
130	xorl	%edx,%ecx
131	movl	%edx,8(%esp)
132	xorl	%ebp,%edx
133	movl	%ecx,12(%esp)
134	xorl	%edx,%ecx
135	movl	%ebp,16(%esp)
136	xorl	%edx,%ebp
137	movl	%ecx,20(%esp)
138	xorl	%ecx,%ebp
139	sarl	$31,%edi
140	andl	%ebx,%eax
141	movl	%edx,24(%esp)
142	andl	%ebx,%edi
143	movl	%ebp,28(%esp)
144	movl	%eax,%edx
145	shll	$31,%eax
146	movl	%edi,%ecx
147	shrl	$1,%edx
148	movl	$7,%esi
149	shll	$30,%edi
150	andl	%ebx,%esi
151	shrl	$2,%ecx
152	xorl	%edi,%eax
153	shrl	$3,%ebx
154	movl	$7,%edi
155	andl	%ebx,%edi
156	shrl	$3,%ebx
157	xorl	%ecx,%edx
158	xorl	(%esp,%esi,4),%eax
159	movl	$7,%esi
160	andl	%ebx,%esi
161	shrl	$3,%ebx
162	movl	(%esp,%edi,4),%ebp
163	movl	$7,%edi
164	movl	%ebp,%ecx
165	shll	$3,%ebp
166	andl	%ebx,%edi
167	shrl	$29,%ecx
168	xorl	%ebp,%eax
169	shrl	$3,%ebx
170	xorl	%ecx,%edx
171	movl	(%esp,%esi,4),%ecx
172	movl	$7,%esi
173	movl	%ecx,%ebp
174	shll	$6,%ecx
175	andl	%ebx,%esi
176	shrl	$26,%ebp
177	xorl	%ecx,%eax
178	shrl	$3,%ebx
179	xorl	%ebp,%edx
180	movl	(%esp,%edi,4),%ebp
181	movl	$7,%edi
182	movl	%ebp,%ecx
183	shll	$9,%ebp
184	andl	%ebx,%edi
185	shrl	$23,%ecx
186	xorl	%ebp,%eax
187	shrl	$3,%ebx
188	xorl	%ecx,%edx
189	movl	(%esp,%esi,4),%ecx
190	movl	$7,%esi
191	movl	%ecx,%ebp
192	shll	$12,%ecx
193	andl	%ebx,%esi
194	shrl	$20,%ebp
195	xorl	%ecx,%eax
196	shrl	$3,%ebx
197	xorl	%ebp,%edx
198	movl	(%esp,%edi,4),%ebp
199	movl	$7,%edi
200	movl	%ebp,%ecx
201	shll	$15,%ebp
202	andl	%ebx,%edi
203	shrl	$17,%ecx
204	xorl	%ebp,%eax
205	shrl	$3,%ebx
206	xorl	%ecx,%edx
207	movl	(%esp,%esi,4),%ecx
208	movl	$7,%esi
209	movl	%ecx,%ebp
210	shll	$18,%ecx
211	andl	%ebx,%esi
212	shrl	$14,%ebp
213	xorl	%ecx,%eax
214	shrl	$3,%ebx
215	xorl	%ebp,%edx
216	movl	(%esp,%edi,4),%ebp
217	movl	$7,%edi
218	movl	%ebp,%ecx
219	shll	$21,%ebp
220	andl	%ebx,%edi
221	shrl	$11,%ecx
222	xorl	%ebp,%eax
223	shrl	$3,%ebx
224	xorl	%ecx,%edx
225	movl	(%esp,%esi,4),%ecx
226	movl	$7,%esi
227	movl	%ecx,%ebp
228	shll	$24,%ecx
229	andl	%ebx,%esi
230	shrl	$8,%ebp
231	xorl	%ecx,%eax
232	shrl	$3,%ebx
233	xorl	%ebp,%edx
234	movl	(%esp,%edi,4),%ebp
235	movl	%ebp,%ecx
236	shll	$27,%ebp
237	movl	(%esp,%esi,4),%edi
238	shrl	$5,%ecx
239	movl	%edi,%esi
240	xorl	%ebp,%eax
241	shll	$30,%edi
242	xorl	%ecx,%edx
243	shrl	$2,%esi
244	xorl	%edi,%eax
245	xorl	%esi,%edx
246	addl	$36,%esp
247	ret
248.size	_mul_1x1_ialu,.-_mul_1x1_ialu
249.globl	bn_GF2m_mul_2x2
250.type	bn_GF2m_mul_2x2,@function
251.align	16
252bn_GF2m_mul_2x2:
253.L_bn_GF2m_mul_2x2_begin:
254	#ifdef __CET__
255
256.byte	243,15,30,251
257	#endif
258
259	call	.L000PIC_me_up
260.L000PIC_me_up:
261	popl	%edx
262	leal	OPENSSL_ia32cap_P-.L000PIC_me_up(%edx),%edx
263	movl	(%edx),%eax
264	movl	4(%edx),%edx
265	testl	$8388608,%eax
266	jz	.L001ialu
267	testl	$16777216,%eax
268	jz	.L002mmx
269	testl	$2,%edx
270	jz	.L002mmx
271	movups	8(%esp),%xmm0
272	shufps	$177,%xmm0,%xmm0
273.byte	102,15,58,68,192,1
274	movl	4(%esp),%eax
275	movups	%xmm0,(%eax)
276	ret
277.align	16
278.L002mmx:
279	pushl	%ebp
280	pushl	%ebx
281	pushl	%esi
282	pushl	%edi
283	movl	24(%esp),%eax
284	movl	32(%esp),%ebx
285	call	_mul_1x1_mmx
286	movq	%mm0,%mm7
287	movl	28(%esp),%eax
288	movl	36(%esp),%ebx
289	call	_mul_1x1_mmx
290	movq	%mm0,%mm6
291	movl	24(%esp),%eax
292	movl	32(%esp),%ebx
293	xorl	28(%esp),%eax
294	xorl	36(%esp),%ebx
295	call	_mul_1x1_mmx
296	pxor	%mm7,%mm0
297	movl	20(%esp),%eax
298	pxor	%mm6,%mm0
299	movq	%mm0,%mm2
300	psllq	$32,%mm0
301	popl	%edi
302	psrlq	$32,%mm2
303	popl	%esi
304	pxor	%mm6,%mm0
305	popl	%ebx
306	pxor	%mm7,%mm2
307	movq	%mm0,(%eax)
308	popl	%ebp
309	movq	%mm2,8(%eax)
310	emms
311	ret
312.align	16
313.L001ialu:
314	pushl	%ebp
315	pushl	%ebx
316	pushl	%esi
317	pushl	%edi
318	subl	$20,%esp
319	movl	44(%esp),%eax
320	movl	52(%esp),%ebx
321	call	_mul_1x1_ialu
322	movl	%eax,8(%esp)
323	movl	%edx,12(%esp)
324	movl	48(%esp),%eax
325	movl	56(%esp),%ebx
326	call	_mul_1x1_ialu
327	movl	%eax,(%esp)
328	movl	%edx,4(%esp)
329	movl	44(%esp),%eax
330	movl	52(%esp),%ebx
331	xorl	48(%esp),%eax
332	xorl	56(%esp),%ebx
333	call	_mul_1x1_ialu
334	movl	40(%esp),%ebp
335	movl	(%esp),%ebx
336	movl	4(%esp),%ecx
337	movl	8(%esp),%edi
338	movl	12(%esp),%esi
339	xorl	%edx,%eax
340	xorl	%ecx,%edx
341	xorl	%ebx,%eax
342	movl	%ebx,(%ebp)
343	xorl	%edi,%edx
344	movl	%esi,12(%ebp)
345	xorl	%esi,%eax
346	addl	$20,%esp
347	xorl	%esi,%edx
348	popl	%edi
349	xorl	%edx,%eax
350	popl	%esi
351	movl	%edx,8(%ebp)
352	popl	%ebx
353	movl	%eax,4(%ebp)
354	popl	%ebp
355	ret
356.size	bn_GF2m_mul_2x2,.-.L_bn_GF2m_mul_2x2_begin
357.byte	71,70,40,50,94,109,41,32,77,117,108,116,105,112,108,105
358.byte	99,97,116,105,111,110,32,102,111,114,32,120,56,54,44,32
359.byte	67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97
360.byte	112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103
361.byte	62,0
362.comm	OPENSSL_ia32cap_P,16,4
363
364	.section ".note.gnu.property", "a"
365	.p2align 2
366	.long 1f - 0f
367	.long 4f - 1f
368	.long 5
3690:
370	.asciz "GNU"
3711:
372	.p2align 2
373	.long 0xc0000002
374	.long 3f - 2f
3752:
376	.long 3
3773:
378	.p2align 2
3794:
380#else
381.text
382.type	_mul_1x1_mmx,@function
383.align	16
384_mul_1x1_mmx:
385	#ifdef __CET__
386
387.byte	243,15,30,251
388	#endif
389
390	subl	$36,%esp
391	movl	%eax,%ecx
392	leal	(%eax,%eax,1),%edx
393	andl	$1073741823,%ecx
394	leal	(%edx,%edx,1),%ebp
395	movl	$0,(%esp)
396	andl	$2147483647,%edx
397	movd	%eax,%mm2
398	movd	%ebx,%mm3
399	movl	%ecx,4(%esp)
400	xorl	%edx,%ecx
401	pxor	%mm5,%mm5
402	pxor	%mm4,%mm4
403	movl	%edx,8(%esp)
404	xorl	%ebp,%edx
405	movl	%ecx,12(%esp)
406	pcmpgtd	%mm2,%mm5
407	paddd	%mm2,%mm2
408	xorl	%edx,%ecx
409	movl	%ebp,16(%esp)
410	xorl	%edx,%ebp
411	pand	%mm3,%mm5
412	pcmpgtd	%mm2,%mm4
413	movl	%ecx,20(%esp)
414	xorl	%ecx,%ebp
415	psllq	$31,%mm5
416	pand	%mm3,%mm4
417	movl	%edx,24(%esp)
418	movl	$7,%esi
419	movl	%ebp,28(%esp)
420	movl	%esi,%ebp
421	andl	%ebx,%esi
422	shrl	$3,%ebx
423	movl	%ebp,%edi
424	psllq	$30,%mm4
425	andl	%ebx,%edi
426	shrl	$3,%ebx
427	movd	(%esp,%esi,4),%mm0
428	movl	%ebp,%esi
429	andl	%ebx,%esi
430	shrl	$3,%ebx
431	movd	(%esp,%edi,4),%mm2
432	movl	%ebp,%edi
433	psllq	$3,%mm2
434	andl	%ebx,%edi
435	shrl	$3,%ebx
436	pxor	%mm2,%mm0
437	movd	(%esp,%esi,4),%mm1
438	movl	%ebp,%esi
439	psllq	$6,%mm1
440	andl	%ebx,%esi
441	shrl	$3,%ebx
442	pxor	%mm1,%mm0
443	movd	(%esp,%edi,4),%mm2
444	movl	%ebp,%edi
445	psllq	$9,%mm2
446	andl	%ebx,%edi
447	shrl	$3,%ebx
448	pxor	%mm2,%mm0
449	movd	(%esp,%esi,4),%mm1
450	movl	%ebp,%esi
451	psllq	$12,%mm1
452	andl	%ebx,%esi
453	shrl	$3,%ebx
454	pxor	%mm1,%mm0
455	movd	(%esp,%edi,4),%mm2
456	movl	%ebp,%edi
457	psllq	$15,%mm2
458	andl	%ebx,%edi
459	shrl	$3,%ebx
460	pxor	%mm2,%mm0
461	movd	(%esp,%esi,4),%mm1
462	movl	%ebp,%esi
463	psllq	$18,%mm1
464	andl	%ebx,%esi
465	shrl	$3,%ebx
466	pxor	%mm1,%mm0
467	movd	(%esp,%edi,4),%mm2
468	movl	%ebp,%edi
469	psllq	$21,%mm2
470	andl	%ebx,%edi
471	shrl	$3,%ebx
472	pxor	%mm2,%mm0
473	movd	(%esp,%esi,4),%mm1
474	movl	%ebp,%esi
475	psllq	$24,%mm1
476	andl	%ebx,%esi
477	shrl	$3,%ebx
478	pxor	%mm1,%mm0
479	movd	(%esp,%edi,4),%mm2
480	pxor	%mm4,%mm0
481	psllq	$27,%mm2
482	pxor	%mm2,%mm0
483	movd	(%esp,%esi,4),%mm1
484	pxor	%mm5,%mm0
485	psllq	$30,%mm1
486	addl	$36,%esp
487	pxor	%mm1,%mm0
488	ret
489.size	_mul_1x1_mmx,.-_mul_1x1_mmx
490.type	_mul_1x1_ialu,@function
491.align	16
492_mul_1x1_ialu:
493	#ifdef __CET__
494
495.byte	243,15,30,251
496	#endif
497
498	subl	$36,%esp
499	movl	%eax,%ecx
500	leal	(%eax,%eax,1),%edx
501	leal	(,%eax,4),%ebp
502	andl	$1073741823,%ecx
503	leal	(%eax,%eax,1),%edi
504	sarl	$31,%eax
505	movl	$0,(%esp)
506	andl	$2147483647,%edx
507	movl	%ecx,4(%esp)
508	xorl	%edx,%ecx
509	movl	%edx,8(%esp)
510	xorl	%ebp,%edx
511	movl	%ecx,12(%esp)
512	xorl	%edx,%ecx
513	movl	%ebp,16(%esp)
514	xorl	%edx,%ebp
515	movl	%ecx,20(%esp)
516	xorl	%ecx,%ebp
517	sarl	$31,%edi
518	andl	%ebx,%eax
519	movl	%edx,24(%esp)
520	andl	%ebx,%edi
521	movl	%ebp,28(%esp)
522	movl	%eax,%edx
523	shll	$31,%eax
524	movl	%edi,%ecx
525	shrl	$1,%edx
526	movl	$7,%esi
527	shll	$30,%edi
528	andl	%ebx,%esi
529	shrl	$2,%ecx
530	xorl	%edi,%eax
531	shrl	$3,%ebx
532	movl	$7,%edi
533	andl	%ebx,%edi
534	shrl	$3,%ebx
535	xorl	%ecx,%edx
536	xorl	(%esp,%esi,4),%eax
537	movl	$7,%esi
538	andl	%ebx,%esi
539	shrl	$3,%ebx
540	movl	(%esp,%edi,4),%ebp
541	movl	$7,%edi
542	movl	%ebp,%ecx
543	shll	$3,%ebp
544	andl	%ebx,%edi
545	shrl	$29,%ecx
546	xorl	%ebp,%eax
547	shrl	$3,%ebx
548	xorl	%ecx,%edx
549	movl	(%esp,%esi,4),%ecx
550	movl	$7,%esi
551	movl	%ecx,%ebp
552	shll	$6,%ecx
553	andl	%ebx,%esi
554	shrl	$26,%ebp
555	xorl	%ecx,%eax
556	shrl	$3,%ebx
557	xorl	%ebp,%edx
558	movl	(%esp,%edi,4),%ebp
559	movl	$7,%edi
560	movl	%ebp,%ecx
561	shll	$9,%ebp
562	andl	%ebx,%edi
563	shrl	$23,%ecx
564	xorl	%ebp,%eax
565	shrl	$3,%ebx
566	xorl	%ecx,%edx
567	movl	(%esp,%esi,4),%ecx
568	movl	$7,%esi
569	movl	%ecx,%ebp
570	shll	$12,%ecx
571	andl	%ebx,%esi
572	shrl	$20,%ebp
573	xorl	%ecx,%eax
574	shrl	$3,%ebx
575	xorl	%ebp,%edx
576	movl	(%esp,%edi,4),%ebp
577	movl	$7,%edi
578	movl	%ebp,%ecx
579	shll	$15,%ebp
580	andl	%ebx,%edi
581	shrl	$17,%ecx
582	xorl	%ebp,%eax
583	shrl	$3,%ebx
584	xorl	%ecx,%edx
585	movl	(%esp,%esi,4),%ecx
586	movl	$7,%esi
587	movl	%ecx,%ebp
588	shll	$18,%ecx
589	andl	%ebx,%esi
590	shrl	$14,%ebp
591	xorl	%ecx,%eax
592	shrl	$3,%ebx
593	xorl	%ebp,%edx
594	movl	(%esp,%edi,4),%ebp
595	movl	$7,%edi
596	movl	%ebp,%ecx
597	shll	$21,%ebp
598	andl	%ebx,%edi
599	shrl	$11,%ecx
600	xorl	%ebp,%eax
601	shrl	$3,%ebx
602	xorl	%ecx,%edx
603	movl	(%esp,%esi,4),%ecx
604	movl	$7,%esi
605	movl	%ecx,%ebp
606	shll	$24,%ecx
607	andl	%ebx,%esi
608	shrl	$8,%ebp
609	xorl	%ecx,%eax
610	shrl	$3,%ebx
611	xorl	%ebp,%edx
612	movl	(%esp,%edi,4),%ebp
613	movl	%ebp,%ecx
614	shll	$27,%ebp
615	movl	(%esp,%esi,4),%edi
616	shrl	$5,%ecx
617	movl	%edi,%esi
618	xorl	%ebp,%eax
619	shll	$30,%edi
620	xorl	%ecx,%edx
621	shrl	$2,%esi
622	xorl	%edi,%eax
623	xorl	%esi,%edx
624	addl	$36,%esp
625	ret
626.size	_mul_1x1_ialu,.-_mul_1x1_ialu
627.globl	bn_GF2m_mul_2x2
628.type	bn_GF2m_mul_2x2,@function
629.align	16
630bn_GF2m_mul_2x2:
631.L_bn_GF2m_mul_2x2_begin:
632	#ifdef __CET__
633
634.byte	243,15,30,251
635	#endif
636
637	leal	OPENSSL_ia32cap_P,%edx
638	movl	(%edx),%eax
639	movl	4(%edx),%edx
640	testl	$8388608,%eax
641	jz	.L000ialu
642	testl	$16777216,%eax
643	jz	.L001mmx
644	testl	$2,%edx
645	jz	.L001mmx
646	movups	8(%esp),%xmm0
647	shufps	$177,%xmm0,%xmm0
648.byte	102,15,58,68,192,1
649	movl	4(%esp),%eax
650	movups	%xmm0,(%eax)
651	ret
652.align	16
653.L001mmx:
654	pushl	%ebp
655	pushl	%ebx
656	pushl	%esi
657	pushl	%edi
658	movl	24(%esp),%eax
659	movl	32(%esp),%ebx
660	call	_mul_1x1_mmx
661	movq	%mm0,%mm7
662	movl	28(%esp),%eax
663	movl	36(%esp),%ebx
664	call	_mul_1x1_mmx
665	movq	%mm0,%mm6
666	movl	24(%esp),%eax
667	movl	32(%esp),%ebx
668	xorl	28(%esp),%eax
669	xorl	36(%esp),%ebx
670	call	_mul_1x1_mmx
671	pxor	%mm7,%mm0
672	movl	20(%esp),%eax
673	pxor	%mm6,%mm0
674	movq	%mm0,%mm2
675	psllq	$32,%mm0
676	popl	%edi
677	psrlq	$32,%mm2
678	popl	%esi
679	pxor	%mm6,%mm0
680	popl	%ebx
681	pxor	%mm7,%mm2
682	movq	%mm0,(%eax)
683	popl	%ebp
684	movq	%mm2,8(%eax)
685	emms
686	ret
687.align	16
688.L000ialu:
689	pushl	%ebp
690	pushl	%ebx
691	pushl	%esi
692	pushl	%edi
693	subl	$20,%esp
694	movl	44(%esp),%eax
695	movl	52(%esp),%ebx
696	call	_mul_1x1_ialu
697	movl	%eax,8(%esp)
698	movl	%edx,12(%esp)
699	movl	48(%esp),%eax
700	movl	56(%esp),%ebx
701	call	_mul_1x1_ialu
702	movl	%eax,(%esp)
703	movl	%edx,4(%esp)
704	movl	44(%esp),%eax
705	movl	52(%esp),%ebx
706	xorl	48(%esp),%eax
707	xorl	56(%esp),%ebx
708	call	_mul_1x1_ialu
709	movl	40(%esp),%ebp
710	movl	(%esp),%ebx
711	movl	4(%esp),%ecx
712	movl	8(%esp),%edi
713	movl	12(%esp),%esi
714	xorl	%edx,%eax
715	xorl	%ecx,%edx
716	xorl	%ebx,%eax
717	movl	%ebx,(%ebp)
718	xorl	%edi,%edx
719	movl	%esi,12(%ebp)
720	xorl	%esi,%eax
721	addl	$20,%esp
722	xorl	%esi,%edx
723	popl	%edi
724	xorl	%edx,%eax
725	popl	%esi
726	movl	%edx,8(%ebp)
727	popl	%ebx
728	movl	%eax,4(%ebp)
729	popl	%ebp
730	ret
731.size	bn_GF2m_mul_2x2,.-.L_bn_GF2m_mul_2x2_begin
732.byte	71,70,40,50,94,109,41,32,77,117,108,116,105,112,108,105
733.byte	99,97,116,105,111,110,32,102,111,114,32,120,56,54,44,32
734.byte	67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97
735.byte	112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103
736.byte	62,0
737.comm	OPENSSL_ia32cap_P,16,4
738
739	.section ".note.gnu.property", "a"
740	.p2align 2
741	.long 1f - 0f
742	.long 4f - 1f
743	.long 5
7440:
745	.asciz "GNU"
7461:
747	.p2align 2
748	.long 0xc0000002
749	.long 3f - 2f
7502:
751	.long 3
7523:
753	.p2align 2
7544:
755#endif
756