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