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