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