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