xref: /netbsd-src/crypto/external/bsd/openssl/lib/libcrypto/arch/i386/x86.S (revision 89869e261ce9136d6084e14efa09eb4505607328)
1*89869e26Schristos#include <machine/asm.h>
2*89869e26Schristos.text
3*89869e26Schristos.globl	bn_mul_add_words
4*89869e26Schristos.type	bn_mul_add_words,@function
5*89869e26Schristos.align	16
6*89869e26Schristosbn_mul_add_words:
7*89869e26Schristos.L_bn_mul_add_words_begin:
8*89869e26Schristos	pushl	%ebp
9*89869e26Schristos	pushl	%ebx
10*89869e26Schristos	pushl	%esi
11*89869e26Schristos	pushl	%edi
12*89869e26Schristos
13*89869e26Schristos	xorl	%esi,%esi
14*89869e26Schristos	movl	20(%esp),%edi
15*89869e26Schristos	movl	28(%esp),%ecx
16*89869e26Schristos	movl	24(%esp),%ebx
17*89869e26Schristos	andl	$4294967288,%ecx
18*89869e26Schristos	movl	32(%esp),%ebp
19*89869e26Schristos	pushl	%ecx
20*89869e26Schristos	jz	.L000maw_finish
21*89869e26Schristos.L001maw_loop:
22*89869e26Schristos	movl	%ecx,(%esp)
23*89869e26Schristos
24*89869e26Schristos	movl	(%ebx),%eax
25*89869e26Schristos	mull	%ebp
26*89869e26Schristos	addl	%esi,%eax
27*89869e26Schristos	movl	(%edi),%esi
28*89869e26Schristos	adcl	$0,%edx
29*89869e26Schristos	addl	%esi,%eax
30*89869e26Schristos	adcl	$0,%edx
31*89869e26Schristos	movl	%eax,(%edi)
32*89869e26Schristos	movl	%edx,%esi
33*89869e26Schristos
34*89869e26Schristos	movl	4(%ebx),%eax
35*89869e26Schristos	mull	%ebp
36*89869e26Schristos	addl	%esi,%eax
37*89869e26Schristos	movl	4(%edi),%esi
38*89869e26Schristos	adcl	$0,%edx
39*89869e26Schristos	addl	%esi,%eax
40*89869e26Schristos	adcl	$0,%edx
41*89869e26Schristos	movl	%eax,4(%edi)
42*89869e26Schristos	movl	%edx,%esi
43*89869e26Schristos
44*89869e26Schristos	movl	8(%ebx),%eax
45*89869e26Schristos	mull	%ebp
46*89869e26Schristos	addl	%esi,%eax
47*89869e26Schristos	movl	8(%edi),%esi
48*89869e26Schristos	adcl	$0,%edx
49*89869e26Schristos	addl	%esi,%eax
50*89869e26Schristos	adcl	$0,%edx
51*89869e26Schristos	movl	%eax,8(%edi)
52*89869e26Schristos	movl	%edx,%esi
53*89869e26Schristos
54*89869e26Schristos	movl	12(%ebx),%eax
55*89869e26Schristos	mull	%ebp
56*89869e26Schristos	addl	%esi,%eax
57*89869e26Schristos	movl	12(%edi),%esi
58*89869e26Schristos	adcl	$0,%edx
59*89869e26Schristos	addl	%esi,%eax
60*89869e26Schristos	adcl	$0,%edx
61*89869e26Schristos	movl	%eax,12(%edi)
62*89869e26Schristos	movl	%edx,%esi
63*89869e26Schristos
64*89869e26Schristos	movl	16(%ebx),%eax
65*89869e26Schristos	mull	%ebp
66*89869e26Schristos	addl	%esi,%eax
67*89869e26Schristos	movl	16(%edi),%esi
68*89869e26Schristos	adcl	$0,%edx
69*89869e26Schristos	addl	%esi,%eax
70*89869e26Schristos	adcl	$0,%edx
71*89869e26Schristos	movl	%eax,16(%edi)
72*89869e26Schristos	movl	%edx,%esi
73*89869e26Schristos
74*89869e26Schristos	movl	20(%ebx),%eax
75*89869e26Schristos	mull	%ebp
76*89869e26Schristos	addl	%esi,%eax
77*89869e26Schristos	movl	20(%edi),%esi
78*89869e26Schristos	adcl	$0,%edx
79*89869e26Schristos	addl	%esi,%eax
80*89869e26Schristos	adcl	$0,%edx
81*89869e26Schristos	movl	%eax,20(%edi)
82*89869e26Schristos	movl	%edx,%esi
83*89869e26Schristos
84*89869e26Schristos	movl	24(%ebx),%eax
85*89869e26Schristos	mull	%ebp
86*89869e26Schristos	addl	%esi,%eax
87*89869e26Schristos	movl	24(%edi),%esi
88*89869e26Schristos	adcl	$0,%edx
89*89869e26Schristos	addl	%esi,%eax
90*89869e26Schristos	adcl	$0,%edx
91*89869e26Schristos	movl	%eax,24(%edi)
92*89869e26Schristos	movl	%edx,%esi
93*89869e26Schristos
94*89869e26Schristos	movl	28(%ebx),%eax
95*89869e26Schristos	mull	%ebp
96*89869e26Schristos	addl	%esi,%eax
97*89869e26Schristos	movl	28(%edi),%esi
98*89869e26Schristos	adcl	$0,%edx
99*89869e26Schristos	addl	%esi,%eax
100*89869e26Schristos	adcl	$0,%edx
101*89869e26Schristos	movl	%eax,28(%edi)
102*89869e26Schristos	movl	%edx,%esi
103*89869e26Schristos
104*89869e26Schristos	movl	(%esp),%ecx
105*89869e26Schristos	addl	$32,%ebx
106*89869e26Schristos	addl	$32,%edi
107*89869e26Schristos	subl	$8,%ecx
108*89869e26Schristos	jnz	.L001maw_loop
109*89869e26Schristos.L000maw_finish:
110*89869e26Schristos	movl	32(%esp),%ecx
111*89869e26Schristos	andl	$7,%ecx
112*89869e26Schristos	jnz	.L002maw_finish2
113*89869e26Schristos	jmp	.L003maw_end
114*89869e26Schristos.L002maw_finish2:
115*89869e26Schristos
116*89869e26Schristos	movl	(%ebx),%eax
117*89869e26Schristos	mull	%ebp
118*89869e26Schristos	addl	%esi,%eax
119*89869e26Schristos	movl	(%edi),%esi
120*89869e26Schristos	adcl	$0,%edx
121*89869e26Schristos	addl	%esi,%eax
122*89869e26Schristos	adcl	$0,%edx
123*89869e26Schristos	decl	%ecx
124*89869e26Schristos	movl	%eax,(%edi)
125*89869e26Schristos	movl	%edx,%esi
126*89869e26Schristos	jz	.L003maw_end
127*89869e26Schristos
128*89869e26Schristos	movl	4(%ebx),%eax
129*89869e26Schristos	mull	%ebp
130*89869e26Schristos	addl	%esi,%eax
131*89869e26Schristos	movl	4(%edi),%esi
132*89869e26Schristos	adcl	$0,%edx
133*89869e26Schristos	addl	%esi,%eax
134*89869e26Schristos	adcl	$0,%edx
135*89869e26Schristos	decl	%ecx
136*89869e26Schristos	movl	%eax,4(%edi)
137*89869e26Schristos	movl	%edx,%esi
138*89869e26Schristos	jz	.L003maw_end
139*89869e26Schristos
140*89869e26Schristos	movl	8(%ebx),%eax
141*89869e26Schristos	mull	%ebp
142*89869e26Schristos	addl	%esi,%eax
143*89869e26Schristos	movl	8(%edi),%esi
144*89869e26Schristos	adcl	$0,%edx
145*89869e26Schristos	addl	%esi,%eax
146*89869e26Schristos	adcl	$0,%edx
147*89869e26Schristos	decl	%ecx
148*89869e26Schristos	movl	%eax,8(%edi)
149*89869e26Schristos	movl	%edx,%esi
150*89869e26Schristos	jz	.L003maw_end
151*89869e26Schristos
152*89869e26Schristos	movl	12(%ebx),%eax
153*89869e26Schristos	mull	%ebp
154*89869e26Schristos	addl	%esi,%eax
155*89869e26Schristos	movl	12(%edi),%esi
156*89869e26Schristos	adcl	$0,%edx
157*89869e26Schristos	addl	%esi,%eax
158*89869e26Schristos	adcl	$0,%edx
159*89869e26Schristos	decl	%ecx
160*89869e26Schristos	movl	%eax,12(%edi)
161*89869e26Schristos	movl	%edx,%esi
162*89869e26Schristos	jz	.L003maw_end
163*89869e26Schristos
164*89869e26Schristos	movl	16(%ebx),%eax
165*89869e26Schristos	mull	%ebp
166*89869e26Schristos	addl	%esi,%eax
167*89869e26Schristos	movl	16(%edi),%esi
168*89869e26Schristos	adcl	$0,%edx
169*89869e26Schristos	addl	%esi,%eax
170*89869e26Schristos	adcl	$0,%edx
171*89869e26Schristos	decl	%ecx
172*89869e26Schristos	movl	%eax,16(%edi)
173*89869e26Schristos	movl	%edx,%esi
174*89869e26Schristos	jz	.L003maw_end
175*89869e26Schristos
176*89869e26Schristos	movl	20(%ebx),%eax
177*89869e26Schristos	mull	%ebp
178*89869e26Schristos	addl	%esi,%eax
179*89869e26Schristos	movl	20(%edi),%esi
180*89869e26Schristos	adcl	$0,%edx
181*89869e26Schristos	addl	%esi,%eax
182*89869e26Schristos	adcl	$0,%edx
183*89869e26Schristos	decl	%ecx
184*89869e26Schristos	movl	%eax,20(%edi)
185*89869e26Schristos	movl	%edx,%esi
186*89869e26Schristos	jz	.L003maw_end
187*89869e26Schristos
188*89869e26Schristos	movl	24(%ebx),%eax
189*89869e26Schristos	mull	%ebp
190*89869e26Schristos	addl	%esi,%eax
191*89869e26Schristos	movl	24(%edi),%esi
192*89869e26Schristos	adcl	$0,%edx
193*89869e26Schristos	addl	%esi,%eax
194*89869e26Schristos	adcl	$0,%edx
195*89869e26Schristos	movl	%eax,24(%edi)
196*89869e26Schristos	movl	%edx,%esi
197*89869e26Schristos.L003maw_end:
198*89869e26Schristos	movl	%esi,%eax
199*89869e26Schristos	popl	%ecx
200*89869e26Schristos	popl	%edi
201*89869e26Schristos	popl	%esi
202*89869e26Schristos	popl	%ebx
203*89869e26Schristos	popl	%ebp
204*89869e26Schristos	ret
205*89869e26Schristos.size	bn_mul_add_words,.-.L_bn_mul_add_words_begin
206*89869e26Schristos.globl	bn_mul_words
207*89869e26Schristos.type	bn_mul_words,@function
208*89869e26Schristos.align	16
209*89869e26Schristosbn_mul_words:
210*89869e26Schristos.L_bn_mul_words_begin:
211*89869e26Schristos	pushl	%ebp
212*89869e26Schristos	pushl	%ebx
213*89869e26Schristos	pushl	%esi
214*89869e26Schristos	pushl	%edi
215*89869e26Schristos
216*89869e26Schristos	xorl	%esi,%esi
217*89869e26Schristos	movl	20(%esp),%edi
218*89869e26Schristos	movl	24(%esp),%ebx
219*89869e26Schristos	movl	28(%esp),%ebp
220*89869e26Schristos	movl	32(%esp),%ecx
221*89869e26Schristos	andl	$4294967288,%ebp
222*89869e26Schristos	jz	.L004mw_finish
223*89869e26Schristos.L005mw_loop:
224*89869e26Schristos
225*89869e26Schristos	movl	(%ebx),%eax
226*89869e26Schristos	mull	%ecx
227*89869e26Schristos	addl	%esi,%eax
228*89869e26Schristos	adcl	$0,%edx
229*89869e26Schristos	movl	%eax,(%edi)
230*89869e26Schristos	movl	%edx,%esi
231*89869e26Schristos
232*89869e26Schristos	movl	4(%ebx),%eax
233*89869e26Schristos	mull	%ecx
234*89869e26Schristos	addl	%esi,%eax
235*89869e26Schristos	adcl	$0,%edx
236*89869e26Schristos	movl	%eax,4(%edi)
237*89869e26Schristos	movl	%edx,%esi
238*89869e26Schristos
239*89869e26Schristos	movl	8(%ebx),%eax
240*89869e26Schristos	mull	%ecx
241*89869e26Schristos	addl	%esi,%eax
242*89869e26Schristos	adcl	$0,%edx
243*89869e26Schristos	movl	%eax,8(%edi)
244*89869e26Schristos	movl	%edx,%esi
245*89869e26Schristos
246*89869e26Schristos	movl	12(%ebx),%eax
247*89869e26Schristos	mull	%ecx
248*89869e26Schristos	addl	%esi,%eax
249*89869e26Schristos	adcl	$0,%edx
250*89869e26Schristos	movl	%eax,12(%edi)
251*89869e26Schristos	movl	%edx,%esi
252*89869e26Schristos
253*89869e26Schristos	movl	16(%ebx),%eax
254*89869e26Schristos	mull	%ecx
255*89869e26Schristos	addl	%esi,%eax
256*89869e26Schristos	adcl	$0,%edx
257*89869e26Schristos	movl	%eax,16(%edi)
258*89869e26Schristos	movl	%edx,%esi
259*89869e26Schristos
260*89869e26Schristos	movl	20(%ebx),%eax
261*89869e26Schristos	mull	%ecx
262*89869e26Schristos	addl	%esi,%eax
263*89869e26Schristos	adcl	$0,%edx
264*89869e26Schristos	movl	%eax,20(%edi)
265*89869e26Schristos	movl	%edx,%esi
266*89869e26Schristos
267*89869e26Schristos	movl	24(%ebx),%eax
268*89869e26Schristos	mull	%ecx
269*89869e26Schristos	addl	%esi,%eax
270*89869e26Schristos	adcl	$0,%edx
271*89869e26Schristos	movl	%eax,24(%edi)
272*89869e26Schristos	movl	%edx,%esi
273*89869e26Schristos
274*89869e26Schristos	movl	28(%ebx),%eax
275*89869e26Schristos	mull	%ecx
276*89869e26Schristos	addl	%esi,%eax
277*89869e26Schristos	adcl	$0,%edx
278*89869e26Schristos	movl	%eax,28(%edi)
279*89869e26Schristos	movl	%edx,%esi
280*89869e26Schristos
281*89869e26Schristos	addl	$32,%ebx
282*89869e26Schristos	addl	$32,%edi
283*89869e26Schristos	subl	$8,%ebp
284*89869e26Schristos	jz	.L004mw_finish
285*89869e26Schristos	jmp	.L005mw_loop
286*89869e26Schristos.L004mw_finish:
287*89869e26Schristos	movl	28(%esp),%ebp
288*89869e26Schristos	andl	$7,%ebp
289*89869e26Schristos	jnz	.L006mw_finish2
290*89869e26Schristos	jmp	.L007mw_end
291*89869e26Schristos.L006mw_finish2:
292*89869e26Schristos
293*89869e26Schristos	movl	(%ebx),%eax
294*89869e26Schristos	mull	%ecx
295*89869e26Schristos	addl	%esi,%eax
296*89869e26Schristos	adcl	$0,%edx
297*89869e26Schristos	movl	%eax,(%edi)
298*89869e26Schristos	movl	%edx,%esi
299*89869e26Schristos	decl	%ebp
300*89869e26Schristos	jz	.L007mw_end
301*89869e26Schristos
302*89869e26Schristos	movl	4(%ebx),%eax
303*89869e26Schristos	mull	%ecx
304*89869e26Schristos	addl	%esi,%eax
305*89869e26Schristos	adcl	$0,%edx
306*89869e26Schristos	movl	%eax,4(%edi)
307*89869e26Schristos	movl	%edx,%esi
308*89869e26Schristos	decl	%ebp
309*89869e26Schristos	jz	.L007mw_end
310*89869e26Schristos
311*89869e26Schristos	movl	8(%ebx),%eax
312*89869e26Schristos	mull	%ecx
313*89869e26Schristos	addl	%esi,%eax
314*89869e26Schristos	adcl	$0,%edx
315*89869e26Schristos	movl	%eax,8(%edi)
316*89869e26Schristos	movl	%edx,%esi
317*89869e26Schristos	decl	%ebp
318*89869e26Schristos	jz	.L007mw_end
319*89869e26Schristos
320*89869e26Schristos	movl	12(%ebx),%eax
321*89869e26Schristos	mull	%ecx
322*89869e26Schristos	addl	%esi,%eax
323*89869e26Schristos	adcl	$0,%edx
324*89869e26Schristos	movl	%eax,12(%edi)
325*89869e26Schristos	movl	%edx,%esi
326*89869e26Schristos	decl	%ebp
327*89869e26Schristos	jz	.L007mw_end
328*89869e26Schristos
329*89869e26Schristos	movl	16(%ebx),%eax
330*89869e26Schristos	mull	%ecx
331*89869e26Schristos	addl	%esi,%eax
332*89869e26Schristos	adcl	$0,%edx
333*89869e26Schristos	movl	%eax,16(%edi)
334*89869e26Schristos	movl	%edx,%esi
335*89869e26Schristos	decl	%ebp
336*89869e26Schristos	jz	.L007mw_end
337*89869e26Schristos
338*89869e26Schristos	movl	20(%ebx),%eax
339*89869e26Schristos	mull	%ecx
340*89869e26Schristos	addl	%esi,%eax
341*89869e26Schristos	adcl	$0,%edx
342*89869e26Schristos	movl	%eax,20(%edi)
343*89869e26Schristos	movl	%edx,%esi
344*89869e26Schristos	decl	%ebp
345*89869e26Schristos	jz	.L007mw_end
346*89869e26Schristos
347*89869e26Schristos	movl	24(%ebx),%eax
348*89869e26Schristos	mull	%ecx
349*89869e26Schristos	addl	%esi,%eax
350*89869e26Schristos	adcl	$0,%edx
351*89869e26Schristos	movl	%eax,24(%edi)
352*89869e26Schristos	movl	%edx,%esi
353*89869e26Schristos.L007mw_end:
354*89869e26Schristos	movl	%esi,%eax
355*89869e26Schristos	popl	%edi
356*89869e26Schristos	popl	%esi
357*89869e26Schristos	popl	%ebx
358*89869e26Schristos	popl	%ebp
359*89869e26Schristos	ret
360*89869e26Schristos.size	bn_mul_words,.-.L_bn_mul_words_begin
361*89869e26Schristos.globl	bn_sqr_words
362*89869e26Schristos.type	bn_sqr_words,@function
363*89869e26Schristos.align	16
364*89869e26Schristosbn_sqr_words:
365*89869e26Schristos.L_bn_sqr_words_begin:
366*89869e26Schristos	pushl	%ebp
367*89869e26Schristos	pushl	%ebx
368*89869e26Schristos	pushl	%esi
369*89869e26Schristos	pushl	%edi
370*89869e26Schristos
371*89869e26Schristos	movl	20(%esp),%esi
372*89869e26Schristos	movl	24(%esp),%edi
373*89869e26Schristos	movl	28(%esp),%ebx
374*89869e26Schristos	andl	$4294967288,%ebx
375*89869e26Schristos	jz	.L008sw_finish
376*89869e26Schristos.L009sw_loop:
377*89869e26Schristos
378*89869e26Schristos	movl	(%edi),%eax
379*89869e26Schristos	mull	%eax
380*89869e26Schristos	movl	%eax,(%esi)
381*89869e26Schristos	movl	%edx,4(%esi)
382*89869e26Schristos
383*89869e26Schristos	movl	4(%edi),%eax
384*89869e26Schristos	mull	%eax
385*89869e26Schristos	movl	%eax,8(%esi)
386*89869e26Schristos	movl	%edx,12(%esi)
387*89869e26Schristos
388*89869e26Schristos	movl	8(%edi),%eax
389*89869e26Schristos	mull	%eax
390*89869e26Schristos	movl	%eax,16(%esi)
391*89869e26Schristos	movl	%edx,20(%esi)
392*89869e26Schristos
393*89869e26Schristos	movl	12(%edi),%eax
394*89869e26Schristos	mull	%eax
395*89869e26Schristos	movl	%eax,24(%esi)
396*89869e26Schristos	movl	%edx,28(%esi)
397*89869e26Schristos
398*89869e26Schristos	movl	16(%edi),%eax
399*89869e26Schristos	mull	%eax
400*89869e26Schristos	movl	%eax,32(%esi)
401*89869e26Schristos	movl	%edx,36(%esi)
402*89869e26Schristos
403*89869e26Schristos	movl	20(%edi),%eax
404*89869e26Schristos	mull	%eax
405*89869e26Schristos	movl	%eax,40(%esi)
406*89869e26Schristos	movl	%edx,44(%esi)
407*89869e26Schristos
408*89869e26Schristos	movl	24(%edi),%eax
409*89869e26Schristos	mull	%eax
410*89869e26Schristos	movl	%eax,48(%esi)
411*89869e26Schristos	movl	%edx,52(%esi)
412*89869e26Schristos
413*89869e26Schristos	movl	28(%edi),%eax
414*89869e26Schristos	mull	%eax
415*89869e26Schristos	movl	%eax,56(%esi)
416*89869e26Schristos	movl	%edx,60(%esi)
417*89869e26Schristos
418*89869e26Schristos	addl	$32,%edi
419*89869e26Schristos	addl	$64,%esi
420*89869e26Schristos	subl	$8,%ebx
421*89869e26Schristos	jnz	.L009sw_loop
422*89869e26Schristos.L008sw_finish:
423*89869e26Schristos	movl	28(%esp),%ebx
424*89869e26Schristos	andl	$7,%ebx
425*89869e26Schristos	jz	.L010sw_end
426*89869e26Schristos
427*89869e26Schristos	movl	(%edi),%eax
428*89869e26Schristos	mull	%eax
429*89869e26Schristos	movl	%eax,(%esi)
430*89869e26Schristos	decl	%ebx
431*89869e26Schristos	movl	%edx,4(%esi)
432*89869e26Schristos	jz	.L010sw_end
433*89869e26Schristos
434*89869e26Schristos	movl	4(%edi),%eax
435*89869e26Schristos	mull	%eax
436*89869e26Schristos	movl	%eax,8(%esi)
437*89869e26Schristos	decl	%ebx
438*89869e26Schristos	movl	%edx,12(%esi)
439*89869e26Schristos	jz	.L010sw_end
440*89869e26Schristos
441*89869e26Schristos	movl	8(%edi),%eax
442*89869e26Schristos	mull	%eax
443*89869e26Schristos	movl	%eax,16(%esi)
444*89869e26Schristos	decl	%ebx
445*89869e26Schristos	movl	%edx,20(%esi)
446*89869e26Schristos	jz	.L010sw_end
447*89869e26Schristos
448*89869e26Schristos	movl	12(%edi),%eax
449*89869e26Schristos	mull	%eax
450*89869e26Schristos	movl	%eax,24(%esi)
451*89869e26Schristos	decl	%ebx
452*89869e26Schristos	movl	%edx,28(%esi)
453*89869e26Schristos	jz	.L010sw_end
454*89869e26Schristos
455*89869e26Schristos	movl	16(%edi),%eax
456*89869e26Schristos	mull	%eax
457*89869e26Schristos	movl	%eax,32(%esi)
458*89869e26Schristos	decl	%ebx
459*89869e26Schristos	movl	%edx,36(%esi)
460*89869e26Schristos	jz	.L010sw_end
461*89869e26Schristos
462*89869e26Schristos	movl	20(%edi),%eax
463*89869e26Schristos	mull	%eax
464*89869e26Schristos	movl	%eax,40(%esi)
465*89869e26Schristos	decl	%ebx
466*89869e26Schristos	movl	%edx,44(%esi)
467*89869e26Schristos	jz	.L010sw_end
468*89869e26Schristos
469*89869e26Schristos	movl	24(%edi),%eax
470*89869e26Schristos	mull	%eax
471*89869e26Schristos	movl	%eax,48(%esi)
472*89869e26Schristos	movl	%edx,52(%esi)
473*89869e26Schristos.L010sw_end:
474*89869e26Schristos	popl	%edi
475*89869e26Schristos	popl	%esi
476*89869e26Schristos	popl	%ebx
477*89869e26Schristos	popl	%ebp
478*89869e26Schristos	ret
479*89869e26Schristos.size	bn_sqr_words,.-.L_bn_sqr_words_begin
480*89869e26Schristos.globl	bn_div_words
481*89869e26Schristos.type	bn_div_words,@function
482*89869e26Schristos.align	16
483*89869e26Schristosbn_div_words:
484*89869e26Schristos.L_bn_div_words_begin:
485*89869e26Schristos	pushl	%ebp
486*89869e26Schristos	pushl	%ebx
487*89869e26Schristos	pushl	%esi
488*89869e26Schristos	pushl	%edi
489*89869e26Schristos	movl	20(%esp),%edx
490*89869e26Schristos	movl	24(%esp),%eax
491*89869e26Schristos	movl	28(%esp),%ebx
492*89869e26Schristos	divl	%ebx
493*89869e26Schristos	popl	%edi
494*89869e26Schristos	popl	%esi
495*89869e26Schristos	popl	%ebx
496*89869e26Schristos	popl	%ebp
497*89869e26Schristos	ret
498*89869e26Schristos.size	bn_div_words,.-.L_bn_div_words_begin
499*89869e26Schristos.globl	bn_add_words
500*89869e26Schristos.type	bn_add_words,@function
501*89869e26Schristos.align	16
502*89869e26Schristosbn_add_words:
503*89869e26Schristos.L_bn_add_words_begin:
504*89869e26Schristos	pushl	%ebp
505*89869e26Schristos	pushl	%ebx
506*89869e26Schristos	pushl	%esi
507*89869e26Schristos	pushl	%edi
508*89869e26Schristos
509*89869e26Schristos	movl	20(%esp),%ebx
510*89869e26Schristos	movl	24(%esp),%esi
511*89869e26Schristos	movl	28(%esp),%edi
512*89869e26Schristos	movl	32(%esp),%ebp
513*89869e26Schristos	xorl	%eax,%eax
514*89869e26Schristos	andl	$4294967288,%ebp
515*89869e26Schristos	jz	.L011aw_finish
516*89869e26Schristos.L012aw_loop:
517*89869e26Schristos
518*89869e26Schristos	movl	(%esi),%ecx
519*89869e26Schristos	movl	(%edi),%edx
520*89869e26Schristos	addl	%eax,%ecx
521*89869e26Schristos	movl	$0,%eax
522*89869e26Schristos	adcl	%eax,%eax
523*89869e26Schristos	addl	%edx,%ecx
524*89869e26Schristos	adcl	$0,%eax
525*89869e26Schristos	movl	%ecx,(%ebx)
526*89869e26Schristos
527*89869e26Schristos	movl	4(%esi),%ecx
528*89869e26Schristos	movl	4(%edi),%edx
529*89869e26Schristos	addl	%eax,%ecx
530*89869e26Schristos	movl	$0,%eax
531*89869e26Schristos	adcl	%eax,%eax
532*89869e26Schristos	addl	%edx,%ecx
533*89869e26Schristos	adcl	$0,%eax
534*89869e26Schristos	movl	%ecx,4(%ebx)
535*89869e26Schristos
536*89869e26Schristos	movl	8(%esi),%ecx
537*89869e26Schristos	movl	8(%edi),%edx
538*89869e26Schristos	addl	%eax,%ecx
539*89869e26Schristos	movl	$0,%eax
540*89869e26Schristos	adcl	%eax,%eax
541*89869e26Schristos	addl	%edx,%ecx
542*89869e26Schristos	adcl	$0,%eax
543*89869e26Schristos	movl	%ecx,8(%ebx)
544*89869e26Schristos
545*89869e26Schristos	movl	12(%esi),%ecx
546*89869e26Schristos	movl	12(%edi),%edx
547*89869e26Schristos	addl	%eax,%ecx
548*89869e26Schristos	movl	$0,%eax
549*89869e26Schristos	adcl	%eax,%eax
550*89869e26Schristos	addl	%edx,%ecx
551*89869e26Schristos	adcl	$0,%eax
552*89869e26Schristos	movl	%ecx,12(%ebx)
553*89869e26Schristos
554*89869e26Schristos	movl	16(%esi),%ecx
555*89869e26Schristos	movl	16(%edi),%edx
556*89869e26Schristos	addl	%eax,%ecx
557*89869e26Schristos	movl	$0,%eax
558*89869e26Schristos	adcl	%eax,%eax
559*89869e26Schristos	addl	%edx,%ecx
560*89869e26Schristos	adcl	$0,%eax
561*89869e26Schristos	movl	%ecx,16(%ebx)
562*89869e26Schristos
563*89869e26Schristos	movl	20(%esi),%ecx
564*89869e26Schristos	movl	20(%edi),%edx
565*89869e26Schristos	addl	%eax,%ecx
566*89869e26Schristos	movl	$0,%eax
567*89869e26Schristos	adcl	%eax,%eax
568*89869e26Schristos	addl	%edx,%ecx
569*89869e26Schristos	adcl	$0,%eax
570*89869e26Schristos	movl	%ecx,20(%ebx)
571*89869e26Schristos
572*89869e26Schristos	movl	24(%esi),%ecx
573*89869e26Schristos	movl	24(%edi),%edx
574*89869e26Schristos	addl	%eax,%ecx
575*89869e26Schristos	movl	$0,%eax
576*89869e26Schristos	adcl	%eax,%eax
577*89869e26Schristos	addl	%edx,%ecx
578*89869e26Schristos	adcl	$0,%eax
579*89869e26Schristos	movl	%ecx,24(%ebx)
580*89869e26Schristos
581*89869e26Schristos	movl	28(%esi),%ecx
582*89869e26Schristos	movl	28(%edi),%edx
583*89869e26Schristos	addl	%eax,%ecx
584*89869e26Schristos	movl	$0,%eax
585*89869e26Schristos	adcl	%eax,%eax
586*89869e26Schristos	addl	%edx,%ecx
587*89869e26Schristos	adcl	$0,%eax
588*89869e26Schristos	movl	%ecx,28(%ebx)
589*89869e26Schristos
590*89869e26Schristos	addl	$32,%esi
591*89869e26Schristos	addl	$32,%edi
592*89869e26Schristos	addl	$32,%ebx
593*89869e26Schristos	subl	$8,%ebp
594*89869e26Schristos	jnz	.L012aw_loop
595*89869e26Schristos.L011aw_finish:
596*89869e26Schristos	movl	32(%esp),%ebp
597*89869e26Schristos	andl	$7,%ebp
598*89869e26Schristos	jz	.L013aw_end
599*89869e26Schristos
600*89869e26Schristos	movl	(%esi),%ecx
601*89869e26Schristos	movl	(%edi),%edx
602*89869e26Schristos	addl	%eax,%ecx
603*89869e26Schristos	movl	$0,%eax
604*89869e26Schristos	adcl	%eax,%eax
605*89869e26Schristos	addl	%edx,%ecx
606*89869e26Schristos	adcl	$0,%eax
607*89869e26Schristos	decl	%ebp
608*89869e26Schristos	movl	%ecx,(%ebx)
609*89869e26Schristos	jz	.L013aw_end
610*89869e26Schristos
611*89869e26Schristos	movl	4(%esi),%ecx
612*89869e26Schristos	movl	4(%edi),%edx
613*89869e26Schristos	addl	%eax,%ecx
614*89869e26Schristos	movl	$0,%eax
615*89869e26Schristos	adcl	%eax,%eax
616*89869e26Schristos	addl	%edx,%ecx
617*89869e26Schristos	adcl	$0,%eax
618*89869e26Schristos	decl	%ebp
619*89869e26Schristos	movl	%ecx,4(%ebx)
620*89869e26Schristos	jz	.L013aw_end
621*89869e26Schristos
622*89869e26Schristos	movl	8(%esi),%ecx
623*89869e26Schristos	movl	8(%edi),%edx
624*89869e26Schristos	addl	%eax,%ecx
625*89869e26Schristos	movl	$0,%eax
626*89869e26Schristos	adcl	%eax,%eax
627*89869e26Schristos	addl	%edx,%ecx
628*89869e26Schristos	adcl	$0,%eax
629*89869e26Schristos	decl	%ebp
630*89869e26Schristos	movl	%ecx,8(%ebx)
631*89869e26Schristos	jz	.L013aw_end
632*89869e26Schristos
633*89869e26Schristos	movl	12(%esi),%ecx
634*89869e26Schristos	movl	12(%edi),%edx
635*89869e26Schristos	addl	%eax,%ecx
636*89869e26Schristos	movl	$0,%eax
637*89869e26Schristos	adcl	%eax,%eax
638*89869e26Schristos	addl	%edx,%ecx
639*89869e26Schristos	adcl	$0,%eax
640*89869e26Schristos	decl	%ebp
641*89869e26Schristos	movl	%ecx,12(%ebx)
642*89869e26Schristos	jz	.L013aw_end
643*89869e26Schristos
644*89869e26Schristos	movl	16(%esi),%ecx
645*89869e26Schristos	movl	16(%edi),%edx
646*89869e26Schristos	addl	%eax,%ecx
647*89869e26Schristos	movl	$0,%eax
648*89869e26Schristos	adcl	%eax,%eax
649*89869e26Schristos	addl	%edx,%ecx
650*89869e26Schristos	adcl	$0,%eax
651*89869e26Schristos	decl	%ebp
652*89869e26Schristos	movl	%ecx,16(%ebx)
653*89869e26Schristos	jz	.L013aw_end
654*89869e26Schristos
655*89869e26Schristos	movl	20(%esi),%ecx
656*89869e26Schristos	movl	20(%edi),%edx
657*89869e26Schristos	addl	%eax,%ecx
658*89869e26Schristos	movl	$0,%eax
659*89869e26Schristos	adcl	%eax,%eax
660*89869e26Schristos	addl	%edx,%ecx
661*89869e26Schristos	adcl	$0,%eax
662*89869e26Schristos	decl	%ebp
663*89869e26Schristos	movl	%ecx,20(%ebx)
664*89869e26Schristos	jz	.L013aw_end
665*89869e26Schristos
666*89869e26Schristos	movl	24(%esi),%ecx
667*89869e26Schristos	movl	24(%edi),%edx
668*89869e26Schristos	addl	%eax,%ecx
669*89869e26Schristos	movl	$0,%eax
670*89869e26Schristos	adcl	%eax,%eax
671*89869e26Schristos	addl	%edx,%ecx
672*89869e26Schristos	adcl	$0,%eax
673*89869e26Schristos	movl	%ecx,24(%ebx)
674*89869e26Schristos.L013aw_end:
675*89869e26Schristos	popl	%edi
676*89869e26Schristos	popl	%esi
677*89869e26Schristos	popl	%ebx
678*89869e26Schristos	popl	%ebp
679*89869e26Schristos	ret
680*89869e26Schristos.size	bn_add_words,.-.L_bn_add_words_begin
681*89869e26Schristos.globl	bn_sub_words
682*89869e26Schristos.type	bn_sub_words,@function
683*89869e26Schristos.align	16
684*89869e26Schristosbn_sub_words:
685*89869e26Schristos.L_bn_sub_words_begin:
686*89869e26Schristos	pushl	%ebp
687*89869e26Schristos	pushl	%ebx
688*89869e26Schristos	pushl	%esi
689*89869e26Schristos	pushl	%edi
690*89869e26Schristos
691*89869e26Schristos	movl	20(%esp),%ebx
692*89869e26Schristos	movl	24(%esp),%esi
693*89869e26Schristos	movl	28(%esp),%edi
694*89869e26Schristos	movl	32(%esp),%ebp
695*89869e26Schristos	xorl	%eax,%eax
696*89869e26Schristos	andl	$4294967288,%ebp
697*89869e26Schristos	jz	.L014aw_finish
698*89869e26Schristos.L015aw_loop:
699*89869e26Schristos
700*89869e26Schristos	movl	(%esi),%ecx
701*89869e26Schristos	movl	(%edi),%edx
702*89869e26Schristos	subl	%eax,%ecx
703*89869e26Schristos	movl	$0,%eax
704*89869e26Schristos	adcl	%eax,%eax
705*89869e26Schristos	subl	%edx,%ecx
706*89869e26Schristos	adcl	$0,%eax
707*89869e26Schristos	movl	%ecx,(%ebx)
708*89869e26Schristos
709*89869e26Schristos	movl	4(%esi),%ecx
710*89869e26Schristos	movl	4(%edi),%edx
711*89869e26Schristos	subl	%eax,%ecx
712*89869e26Schristos	movl	$0,%eax
713*89869e26Schristos	adcl	%eax,%eax
714*89869e26Schristos	subl	%edx,%ecx
715*89869e26Schristos	adcl	$0,%eax
716*89869e26Schristos	movl	%ecx,4(%ebx)
717*89869e26Schristos
718*89869e26Schristos	movl	8(%esi),%ecx
719*89869e26Schristos	movl	8(%edi),%edx
720*89869e26Schristos	subl	%eax,%ecx
721*89869e26Schristos	movl	$0,%eax
722*89869e26Schristos	adcl	%eax,%eax
723*89869e26Schristos	subl	%edx,%ecx
724*89869e26Schristos	adcl	$0,%eax
725*89869e26Schristos	movl	%ecx,8(%ebx)
726*89869e26Schristos
727*89869e26Schristos	movl	12(%esi),%ecx
728*89869e26Schristos	movl	12(%edi),%edx
729*89869e26Schristos	subl	%eax,%ecx
730*89869e26Schristos	movl	$0,%eax
731*89869e26Schristos	adcl	%eax,%eax
732*89869e26Schristos	subl	%edx,%ecx
733*89869e26Schristos	adcl	$0,%eax
734*89869e26Schristos	movl	%ecx,12(%ebx)
735*89869e26Schristos
736*89869e26Schristos	movl	16(%esi),%ecx
737*89869e26Schristos	movl	16(%edi),%edx
738*89869e26Schristos	subl	%eax,%ecx
739*89869e26Schristos	movl	$0,%eax
740*89869e26Schristos	adcl	%eax,%eax
741*89869e26Schristos	subl	%edx,%ecx
742*89869e26Schristos	adcl	$0,%eax
743*89869e26Schristos	movl	%ecx,16(%ebx)
744*89869e26Schristos
745*89869e26Schristos	movl	20(%esi),%ecx
746*89869e26Schristos	movl	20(%edi),%edx
747*89869e26Schristos	subl	%eax,%ecx
748*89869e26Schristos	movl	$0,%eax
749*89869e26Schristos	adcl	%eax,%eax
750*89869e26Schristos	subl	%edx,%ecx
751*89869e26Schristos	adcl	$0,%eax
752*89869e26Schristos	movl	%ecx,20(%ebx)
753*89869e26Schristos
754*89869e26Schristos	movl	24(%esi),%ecx
755*89869e26Schristos	movl	24(%edi),%edx
756*89869e26Schristos	subl	%eax,%ecx
757*89869e26Schristos	movl	$0,%eax
758*89869e26Schristos	adcl	%eax,%eax
759*89869e26Schristos	subl	%edx,%ecx
760*89869e26Schristos	adcl	$0,%eax
761*89869e26Schristos	movl	%ecx,24(%ebx)
762*89869e26Schristos
763*89869e26Schristos	movl	28(%esi),%ecx
764*89869e26Schristos	movl	28(%edi),%edx
765*89869e26Schristos	subl	%eax,%ecx
766*89869e26Schristos	movl	$0,%eax
767*89869e26Schristos	adcl	%eax,%eax
768*89869e26Schristos	subl	%edx,%ecx
769*89869e26Schristos	adcl	$0,%eax
770*89869e26Schristos	movl	%ecx,28(%ebx)
771*89869e26Schristos
772*89869e26Schristos	addl	$32,%esi
773*89869e26Schristos	addl	$32,%edi
774*89869e26Schristos	addl	$32,%ebx
775*89869e26Schristos	subl	$8,%ebp
776*89869e26Schristos	jnz	.L015aw_loop
777*89869e26Schristos.L014aw_finish:
778*89869e26Schristos	movl	32(%esp),%ebp
779*89869e26Schristos	andl	$7,%ebp
780*89869e26Schristos	jz	.L016aw_end
781*89869e26Schristos
782*89869e26Schristos	movl	(%esi),%ecx
783*89869e26Schristos	movl	(%edi),%edx
784*89869e26Schristos	subl	%eax,%ecx
785*89869e26Schristos	movl	$0,%eax
786*89869e26Schristos	adcl	%eax,%eax
787*89869e26Schristos	subl	%edx,%ecx
788*89869e26Schristos	adcl	$0,%eax
789*89869e26Schristos	decl	%ebp
790*89869e26Schristos	movl	%ecx,(%ebx)
791*89869e26Schristos	jz	.L016aw_end
792*89869e26Schristos
793*89869e26Schristos	movl	4(%esi),%ecx
794*89869e26Schristos	movl	4(%edi),%edx
795*89869e26Schristos	subl	%eax,%ecx
796*89869e26Schristos	movl	$0,%eax
797*89869e26Schristos	adcl	%eax,%eax
798*89869e26Schristos	subl	%edx,%ecx
799*89869e26Schristos	adcl	$0,%eax
800*89869e26Schristos	decl	%ebp
801*89869e26Schristos	movl	%ecx,4(%ebx)
802*89869e26Schristos	jz	.L016aw_end
803*89869e26Schristos
804*89869e26Schristos	movl	8(%esi),%ecx
805*89869e26Schristos	movl	8(%edi),%edx
806*89869e26Schristos	subl	%eax,%ecx
807*89869e26Schristos	movl	$0,%eax
808*89869e26Schristos	adcl	%eax,%eax
809*89869e26Schristos	subl	%edx,%ecx
810*89869e26Schristos	adcl	$0,%eax
811*89869e26Schristos	decl	%ebp
812*89869e26Schristos	movl	%ecx,8(%ebx)
813*89869e26Schristos	jz	.L016aw_end
814*89869e26Schristos
815*89869e26Schristos	movl	12(%esi),%ecx
816*89869e26Schristos	movl	12(%edi),%edx
817*89869e26Schristos	subl	%eax,%ecx
818*89869e26Schristos	movl	$0,%eax
819*89869e26Schristos	adcl	%eax,%eax
820*89869e26Schristos	subl	%edx,%ecx
821*89869e26Schristos	adcl	$0,%eax
822*89869e26Schristos	decl	%ebp
823*89869e26Schristos	movl	%ecx,12(%ebx)
824*89869e26Schristos	jz	.L016aw_end
825*89869e26Schristos
826*89869e26Schristos	movl	16(%esi),%ecx
827*89869e26Schristos	movl	16(%edi),%edx
828*89869e26Schristos	subl	%eax,%ecx
829*89869e26Schristos	movl	$0,%eax
830*89869e26Schristos	adcl	%eax,%eax
831*89869e26Schristos	subl	%edx,%ecx
832*89869e26Schristos	adcl	$0,%eax
833*89869e26Schristos	decl	%ebp
834*89869e26Schristos	movl	%ecx,16(%ebx)
835*89869e26Schristos	jz	.L016aw_end
836*89869e26Schristos
837*89869e26Schristos	movl	20(%esi),%ecx
838*89869e26Schristos	movl	20(%edi),%edx
839*89869e26Schristos	subl	%eax,%ecx
840*89869e26Schristos	movl	$0,%eax
841*89869e26Schristos	adcl	%eax,%eax
842*89869e26Schristos	subl	%edx,%ecx
843*89869e26Schristos	adcl	$0,%eax
844*89869e26Schristos	decl	%ebp
845*89869e26Schristos	movl	%ecx,20(%ebx)
846*89869e26Schristos	jz	.L016aw_end
847*89869e26Schristos
848*89869e26Schristos	movl	24(%esi),%ecx
849*89869e26Schristos	movl	24(%edi),%edx
850*89869e26Schristos	subl	%eax,%ecx
851*89869e26Schristos	movl	$0,%eax
852*89869e26Schristos	adcl	%eax,%eax
853*89869e26Schristos	subl	%edx,%ecx
854*89869e26Schristos	adcl	$0,%eax
855*89869e26Schristos	movl	%ecx,24(%ebx)
856*89869e26Schristos.L016aw_end:
857*89869e26Schristos	popl	%edi
858*89869e26Schristos	popl	%esi
859*89869e26Schristos	popl	%ebx
860*89869e26Schristos	popl	%ebp
861*89869e26Schristos	ret
862*89869e26Schristos.size	bn_sub_words,.-.L_bn_sub_words_begin
863*89869e26Schristos.globl	bn_mul_comba8
864*89869e26Schristos.type	bn_mul_comba8,@function
865*89869e26Schristos.align	16
866*89869e26Schristosbn_mul_comba8:
867*89869e26Schristos.L_bn_mul_comba8_begin:
868*89869e26Schristos	pushl	%esi
869*89869e26Schristos	movl	12(%esp),%esi
870*89869e26Schristos	pushl	%edi
871*89869e26Schristos	movl	20(%esp),%edi
872*89869e26Schristos	pushl	%ebp
873*89869e26Schristos	pushl	%ebx
874*89869e26Schristos	xorl	%ebx,%ebx
875*89869e26Schristos	movl	(%esi),%eax
876*89869e26Schristos	xorl	%ecx,%ecx
877*89869e26Schristos	movl	(%edi),%edx
878*89869e26Schristos
879*89869e26Schristos	xorl	%ebp,%ebp
880*89869e26Schristos
881*89869e26Schristos	mull	%edx
882*89869e26Schristos	addl	%eax,%ebx
883*89869e26Schristos	movl	20(%esp),%eax
884*89869e26Schristos	adcl	%edx,%ecx
885*89869e26Schristos	movl	(%edi),%edx
886*89869e26Schristos	adcl	$0,%ebp
887*89869e26Schristos	movl	%ebx,(%eax)
888*89869e26Schristos	movl	4(%esi),%eax
889*89869e26Schristos
890*89869e26Schristos
891*89869e26Schristos	xorl	%ebx,%ebx
892*89869e26Schristos
893*89869e26Schristos	mull	%edx
894*89869e26Schristos	addl	%eax,%ecx
895*89869e26Schristos	movl	(%esi),%eax
896*89869e26Schristos	adcl	%edx,%ebp
897*89869e26Schristos	movl	4(%edi),%edx
898*89869e26Schristos	adcl	$0,%ebx
899*89869e26Schristos
900*89869e26Schristos	mull	%edx
901*89869e26Schristos	addl	%eax,%ecx
902*89869e26Schristos	movl	20(%esp),%eax
903*89869e26Schristos	adcl	%edx,%ebp
904*89869e26Schristos	movl	(%edi),%edx
905*89869e26Schristos	adcl	$0,%ebx
906*89869e26Schristos	movl	%ecx,4(%eax)
907*89869e26Schristos	movl	8(%esi),%eax
908*89869e26Schristos
909*89869e26Schristos
910*89869e26Schristos	xorl	%ecx,%ecx
911*89869e26Schristos
912*89869e26Schristos	mull	%edx
913*89869e26Schristos	addl	%eax,%ebp
914*89869e26Schristos	movl	4(%esi),%eax
915*89869e26Schristos	adcl	%edx,%ebx
916*89869e26Schristos	movl	4(%edi),%edx
917*89869e26Schristos	adcl	$0,%ecx
918*89869e26Schristos
919*89869e26Schristos	mull	%edx
920*89869e26Schristos	addl	%eax,%ebp
921*89869e26Schristos	movl	(%esi),%eax
922*89869e26Schristos	adcl	%edx,%ebx
923*89869e26Schristos	movl	8(%edi),%edx
924*89869e26Schristos	adcl	$0,%ecx
925*89869e26Schristos
926*89869e26Schristos	mull	%edx
927*89869e26Schristos	addl	%eax,%ebp
928*89869e26Schristos	movl	20(%esp),%eax
929*89869e26Schristos	adcl	%edx,%ebx
930*89869e26Schristos	movl	(%edi),%edx
931*89869e26Schristos	adcl	$0,%ecx
932*89869e26Schristos	movl	%ebp,8(%eax)
933*89869e26Schristos	movl	12(%esi),%eax
934*89869e26Schristos
935*89869e26Schristos
936*89869e26Schristos	xorl	%ebp,%ebp
937*89869e26Schristos
938*89869e26Schristos	mull	%edx
939*89869e26Schristos	addl	%eax,%ebx
940*89869e26Schristos	movl	8(%esi),%eax
941*89869e26Schristos	adcl	%edx,%ecx
942*89869e26Schristos	movl	4(%edi),%edx
943*89869e26Schristos	adcl	$0,%ebp
944*89869e26Schristos
945*89869e26Schristos	mull	%edx
946*89869e26Schristos	addl	%eax,%ebx
947*89869e26Schristos	movl	4(%esi),%eax
948*89869e26Schristos	adcl	%edx,%ecx
949*89869e26Schristos	movl	8(%edi),%edx
950*89869e26Schristos	adcl	$0,%ebp
951*89869e26Schristos
952*89869e26Schristos	mull	%edx
953*89869e26Schristos	addl	%eax,%ebx
954*89869e26Schristos	movl	(%esi),%eax
955*89869e26Schristos	adcl	%edx,%ecx
956*89869e26Schristos	movl	12(%edi),%edx
957*89869e26Schristos	adcl	$0,%ebp
958*89869e26Schristos
959*89869e26Schristos	mull	%edx
960*89869e26Schristos	addl	%eax,%ebx
961*89869e26Schristos	movl	20(%esp),%eax
962*89869e26Schristos	adcl	%edx,%ecx
963*89869e26Schristos	movl	(%edi),%edx
964*89869e26Schristos	adcl	$0,%ebp
965*89869e26Schristos	movl	%ebx,12(%eax)
966*89869e26Schristos	movl	16(%esi),%eax
967*89869e26Schristos
968*89869e26Schristos
969*89869e26Schristos	xorl	%ebx,%ebx
970*89869e26Schristos
971*89869e26Schristos	mull	%edx
972*89869e26Schristos	addl	%eax,%ecx
973*89869e26Schristos	movl	12(%esi),%eax
974*89869e26Schristos	adcl	%edx,%ebp
975*89869e26Schristos	movl	4(%edi),%edx
976*89869e26Schristos	adcl	$0,%ebx
977*89869e26Schristos
978*89869e26Schristos	mull	%edx
979*89869e26Schristos	addl	%eax,%ecx
980*89869e26Schristos	movl	8(%esi),%eax
981*89869e26Schristos	adcl	%edx,%ebp
982*89869e26Schristos	movl	8(%edi),%edx
983*89869e26Schristos	adcl	$0,%ebx
984*89869e26Schristos
985*89869e26Schristos	mull	%edx
986*89869e26Schristos	addl	%eax,%ecx
987*89869e26Schristos	movl	4(%esi),%eax
988*89869e26Schristos	adcl	%edx,%ebp
989*89869e26Schristos	movl	12(%edi),%edx
990*89869e26Schristos	adcl	$0,%ebx
991*89869e26Schristos
992*89869e26Schristos	mull	%edx
993*89869e26Schristos	addl	%eax,%ecx
994*89869e26Schristos	movl	(%esi),%eax
995*89869e26Schristos	adcl	%edx,%ebp
996*89869e26Schristos	movl	16(%edi),%edx
997*89869e26Schristos	adcl	$0,%ebx
998*89869e26Schristos
999*89869e26Schristos	mull	%edx
1000*89869e26Schristos	addl	%eax,%ecx
1001*89869e26Schristos	movl	20(%esp),%eax
1002*89869e26Schristos	adcl	%edx,%ebp
1003*89869e26Schristos	movl	(%edi),%edx
1004*89869e26Schristos	adcl	$0,%ebx
1005*89869e26Schristos	movl	%ecx,16(%eax)
1006*89869e26Schristos	movl	20(%esi),%eax
1007*89869e26Schristos
1008*89869e26Schristos
1009*89869e26Schristos	xorl	%ecx,%ecx
1010*89869e26Schristos
1011*89869e26Schristos	mull	%edx
1012*89869e26Schristos	addl	%eax,%ebp
1013*89869e26Schristos	movl	16(%esi),%eax
1014*89869e26Schristos	adcl	%edx,%ebx
1015*89869e26Schristos	movl	4(%edi),%edx
1016*89869e26Schristos	adcl	$0,%ecx
1017*89869e26Schristos
1018*89869e26Schristos	mull	%edx
1019*89869e26Schristos	addl	%eax,%ebp
1020*89869e26Schristos	movl	12(%esi),%eax
1021*89869e26Schristos	adcl	%edx,%ebx
1022*89869e26Schristos	movl	8(%edi),%edx
1023*89869e26Schristos	adcl	$0,%ecx
1024*89869e26Schristos
1025*89869e26Schristos	mull	%edx
1026*89869e26Schristos	addl	%eax,%ebp
1027*89869e26Schristos	movl	8(%esi),%eax
1028*89869e26Schristos	adcl	%edx,%ebx
1029*89869e26Schristos	movl	12(%edi),%edx
1030*89869e26Schristos	adcl	$0,%ecx
1031*89869e26Schristos
1032*89869e26Schristos	mull	%edx
1033*89869e26Schristos	addl	%eax,%ebp
1034*89869e26Schristos	movl	4(%esi),%eax
1035*89869e26Schristos	adcl	%edx,%ebx
1036*89869e26Schristos	movl	16(%edi),%edx
1037*89869e26Schristos	adcl	$0,%ecx
1038*89869e26Schristos
1039*89869e26Schristos	mull	%edx
1040*89869e26Schristos	addl	%eax,%ebp
1041*89869e26Schristos	movl	(%esi),%eax
1042*89869e26Schristos	adcl	%edx,%ebx
1043*89869e26Schristos	movl	20(%edi),%edx
1044*89869e26Schristos	adcl	$0,%ecx
1045*89869e26Schristos
1046*89869e26Schristos	mull	%edx
1047*89869e26Schristos	addl	%eax,%ebp
1048*89869e26Schristos	movl	20(%esp),%eax
1049*89869e26Schristos	adcl	%edx,%ebx
1050*89869e26Schristos	movl	(%edi),%edx
1051*89869e26Schristos	adcl	$0,%ecx
1052*89869e26Schristos	movl	%ebp,20(%eax)
1053*89869e26Schristos	movl	24(%esi),%eax
1054*89869e26Schristos
1055*89869e26Schristos
1056*89869e26Schristos	xorl	%ebp,%ebp
1057*89869e26Schristos
1058*89869e26Schristos	mull	%edx
1059*89869e26Schristos	addl	%eax,%ebx
1060*89869e26Schristos	movl	20(%esi),%eax
1061*89869e26Schristos	adcl	%edx,%ecx
1062*89869e26Schristos	movl	4(%edi),%edx
1063*89869e26Schristos	adcl	$0,%ebp
1064*89869e26Schristos
1065*89869e26Schristos	mull	%edx
1066*89869e26Schristos	addl	%eax,%ebx
1067*89869e26Schristos	movl	16(%esi),%eax
1068*89869e26Schristos	adcl	%edx,%ecx
1069*89869e26Schristos	movl	8(%edi),%edx
1070*89869e26Schristos	adcl	$0,%ebp
1071*89869e26Schristos
1072*89869e26Schristos	mull	%edx
1073*89869e26Schristos	addl	%eax,%ebx
1074*89869e26Schristos	movl	12(%esi),%eax
1075*89869e26Schristos	adcl	%edx,%ecx
1076*89869e26Schristos	movl	12(%edi),%edx
1077*89869e26Schristos	adcl	$0,%ebp
1078*89869e26Schristos
1079*89869e26Schristos	mull	%edx
1080*89869e26Schristos	addl	%eax,%ebx
1081*89869e26Schristos	movl	8(%esi),%eax
1082*89869e26Schristos	adcl	%edx,%ecx
1083*89869e26Schristos	movl	16(%edi),%edx
1084*89869e26Schristos	adcl	$0,%ebp
1085*89869e26Schristos
1086*89869e26Schristos	mull	%edx
1087*89869e26Schristos	addl	%eax,%ebx
1088*89869e26Schristos	movl	4(%esi),%eax
1089*89869e26Schristos	adcl	%edx,%ecx
1090*89869e26Schristos	movl	20(%edi),%edx
1091*89869e26Schristos	adcl	$0,%ebp
1092*89869e26Schristos
1093*89869e26Schristos	mull	%edx
1094*89869e26Schristos	addl	%eax,%ebx
1095*89869e26Schristos	movl	(%esi),%eax
1096*89869e26Schristos	adcl	%edx,%ecx
1097*89869e26Schristos	movl	24(%edi),%edx
1098*89869e26Schristos	adcl	$0,%ebp
1099*89869e26Schristos
1100*89869e26Schristos	mull	%edx
1101*89869e26Schristos	addl	%eax,%ebx
1102*89869e26Schristos	movl	20(%esp),%eax
1103*89869e26Schristos	adcl	%edx,%ecx
1104*89869e26Schristos	movl	(%edi),%edx
1105*89869e26Schristos	adcl	$0,%ebp
1106*89869e26Schristos	movl	%ebx,24(%eax)
1107*89869e26Schristos	movl	28(%esi),%eax
1108*89869e26Schristos
1109*89869e26Schristos
1110*89869e26Schristos	xorl	%ebx,%ebx
1111*89869e26Schristos
1112*89869e26Schristos	mull	%edx
1113*89869e26Schristos	addl	%eax,%ecx
1114*89869e26Schristos	movl	24(%esi),%eax
1115*89869e26Schristos	adcl	%edx,%ebp
1116*89869e26Schristos	movl	4(%edi),%edx
1117*89869e26Schristos	adcl	$0,%ebx
1118*89869e26Schristos
1119*89869e26Schristos	mull	%edx
1120*89869e26Schristos	addl	%eax,%ecx
1121*89869e26Schristos	movl	20(%esi),%eax
1122*89869e26Schristos	adcl	%edx,%ebp
1123*89869e26Schristos	movl	8(%edi),%edx
1124*89869e26Schristos	adcl	$0,%ebx
1125*89869e26Schristos
1126*89869e26Schristos	mull	%edx
1127*89869e26Schristos	addl	%eax,%ecx
1128*89869e26Schristos	movl	16(%esi),%eax
1129*89869e26Schristos	adcl	%edx,%ebp
1130*89869e26Schristos	movl	12(%edi),%edx
1131*89869e26Schristos	adcl	$0,%ebx
1132*89869e26Schristos
1133*89869e26Schristos	mull	%edx
1134*89869e26Schristos	addl	%eax,%ecx
1135*89869e26Schristos	movl	12(%esi),%eax
1136*89869e26Schristos	adcl	%edx,%ebp
1137*89869e26Schristos	movl	16(%edi),%edx
1138*89869e26Schristos	adcl	$0,%ebx
1139*89869e26Schristos
1140*89869e26Schristos	mull	%edx
1141*89869e26Schristos	addl	%eax,%ecx
1142*89869e26Schristos	movl	8(%esi),%eax
1143*89869e26Schristos	adcl	%edx,%ebp
1144*89869e26Schristos	movl	20(%edi),%edx
1145*89869e26Schristos	adcl	$0,%ebx
1146*89869e26Schristos
1147*89869e26Schristos	mull	%edx
1148*89869e26Schristos	addl	%eax,%ecx
1149*89869e26Schristos	movl	4(%esi),%eax
1150*89869e26Schristos	adcl	%edx,%ebp
1151*89869e26Schristos	movl	24(%edi),%edx
1152*89869e26Schristos	adcl	$0,%ebx
1153*89869e26Schristos
1154*89869e26Schristos	mull	%edx
1155*89869e26Schristos	addl	%eax,%ecx
1156*89869e26Schristos	movl	(%esi),%eax
1157*89869e26Schristos	adcl	%edx,%ebp
1158*89869e26Schristos	movl	28(%edi),%edx
1159*89869e26Schristos	adcl	$0,%ebx
1160*89869e26Schristos
1161*89869e26Schristos	mull	%edx
1162*89869e26Schristos	addl	%eax,%ecx
1163*89869e26Schristos	movl	20(%esp),%eax
1164*89869e26Schristos	adcl	%edx,%ebp
1165*89869e26Schristos	movl	4(%edi),%edx
1166*89869e26Schristos	adcl	$0,%ebx
1167*89869e26Schristos	movl	%ecx,28(%eax)
1168*89869e26Schristos	movl	28(%esi),%eax
1169*89869e26Schristos
1170*89869e26Schristos
1171*89869e26Schristos	xorl	%ecx,%ecx
1172*89869e26Schristos
1173*89869e26Schristos	mull	%edx
1174*89869e26Schristos	addl	%eax,%ebp
1175*89869e26Schristos	movl	24(%esi),%eax
1176*89869e26Schristos	adcl	%edx,%ebx
1177*89869e26Schristos	movl	8(%edi),%edx
1178*89869e26Schristos	adcl	$0,%ecx
1179*89869e26Schristos
1180*89869e26Schristos	mull	%edx
1181*89869e26Schristos	addl	%eax,%ebp
1182*89869e26Schristos	movl	20(%esi),%eax
1183*89869e26Schristos	adcl	%edx,%ebx
1184*89869e26Schristos	movl	12(%edi),%edx
1185*89869e26Schristos	adcl	$0,%ecx
1186*89869e26Schristos
1187*89869e26Schristos	mull	%edx
1188*89869e26Schristos	addl	%eax,%ebp
1189*89869e26Schristos	movl	16(%esi),%eax
1190*89869e26Schristos	adcl	%edx,%ebx
1191*89869e26Schristos	movl	16(%edi),%edx
1192*89869e26Schristos	adcl	$0,%ecx
1193*89869e26Schristos
1194*89869e26Schristos	mull	%edx
1195*89869e26Schristos	addl	%eax,%ebp
1196*89869e26Schristos	movl	12(%esi),%eax
1197*89869e26Schristos	adcl	%edx,%ebx
1198*89869e26Schristos	movl	20(%edi),%edx
1199*89869e26Schristos	adcl	$0,%ecx
1200*89869e26Schristos
1201*89869e26Schristos	mull	%edx
1202*89869e26Schristos	addl	%eax,%ebp
1203*89869e26Schristos	movl	8(%esi),%eax
1204*89869e26Schristos	adcl	%edx,%ebx
1205*89869e26Schristos	movl	24(%edi),%edx
1206*89869e26Schristos	adcl	$0,%ecx
1207*89869e26Schristos
1208*89869e26Schristos	mull	%edx
1209*89869e26Schristos	addl	%eax,%ebp
1210*89869e26Schristos	movl	4(%esi),%eax
1211*89869e26Schristos	adcl	%edx,%ebx
1212*89869e26Schristos	movl	28(%edi),%edx
1213*89869e26Schristos	adcl	$0,%ecx
1214*89869e26Schristos
1215*89869e26Schristos	mull	%edx
1216*89869e26Schristos	addl	%eax,%ebp
1217*89869e26Schristos	movl	20(%esp),%eax
1218*89869e26Schristos	adcl	%edx,%ebx
1219*89869e26Schristos	movl	8(%edi),%edx
1220*89869e26Schristos	adcl	$0,%ecx
1221*89869e26Schristos	movl	%ebp,32(%eax)
1222*89869e26Schristos	movl	28(%esi),%eax
1223*89869e26Schristos
1224*89869e26Schristos
1225*89869e26Schristos	xorl	%ebp,%ebp
1226*89869e26Schristos
1227*89869e26Schristos	mull	%edx
1228*89869e26Schristos	addl	%eax,%ebx
1229*89869e26Schristos	movl	24(%esi),%eax
1230*89869e26Schristos	adcl	%edx,%ecx
1231*89869e26Schristos	movl	12(%edi),%edx
1232*89869e26Schristos	adcl	$0,%ebp
1233*89869e26Schristos
1234*89869e26Schristos	mull	%edx
1235*89869e26Schristos	addl	%eax,%ebx
1236*89869e26Schristos	movl	20(%esi),%eax
1237*89869e26Schristos	adcl	%edx,%ecx
1238*89869e26Schristos	movl	16(%edi),%edx
1239*89869e26Schristos	adcl	$0,%ebp
1240*89869e26Schristos
1241*89869e26Schristos	mull	%edx
1242*89869e26Schristos	addl	%eax,%ebx
1243*89869e26Schristos	movl	16(%esi),%eax
1244*89869e26Schristos	adcl	%edx,%ecx
1245*89869e26Schristos	movl	20(%edi),%edx
1246*89869e26Schristos	adcl	$0,%ebp
1247*89869e26Schristos
1248*89869e26Schristos	mull	%edx
1249*89869e26Schristos	addl	%eax,%ebx
1250*89869e26Schristos	movl	12(%esi),%eax
1251*89869e26Schristos	adcl	%edx,%ecx
1252*89869e26Schristos	movl	24(%edi),%edx
1253*89869e26Schristos	adcl	$0,%ebp
1254*89869e26Schristos
1255*89869e26Schristos	mull	%edx
1256*89869e26Schristos	addl	%eax,%ebx
1257*89869e26Schristos	movl	8(%esi),%eax
1258*89869e26Schristos	adcl	%edx,%ecx
1259*89869e26Schristos	movl	28(%edi),%edx
1260*89869e26Schristos	adcl	$0,%ebp
1261*89869e26Schristos
1262*89869e26Schristos	mull	%edx
1263*89869e26Schristos	addl	%eax,%ebx
1264*89869e26Schristos	movl	20(%esp),%eax
1265*89869e26Schristos	adcl	%edx,%ecx
1266*89869e26Schristos	movl	12(%edi),%edx
1267*89869e26Schristos	adcl	$0,%ebp
1268*89869e26Schristos	movl	%ebx,36(%eax)
1269*89869e26Schristos	movl	28(%esi),%eax
1270*89869e26Schristos
1271*89869e26Schristos
1272*89869e26Schristos	xorl	%ebx,%ebx
1273*89869e26Schristos
1274*89869e26Schristos	mull	%edx
1275*89869e26Schristos	addl	%eax,%ecx
1276*89869e26Schristos	movl	24(%esi),%eax
1277*89869e26Schristos	adcl	%edx,%ebp
1278*89869e26Schristos	movl	16(%edi),%edx
1279*89869e26Schristos	adcl	$0,%ebx
1280*89869e26Schristos
1281*89869e26Schristos	mull	%edx
1282*89869e26Schristos	addl	%eax,%ecx
1283*89869e26Schristos	movl	20(%esi),%eax
1284*89869e26Schristos	adcl	%edx,%ebp
1285*89869e26Schristos	movl	20(%edi),%edx
1286*89869e26Schristos	adcl	$0,%ebx
1287*89869e26Schristos
1288*89869e26Schristos	mull	%edx
1289*89869e26Schristos	addl	%eax,%ecx
1290*89869e26Schristos	movl	16(%esi),%eax
1291*89869e26Schristos	adcl	%edx,%ebp
1292*89869e26Schristos	movl	24(%edi),%edx
1293*89869e26Schristos	adcl	$0,%ebx
1294*89869e26Schristos
1295*89869e26Schristos	mull	%edx
1296*89869e26Schristos	addl	%eax,%ecx
1297*89869e26Schristos	movl	12(%esi),%eax
1298*89869e26Schristos	adcl	%edx,%ebp
1299*89869e26Schristos	movl	28(%edi),%edx
1300*89869e26Schristos	adcl	$0,%ebx
1301*89869e26Schristos
1302*89869e26Schristos	mull	%edx
1303*89869e26Schristos	addl	%eax,%ecx
1304*89869e26Schristos	movl	20(%esp),%eax
1305*89869e26Schristos	adcl	%edx,%ebp
1306*89869e26Schristos	movl	16(%edi),%edx
1307*89869e26Schristos	adcl	$0,%ebx
1308*89869e26Schristos	movl	%ecx,40(%eax)
1309*89869e26Schristos	movl	28(%esi),%eax
1310*89869e26Schristos
1311*89869e26Schristos
1312*89869e26Schristos	xorl	%ecx,%ecx
1313*89869e26Schristos
1314*89869e26Schristos	mull	%edx
1315*89869e26Schristos	addl	%eax,%ebp
1316*89869e26Schristos	movl	24(%esi),%eax
1317*89869e26Schristos	adcl	%edx,%ebx
1318*89869e26Schristos	movl	20(%edi),%edx
1319*89869e26Schristos	adcl	$0,%ecx
1320*89869e26Schristos
1321*89869e26Schristos	mull	%edx
1322*89869e26Schristos	addl	%eax,%ebp
1323*89869e26Schristos	movl	20(%esi),%eax
1324*89869e26Schristos	adcl	%edx,%ebx
1325*89869e26Schristos	movl	24(%edi),%edx
1326*89869e26Schristos	adcl	$0,%ecx
1327*89869e26Schristos
1328*89869e26Schristos	mull	%edx
1329*89869e26Schristos	addl	%eax,%ebp
1330*89869e26Schristos	movl	16(%esi),%eax
1331*89869e26Schristos	adcl	%edx,%ebx
1332*89869e26Schristos	movl	28(%edi),%edx
1333*89869e26Schristos	adcl	$0,%ecx
1334*89869e26Schristos
1335*89869e26Schristos	mull	%edx
1336*89869e26Schristos	addl	%eax,%ebp
1337*89869e26Schristos	movl	20(%esp),%eax
1338*89869e26Schristos	adcl	%edx,%ebx
1339*89869e26Schristos	movl	20(%edi),%edx
1340*89869e26Schristos	adcl	$0,%ecx
1341*89869e26Schristos	movl	%ebp,44(%eax)
1342*89869e26Schristos	movl	28(%esi),%eax
1343*89869e26Schristos
1344*89869e26Schristos
1345*89869e26Schristos	xorl	%ebp,%ebp
1346*89869e26Schristos
1347*89869e26Schristos	mull	%edx
1348*89869e26Schristos	addl	%eax,%ebx
1349*89869e26Schristos	movl	24(%esi),%eax
1350*89869e26Schristos	adcl	%edx,%ecx
1351*89869e26Schristos	movl	24(%edi),%edx
1352*89869e26Schristos	adcl	$0,%ebp
1353*89869e26Schristos
1354*89869e26Schristos	mull	%edx
1355*89869e26Schristos	addl	%eax,%ebx
1356*89869e26Schristos	movl	20(%esi),%eax
1357*89869e26Schristos	adcl	%edx,%ecx
1358*89869e26Schristos	movl	28(%edi),%edx
1359*89869e26Schristos	adcl	$0,%ebp
1360*89869e26Schristos
1361*89869e26Schristos	mull	%edx
1362*89869e26Schristos	addl	%eax,%ebx
1363*89869e26Schristos	movl	20(%esp),%eax
1364*89869e26Schristos	adcl	%edx,%ecx
1365*89869e26Schristos	movl	24(%edi),%edx
1366*89869e26Schristos	adcl	$0,%ebp
1367*89869e26Schristos	movl	%ebx,48(%eax)
1368*89869e26Schristos	movl	28(%esi),%eax
1369*89869e26Schristos
1370*89869e26Schristos
1371*89869e26Schristos	xorl	%ebx,%ebx
1372*89869e26Schristos
1373*89869e26Schristos	mull	%edx
1374*89869e26Schristos	addl	%eax,%ecx
1375*89869e26Schristos	movl	24(%esi),%eax
1376*89869e26Schristos	adcl	%edx,%ebp
1377*89869e26Schristos	movl	28(%edi),%edx
1378*89869e26Schristos	adcl	$0,%ebx
1379*89869e26Schristos
1380*89869e26Schristos	mull	%edx
1381*89869e26Schristos	addl	%eax,%ecx
1382*89869e26Schristos	movl	20(%esp),%eax
1383*89869e26Schristos	adcl	%edx,%ebp
1384*89869e26Schristos	movl	28(%edi),%edx
1385*89869e26Schristos	adcl	$0,%ebx
1386*89869e26Schristos	movl	%ecx,52(%eax)
1387*89869e26Schristos	movl	28(%esi),%eax
1388*89869e26Schristos
1389*89869e26Schristos
1390*89869e26Schristos	xorl	%ecx,%ecx
1391*89869e26Schristos
1392*89869e26Schristos	mull	%edx
1393*89869e26Schristos	addl	%eax,%ebp
1394*89869e26Schristos	movl	20(%esp),%eax
1395*89869e26Schristos	adcl	%edx,%ebx
1396*89869e26Schristos	adcl	$0,%ecx
1397*89869e26Schristos	movl	%ebp,56(%eax)
1398*89869e26Schristos
1399*89869e26Schristos
1400*89869e26Schristos	movl	%ebx,60(%eax)
1401*89869e26Schristos	popl	%ebx
1402*89869e26Schristos	popl	%ebp
1403*89869e26Schristos	popl	%edi
1404*89869e26Schristos	popl	%esi
1405*89869e26Schristos	ret
1406*89869e26Schristos.size	bn_mul_comba8,.-.L_bn_mul_comba8_begin
1407*89869e26Schristos.globl	bn_mul_comba4
1408*89869e26Schristos.type	bn_mul_comba4,@function
1409*89869e26Schristos.align	16
1410*89869e26Schristosbn_mul_comba4:
1411*89869e26Schristos.L_bn_mul_comba4_begin:
1412*89869e26Schristos	pushl	%esi
1413*89869e26Schristos	movl	12(%esp),%esi
1414*89869e26Schristos	pushl	%edi
1415*89869e26Schristos	movl	20(%esp),%edi
1416*89869e26Schristos	pushl	%ebp
1417*89869e26Schristos	pushl	%ebx
1418*89869e26Schristos	xorl	%ebx,%ebx
1419*89869e26Schristos	movl	(%esi),%eax
1420*89869e26Schristos	xorl	%ecx,%ecx
1421*89869e26Schristos	movl	(%edi),%edx
1422*89869e26Schristos
1423*89869e26Schristos	xorl	%ebp,%ebp
1424*89869e26Schristos
1425*89869e26Schristos	mull	%edx
1426*89869e26Schristos	addl	%eax,%ebx
1427*89869e26Schristos	movl	20(%esp),%eax
1428*89869e26Schristos	adcl	%edx,%ecx
1429*89869e26Schristos	movl	(%edi),%edx
1430*89869e26Schristos	adcl	$0,%ebp
1431*89869e26Schristos	movl	%ebx,(%eax)
1432*89869e26Schristos	movl	4(%esi),%eax
1433*89869e26Schristos
1434*89869e26Schristos
1435*89869e26Schristos	xorl	%ebx,%ebx
1436*89869e26Schristos
1437*89869e26Schristos	mull	%edx
1438*89869e26Schristos	addl	%eax,%ecx
1439*89869e26Schristos	movl	(%esi),%eax
1440*89869e26Schristos	adcl	%edx,%ebp
1441*89869e26Schristos	movl	4(%edi),%edx
1442*89869e26Schristos	adcl	$0,%ebx
1443*89869e26Schristos
1444*89869e26Schristos	mull	%edx
1445*89869e26Schristos	addl	%eax,%ecx
1446*89869e26Schristos	movl	20(%esp),%eax
1447*89869e26Schristos	adcl	%edx,%ebp
1448*89869e26Schristos	movl	(%edi),%edx
1449*89869e26Schristos	adcl	$0,%ebx
1450*89869e26Schristos	movl	%ecx,4(%eax)
1451*89869e26Schristos	movl	8(%esi),%eax
1452*89869e26Schristos
1453*89869e26Schristos
1454*89869e26Schristos	xorl	%ecx,%ecx
1455*89869e26Schristos
1456*89869e26Schristos	mull	%edx
1457*89869e26Schristos	addl	%eax,%ebp
1458*89869e26Schristos	movl	4(%esi),%eax
1459*89869e26Schristos	adcl	%edx,%ebx
1460*89869e26Schristos	movl	4(%edi),%edx
1461*89869e26Schristos	adcl	$0,%ecx
1462*89869e26Schristos
1463*89869e26Schristos	mull	%edx
1464*89869e26Schristos	addl	%eax,%ebp
1465*89869e26Schristos	movl	(%esi),%eax
1466*89869e26Schristos	adcl	%edx,%ebx
1467*89869e26Schristos	movl	8(%edi),%edx
1468*89869e26Schristos	adcl	$0,%ecx
1469*89869e26Schristos
1470*89869e26Schristos	mull	%edx
1471*89869e26Schristos	addl	%eax,%ebp
1472*89869e26Schristos	movl	20(%esp),%eax
1473*89869e26Schristos	adcl	%edx,%ebx
1474*89869e26Schristos	movl	(%edi),%edx
1475*89869e26Schristos	adcl	$0,%ecx
1476*89869e26Schristos	movl	%ebp,8(%eax)
1477*89869e26Schristos	movl	12(%esi),%eax
1478*89869e26Schristos
1479*89869e26Schristos
1480*89869e26Schristos	xorl	%ebp,%ebp
1481*89869e26Schristos
1482*89869e26Schristos	mull	%edx
1483*89869e26Schristos	addl	%eax,%ebx
1484*89869e26Schristos	movl	8(%esi),%eax
1485*89869e26Schristos	adcl	%edx,%ecx
1486*89869e26Schristos	movl	4(%edi),%edx
1487*89869e26Schristos	adcl	$0,%ebp
1488*89869e26Schristos
1489*89869e26Schristos	mull	%edx
1490*89869e26Schristos	addl	%eax,%ebx
1491*89869e26Schristos	movl	4(%esi),%eax
1492*89869e26Schristos	adcl	%edx,%ecx
1493*89869e26Schristos	movl	8(%edi),%edx
1494*89869e26Schristos	adcl	$0,%ebp
1495*89869e26Schristos
1496*89869e26Schristos	mull	%edx
1497*89869e26Schristos	addl	%eax,%ebx
1498*89869e26Schristos	movl	(%esi),%eax
1499*89869e26Schristos	adcl	%edx,%ecx
1500*89869e26Schristos	movl	12(%edi),%edx
1501*89869e26Schristos	adcl	$0,%ebp
1502*89869e26Schristos
1503*89869e26Schristos	mull	%edx
1504*89869e26Schristos	addl	%eax,%ebx
1505*89869e26Schristos	movl	20(%esp),%eax
1506*89869e26Schristos	adcl	%edx,%ecx
1507*89869e26Schristos	movl	4(%edi),%edx
1508*89869e26Schristos	adcl	$0,%ebp
1509*89869e26Schristos	movl	%ebx,12(%eax)
1510*89869e26Schristos	movl	12(%esi),%eax
1511*89869e26Schristos
1512*89869e26Schristos
1513*89869e26Schristos	xorl	%ebx,%ebx
1514*89869e26Schristos
1515*89869e26Schristos	mull	%edx
1516*89869e26Schristos	addl	%eax,%ecx
1517*89869e26Schristos	movl	8(%esi),%eax
1518*89869e26Schristos	adcl	%edx,%ebp
1519*89869e26Schristos	movl	8(%edi),%edx
1520*89869e26Schristos	adcl	$0,%ebx
1521*89869e26Schristos
1522*89869e26Schristos	mull	%edx
1523*89869e26Schristos	addl	%eax,%ecx
1524*89869e26Schristos	movl	4(%esi),%eax
1525*89869e26Schristos	adcl	%edx,%ebp
1526*89869e26Schristos	movl	12(%edi),%edx
1527*89869e26Schristos	adcl	$0,%ebx
1528*89869e26Schristos
1529*89869e26Schristos	mull	%edx
1530*89869e26Schristos	addl	%eax,%ecx
1531*89869e26Schristos	movl	20(%esp),%eax
1532*89869e26Schristos	adcl	%edx,%ebp
1533*89869e26Schristos	movl	8(%edi),%edx
1534*89869e26Schristos	adcl	$0,%ebx
1535*89869e26Schristos	movl	%ecx,16(%eax)
1536*89869e26Schristos	movl	12(%esi),%eax
1537*89869e26Schristos
1538*89869e26Schristos
1539*89869e26Schristos	xorl	%ecx,%ecx
1540*89869e26Schristos
1541*89869e26Schristos	mull	%edx
1542*89869e26Schristos	addl	%eax,%ebp
1543*89869e26Schristos	movl	8(%esi),%eax
1544*89869e26Schristos	adcl	%edx,%ebx
1545*89869e26Schristos	movl	12(%edi),%edx
1546*89869e26Schristos	adcl	$0,%ecx
1547*89869e26Schristos
1548*89869e26Schristos	mull	%edx
1549*89869e26Schristos	addl	%eax,%ebp
1550*89869e26Schristos	movl	20(%esp),%eax
1551*89869e26Schristos	adcl	%edx,%ebx
1552*89869e26Schristos	movl	12(%edi),%edx
1553*89869e26Schristos	adcl	$0,%ecx
1554*89869e26Schristos	movl	%ebp,20(%eax)
1555*89869e26Schristos	movl	12(%esi),%eax
1556*89869e26Schristos
1557*89869e26Schristos
1558*89869e26Schristos	xorl	%ebp,%ebp
1559*89869e26Schristos
1560*89869e26Schristos	mull	%edx
1561*89869e26Schristos	addl	%eax,%ebx
1562*89869e26Schristos	movl	20(%esp),%eax
1563*89869e26Schristos	adcl	%edx,%ecx
1564*89869e26Schristos	adcl	$0,%ebp
1565*89869e26Schristos	movl	%ebx,24(%eax)
1566*89869e26Schristos
1567*89869e26Schristos
1568*89869e26Schristos	movl	%ecx,28(%eax)
1569*89869e26Schristos	popl	%ebx
1570*89869e26Schristos	popl	%ebp
1571*89869e26Schristos	popl	%edi
1572*89869e26Schristos	popl	%esi
1573*89869e26Schristos	ret
1574*89869e26Schristos.size	bn_mul_comba4,.-.L_bn_mul_comba4_begin
1575*89869e26Schristos.globl	bn_sqr_comba8
1576*89869e26Schristos.type	bn_sqr_comba8,@function
1577*89869e26Schristos.align	16
1578*89869e26Schristosbn_sqr_comba8:
1579*89869e26Schristos.L_bn_sqr_comba8_begin:
1580*89869e26Schristos	pushl	%esi
1581*89869e26Schristos	pushl	%edi
1582*89869e26Schristos	pushl	%ebp
1583*89869e26Schristos	pushl	%ebx
1584*89869e26Schristos	movl	20(%esp),%edi
1585*89869e26Schristos	movl	24(%esp),%esi
1586*89869e26Schristos	xorl	%ebx,%ebx
1587*89869e26Schristos	xorl	%ecx,%ecx
1588*89869e26Schristos	movl	(%esi),%eax
1589*89869e26Schristos
1590*89869e26Schristos	xorl	%ebp,%ebp
1591*89869e26Schristos
1592*89869e26Schristos	mull	%eax
1593*89869e26Schristos	addl	%eax,%ebx
1594*89869e26Schristos	adcl	%edx,%ecx
1595*89869e26Schristos	movl	(%esi),%edx
1596*89869e26Schristos	adcl	$0,%ebp
1597*89869e26Schristos	movl	%ebx,(%edi)
1598*89869e26Schristos	movl	4(%esi),%eax
1599*89869e26Schristos
1600*89869e26Schristos
1601*89869e26Schristos	xorl	%ebx,%ebx
1602*89869e26Schristos
1603*89869e26Schristos	mull	%edx
1604*89869e26Schristos	addl	%eax,%eax
1605*89869e26Schristos	adcl	%edx,%edx
1606*89869e26Schristos	adcl	$0,%ebx
1607*89869e26Schristos	addl	%eax,%ecx
1608*89869e26Schristos	adcl	%edx,%ebp
1609*89869e26Schristos	movl	8(%esi),%eax
1610*89869e26Schristos	adcl	$0,%ebx
1611*89869e26Schristos	movl	%ecx,4(%edi)
1612*89869e26Schristos	movl	(%esi),%edx
1613*89869e26Schristos
1614*89869e26Schristos
1615*89869e26Schristos	xorl	%ecx,%ecx
1616*89869e26Schristos
1617*89869e26Schristos	mull	%edx
1618*89869e26Schristos	addl	%eax,%eax
1619*89869e26Schristos	adcl	%edx,%edx
1620*89869e26Schristos	adcl	$0,%ecx
1621*89869e26Schristos	addl	%eax,%ebp
1622*89869e26Schristos	adcl	%edx,%ebx
1623*89869e26Schristos	movl	4(%esi),%eax
1624*89869e26Schristos	adcl	$0,%ecx
1625*89869e26Schristos
1626*89869e26Schristos	mull	%eax
1627*89869e26Schristos	addl	%eax,%ebp
1628*89869e26Schristos	adcl	%edx,%ebx
1629*89869e26Schristos	movl	(%esi),%edx
1630*89869e26Schristos	adcl	$0,%ecx
1631*89869e26Schristos	movl	%ebp,8(%edi)
1632*89869e26Schristos	movl	12(%esi),%eax
1633*89869e26Schristos
1634*89869e26Schristos
1635*89869e26Schristos	xorl	%ebp,%ebp
1636*89869e26Schristos
1637*89869e26Schristos	mull	%edx
1638*89869e26Schristos	addl	%eax,%eax
1639*89869e26Schristos	adcl	%edx,%edx
1640*89869e26Schristos	adcl	$0,%ebp
1641*89869e26Schristos	addl	%eax,%ebx
1642*89869e26Schristos	adcl	%edx,%ecx
1643*89869e26Schristos	movl	8(%esi),%eax
1644*89869e26Schristos	adcl	$0,%ebp
1645*89869e26Schristos	movl	4(%esi),%edx
1646*89869e26Schristos
1647*89869e26Schristos	mull	%edx
1648*89869e26Schristos	addl	%eax,%eax
1649*89869e26Schristos	adcl	%edx,%edx
1650*89869e26Schristos	adcl	$0,%ebp
1651*89869e26Schristos	addl	%eax,%ebx
1652*89869e26Schristos	adcl	%edx,%ecx
1653*89869e26Schristos	movl	16(%esi),%eax
1654*89869e26Schristos	adcl	$0,%ebp
1655*89869e26Schristos	movl	%ebx,12(%edi)
1656*89869e26Schristos	movl	(%esi),%edx
1657*89869e26Schristos
1658*89869e26Schristos
1659*89869e26Schristos	xorl	%ebx,%ebx
1660*89869e26Schristos
1661*89869e26Schristos	mull	%edx
1662*89869e26Schristos	addl	%eax,%eax
1663*89869e26Schristos	adcl	%edx,%edx
1664*89869e26Schristos	adcl	$0,%ebx
1665*89869e26Schristos	addl	%eax,%ecx
1666*89869e26Schristos	adcl	%edx,%ebp
1667*89869e26Schristos	movl	12(%esi),%eax
1668*89869e26Schristos	adcl	$0,%ebx
1669*89869e26Schristos	movl	4(%esi),%edx
1670*89869e26Schristos
1671*89869e26Schristos	mull	%edx
1672*89869e26Schristos	addl	%eax,%eax
1673*89869e26Schristos	adcl	%edx,%edx
1674*89869e26Schristos	adcl	$0,%ebx
1675*89869e26Schristos	addl	%eax,%ecx
1676*89869e26Schristos	adcl	%edx,%ebp
1677*89869e26Schristos	movl	8(%esi),%eax
1678*89869e26Schristos	adcl	$0,%ebx
1679*89869e26Schristos
1680*89869e26Schristos	mull	%eax
1681*89869e26Schristos	addl	%eax,%ecx
1682*89869e26Schristos	adcl	%edx,%ebp
1683*89869e26Schristos	movl	(%esi),%edx
1684*89869e26Schristos	adcl	$0,%ebx
1685*89869e26Schristos	movl	%ecx,16(%edi)
1686*89869e26Schristos	movl	20(%esi),%eax
1687*89869e26Schristos
1688*89869e26Schristos
1689*89869e26Schristos	xorl	%ecx,%ecx
1690*89869e26Schristos
1691*89869e26Schristos	mull	%edx
1692*89869e26Schristos	addl	%eax,%eax
1693*89869e26Schristos	adcl	%edx,%edx
1694*89869e26Schristos	adcl	$0,%ecx
1695*89869e26Schristos	addl	%eax,%ebp
1696*89869e26Schristos	adcl	%edx,%ebx
1697*89869e26Schristos	movl	16(%esi),%eax
1698*89869e26Schristos	adcl	$0,%ecx
1699*89869e26Schristos	movl	4(%esi),%edx
1700*89869e26Schristos
1701*89869e26Schristos	mull	%edx
1702*89869e26Schristos	addl	%eax,%eax
1703*89869e26Schristos	adcl	%edx,%edx
1704*89869e26Schristos	adcl	$0,%ecx
1705*89869e26Schristos	addl	%eax,%ebp
1706*89869e26Schristos	adcl	%edx,%ebx
1707*89869e26Schristos	movl	12(%esi),%eax
1708*89869e26Schristos	adcl	$0,%ecx
1709*89869e26Schristos	movl	8(%esi),%edx
1710*89869e26Schristos
1711*89869e26Schristos	mull	%edx
1712*89869e26Schristos	addl	%eax,%eax
1713*89869e26Schristos	adcl	%edx,%edx
1714*89869e26Schristos	adcl	$0,%ecx
1715*89869e26Schristos	addl	%eax,%ebp
1716*89869e26Schristos	adcl	%edx,%ebx
1717*89869e26Schristos	movl	24(%esi),%eax
1718*89869e26Schristos	adcl	$0,%ecx
1719*89869e26Schristos	movl	%ebp,20(%edi)
1720*89869e26Schristos	movl	(%esi),%edx
1721*89869e26Schristos
1722*89869e26Schristos
1723*89869e26Schristos	xorl	%ebp,%ebp
1724*89869e26Schristos
1725*89869e26Schristos	mull	%edx
1726*89869e26Schristos	addl	%eax,%eax
1727*89869e26Schristos	adcl	%edx,%edx
1728*89869e26Schristos	adcl	$0,%ebp
1729*89869e26Schristos	addl	%eax,%ebx
1730*89869e26Schristos	adcl	%edx,%ecx
1731*89869e26Schristos	movl	20(%esi),%eax
1732*89869e26Schristos	adcl	$0,%ebp
1733*89869e26Schristos	movl	4(%esi),%edx
1734*89869e26Schristos
1735*89869e26Schristos	mull	%edx
1736*89869e26Schristos	addl	%eax,%eax
1737*89869e26Schristos	adcl	%edx,%edx
1738*89869e26Schristos	adcl	$0,%ebp
1739*89869e26Schristos	addl	%eax,%ebx
1740*89869e26Schristos	adcl	%edx,%ecx
1741*89869e26Schristos	movl	16(%esi),%eax
1742*89869e26Schristos	adcl	$0,%ebp
1743*89869e26Schristos	movl	8(%esi),%edx
1744*89869e26Schristos
1745*89869e26Schristos	mull	%edx
1746*89869e26Schristos	addl	%eax,%eax
1747*89869e26Schristos	adcl	%edx,%edx
1748*89869e26Schristos	adcl	$0,%ebp
1749*89869e26Schristos	addl	%eax,%ebx
1750*89869e26Schristos	adcl	%edx,%ecx
1751*89869e26Schristos	movl	12(%esi),%eax
1752*89869e26Schristos	adcl	$0,%ebp
1753*89869e26Schristos
1754*89869e26Schristos	mull	%eax
1755*89869e26Schristos	addl	%eax,%ebx
1756*89869e26Schristos	adcl	%edx,%ecx
1757*89869e26Schristos	movl	(%esi),%edx
1758*89869e26Schristos	adcl	$0,%ebp
1759*89869e26Schristos	movl	%ebx,24(%edi)
1760*89869e26Schristos	movl	28(%esi),%eax
1761*89869e26Schristos
1762*89869e26Schristos
1763*89869e26Schristos	xorl	%ebx,%ebx
1764*89869e26Schristos
1765*89869e26Schristos	mull	%edx
1766*89869e26Schristos	addl	%eax,%eax
1767*89869e26Schristos	adcl	%edx,%edx
1768*89869e26Schristos	adcl	$0,%ebx
1769*89869e26Schristos	addl	%eax,%ecx
1770*89869e26Schristos	adcl	%edx,%ebp
1771*89869e26Schristos	movl	24(%esi),%eax
1772*89869e26Schristos	adcl	$0,%ebx
1773*89869e26Schristos	movl	4(%esi),%edx
1774*89869e26Schristos
1775*89869e26Schristos	mull	%edx
1776*89869e26Schristos	addl	%eax,%eax
1777*89869e26Schristos	adcl	%edx,%edx
1778*89869e26Schristos	adcl	$0,%ebx
1779*89869e26Schristos	addl	%eax,%ecx
1780*89869e26Schristos	adcl	%edx,%ebp
1781*89869e26Schristos	movl	20(%esi),%eax
1782*89869e26Schristos	adcl	$0,%ebx
1783*89869e26Schristos	movl	8(%esi),%edx
1784*89869e26Schristos
1785*89869e26Schristos	mull	%edx
1786*89869e26Schristos	addl	%eax,%eax
1787*89869e26Schristos	adcl	%edx,%edx
1788*89869e26Schristos	adcl	$0,%ebx
1789*89869e26Schristos	addl	%eax,%ecx
1790*89869e26Schristos	adcl	%edx,%ebp
1791*89869e26Schristos	movl	16(%esi),%eax
1792*89869e26Schristos	adcl	$0,%ebx
1793*89869e26Schristos	movl	12(%esi),%edx
1794*89869e26Schristos
1795*89869e26Schristos	mull	%edx
1796*89869e26Schristos	addl	%eax,%eax
1797*89869e26Schristos	adcl	%edx,%edx
1798*89869e26Schristos	adcl	$0,%ebx
1799*89869e26Schristos	addl	%eax,%ecx
1800*89869e26Schristos	adcl	%edx,%ebp
1801*89869e26Schristos	movl	28(%esi),%eax
1802*89869e26Schristos	adcl	$0,%ebx
1803*89869e26Schristos	movl	%ecx,28(%edi)
1804*89869e26Schristos	movl	4(%esi),%edx
1805*89869e26Schristos
1806*89869e26Schristos
1807*89869e26Schristos	xorl	%ecx,%ecx
1808*89869e26Schristos
1809*89869e26Schristos	mull	%edx
1810*89869e26Schristos	addl	%eax,%eax
1811*89869e26Schristos	adcl	%edx,%edx
1812*89869e26Schristos	adcl	$0,%ecx
1813*89869e26Schristos	addl	%eax,%ebp
1814*89869e26Schristos	adcl	%edx,%ebx
1815*89869e26Schristos	movl	24(%esi),%eax
1816*89869e26Schristos	adcl	$0,%ecx
1817*89869e26Schristos	movl	8(%esi),%edx
1818*89869e26Schristos
1819*89869e26Schristos	mull	%edx
1820*89869e26Schristos	addl	%eax,%eax
1821*89869e26Schristos	adcl	%edx,%edx
1822*89869e26Schristos	adcl	$0,%ecx
1823*89869e26Schristos	addl	%eax,%ebp
1824*89869e26Schristos	adcl	%edx,%ebx
1825*89869e26Schristos	movl	20(%esi),%eax
1826*89869e26Schristos	adcl	$0,%ecx
1827*89869e26Schristos	movl	12(%esi),%edx
1828*89869e26Schristos
1829*89869e26Schristos	mull	%edx
1830*89869e26Schristos	addl	%eax,%eax
1831*89869e26Schristos	adcl	%edx,%edx
1832*89869e26Schristos	adcl	$0,%ecx
1833*89869e26Schristos	addl	%eax,%ebp
1834*89869e26Schristos	adcl	%edx,%ebx
1835*89869e26Schristos	movl	16(%esi),%eax
1836*89869e26Schristos	adcl	$0,%ecx
1837*89869e26Schristos
1838*89869e26Schristos	mull	%eax
1839*89869e26Schristos	addl	%eax,%ebp
1840*89869e26Schristos	adcl	%edx,%ebx
1841*89869e26Schristos	movl	8(%esi),%edx
1842*89869e26Schristos	adcl	$0,%ecx
1843*89869e26Schristos	movl	%ebp,32(%edi)
1844*89869e26Schristos	movl	28(%esi),%eax
1845*89869e26Schristos
1846*89869e26Schristos
1847*89869e26Schristos	xorl	%ebp,%ebp
1848*89869e26Schristos
1849*89869e26Schristos	mull	%edx
1850*89869e26Schristos	addl	%eax,%eax
1851*89869e26Schristos	adcl	%edx,%edx
1852*89869e26Schristos	adcl	$0,%ebp
1853*89869e26Schristos	addl	%eax,%ebx
1854*89869e26Schristos	adcl	%edx,%ecx
1855*89869e26Schristos	movl	24(%esi),%eax
1856*89869e26Schristos	adcl	$0,%ebp
1857*89869e26Schristos	movl	12(%esi),%edx
1858*89869e26Schristos
1859*89869e26Schristos	mull	%edx
1860*89869e26Schristos	addl	%eax,%eax
1861*89869e26Schristos	adcl	%edx,%edx
1862*89869e26Schristos	adcl	$0,%ebp
1863*89869e26Schristos	addl	%eax,%ebx
1864*89869e26Schristos	adcl	%edx,%ecx
1865*89869e26Schristos	movl	20(%esi),%eax
1866*89869e26Schristos	adcl	$0,%ebp
1867*89869e26Schristos	movl	16(%esi),%edx
1868*89869e26Schristos
1869*89869e26Schristos	mull	%edx
1870*89869e26Schristos	addl	%eax,%eax
1871*89869e26Schristos	adcl	%edx,%edx
1872*89869e26Schristos	adcl	$0,%ebp
1873*89869e26Schristos	addl	%eax,%ebx
1874*89869e26Schristos	adcl	%edx,%ecx
1875*89869e26Schristos	movl	28(%esi),%eax
1876*89869e26Schristos	adcl	$0,%ebp
1877*89869e26Schristos	movl	%ebx,36(%edi)
1878*89869e26Schristos	movl	12(%esi),%edx
1879*89869e26Schristos
1880*89869e26Schristos
1881*89869e26Schristos	xorl	%ebx,%ebx
1882*89869e26Schristos
1883*89869e26Schristos	mull	%edx
1884*89869e26Schristos	addl	%eax,%eax
1885*89869e26Schristos	adcl	%edx,%edx
1886*89869e26Schristos	adcl	$0,%ebx
1887*89869e26Schristos	addl	%eax,%ecx
1888*89869e26Schristos	adcl	%edx,%ebp
1889*89869e26Schristos	movl	24(%esi),%eax
1890*89869e26Schristos	adcl	$0,%ebx
1891*89869e26Schristos	movl	16(%esi),%edx
1892*89869e26Schristos
1893*89869e26Schristos	mull	%edx
1894*89869e26Schristos	addl	%eax,%eax
1895*89869e26Schristos	adcl	%edx,%edx
1896*89869e26Schristos	adcl	$0,%ebx
1897*89869e26Schristos	addl	%eax,%ecx
1898*89869e26Schristos	adcl	%edx,%ebp
1899*89869e26Schristos	movl	20(%esi),%eax
1900*89869e26Schristos	adcl	$0,%ebx
1901*89869e26Schristos
1902*89869e26Schristos	mull	%eax
1903*89869e26Schristos	addl	%eax,%ecx
1904*89869e26Schristos	adcl	%edx,%ebp
1905*89869e26Schristos	movl	16(%esi),%edx
1906*89869e26Schristos	adcl	$0,%ebx
1907*89869e26Schristos	movl	%ecx,40(%edi)
1908*89869e26Schristos	movl	28(%esi),%eax
1909*89869e26Schristos
1910*89869e26Schristos
1911*89869e26Schristos	xorl	%ecx,%ecx
1912*89869e26Schristos
1913*89869e26Schristos	mull	%edx
1914*89869e26Schristos	addl	%eax,%eax
1915*89869e26Schristos	adcl	%edx,%edx
1916*89869e26Schristos	adcl	$0,%ecx
1917*89869e26Schristos	addl	%eax,%ebp
1918*89869e26Schristos	adcl	%edx,%ebx
1919*89869e26Schristos	movl	24(%esi),%eax
1920*89869e26Schristos	adcl	$0,%ecx
1921*89869e26Schristos	movl	20(%esi),%edx
1922*89869e26Schristos
1923*89869e26Schristos	mull	%edx
1924*89869e26Schristos	addl	%eax,%eax
1925*89869e26Schristos	adcl	%edx,%edx
1926*89869e26Schristos	adcl	$0,%ecx
1927*89869e26Schristos	addl	%eax,%ebp
1928*89869e26Schristos	adcl	%edx,%ebx
1929*89869e26Schristos	movl	28(%esi),%eax
1930*89869e26Schristos	adcl	$0,%ecx
1931*89869e26Schristos	movl	%ebp,44(%edi)
1932*89869e26Schristos	movl	20(%esi),%edx
1933*89869e26Schristos
1934*89869e26Schristos
1935*89869e26Schristos	xorl	%ebp,%ebp
1936*89869e26Schristos
1937*89869e26Schristos	mull	%edx
1938*89869e26Schristos	addl	%eax,%eax
1939*89869e26Schristos	adcl	%edx,%edx
1940*89869e26Schristos	adcl	$0,%ebp
1941*89869e26Schristos	addl	%eax,%ebx
1942*89869e26Schristos	adcl	%edx,%ecx
1943*89869e26Schristos	movl	24(%esi),%eax
1944*89869e26Schristos	adcl	$0,%ebp
1945*89869e26Schristos
1946*89869e26Schristos	mull	%eax
1947*89869e26Schristos	addl	%eax,%ebx
1948*89869e26Schristos	adcl	%edx,%ecx
1949*89869e26Schristos	movl	24(%esi),%edx
1950*89869e26Schristos	adcl	$0,%ebp
1951*89869e26Schristos	movl	%ebx,48(%edi)
1952*89869e26Schristos	movl	28(%esi),%eax
1953*89869e26Schristos
1954*89869e26Schristos
1955*89869e26Schristos	xorl	%ebx,%ebx
1956*89869e26Schristos
1957*89869e26Schristos	mull	%edx
1958*89869e26Schristos	addl	%eax,%eax
1959*89869e26Schristos	adcl	%edx,%edx
1960*89869e26Schristos	adcl	$0,%ebx
1961*89869e26Schristos	addl	%eax,%ecx
1962*89869e26Schristos	adcl	%edx,%ebp
1963*89869e26Schristos	movl	28(%esi),%eax
1964*89869e26Schristos	adcl	$0,%ebx
1965*89869e26Schristos	movl	%ecx,52(%edi)
1966*89869e26Schristos
1967*89869e26Schristos
1968*89869e26Schristos	xorl	%ecx,%ecx
1969*89869e26Schristos
1970*89869e26Schristos	mull	%eax
1971*89869e26Schristos	addl	%eax,%ebp
1972*89869e26Schristos	adcl	%edx,%ebx
1973*89869e26Schristos	adcl	$0,%ecx
1974*89869e26Schristos	movl	%ebp,56(%edi)
1975*89869e26Schristos
1976*89869e26Schristos	movl	%ebx,60(%edi)
1977*89869e26Schristos	popl	%ebx
1978*89869e26Schristos	popl	%ebp
1979*89869e26Schristos	popl	%edi
1980*89869e26Schristos	popl	%esi
1981*89869e26Schristos	ret
1982*89869e26Schristos.size	bn_sqr_comba8,.-.L_bn_sqr_comba8_begin
1983*89869e26Schristos.globl	bn_sqr_comba4
1984*89869e26Schristos.type	bn_sqr_comba4,@function
1985*89869e26Schristos.align	16
1986*89869e26Schristosbn_sqr_comba4:
1987*89869e26Schristos.L_bn_sqr_comba4_begin:
1988*89869e26Schristos	pushl	%esi
1989*89869e26Schristos	pushl	%edi
1990*89869e26Schristos	pushl	%ebp
1991*89869e26Schristos	pushl	%ebx
1992*89869e26Schristos	movl	20(%esp),%edi
1993*89869e26Schristos	movl	24(%esp),%esi
1994*89869e26Schristos	xorl	%ebx,%ebx
1995*89869e26Schristos	xorl	%ecx,%ecx
1996*89869e26Schristos	movl	(%esi),%eax
1997*89869e26Schristos
1998*89869e26Schristos	xorl	%ebp,%ebp
1999*89869e26Schristos
2000*89869e26Schristos	mull	%eax
2001*89869e26Schristos	addl	%eax,%ebx
2002*89869e26Schristos	adcl	%edx,%ecx
2003*89869e26Schristos	movl	(%esi),%edx
2004*89869e26Schristos	adcl	$0,%ebp
2005*89869e26Schristos	movl	%ebx,(%edi)
2006*89869e26Schristos	movl	4(%esi),%eax
2007*89869e26Schristos
2008*89869e26Schristos
2009*89869e26Schristos	xorl	%ebx,%ebx
2010*89869e26Schristos
2011*89869e26Schristos	mull	%edx
2012*89869e26Schristos	addl	%eax,%eax
2013*89869e26Schristos	adcl	%edx,%edx
2014*89869e26Schristos	adcl	$0,%ebx
2015*89869e26Schristos	addl	%eax,%ecx
2016*89869e26Schristos	adcl	%edx,%ebp
2017*89869e26Schristos	movl	8(%esi),%eax
2018*89869e26Schristos	adcl	$0,%ebx
2019*89869e26Schristos	movl	%ecx,4(%edi)
2020*89869e26Schristos	movl	(%esi),%edx
2021*89869e26Schristos
2022*89869e26Schristos
2023*89869e26Schristos	xorl	%ecx,%ecx
2024*89869e26Schristos
2025*89869e26Schristos	mull	%edx
2026*89869e26Schristos	addl	%eax,%eax
2027*89869e26Schristos	adcl	%edx,%edx
2028*89869e26Schristos	adcl	$0,%ecx
2029*89869e26Schristos	addl	%eax,%ebp
2030*89869e26Schristos	adcl	%edx,%ebx
2031*89869e26Schristos	movl	4(%esi),%eax
2032*89869e26Schristos	adcl	$0,%ecx
2033*89869e26Schristos
2034*89869e26Schristos	mull	%eax
2035*89869e26Schristos	addl	%eax,%ebp
2036*89869e26Schristos	adcl	%edx,%ebx
2037*89869e26Schristos	movl	(%esi),%edx
2038*89869e26Schristos	adcl	$0,%ecx
2039*89869e26Schristos	movl	%ebp,8(%edi)
2040*89869e26Schristos	movl	12(%esi),%eax
2041*89869e26Schristos
2042*89869e26Schristos
2043*89869e26Schristos	xorl	%ebp,%ebp
2044*89869e26Schristos
2045*89869e26Schristos	mull	%edx
2046*89869e26Schristos	addl	%eax,%eax
2047*89869e26Schristos	adcl	%edx,%edx
2048*89869e26Schristos	adcl	$0,%ebp
2049*89869e26Schristos	addl	%eax,%ebx
2050*89869e26Schristos	adcl	%edx,%ecx
2051*89869e26Schristos	movl	8(%esi),%eax
2052*89869e26Schristos	adcl	$0,%ebp
2053*89869e26Schristos	movl	4(%esi),%edx
2054*89869e26Schristos
2055*89869e26Schristos	mull	%edx
2056*89869e26Schristos	addl	%eax,%eax
2057*89869e26Schristos	adcl	%edx,%edx
2058*89869e26Schristos	adcl	$0,%ebp
2059*89869e26Schristos	addl	%eax,%ebx
2060*89869e26Schristos	adcl	%edx,%ecx
2061*89869e26Schristos	movl	12(%esi),%eax
2062*89869e26Schristos	adcl	$0,%ebp
2063*89869e26Schristos	movl	%ebx,12(%edi)
2064*89869e26Schristos	movl	4(%esi),%edx
2065*89869e26Schristos
2066*89869e26Schristos
2067*89869e26Schristos	xorl	%ebx,%ebx
2068*89869e26Schristos
2069*89869e26Schristos	mull	%edx
2070*89869e26Schristos	addl	%eax,%eax
2071*89869e26Schristos	adcl	%edx,%edx
2072*89869e26Schristos	adcl	$0,%ebx
2073*89869e26Schristos	addl	%eax,%ecx
2074*89869e26Schristos	adcl	%edx,%ebp
2075*89869e26Schristos	movl	8(%esi),%eax
2076*89869e26Schristos	adcl	$0,%ebx
2077*89869e26Schristos
2078*89869e26Schristos	mull	%eax
2079*89869e26Schristos	addl	%eax,%ecx
2080*89869e26Schristos	adcl	%edx,%ebp
2081*89869e26Schristos	movl	8(%esi),%edx
2082*89869e26Schristos	adcl	$0,%ebx
2083*89869e26Schristos	movl	%ecx,16(%edi)
2084*89869e26Schristos	movl	12(%esi),%eax
2085*89869e26Schristos
2086*89869e26Schristos
2087*89869e26Schristos	xorl	%ecx,%ecx
2088*89869e26Schristos
2089*89869e26Schristos	mull	%edx
2090*89869e26Schristos	addl	%eax,%eax
2091*89869e26Schristos	adcl	%edx,%edx
2092*89869e26Schristos	adcl	$0,%ecx
2093*89869e26Schristos	addl	%eax,%ebp
2094*89869e26Schristos	adcl	%edx,%ebx
2095*89869e26Schristos	movl	12(%esi),%eax
2096*89869e26Schristos	adcl	$0,%ecx
2097*89869e26Schristos	movl	%ebp,20(%edi)
2098*89869e26Schristos
2099*89869e26Schristos
2100*89869e26Schristos	xorl	%ebp,%ebp
2101*89869e26Schristos
2102*89869e26Schristos	mull	%eax
2103*89869e26Schristos	addl	%eax,%ebx
2104*89869e26Schristos	adcl	%edx,%ecx
2105*89869e26Schristos	adcl	$0,%ebp
2106*89869e26Schristos	movl	%ebx,24(%edi)
2107*89869e26Schristos
2108*89869e26Schristos	movl	%ecx,28(%edi)
2109*89869e26Schristos	popl	%ebx
2110*89869e26Schristos	popl	%ebp
2111*89869e26Schristos	popl	%edi
2112*89869e26Schristos	popl	%esi
2113*89869e26Schristos	ret
2114*89869e26Schristos.size	bn_sqr_comba4,.-.L_bn_sqr_comba4_begin
2115