xref: /freebsd/sys/crypto/openssl/powerpc/poly1305-ppcfp.S (revision 3a60869237b8b315fe66497cf5299ec08b688533)
1*3a608692SPiotr Kubaj/* $FreeBSD$ */
2*3a608692SPiotr Kubaj/* Do not modify. This file is auto-generated from poly1305-ppcfp.pl. */
3*3a608692SPiotr Kubaj.machine	"any"
4*3a608692SPiotr Kubaj.text
5*3a608692SPiotr Kubaj
6*3a608692SPiotr Kubaj.globl	poly1305_init_fpu
7*3a608692SPiotr Kubaj.type	poly1305_init_fpu,@function
8*3a608692SPiotr Kubaj.align	6
9*3a608692SPiotr Kubajpoly1305_init_fpu:
10*3a608692SPiotr Kubaj	stwu	1,-24(1)
11*3a608692SPiotr Kubaj	mflr	6
12*3a608692SPiotr Kubaj	stw	6,28(1)
13*3a608692SPiotr Kubaj
14*3a608692SPiotr Kubaj	bl	.LPICmeup
15*3a608692SPiotr Kubaj
16*3a608692SPiotr Kubaj	xor	0,0,0
17*3a608692SPiotr Kubaj	mtlr	6
18*3a608692SPiotr Kubaj
19*3a608692SPiotr Kubaj	lfd	8,8*0(5)
20*3a608692SPiotr Kubaj	lfd	9,8*1(5)
21*3a608692SPiotr Kubaj	lfd	10,8*2(5)
22*3a608692SPiotr Kubaj	lfd	11,8*3(5)
23*3a608692SPiotr Kubaj	lfd	12,8*4(5)
24*3a608692SPiotr Kubaj	lfd	13,8*5(5)
25*3a608692SPiotr Kubaj
26*3a608692SPiotr Kubaj	stfd	8,8*0(3)
27*3a608692SPiotr Kubaj	stfd	9,8*1(3)
28*3a608692SPiotr Kubaj	stfd	10,8*2(3)
29*3a608692SPiotr Kubaj	stfd	11,8*3(3)
30*3a608692SPiotr Kubaj
31*3a608692SPiotr Kubaj	.long	0x7c040040
32*3a608692SPiotr Kubaj	beq-	.Lno_key
33*3a608692SPiotr Kubaj
34*3a608692SPiotr Kubaj	lfd	6,8*13(5)
35*3a608692SPiotr Kubaj	mffs	7
36*3a608692SPiotr Kubaj
37*3a608692SPiotr Kubaj	stfd	8,8*4(3)
38*3a608692SPiotr Kubaj	stfd	9,8*5(3)
39*3a608692SPiotr Kubaj	stfd	10,8*6(3)
40*3a608692SPiotr Kubaj	stfd	11,8*7(3)
41*3a608692SPiotr Kubaj
42*3a608692SPiotr Kubaj	li	8,4
43*3a608692SPiotr Kubaj	li	9,8
44*3a608692SPiotr Kubaj	li	10,12
45*3a608692SPiotr Kubaj	lwbrx	7,0,4
46*3a608692SPiotr Kubaj	lwbrx	8,8,4
47*3a608692SPiotr Kubaj	lwbrx	9,9,4
48*3a608692SPiotr Kubaj	lwbrx	10,10,4
49*3a608692SPiotr Kubaj
50*3a608692SPiotr Kubaj	lis	11,0xf000
51*3a608692SPiotr Kubaj	ori	12,11,3
52*3a608692SPiotr Kubaj	andc	7,7,11
53*3a608692SPiotr Kubaj	andc	8,8,12
54*3a608692SPiotr Kubaj	andc	9,9,12
55*3a608692SPiotr Kubaj	andc	10,10,12
56*3a608692SPiotr Kubaj
57*3a608692SPiotr Kubaj	stw	7,36(3)
58*3a608692SPiotr Kubaj	stw	8,44(3)
59*3a608692SPiotr Kubaj	stw	9,52(3)
60*3a608692SPiotr Kubaj	stw	10,60(3)
61*3a608692SPiotr Kubaj
62*3a608692SPiotr Kubaj	mtfsf	255,6
63*3a608692SPiotr Kubaj	stfd	8,8*18(3)
64*3a608692SPiotr Kubaj	stfd	9,8*19(3)
65*3a608692SPiotr Kubaj	stfd	10,8*20(3)
66*3a608692SPiotr Kubaj	stfd	11,8*21(3)
67*3a608692SPiotr Kubaj	stfd	12,8*22(3)
68*3a608692SPiotr Kubaj	stfd	13,8*23(3)
69*3a608692SPiotr Kubaj
70*3a608692SPiotr Kubaj	lfd	0,8*4(3)
71*3a608692SPiotr Kubaj	lfd	2,8*5(3)
72*3a608692SPiotr Kubaj	lfd	4,8*6(3)
73*3a608692SPiotr Kubaj	lfd	6,8*7(3)
74*3a608692SPiotr Kubaj
75*3a608692SPiotr Kubaj	fsub	0,0,8
76*3a608692SPiotr Kubaj	fsub	2,2,9
77*3a608692SPiotr Kubaj	fsub	4,4,10
78*3a608692SPiotr Kubaj	fsub	6,6,11
79*3a608692SPiotr Kubaj
80*3a608692SPiotr Kubaj	lfd	8,8*6(5)
81*3a608692SPiotr Kubaj	lfd	9,8*7(5)
82*3a608692SPiotr Kubaj	lfd	10,8*8(5)
83*3a608692SPiotr Kubaj	lfd	11,8*9(5)
84*3a608692SPiotr Kubaj
85*3a608692SPiotr Kubaj	fmul	3,2,13
86*3a608692SPiotr Kubaj	fmul	5,4,13
87*3a608692SPiotr Kubaj	stfd	7,8*15(3)
88*3a608692SPiotr Kubaj	fmul	7,6,13
89*3a608692SPiotr Kubaj
90*3a608692SPiotr Kubaj	fadd	1,0,8
91*3a608692SPiotr Kubaj	stfd	3,8*12(3)
92*3a608692SPiotr Kubaj	fadd	3,2,9
93*3a608692SPiotr Kubaj	stfd	5,8*13(3)
94*3a608692SPiotr Kubaj	fadd	5,4,10
95*3a608692SPiotr Kubaj	stfd	7,8*14(3)
96*3a608692SPiotr Kubaj	fadd	7,6,11
97*3a608692SPiotr Kubaj
98*3a608692SPiotr Kubaj	fsub	1,1,8
99*3a608692SPiotr Kubaj	fsub	3,3,9
100*3a608692SPiotr Kubaj	fsub	5,5,10
101*3a608692SPiotr Kubaj	fsub	7,7,11
102*3a608692SPiotr Kubaj
103*3a608692SPiotr Kubaj	lfd	8,8*10(5)
104*3a608692SPiotr Kubaj	lfd	9,8*11(5)
105*3a608692SPiotr Kubaj	lfd	10,8*12(5)
106*3a608692SPiotr Kubaj
107*3a608692SPiotr Kubaj	fsub	0,0,1
108*3a608692SPiotr Kubaj	fsub	2,2,3
109*3a608692SPiotr Kubaj	fsub	4,4,5
110*3a608692SPiotr Kubaj	fsub	6,6,7
111*3a608692SPiotr Kubaj
112*3a608692SPiotr Kubaj	stfd	1,8*5(3)
113*3a608692SPiotr Kubaj	stfd	3,8*7(3)
114*3a608692SPiotr Kubaj	stfd	5,8*9(3)
115*3a608692SPiotr Kubaj	stfd	7,8*11(3)
116*3a608692SPiotr Kubaj
117*3a608692SPiotr Kubaj	stfd	0,8*4(3)
118*3a608692SPiotr Kubaj	stfd	2,8*6(3)
119*3a608692SPiotr Kubaj	stfd	4,8*8(3)
120*3a608692SPiotr Kubaj	stfd	6,8*10(3)
121*3a608692SPiotr Kubaj
122*3a608692SPiotr Kubaj	lfd	2,8*12(3)
123*3a608692SPiotr Kubaj	lfd	4,8*13(3)
124*3a608692SPiotr Kubaj	lfd	6,8*14(3)
125*3a608692SPiotr Kubaj	lfd	0,8*15(3)
126*3a608692SPiotr Kubaj
127*3a608692SPiotr Kubaj	fadd	3,2,8
128*3a608692SPiotr Kubaj	fadd	5,4,9
129*3a608692SPiotr Kubaj	fadd	7,6,10
130*3a608692SPiotr Kubaj
131*3a608692SPiotr Kubaj	fsub	3,3,8
132*3a608692SPiotr Kubaj	fsub	5,5,9
133*3a608692SPiotr Kubaj	fsub	7,7,10
134*3a608692SPiotr Kubaj
135*3a608692SPiotr Kubaj	fsub	2,2,3
136*3a608692SPiotr Kubaj	fsub	4,4,5
137*3a608692SPiotr Kubaj	fsub	6,6,7
138*3a608692SPiotr Kubaj
139*3a608692SPiotr Kubaj	stfd	3,8*13(3)
140*3a608692SPiotr Kubaj	stfd	5,8*15(3)
141*3a608692SPiotr Kubaj	stfd	7,8*17(3)
142*3a608692SPiotr Kubaj
143*3a608692SPiotr Kubaj	stfd	2,8*12(3)
144*3a608692SPiotr Kubaj	stfd	4,8*14(3)
145*3a608692SPiotr Kubaj	stfd	6,8*16(3)
146*3a608692SPiotr Kubaj
147*3a608692SPiotr Kubaj	mtfsf	255,0
148*3a608692SPiotr Kubaj.Lno_key:
149*3a608692SPiotr Kubaj	xor	3,3,3
150*3a608692SPiotr Kubaj	addi	1,1,24
151*3a608692SPiotr Kubaj	blr
152*3a608692SPiotr Kubaj.long	0
153*3a608692SPiotr Kubaj.byte	0,12,4,1,0x80,0,2,0
154*3a608692SPiotr Kubaj.size	poly1305_init_fpu,.-poly1305_init_fpu
155*3a608692SPiotr Kubaj
156*3a608692SPiotr Kubaj.globl	poly1305_blocks_fpu
157*3a608692SPiotr Kubaj.type	poly1305_blocks_fpu,@function
158*3a608692SPiotr Kubaj.align	4
159*3a608692SPiotr Kubajpoly1305_blocks_fpu:
160*3a608692SPiotr Kubaj	srwi.	5,5,4
161*3a608692SPiotr Kubaj	beq-	.Labort
162*3a608692SPiotr Kubaj
163*3a608692SPiotr Kubaj	stwu	1,-216(1)
164*3a608692SPiotr Kubaj	mflr	0
165*3a608692SPiotr Kubaj	stfd	14,72(1)
166*3a608692SPiotr Kubaj	stfd	15,80(1)
167*3a608692SPiotr Kubaj	stfd	16,88(1)
168*3a608692SPiotr Kubaj	stfd	17,96(1)
169*3a608692SPiotr Kubaj	stfd	18,104(1)
170*3a608692SPiotr Kubaj	stfd	19,112(1)
171*3a608692SPiotr Kubaj	stfd	20,120(1)
172*3a608692SPiotr Kubaj	stfd	21,128(1)
173*3a608692SPiotr Kubaj	stfd	22,136(1)
174*3a608692SPiotr Kubaj	stfd	23,144(1)
175*3a608692SPiotr Kubaj	stfd	24,152(1)
176*3a608692SPiotr Kubaj	stfd	25,160(1)
177*3a608692SPiotr Kubaj	stfd	26,168(1)
178*3a608692SPiotr Kubaj	stfd	27,176(1)
179*3a608692SPiotr Kubaj	stfd	28,184(1)
180*3a608692SPiotr Kubaj	stfd	29,192(1)
181*3a608692SPiotr Kubaj	stfd	30,200(1)
182*3a608692SPiotr Kubaj	stfd	31,208(1)
183*3a608692SPiotr Kubaj	stw	0,220(1)
184*3a608692SPiotr Kubaj
185*3a608692SPiotr Kubaj	xor	0,0,0
186*3a608692SPiotr Kubaj	li	10,1
187*3a608692SPiotr Kubaj	mtctr	5
188*3a608692SPiotr Kubaj	neg	5,5
189*3a608692SPiotr Kubaj	stw	0,56(1)
190*3a608692SPiotr Kubaj	stw	10,60(1)
191*3a608692SPiotr Kubaj
192*3a608692SPiotr Kubaj	lfd	8,8*18(3)
193*3a608692SPiotr Kubaj	lfd	9,8*19(3)
194*3a608692SPiotr Kubaj	lfd	10,8*20(3)
195*3a608692SPiotr Kubaj	lfd	11,8*21(3)
196*3a608692SPiotr Kubaj	lfd	12,8*22(3)
197*3a608692SPiotr Kubaj	lfd	13,8*23(3)
198*3a608692SPiotr Kubaj
199*3a608692SPiotr Kubaj	lfd	0,8*0(3)
200*3a608692SPiotr Kubaj	lfd	2,8*1(3)
201*3a608692SPiotr Kubaj	lfd	4,8*2(3)
202*3a608692SPiotr Kubaj	lfd	6,8*3(3)
203*3a608692SPiotr Kubaj
204*3a608692SPiotr Kubaj	stfd	8,24(1)
205*3a608692SPiotr Kubaj	oris	10,6,18736
206*3a608692SPiotr Kubaj	stfd	9,32(1)
207*3a608692SPiotr Kubaj	stfd	10,40(1)
208*3a608692SPiotr Kubaj	stw	10,48(1)
209*3a608692SPiotr Kubaj
210*3a608692SPiotr Kubaj	li	11,4
211*3a608692SPiotr Kubaj	li	12,8
212*3a608692SPiotr Kubaj	li	6,12
213*3a608692SPiotr Kubaj	lwbrx	7,0,4
214*3a608692SPiotr Kubaj	lwbrx	8,11,4
215*3a608692SPiotr Kubaj	lwbrx	9,12,4
216*3a608692SPiotr Kubaj	lwbrx	10,6,4
217*3a608692SPiotr Kubaj	addi	4,4,16
218*3a608692SPiotr Kubaj
219*3a608692SPiotr Kubaj	stw	7,28(1)
220*3a608692SPiotr Kubaj	stw	8,36(1)
221*3a608692SPiotr Kubaj	stw	9,44(1)
222*3a608692SPiotr Kubaj	stw	10,52(1)
223*3a608692SPiotr Kubaj
224*3a608692SPiotr Kubaj	mffs	28
225*3a608692SPiotr Kubaj	lfd	29,56(1)
226*3a608692SPiotr Kubaj	lfd	14,8*4(3)
227*3a608692SPiotr Kubaj	lfd	15,8*5(3)
228*3a608692SPiotr Kubaj	lfd	16,8*6(3)
229*3a608692SPiotr Kubaj	lfd	17,8*7(3)
230*3a608692SPiotr Kubaj	lfd	18,8*8(3)
231*3a608692SPiotr Kubaj	lfd	19,8*9(3)
232*3a608692SPiotr Kubaj	lfd	24,8*10(3)
233*3a608692SPiotr Kubaj	lfd	25,8*11(3)
234*3a608692SPiotr Kubaj	lfd	26,8*12(3)
235*3a608692SPiotr Kubaj	lfd	27,8*13(3)
236*3a608692SPiotr Kubaj	lfd	20,8*14(3)
237*3a608692SPiotr Kubaj	lfd	21,8*15(3)
238*3a608692SPiotr Kubaj	lfd	22,8*16(3)
239*3a608692SPiotr Kubaj	lfd	23,8*17(3)
240*3a608692SPiotr Kubaj
241*3a608692SPiotr Kubaj	stfd	28,56(1)
242*3a608692SPiotr Kubaj	mtfsf	255,29
243*3a608692SPiotr Kubaj
244*3a608692SPiotr Kubaj	addic	5,5,1
245*3a608692SPiotr Kubaj	addze	0,0
246*3a608692SPiotr Kubaj	slwi.	0,0,4
247*3a608692SPiotr Kubaj	sub	4,4,0
248*3a608692SPiotr Kubaj
249*3a608692SPiotr Kubaj	lfd	28,24(1)
250*3a608692SPiotr Kubaj	lfd	29,32(1)
251*3a608692SPiotr Kubaj	lfd	30,40(1)
252*3a608692SPiotr Kubaj	lfd	31,48(1)
253*3a608692SPiotr Kubaj
254*3a608692SPiotr Kubaj	fsub	0,0,8
255*3a608692SPiotr Kubaj	lwbrx	7,0,4
256*3a608692SPiotr Kubaj	fsub	2,2,9
257*3a608692SPiotr Kubaj	lwbrx	8,11,4
258*3a608692SPiotr Kubaj	fsub	4,4,10
259*3a608692SPiotr Kubaj	lwbrx	9,12,4
260*3a608692SPiotr Kubaj	fsub	6,6,11
261*3a608692SPiotr Kubaj	lwbrx	10,6,4
262*3a608692SPiotr Kubaj
263*3a608692SPiotr Kubaj	fsub	28,28,8
264*3a608692SPiotr Kubaj	addi	4,4,16
265*3a608692SPiotr Kubaj	fsub	29,29,9
266*3a608692SPiotr Kubaj	fsub	30,30,10
267*3a608692SPiotr Kubaj	fsub	31,31,11
268*3a608692SPiotr Kubaj
269*3a608692SPiotr Kubaj	fadd	28,28,0
270*3a608692SPiotr Kubaj	stw	7,28(1)
271*3a608692SPiotr Kubaj	fadd	29,29,2
272*3a608692SPiotr Kubaj	stw	8,36(1)
273*3a608692SPiotr Kubaj	fadd	30,30,4
274*3a608692SPiotr Kubaj	stw	9,44(1)
275*3a608692SPiotr Kubaj	fadd	31,31,6
276*3a608692SPiotr Kubaj	stw	10,52(1)
277*3a608692SPiotr Kubaj
278*3a608692SPiotr Kubaj	b	.Lentry
279*3a608692SPiotr Kubaj
280*3a608692SPiotr Kubaj.align	4
281*3a608692SPiotr Kubaj.Loop:
282*3a608692SPiotr Kubaj	fsub	30,30,8
283*3a608692SPiotr Kubaj	addic	5,5,1
284*3a608692SPiotr Kubaj	fsub	31,31,9
285*3a608692SPiotr Kubaj	addze	0,0
286*3a608692SPiotr Kubaj	fsub	26,26,10
287*3a608692SPiotr Kubaj	slwi.	0,0,4
288*3a608692SPiotr Kubaj	fsub	27,27,11
289*3a608692SPiotr Kubaj	sub	4,4,0
290*3a608692SPiotr Kubaj
291*3a608692SPiotr Kubaj	fadd	0,0,30
292*3a608692SPiotr Kubaj	fadd	1,1,31
293*3a608692SPiotr Kubaj	fadd	4,4,26
294*3a608692SPiotr Kubaj	fadd	5,5,27
295*3a608692SPiotr Kubaj
296*3a608692SPiotr Kubaj
297*3a608692SPiotr Kubaj	fadd	26,2,10
298*3a608692SPiotr Kubaj	lwbrx	7,0,4
299*3a608692SPiotr Kubaj	fadd	27,3,10
300*3a608692SPiotr Kubaj	lwbrx	8,11,4
301*3a608692SPiotr Kubaj	fadd	30,6,12
302*3a608692SPiotr Kubaj	lwbrx	9,12,4
303*3a608692SPiotr Kubaj	fadd	31,7,12
304*3a608692SPiotr Kubaj	lwbrx	10,6,4
305*3a608692SPiotr Kubaj	fadd	24,0,9
306*3a608692SPiotr Kubaj	addi	4,4,16
307*3a608692SPiotr Kubaj	fadd	25,1,9
308*3a608692SPiotr Kubaj	fadd	28,4,11
309*3a608692SPiotr Kubaj	fadd	29,5,11
310*3a608692SPiotr Kubaj
311*3a608692SPiotr Kubaj	fsub	26,26,10
312*3a608692SPiotr Kubaj	stw	7,28(1)
313*3a608692SPiotr Kubaj	fsub	27,27,10
314*3a608692SPiotr Kubaj	stw	8,36(1)
315*3a608692SPiotr Kubaj	fsub	30,30,12
316*3a608692SPiotr Kubaj	stw	9,44(1)
317*3a608692SPiotr Kubaj	fsub	31,31,12
318*3a608692SPiotr Kubaj	stw	10,52(1)
319*3a608692SPiotr Kubaj	fsub	24,24,9
320*3a608692SPiotr Kubaj	fsub	25,25,9
321*3a608692SPiotr Kubaj	fsub	28,28,11
322*3a608692SPiotr Kubaj	fsub	29,29,11
323*3a608692SPiotr Kubaj
324*3a608692SPiotr Kubaj	fsub	2,2,26
325*3a608692SPiotr Kubaj	fsub	3,3,27
326*3a608692SPiotr Kubaj	fsub	6,6,30
327*3a608692SPiotr Kubaj	fsub	7,7,31
328*3a608692SPiotr Kubaj	fsub	4,4,28
329*3a608692SPiotr Kubaj	fsub	5,5,29
330*3a608692SPiotr Kubaj	fsub	0,0,24
331*3a608692SPiotr Kubaj	fsub	1,1,25
332*3a608692SPiotr Kubaj
333*3a608692SPiotr Kubaj	fadd	2,2,24
334*3a608692SPiotr Kubaj	fadd	3,3,25
335*3a608692SPiotr Kubaj	fadd	6,6,28
336*3a608692SPiotr Kubaj	fadd	7,7,29
337*3a608692SPiotr Kubaj	fadd	4,4,26
338*3a608692SPiotr Kubaj	fadd	5,5,27
339*3a608692SPiotr Kubaj	fmadd	0,30,13,0
340*3a608692SPiotr Kubaj	fmadd	1,31,13,1
341*3a608692SPiotr Kubaj
342*3a608692SPiotr Kubaj	fadd	29,2,3
343*3a608692SPiotr Kubaj	lfd	26,8*12(3)
344*3a608692SPiotr Kubaj	fadd	31,6,7
345*3a608692SPiotr Kubaj	lfd	27,8*13(3)
346*3a608692SPiotr Kubaj	fadd	30,4,5
347*3a608692SPiotr Kubaj	lfd	24,8*10(3)
348*3a608692SPiotr Kubaj	fadd	28,0,1
349*3a608692SPiotr Kubaj	lfd	25,8*11(3)
350*3a608692SPiotr Kubaj.Lentry:
351*3a608692SPiotr Kubaj	fmul	0,22,29
352*3a608692SPiotr Kubaj	fmul	1,23,29
353*3a608692SPiotr Kubaj	fmul	4,16,29
354*3a608692SPiotr Kubaj	fmul	5,17,29
355*3a608692SPiotr Kubaj	fmul	2,14,29
356*3a608692SPiotr Kubaj	fmul	3,15,29
357*3a608692SPiotr Kubaj	fmul	6,18,29
358*3a608692SPiotr Kubaj	fmul	7,19,29
359*3a608692SPiotr Kubaj
360*3a608692SPiotr Kubaj	fmadd	0,26,31,0
361*3a608692SPiotr Kubaj	fmadd	1,27,31,1
362*3a608692SPiotr Kubaj	fmadd	4,22,31,4
363*3a608692SPiotr Kubaj	fmadd	5,23,31,5
364*3a608692SPiotr Kubaj	fmadd	2,20,31,2
365*3a608692SPiotr Kubaj	fmadd	3,21,31,3
366*3a608692SPiotr Kubaj	fmadd	6,14,31,6
367*3a608692SPiotr Kubaj	fmadd	7,15,31,7
368*3a608692SPiotr Kubaj
369*3a608692SPiotr Kubaj	fmadd	0,20,30,0
370*3a608692SPiotr Kubaj	fmadd	1,21,30,1
371*3a608692SPiotr Kubaj	fmadd	4,14,30,4
372*3a608692SPiotr Kubaj	fmadd	5,15,30,5
373*3a608692SPiotr Kubaj	fmadd	2,22,30,2
374*3a608692SPiotr Kubaj	fmadd	3,23,30,3
375*3a608692SPiotr Kubaj	fmadd	6,16,30,6
376*3a608692SPiotr Kubaj	fmadd	7,17,30,7
377*3a608692SPiotr Kubaj
378*3a608692SPiotr Kubaj	fmadd	0,14,28,0
379*3a608692SPiotr Kubaj	lfd	30,24(1)
380*3a608692SPiotr Kubaj	fmadd	1,15,28,1
381*3a608692SPiotr Kubaj	lfd	31,32(1)
382*3a608692SPiotr Kubaj	fmadd	4,18,28,4
383*3a608692SPiotr Kubaj	lfd	26,40(1)
384*3a608692SPiotr Kubaj	fmadd	5,19,28,5
385*3a608692SPiotr Kubaj	lfd	27,48(1)
386*3a608692SPiotr Kubaj	fmadd	2,16,28,2
387*3a608692SPiotr Kubaj	fmadd	3,17,28,3
388*3a608692SPiotr Kubaj	fmadd	6,24,28,6
389*3a608692SPiotr Kubaj	fmadd	7,25,28,7
390*3a608692SPiotr Kubaj
391*3a608692SPiotr Kubaj	bdnz	.Loop
392*3a608692SPiotr Kubaj
393*3a608692SPiotr Kubaj
394*3a608692SPiotr Kubaj	fadd	24,0,9
395*3a608692SPiotr Kubaj	fadd	25,1,9
396*3a608692SPiotr Kubaj	fadd	28,4,11
397*3a608692SPiotr Kubaj	fadd	29,5,11
398*3a608692SPiotr Kubaj	fadd	26,2,10
399*3a608692SPiotr Kubaj	fadd	27,3,10
400*3a608692SPiotr Kubaj	fadd	30,6,12
401*3a608692SPiotr Kubaj	fadd	31,7,12
402*3a608692SPiotr Kubaj
403*3a608692SPiotr Kubaj	fsub	24,24,9
404*3a608692SPiotr Kubaj	fsub	25,25,9
405*3a608692SPiotr Kubaj	fsub	28,28,11
406*3a608692SPiotr Kubaj	fsub	29,29,11
407*3a608692SPiotr Kubaj	fsub	26,26,10
408*3a608692SPiotr Kubaj	fsub	27,27,10
409*3a608692SPiotr Kubaj	fsub	30,30,12
410*3a608692SPiotr Kubaj	fsub	31,31,12
411*3a608692SPiotr Kubaj
412*3a608692SPiotr Kubaj	fsub	2,2,26
413*3a608692SPiotr Kubaj	fsub	3,3,27
414*3a608692SPiotr Kubaj	fsub	6,6,30
415*3a608692SPiotr Kubaj	fsub	7,7,31
416*3a608692SPiotr Kubaj	fsub	4,4,28
417*3a608692SPiotr Kubaj	fsub	5,5,29
418*3a608692SPiotr Kubaj	fsub	0,0,24
419*3a608692SPiotr Kubaj	fsub	1,1,25
420*3a608692SPiotr Kubaj
421*3a608692SPiotr Kubaj	fadd	2,2,24
422*3a608692SPiotr Kubaj	fadd	3,3,25
423*3a608692SPiotr Kubaj	fadd	6,6,28
424*3a608692SPiotr Kubaj	fadd	7,7,29
425*3a608692SPiotr Kubaj	fadd	4,4,26
426*3a608692SPiotr Kubaj	fadd	5,5,27
427*3a608692SPiotr Kubaj	fmadd	0,30,13,0
428*3a608692SPiotr Kubaj	fmadd	1,31,13,1
429*3a608692SPiotr Kubaj
430*3a608692SPiotr Kubaj	fadd	29,2,3
431*3a608692SPiotr Kubaj	fadd	31,6,7
432*3a608692SPiotr Kubaj	fadd	30,4,5
433*3a608692SPiotr Kubaj	fadd	28,0,1
434*3a608692SPiotr Kubaj
435*3a608692SPiotr Kubaj	lfd	0,56(1)
436*3a608692SPiotr Kubaj	fadd	29,29,9
437*3a608692SPiotr Kubaj	fadd	31,31,11
438*3a608692SPiotr Kubaj	fadd	30,30,10
439*3a608692SPiotr Kubaj	fadd	28,28,8
440*3a608692SPiotr Kubaj
441*3a608692SPiotr Kubaj	stfd	29,8*1(3)
442*3a608692SPiotr Kubaj	stfd	31,8*3(3)
443*3a608692SPiotr Kubaj	stfd	30,8*2(3)
444*3a608692SPiotr Kubaj	stfd	28,8*0(3)
445*3a608692SPiotr Kubaj
446*3a608692SPiotr Kubaj	mtfsf	255,0
447*3a608692SPiotr Kubaj	lfd	14,72(1)
448*3a608692SPiotr Kubaj	lfd	15,80(1)
449*3a608692SPiotr Kubaj	lfd	16,88(1)
450*3a608692SPiotr Kubaj	lfd	17,96(1)
451*3a608692SPiotr Kubaj	lfd	18,104(1)
452*3a608692SPiotr Kubaj	lfd	19,112(1)
453*3a608692SPiotr Kubaj	lfd	20,120(1)
454*3a608692SPiotr Kubaj	lfd	21,128(1)
455*3a608692SPiotr Kubaj	lfd	22,136(1)
456*3a608692SPiotr Kubaj	lfd	23,144(1)
457*3a608692SPiotr Kubaj	lfd	24,152(1)
458*3a608692SPiotr Kubaj	lfd	25,160(1)
459*3a608692SPiotr Kubaj	lfd	26,168(1)
460*3a608692SPiotr Kubaj	lfd	27,176(1)
461*3a608692SPiotr Kubaj	lfd	28,184(1)
462*3a608692SPiotr Kubaj	lfd	29,192(1)
463*3a608692SPiotr Kubaj	lfd	30,200(1)
464*3a608692SPiotr Kubaj	lfd	31,208(1)
465*3a608692SPiotr Kubaj	addi	1,1,216
466*3a608692SPiotr Kubaj.Labort:
467*3a608692SPiotr Kubaj	blr
468*3a608692SPiotr Kubaj.long	0
469*3a608692SPiotr Kubaj.byte	0,12,4,1,0x80,0,4,0
470*3a608692SPiotr Kubaj.size	poly1305_blocks_fpu,.-poly1305_blocks_fpu
471*3a608692SPiotr Kubaj.globl	poly1305_emit_fpu
472*3a608692SPiotr Kubaj.type	poly1305_emit_fpu,@function
473*3a608692SPiotr Kubaj.align	4
474*3a608692SPiotr Kubajpoly1305_emit_fpu:
475*3a608692SPiotr Kubaj	stwu	1,-40(1)
476*3a608692SPiotr Kubaj	mflr	0
477*3a608692SPiotr Kubaj	stw	28,24(1)
478*3a608692SPiotr Kubaj	stw	29,28(1)
479*3a608692SPiotr Kubaj	stw	30,32(1)
480*3a608692SPiotr Kubaj	stw	31,36(1)
481*3a608692SPiotr Kubaj	stw	0,44(1)
482*3a608692SPiotr Kubaj
483*3a608692SPiotr Kubaj	lwz	28,0(3)
484*3a608692SPiotr Kubaj	lwz	7,4(3)
485*3a608692SPiotr Kubaj	lwz	29,8(3)
486*3a608692SPiotr Kubaj	lwz	8,12(3)
487*3a608692SPiotr Kubaj	lwz	30,16(3)
488*3a608692SPiotr Kubaj	lwz	9,20(3)
489*3a608692SPiotr Kubaj	lwz	31,24(3)
490*3a608692SPiotr Kubaj	lwz	10,28(3)
491*3a608692SPiotr Kubaj
492*3a608692SPiotr Kubaj	lis	0,0xfff0
493*3a608692SPiotr Kubaj	andc	28,28,0
494*3a608692SPiotr Kubaj	andc	29,29,0
495*3a608692SPiotr Kubaj	andc	30,30,0
496*3a608692SPiotr Kubaj	andc	31,31,0
497*3a608692SPiotr Kubaj	li	0,3
498*3a608692SPiotr Kubaj
499*3a608692SPiotr Kubaj	srwi	6,31,2
500*3a608692SPiotr Kubaj	and	11,31,0
501*3a608692SPiotr Kubaj	andc	31,31,0
502*3a608692SPiotr Kubaj	add	31,31,6
503*3a608692SPiotr Kubaj	addc	7,7,31
504*3a608692SPiotr Kubaj	adde	8,8,28
505*3a608692SPiotr Kubaj	adde	9,9,29
506*3a608692SPiotr Kubaj	adde	10,10,30
507*3a608692SPiotr Kubaj	addze	11,11
508*3a608692SPiotr Kubaj
509*3a608692SPiotr Kubaj	addic	28,7,5
510*3a608692SPiotr Kubaj	addze	29,8
511*3a608692SPiotr Kubaj	addze	30,9
512*3a608692SPiotr Kubaj	addze	31,10
513*3a608692SPiotr Kubaj	addze	0,11
514*3a608692SPiotr Kubaj
515*3a608692SPiotr Kubaj	srwi	0,0,2
516*3a608692SPiotr Kubaj	neg	0,0
517*3a608692SPiotr Kubaj	srawi	0,0,31
518*3a608692SPiotr Kubaj
519*3a608692SPiotr Kubaj	andc	7,7,0
520*3a608692SPiotr Kubaj	and	28,28,0
521*3a608692SPiotr Kubaj	andc	8,8,0
522*3a608692SPiotr Kubaj	and	29,29,0
523*3a608692SPiotr Kubaj	or	7,7,28
524*3a608692SPiotr Kubaj	lwz	28,0(5)
525*3a608692SPiotr Kubaj	andc	9,9,0
526*3a608692SPiotr Kubaj	and	30,30,0
527*3a608692SPiotr Kubaj	or	8,8,29
528*3a608692SPiotr Kubaj	lwz	29,4(5)
529*3a608692SPiotr Kubaj	andc	10,10,0
530*3a608692SPiotr Kubaj	and	31,31,0
531*3a608692SPiotr Kubaj	or	9,9,30
532*3a608692SPiotr Kubaj	lwz	30,8(5)
533*3a608692SPiotr Kubaj	or	10,10,31
534*3a608692SPiotr Kubaj	lwz	31,12(5)
535*3a608692SPiotr Kubaj
536*3a608692SPiotr Kubaj	addc	7,7,28
537*3a608692SPiotr Kubaj	adde	8,8,29
538*3a608692SPiotr Kubaj	adde	9,9,30
539*3a608692SPiotr Kubaj	adde	10,10,31
540*3a608692SPiotr Kubaj	li	29,4
541*3a608692SPiotr Kubaj	stwbrx	7,0,4
542*3a608692SPiotr Kubaj	li	30,8
543*3a608692SPiotr Kubaj	stwbrx	8,29,4
544*3a608692SPiotr Kubaj	li	31,12
545*3a608692SPiotr Kubaj	stwbrx	9,30,4
546*3a608692SPiotr Kubaj	stwbrx	10,31,4
547*3a608692SPiotr Kubaj	lwz	28,24(1)
548*3a608692SPiotr Kubaj	lwz	29,28(1)
549*3a608692SPiotr Kubaj	lwz	30,32(1)
550*3a608692SPiotr Kubaj	lwz	31,36(1)
551*3a608692SPiotr Kubaj	addi	1,1,40
552*3a608692SPiotr Kubaj	blr
553*3a608692SPiotr Kubaj.long	0
554*3a608692SPiotr Kubaj.byte	0,12,4,1,0x80,4,3,0
555*3a608692SPiotr Kubaj.size	poly1305_emit_fpu,.-poly1305_emit_fpu
556*3a608692SPiotr Kubaj.align	6
557*3a608692SPiotr Kubaj.LPICmeup:
558*3a608692SPiotr Kubaj	mflr	0
559*3a608692SPiotr Kubaj	bcl	20,31,$+4
560*3a608692SPiotr Kubaj	mflr	5
561*3a608692SPiotr Kubaj	addi	5,5,56
562*3a608692SPiotr Kubaj	mtlr	0
563*3a608692SPiotr Kubaj	blr
564*3a608692SPiotr Kubaj.long	0
565*3a608692SPiotr Kubaj.byte	0,12,0x14,0,0,0,0,0
566*3a608692SPiotr Kubaj.space	28
567*3a608692SPiotr Kubaj
568*3a608692SPiotr Kubaj.long	0x43300000,0x00000000
569*3a608692SPiotr Kubaj.long	0x45300000,0x00000000
570*3a608692SPiotr Kubaj.long	0x47300000,0x00000000
571*3a608692SPiotr Kubaj.long	0x49300000,0x00000000
572*3a608692SPiotr Kubaj.long	0x4b500000,0x00000000
573*3a608692SPiotr Kubaj
574*3a608692SPiotr Kubaj.long	0x37f40000,0x00000000
575*3a608692SPiotr Kubaj
576*3a608692SPiotr Kubaj.long	0x44300000,0x00000000
577*3a608692SPiotr Kubaj.long	0x46300000,0x00000000
578*3a608692SPiotr Kubaj.long	0x48300000,0x00000000
579*3a608692SPiotr Kubaj.long	0x4a300000,0x00000000
580*3a608692SPiotr Kubaj.long	0x3e300000,0x00000000
581*3a608692SPiotr Kubaj.long	0x40300000,0x00000000
582*3a608692SPiotr Kubaj.long	0x42300000,0x00000000
583*3a608692SPiotr Kubaj
584*3a608692SPiotr Kubaj.long	0x00000000,0x00000001
585*3a608692SPiotr Kubaj.byte	80,111,108,121,49,51,48,53,32,102,111,114,32,80,80,67,32,70,80,85,44,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
586*3a608692SPiotr Kubaj.align	2
587*3a608692SPiotr Kubaj.align	4
588