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