xref: /freebsd/sys/crypto/openssl/powerpc64/keccak1600-ppc64.S (revision c0855eaa3ee9614804b6bd6a255aa9f71e095f43)
13a608692SPiotr Kubaj/* Do not modify. This file is auto-generated from keccak1600-ppc64.pl. */
23a608692SPiotr Kubaj.abiversion	2
33a608692SPiotr Kubaj.text
43a608692SPiotr Kubaj
53a608692SPiotr Kubaj.type	KeccakF1600_int,@function
63a608692SPiotr Kubaj.align	5
73a608692SPiotr KubajKeccakF1600_int:
83a608692SPiotr Kubaj.localentry	KeccakF1600_int,0
93a608692SPiotr Kubaj
103a608692SPiotr Kubaj	li	0,24
113a608692SPiotr Kubaj	mtctr	0
123a608692SPiotr Kubaj	b	.Loop
133a608692SPiotr Kubaj.align	4
143a608692SPiotr Kubaj.Loop:
153a608692SPiotr Kubaj	xor	0,7,12
163a608692SPiotr Kubaj	std	11,96(1)
173a608692SPiotr Kubaj	xor	3,8,6
183a608692SPiotr Kubaj	std	16,104(1)
193a608692SPiotr Kubaj	xor	4,9,14
203a608692SPiotr Kubaj	std	21,112(1)
213a608692SPiotr Kubaj	xor	5,10,15
223a608692SPiotr Kubaj	std	26,120(1)
233a608692SPiotr Kubaj	xor	11,11,16
243a608692SPiotr Kubaj	xor	0,0,17
253a608692SPiotr Kubaj	xor	3,3,18
263a608692SPiotr Kubaj	xor	4,4,19
273a608692SPiotr Kubaj	xor	5,5,20
283a608692SPiotr Kubaj	xor	11,11,21
293a608692SPiotr Kubaj	xor	0,0,22
303a608692SPiotr Kubaj	xor	3,3,23
313a608692SPiotr Kubaj	xor	4,4,24
323a608692SPiotr Kubaj	xor	5,5,25
333a608692SPiotr Kubaj	xor	11,11,26
343a608692SPiotr Kubaj	xor	0,0,27
353a608692SPiotr Kubaj	xor	4,4,29
363a608692SPiotr Kubaj	xor	3,3,28
373a608692SPiotr Kubaj	xor	5,5,30
383a608692SPiotr Kubaj	rotldi	16,4,1
393a608692SPiotr Kubaj	xor	11,11,31
403a608692SPiotr Kubaj	rotldi	21,5,1
413a608692SPiotr Kubaj	xor	16,16,0
423a608692SPiotr Kubaj	rotldi	26,11,1
433a608692SPiotr Kubaj
443a608692SPiotr Kubaj	xor	8,8,16
453a608692SPiotr Kubaj	xor	6,6,16
463a608692SPiotr Kubaj	xor	18,18,16
473a608692SPiotr Kubaj	xor	23,23,16
483a608692SPiotr Kubaj	xor	28,28,16
493a608692SPiotr Kubaj
503a608692SPiotr Kubaj	rotldi	16,0,1
513a608692SPiotr Kubaj	xor	21,21,3
523a608692SPiotr Kubaj	xor	4,4,26
533a608692SPiotr Kubaj	rotldi	26,3,1
543a608692SPiotr Kubaj	xor	5,5,16
553a608692SPiotr Kubaj	xor	11,11,26
563a608692SPiotr Kubaj
573a608692SPiotr Kubaj	xor	3,   9,21
583a608692SPiotr Kubaj	xor	14,14,21
593a608692SPiotr Kubaj	xor	19,19,21
603a608692SPiotr Kubaj	xor	24,24,21
613a608692SPiotr Kubaj	xor	29,29,21
623a608692SPiotr Kubaj
633a608692SPiotr Kubaj	xor	7,7,11
643a608692SPiotr Kubaj	xor	12,12,11
653a608692SPiotr Kubaj	xor	17,17,11
663a608692SPiotr Kubaj	xor	22,22,11
673a608692SPiotr Kubaj	xor	27,27,11
683a608692SPiotr Kubaj	ld	11,96(1)
693a608692SPiotr Kubaj	xor	0,   10,4
703a608692SPiotr Kubaj	ld	16,104(1)
713a608692SPiotr Kubaj	xor	15,15,4
723a608692SPiotr Kubaj	ld	21,112(1)
733a608692SPiotr Kubaj	xor	20,20,4
743a608692SPiotr Kubaj	ld	26,120(1)
753a608692SPiotr Kubaj	xor	25,25,4
763a608692SPiotr Kubaj	xor	30,30,4
773a608692SPiotr Kubaj
783a608692SPiotr Kubaj	xor	4,   11,5
793a608692SPiotr Kubaj	xor	16,16,5
803a608692SPiotr Kubaj	xor	21,21,5
813a608692SPiotr Kubaj	xor	26,26,5
823a608692SPiotr Kubaj	xor	31,31,5
833a608692SPiotr Kubaj
843a608692SPiotr Kubaj	mr	5,8
853a608692SPiotr Kubaj	rotldi	8,6,44
863a608692SPiotr Kubaj
873a608692SPiotr Kubaj	rotldi	9,19,43
883a608692SPiotr Kubaj
893a608692SPiotr Kubaj	rotldi	10,25,21
903a608692SPiotr Kubaj
913a608692SPiotr Kubaj	rotldi	11,31,14
923a608692SPiotr Kubaj
933a608692SPiotr Kubaj	rotldi	6,16,20
943a608692SPiotr Kubaj	rotldi	19,20,25
953a608692SPiotr Kubaj	rotldi	25,24,15
963a608692SPiotr Kubaj	rotldi	31,28,2
973a608692SPiotr Kubaj
983a608692SPiotr Kubaj	rotldi	16,29,61
993a608692SPiotr Kubaj	rotldi	20,26,8
1003a608692SPiotr Kubaj	rotldi	24,18,10
1013a608692SPiotr Kubaj	rotldi	28,15,55
1023a608692SPiotr Kubaj
1033a608692SPiotr Kubaj	rotldi	29,21,39
1043a608692SPiotr Kubaj	rotldi	26,30,56
1053a608692SPiotr Kubaj	rotldi	18,14,6
1063a608692SPiotr Kubaj	rotldi	15,23,45
1073a608692SPiotr Kubaj
1083a608692SPiotr Kubaj	rotldi	21,27,18
1093a608692SPiotr Kubaj	rotldi	30,22,41
1103a608692SPiotr Kubaj	rotldi	14,17,3
1113a608692SPiotr Kubaj	rotldi	23,12,36
1123a608692SPiotr Kubaj
1133a608692SPiotr Kubaj	rotldi	12,0,28
1143a608692SPiotr Kubaj	rotldi	17,5,1
1153a608692SPiotr Kubaj	rotldi	22,4,27
1163a608692SPiotr Kubaj	rotldi	27,3,62
1173a608692SPiotr Kubaj
1183a608692SPiotr Kubaj	andc	0,9,8
1193a608692SPiotr Kubaj	andc	3,10,9
1203a608692SPiotr Kubaj	andc	4,7,11
1213a608692SPiotr Kubaj	andc	5,8,7
1223a608692SPiotr Kubaj	xor	7,7,0
1233a608692SPiotr Kubaj	andc	0,11,10
1243a608692SPiotr Kubaj	xor	8,8,3
1253a608692SPiotr Kubaj	ld	3,80(1)
1263a608692SPiotr Kubaj	xor	10,10,4
1273a608692SPiotr Kubaj	xor	11,11,5
1283a608692SPiotr Kubaj	xor	9,9,0
1293a608692SPiotr Kubaj	ldu	5,8(3)
1303a608692SPiotr Kubaj
1313a608692SPiotr Kubaj	andc	0,14,6
1323a608692SPiotr Kubaj	std	3,80(1)
1333a608692SPiotr Kubaj	andc	3,15,14
1343a608692SPiotr Kubaj	andc	4,12,16
1353a608692SPiotr Kubaj	xor	7,7,5
1363a608692SPiotr Kubaj	andc	5,6,12
1373a608692SPiotr Kubaj	xor	12,12,0
1383a608692SPiotr Kubaj	andc	0,16,15
1393a608692SPiotr Kubaj	xor	6,6,3
1403a608692SPiotr Kubaj	xor	15,15,4
1413a608692SPiotr Kubaj	xor	16,16,5
1423a608692SPiotr Kubaj	xor	14,14,0
1433a608692SPiotr Kubaj
1443a608692SPiotr Kubaj	andc	0,19,18
1453a608692SPiotr Kubaj	andc	3,20,19
1463a608692SPiotr Kubaj	andc	4,17,21
1473a608692SPiotr Kubaj	andc	5,18,17
1483a608692SPiotr Kubaj	xor	17,17,0
1493a608692SPiotr Kubaj	andc	0,21,20
1503a608692SPiotr Kubaj	xor	18,18,3
1513a608692SPiotr Kubaj	xor	20,20,4
1523a608692SPiotr Kubaj	xor	21,21,5
1533a608692SPiotr Kubaj	xor	19,19,0
1543a608692SPiotr Kubaj
1553a608692SPiotr Kubaj	andc	0,24,23
1563a608692SPiotr Kubaj	andc	3,25,24
1573a608692SPiotr Kubaj	andc	4,22,26
1583a608692SPiotr Kubaj	andc	5,23,22
1593a608692SPiotr Kubaj	xor	22,22,0
1603a608692SPiotr Kubaj	andc	0,26,25
1613a608692SPiotr Kubaj	xor	23,23,3
1623a608692SPiotr Kubaj	xor	25,25,4
1633a608692SPiotr Kubaj	xor	26,26,5
1643a608692SPiotr Kubaj	xor	24,24,0
1653a608692SPiotr Kubaj
1663a608692SPiotr Kubaj	andc	0,29,28
1673a608692SPiotr Kubaj	andc	3,30,29
1683a608692SPiotr Kubaj	andc	4,27,31
1693a608692SPiotr Kubaj	andc	5,28,27
1703a608692SPiotr Kubaj	xor	27,27,0
1713a608692SPiotr Kubaj	andc	0,31,30
1723a608692SPiotr Kubaj	xor	28,28,3
1733a608692SPiotr Kubaj	xor	30,30,4
1743a608692SPiotr Kubaj	xor	31,31,5
1753a608692SPiotr Kubaj	xor	29,29,0
1763a608692SPiotr Kubaj
1773a608692SPiotr Kubaj	bdnz	.Loop
1783a608692SPiotr Kubaj
1793a608692SPiotr Kubaj	blr
1803a608692SPiotr Kubaj.long	0
1813a608692SPiotr Kubaj.byte	0,12,0x14,0,0,0,0,0
1823a608692SPiotr Kubaj.size	KeccakF1600_int,.-KeccakF1600_int
1833a608692SPiotr Kubaj
1843a608692SPiotr Kubaj.type	KeccakF1600,@function
1853a608692SPiotr Kubaj.align	5
1863a608692SPiotr KubajKeccakF1600:
1873a608692SPiotr Kubaj.localentry	KeccakF1600,0
1883a608692SPiotr Kubaj
1893a608692SPiotr Kubaj	stdu	1,-272(1)
1903a608692SPiotr Kubaj	mflr	0
1913a608692SPiotr Kubaj	std	14,128(1)
1923a608692SPiotr Kubaj	std	15,136(1)
1933a608692SPiotr Kubaj	std	16,144(1)
1943a608692SPiotr Kubaj	std	17,152(1)
1953a608692SPiotr Kubaj	std	18,160(1)
1963a608692SPiotr Kubaj	std	19,168(1)
1973a608692SPiotr Kubaj	std	20,176(1)
1983a608692SPiotr Kubaj	std	21,184(1)
1993a608692SPiotr Kubaj	std	22,192(1)
2003a608692SPiotr Kubaj	std	23,200(1)
2013a608692SPiotr Kubaj	std	24,208(1)
2023a608692SPiotr Kubaj	std	25,216(1)
2033a608692SPiotr Kubaj	std	26,224(1)
2043a608692SPiotr Kubaj	std	27,232(1)
2053a608692SPiotr Kubaj	std	28,240(1)
2063a608692SPiotr Kubaj	std	29,248(1)
2073a608692SPiotr Kubaj	std	30,256(1)
2083a608692SPiotr Kubaj	std	31,264(1)
2093a608692SPiotr Kubaj	std	0,288(1)
2103a608692SPiotr Kubaj
2113a608692SPiotr Kubaj	bl	PICmeup
2123a608692SPiotr Kubaj	subi	12,12,8
2133a608692SPiotr Kubaj
2143a608692SPiotr Kubaj	std	3,48(1)
2153a608692SPiotr Kubaj
2163a608692SPiotr Kubaj
2173a608692SPiotr Kubaj
2183a608692SPiotr Kubaj	std	12,80(1)
2193a608692SPiotr Kubaj
2203a608692SPiotr Kubaj	ld	7,0(3)
2213a608692SPiotr Kubaj	ld	8,8(3)
2223a608692SPiotr Kubaj	ld	9,16(3)
2233a608692SPiotr Kubaj	ld	10,24(3)
2243a608692SPiotr Kubaj	ld	11,32(3)
2253a608692SPiotr Kubaj	ld	12,40(3)
2263a608692SPiotr Kubaj	ld	6,48(3)
2273a608692SPiotr Kubaj	ld	14,56(3)
2283a608692SPiotr Kubaj	ld	15,64(3)
2293a608692SPiotr Kubaj	ld	16,72(3)
2303a608692SPiotr Kubaj	ld	17,80(3)
2313a608692SPiotr Kubaj	ld	18,88(3)
2323a608692SPiotr Kubaj	ld	19,96(3)
2333a608692SPiotr Kubaj	ld	20,104(3)
2343a608692SPiotr Kubaj	ld	21,112(3)
2353a608692SPiotr Kubaj	ld	22,120(3)
2363a608692SPiotr Kubaj	ld	23,128(3)
2373a608692SPiotr Kubaj	ld	24,136(3)
2383a608692SPiotr Kubaj	ld	25,144(3)
2393a608692SPiotr Kubaj	ld	26,152(3)
2403a608692SPiotr Kubaj	ld	27,160(3)
2413a608692SPiotr Kubaj	ld	28,168(3)
2423a608692SPiotr Kubaj	ld	29,176(3)
2433a608692SPiotr Kubaj	ld	30,184(3)
2443a608692SPiotr Kubaj	ld	31,192(3)
2453a608692SPiotr Kubaj
2463a608692SPiotr Kubaj	bl	KeccakF1600_int
2473a608692SPiotr Kubaj
2483a608692SPiotr Kubaj	ld	3,48(1)
2493a608692SPiotr Kubaj	std	7,0(3)
2503a608692SPiotr Kubaj	std	8,8(3)
2513a608692SPiotr Kubaj	std	9,16(3)
2523a608692SPiotr Kubaj	std	10,24(3)
2533a608692SPiotr Kubaj	std	11,32(3)
2543a608692SPiotr Kubaj	std	12,40(3)
2553a608692SPiotr Kubaj	std	6,48(3)
2563a608692SPiotr Kubaj	std	14,56(3)
2573a608692SPiotr Kubaj	std	15,64(3)
2583a608692SPiotr Kubaj	std	16,72(3)
2593a608692SPiotr Kubaj	std	17,80(3)
2603a608692SPiotr Kubaj	std	18,88(3)
2613a608692SPiotr Kubaj	std	19,96(3)
2623a608692SPiotr Kubaj	std	20,104(3)
2633a608692SPiotr Kubaj	std	21,112(3)
2643a608692SPiotr Kubaj	std	22,120(3)
2653a608692SPiotr Kubaj	std	23,128(3)
2663a608692SPiotr Kubaj	std	24,136(3)
2673a608692SPiotr Kubaj	std	25,144(3)
2683a608692SPiotr Kubaj	std	26,152(3)
2693a608692SPiotr Kubaj	std	27,160(3)
2703a608692SPiotr Kubaj	std	28,168(3)
2713a608692SPiotr Kubaj	std	29,176(3)
2723a608692SPiotr Kubaj	std	30,184(3)
2733a608692SPiotr Kubaj	std	31,192(3)
2743a608692SPiotr Kubaj
2753a608692SPiotr Kubaj	ld	0,288(1)
2763a608692SPiotr Kubaj	ld	14,128(1)
2773a608692SPiotr Kubaj	ld	15,136(1)
2783a608692SPiotr Kubaj	ld	16,144(1)
2793a608692SPiotr Kubaj	ld	17,152(1)
2803a608692SPiotr Kubaj	ld	18,160(1)
2813a608692SPiotr Kubaj	ld	19,168(1)
2823a608692SPiotr Kubaj	ld	20,176(1)
2833a608692SPiotr Kubaj	ld	21,184(1)
2843a608692SPiotr Kubaj	ld	22,192(1)
2853a608692SPiotr Kubaj	ld	23,200(1)
2863a608692SPiotr Kubaj	ld	24,208(1)
2873a608692SPiotr Kubaj	ld	25,216(1)
2883a608692SPiotr Kubaj	ld	26,224(1)
2893a608692SPiotr Kubaj	ld	27,232(1)
2903a608692SPiotr Kubaj	ld	28,240(1)
2913a608692SPiotr Kubaj	ld	29,248(1)
2923a608692SPiotr Kubaj	ld	30,256(1)
2933a608692SPiotr Kubaj	ld	31,264(1)
2943a608692SPiotr Kubaj	mtlr	0
2953a608692SPiotr Kubaj	addi	1,1,272
2963a608692SPiotr Kubaj	blr
2973a608692SPiotr Kubaj.long	0
2983a608692SPiotr Kubaj.byte	0,12,4,1,0x80,18,1,0
2993a608692SPiotr Kubaj.long	0
3003a608692SPiotr Kubaj.size	KeccakF1600,.-KeccakF1600
3013a608692SPiotr Kubaj
3023a608692SPiotr Kubaj.type	dword_le_load,@function
3033a608692SPiotr Kubaj.align	5
3043a608692SPiotr Kubajdword_le_load:
3053a608692SPiotr Kubaj.localentry	dword_le_load,0
3063a608692SPiotr Kubaj
307*c0855eaaSJohn Baldwin	lbz	0,1(3)
308*c0855eaaSJohn Baldwin	lbz	4,2(3)
309*c0855eaaSJohn Baldwin	lbz	5,3(3)
3103a608692SPiotr Kubaj	insrdi	0,4,8,48
311*c0855eaaSJohn Baldwin	lbz	4,4(3)
3123a608692SPiotr Kubaj	insrdi	0,5,8,40
313*c0855eaaSJohn Baldwin	lbz	5,5(3)
3143a608692SPiotr Kubaj	insrdi	0,4,8,32
315*c0855eaaSJohn Baldwin	lbz	4,6(3)
3163a608692SPiotr Kubaj	insrdi	0,5,8,24
317*c0855eaaSJohn Baldwin	lbz	5,7(3)
3183a608692SPiotr Kubaj	insrdi	0,4,8,16
319*c0855eaaSJohn Baldwin	lbzu	4,8(3)
3203a608692SPiotr Kubaj	insrdi	0,5,8,8
3213a608692SPiotr Kubaj	insrdi	0,4,8,0
3223a608692SPiotr Kubaj	blr
3233a608692SPiotr Kubaj.long	0
3243a608692SPiotr Kubaj.byte	0,12,0x14,0,0,0,1,0
3253a608692SPiotr Kubaj.long	0
3263a608692SPiotr Kubaj.size	dword_le_load,.-dword_le_load
3273a608692SPiotr Kubaj
3283a608692SPiotr Kubaj.globl	SHA3_absorb
3293a608692SPiotr Kubaj.type	SHA3_absorb,@function
3303a608692SPiotr Kubaj.type	SHA3_absorb,@function
3313a608692SPiotr Kubaj.align	5
3323a608692SPiotr KubajSHA3_absorb:
3333a608692SPiotr Kubaj.localentry	SHA3_absorb,0
3343a608692SPiotr Kubaj
3353a608692SPiotr Kubaj	stdu	1,-272(1)
3363a608692SPiotr Kubaj	mflr	0
3373a608692SPiotr Kubaj	std	14,128(1)
3383a608692SPiotr Kubaj	std	15,136(1)
3393a608692SPiotr Kubaj	std	16,144(1)
3403a608692SPiotr Kubaj	std	17,152(1)
3413a608692SPiotr Kubaj	std	18,160(1)
3423a608692SPiotr Kubaj	std	19,168(1)
3433a608692SPiotr Kubaj	std	20,176(1)
3443a608692SPiotr Kubaj	std	21,184(1)
3453a608692SPiotr Kubaj	std	22,192(1)
3463a608692SPiotr Kubaj	std	23,200(1)
3473a608692SPiotr Kubaj	std	24,208(1)
3483a608692SPiotr Kubaj	std	25,216(1)
3493a608692SPiotr Kubaj	std	26,224(1)
3503a608692SPiotr Kubaj	std	27,232(1)
3513a608692SPiotr Kubaj	std	28,240(1)
3523a608692SPiotr Kubaj	std	29,248(1)
3533a608692SPiotr Kubaj	std	30,256(1)
3543a608692SPiotr Kubaj	std	31,264(1)
3553a608692SPiotr Kubaj	std	0,288(1)
3563a608692SPiotr Kubaj
3573a608692SPiotr Kubaj	bl	PICmeup
3583a608692SPiotr Kubaj	subi	4,4,1
3593a608692SPiotr Kubaj	subi	12,12,8
3603a608692SPiotr Kubaj
3613a608692SPiotr Kubaj	std	3,48(1)
3623a608692SPiotr Kubaj	std	4,56(1)
3633a608692SPiotr Kubaj	std	5,64(1)
3643a608692SPiotr Kubaj	std	6,72(1)
3653a608692SPiotr Kubaj	mr	0,6
3663a608692SPiotr Kubaj	std	12,80(1)
3673a608692SPiotr Kubaj
3683a608692SPiotr Kubaj	ld	7,0(3)
3693a608692SPiotr Kubaj	ld	8,8(3)
3703a608692SPiotr Kubaj	ld	9,16(3)
3713a608692SPiotr Kubaj	ld	10,24(3)
3723a608692SPiotr Kubaj	ld	11,32(3)
3733a608692SPiotr Kubaj	ld	12,40(3)
3743a608692SPiotr Kubaj	ld	6,48(3)
3753a608692SPiotr Kubaj	ld	14,56(3)
3763a608692SPiotr Kubaj	ld	15,64(3)
3773a608692SPiotr Kubaj	ld	16,72(3)
3783a608692SPiotr Kubaj	ld	17,80(3)
3793a608692SPiotr Kubaj	ld	18,88(3)
3803a608692SPiotr Kubaj	ld	19,96(3)
3813a608692SPiotr Kubaj	ld	20,104(3)
3823a608692SPiotr Kubaj	ld	21,112(3)
3833a608692SPiotr Kubaj	ld	22,120(3)
3843a608692SPiotr Kubaj	ld	23,128(3)
3853a608692SPiotr Kubaj	ld	24,136(3)
3863a608692SPiotr Kubaj	ld	25,144(3)
3873a608692SPiotr Kubaj	ld	26,152(3)
3883a608692SPiotr Kubaj	ld	27,160(3)
3893a608692SPiotr Kubaj	ld	28,168(3)
3903a608692SPiotr Kubaj	ld	29,176(3)
3913a608692SPiotr Kubaj	ld	30,184(3)
3923a608692SPiotr Kubaj	ld	31,192(3)
3933a608692SPiotr Kubaj
3943a608692SPiotr Kubaj	mr	3,4
3953a608692SPiotr Kubaj	mr	4,5
3963a608692SPiotr Kubaj	mr	5,0
3973a608692SPiotr Kubaj
3983a608692SPiotr Kubaj	b	.Loop_absorb
3993a608692SPiotr Kubaj
4003a608692SPiotr Kubaj.align	4
4013a608692SPiotr Kubaj.Loop_absorb:
4023a608692SPiotr Kubaj	cmpld	4,5
4033a608692SPiotr Kubaj	blt	.Labsorbed
4043a608692SPiotr Kubaj
4053a608692SPiotr Kubaj	sub	4,4,5
4063a608692SPiotr Kubaj	srwi	5,5,3
4073a608692SPiotr Kubaj	std	4,64(1)
4083a608692SPiotr Kubaj	mtctr	5
4093a608692SPiotr Kubaj	bl	dword_le_load
4103a608692SPiotr Kubaj	xor	7,7,0
4113a608692SPiotr Kubaj	bdz	.Lprocess_block
4123a608692SPiotr Kubaj	bl	dword_le_load
4133a608692SPiotr Kubaj	xor	8,8,0
4143a608692SPiotr Kubaj	bdz	.Lprocess_block
4153a608692SPiotr Kubaj	bl	dword_le_load
4163a608692SPiotr Kubaj	xor	9,9,0
4173a608692SPiotr Kubaj	bdz	.Lprocess_block
4183a608692SPiotr Kubaj	bl	dword_le_load
4193a608692SPiotr Kubaj	xor	10,10,0
4203a608692SPiotr Kubaj	bdz	.Lprocess_block
4213a608692SPiotr Kubaj	bl	dword_le_load
4223a608692SPiotr Kubaj	xor	11,11,0
4233a608692SPiotr Kubaj	bdz	.Lprocess_block
4243a608692SPiotr Kubaj	bl	dword_le_load
4253a608692SPiotr Kubaj	xor	12,12,0
4263a608692SPiotr Kubaj	bdz	.Lprocess_block
4273a608692SPiotr Kubaj	bl	dword_le_load
4283a608692SPiotr Kubaj	xor	6,6,0
4293a608692SPiotr Kubaj	bdz	.Lprocess_block
4303a608692SPiotr Kubaj	bl	dword_le_load
4313a608692SPiotr Kubaj	xor	14,14,0
4323a608692SPiotr Kubaj	bdz	.Lprocess_block
4333a608692SPiotr Kubaj	bl	dword_le_load
4343a608692SPiotr Kubaj	xor	15,15,0
4353a608692SPiotr Kubaj	bdz	.Lprocess_block
4363a608692SPiotr Kubaj	bl	dword_le_load
4373a608692SPiotr Kubaj	xor	16,16,0
4383a608692SPiotr Kubaj	bdz	.Lprocess_block
4393a608692SPiotr Kubaj	bl	dword_le_load
4403a608692SPiotr Kubaj	xor	17,17,0
4413a608692SPiotr Kubaj	bdz	.Lprocess_block
4423a608692SPiotr Kubaj	bl	dword_le_load
4433a608692SPiotr Kubaj	xor	18,18,0
4443a608692SPiotr Kubaj	bdz	.Lprocess_block
4453a608692SPiotr Kubaj	bl	dword_le_load
4463a608692SPiotr Kubaj	xor	19,19,0
4473a608692SPiotr Kubaj	bdz	.Lprocess_block
4483a608692SPiotr Kubaj	bl	dword_le_load
4493a608692SPiotr Kubaj	xor	20,20,0
4503a608692SPiotr Kubaj	bdz	.Lprocess_block
4513a608692SPiotr Kubaj	bl	dword_le_load
4523a608692SPiotr Kubaj	xor	21,21,0
4533a608692SPiotr Kubaj	bdz	.Lprocess_block
4543a608692SPiotr Kubaj	bl	dword_le_load
4553a608692SPiotr Kubaj	xor	22,22,0
4563a608692SPiotr Kubaj	bdz	.Lprocess_block
4573a608692SPiotr Kubaj	bl	dword_le_load
4583a608692SPiotr Kubaj	xor	23,23,0
4593a608692SPiotr Kubaj	bdz	.Lprocess_block
4603a608692SPiotr Kubaj	bl	dword_le_load
4613a608692SPiotr Kubaj	xor	24,24,0
4623a608692SPiotr Kubaj	bdz	.Lprocess_block
4633a608692SPiotr Kubaj	bl	dword_le_load
4643a608692SPiotr Kubaj	xor	25,25,0
4653a608692SPiotr Kubaj	bdz	.Lprocess_block
4663a608692SPiotr Kubaj	bl	dword_le_load
4673a608692SPiotr Kubaj	xor	26,26,0
4683a608692SPiotr Kubaj	bdz	.Lprocess_block
4693a608692SPiotr Kubaj	bl	dword_le_load
4703a608692SPiotr Kubaj	xor	27,27,0
4713a608692SPiotr Kubaj	bdz	.Lprocess_block
4723a608692SPiotr Kubaj	bl	dword_le_load
4733a608692SPiotr Kubaj	xor	28,28,0
4743a608692SPiotr Kubaj	bdz	.Lprocess_block
4753a608692SPiotr Kubaj	bl	dword_le_load
4763a608692SPiotr Kubaj	xor	29,29,0
4773a608692SPiotr Kubaj	bdz	.Lprocess_block
4783a608692SPiotr Kubaj	bl	dword_le_load
4793a608692SPiotr Kubaj	xor	30,30,0
4803a608692SPiotr Kubaj	bdz	.Lprocess_block
4813a608692SPiotr Kubaj	bl	dword_le_load
4823a608692SPiotr Kubaj	xor	31,31,0
4833a608692SPiotr Kubaj
4843a608692SPiotr Kubaj.Lprocess_block:
4853a608692SPiotr Kubaj	std	3,56(1)
4863a608692SPiotr Kubaj
4873a608692SPiotr Kubaj	bl	KeccakF1600_int
4883a608692SPiotr Kubaj
4893a608692SPiotr Kubaj	ld	0,80(1)
4903a608692SPiotr Kubaj	ld	5,72(1)
4913a608692SPiotr Kubaj	ld	4,64(1)
4923a608692SPiotr Kubaj	ld	3,56(1)
4933a608692SPiotr Kubaj	addic	0,0,-192
4943a608692SPiotr Kubaj	std	0,80(1)
4953a608692SPiotr Kubaj
4963a608692SPiotr Kubaj	b	.Loop_absorb
4973a608692SPiotr Kubaj
4983a608692SPiotr Kubaj.align	4
4993a608692SPiotr Kubaj.Labsorbed:
5003a608692SPiotr Kubaj	ld	3,48(1)
5013a608692SPiotr Kubaj	std	7,0(3)
5023a608692SPiotr Kubaj	std	8,8(3)
5033a608692SPiotr Kubaj	std	9,16(3)
5043a608692SPiotr Kubaj	std	10,24(3)
5053a608692SPiotr Kubaj	std	11,32(3)
5063a608692SPiotr Kubaj	std	12,40(3)
5073a608692SPiotr Kubaj	std	6,48(3)
5083a608692SPiotr Kubaj	std	14,56(3)
5093a608692SPiotr Kubaj	std	15,64(3)
5103a608692SPiotr Kubaj	std	16,72(3)
5113a608692SPiotr Kubaj	std	17,80(3)
5123a608692SPiotr Kubaj	std	18,88(3)
5133a608692SPiotr Kubaj	std	19,96(3)
5143a608692SPiotr Kubaj	std	20,104(3)
5153a608692SPiotr Kubaj	std	21,112(3)
5163a608692SPiotr Kubaj	std	22,120(3)
5173a608692SPiotr Kubaj	std	23,128(3)
5183a608692SPiotr Kubaj	std	24,136(3)
5193a608692SPiotr Kubaj	std	25,144(3)
5203a608692SPiotr Kubaj	std	26,152(3)
5213a608692SPiotr Kubaj	std	27,160(3)
5223a608692SPiotr Kubaj	std	28,168(3)
5233a608692SPiotr Kubaj	std	29,176(3)
5243a608692SPiotr Kubaj	std	30,184(3)
5253a608692SPiotr Kubaj	std	31,192(3)
5263a608692SPiotr Kubaj
5273a608692SPiotr Kubaj	mr	3,4
5283a608692SPiotr Kubaj	ld	0,288(1)
5293a608692SPiotr Kubaj	ld	14,128(1)
5303a608692SPiotr Kubaj	ld	15,136(1)
5313a608692SPiotr Kubaj	ld	16,144(1)
5323a608692SPiotr Kubaj	ld	17,152(1)
5333a608692SPiotr Kubaj	ld	18,160(1)
5343a608692SPiotr Kubaj	ld	19,168(1)
5353a608692SPiotr Kubaj	ld	20,176(1)
5363a608692SPiotr Kubaj	ld	21,184(1)
5373a608692SPiotr Kubaj	ld	22,192(1)
5383a608692SPiotr Kubaj	ld	23,200(1)
5393a608692SPiotr Kubaj	ld	24,208(1)
5403a608692SPiotr Kubaj	ld	25,216(1)
5413a608692SPiotr Kubaj	ld	26,224(1)
5423a608692SPiotr Kubaj	ld	27,232(1)
5433a608692SPiotr Kubaj	ld	28,240(1)
5443a608692SPiotr Kubaj	ld	29,248(1)
5453a608692SPiotr Kubaj	ld	30,256(1)
5463a608692SPiotr Kubaj	ld	31,264(1)
5473a608692SPiotr Kubaj	mtlr	0
5483a608692SPiotr Kubaj	addi	1,1,272
5493a608692SPiotr Kubaj	blr
5503a608692SPiotr Kubaj.long	0
5513a608692SPiotr Kubaj.byte	0,12,4,1,0x80,18,4,0
5523a608692SPiotr Kubaj.long	0
5533a608692SPiotr Kubaj.size	SHA3_absorb,.-SHA3_absorb
5543a608692SPiotr Kubaj.globl	SHA3_squeeze
5553a608692SPiotr Kubaj.type	SHA3_squeeze,@function
5563a608692SPiotr Kubaj.type	SHA3_squeeze,@function
5573a608692SPiotr Kubaj.align	5
5583a608692SPiotr KubajSHA3_squeeze:
5593a608692SPiotr Kubaj.localentry	SHA3_squeeze,0
5603a608692SPiotr Kubaj
5613a608692SPiotr Kubaj	stdu	1,-80(1)
5623a608692SPiotr Kubaj	mflr	0
5633a608692SPiotr Kubaj	std	28,48(1)
5643a608692SPiotr Kubaj	std	29,56(1)
5653a608692SPiotr Kubaj	std	30,64(1)
5663a608692SPiotr Kubaj	std	31,72(1)
5673a608692SPiotr Kubaj	std	0,96(1)
5683a608692SPiotr Kubaj
5693a608692SPiotr Kubaj	mr	28,3
5703a608692SPiotr Kubaj	subi	3,3,8
5713a608692SPiotr Kubaj	subi	29,4,1
5723a608692SPiotr Kubaj	mr	30,5
5733a608692SPiotr Kubaj	mr	31,6
5743a608692SPiotr Kubaj	b	.Loop_squeeze
5753a608692SPiotr Kubaj
5763a608692SPiotr Kubaj.align	4
5773a608692SPiotr Kubaj.Loop_squeeze:
5783a608692SPiotr Kubaj	ldu	0,8(3)
5793a608692SPiotr Kubaj	cmpldi	30,8
5803a608692SPiotr Kubaj	blt	.Lsqueeze_tail
5813a608692SPiotr Kubaj
582*c0855eaaSJohn Baldwin	stb	0,1(29)
5833a608692SPiotr Kubaj	srdi	0,0,8
584*c0855eaaSJohn Baldwin	stb	0,2(29)
5853a608692SPiotr Kubaj	srdi	0,0,8
586*c0855eaaSJohn Baldwin	stb	0,3(29)
5873a608692SPiotr Kubaj	srdi	0,0,8
588*c0855eaaSJohn Baldwin	stb	0,4(29)
5893a608692SPiotr Kubaj	srdi	0,0,8
590*c0855eaaSJohn Baldwin	stb	0,5(29)
5913a608692SPiotr Kubaj	srdi	0,0,8
592*c0855eaaSJohn Baldwin	stb	0,6(29)
5933a608692SPiotr Kubaj	srdi	0,0,8
594*c0855eaaSJohn Baldwin	stb	0,7(29)
5953a608692SPiotr Kubaj	srdi	0,0,8
596*c0855eaaSJohn Baldwin	stbu	0,8(29)
5973a608692SPiotr Kubaj
5983a608692SPiotr Kubaj	subic.	30,30,8
5993a608692SPiotr Kubaj	beq	.Lsqueeze_done
6003a608692SPiotr Kubaj
6013a608692SPiotr Kubaj	subic.	6,6,8
6023a608692SPiotr Kubaj	bgt	.Loop_squeeze
6033a608692SPiotr Kubaj
6043a608692SPiotr Kubaj	mr	3,28
6053a608692SPiotr Kubaj	bl	KeccakF1600
6063a608692SPiotr Kubaj	subi	3,28,8
6073a608692SPiotr Kubaj	mr	6,31
6083a608692SPiotr Kubaj	b	.Loop_squeeze
6093a608692SPiotr Kubaj
6103a608692SPiotr Kubaj.align	4
6113a608692SPiotr Kubaj.Lsqueeze_tail:
6123a608692SPiotr Kubaj	mtctr	30
6133a608692SPiotr Kubaj.Loop_tail:
6143a608692SPiotr Kubaj	stbu	0,1(29)
6153a608692SPiotr Kubaj	srdi	0,0,8
6163a608692SPiotr Kubaj	bdnz	.Loop_tail
6173a608692SPiotr Kubaj
6183a608692SPiotr Kubaj.Lsqueeze_done:
6193a608692SPiotr Kubaj	ld	0,96(1)
6203a608692SPiotr Kubaj	ld	28,48(1)
6213a608692SPiotr Kubaj	ld	29,56(1)
6223a608692SPiotr Kubaj	ld	30,64(1)
6233a608692SPiotr Kubaj	ld	31,72(1)
6243a608692SPiotr Kubaj	mtlr	0
6253a608692SPiotr Kubaj	addi	1,1,80
6263a608692SPiotr Kubaj	blr
6273a608692SPiotr Kubaj.long	0
6283a608692SPiotr Kubaj.byte	0,12,4,1,0x80,4,4,0
6293a608692SPiotr Kubaj.long	0
6303a608692SPiotr Kubaj.size	SHA3_squeeze,.-SHA3_squeeze
6313a608692SPiotr Kubaj.align	6
6323a608692SPiotr KubajPICmeup:
6333a608692SPiotr Kubaj	mflr	0
6343a608692SPiotr Kubaj	bcl	20,31,$+4
6353a608692SPiotr Kubaj	mflr	12
6363a608692SPiotr Kubaj	addi	12,12,56
6373a608692SPiotr Kubaj	mtlr	0
6383a608692SPiotr Kubaj	blr
6393a608692SPiotr Kubaj.long	0
6403a608692SPiotr Kubaj.byte	0,12,0x14,0,0,0,0,0
6413a608692SPiotr Kubaj.space	28
6423a608692SPiotr Kubaj.type	iotas,@object
6433a608692SPiotr Kubajiotas:
6443a608692SPiotr Kubaj.long	0x00000000,0x00000001
6453a608692SPiotr Kubaj.long	0x00000000,0x00008082
6463a608692SPiotr Kubaj.long	0x80000000,0x0000808a
6473a608692SPiotr Kubaj.long	0x80000000,0x80008000
6483a608692SPiotr Kubaj.long	0x00000000,0x0000808b
6493a608692SPiotr Kubaj.long	0x00000000,0x80000001
6503a608692SPiotr Kubaj.long	0x80000000,0x80008081
6513a608692SPiotr Kubaj.long	0x80000000,0x00008009
6523a608692SPiotr Kubaj.long	0x00000000,0x0000008a
6533a608692SPiotr Kubaj.long	0x00000000,0x00000088
6543a608692SPiotr Kubaj.long	0x00000000,0x80008009
6553a608692SPiotr Kubaj.long	0x00000000,0x8000000a
6563a608692SPiotr Kubaj.long	0x00000000,0x8000808b
6573a608692SPiotr Kubaj.long	0x80000000,0x0000008b
6583a608692SPiotr Kubaj.long	0x80000000,0x00008089
6593a608692SPiotr Kubaj.long	0x80000000,0x00008003
6603a608692SPiotr Kubaj.long	0x80000000,0x00008002
6613a608692SPiotr Kubaj.long	0x80000000,0x00000080
6623a608692SPiotr Kubaj.long	0x00000000,0x0000800a
6633a608692SPiotr Kubaj.long	0x80000000,0x8000000a
6643a608692SPiotr Kubaj.long	0x80000000,0x80008081
6653a608692SPiotr Kubaj.long	0x80000000,0x00008080
6663a608692SPiotr Kubaj.long	0x00000000,0x80000001
6673a608692SPiotr Kubaj.long	0x80000000,0x80008008
6683a608692SPiotr Kubaj.size	iotas,.-iotas
6693a608692SPiotr Kubaj.byte	75,101,99,99,97,107,45,49,54,48,48,32,97,98,115,111,114,98,32,97,110,100,32,115,113,117,101,101,122,101,32,102,111,114,32,80,80,67,54,52,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
6703a608692SPiotr Kubaj.align	2
671