xref: /netbsd-src/crypto/external/bsd/openssl/lib/libcrypto/arch/powerpc64/poly1305-ppcfp.S (revision e0ea3921ea68e51b93ffc215f08ae1647c8e1796)
12ac7033aSchristos.machine	"any"
22ac7033aSchristos.text
32ac7033aSchristos
42ac7033aSchristos.globl	poly1305_init_fpu
52ac7033aSchristos.type	poly1305_init_fpu,@function
62ac7033aSchristos.section	".opd","aw"
72ac7033aSchristos.align	3
82ac7033aSchristospoly1305_init_fpu:
92ac7033aSchristos.quad	.poly1305_init_fpu,.TOC.@tocbase,0
102ac7033aSchristos.previous
112ac7033aSchristos.align	6
122ac7033aSchristos.poly1305_init_fpu:
132ac7033aSchristos	stdu	1,-48(1)
142ac7033aSchristos	mflr	6
152ac7033aSchristos	std	6,64(1)
162ac7033aSchristos
172ac7033aSchristos	bl	.LPICmeup
182ac7033aSchristos
192ac7033aSchristos	xor	0,0,0
202ac7033aSchristos	mtlr	6
212ac7033aSchristos
222ac7033aSchristos	lfd	8,8*0(5)
232ac7033aSchristos	lfd	9,8*1(5)
242ac7033aSchristos	lfd	10,8*2(5)
252ac7033aSchristos	lfd	11,8*3(5)
262ac7033aSchristos	lfd	12,8*4(5)
272ac7033aSchristos	lfd	13,8*5(5)
282ac7033aSchristos
292ac7033aSchristos	stfd	8,8*0(3)
302ac7033aSchristos	stfd	9,8*1(3)
312ac7033aSchristos	stfd	10,8*2(3)
322ac7033aSchristos	stfd	11,8*3(3)
332ac7033aSchristos
342ac7033aSchristos	cmpld	4,0
352ac7033aSchristos	beq-	.Lno_key
362ac7033aSchristos
372ac7033aSchristos	lfd	6,8*13(5)
382ac7033aSchristos	mffs	7
392ac7033aSchristos
402ac7033aSchristos	stfd	8,8*4(3)
412ac7033aSchristos	stfd	9,8*5(3)
422ac7033aSchristos	stfd	10,8*6(3)
432ac7033aSchristos	stfd	11,8*7(3)
442ac7033aSchristos
452ac7033aSchristos	li	8,4
462ac7033aSchristos	li	9,8
472ac7033aSchristos	li	10,12
482ac7033aSchristos	lwbrx	7,0,4
492ac7033aSchristos	lwbrx	8,8,4
502ac7033aSchristos	lwbrx	9,9,4
512ac7033aSchristos	lwbrx	10,10,4
522ac7033aSchristos
532ac7033aSchristos	lis	11,0xf000
542ac7033aSchristos	ori	12,11,3
552ac7033aSchristos	andc	7,7,11
562ac7033aSchristos	andc	8,8,12
572ac7033aSchristos	andc	9,9,12
582ac7033aSchristos	andc	10,10,12
592ac7033aSchristos
602ac7033aSchristos	stw	7,36(3)
612ac7033aSchristos	stw	8,44(3)
622ac7033aSchristos	stw	9,52(3)
632ac7033aSchristos	stw	10,60(3)
642ac7033aSchristos
652ac7033aSchristos	mtfsf	255,6
662ac7033aSchristos	stfd	8,8*18(3)
672ac7033aSchristos	stfd	9,8*19(3)
682ac7033aSchristos	stfd	10,8*20(3)
692ac7033aSchristos	stfd	11,8*21(3)
702ac7033aSchristos	stfd	12,8*22(3)
712ac7033aSchristos	stfd	13,8*23(3)
722ac7033aSchristos
732ac7033aSchristos	lfd	0,8*4(3)
742ac7033aSchristos	lfd	2,8*5(3)
752ac7033aSchristos	lfd	4,8*6(3)
762ac7033aSchristos	lfd	6,8*7(3)
772ac7033aSchristos
782ac7033aSchristos	fsub	0,0,8
792ac7033aSchristos	fsub	2,2,9
802ac7033aSchristos	fsub	4,4,10
812ac7033aSchristos	fsub	6,6,11
822ac7033aSchristos
832ac7033aSchristos	lfd	8,8*6(5)
842ac7033aSchristos	lfd	9,8*7(5)
852ac7033aSchristos	lfd	10,8*8(5)
862ac7033aSchristos	lfd	11,8*9(5)
872ac7033aSchristos
882ac7033aSchristos	fmul	3,2,13
892ac7033aSchristos	fmul	5,4,13
902ac7033aSchristos	stfd	7,8*15(3)
912ac7033aSchristos	fmul	7,6,13
922ac7033aSchristos
932ac7033aSchristos	fadd	1,0,8
942ac7033aSchristos	stfd	3,8*12(3)
952ac7033aSchristos	fadd	3,2,9
962ac7033aSchristos	stfd	5,8*13(3)
972ac7033aSchristos	fadd	5,4,10
982ac7033aSchristos	stfd	7,8*14(3)
992ac7033aSchristos	fadd	7,6,11
1002ac7033aSchristos
1012ac7033aSchristos	fsub	1,1,8
1022ac7033aSchristos	fsub	3,3,9
1032ac7033aSchristos	fsub	5,5,10
1042ac7033aSchristos	fsub	7,7,11
1052ac7033aSchristos
1062ac7033aSchristos	lfd	8,8*10(5)
1072ac7033aSchristos	lfd	9,8*11(5)
1082ac7033aSchristos	lfd	10,8*12(5)
1092ac7033aSchristos
1102ac7033aSchristos	fsub	0,0,1
1112ac7033aSchristos	fsub	2,2,3
1122ac7033aSchristos	fsub	4,4,5
1132ac7033aSchristos	fsub	6,6,7
1142ac7033aSchristos
1152ac7033aSchristos	stfd	1,8*5(3)
1162ac7033aSchristos	stfd	3,8*7(3)
1172ac7033aSchristos	stfd	5,8*9(3)
1182ac7033aSchristos	stfd	7,8*11(3)
1192ac7033aSchristos
1202ac7033aSchristos	stfd	0,8*4(3)
1212ac7033aSchristos	stfd	2,8*6(3)
1222ac7033aSchristos	stfd	4,8*8(3)
1232ac7033aSchristos	stfd	6,8*10(3)
1242ac7033aSchristos
1252ac7033aSchristos	lfd	2,8*12(3)
1262ac7033aSchristos	lfd	4,8*13(3)
1272ac7033aSchristos	lfd	6,8*14(3)
1282ac7033aSchristos	lfd	0,8*15(3)
1292ac7033aSchristos
1302ac7033aSchristos	fadd	3,2,8
1312ac7033aSchristos	fadd	5,4,9
1322ac7033aSchristos	fadd	7,6,10
1332ac7033aSchristos
1342ac7033aSchristos	fsub	3,3,8
1352ac7033aSchristos	fsub	5,5,9
1362ac7033aSchristos	fsub	7,7,10
1372ac7033aSchristos
1382ac7033aSchristos	fsub	2,2,3
1392ac7033aSchristos	fsub	4,4,5
1402ac7033aSchristos	fsub	6,6,7
1412ac7033aSchristos
1422ac7033aSchristos	stfd	3,8*13(3)
1432ac7033aSchristos	stfd	5,8*15(3)
1442ac7033aSchristos	stfd	7,8*17(3)
1452ac7033aSchristos
1462ac7033aSchristos	stfd	2,8*12(3)
1472ac7033aSchristos	stfd	4,8*14(3)
1482ac7033aSchristos	stfd	6,8*16(3)
1492ac7033aSchristos
1502ac7033aSchristos	mtfsf	255,0
1512ac7033aSchristos.Lno_key:
1522ac7033aSchristos	xor	3,3,3
1532ac7033aSchristos	addi	1,1,48
1542ac7033aSchristos	blr
1552ac7033aSchristos.long	0
1562ac7033aSchristos.byte	0,12,4,1,0x80,0,2,0
1572ac7033aSchristos
1582ac7033aSchristos
1592ac7033aSchristos.globl	poly1305_blocks_fpu
1602ac7033aSchristos.type	poly1305_blocks_fpu,@function
1612ac7033aSchristos.section	".opd","aw"
1622ac7033aSchristos.align	3
1632ac7033aSchristospoly1305_blocks_fpu:
1642ac7033aSchristos.quad	.poly1305_blocks_fpu,.TOC.@tocbase,0
1652ac7033aSchristos.previous
1662ac7033aSchristos.align	4
1672ac7033aSchristos.poly1305_blocks_fpu:
1682ac7033aSchristos	srwi.	5,5,4
1692ac7033aSchristos	beq-	.Labort
1702ac7033aSchristos
1712ac7033aSchristos	stdu	1,-240(1)
1722ac7033aSchristos	mflr	0
1732ac7033aSchristos	stfd	14,96(1)
1742ac7033aSchristos	stfd	15,104(1)
1752ac7033aSchristos	stfd	16,112(1)
1762ac7033aSchristos	stfd	17,120(1)
1772ac7033aSchristos	stfd	18,128(1)
1782ac7033aSchristos	stfd	19,136(1)
1792ac7033aSchristos	stfd	20,144(1)
1802ac7033aSchristos	stfd	21,152(1)
1812ac7033aSchristos	stfd	22,160(1)
1822ac7033aSchristos	stfd	23,168(1)
1832ac7033aSchristos	stfd	24,176(1)
1842ac7033aSchristos	stfd	25,184(1)
1852ac7033aSchristos	stfd	26,192(1)
1862ac7033aSchristos	stfd	27,200(1)
1872ac7033aSchristos	stfd	28,208(1)
1882ac7033aSchristos	stfd	29,216(1)
1892ac7033aSchristos	stfd	30,224(1)
1902ac7033aSchristos	stfd	31,232(1)
1912ac7033aSchristos	std	0,256(1)
1922ac7033aSchristos
1932ac7033aSchristos	xor	0,0,0
1942ac7033aSchristos	li	10,1
1952ac7033aSchristos	mtctr	5
1962ac7033aSchristos	neg	5,5
1972ac7033aSchristos	stw	0,80(1)
1982ac7033aSchristos	stw	10,84(1)
1992ac7033aSchristos
2002ac7033aSchristos	lfd	8,8*18(3)
2012ac7033aSchristos	lfd	9,8*19(3)
2022ac7033aSchristos	lfd	10,8*20(3)
2032ac7033aSchristos	lfd	11,8*21(3)
2042ac7033aSchristos	lfd	12,8*22(3)
2052ac7033aSchristos	lfd	13,8*23(3)
2062ac7033aSchristos
2072ac7033aSchristos	lfd	0,8*0(3)
2082ac7033aSchristos	lfd	2,8*1(3)
2092ac7033aSchristos	lfd	4,8*2(3)
2102ac7033aSchristos	lfd	6,8*3(3)
2112ac7033aSchristos
2122ac7033aSchristos	stfd	8,48(1)
2132ac7033aSchristos	oris	10,6,18736
2142ac7033aSchristos	stfd	9,56(1)
2152ac7033aSchristos	stfd	10,64(1)
2162ac7033aSchristos	stw	10,72(1)
2172ac7033aSchristos
2182ac7033aSchristos	li	11,4
2192ac7033aSchristos	li	12,8
2202ac7033aSchristos	li	6,12
2212ac7033aSchristos	lwbrx	7,0,4
2222ac7033aSchristos	lwbrx	8,11,4
2232ac7033aSchristos	lwbrx	9,12,4
2242ac7033aSchristos	lwbrx	10,6,4
2252ac7033aSchristos	addi	4,4,16
2262ac7033aSchristos
2272ac7033aSchristos	stw	7,52(1)
2282ac7033aSchristos	stw	8,60(1)
2292ac7033aSchristos	stw	9,68(1)
2302ac7033aSchristos	stw	10,76(1)
2312ac7033aSchristos
2322ac7033aSchristos	mffs	28
2332ac7033aSchristos	lfd	29,80(1)
2342ac7033aSchristos	lfd	14,8*4(3)
2352ac7033aSchristos	lfd	15,8*5(3)
2362ac7033aSchristos	lfd	16,8*6(3)
2372ac7033aSchristos	lfd	17,8*7(3)
2382ac7033aSchristos	lfd	18,8*8(3)
2392ac7033aSchristos	lfd	19,8*9(3)
2402ac7033aSchristos	lfd	24,8*10(3)
2412ac7033aSchristos	lfd	25,8*11(3)
2422ac7033aSchristos	lfd	26,8*12(3)
2432ac7033aSchristos	lfd	27,8*13(3)
2442ac7033aSchristos	lfd	20,8*14(3)
2452ac7033aSchristos	lfd	21,8*15(3)
2462ac7033aSchristos	lfd	22,8*16(3)
2472ac7033aSchristos	lfd	23,8*17(3)
2482ac7033aSchristos
2492ac7033aSchristos	stfd	28,80(1)
2502ac7033aSchristos	mtfsf	255,29
2512ac7033aSchristos
2522ac7033aSchristos	addic	5,5,1
2532ac7033aSchristos	addze	0,0
2542ac7033aSchristos	slwi.	0,0,4
2552ac7033aSchristos	sub	4,4,0
2562ac7033aSchristos
2572ac7033aSchristos	lfd	28,48(1)
2582ac7033aSchristos	lfd	29,56(1)
2592ac7033aSchristos	lfd	30,64(1)
2602ac7033aSchristos	lfd	31,72(1)
2612ac7033aSchristos
2622ac7033aSchristos	fsub	0,0,8
2632ac7033aSchristos	lwbrx	7,0,4
2642ac7033aSchristos	fsub	2,2,9
2652ac7033aSchristos	lwbrx	8,11,4
2662ac7033aSchristos	fsub	4,4,10
2672ac7033aSchristos	lwbrx	9,12,4
2682ac7033aSchristos	fsub	6,6,11
2692ac7033aSchristos	lwbrx	10,6,4
2702ac7033aSchristos
2712ac7033aSchristos	fsub	28,28,8
2722ac7033aSchristos	addi	4,4,16
2732ac7033aSchristos	fsub	29,29,9
2742ac7033aSchristos	fsub	30,30,10
2752ac7033aSchristos	fsub	31,31,11
2762ac7033aSchristos
2772ac7033aSchristos	fadd	28,28,0
2782ac7033aSchristos	stw	7,52(1)
2792ac7033aSchristos	fadd	29,29,2
2802ac7033aSchristos	stw	8,60(1)
2812ac7033aSchristos	fadd	30,30,4
2822ac7033aSchristos	stw	9,68(1)
2832ac7033aSchristos	fadd	31,31,6
2842ac7033aSchristos	stw	10,76(1)
2852ac7033aSchristos
2862ac7033aSchristos	b	.Lentry
2872ac7033aSchristos
2882ac7033aSchristos.align	4
2892ac7033aSchristos.Loop:
2902ac7033aSchristos	fsub	30,30,8
2912ac7033aSchristos	addic	5,5,1
2922ac7033aSchristos	fsub	31,31,9
2932ac7033aSchristos	addze	0,0
2942ac7033aSchristos	fsub	26,26,10
2952ac7033aSchristos	slwi.	0,0,4
2962ac7033aSchristos	fsub	27,27,11
2972ac7033aSchristos	sub	4,4,0
2982ac7033aSchristos
2992ac7033aSchristos	fadd	0,0,30
3002ac7033aSchristos	fadd	1,1,31
3012ac7033aSchristos	fadd	4,4,26
3022ac7033aSchristos	fadd	5,5,27
3032ac7033aSchristos
3042ac7033aSchristos
3052ac7033aSchristos	fadd	26,2,10
3062ac7033aSchristos	lwbrx	7,0,4
3072ac7033aSchristos	fadd	27,3,10
3082ac7033aSchristos	lwbrx	8,11,4
3092ac7033aSchristos	fadd	30,6,12
3102ac7033aSchristos	lwbrx	9,12,4
3112ac7033aSchristos	fadd	31,7,12
3122ac7033aSchristos	lwbrx	10,6,4
3132ac7033aSchristos	fadd	24,0,9
3142ac7033aSchristos	addi	4,4,16
3152ac7033aSchristos	fadd	25,1,9
3162ac7033aSchristos	fadd	28,4,11
3172ac7033aSchristos	fadd	29,5,11
3182ac7033aSchristos
3192ac7033aSchristos	fsub	26,26,10
3202ac7033aSchristos	stw	7,52(1)
3212ac7033aSchristos	fsub	27,27,10
3222ac7033aSchristos	stw	8,60(1)
3232ac7033aSchristos	fsub	30,30,12
3242ac7033aSchristos	stw	9,68(1)
3252ac7033aSchristos	fsub	31,31,12
3262ac7033aSchristos	stw	10,76(1)
3272ac7033aSchristos	fsub	24,24,9
3282ac7033aSchristos	fsub	25,25,9
3292ac7033aSchristos	fsub	28,28,11
3302ac7033aSchristos	fsub	29,29,11
3312ac7033aSchristos
3322ac7033aSchristos	fsub	2,2,26
3332ac7033aSchristos	fsub	3,3,27
3342ac7033aSchristos	fsub	6,6,30
3352ac7033aSchristos	fsub	7,7,31
3362ac7033aSchristos	fsub	4,4,28
3372ac7033aSchristos	fsub	5,5,29
3382ac7033aSchristos	fsub	0,0,24
3392ac7033aSchristos	fsub	1,1,25
3402ac7033aSchristos
3412ac7033aSchristos	fadd	2,2,24
3422ac7033aSchristos	fadd	3,3,25
3432ac7033aSchristos	fadd	6,6,28
3442ac7033aSchristos	fadd	7,7,29
3452ac7033aSchristos	fadd	4,4,26
3462ac7033aSchristos	fadd	5,5,27
3472ac7033aSchristos	fmadd	0,30,13,0
3482ac7033aSchristos	fmadd	1,31,13,1
3492ac7033aSchristos
3502ac7033aSchristos	fadd	29,2,3
3512ac7033aSchristos	lfd	26,8*12(3)
3522ac7033aSchristos	fadd	31,6,7
3532ac7033aSchristos	lfd	27,8*13(3)
3542ac7033aSchristos	fadd	30,4,5
3552ac7033aSchristos	lfd	24,8*10(3)
3562ac7033aSchristos	fadd	28,0,1
3572ac7033aSchristos	lfd	25,8*11(3)
3582ac7033aSchristos.Lentry:
3592ac7033aSchristos	fmul	0,22,29
3602ac7033aSchristos	fmul	1,23,29
3612ac7033aSchristos	fmul	4,16,29
3622ac7033aSchristos	fmul	5,17,29
3632ac7033aSchristos	fmul	2,14,29
3642ac7033aSchristos	fmul	3,15,29
3652ac7033aSchristos	fmul	6,18,29
3662ac7033aSchristos	fmul	7,19,29
3672ac7033aSchristos
3682ac7033aSchristos	fmadd	0,26,31,0
3692ac7033aSchristos	fmadd	1,27,31,1
3702ac7033aSchristos	fmadd	4,22,31,4
3712ac7033aSchristos	fmadd	5,23,31,5
3722ac7033aSchristos	fmadd	2,20,31,2
3732ac7033aSchristos	fmadd	3,21,31,3
3742ac7033aSchristos	fmadd	6,14,31,6
3752ac7033aSchristos	fmadd	7,15,31,7
3762ac7033aSchristos
3772ac7033aSchristos	fmadd	0,20,30,0
3782ac7033aSchristos	fmadd	1,21,30,1
3792ac7033aSchristos	fmadd	4,14,30,4
3802ac7033aSchristos	fmadd	5,15,30,5
3812ac7033aSchristos	fmadd	2,22,30,2
3822ac7033aSchristos	fmadd	3,23,30,3
3832ac7033aSchristos	fmadd	6,16,30,6
3842ac7033aSchristos	fmadd	7,17,30,7
3852ac7033aSchristos
3862ac7033aSchristos	fmadd	0,14,28,0
3872ac7033aSchristos	lfd	30,48(1)
3882ac7033aSchristos	fmadd	1,15,28,1
3892ac7033aSchristos	lfd	31,56(1)
3902ac7033aSchristos	fmadd	4,18,28,4
3912ac7033aSchristos	lfd	26,64(1)
3922ac7033aSchristos	fmadd	5,19,28,5
3932ac7033aSchristos	lfd	27,72(1)
3942ac7033aSchristos	fmadd	2,16,28,2
3952ac7033aSchristos	fmadd	3,17,28,3
3962ac7033aSchristos	fmadd	6,24,28,6
3972ac7033aSchristos	fmadd	7,25,28,7
3982ac7033aSchristos
3992ac7033aSchristos	bc	16,0,.Loop
4002ac7033aSchristos
4012ac7033aSchristos
4022ac7033aSchristos	fadd	24,0,9
4032ac7033aSchristos	fadd	25,1,9
4042ac7033aSchristos	fadd	28,4,11
4052ac7033aSchristos	fadd	29,5,11
4062ac7033aSchristos	fadd	26,2,10
4072ac7033aSchristos	fadd	27,3,10
4082ac7033aSchristos	fadd	30,6,12
4092ac7033aSchristos	fadd	31,7,12
4102ac7033aSchristos
4112ac7033aSchristos	fsub	24,24,9
4122ac7033aSchristos	fsub	25,25,9
4132ac7033aSchristos	fsub	28,28,11
4142ac7033aSchristos	fsub	29,29,11
4152ac7033aSchristos	fsub	26,26,10
4162ac7033aSchristos	fsub	27,27,10
4172ac7033aSchristos	fsub	30,30,12
4182ac7033aSchristos	fsub	31,31,12
4192ac7033aSchristos
4202ac7033aSchristos	fsub	2,2,26
4212ac7033aSchristos	fsub	3,3,27
4222ac7033aSchristos	fsub	6,6,30
4232ac7033aSchristos	fsub	7,7,31
4242ac7033aSchristos	fsub	4,4,28
4252ac7033aSchristos	fsub	5,5,29
4262ac7033aSchristos	fsub	0,0,24
4272ac7033aSchristos	fsub	1,1,25
4282ac7033aSchristos
4292ac7033aSchristos	fadd	2,2,24
4302ac7033aSchristos	fadd	3,3,25
4312ac7033aSchristos	fadd	6,6,28
4322ac7033aSchristos	fadd	7,7,29
4332ac7033aSchristos	fadd	4,4,26
4342ac7033aSchristos	fadd	5,5,27
4352ac7033aSchristos	fmadd	0,30,13,0
4362ac7033aSchristos	fmadd	1,31,13,1
4372ac7033aSchristos
4382ac7033aSchristos	fadd	29,2,3
4392ac7033aSchristos	fadd	31,6,7
4402ac7033aSchristos	fadd	30,4,5
4412ac7033aSchristos	fadd	28,0,1
4422ac7033aSchristos
4432ac7033aSchristos	lfd	0,80(1)
4442ac7033aSchristos	fadd	29,29,9
4452ac7033aSchristos	fadd	31,31,11
4462ac7033aSchristos	fadd	30,30,10
4472ac7033aSchristos	fadd	28,28,8
4482ac7033aSchristos
4492ac7033aSchristos	stfd	29,8*1(3)
4502ac7033aSchristos	stfd	31,8*3(3)
4512ac7033aSchristos	stfd	30,8*2(3)
4522ac7033aSchristos	stfd	28,8*0(3)
4532ac7033aSchristos
4542ac7033aSchristos	mtfsf	255,0
4552ac7033aSchristos	lfd	14,96(1)
4562ac7033aSchristos	lfd	15,104(1)
4572ac7033aSchristos	lfd	16,112(1)
4582ac7033aSchristos	lfd	17,120(1)
4592ac7033aSchristos	lfd	18,128(1)
4602ac7033aSchristos	lfd	19,136(1)
4612ac7033aSchristos	lfd	20,144(1)
4622ac7033aSchristos	lfd	21,152(1)
4632ac7033aSchristos	lfd	22,160(1)
4642ac7033aSchristos	lfd	23,168(1)
4652ac7033aSchristos	lfd	24,176(1)
4662ac7033aSchristos	lfd	25,184(1)
4672ac7033aSchristos	lfd	26,192(1)
4682ac7033aSchristos	lfd	27,200(1)
4692ac7033aSchristos	lfd	28,208(1)
4702ac7033aSchristos	lfd	29,216(1)
4712ac7033aSchristos	lfd	30,224(1)
4722ac7033aSchristos	lfd	31,232(1)
4732ac7033aSchristos	addi	1,1,240
4742ac7033aSchristos.Labort:
4752ac7033aSchristos	blr
4762ac7033aSchristos.long	0
4772ac7033aSchristos.byte	0,12,4,1,0x80,0,4,0
4782ac7033aSchristos
4792ac7033aSchristos.globl	poly1305_emit_fpu
4802ac7033aSchristos.type	poly1305_emit_fpu,@function
4812ac7033aSchristos.section	".opd","aw"
4822ac7033aSchristos.align	3
4832ac7033aSchristospoly1305_emit_fpu:
4842ac7033aSchristos.quad	.poly1305_emit_fpu,.TOC.@tocbase,0
4852ac7033aSchristos.previous
4862ac7033aSchristos.align	4
4872ac7033aSchristos.poly1305_emit_fpu:
4882ac7033aSchristos	stdu	1,-80(1)
4892ac7033aSchristos	mflr	0
4902ac7033aSchristos	std	28,48(1)
4912ac7033aSchristos	std	29,56(1)
4922ac7033aSchristos	std	30,64(1)
4932ac7033aSchristos	std	31,72(1)
4942ac7033aSchristos	std	0,96(1)
4952ac7033aSchristos
4962ac7033aSchristos	lwz	28,0(3)
4972ac7033aSchristos	lwz	7,4(3)
4982ac7033aSchristos	lwz	29,8(3)
4992ac7033aSchristos	lwz	8,12(3)
5002ac7033aSchristos	lwz	30,16(3)
5012ac7033aSchristos	lwz	9,20(3)
5022ac7033aSchristos	lwz	31,24(3)
5032ac7033aSchristos	lwz	10,28(3)
5042ac7033aSchristos
5052ac7033aSchristos	lis	0,0xfff0
5062ac7033aSchristos	andc	28,28,0
5072ac7033aSchristos	andc	29,29,0
5082ac7033aSchristos	andc	30,30,0
5092ac7033aSchristos	andc	31,31,0
5102ac7033aSchristos	li	0,3
5112ac7033aSchristos
5122ac7033aSchristos	srwi	6,31,2
5132ac7033aSchristos	and	11,31,0
5142ac7033aSchristos	andc	31,31,0
5152ac7033aSchristos	add	31,31,6
5162ac7033aSchristos	add	7,7,31
5172ac7033aSchristos	add	8,8,28
5182ac7033aSchristos	add	9,9,29
5192ac7033aSchristos	add	10,10,30
5202ac7033aSchristos
5212ac7033aSchristos	srdi	28,7,32
5222ac7033aSchristos	add	8,8,28
5232ac7033aSchristos	srdi	29,8,32
5242ac7033aSchristos	add	9,9,29
5252ac7033aSchristos	srdi	30,9,32
5262ac7033aSchristos	add	10,10,30
5272ac7033aSchristos	srdi	31,10,32
5282ac7033aSchristos	add	11,11,31
5292ac7033aSchristos
5302ac7033aSchristos	insrdi	7,8,32,0
5312ac7033aSchristos	insrdi	9,10,32,0
5322ac7033aSchristos
5332ac7033aSchristos	addic	28,7,5
5342ac7033aSchristos	addze	29,9
5352ac7033aSchristos	addze	30,11
5362ac7033aSchristos
5372ac7033aSchristos	srdi	0,30,2
5382ac7033aSchristos	neg	0,0
5392ac7033aSchristos	sradi	0,0,63
5402ac7033aSchristos	ld	30,0(5)
5412ac7033aSchristos	ld	31,8(5)
5422ac7033aSchristos
5432ac7033aSchristos	andc	7,7,0
5442ac7033aSchristos	and	28,28,0
5452ac7033aSchristos	andc	9,9,0
5462ac7033aSchristos	and	29,29,0
5472ac7033aSchristos	or	7,7,28
5482ac7033aSchristos	or	9,9,29
5492ac7033aSchristos	rotldi	30,30,32
5502ac7033aSchristos	rotldi	31,31,32
5512ac7033aSchristos	addc	7,7,30
5522ac7033aSchristos	adde	9,9,31
5532ac7033aSchristos
5542ac7033aSchristos	srdi	8,7,32
5552ac7033aSchristos	srdi	10,9,32
5562ac7033aSchristos	li	29,4
5572ac7033aSchristos	stwbrx	7,0,4
5582ac7033aSchristos	li	30,8
5592ac7033aSchristos	stwbrx	8,29,4
5602ac7033aSchristos	li	31,12
5612ac7033aSchristos	stwbrx	9,30,4
5622ac7033aSchristos	stwbrx	10,31,4
5632ac7033aSchristos	ld	28,48(1)
5642ac7033aSchristos	ld	29,56(1)
5652ac7033aSchristos	ld	30,64(1)
5662ac7033aSchristos	ld	31,72(1)
5672ac7033aSchristos	addi	1,1,80
5682ac7033aSchristos	blr
5692ac7033aSchristos.long	0
5702ac7033aSchristos.byte	0,12,4,1,0x80,4,3,0
5712ac7033aSchristos
5722ac7033aSchristos.align	6
5732ac7033aSchristos.LPICmeup:
5742ac7033aSchristos	mflr	0
5752ac7033aSchristos	bcl	20,31,$+4
5762ac7033aSchristos	mflr	5
5772ac7033aSchristos	addi	5,5,56
5782ac7033aSchristos	mtlr	0
5792ac7033aSchristos	blr
5802ac7033aSchristos.long	0
5812ac7033aSchristos.byte	0,12,0x14,0,0,0,0,0
5822ac7033aSchristos.space	28
5832ac7033aSchristos
5842ac7033aSchristos.long	0x43300000,0x00000000
5852ac7033aSchristos.long	0x45300000,0x00000000
5862ac7033aSchristos.long	0x47300000,0x00000000
5872ac7033aSchristos.long	0x49300000,0x00000000
5882ac7033aSchristos.long	0x4b500000,0x00000000
5892ac7033aSchristos
5902ac7033aSchristos.long	0x37f40000,0x00000000
5912ac7033aSchristos
5922ac7033aSchristos.long	0x44300000,0x00000000
5932ac7033aSchristos.long	0x46300000,0x00000000
5942ac7033aSchristos.long	0x48300000,0x00000000
5952ac7033aSchristos.long	0x4a300000,0x00000000
5962ac7033aSchristos.long	0x3e300000,0x00000000
5972ac7033aSchristos.long	0x40300000,0x00000000
5982ac7033aSchristos.long	0x42300000,0x00000000
5992ac7033aSchristos
6002ac7033aSchristos.long	0x00000000,0x00000001
601*e0ea3921Schristos.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
6022ac7033aSchristos.align	2
6032ac7033aSchristos.align	4
604