xref: /freebsd/sys/crypto/openssl/powerpc64/aesp8-ppc.S (revision 77864b545b0aaa91bc78b1156c477825007a6233)
13a608692SPiotr Kubaj/* Do not modify. This file is auto-generated from aesp8-ppc.pl. */
23a608692SPiotr Kubaj.machine	"any"
33a608692SPiotr Kubaj
43a608692SPiotr Kubaj.abiversion	2
53a608692SPiotr Kubaj.text
63a608692SPiotr Kubaj
73a608692SPiotr Kubaj.align	7
83a608692SPiotr Kubajrcon:
93a608692SPiotr Kubaj.byte	0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00
103a608692SPiotr Kubaj.byte	0x1b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00
113a608692SPiotr Kubaj.byte	0x0d,0x0e,0x0f,0x0c,0x0d,0x0e,0x0f,0x0c,0x0d,0x0e,0x0f,0x0c,0x0d,0x0e,0x0f,0x0c
123a608692SPiotr Kubaj.byte	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
13*77864b54SEnji Cooper.long	0x0f102132, 0x43546576, 0x8798a9ba, 0xcbdcedfe
143a608692SPiotr Kubaj.Lconsts:
153a608692SPiotr Kubaj	mflr	0
163a608692SPiotr Kubaj	bcl	20,31,$+4
173a608692SPiotr Kubaj	mflr	6
18*77864b54SEnji Cooper	addi	6,6,-0x58
193a608692SPiotr Kubaj	mtlr	0
203a608692SPiotr Kubaj	blr
213a608692SPiotr Kubaj.long	0
223a608692SPiotr Kubaj.byte	0,12,0x14,0,0,0,0,0
233a608692SPiotr Kubaj.byte	65,69,83,32,102,111,114,32,80,111,119,101,114,73,83,65,32,50,46,48,55,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
243a608692SPiotr Kubaj.align	2
253a608692SPiotr Kubaj
263a608692SPiotr Kubaj.globl	aes_p8_set_encrypt_key
273a608692SPiotr Kubaj.type	aes_p8_set_encrypt_key,@function
283a608692SPiotr Kubaj.align	5
293a608692SPiotr Kubajaes_p8_set_encrypt_key:
303a608692SPiotr Kubaj.localentry	aes_p8_set_encrypt_key,0
313a608692SPiotr Kubaj
323a608692SPiotr Kubaj.Lset_encrypt_key:
333a608692SPiotr Kubaj	mflr	11
343a608692SPiotr Kubaj	std	11,16(1)
353a608692SPiotr Kubaj
363a608692SPiotr Kubaj	li	6,-1
373a608692SPiotr Kubaj	cmpldi	3,0
383a608692SPiotr Kubaj	beq-	.Lenc_key_abort
393a608692SPiotr Kubaj	cmpldi	5,0
403a608692SPiotr Kubaj	beq-	.Lenc_key_abort
413a608692SPiotr Kubaj	li	6,-2
423a608692SPiotr Kubaj	cmpwi	4,128
433a608692SPiotr Kubaj	blt-	.Lenc_key_abort
443a608692SPiotr Kubaj	cmpwi	4,256
453a608692SPiotr Kubaj	bgt-	.Lenc_key_abort
463a608692SPiotr Kubaj	andi.	0,4,0x3f
473a608692SPiotr Kubaj	bne-	.Lenc_key_abort
483a608692SPiotr Kubaj
493a608692SPiotr Kubaj	lis	0,0xfff0
503a608692SPiotr Kubaj	li	12,-1
513a608692SPiotr Kubaj	or	0,0,0
523a608692SPiotr Kubaj
533a608692SPiotr Kubaj	bl	.Lconsts
543a608692SPiotr Kubaj	mtlr	11
553a608692SPiotr Kubaj
563a608692SPiotr Kubaj	neg	9,3
573a608692SPiotr Kubaj	lvx	1,0,3
583a608692SPiotr Kubaj	addi	3,3,15
593a608692SPiotr Kubaj	lvsr	3,0,9
603a608692SPiotr Kubaj	li	8,0x20
613a608692SPiotr Kubaj	cmpwi	4,192
623a608692SPiotr Kubaj	lvx	2,0,3
633a608692SPiotr Kubaj
643a608692SPiotr Kubaj	lvx	4,0,6
653a608692SPiotr Kubaj
663a608692SPiotr Kubaj	lvx	5,8,6
673a608692SPiotr Kubaj	addi	6,6,0x10
683a608692SPiotr Kubaj	vperm	1,1,2,3
693a608692SPiotr Kubaj	li	7,8
703a608692SPiotr Kubaj	vxor	0,0,0
713a608692SPiotr Kubaj	mtctr	7
723a608692SPiotr Kubaj
733a608692SPiotr Kubaj	lvsr	8,0,5
743a608692SPiotr Kubaj	vspltisb	9,-1
753a608692SPiotr Kubaj	lvx	10,0,5
763a608692SPiotr Kubaj	vperm	9,0,9,8
773a608692SPiotr Kubaj
783a608692SPiotr Kubaj	blt	.Loop128
793a608692SPiotr Kubaj	addi	3,3,8
803a608692SPiotr Kubaj	beq	.L192
813a608692SPiotr Kubaj	addi	3,3,8
823a608692SPiotr Kubaj	b	.L256
833a608692SPiotr Kubaj
843a608692SPiotr Kubaj.align	4
853a608692SPiotr Kubaj.Loop128:
863a608692SPiotr Kubaj	vperm	3,1,1,5
873a608692SPiotr Kubaj	vsldoi	6,0,1,12
883a608692SPiotr Kubaj	vperm	11,1,1,8
893a608692SPiotr Kubaj	vsel	7,10,11,9
903a608692SPiotr Kubaj	vor	10,11,11
913a608692SPiotr Kubaj	.long	0x10632509
923a608692SPiotr Kubaj	stvx	7,0,5
933a608692SPiotr Kubaj	addi	5,5,16
943a608692SPiotr Kubaj
953a608692SPiotr Kubaj	vxor	1,1,6
963a608692SPiotr Kubaj	vsldoi	6,0,6,12
973a608692SPiotr Kubaj	vxor	1,1,6
983a608692SPiotr Kubaj	vsldoi	6,0,6,12
993a608692SPiotr Kubaj	vxor	1,1,6
1003a608692SPiotr Kubaj	vadduwm	4,4,4
1013a608692SPiotr Kubaj	vxor	1,1,3
1023a608692SPiotr Kubaj	bdnz	.Loop128
1033a608692SPiotr Kubaj
1043a608692SPiotr Kubaj	lvx	4,0,6
1053a608692SPiotr Kubaj
1063a608692SPiotr Kubaj	vperm	3,1,1,5
1073a608692SPiotr Kubaj	vsldoi	6,0,1,12
1083a608692SPiotr Kubaj	vperm	11,1,1,8
1093a608692SPiotr Kubaj	vsel	7,10,11,9
1103a608692SPiotr Kubaj	vor	10,11,11
1113a608692SPiotr Kubaj	.long	0x10632509
1123a608692SPiotr Kubaj	stvx	7,0,5
1133a608692SPiotr Kubaj	addi	5,5,16
1143a608692SPiotr Kubaj
1153a608692SPiotr Kubaj	vxor	1,1,6
1163a608692SPiotr Kubaj	vsldoi	6,0,6,12
1173a608692SPiotr Kubaj	vxor	1,1,6
1183a608692SPiotr Kubaj	vsldoi	6,0,6,12
1193a608692SPiotr Kubaj	vxor	1,1,6
1203a608692SPiotr Kubaj	vadduwm	4,4,4
1213a608692SPiotr Kubaj	vxor	1,1,3
1223a608692SPiotr Kubaj
1233a608692SPiotr Kubaj	vperm	3,1,1,5
1243a608692SPiotr Kubaj	vsldoi	6,0,1,12
1253a608692SPiotr Kubaj	vperm	11,1,1,8
1263a608692SPiotr Kubaj	vsel	7,10,11,9
1273a608692SPiotr Kubaj	vor	10,11,11
1283a608692SPiotr Kubaj	.long	0x10632509
1293a608692SPiotr Kubaj	stvx	7,0,5
1303a608692SPiotr Kubaj	addi	5,5,16
1313a608692SPiotr Kubaj
1323a608692SPiotr Kubaj	vxor	1,1,6
1333a608692SPiotr Kubaj	vsldoi	6,0,6,12
1343a608692SPiotr Kubaj	vxor	1,1,6
1353a608692SPiotr Kubaj	vsldoi	6,0,6,12
1363a608692SPiotr Kubaj	vxor	1,1,6
1373a608692SPiotr Kubaj	vxor	1,1,3
1383a608692SPiotr Kubaj	vperm	11,1,1,8
1393a608692SPiotr Kubaj	vsel	7,10,11,9
1403a608692SPiotr Kubaj	vor	10,11,11
1413a608692SPiotr Kubaj	stvx	7,0,5
1423a608692SPiotr Kubaj
1433a608692SPiotr Kubaj	addi	3,5,15
1443a608692SPiotr Kubaj	addi	5,5,0x50
1453a608692SPiotr Kubaj
1463a608692SPiotr Kubaj	li	8,10
1473a608692SPiotr Kubaj	b	.Ldone
1483a608692SPiotr Kubaj
1493a608692SPiotr Kubaj.align	4
1503a608692SPiotr Kubaj.L192:
1513a608692SPiotr Kubaj	lvx	6,0,3
1523a608692SPiotr Kubaj	li	7,4
1533a608692SPiotr Kubaj	vperm	11,1,1,8
1543a608692SPiotr Kubaj	vsel	7,10,11,9
1553a608692SPiotr Kubaj	vor	10,11,11
1563a608692SPiotr Kubaj	stvx	7,0,5
1573a608692SPiotr Kubaj	addi	5,5,16
1583a608692SPiotr Kubaj	vperm	2,2,6,3
1593a608692SPiotr Kubaj	vspltisb	3,8
1603a608692SPiotr Kubaj	mtctr	7
1613a608692SPiotr Kubaj	vsububm	5,5,3
1623a608692SPiotr Kubaj
1633a608692SPiotr Kubaj.Loop192:
1643a608692SPiotr Kubaj	vperm	3,2,2,5
1653a608692SPiotr Kubaj	vsldoi	6,0,1,12
1663a608692SPiotr Kubaj	.long	0x10632509
1673a608692SPiotr Kubaj
1683a608692SPiotr Kubaj	vxor	1,1,6
1693a608692SPiotr Kubaj	vsldoi	6,0,6,12
1703a608692SPiotr Kubaj	vxor	1,1,6
1713a608692SPiotr Kubaj	vsldoi	6,0,6,12
1723a608692SPiotr Kubaj	vxor	1,1,6
1733a608692SPiotr Kubaj
1743a608692SPiotr Kubaj	vsldoi	7,0,2,8
1753a608692SPiotr Kubaj	vspltw	6,1,3
1763a608692SPiotr Kubaj	vxor	6,6,2
1773a608692SPiotr Kubaj	vsldoi	2,0,2,12
1783a608692SPiotr Kubaj	vadduwm	4,4,4
1793a608692SPiotr Kubaj	vxor	2,2,6
1803a608692SPiotr Kubaj	vxor	1,1,3
1813a608692SPiotr Kubaj	vxor	2,2,3
1823a608692SPiotr Kubaj	vsldoi	7,7,1,8
1833a608692SPiotr Kubaj
1843a608692SPiotr Kubaj	vperm	3,2,2,5
1853a608692SPiotr Kubaj	vsldoi	6,0,1,12
1863a608692SPiotr Kubaj	vperm	11,7,7,8
1873a608692SPiotr Kubaj	vsel	7,10,11,9
1883a608692SPiotr Kubaj	vor	10,11,11
1893a608692SPiotr Kubaj	.long	0x10632509
1903a608692SPiotr Kubaj	stvx	7,0,5
1913a608692SPiotr Kubaj	addi	5,5,16
1923a608692SPiotr Kubaj
1933a608692SPiotr Kubaj	vsldoi	7,1,2,8
1943a608692SPiotr Kubaj	vxor	1,1,6
1953a608692SPiotr Kubaj	vsldoi	6,0,6,12
1963a608692SPiotr Kubaj	vperm	11,7,7,8
1973a608692SPiotr Kubaj	vsel	7,10,11,9
1983a608692SPiotr Kubaj	vor	10,11,11
1993a608692SPiotr Kubaj	vxor	1,1,6
2003a608692SPiotr Kubaj	vsldoi	6,0,6,12
2013a608692SPiotr Kubaj	vxor	1,1,6
2023a608692SPiotr Kubaj	stvx	7,0,5
2033a608692SPiotr Kubaj	addi	5,5,16
2043a608692SPiotr Kubaj
2053a608692SPiotr Kubaj	vspltw	6,1,3
2063a608692SPiotr Kubaj	vxor	6,6,2
2073a608692SPiotr Kubaj	vsldoi	2,0,2,12
2083a608692SPiotr Kubaj	vadduwm	4,4,4
2093a608692SPiotr Kubaj	vxor	2,2,6
2103a608692SPiotr Kubaj	vxor	1,1,3
2113a608692SPiotr Kubaj	vxor	2,2,3
2123a608692SPiotr Kubaj	vperm	11,1,1,8
2133a608692SPiotr Kubaj	vsel	7,10,11,9
2143a608692SPiotr Kubaj	vor	10,11,11
2153a608692SPiotr Kubaj	stvx	7,0,5
2163a608692SPiotr Kubaj	addi	3,5,15
2173a608692SPiotr Kubaj	addi	5,5,16
2183a608692SPiotr Kubaj	bdnz	.Loop192
2193a608692SPiotr Kubaj
2203a608692SPiotr Kubaj	li	8,12
2213a608692SPiotr Kubaj	addi	5,5,0x20
2223a608692SPiotr Kubaj	b	.Ldone
2233a608692SPiotr Kubaj
2243a608692SPiotr Kubaj.align	4
2253a608692SPiotr Kubaj.L256:
2263a608692SPiotr Kubaj	lvx	6,0,3
2273a608692SPiotr Kubaj	li	7,7
2283a608692SPiotr Kubaj	li	8,14
2293a608692SPiotr Kubaj	vperm	11,1,1,8
2303a608692SPiotr Kubaj	vsel	7,10,11,9
2313a608692SPiotr Kubaj	vor	10,11,11
2323a608692SPiotr Kubaj	stvx	7,0,5
2333a608692SPiotr Kubaj	addi	5,5,16
2343a608692SPiotr Kubaj	vperm	2,2,6,3
2353a608692SPiotr Kubaj	mtctr	7
2363a608692SPiotr Kubaj
2373a608692SPiotr Kubaj.Loop256:
2383a608692SPiotr Kubaj	vperm	3,2,2,5
2393a608692SPiotr Kubaj	vsldoi	6,0,1,12
2403a608692SPiotr Kubaj	vperm	11,2,2,8
2413a608692SPiotr Kubaj	vsel	7,10,11,9
2423a608692SPiotr Kubaj	vor	10,11,11
2433a608692SPiotr Kubaj	.long	0x10632509
2443a608692SPiotr Kubaj	stvx	7,0,5
2453a608692SPiotr Kubaj	addi	5,5,16
2463a608692SPiotr Kubaj
2473a608692SPiotr Kubaj	vxor	1,1,6
2483a608692SPiotr Kubaj	vsldoi	6,0,6,12
2493a608692SPiotr Kubaj	vxor	1,1,6
2503a608692SPiotr Kubaj	vsldoi	6,0,6,12
2513a608692SPiotr Kubaj	vxor	1,1,6
2523a608692SPiotr Kubaj	vadduwm	4,4,4
2533a608692SPiotr Kubaj	vxor	1,1,3
2543a608692SPiotr Kubaj	vperm	11,1,1,8
2553a608692SPiotr Kubaj	vsel	7,10,11,9
2563a608692SPiotr Kubaj	vor	10,11,11
2573a608692SPiotr Kubaj	stvx	7,0,5
2583a608692SPiotr Kubaj	addi	3,5,15
2593a608692SPiotr Kubaj	addi	5,5,16
2603a608692SPiotr Kubaj	bdz	.Ldone
2613a608692SPiotr Kubaj
2623a608692SPiotr Kubaj	vspltw	3,1,3
2633a608692SPiotr Kubaj	vsldoi	6,0,2,12
2643a608692SPiotr Kubaj	.long	0x106305C8
2653a608692SPiotr Kubaj
2663a608692SPiotr Kubaj	vxor	2,2,6
2673a608692SPiotr Kubaj	vsldoi	6,0,6,12
2683a608692SPiotr Kubaj	vxor	2,2,6
2693a608692SPiotr Kubaj	vsldoi	6,0,6,12
2703a608692SPiotr Kubaj	vxor	2,2,6
2713a608692SPiotr Kubaj
2723a608692SPiotr Kubaj	vxor	2,2,3
2733a608692SPiotr Kubaj	b	.Loop256
2743a608692SPiotr Kubaj
2753a608692SPiotr Kubaj.align	4
2763a608692SPiotr Kubaj.Ldone:
2773a608692SPiotr Kubaj	lvx	2,0,3
2783a608692SPiotr Kubaj	vsel	2,10,2,9
2793a608692SPiotr Kubaj	stvx	2,0,3
2803a608692SPiotr Kubaj	li	6,0
2813a608692SPiotr Kubaj	or	12,12,12
2823a608692SPiotr Kubaj	stw	8,0(5)
2833a608692SPiotr Kubaj
2843a608692SPiotr Kubaj.Lenc_key_abort:
2853a608692SPiotr Kubaj	mr	3,6
2863a608692SPiotr Kubaj	blr
2873a608692SPiotr Kubaj.long	0
2883a608692SPiotr Kubaj.byte	0,12,0x14,1,0,0,3,0
2893a608692SPiotr Kubaj.long	0
2903a608692SPiotr Kubaj.size	aes_p8_set_encrypt_key,.-aes_p8_set_encrypt_key
2913a608692SPiotr Kubaj
2923a608692SPiotr Kubaj.globl	aes_p8_set_decrypt_key
2933a608692SPiotr Kubaj.type	aes_p8_set_decrypt_key,@function
2943a608692SPiotr Kubaj.align	5
2953a608692SPiotr Kubajaes_p8_set_decrypt_key:
2963a608692SPiotr Kubaj.localentry	aes_p8_set_decrypt_key,0
2973a608692SPiotr Kubaj
2983a608692SPiotr Kubaj	stdu	1,-64(1)
2993a608692SPiotr Kubaj	mflr	10
3003a608692SPiotr Kubaj	std	10,64+16(1)
3013a608692SPiotr Kubaj	bl	.Lset_encrypt_key
3023a608692SPiotr Kubaj	mtlr	10
3033a608692SPiotr Kubaj
3043a608692SPiotr Kubaj	cmpwi	3,0
3053a608692SPiotr Kubaj	bne-	.Ldec_key_abort
3063a608692SPiotr Kubaj
3073a608692SPiotr Kubaj	slwi	7,8,4
3083a608692SPiotr Kubaj	subi	3,5,240
3093a608692SPiotr Kubaj	srwi	8,8,1
3103a608692SPiotr Kubaj	add	5,3,7
3113a608692SPiotr Kubaj	mtctr	8
3123a608692SPiotr Kubaj
3133a608692SPiotr Kubaj.Ldeckey:
3143a608692SPiotr Kubaj	lwz	0, 0(3)
3153a608692SPiotr Kubaj	lwz	6, 4(3)
3163a608692SPiotr Kubaj	lwz	7, 8(3)
3173a608692SPiotr Kubaj	lwz	8, 12(3)
3183a608692SPiotr Kubaj	addi	3,3,16
3193a608692SPiotr Kubaj	lwz	9, 0(5)
3203a608692SPiotr Kubaj	lwz	10,4(5)
3213a608692SPiotr Kubaj	lwz	11,8(5)
3223a608692SPiotr Kubaj	lwz	12,12(5)
3233a608692SPiotr Kubaj	stw	0, 0(5)
3243a608692SPiotr Kubaj	stw	6, 4(5)
3253a608692SPiotr Kubaj	stw	7, 8(5)
3263a608692SPiotr Kubaj	stw	8, 12(5)
3273a608692SPiotr Kubaj	subi	5,5,16
3283a608692SPiotr Kubaj	stw	9, -16(3)
3293a608692SPiotr Kubaj	stw	10,-12(3)
3303a608692SPiotr Kubaj	stw	11,-8(3)
3313a608692SPiotr Kubaj	stw	12,-4(3)
3323a608692SPiotr Kubaj	bdnz	.Ldeckey
3333a608692SPiotr Kubaj
3343a608692SPiotr Kubaj	xor	3,3,3
3353a608692SPiotr Kubaj.Ldec_key_abort:
3363a608692SPiotr Kubaj	addi	1,1,64
3373a608692SPiotr Kubaj	blr
3383a608692SPiotr Kubaj.long	0
3393a608692SPiotr Kubaj.byte	0,12,4,1,0x80,0,3,0
3403a608692SPiotr Kubaj.long	0
3413a608692SPiotr Kubaj.size	aes_p8_set_decrypt_key,.-aes_p8_set_decrypt_key
3423a608692SPiotr Kubaj.globl	aes_p8_encrypt
3433a608692SPiotr Kubaj.type	aes_p8_encrypt,@function
3443a608692SPiotr Kubaj.align	5
3453a608692SPiotr Kubajaes_p8_encrypt:
3463a608692SPiotr Kubaj.localentry	aes_p8_encrypt,0
3473a608692SPiotr Kubaj
3483a608692SPiotr Kubaj	lwz	6,240(5)
3493a608692SPiotr Kubaj	lis	0,0xfc00
3503a608692SPiotr Kubaj	li	12,-1
3513a608692SPiotr Kubaj	li	7,15
3523a608692SPiotr Kubaj	or	0,0,0
3533a608692SPiotr Kubaj
3543a608692SPiotr Kubaj	lvx	0,0,3
3553a608692SPiotr Kubaj	neg	11,4
3563a608692SPiotr Kubaj	lvx	1,7,3
3573a608692SPiotr Kubaj	lvsl	2,0,3
3583a608692SPiotr Kubaj
3593a608692SPiotr Kubaj	lvsl	3,0,11
3603a608692SPiotr Kubaj
3613a608692SPiotr Kubaj	li	7,16
3623a608692SPiotr Kubaj	vperm	0,0,1,2
3633a608692SPiotr Kubaj	lvx	1,0,5
3643a608692SPiotr Kubaj	lvsl	5,0,5
3653a608692SPiotr Kubaj	srwi	6,6,1
3663a608692SPiotr Kubaj	lvx	2,7,5
3673a608692SPiotr Kubaj	addi	7,7,16
3683a608692SPiotr Kubaj	subi	6,6,1
3693a608692SPiotr Kubaj	vperm	1,1,2,5
3703a608692SPiotr Kubaj
3713a608692SPiotr Kubaj	vxor	0,0,1
3723a608692SPiotr Kubaj	lvx	1,7,5
3733a608692SPiotr Kubaj	addi	7,7,16
3743a608692SPiotr Kubaj	mtctr	6
3753a608692SPiotr Kubaj
3763a608692SPiotr Kubaj.Loop_enc:
3773a608692SPiotr Kubaj	vperm	2,2,1,5
3783a608692SPiotr Kubaj	.long	0x10001508
3793a608692SPiotr Kubaj	lvx	2,7,5
3803a608692SPiotr Kubaj	addi	7,7,16
3813a608692SPiotr Kubaj	vperm	1,1,2,5
3823a608692SPiotr Kubaj	.long	0x10000D08
3833a608692SPiotr Kubaj	lvx	1,7,5
3843a608692SPiotr Kubaj	addi	7,7,16
3853a608692SPiotr Kubaj	bdnz	.Loop_enc
3863a608692SPiotr Kubaj
3873a608692SPiotr Kubaj	vperm	2,2,1,5
3883a608692SPiotr Kubaj	.long	0x10001508
3893a608692SPiotr Kubaj	lvx	2,7,5
3903a608692SPiotr Kubaj	vperm	1,1,2,5
3913a608692SPiotr Kubaj	.long	0x10000D09
3923a608692SPiotr Kubaj
3933a608692SPiotr Kubaj	vspltisb	2,-1
3943a608692SPiotr Kubaj	vxor	1,1,1
3953a608692SPiotr Kubaj	li	7,15
3963a608692SPiotr Kubaj	vperm	2,1,2,3
3973a608692SPiotr Kubaj
3983a608692SPiotr Kubaj	lvx	1,0,4
3993a608692SPiotr Kubaj	vperm	0,0,0,3
4003a608692SPiotr Kubaj	vsel	1,1,0,2
4013a608692SPiotr Kubaj	lvx	4,7,4
4023a608692SPiotr Kubaj	stvx	1,0,4
4033a608692SPiotr Kubaj	vsel	0,0,4,2
4043a608692SPiotr Kubaj	stvx	0,7,4
4053a608692SPiotr Kubaj
4063a608692SPiotr Kubaj	or	12,12,12
4073a608692SPiotr Kubaj	blr
4083a608692SPiotr Kubaj.long	0
4093a608692SPiotr Kubaj.byte	0,12,0x14,0,0,0,3,0
4103a608692SPiotr Kubaj.long	0
4113a608692SPiotr Kubaj.size	aes_p8_encrypt,.-aes_p8_encrypt
4123a608692SPiotr Kubaj.globl	aes_p8_decrypt
4133a608692SPiotr Kubaj.type	aes_p8_decrypt,@function
4143a608692SPiotr Kubaj.align	5
4153a608692SPiotr Kubajaes_p8_decrypt:
4163a608692SPiotr Kubaj.localentry	aes_p8_decrypt,0
4173a608692SPiotr Kubaj
4183a608692SPiotr Kubaj	lwz	6,240(5)
4193a608692SPiotr Kubaj	lis	0,0xfc00
4203a608692SPiotr Kubaj	li	12,-1
4213a608692SPiotr Kubaj	li	7,15
4223a608692SPiotr Kubaj	or	0,0,0
4233a608692SPiotr Kubaj
4243a608692SPiotr Kubaj	lvx	0,0,3
4253a608692SPiotr Kubaj	neg	11,4
4263a608692SPiotr Kubaj	lvx	1,7,3
4273a608692SPiotr Kubaj	lvsl	2,0,3
4283a608692SPiotr Kubaj
4293a608692SPiotr Kubaj	lvsl	3,0,11
4303a608692SPiotr Kubaj
4313a608692SPiotr Kubaj	li	7,16
4323a608692SPiotr Kubaj	vperm	0,0,1,2
4333a608692SPiotr Kubaj	lvx	1,0,5
4343a608692SPiotr Kubaj	lvsl	5,0,5
4353a608692SPiotr Kubaj	srwi	6,6,1
4363a608692SPiotr Kubaj	lvx	2,7,5
4373a608692SPiotr Kubaj	addi	7,7,16
4383a608692SPiotr Kubaj	subi	6,6,1
4393a608692SPiotr Kubaj	vperm	1,1,2,5
4403a608692SPiotr Kubaj
4413a608692SPiotr Kubaj	vxor	0,0,1
4423a608692SPiotr Kubaj	lvx	1,7,5
4433a608692SPiotr Kubaj	addi	7,7,16
4443a608692SPiotr Kubaj	mtctr	6
4453a608692SPiotr Kubaj
4463a608692SPiotr Kubaj.Loop_dec:
4473a608692SPiotr Kubaj	vperm	2,2,1,5
4483a608692SPiotr Kubaj	.long	0x10001548
4493a608692SPiotr Kubaj	lvx	2,7,5
4503a608692SPiotr Kubaj	addi	7,7,16
4513a608692SPiotr Kubaj	vperm	1,1,2,5
4523a608692SPiotr Kubaj	.long	0x10000D48
4533a608692SPiotr Kubaj	lvx	1,7,5
4543a608692SPiotr Kubaj	addi	7,7,16
4553a608692SPiotr Kubaj	bdnz	.Loop_dec
4563a608692SPiotr Kubaj
4573a608692SPiotr Kubaj	vperm	2,2,1,5
4583a608692SPiotr Kubaj	.long	0x10001548
4593a608692SPiotr Kubaj	lvx	2,7,5
4603a608692SPiotr Kubaj	vperm	1,1,2,5
4613a608692SPiotr Kubaj	.long	0x10000D49
4623a608692SPiotr Kubaj
4633a608692SPiotr Kubaj	vspltisb	2,-1
4643a608692SPiotr Kubaj	vxor	1,1,1
4653a608692SPiotr Kubaj	li	7,15
4663a608692SPiotr Kubaj	vperm	2,1,2,3
4673a608692SPiotr Kubaj
4683a608692SPiotr Kubaj	lvx	1,0,4
4693a608692SPiotr Kubaj	vperm	0,0,0,3
4703a608692SPiotr Kubaj	vsel	1,1,0,2
4713a608692SPiotr Kubaj	lvx	4,7,4
4723a608692SPiotr Kubaj	stvx	1,0,4
4733a608692SPiotr Kubaj	vsel	0,0,4,2
4743a608692SPiotr Kubaj	stvx	0,7,4
4753a608692SPiotr Kubaj
4763a608692SPiotr Kubaj	or	12,12,12
4773a608692SPiotr Kubaj	blr
4783a608692SPiotr Kubaj.long	0
4793a608692SPiotr Kubaj.byte	0,12,0x14,0,0,0,3,0
4803a608692SPiotr Kubaj.long	0
4813a608692SPiotr Kubaj.size	aes_p8_decrypt,.-aes_p8_decrypt
4823a608692SPiotr Kubaj.globl	aes_p8_cbc_encrypt
4833a608692SPiotr Kubaj.type	aes_p8_cbc_encrypt,@function
4843a608692SPiotr Kubaj.align	5
4853a608692SPiotr Kubajaes_p8_cbc_encrypt:
4863a608692SPiotr Kubaj.localentry	aes_p8_cbc_encrypt,0
4873a608692SPiotr Kubaj
4883a608692SPiotr Kubaj	cmpldi	5,16
4893a608692SPiotr Kubaj	.long	0x4dc00020
4903a608692SPiotr Kubaj
4913a608692SPiotr Kubaj	cmpwi	8,0
4923a608692SPiotr Kubaj	lis	0,0xffe0
4933a608692SPiotr Kubaj	li	12,-1
4943a608692SPiotr Kubaj	or	0,0,0
4953a608692SPiotr Kubaj
4963a608692SPiotr Kubaj	li	10,15
4973a608692SPiotr Kubaj	vxor	0,0,0
4983a608692SPiotr Kubaj
4993a608692SPiotr Kubaj
5003a608692SPiotr Kubaj	lvx	4,0,7
5013a608692SPiotr Kubaj	lvsl	6,0,7
5023a608692SPiotr Kubaj	lvx	5,10,7
5033a608692SPiotr Kubaj
5043a608692SPiotr Kubaj	vperm	4,4,5,6
5053a608692SPiotr Kubaj
5063a608692SPiotr Kubaj	neg	11,3
5073a608692SPiotr Kubaj	lvsl	10,0,6
5083a608692SPiotr Kubaj	lwz	9,240(6)
5093a608692SPiotr Kubaj
5103a608692SPiotr Kubaj	lvsr	6,0,11
5113a608692SPiotr Kubaj	lvx	5,0,3
5123a608692SPiotr Kubaj	addi	3,3,15
5133a608692SPiotr Kubaj
5143a608692SPiotr Kubaj
5153a608692SPiotr Kubaj	lvsr	8,0,4
5163a608692SPiotr Kubaj	vspltisb	9,-1
5173a608692SPiotr Kubaj	lvx	7,0,4
5183a608692SPiotr Kubaj	vperm	9,0,9,8
5193a608692SPiotr Kubaj
5203a608692SPiotr Kubaj
5213a608692SPiotr Kubaj	srwi	9,9,1
5223a608692SPiotr Kubaj	li	10,16
5233a608692SPiotr Kubaj	subi	9,9,1
5243a608692SPiotr Kubaj	beq	.Lcbc_dec
5253a608692SPiotr Kubaj
5263a608692SPiotr Kubaj.Lcbc_enc:
5273a608692SPiotr Kubaj	vor	2,5,5
5283a608692SPiotr Kubaj	lvx	5,0,3
5293a608692SPiotr Kubaj	addi	3,3,16
5303a608692SPiotr Kubaj	mtctr	9
5313a608692SPiotr Kubaj	subi	5,5,16
5323a608692SPiotr Kubaj
5333a608692SPiotr Kubaj	lvx	0,0,6
5343a608692SPiotr Kubaj	vperm	2,2,5,6
5353a608692SPiotr Kubaj	lvx	1,10,6
5363a608692SPiotr Kubaj	addi	10,10,16
5373a608692SPiotr Kubaj	vperm	0,0,1,10
5383a608692SPiotr Kubaj	vxor	2,2,0
5393a608692SPiotr Kubaj	lvx	0,10,6
5403a608692SPiotr Kubaj	addi	10,10,16
5413a608692SPiotr Kubaj	vxor	2,2,4
5423a608692SPiotr Kubaj
5433a608692SPiotr Kubaj.Loop_cbc_enc:
5443a608692SPiotr Kubaj	vperm	1,1,0,10
5453a608692SPiotr Kubaj	.long	0x10420D08
5463a608692SPiotr Kubaj	lvx	1,10,6
5473a608692SPiotr Kubaj	addi	10,10,16
5483a608692SPiotr Kubaj	vperm	0,0,1,10
5493a608692SPiotr Kubaj	.long	0x10420508
5503a608692SPiotr Kubaj	lvx	0,10,6
5513a608692SPiotr Kubaj	addi	10,10,16
5523a608692SPiotr Kubaj	bdnz	.Loop_cbc_enc
5533a608692SPiotr Kubaj
5543a608692SPiotr Kubaj	vperm	1,1,0,10
5553a608692SPiotr Kubaj	.long	0x10420D08
5563a608692SPiotr Kubaj	lvx	1,10,6
5573a608692SPiotr Kubaj	li	10,16
5583a608692SPiotr Kubaj	vperm	0,0,1,10
5593a608692SPiotr Kubaj	.long	0x10820509
5603a608692SPiotr Kubaj	cmpldi	5,16
5613a608692SPiotr Kubaj
5623a608692SPiotr Kubaj	vperm	3,4,4,8
5633a608692SPiotr Kubaj	vsel	2,7,3,9
5643a608692SPiotr Kubaj	vor	7,3,3
5653a608692SPiotr Kubaj	stvx	2,0,4
5663a608692SPiotr Kubaj	addi	4,4,16
5673a608692SPiotr Kubaj	bge	.Lcbc_enc
5683a608692SPiotr Kubaj
5693a608692SPiotr Kubaj	b	.Lcbc_done
5703a608692SPiotr Kubaj
5713a608692SPiotr Kubaj.align	4
5723a608692SPiotr Kubaj.Lcbc_dec:
5733a608692SPiotr Kubaj	cmpldi	5,128
5743a608692SPiotr Kubaj	bge	_aesp8_cbc_decrypt8x
5753a608692SPiotr Kubaj	vor	3,5,5
5763a608692SPiotr Kubaj	lvx	5,0,3
5773a608692SPiotr Kubaj	addi	3,3,16
5783a608692SPiotr Kubaj	mtctr	9
5793a608692SPiotr Kubaj	subi	5,5,16
5803a608692SPiotr Kubaj
5813a608692SPiotr Kubaj	lvx	0,0,6
5823a608692SPiotr Kubaj	vperm	3,3,5,6
5833a608692SPiotr Kubaj	lvx	1,10,6
5843a608692SPiotr Kubaj	addi	10,10,16
5853a608692SPiotr Kubaj	vperm	0,0,1,10
5863a608692SPiotr Kubaj	vxor	2,3,0
5873a608692SPiotr Kubaj	lvx	0,10,6
5883a608692SPiotr Kubaj	addi	10,10,16
5893a608692SPiotr Kubaj
5903a608692SPiotr Kubaj.Loop_cbc_dec:
5913a608692SPiotr Kubaj	vperm	1,1,0,10
5923a608692SPiotr Kubaj	.long	0x10420D48
5933a608692SPiotr Kubaj	lvx	1,10,6
5943a608692SPiotr Kubaj	addi	10,10,16
5953a608692SPiotr Kubaj	vperm	0,0,1,10
5963a608692SPiotr Kubaj	.long	0x10420548
5973a608692SPiotr Kubaj	lvx	0,10,6
5983a608692SPiotr Kubaj	addi	10,10,16
5993a608692SPiotr Kubaj	bdnz	.Loop_cbc_dec
6003a608692SPiotr Kubaj
6013a608692SPiotr Kubaj	vperm	1,1,0,10
6023a608692SPiotr Kubaj	.long	0x10420D48
6033a608692SPiotr Kubaj	lvx	1,10,6
6043a608692SPiotr Kubaj	li	10,16
6053a608692SPiotr Kubaj	vperm	0,0,1,10
6063a608692SPiotr Kubaj	.long	0x10420549
6073a608692SPiotr Kubaj	cmpldi	5,16
6083a608692SPiotr Kubaj
6093a608692SPiotr Kubaj	vxor	2,2,4
6103a608692SPiotr Kubaj	vor	4,3,3
6113a608692SPiotr Kubaj	vperm	3,2,2,8
6123a608692SPiotr Kubaj	vsel	2,7,3,9
6133a608692SPiotr Kubaj	vor	7,3,3
6143a608692SPiotr Kubaj	stvx	2,0,4
6153a608692SPiotr Kubaj	addi	4,4,16
6163a608692SPiotr Kubaj	bge	.Lcbc_dec
6173a608692SPiotr Kubaj
6183a608692SPiotr Kubaj.Lcbc_done:
6193a608692SPiotr Kubaj	addi	4,4,-1
6203a608692SPiotr Kubaj	lvx	2,0,4
6213a608692SPiotr Kubaj	vsel	2,7,2,9
6223a608692SPiotr Kubaj	stvx	2,0,4
6233a608692SPiotr Kubaj
6243a608692SPiotr Kubaj	neg	8,7
6253a608692SPiotr Kubaj	li	10,15
6263a608692SPiotr Kubaj	vxor	0,0,0
6273a608692SPiotr Kubaj	vspltisb	9,-1
6283a608692SPiotr Kubaj
6293a608692SPiotr Kubaj	lvsl	8,0,8
6303a608692SPiotr Kubaj	vperm	9,0,9,8
6313a608692SPiotr Kubaj
6323a608692SPiotr Kubaj	lvx	7,0,7
6333a608692SPiotr Kubaj	vperm	4,4,4,8
6343a608692SPiotr Kubaj	vsel	2,7,4,9
6353a608692SPiotr Kubaj	lvx	5,10,7
6363a608692SPiotr Kubaj	stvx	2,0,7
6373a608692SPiotr Kubaj	vsel	2,4,5,9
6383a608692SPiotr Kubaj	stvx	2,10,7
6393a608692SPiotr Kubaj
6403a608692SPiotr Kubaj	or	12,12,12
6413a608692SPiotr Kubaj	blr
6423a608692SPiotr Kubaj.long	0
6433a608692SPiotr Kubaj.byte	0,12,0x14,0,0,0,6,0
6443a608692SPiotr Kubaj.long	0
6453a608692SPiotr Kubaj.align	5
6463a608692SPiotr Kubaj_aesp8_cbc_decrypt8x:
6473a608692SPiotr Kubaj	stdu	1,-448(1)
6483a608692SPiotr Kubaj	li	10,207
6493a608692SPiotr Kubaj	li	11,223
6503a608692SPiotr Kubaj	stvx	20,10,1
6513a608692SPiotr Kubaj	addi	10,10,32
6523a608692SPiotr Kubaj	stvx	21,11,1
6533a608692SPiotr Kubaj	addi	11,11,32
6543a608692SPiotr Kubaj	stvx	22,10,1
6553a608692SPiotr Kubaj	addi	10,10,32
6563a608692SPiotr Kubaj	stvx	23,11,1
6573a608692SPiotr Kubaj	addi	11,11,32
6583a608692SPiotr Kubaj	stvx	24,10,1
6593a608692SPiotr Kubaj	addi	10,10,32
6603a608692SPiotr Kubaj	stvx	25,11,1
6613a608692SPiotr Kubaj	addi	11,11,32
6623a608692SPiotr Kubaj	stvx	26,10,1
6633a608692SPiotr Kubaj	addi	10,10,32
6643a608692SPiotr Kubaj	stvx	27,11,1
6653a608692SPiotr Kubaj	addi	11,11,32
6663a608692SPiotr Kubaj	stvx	28,10,1
6673a608692SPiotr Kubaj	addi	10,10,32
6683a608692SPiotr Kubaj	stvx	29,11,1
6693a608692SPiotr Kubaj	addi	11,11,32
6703a608692SPiotr Kubaj	stvx	30,10,1
6713a608692SPiotr Kubaj	stvx	31,11,1
6723a608692SPiotr Kubaj	li	0,-1
6733a608692SPiotr Kubaj	stw	12,396(1)
6743a608692SPiotr Kubaj	li	8,0x10
6753a608692SPiotr Kubaj	std	26,400(1)
6763a608692SPiotr Kubaj	li	26,0x20
6773a608692SPiotr Kubaj	std	27,408(1)
6783a608692SPiotr Kubaj	li	27,0x30
6793a608692SPiotr Kubaj	std	28,416(1)
6803a608692SPiotr Kubaj	li	28,0x40
6813a608692SPiotr Kubaj	std	29,424(1)
6823a608692SPiotr Kubaj	li	29,0x50
6833a608692SPiotr Kubaj	std	30,432(1)
6843a608692SPiotr Kubaj	li	30,0x60
6853a608692SPiotr Kubaj	std	31,440(1)
6863a608692SPiotr Kubaj	li	31,0x70
6873a608692SPiotr Kubaj	or	0,0,0
6883a608692SPiotr Kubaj
6893a608692SPiotr Kubaj	subi	9,9,3
6903a608692SPiotr Kubaj	subi	5,5,128
6913a608692SPiotr Kubaj
6923a608692SPiotr Kubaj	lvx	23,0,6
6933a608692SPiotr Kubaj	lvx	30,8,6
6943a608692SPiotr Kubaj	addi	6,6,0x20
6953a608692SPiotr Kubaj	lvx	31,0,6
6963a608692SPiotr Kubaj	vperm	23,23,30,10
6973a608692SPiotr Kubaj	addi	11,1,64+15
6983a608692SPiotr Kubaj	mtctr	9
6993a608692SPiotr Kubaj
7003a608692SPiotr Kubaj.Load_cbc_dec_key:
7013a608692SPiotr Kubaj	vperm	24,30,31,10
7023a608692SPiotr Kubaj	lvx	30,8,6
7033a608692SPiotr Kubaj	addi	6,6,0x20
7043a608692SPiotr Kubaj	stvx	24,0,11
7053a608692SPiotr Kubaj	vperm	25,31,30,10
7063a608692SPiotr Kubaj	lvx	31,0,6
7073a608692SPiotr Kubaj	stvx	25,8,11
7083a608692SPiotr Kubaj	addi	11,11,0x20
7093a608692SPiotr Kubaj	bdnz	.Load_cbc_dec_key
7103a608692SPiotr Kubaj
7113a608692SPiotr Kubaj	lvx	26,8,6
7123a608692SPiotr Kubaj	vperm	24,30,31,10
7133a608692SPiotr Kubaj	lvx	27,26,6
7143a608692SPiotr Kubaj	stvx	24,0,11
7153a608692SPiotr Kubaj	vperm	25,31,26,10
7163a608692SPiotr Kubaj	lvx	28,27,6
7173a608692SPiotr Kubaj	stvx	25,8,11
7183a608692SPiotr Kubaj	addi	11,1,64+15
7193a608692SPiotr Kubaj	vperm	26,26,27,10
7203a608692SPiotr Kubaj	lvx	29,28,6
7213a608692SPiotr Kubaj	vperm	27,27,28,10
7223a608692SPiotr Kubaj	lvx	30,29,6
7233a608692SPiotr Kubaj	vperm	28,28,29,10
7243a608692SPiotr Kubaj	lvx	31,30,6
7253a608692SPiotr Kubaj	vperm	29,29,30,10
7263a608692SPiotr Kubaj	lvx	14,31,6
7273a608692SPiotr Kubaj	vperm	30,30,31,10
7283a608692SPiotr Kubaj	lvx	24,0,11
7293a608692SPiotr Kubaj	vperm	31,31,14,10
7303a608692SPiotr Kubaj	lvx	25,8,11
7313a608692SPiotr Kubaj
7323a608692SPiotr Kubaj
7333a608692SPiotr Kubaj
7343a608692SPiotr Kubaj	subi	3,3,15
7353a608692SPiotr Kubaj
7363a608692SPiotr Kubaj
7373a608692SPiotr Kubaj	.long	0x7C001E99
7383a608692SPiotr Kubaj
7393a608692SPiotr Kubaj
7403a608692SPiotr Kubaj	.long	0x7C281E99
7413a608692SPiotr Kubaj
7423a608692SPiotr Kubaj	.long	0x7C5A1E99
7433a608692SPiotr Kubaj
7443a608692SPiotr Kubaj	.long	0x7C7B1E99
7453a608692SPiotr Kubaj
7463a608692SPiotr Kubaj	.long	0x7D5C1E99
7473a608692SPiotr Kubaj
7483a608692SPiotr Kubaj	vxor	14,0,23
7493a608692SPiotr Kubaj	.long	0x7D7D1E99
7503a608692SPiotr Kubaj
7513a608692SPiotr Kubaj	vxor	15,1,23
7523a608692SPiotr Kubaj	.long	0x7D9E1E99
7533a608692SPiotr Kubaj
7543a608692SPiotr Kubaj	vxor	16,2,23
7553a608692SPiotr Kubaj	.long	0x7DBF1E99
7563a608692SPiotr Kubaj	addi	3,3,0x80
7573a608692SPiotr Kubaj
7583a608692SPiotr Kubaj	vxor	17,3,23
7593a608692SPiotr Kubaj
7603a608692SPiotr Kubaj	vxor	18,10,23
7613a608692SPiotr Kubaj
7623a608692SPiotr Kubaj	vxor	19,11,23
7633a608692SPiotr Kubaj	vxor	20,12,23
7643a608692SPiotr Kubaj	vxor	21,13,23
7653a608692SPiotr Kubaj
7663a608692SPiotr Kubaj	mtctr	9
7673a608692SPiotr Kubaj	b	.Loop_cbc_dec8x
7683a608692SPiotr Kubaj.align	5
7693a608692SPiotr Kubaj.Loop_cbc_dec8x:
7703a608692SPiotr Kubaj	.long	0x11CEC548
7713a608692SPiotr Kubaj	.long	0x11EFC548
7723a608692SPiotr Kubaj	.long	0x1210C548
7733a608692SPiotr Kubaj	.long	0x1231C548
7743a608692SPiotr Kubaj	.long	0x1252C548
7753a608692SPiotr Kubaj	.long	0x1273C548
7763a608692SPiotr Kubaj	.long	0x1294C548
7773a608692SPiotr Kubaj	.long	0x12B5C548
7783a608692SPiotr Kubaj	lvx	24,26,11
7793a608692SPiotr Kubaj	addi	11,11,0x20
7803a608692SPiotr Kubaj
7813a608692SPiotr Kubaj	.long	0x11CECD48
7823a608692SPiotr Kubaj	.long	0x11EFCD48
7833a608692SPiotr Kubaj	.long	0x1210CD48
7843a608692SPiotr Kubaj	.long	0x1231CD48
7853a608692SPiotr Kubaj	.long	0x1252CD48
7863a608692SPiotr Kubaj	.long	0x1273CD48
7873a608692SPiotr Kubaj	.long	0x1294CD48
7883a608692SPiotr Kubaj	.long	0x12B5CD48
7893a608692SPiotr Kubaj	lvx	25,8,11
7903a608692SPiotr Kubaj	bdnz	.Loop_cbc_dec8x
7913a608692SPiotr Kubaj
7923a608692SPiotr Kubaj	subic	5,5,128
7933a608692SPiotr Kubaj	.long	0x11CEC548
7943a608692SPiotr Kubaj	.long	0x11EFC548
7953a608692SPiotr Kubaj	.long	0x1210C548
7963a608692SPiotr Kubaj	.long	0x1231C548
7973a608692SPiotr Kubaj	.long	0x1252C548
7983a608692SPiotr Kubaj	.long	0x1273C548
7993a608692SPiotr Kubaj	.long	0x1294C548
8003a608692SPiotr Kubaj	.long	0x12B5C548
8013a608692SPiotr Kubaj
8023a608692SPiotr Kubaj	subfe.	0,0,0
8033a608692SPiotr Kubaj	.long	0x11CECD48
8043a608692SPiotr Kubaj	.long	0x11EFCD48
8053a608692SPiotr Kubaj	.long	0x1210CD48
8063a608692SPiotr Kubaj	.long	0x1231CD48
8073a608692SPiotr Kubaj	.long	0x1252CD48
8083a608692SPiotr Kubaj	.long	0x1273CD48
8093a608692SPiotr Kubaj	.long	0x1294CD48
8103a608692SPiotr Kubaj	.long	0x12B5CD48
8113a608692SPiotr Kubaj
8123a608692SPiotr Kubaj	and	0,0,5
8133a608692SPiotr Kubaj	.long	0x11CED548
8143a608692SPiotr Kubaj	.long	0x11EFD548
8153a608692SPiotr Kubaj	.long	0x1210D548
8163a608692SPiotr Kubaj	.long	0x1231D548
8173a608692SPiotr Kubaj	.long	0x1252D548
8183a608692SPiotr Kubaj	.long	0x1273D548
8193a608692SPiotr Kubaj	.long	0x1294D548
8203a608692SPiotr Kubaj	.long	0x12B5D548
8213a608692SPiotr Kubaj
8223a608692SPiotr Kubaj	add	3,3,0
8233a608692SPiotr Kubaj
8243a608692SPiotr Kubaj
8253a608692SPiotr Kubaj
8263a608692SPiotr Kubaj	.long	0x11CEDD48
8273a608692SPiotr Kubaj	.long	0x11EFDD48
8283a608692SPiotr Kubaj	.long	0x1210DD48
8293a608692SPiotr Kubaj	.long	0x1231DD48
8303a608692SPiotr Kubaj	.long	0x1252DD48
8313a608692SPiotr Kubaj	.long	0x1273DD48
8323a608692SPiotr Kubaj	.long	0x1294DD48
8333a608692SPiotr Kubaj	.long	0x12B5DD48
8343a608692SPiotr Kubaj
8353a608692SPiotr Kubaj	addi	11,1,64+15
8363a608692SPiotr Kubaj	.long	0x11CEE548
8373a608692SPiotr Kubaj	.long	0x11EFE548
8383a608692SPiotr Kubaj	.long	0x1210E548
8393a608692SPiotr Kubaj	.long	0x1231E548
8403a608692SPiotr Kubaj	.long	0x1252E548
8413a608692SPiotr Kubaj	.long	0x1273E548
8423a608692SPiotr Kubaj	.long	0x1294E548
8433a608692SPiotr Kubaj	.long	0x12B5E548
8443a608692SPiotr Kubaj	lvx	24,0,11
8453a608692SPiotr Kubaj
8463a608692SPiotr Kubaj	.long	0x11CEED48
8473a608692SPiotr Kubaj	.long	0x11EFED48
8483a608692SPiotr Kubaj	.long	0x1210ED48
8493a608692SPiotr Kubaj	.long	0x1231ED48
8503a608692SPiotr Kubaj	.long	0x1252ED48
8513a608692SPiotr Kubaj	.long	0x1273ED48
8523a608692SPiotr Kubaj	.long	0x1294ED48
8533a608692SPiotr Kubaj	.long	0x12B5ED48
8543a608692SPiotr Kubaj	lvx	25,8,11
8553a608692SPiotr Kubaj
8563a608692SPiotr Kubaj	.long	0x11CEF548
8573a608692SPiotr Kubaj	vxor	4,4,31
8583a608692SPiotr Kubaj	.long	0x11EFF548
8593a608692SPiotr Kubaj	vxor	0,0,31
8603a608692SPiotr Kubaj	.long	0x1210F548
8613a608692SPiotr Kubaj	vxor	1,1,31
8623a608692SPiotr Kubaj	.long	0x1231F548
8633a608692SPiotr Kubaj	vxor	2,2,31
8643a608692SPiotr Kubaj	.long	0x1252F548
8653a608692SPiotr Kubaj	vxor	3,3,31
8663a608692SPiotr Kubaj	.long	0x1273F548
8673a608692SPiotr Kubaj	vxor	10,10,31
8683a608692SPiotr Kubaj	.long	0x1294F548
8693a608692SPiotr Kubaj	vxor	11,11,31
8703a608692SPiotr Kubaj	.long	0x12B5F548
8713a608692SPiotr Kubaj	vxor	12,12,31
8723a608692SPiotr Kubaj
8733a608692SPiotr Kubaj	.long	0x11CE2549
8743a608692SPiotr Kubaj	.long	0x11EF0549
8753a608692SPiotr Kubaj	.long	0x7C001E99
8763a608692SPiotr Kubaj	.long	0x12100D49
8773a608692SPiotr Kubaj	.long	0x7C281E99
8783a608692SPiotr Kubaj	.long	0x12311549
8793a608692SPiotr Kubaj
8803a608692SPiotr Kubaj	.long	0x7C5A1E99
8813a608692SPiotr Kubaj	.long	0x12521D49
8823a608692SPiotr Kubaj
8833a608692SPiotr Kubaj	.long	0x7C7B1E99
8843a608692SPiotr Kubaj	.long	0x12735549
8853a608692SPiotr Kubaj
8863a608692SPiotr Kubaj	.long	0x7D5C1E99
8873a608692SPiotr Kubaj	.long	0x12945D49
8883a608692SPiotr Kubaj
8893a608692SPiotr Kubaj	.long	0x7D7D1E99
8903a608692SPiotr Kubaj	.long	0x12B56549
8913a608692SPiotr Kubaj
8923a608692SPiotr Kubaj	.long	0x7D9E1E99
8933a608692SPiotr Kubaj	vor	4,13,13
8943a608692SPiotr Kubaj
8953a608692SPiotr Kubaj	.long	0x7DBF1E99
8963a608692SPiotr Kubaj	addi	3,3,0x80
8973a608692SPiotr Kubaj
8983a608692SPiotr Kubaj
8993a608692SPiotr Kubaj
9003a608692SPiotr Kubaj	.long	0x7DC02799
9013a608692SPiotr Kubaj
9023a608692SPiotr Kubaj	vxor	14,0,23
9033a608692SPiotr Kubaj
9043a608692SPiotr Kubaj	.long	0x7DE82799
9053a608692SPiotr Kubaj
9063a608692SPiotr Kubaj	vxor	15,1,23
9073a608692SPiotr Kubaj
9083a608692SPiotr Kubaj	.long	0x7E1A2799
9093a608692SPiotr Kubaj	vxor	16,2,23
9103a608692SPiotr Kubaj
9113a608692SPiotr Kubaj	.long	0x7E3B2799
9123a608692SPiotr Kubaj	vxor	17,3,23
9133a608692SPiotr Kubaj
9143a608692SPiotr Kubaj	.long	0x7E5C2799
9153a608692SPiotr Kubaj	vxor	18,10,23
9163a608692SPiotr Kubaj
9173a608692SPiotr Kubaj	.long	0x7E7D2799
9183a608692SPiotr Kubaj	vxor	19,11,23
9193a608692SPiotr Kubaj
9203a608692SPiotr Kubaj	.long	0x7E9E2799
9213a608692SPiotr Kubaj	vxor	20,12,23
9223a608692SPiotr Kubaj	.long	0x7EBF2799
9233a608692SPiotr Kubaj	addi	4,4,0x80
9243a608692SPiotr Kubaj	vxor	21,13,23
9253a608692SPiotr Kubaj
9263a608692SPiotr Kubaj	mtctr	9
9273a608692SPiotr Kubaj	beq	.Loop_cbc_dec8x
9283a608692SPiotr Kubaj
9293a608692SPiotr Kubaj	addic.	5,5,128
9303a608692SPiotr Kubaj	beq	.Lcbc_dec8x_done
9313a608692SPiotr Kubaj	nop
9323a608692SPiotr Kubaj	nop
9333a608692SPiotr Kubaj
9343a608692SPiotr Kubaj.Loop_cbc_dec8x_tail:
9353a608692SPiotr Kubaj	.long	0x11EFC548
9363a608692SPiotr Kubaj	.long	0x1210C548
9373a608692SPiotr Kubaj	.long	0x1231C548
9383a608692SPiotr Kubaj	.long	0x1252C548
9393a608692SPiotr Kubaj	.long	0x1273C548
9403a608692SPiotr Kubaj	.long	0x1294C548
9413a608692SPiotr Kubaj	.long	0x12B5C548
9423a608692SPiotr Kubaj	lvx	24,26,11
9433a608692SPiotr Kubaj	addi	11,11,0x20
9443a608692SPiotr Kubaj
9453a608692SPiotr Kubaj	.long	0x11EFCD48
9463a608692SPiotr Kubaj	.long	0x1210CD48
9473a608692SPiotr Kubaj	.long	0x1231CD48
9483a608692SPiotr Kubaj	.long	0x1252CD48
9493a608692SPiotr Kubaj	.long	0x1273CD48
9503a608692SPiotr Kubaj	.long	0x1294CD48
9513a608692SPiotr Kubaj	.long	0x12B5CD48
9523a608692SPiotr Kubaj	lvx	25,8,11
9533a608692SPiotr Kubaj	bdnz	.Loop_cbc_dec8x_tail
9543a608692SPiotr Kubaj
9553a608692SPiotr Kubaj	.long	0x11EFC548
9563a608692SPiotr Kubaj	.long	0x1210C548
9573a608692SPiotr Kubaj	.long	0x1231C548
9583a608692SPiotr Kubaj	.long	0x1252C548
9593a608692SPiotr Kubaj	.long	0x1273C548
9603a608692SPiotr Kubaj	.long	0x1294C548
9613a608692SPiotr Kubaj	.long	0x12B5C548
9623a608692SPiotr Kubaj
9633a608692SPiotr Kubaj	.long	0x11EFCD48
9643a608692SPiotr Kubaj	.long	0x1210CD48
9653a608692SPiotr Kubaj	.long	0x1231CD48
9663a608692SPiotr Kubaj	.long	0x1252CD48
9673a608692SPiotr Kubaj	.long	0x1273CD48
9683a608692SPiotr Kubaj	.long	0x1294CD48
9693a608692SPiotr Kubaj	.long	0x12B5CD48
9703a608692SPiotr Kubaj
9713a608692SPiotr Kubaj	.long	0x11EFD548
9723a608692SPiotr Kubaj	.long	0x1210D548
9733a608692SPiotr Kubaj	.long	0x1231D548
9743a608692SPiotr Kubaj	.long	0x1252D548
9753a608692SPiotr Kubaj	.long	0x1273D548
9763a608692SPiotr Kubaj	.long	0x1294D548
9773a608692SPiotr Kubaj	.long	0x12B5D548
9783a608692SPiotr Kubaj
9793a608692SPiotr Kubaj	.long	0x11EFDD48
9803a608692SPiotr Kubaj	.long	0x1210DD48
9813a608692SPiotr Kubaj	.long	0x1231DD48
9823a608692SPiotr Kubaj	.long	0x1252DD48
9833a608692SPiotr Kubaj	.long	0x1273DD48
9843a608692SPiotr Kubaj	.long	0x1294DD48
9853a608692SPiotr Kubaj	.long	0x12B5DD48
9863a608692SPiotr Kubaj
9873a608692SPiotr Kubaj	.long	0x11EFE548
9883a608692SPiotr Kubaj	.long	0x1210E548
9893a608692SPiotr Kubaj	.long	0x1231E548
9903a608692SPiotr Kubaj	.long	0x1252E548
9913a608692SPiotr Kubaj	.long	0x1273E548
9923a608692SPiotr Kubaj	.long	0x1294E548
9933a608692SPiotr Kubaj	.long	0x12B5E548
9943a608692SPiotr Kubaj
9953a608692SPiotr Kubaj	.long	0x11EFED48
9963a608692SPiotr Kubaj	.long	0x1210ED48
9973a608692SPiotr Kubaj	.long	0x1231ED48
9983a608692SPiotr Kubaj	.long	0x1252ED48
9993a608692SPiotr Kubaj	.long	0x1273ED48
10003a608692SPiotr Kubaj	.long	0x1294ED48
10013a608692SPiotr Kubaj	.long	0x12B5ED48
10023a608692SPiotr Kubaj
10033a608692SPiotr Kubaj	.long	0x11EFF548
10043a608692SPiotr Kubaj	vxor	4,4,31
10053a608692SPiotr Kubaj	.long	0x1210F548
10063a608692SPiotr Kubaj	vxor	1,1,31
10073a608692SPiotr Kubaj	.long	0x1231F548
10083a608692SPiotr Kubaj	vxor	2,2,31
10093a608692SPiotr Kubaj	.long	0x1252F548
10103a608692SPiotr Kubaj	vxor	3,3,31
10113a608692SPiotr Kubaj	.long	0x1273F548
10123a608692SPiotr Kubaj	vxor	10,10,31
10133a608692SPiotr Kubaj	.long	0x1294F548
10143a608692SPiotr Kubaj	vxor	11,11,31
10153a608692SPiotr Kubaj	.long	0x12B5F548
10163a608692SPiotr Kubaj	vxor	12,12,31
10173a608692SPiotr Kubaj
10183a608692SPiotr Kubaj	cmplwi	5,32
10193a608692SPiotr Kubaj	blt	.Lcbc_dec8x_one
10203a608692SPiotr Kubaj	nop
10213a608692SPiotr Kubaj	beq	.Lcbc_dec8x_two
10223a608692SPiotr Kubaj	cmplwi	5,64
10233a608692SPiotr Kubaj	blt	.Lcbc_dec8x_three
10243a608692SPiotr Kubaj	nop
10253a608692SPiotr Kubaj	beq	.Lcbc_dec8x_four
10263a608692SPiotr Kubaj	cmplwi	5,96
10273a608692SPiotr Kubaj	blt	.Lcbc_dec8x_five
10283a608692SPiotr Kubaj	nop
10293a608692SPiotr Kubaj	beq	.Lcbc_dec8x_six
10303a608692SPiotr Kubaj
10313a608692SPiotr Kubaj.Lcbc_dec8x_seven:
10323a608692SPiotr Kubaj	.long	0x11EF2549
10333a608692SPiotr Kubaj	.long	0x12100D49
10343a608692SPiotr Kubaj	.long	0x12311549
10353a608692SPiotr Kubaj	.long	0x12521D49
10363a608692SPiotr Kubaj	.long	0x12735549
10373a608692SPiotr Kubaj	.long	0x12945D49
10383a608692SPiotr Kubaj	.long	0x12B56549
10393a608692SPiotr Kubaj	vor	4,13,13
10403a608692SPiotr Kubaj
10413a608692SPiotr Kubaj
10423a608692SPiotr Kubaj
10433a608692SPiotr Kubaj	.long	0x7DE02799
10443a608692SPiotr Kubaj
10453a608692SPiotr Kubaj	.long	0x7E082799
10463a608692SPiotr Kubaj
10473a608692SPiotr Kubaj	.long	0x7E3A2799
10483a608692SPiotr Kubaj
10493a608692SPiotr Kubaj	.long	0x7E5B2799
10503a608692SPiotr Kubaj
10513a608692SPiotr Kubaj	.long	0x7E7C2799
10523a608692SPiotr Kubaj
10533a608692SPiotr Kubaj	.long	0x7E9D2799
10543a608692SPiotr Kubaj	.long	0x7EBE2799
10553a608692SPiotr Kubaj	addi	4,4,0x70
10563a608692SPiotr Kubaj	b	.Lcbc_dec8x_done
10573a608692SPiotr Kubaj
10583a608692SPiotr Kubaj.align	5
10593a608692SPiotr Kubaj.Lcbc_dec8x_six:
10603a608692SPiotr Kubaj	.long	0x12102549
10613a608692SPiotr Kubaj	.long	0x12311549
10623a608692SPiotr Kubaj	.long	0x12521D49
10633a608692SPiotr Kubaj	.long	0x12735549
10643a608692SPiotr Kubaj	.long	0x12945D49
10653a608692SPiotr Kubaj	.long	0x12B56549
10663a608692SPiotr Kubaj	vor	4,13,13
10673a608692SPiotr Kubaj
10683a608692SPiotr Kubaj
10693a608692SPiotr Kubaj
10703a608692SPiotr Kubaj	.long	0x7E002799
10713a608692SPiotr Kubaj
10723a608692SPiotr Kubaj	.long	0x7E282799
10733a608692SPiotr Kubaj
10743a608692SPiotr Kubaj	.long	0x7E5A2799
10753a608692SPiotr Kubaj
10763a608692SPiotr Kubaj	.long	0x7E7B2799
10773a608692SPiotr Kubaj
10783a608692SPiotr Kubaj	.long	0x7E9C2799
10793a608692SPiotr Kubaj	.long	0x7EBD2799
10803a608692SPiotr Kubaj	addi	4,4,0x60
10813a608692SPiotr Kubaj	b	.Lcbc_dec8x_done
10823a608692SPiotr Kubaj
10833a608692SPiotr Kubaj.align	5
10843a608692SPiotr Kubaj.Lcbc_dec8x_five:
10853a608692SPiotr Kubaj	.long	0x12312549
10863a608692SPiotr Kubaj	.long	0x12521D49
10873a608692SPiotr Kubaj	.long	0x12735549
10883a608692SPiotr Kubaj	.long	0x12945D49
10893a608692SPiotr Kubaj	.long	0x12B56549
10903a608692SPiotr Kubaj	vor	4,13,13
10913a608692SPiotr Kubaj
10923a608692SPiotr Kubaj
10933a608692SPiotr Kubaj
10943a608692SPiotr Kubaj	.long	0x7E202799
10953a608692SPiotr Kubaj
10963a608692SPiotr Kubaj	.long	0x7E482799
10973a608692SPiotr Kubaj
10983a608692SPiotr Kubaj	.long	0x7E7A2799
10993a608692SPiotr Kubaj
11003a608692SPiotr Kubaj	.long	0x7E9B2799
11013a608692SPiotr Kubaj	.long	0x7EBC2799
11023a608692SPiotr Kubaj	addi	4,4,0x50
11033a608692SPiotr Kubaj	b	.Lcbc_dec8x_done
11043a608692SPiotr Kubaj
11053a608692SPiotr Kubaj.align	5
11063a608692SPiotr Kubaj.Lcbc_dec8x_four:
11073a608692SPiotr Kubaj	.long	0x12522549
11083a608692SPiotr Kubaj	.long	0x12735549
11093a608692SPiotr Kubaj	.long	0x12945D49
11103a608692SPiotr Kubaj	.long	0x12B56549
11113a608692SPiotr Kubaj	vor	4,13,13
11123a608692SPiotr Kubaj
11133a608692SPiotr Kubaj
11143a608692SPiotr Kubaj
11153a608692SPiotr Kubaj	.long	0x7E402799
11163a608692SPiotr Kubaj
11173a608692SPiotr Kubaj	.long	0x7E682799
11183a608692SPiotr Kubaj
11193a608692SPiotr Kubaj	.long	0x7E9A2799
11203a608692SPiotr Kubaj	.long	0x7EBB2799
11213a608692SPiotr Kubaj	addi	4,4,0x40
11223a608692SPiotr Kubaj	b	.Lcbc_dec8x_done
11233a608692SPiotr Kubaj
11243a608692SPiotr Kubaj.align	5
11253a608692SPiotr Kubaj.Lcbc_dec8x_three:
11263a608692SPiotr Kubaj	.long	0x12732549
11273a608692SPiotr Kubaj	.long	0x12945D49
11283a608692SPiotr Kubaj	.long	0x12B56549
11293a608692SPiotr Kubaj	vor	4,13,13
11303a608692SPiotr Kubaj
11313a608692SPiotr Kubaj
11323a608692SPiotr Kubaj
11333a608692SPiotr Kubaj	.long	0x7E602799
11343a608692SPiotr Kubaj
11353a608692SPiotr Kubaj	.long	0x7E882799
11363a608692SPiotr Kubaj	.long	0x7EBA2799
11373a608692SPiotr Kubaj	addi	4,4,0x30
11383a608692SPiotr Kubaj	b	.Lcbc_dec8x_done
11393a608692SPiotr Kubaj
11403a608692SPiotr Kubaj.align	5
11413a608692SPiotr Kubaj.Lcbc_dec8x_two:
11423a608692SPiotr Kubaj	.long	0x12942549
11433a608692SPiotr Kubaj	.long	0x12B56549
11443a608692SPiotr Kubaj	vor	4,13,13
11453a608692SPiotr Kubaj
11463a608692SPiotr Kubaj
11473a608692SPiotr Kubaj
11483a608692SPiotr Kubaj	.long	0x7E802799
11493a608692SPiotr Kubaj	.long	0x7EA82799
11503a608692SPiotr Kubaj	addi	4,4,0x20
11513a608692SPiotr Kubaj	b	.Lcbc_dec8x_done
11523a608692SPiotr Kubaj
11533a608692SPiotr Kubaj.align	5
11543a608692SPiotr Kubaj.Lcbc_dec8x_one:
11553a608692SPiotr Kubaj	.long	0x12B52549
11563a608692SPiotr Kubaj	vor	4,13,13
11573a608692SPiotr Kubaj
11583a608692SPiotr Kubaj
11593a608692SPiotr Kubaj	.long	0x7EA02799
11603a608692SPiotr Kubaj	addi	4,4,0x10
11613a608692SPiotr Kubaj
11623a608692SPiotr Kubaj.Lcbc_dec8x_done:
11633a608692SPiotr Kubaj
11643a608692SPiotr Kubaj	.long	0x7C803F99
11653a608692SPiotr Kubaj
11663a608692SPiotr Kubaj	li	10,79
11673a608692SPiotr Kubaj	li	11,95
11683a608692SPiotr Kubaj	stvx	6,10,1
11693a608692SPiotr Kubaj	addi	10,10,32
11703a608692SPiotr Kubaj	stvx	6,11,1
11713a608692SPiotr Kubaj	addi	11,11,32
11723a608692SPiotr Kubaj	stvx	6,10,1
11733a608692SPiotr Kubaj	addi	10,10,32
11743a608692SPiotr Kubaj	stvx	6,11,1
11753a608692SPiotr Kubaj	addi	11,11,32
11763a608692SPiotr Kubaj	stvx	6,10,1
11773a608692SPiotr Kubaj	addi	10,10,32
11783a608692SPiotr Kubaj	stvx	6,11,1
11793a608692SPiotr Kubaj	addi	11,11,32
11803a608692SPiotr Kubaj	stvx	6,10,1
11813a608692SPiotr Kubaj	addi	10,10,32
11823a608692SPiotr Kubaj	stvx	6,11,1
11833a608692SPiotr Kubaj	addi	11,11,32
11843a608692SPiotr Kubaj
11853a608692SPiotr Kubaj	or	12,12,12
11863a608692SPiotr Kubaj	lvx	20,10,1
11873a608692SPiotr Kubaj	addi	10,10,32
11883a608692SPiotr Kubaj	lvx	21,11,1
11893a608692SPiotr Kubaj	addi	11,11,32
11903a608692SPiotr Kubaj	lvx	22,10,1
11913a608692SPiotr Kubaj	addi	10,10,32
11923a608692SPiotr Kubaj	lvx	23,11,1
11933a608692SPiotr Kubaj	addi	11,11,32
11943a608692SPiotr Kubaj	lvx	24,10,1
11953a608692SPiotr Kubaj	addi	10,10,32
11963a608692SPiotr Kubaj	lvx	25,11,1
11973a608692SPiotr Kubaj	addi	11,11,32
11983a608692SPiotr Kubaj	lvx	26,10,1
11993a608692SPiotr Kubaj	addi	10,10,32
12003a608692SPiotr Kubaj	lvx	27,11,1
12013a608692SPiotr Kubaj	addi	11,11,32
12023a608692SPiotr Kubaj	lvx	28,10,1
12033a608692SPiotr Kubaj	addi	10,10,32
12043a608692SPiotr Kubaj	lvx	29,11,1
12053a608692SPiotr Kubaj	addi	11,11,32
12063a608692SPiotr Kubaj	lvx	30,10,1
12073a608692SPiotr Kubaj	lvx	31,11,1
12083a608692SPiotr Kubaj	ld	26,400(1)
12093a608692SPiotr Kubaj	ld	27,408(1)
12103a608692SPiotr Kubaj	ld	28,416(1)
12113a608692SPiotr Kubaj	ld	29,424(1)
12123a608692SPiotr Kubaj	ld	30,432(1)
12133a608692SPiotr Kubaj	ld	31,440(1)
12143a608692SPiotr Kubaj	addi	1,1,448
12153a608692SPiotr Kubaj	blr
12163a608692SPiotr Kubaj.long	0
12173a608692SPiotr Kubaj.byte	0,12,0x04,0,0x80,6,6,0
12183a608692SPiotr Kubaj.long	0
12193a608692SPiotr Kubaj.size	aes_p8_cbc_encrypt,.-aes_p8_cbc_encrypt
12203a608692SPiotr Kubaj.globl	aes_p8_ctr32_encrypt_blocks
12213a608692SPiotr Kubaj.type	aes_p8_ctr32_encrypt_blocks,@function
12223a608692SPiotr Kubaj.align	5
12233a608692SPiotr Kubajaes_p8_ctr32_encrypt_blocks:
12243a608692SPiotr Kubaj.localentry	aes_p8_ctr32_encrypt_blocks,0
12253a608692SPiotr Kubaj
12263a608692SPiotr Kubaj	cmpldi	5,1
12273a608692SPiotr Kubaj	.long	0x4dc00020
12283a608692SPiotr Kubaj
12293a608692SPiotr Kubaj	lis	0,0xfff0
12303a608692SPiotr Kubaj	li	12,-1
12313a608692SPiotr Kubaj	or	0,0,0
12323a608692SPiotr Kubaj
12333a608692SPiotr Kubaj	li	10,15
12343a608692SPiotr Kubaj	vxor	0,0,0
12353a608692SPiotr Kubaj
12363a608692SPiotr Kubaj
12373a608692SPiotr Kubaj	lvx	4,0,7
12383a608692SPiotr Kubaj	lvsl	6,0,7
12393a608692SPiotr Kubaj	lvx	5,10,7
12403a608692SPiotr Kubaj	vspltisb	11,1
12413a608692SPiotr Kubaj
12423a608692SPiotr Kubaj	vperm	4,4,5,6
12433a608692SPiotr Kubaj	vsldoi	11,0,11,1
12443a608692SPiotr Kubaj
12453a608692SPiotr Kubaj	neg	11,3
12463a608692SPiotr Kubaj	lvsl	10,0,6
12473a608692SPiotr Kubaj	lwz	9,240(6)
12483a608692SPiotr Kubaj
12493a608692SPiotr Kubaj	lvsr	6,0,11
12503a608692SPiotr Kubaj	lvx	5,0,3
12513a608692SPiotr Kubaj	addi	3,3,15
12523a608692SPiotr Kubaj
12533a608692SPiotr Kubaj
12543a608692SPiotr Kubaj	srwi	9,9,1
12553a608692SPiotr Kubaj	li	10,16
12563a608692SPiotr Kubaj	subi	9,9,1
12573a608692SPiotr Kubaj
12583a608692SPiotr Kubaj	cmpldi	5,8
12593a608692SPiotr Kubaj	bge	_aesp8_ctr32_encrypt8x
12603a608692SPiotr Kubaj
12613a608692SPiotr Kubaj	lvsr	8,0,4
12623a608692SPiotr Kubaj	vspltisb	9,-1
12633a608692SPiotr Kubaj	lvx	7,0,4
12643a608692SPiotr Kubaj	vperm	9,0,9,8
12653a608692SPiotr Kubaj
12663a608692SPiotr Kubaj
12673a608692SPiotr Kubaj	lvx	0,0,6
12683a608692SPiotr Kubaj	mtctr	9
12693a608692SPiotr Kubaj	lvx	1,10,6
12703a608692SPiotr Kubaj	addi	10,10,16
12713a608692SPiotr Kubaj	vperm	0,0,1,10
12723a608692SPiotr Kubaj	vxor	2,4,0
12733a608692SPiotr Kubaj	lvx	0,10,6
12743a608692SPiotr Kubaj	addi	10,10,16
12753a608692SPiotr Kubaj	b	.Loop_ctr32_enc
12763a608692SPiotr Kubaj
12773a608692SPiotr Kubaj.align	5
12783a608692SPiotr Kubaj.Loop_ctr32_enc:
12793a608692SPiotr Kubaj	vperm	1,1,0,10
12803a608692SPiotr Kubaj	.long	0x10420D08
12813a608692SPiotr Kubaj	lvx	1,10,6
12823a608692SPiotr Kubaj	addi	10,10,16
12833a608692SPiotr Kubaj	vperm	0,0,1,10
12843a608692SPiotr Kubaj	.long	0x10420508
12853a608692SPiotr Kubaj	lvx	0,10,6
12863a608692SPiotr Kubaj	addi	10,10,16
12873a608692SPiotr Kubaj	bdnz	.Loop_ctr32_enc
12883a608692SPiotr Kubaj
12893a608692SPiotr Kubaj	vadduwm	4,4,11
12903a608692SPiotr Kubaj	vor	3,5,5
12913a608692SPiotr Kubaj	lvx	5,0,3
12923a608692SPiotr Kubaj	addi	3,3,16
12933a608692SPiotr Kubaj	subic.	5,5,1
12943a608692SPiotr Kubaj
12953a608692SPiotr Kubaj	vperm	1,1,0,10
12963a608692SPiotr Kubaj	.long	0x10420D08
12973a608692SPiotr Kubaj	lvx	1,10,6
12983a608692SPiotr Kubaj	vperm	3,3,5,6
12993a608692SPiotr Kubaj	li	10,16
13003a608692SPiotr Kubaj	vperm	1,0,1,10
13013a608692SPiotr Kubaj	lvx	0,0,6
13023a608692SPiotr Kubaj	vxor	3,3,1
13033a608692SPiotr Kubaj	.long	0x10421D09
13043a608692SPiotr Kubaj
13053a608692SPiotr Kubaj	lvx	1,10,6
13063a608692SPiotr Kubaj	addi	10,10,16
13073a608692SPiotr Kubaj	vperm	2,2,2,8
13083a608692SPiotr Kubaj	vsel	3,7,2,9
13093a608692SPiotr Kubaj	mtctr	9
13103a608692SPiotr Kubaj	vperm	0,0,1,10
13113a608692SPiotr Kubaj	vor	7,2,2
13123a608692SPiotr Kubaj	vxor	2,4,0
13133a608692SPiotr Kubaj	lvx	0,10,6
13143a608692SPiotr Kubaj	addi	10,10,16
13153a608692SPiotr Kubaj	stvx	3,0,4
13163a608692SPiotr Kubaj	addi	4,4,16
13173a608692SPiotr Kubaj	bne	.Loop_ctr32_enc
13183a608692SPiotr Kubaj
13193a608692SPiotr Kubaj	addi	4,4,-1
13203a608692SPiotr Kubaj	lvx	2,0,4
13213a608692SPiotr Kubaj	vsel	2,7,2,9
13223a608692SPiotr Kubaj	stvx	2,0,4
13233a608692SPiotr Kubaj
13243a608692SPiotr Kubaj	or	12,12,12
13253a608692SPiotr Kubaj	blr
13263a608692SPiotr Kubaj.long	0
13273a608692SPiotr Kubaj.byte	0,12,0x14,0,0,0,6,0
13283a608692SPiotr Kubaj.long	0
13293a608692SPiotr Kubaj.align	5
13303a608692SPiotr Kubaj_aesp8_ctr32_encrypt8x:
13313a608692SPiotr Kubaj	stdu	1,-448(1)
13323a608692SPiotr Kubaj	li	10,207
13333a608692SPiotr Kubaj	li	11,223
13343a608692SPiotr Kubaj	stvx	20,10,1
13353a608692SPiotr Kubaj	addi	10,10,32
13363a608692SPiotr Kubaj	stvx	21,11,1
13373a608692SPiotr Kubaj	addi	11,11,32
13383a608692SPiotr Kubaj	stvx	22,10,1
13393a608692SPiotr Kubaj	addi	10,10,32
13403a608692SPiotr Kubaj	stvx	23,11,1
13413a608692SPiotr Kubaj	addi	11,11,32
13423a608692SPiotr Kubaj	stvx	24,10,1
13433a608692SPiotr Kubaj	addi	10,10,32
13443a608692SPiotr Kubaj	stvx	25,11,1
13453a608692SPiotr Kubaj	addi	11,11,32
13463a608692SPiotr Kubaj	stvx	26,10,1
13473a608692SPiotr Kubaj	addi	10,10,32
13483a608692SPiotr Kubaj	stvx	27,11,1
13493a608692SPiotr Kubaj	addi	11,11,32
13503a608692SPiotr Kubaj	stvx	28,10,1
13513a608692SPiotr Kubaj	addi	10,10,32
13523a608692SPiotr Kubaj	stvx	29,11,1
13533a608692SPiotr Kubaj	addi	11,11,32
13543a608692SPiotr Kubaj	stvx	30,10,1
13553a608692SPiotr Kubaj	stvx	31,11,1
13563a608692SPiotr Kubaj	li	0,-1
13573a608692SPiotr Kubaj	stw	12,396(1)
13583a608692SPiotr Kubaj	li	8,0x10
13593a608692SPiotr Kubaj	std	26,400(1)
13603a608692SPiotr Kubaj	li	26,0x20
13613a608692SPiotr Kubaj	std	27,408(1)
13623a608692SPiotr Kubaj	li	27,0x30
13633a608692SPiotr Kubaj	std	28,416(1)
13643a608692SPiotr Kubaj	li	28,0x40
13653a608692SPiotr Kubaj	std	29,424(1)
13663a608692SPiotr Kubaj	li	29,0x50
13673a608692SPiotr Kubaj	std	30,432(1)
13683a608692SPiotr Kubaj	li	30,0x60
13693a608692SPiotr Kubaj	std	31,440(1)
13703a608692SPiotr Kubaj	li	31,0x70
13713a608692SPiotr Kubaj	or	0,0,0
13723a608692SPiotr Kubaj
13733a608692SPiotr Kubaj	subi	9,9,3
13743a608692SPiotr Kubaj
13753a608692SPiotr Kubaj	lvx	23,0,6
13763a608692SPiotr Kubaj	lvx	30,8,6
13773a608692SPiotr Kubaj	addi	6,6,0x20
13783a608692SPiotr Kubaj	lvx	31,0,6
13793a608692SPiotr Kubaj	vperm	23,23,30,10
13803a608692SPiotr Kubaj	addi	11,1,64+15
13813a608692SPiotr Kubaj	mtctr	9
13823a608692SPiotr Kubaj
13833a608692SPiotr Kubaj.Load_ctr32_enc_key:
13843a608692SPiotr Kubaj	vperm	24,30,31,10
13853a608692SPiotr Kubaj	lvx	30,8,6
13863a608692SPiotr Kubaj	addi	6,6,0x20
13873a608692SPiotr Kubaj	stvx	24,0,11
13883a608692SPiotr Kubaj	vperm	25,31,30,10
13893a608692SPiotr Kubaj	lvx	31,0,6
13903a608692SPiotr Kubaj	stvx	25,8,11
13913a608692SPiotr Kubaj	addi	11,11,0x20
13923a608692SPiotr Kubaj	bdnz	.Load_ctr32_enc_key
13933a608692SPiotr Kubaj
13943a608692SPiotr Kubaj	lvx	26,8,6
13953a608692SPiotr Kubaj	vperm	24,30,31,10
13963a608692SPiotr Kubaj	lvx	27,26,6
13973a608692SPiotr Kubaj	stvx	24,0,11
13983a608692SPiotr Kubaj	vperm	25,31,26,10
13993a608692SPiotr Kubaj	lvx	28,27,6
14003a608692SPiotr Kubaj	stvx	25,8,11
14013a608692SPiotr Kubaj	addi	11,1,64+15
14023a608692SPiotr Kubaj	vperm	26,26,27,10
14033a608692SPiotr Kubaj	lvx	29,28,6
14043a608692SPiotr Kubaj	vperm	27,27,28,10
14053a608692SPiotr Kubaj	lvx	30,29,6
14063a608692SPiotr Kubaj	vperm	28,28,29,10
14073a608692SPiotr Kubaj	lvx	31,30,6
14083a608692SPiotr Kubaj	vperm	29,29,30,10
14093a608692SPiotr Kubaj	lvx	15,31,6
14103a608692SPiotr Kubaj	vperm	30,30,31,10
14113a608692SPiotr Kubaj	lvx	24,0,11
14123a608692SPiotr Kubaj	vperm	31,31,15,10
14133a608692SPiotr Kubaj	lvx	25,8,11
14143a608692SPiotr Kubaj
14153a608692SPiotr Kubaj	vadduwm	7,11,11
14163a608692SPiotr Kubaj	subi	3,3,15
14173a608692SPiotr Kubaj	sldi	5,5,4
14183a608692SPiotr Kubaj
14193a608692SPiotr Kubaj	vadduwm	16,4,11
14203a608692SPiotr Kubaj	vadduwm	17,4,7
14213a608692SPiotr Kubaj	vxor	15,4,23
14223a608692SPiotr Kubaj
14233a608692SPiotr Kubaj	vadduwm	18,16,7
14243a608692SPiotr Kubaj	vxor	16,16,23
14253a608692SPiotr Kubaj
14263a608692SPiotr Kubaj	vadduwm	19,17,7
14273a608692SPiotr Kubaj	vxor	17,17,23
14283a608692SPiotr Kubaj
14293a608692SPiotr Kubaj	vadduwm	20,18,7
14303a608692SPiotr Kubaj	vxor	18,18,23
14313a608692SPiotr Kubaj
14323a608692SPiotr Kubaj	vadduwm	21,19,7
14333a608692SPiotr Kubaj	vxor	19,19,23
14343a608692SPiotr Kubaj	vadduwm	22,20,7
14353a608692SPiotr Kubaj	vxor	20,20,23
14363a608692SPiotr Kubaj	vadduwm	4,21,7
14373a608692SPiotr Kubaj	vxor	21,21,23
14383a608692SPiotr Kubaj	vxor	22,22,23
14393a608692SPiotr Kubaj
14403a608692SPiotr Kubaj	mtctr	9
14413a608692SPiotr Kubaj	b	.Loop_ctr32_enc8x
14423a608692SPiotr Kubaj.align	5
14433a608692SPiotr Kubaj.Loop_ctr32_enc8x:
14443a608692SPiotr Kubaj	.long	0x11EFC508
14453a608692SPiotr Kubaj	.long	0x1210C508
14463a608692SPiotr Kubaj	.long	0x1231C508
14473a608692SPiotr Kubaj	.long	0x1252C508
14483a608692SPiotr Kubaj	.long	0x1273C508
14493a608692SPiotr Kubaj	.long	0x1294C508
14503a608692SPiotr Kubaj	.long	0x12B5C508
14513a608692SPiotr Kubaj	.long	0x12D6C508
14523a608692SPiotr Kubaj.Loop_ctr32_enc8x_middle:
14533a608692SPiotr Kubaj	lvx	24,26,11
14543a608692SPiotr Kubaj	addi	11,11,0x20
14553a608692SPiotr Kubaj
14563a608692SPiotr Kubaj	.long	0x11EFCD08
14573a608692SPiotr Kubaj	.long	0x1210CD08
14583a608692SPiotr Kubaj	.long	0x1231CD08
14593a608692SPiotr Kubaj	.long	0x1252CD08
14603a608692SPiotr Kubaj	.long	0x1273CD08
14613a608692SPiotr Kubaj	.long	0x1294CD08
14623a608692SPiotr Kubaj	.long	0x12B5CD08
14633a608692SPiotr Kubaj	.long	0x12D6CD08
14643a608692SPiotr Kubaj	lvx	25,8,11
14653a608692SPiotr Kubaj	bdnz	.Loop_ctr32_enc8x
14663a608692SPiotr Kubaj
14673a608692SPiotr Kubaj	subic	11,5,256
14683a608692SPiotr Kubaj	.long	0x11EFC508
14693a608692SPiotr Kubaj	.long	0x1210C508
14703a608692SPiotr Kubaj	.long	0x1231C508
14713a608692SPiotr Kubaj	.long	0x1252C508
14723a608692SPiotr Kubaj	.long	0x1273C508
14733a608692SPiotr Kubaj	.long	0x1294C508
14743a608692SPiotr Kubaj	.long	0x12B5C508
14753a608692SPiotr Kubaj	.long	0x12D6C508
14763a608692SPiotr Kubaj
14773a608692SPiotr Kubaj	subfe	0,0,0
14783a608692SPiotr Kubaj	.long	0x11EFCD08
14793a608692SPiotr Kubaj	.long	0x1210CD08
14803a608692SPiotr Kubaj	.long	0x1231CD08
14813a608692SPiotr Kubaj	.long	0x1252CD08
14823a608692SPiotr Kubaj	.long	0x1273CD08
14833a608692SPiotr Kubaj	.long	0x1294CD08
14843a608692SPiotr Kubaj	.long	0x12B5CD08
14853a608692SPiotr Kubaj	.long	0x12D6CD08
14863a608692SPiotr Kubaj
14873a608692SPiotr Kubaj	and	0,0,11
14883a608692SPiotr Kubaj	addi	11,1,64+15
14893a608692SPiotr Kubaj	.long	0x11EFD508
14903a608692SPiotr Kubaj	.long	0x1210D508
14913a608692SPiotr Kubaj	.long	0x1231D508
14923a608692SPiotr Kubaj	.long	0x1252D508
14933a608692SPiotr Kubaj	.long	0x1273D508
14943a608692SPiotr Kubaj	.long	0x1294D508
14953a608692SPiotr Kubaj	.long	0x12B5D508
14963a608692SPiotr Kubaj	.long	0x12D6D508
14973a608692SPiotr Kubaj	lvx	24,0,11
14983a608692SPiotr Kubaj
14993a608692SPiotr Kubaj	subic	5,5,129
15003a608692SPiotr Kubaj	.long	0x11EFDD08
15013a608692SPiotr Kubaj	addi	5,5,1
15023a608692SPiotr Kubaj	.long	0x1210DD08
15033a608692SPiotr Kubaj	.long	0x1231DD08
15043a608692SPiotr Kubaj	.long	0x1252DD08
15053a608692SPiotr Kubaj	.long	0x1273DD08
15063a608692SPiotr Kubaj	.long	0x1294DD08
15073a608692SPiotr Kubaj	.long	0x12B5DD08
15083a608692SPiotr Kubaj	.long	0x12D6DD08
15093a608692SPiotr Kubaj	lvx	25,8,11
15103a608692SPiotr Kubaj
15113a608692SPiotr Kubaj	.long	0x11EFE508
15123a608692SPiotr Kubaj	.long	0x7C001E99
15133a608692SPiotr Kubaj	.long	0x1210E508
15143a608692SPiotr Kubaj	.long	0x7C281E99
15153a608692SPiotr Kubaj	.long	0x1231E508
15163a608692SPiotr Kubaj	.long	0x7C5A1E99
15173a608692SPiotr Kubaj	.long	0x1252E508
15183a608692SPiotr Kubaj	.long	0x7C7B1E99
15193a608692SPiotr Kubaj	.long	0x1273E508
15203a608692SPiotr Kubaj	.long	0x7D5C1E99
15213a608692SPiotr Kubaj	.long	0x1294E508
15223a608692SPiotr Kubaj	.long	0x7D9D1E99
15233a608692SPiotr Kubaj	.long	0x12B5E508
15243a608692SPiotr Kubaj	.long	0x7DBE1E99
15253a608692SPiotr Kubaj	.long	0x12D6E508
15263a608692SPiotr Kubaj	.long	0x7DDF1E99
15273a608692SPiotr Kubaj	addi	3,3,0x80
15283a608692SPiotr Kubaj
15293a608692SPiotr Kubaj	.long	0x11EFED08
15303a608692SPiotr Kubaj
15313a608692SPiotr Kubaj	.long	0x1210ED08
15323a608692SPiotr Kubaj
15333a608692SPiotr Kubaj	.long	0x1231ED08
15343a608692SPiotr Kubaj
15353a608692SPiotr Kubaj	.long	0x1252ED08
15363a608692SPiotr Kubaj
15373a608692SPiotr Kubaj	.long	0x1273ED08
15383a608692SPiotr Kubaj
15393a608692SPiotr Kubaj	.long	0x1294ED08
15403a608692SPiotr Kubaj
15413a608692SPiotr Kubaj	.long	0x12B5ED08
15423a608692SPiotr Kubaj
15433a608692SPiotr Kubaj	.long	0x12D6ED08
15443a608692SPiotr Kubaj
15453a608692SPiotr Kubaj
15463a608692SPiotr Kubaj	add	3,3,0
15473a608692SPiotr Kubaj
15483a608692SPiotr Kubaj
15493a608692SPiotr Kubaj
15503a608692SPiotr Kubaj	subfe.	0,0,0
15513a608692SPiotr Kubaj	.long	0x11EFF508
15523a608692SPiotr Kubaj	vxor	0,0,31
15533a608692SPiotr Kubaj	.long	0x1210F508
15543a608692SPiotr Kubaj	vxor	1,1,31
15553a608692SPiotr Kubaj	.long	0x1231F508
15563a608692SPiotr Kubaj	vxor	2,2,31
15573a608692SPiotr Kubaj	.long	0x1252F508
15583a608692SPiotr Kubaj	vxor	3,3,31
15593a608692SPiotr Kubaj	.long	0x1273F508
15603a608692SPiotr Kubaj	vxor	10,10,31
15613a608692SPiotr Kubaj	.long	0x1294F508
15623a608692SPiotr Kubaj	vxor	12,12,31
15633a608692SPiotr Kubaj	.long	0x12B5F508
15643a608692SPiotr Kubaj	vxor	13,13,31
15653a608692SPiotr Kubaj	.long	0x12D6F508
15663a608692SPiotr Kubaj	vxor	14,14,31
15673a608692SPiotr Kubaj
15683a608692SPiotr Kubaj	bne	.Lctr32_enc8x_break
15693a608692SPiotr Kubaj
15703a608692SPiotr Kubaj	.long	0x100F0509
15713a608692SPiotr Kubaj	.long	0x10300D09
15723a608692SPiotr Kubaj	vadduwm	16,4,11
15733a608692SPiotr Kubaj	.long	0x10511509
15743a608692SPiotr Kubaj	vadduwm	17,4,7
15753a608692SPiotr Kubaj	vxor	15,4,23
15763a608692SPiotr Kubaj	.long	0x10721D09
15773a608692SPiotr Kubaj	vadduwm	18,16,7
15783a608692SPiotr Kubaj	vxor	16,16,23
15793a608692SPiotr Kubaj	.long	0x11535509
15803a608692SPiotr Kubaj	vadduwm	19,17,7
15813a608692SPiotr Kubaj	vxor	17,17,23
15823a608692SPiotr Kubaj	.long	0x11946509
15833a608692SPiotr Kubaj	vadduwm	20,18,7
15843a608692SPiotr Kubaj	vxor	18,18,23
15853a608692SPiotr Kubaj	.long	0x11B56D09
15863a608692SPiotr Kubaj	vadduwm	21,19,7
15873a608692SPiotr Kubaj	vxor	19,19,23
15883a608692SPiotr Kubaj	.long	0x11D67509
15893a608692SPiotr Kubaj	vadduwm	22,20,7
15903a608692SPiotr Kubaj	vxor	20,20,23
15913a608692SPiotr Kubaj
15923a608692SPiotr Kubaj	vadduwm	4,21,7
15933a608692SPiotr Kubaj	vxor	21,21,23
15943a608692SPiotr Kubaj
15953a608692SPiotr Kubaj	vxor	22,22,23
15963a608692SPiotr Kubaj	mtctr	9
15973a608692SPiotr Kubaj
15983a608692SPiotr Kubaj	.long	0x11EFC508
15993a608692SPiotr Kubaj	.long	0x7C002799
16003a608692SPiotr Kubaj
16013a608692SPiotr Kubaj	.long	0x1210C508
16023a608692SPiotr Kubaj	.long	0x7C282799
16033a608692SPiotr Kubaj
16043a608692SPiotr Kubaj	.long	0x1231C508
16053a608692SPiotr Kubaj	.long	0x7C5A2799
16063a608692SPiotr Kubaj
16073a608692SPiotr Kubaj	.long	0x1252C508
16083a608692SPiotr Kubaj	.long	0x7C7B2799
16093a608692SPiotr Kubaj
16103a608692SPiotr Kubaj	.long	0x1273C508
16113a608692SPiotr Kubaj	.long	0x7D5C2799
16123a608692SPiotr Kubaj
16133a608692SPiotr Kubaj	.long	0x1294C508
16143a608692SPiotr Kubaj	.long	0x7D9D2799
16153a608692SPiotr Kubaj
16163a608692SPiotr Kubaj	.long	0x12B5C508
16173a608692SPiotr Kubaj	.long	0x7DBE2799
16183a608692SPiotr Kubaj	.long	0x12D6C508
16193a608692SPiotr Kubaj	.long	0x7DDF2799
16203a608692SPiotr Kubaj	addi	4,4,0x80
16213a608692SPiotr Kubaj
16223a608692SPiotr Kubaj	b	.Loop_ctr32_enc8x_middle
16233a608692SPiotr Kubaj
16243a608692SPiotr Kubaj.align	5
16253a608692SPiotr Kubaj.Lctr32_enc8x_break:
16263a608692SPiotr Kubaj	cmpwi	5,-0x60
16273a608692SPiotr Kubaj	blt	.Lctr32_enc8x_one
16283a608692SPiotr Kubaj	nop
16293a608692SPiotr Kubaj	beq	.Lctr32_enc8x_two
16303a608692SPiotr Kubaj	cmpwi	5,-0x40
16313a608692SPiotr Kubaj	blt	.Lctr32_enc8x_three
16323a608692SPiotr Kubaj	nop
16333a608692SPiotr Kubaj	beq	.Lctr32_enc8x_four
16343a608692SPiotr Kubaj	cmpwi	5,-0x20
16353a608692SPiotr Kubaj	blt	.Lctr32_enc8x_five
16363a608692SPiotr Kubaj	nop
16373a608692SPiotr Kubaj	beq	.Lctr32_enc8x_six
16383a608692SPiotr Kubaj	cmpwi	5,0x00
16393a608692SPiotr Kubaj	blt	.Lctr32_enc8x_seven
16403a608692SPiotr Kubaj
16413a608692SPiotr Kubaj.Lctr32_enc8x_eight:
16423a608692SPiotr Kubaj	.long	0x11EF0509
16433a608692SPiotr Kubaj	.long	0x12100D09
16443a608692SPiotr Kubaj	.long	0x12311509
16453a608692SPiotr Kubaj	.long	0x12521D09
16463a608692SPiotr Kubaj	.long	0x12735509
16473a608692SPiotr Kubaj	.long	0x12946509
16483a608692SPiotr Kubaj	.long	0x12B56D09
16493a608692SPiotr Kubaj	.long	0x12D67509
16503a608692SPiotr Kubaj
16513a608692SPiotr Kubaj
16523a608692SPiotr Kubaj
16533a608692SPiotr Kubaj	.long	0x7DE02799
16543a608692SPiotr Kubaj
16553a608692SPiotr Kubaj	.long	0x7E082799
16563a608692SPiotr Kubaj
16573a608692SPiotr Kubaj	.long	0x7E3A2799
16583a608692SPiotr Kubaj
16593a608692SPiotr Kubaj	.long	0x7E5B2799
16603a608692SPiotr Kubaj
16613a608692SPiotr Kubaj	.long	0x7E7C2799
16623a608692SPiotr Kubaj
16633a608692SPiotr Kubaj	.long	0x7E9D2799
16643a608692SPiotr Kubaj
16653a608692SPiotr Kubaj	.long	0x7EBE2799
16663a608692SPiotr Kubaj	.long	0x7EDF2799
16673a608692SPiotr Kubaj	addi	4,4,0x80
16683a608692SPiotr Kubaj	b	.Lctr32_enc8x_done
16693a608692SPiotr Kubaj
16703a608692SPiotr Kubaj.align	5
16713a608692SPiotr Kubaj.Lctr32_enc8x_seven:
16723a608692SPiotr Kubaj	.long	0x11EF0D09
16733a608692SPiotr Kubaj	.long	0x12101509
16743a608692SPiotr Kubaj	.long	0x12311D09
16753a608692SPiotr Kubaj	.long	0x12525509
16763a608692SPiotr Kubaj	.long	0x12736509
16773a608692SPiotr Kubaj	.long	0x12946D09
16783a608692SPiotr Kubaj	.long	0x12B57509
16793a608692SPiotr Kubaj
16803a608692SPiotr Kubaj
16813a608692SPiotr Kubaj
16823a608692SPiotr Kubaj	.long	0x7DE02799
16833a608692SPiotr Kubaj
16843a608692SPiotr Kubaj	.long	0x7E082799
16853a608692SPiotr Kubaj
16863a608692SPiotr Kubaj	.long	0x7E3A2799
16873a608692SPiotr Kubaj
16883a608692SPiotr Kubaj	.long	0x7E5B2799
16893a608692SPiotr Kubaj
16903a608692SPiotr Kubaj	.long	0x7E7C2799
16913a608692SPiotr Kubaj
16923a608692SPiotr Kubaj	.long	0x7E9D2799
16933a608692SPiotr Kubaj	.long	0x7EBE2799
16943a608692SPiotr Kubaj	addi	4,4,0x70
16953a608692SPiotr Kubaj	b	.Lctr32_enc8x_done
16963a608692SPiotr Kubaj
16973a608692SPiotr Kubaj.align	5
16983a608692SPiotr Kubaj.Lctr32_enc8x_six:
16993a608692SPiotr Kubaj	.long	0x11EF1509
17003a608692SPiotr Kubaj	.long	0x12101D09
17013a608692SPiotr Kubaj	.long	0x12315509
17023a608692SPiotr Kubaj	.long	0x12526509
17033a608692SPiotr Kubaj	.long	0x12736D09
17043a608692SPiotr Kubaj	.long	0x12947509
17053a608692SPiotr Kubaj
17063a608692SPiotr Kubaj
17073a608692SPiotr Kubaj
17083a608692SPiotr Kubaj	.long	0x7DE02799
17093a608692SPiotr Kubaj
17103a608692SPiotr Kubaj	.long	0x7E082799
17113a608692SPiotr Kubaj
17123a608692SPiotr Kubaj	.long	0x7E3A2799
17133a608692SPiotr Kubaj
17143a608692SPiotr Kubaj	.long	0x7E5B2799
17153a608692SPiotr Kubaj
17163a608692SPiotr Kubaj	.long	0x7E7C2799
17173a608692SPiotr Kubaj	.long	0x7E9D2799
17183a608692SPiotr Kubaj	addi	4,4,0x60
17193a608692SPiotr Kubaj	b	.Lctr32_enc8x_done
17203a608692SPiotr Kubaj
17213a608692SPiotr Kubaj.align	5
17223a608692SPiotr Kubaj.Lctr32_enc8x_five:
17233a608692SPiotr Kubaj	.long	0x11EF1D09
17243a608692SPiotr Kubaj	.long	0x12105509
17253a608692SPiotr Kubaj	.long	0x12316509
17263a608692SPiotr Kubaj	.long	0x12526D09
17273a608692SPiotr Kubaj	.long	0x12737509
17283a608692SPiotr Kubaj
17293a608692SPiotr Kubaj
17303a608692SPiotr Kubaj
17313a608692SPiotr Kubaj	.long	0x7DE02799
17323a608692SPiotr Kubaj
17333a608692SPiotr Kubaj	.long	0x7E082799
17343a608692SPiotr Kubaj
17353a608692SPiotr Kubaj	.long	0x7E3A2799
17363a608692SPiotr Kubaj
17373a608692SPiotr Kubaj	.long	0x7E5B2799
17383a608692SPiotr Kubaj	.long	0x7E7C2799
17393a608692SPiotr Kubaj	addi	4,4,0x50
17403a608692SPiotr Kubaj	b	.Lctr32_enc8x_done
17413a608692SPiotr Kubaj
17423a608692SPiotr Kubaj.align	5
17433a608692SPiotr Kubaj.Lctr32_enc8x_four:
17443a608692SPiotr Kubaj	.long	0x11EF5509
17453a608692SPiotr Kubaj	.long	0x12106509
17463a608692SPiotr Kubaj	.long	0x12316D09
17473a608692SPiotr Kubaj	.long	0x12527509
17483a608692SPiotr Kubaj
17493a608692SPiotr Kubaj
17503a608692SPiotr Kubaj
17513a608692SPiotr Kubaj	.long	0x7DE02799
17523a608692SPiotr Kubaj
17533a608692SPiotr Kubaj	.long	0x7E082799
17543a608692SPiotr Kubaj
17553a608692SPiotr Kubaj	.long	0x7E3A2799
17563a608692SPiotr Kubaj	.long	0x7E5B2799
17573a608692SPiotr Kubaj	addi	4,4,0x40
17583a608692SPiotr Kubaj	b	.Lctr32_enc8x_done
17593a608692SPiotr Kubaj
17603a608692SPiotr Kubaj.align	5
17613a608692SPiotr Kubaj.Lctr32_enc8x_three:
17623a608692SPiotr Kubaj	.long	0x11EF6509
17633a608692SPiotr Kubaj	.long	0x12106D09
17643a608692SPiotr Kubaj	.long	0x12317509
17653a608692SPiotr Kubaj
17663a608692SPiotr Kubaj
17673a608692SPiotr Kubaj
17683a608692SPiotr Kubaj	.long	0x7DE02799
17693a608692SPiotr Kubaj
17703a608692SPiotr Kubaj	.long	0x7E082799
17713a608692SPiotr Kubaj	.long	0x7E3A2799
17723a608692SPiotr Kubaj	addi	4,4,0x30
17733a608692SPiotr Kubaj	b	.Lctr32_enc8x_done
17743a608692SPiotr Kubaj
17753a608692SPiotr Kubaj.align	5
17763a608692SPiotr Kubaj.Lctr32_enc8x_two:
17773a608692SPiotr Kubaj	.long	0x11EF6D09
17783a608692SPiotr Kubaj	.long	0x12107509
17793a608692SPiotr Kubaj
17803a608692SPiotr Kubaj
17813a608692SPiotr Kubaj
17823a608692SPiotr Kubaj	.long	0x7DE02799
17833a608692SPiotr Kubaj	.long	0x7E082799
17843a608692SPiotr Kubaj	addi	4,4,0x20
17853a608692SPiotr Kubaj	b	.Lctr32_enc8x_done
17863a608692SPiotr Kubaj
17873a608692SPiotr Kubaj.align	5
17883a608692SPiotr Kubaj.Lctr32_enc8x_one:
17893a608692SPiotr Kubaj	.long	0x11EF7509
17903a608692SPiotr Kubaj
17913a608692SPiotr Kubaj
17923a608692SPiotr Kubaj	.long	0x7DE02799
17933a608692SPiotr Kubaj	addi	4,4,0x10
17943a608692SPiotr Kubaj
17953a608692SPiotr Kubaj.Lctr32_enc8x_done:
17963a608692SPiotr Kubaj	li	10,79
17973a608692SPiotr Kubaj	li	11,95
17983a608692SPiotr Kubaj	stvx	6,10,1
17993a608692SPiotr Kubaj	addi	10,10,32
18003a608692SPiotr Kubaj	stvx	6,11,1
18013a608692SPiotr Kubaj	addi	11,11,32
18023a608692SPiotr Kubaj	stvx	6,10,1
18033a608692SPiotr Kubaj	addi	10,10,32
18043a608692SPiotr Kubaj	stvx	6,11,1
18053a608692SPiotr Kubaj	addi	11,11,32
18063a608692SPiotr Kubaj	stvx	6,10,1
18073a608692SPiotr Kubaj	addi	10,10,32
18083a608692SPiotr Kubaj	stvx	6,11,1
18093a608692SPiotr Kubaj	addi	11,11,32
18103a608692SPiotr Kubaj	stvx	6,10,1
18113a608692SPiotr Kubaj	addi	10,10,32
18123a608692SPiotr Kubaj	stvx	6,11,1
18133a608692SPiotr Kubaj	addi	11,11,32
18143a608692SPiotr Kubaj
18153a608692SPiotr Kubaj	or	12,12,12
18163a608692SPiotr Kubaj	lvx	20,10,1
18173a608692SPiotr Kubaj	addi	10,10,32
18183a608692SPiotr Kubaj	lvx	21,11,1
18193a608692SPiotr Kubaj	addi	11,11,32
18203a608692SPiotr Kubaj	lvx	22,10,1
18213a608692SPiotr Kubaj	addi	10,10,32
18223a608692SPiotr Kubaj	lvx	23,11,1
18233a608692SPiotr Kubaj	addi	11,11,32
18243a608692SPiotr Kubaj	lvx	24,10,1
18253a608692SPiotr Kubaj	addi	10,10,32
18263a608692SPiotr Kubaj	lvx	25,11,1
18273a608692SPiotr Kubaj	addi	11,11,32
18283a608692SPiotr Kubaj	lvx	26,10,1
18293a608692SPiotr Kubaj	addi	10,10,32
18303a608692SPiotr Kubaj	lvx	27,11,1
18313a608692SPiotr Kubaj	addi	11,11,32
18323a608692SPiotr Kubaj	lvx	28,10,1
18333a608692SPiotr Kubaj	addi	10,10,32
18343a608692SPiotr Kubaj	lvx	29,11,1
18353a608692SPiotr Kubaj	addi	11,11,32
18363a608692SPiotr Kubaj	lvx	30,10,1
18373a608692SPiotr Kubaj	lvx	31,11,1
18383a608692SPiotr Kubaj	ld	26,400(1)
18393a608692SPiotr Kubaj	ld	27,408(1)
18403a608692SPiotr Kubaj	ld	28,416(1)
18413a608692SPiotr Kubaj	ld	29,424(1)
18423a608692SPiotr Kubaj	ld	30,432(1)
18433a608692SPiotr Kubaj	ld	31,440(1)
18443a608692SPiotr Kubaj	addi	1,1,448
18453a608692SPiotr Kubaj	blr
18463a608692SPiotr Kubaj.long	0
18473a608692SPiotr Kubaj.byte	0,12,0x04,0,0x80,6,6,0
18483a608692SPiotr Kubaj.long	0
18493a608692SPiotr Kubaj.size	aes_p8_ctr32_encrypt_blocks,.-aes_p8_ctr32_encrypt_blocks
18503a608692SPiotr Kubaj.globl	aes_p8_xts_encrypt
18513a608692SPiotr Kubaj.type	aes_p8_xts_encrypt,@function
18523a608692SPiotr Kubaj.align	5
18533a608692SPiotr Kubajaes_p8_xts_encrypt:
18543a608692SPiotr Kubaj.localentry	aes_p8_xts_encrypt,0
18553a608692SPiotr Kubaj
18563a608692SPiotr Kubaj	mr	10,3
18573a608692SPiotr Kubaj	li	3,-1
18583a608692SPiotr Kubaj	cmpldi	5,16
18593a608692SPiotr Kubaj	.long	0x4dc00020
18603a608692SPiotr Kubaj
18613a608692SPiotr Kubaj	lis	0,0xfff0
18623a608692SPiotr Kubaj	li	12,-1
18633a608692SPiotr Kubaj	li	11,0
18643a608692SPiotr Kubaj	or	0,0,0
18653a608692SPiotr Kubaj
18663a608692SPiotr Kubaj	vspltisb	9,0x07
18673a608692SPiotr Kubaj
18683a608692SPiotr Kubaj
18693a608692SPiotr Kubaj
18703a608692SPiotr Kubaj
18713a608692SPiotr Kubaj	li	3,15
18723a608692SPiotr Kubaj	lvx	8,0,8
18733a608692SPiotr Kubaj	lvsl	5,0,8
18743a608692SPiotr Kubaj	lvx	4,3,8
18753a608692SPiotr Kubaj
18763a608692SPiotr Kubaj	vperm	8,8,4,5
18773a608692SPiotr Kubaj
18783a608692SPiotr Kubaj	neg	11,10
18793a608692SPiotr Kubaj	lvsr	5,0,11
18803a608692SPiotr Kubaj	lvx	2,0,10
18813a608692SPiotr Kubaj	addi	10,10,15
18823a608692SPiotr Kubaj
18833a608692SPiotr Kubaj
18843a608692SPiotr Kubaj	cmpldi	7,0
18853a608692SPiotr Kubaj	beq	.Lxts_enc_no_key2
18863a608692SPiotr Kubaj
18873a608692SPiotr Kubaj	lvsl	7,0,7
18883a608692SPiotr Kubaj	lwz	9,240(7)
18893a608692SPiotr Kubaj	srwi	9,9,1
18903a608692SPiotr Kubaj	subi	9,9,1
18913a608692SPiotr Kubaj	li	3,16
18923a608692SPiotr Kubaj
18933a608692SPiotr Kubaj	lvx	0,0,7
18943a608692SPiotr Kubaj	lvx	1,3,7
18953a608692SPiotr Kubaj	addi	3,3,16
18963a608692SPiotr Kubaj	vperm	0,0,1,7
18973a608692SPiotr Kubaj	vxor	8,8,0
18983a608692SPiotr Kubaj	lvx	0,3,7
18993a608692SPiotr Kubaj	addi	3,3,16
19003a608692SPiotr Kubaj	mtctr	9
19013a608692SPiotr Kubaj
19023a608692SPiotr Kubaj.Ltweak_xts_enc:
19033a608692SPiotr Kubaj	vperm	1,1,0,7
19043a608692SPiotr Kubaj	.long	0x11080D08
19053a608692SPiotr Kubaj	lvx	1,3,7
19063a608692SPiotr Kubaj	addi	3,3,16
19073a608692SPiotr Kubaj	vperm	0,0,1,7
19083a608692SPiotr Kubaj	.long	0x11080508
19093a608692SPiotr Kubaj	lvx	0,3,7
19103a608692SPiotr Kubaj	addi	3,3,16
19113a608692SPiotr Kubaj	bdnz	.Ltweak_xts_enc
19123a608692SPiotr Kubaj
19133a608692SPiotr Kubaj	vperm	1,1,0,7
19143a608692SPiotr Kubaj	.long	0x11080D08
19153a608692SPiotr Kubaj	lvx	1,3,7
19163a608692SPiotr Kubaj	vperm	0,0,1,7
19173a608692SPiotr Kubaj	.long	0x11080509
19183a608692SPiotr Kubaj
19193a608692SPiotr Kubaj	li	8,0
19203a608692SPiotr Kubaj	b	.Lxts_enc
19213a608692SPiotr Kubaj
19223a608692SPiotr Kubaj.Lxts_enc_no_key2:
19233a608692SPiotr Kubaj	li	3,-16
19243a608692SPiotr Kubaj	and	5,5,3
19253a608692SPiotr Kubaj
19263a608692SPiotr Kubaj
19273a608692SPiotr Kubaj.Lxts_enc:
19283a608692SPiotr Kubaj	lvx	4,0,10
19293a608692SPiotr Kubaj	addi	10,10,16
19303a608692SPiotr Kubaj
19313a608692SPiotr Kubaj	lvsl	7,0,6
19323a608692SPiotr Kubaj	lwz	9,240(6)
19333a608692SPiotr Kubaj	srwi	9,9,1
19343a608692SPiotr Kubaj	subi	9,9,1
19353a608692SPiotr Kubaj	li	3,16
19363a608692SPiotr Kubaj
19373a608692SPiotr Kubaj	vslb	10,9,9
19383a608692SPiotr Kubaj	vor	10,10,9
19393a608692SPiotr Kubaj	vspltisb	11,1
19403a608692SPiotr Kubaj	vsldoi	10,10,11,15
19413a608692SPiotr Kubaj
19423a608692SPiotr Kubaj	cmpldi	5,96
19433a608692SPiotr Kubaj	bge	_aesp8_xts_encrypt6x
19443a608692SPiotr Kubaj
19453a608692SPiotr Kubaj	andi.	7,5,15
19463a608692SPiotr Kubaj	subic	0,5,32
19473a608692SPiotr Kubaj	subi	7,7,16
19483a608692SPiotr Kubaj	subfe	0,0,0
19493a608692SPiotr Kubaj	and	0,0,7
19503a608692SPiotr Kubaj	add	10,10,0
19513a608692SPiotr Kubaj
19523a608692SPiotr Kubaj	lvx	0,0,6
19533a608692SPiotr Kubaj	lvx	1,3,6
19543a608692SPiotr Kubaj	addi	3,3,16
19553a608692SPiotr Kubaj	vperm	2,2,4,5
19563a608692SPiotr Kubaj	vperm	0,0,1,7
19573a608692SPiotr Kubaj	vxor	2,2,8
19583a608692SPiotr Kubaj	vxor	2,2,0
19593a608692SPiotr Kubaj	lvx	0,3,6
19603a608692SPiotr Kubaj	addi	3,3,16
19613a608692SPiotr Kubaj	mtctr	9
19623a608692SPiotr Kubaj	b	.Loop_xts_enc
19633a608692SPiotr Kubaj
19643a608692SPiotr Kubaj.align	5
19653a608692SPiotr Kubaj.Loop_xts_enc:
19663a608692SPiotr Kubaj	vperm	1,1,0,7
19673a608692SPiotr Kubaj	.long	0x10420D08
19683a608692SPiotr Kubaj	lvx	1,3,6
19693a608692SPiotr Kubaj	addi	3,3,16
19703a608692SPiotr Kubaj	vperm	0,0,1,7
19713a608692SPiotr Kubaj	.long	0x10420508
19723a608692SPiotr Kubaj	lvx	0,3,6
19733a608692SPiotr Kubaj	addi	3,3,16
19743a608692SPiotr Kubaj	bdnz	.Loop_xts_enc
19753a608692SPiotr Kubaj
19763a608692SPiotr Kubaj	vperm	1,1,0,7
19773a608692SPiotr Kubaj	.long	0x10420D08
19783a608692SPiotr Kubaj	lvx	1,3,6
19793a608692SPiotr Kubaj	li	3,16
19803a608692SPiotr Kubaj	vperm	0,0,1,7
19813a608692SPiotr Kubaj	vxor	0,0,8
19823a608692SPiotr Kubaj	.long	0x10620509
19833a608692SPiotr Kubaj
19843a608692SPiotr Kubaj
19853a608692SPiotr Kubaj	nop
19863a608692SPiotr Kubaj
19873a608692SPiotr Kubaj	.long	0x7C602799
19883a608692SPiotr Kubaj	addi	4,4,16
19893a608692SPiotr Kubaj
19903a608692SPiotr Kubaj	subic.	5,5,16
19913a608692SPiotr Kubaj	beq	.Lxts_enc_done
19923a608692SPiotr Kubaj
19933a608692SPiotr Kubaj	vor	2,4,4
19943a608692SPiotr Kubaj	lvx	4,0,10
19953a608692SPiotr Kubaj	addi	10,10,16
19963a608692SPiotr Kubaj	lvx	0,0,6
19973a608692SPiotr Kubaj	lvx	1,3,6
19983a608692SPiotr Kubaj	addi	3,3,16
19993a608692SPiotr Kubaj
20003a608692SPiotr Kubaj	subic	0,5,32
20013a608692SPiotr Kubaj	subfe	0,0,0
20023a608692SPiotr Kubaj	and	0,0,7
20033a608692SPiotr Kubaj	add	10,10,0
20043a608692SPiotr Kubaj
20053a608692SPiotr Kubaj	vsrab	11,8,9
20063a608692SPiotr Kubaj	vaddubm	8,8,8
20073a608692SPiotr Kubaj	vsldoi	11,11,11,15
20083a608692SPiotr Kubaj	vand	11,11,10
20093a608692SPiotr Kubaj	vxor	8,8,11
20103a608692SPiotr Kubaj
20113a608692SPiotr Kubaj	vperm	2,2,4,5
20123a608692SPiotr Kubaj	vperm	0,0,1,7
20133a608692SPiotr Kubaj	vxor	2,2,8
20143a608692SPiotr Kubaj	vxor	3,3,0
20153a608692SPiotr Kubaj	vxor	2,2,0
20163a608692SPiotr Kubaj	lvx	0,3,6
20173a608692SPiotr Kubaj	addi	3,3,16
20183a608692SPiotr Kubaj
20193a608692SPiotr Kubaj	mtctr	9
20203a608692SPiotr Kubaj	cmpldi	5,16
20213a608692SPiotr Kubaj	bge	.Loop_xts_enc
20223a608692SPiotr Kubaj
20233a608692SPiotr Kubaj	vxor	3,3,8
20243a608692SPiotr Kubaj	lvsr	5,0,5
20253a608692SPiotr Kubaj	vxor	4,4,4
20263a608692SPiotr Kubaj	vspltisb	11,-1
20273a608692SPiotr Kubaj	vperm	4,4,11,5
20283a608692SPiotr Kubaj	vsel	2,2,3,4
20293a608692SPiotr Kubaj
20303a608692SPiotr Kubaj	subi	11,4,17
20313a608692SPiotr Kubaj	subi	4,4,16
20323a608692SPiotr Kubaj	mtctr	5
20333a608692SPiotr Kubaj	li	5,16
20343a608692SPiotr Kubaj.Loop_xts_enc_steal:
20353a608692SPiotr Kubaj	lbzu	0,1(11)
20363a608692SPiotr Kubaj	stb	0,16(11)
20373a608692SPiotr Kubaj	bdnz	.Loop_xts_enc_steal
20383a608692SPiotr Kubaj
20393a608692SPiotr Kubaj	mtctr	9
20403a608692SPiotr Kubaj	b	.Loop_xts_enc
20413a608692SPiotr Kubaj
20423a608692SPiotr Kubaj.Lxts_enc_done:
20433a608692SPiotr Kubaj	cmpldi	8,0
20443a608692SPiotr Kubaj	beq	.Lxts_enc_ret
20453a608692SPiotr Kubaj
20463a608692SPiotr Kubaj	vsrab	11,8,9
20473a608692SPiotr Kubaj	vaddubm	8,8,8
20483a608692SPiotr Kubaj	vsldoi	11,11,11,15
20493a608692SPiotr Kubaj	vand	11,11,10
20503a608692SPiotr Kubaj	vxor	8,8,11
20513a608692SPiotr Kubaj
20523a608692SPiotr Kubaj
20533a608692SPiotr Kubaj	.long	0x7D004799
20543a608692SPiotr Kubaj
20553a608692SPiotr Kubaj.Lxts_enc_ret:
20563a608692SPiotr Kubaj	or	12,12,12
20573a608692SPiotr Kubaj	li	3,0
20583a608692SPiotr Kubaj	blr
20593a608692SPiotr Kubaj.long	0
20603a608692SPiotr Kubaj.byte	0,12,0x04,0,0x80,6,6,0
20613a608692SPiotr Kubaj.long	0
20623a608692SPiotr Kubaj.size	aes_p8_xts_encrypt,.-aes_p8_xts_encrypt
20633a608692SPiotr Kubaj
20643a608692SPiotr Kubaj.globl	aes_p8_xts_decrypt
20653a608692SPiotr Kubaj.type	aes_p8_xts_decrypt,@function
20663a608692SPiotr Kubaj.align	5
20673a608692SPiotr Kubajaes_p8_xts_decrypt:
20683a608692SPiotr Kubaj.localentry	aes_p8_xts_decrypt,0
20693a608692SPiotr Kubaj
20703a608692SPiotr Kubaj	mr	10,3
20713a608692SPiotr Kubaj	li	3,-1
20723a608692SPiotr Kubaj	cmpldi	5,16
20733a608692SPiotr Kubaj	.long	0x4dc00020
20743a608692SPiotr Kubaj
20753a608692SPiotr Kubaj	lis	0,0xfff8
20763a608692SPiotr Kubaj	li	12,-1
20773a608692SPiotr Kubaj	li	11,0
20783a608692SPiotr Kubaj	or	0,0,0
20793a608692SPiotr Kubaj
20803a608692SPiotr Kubaj	andi.	0,5,15
20813a608692SPiotr Kubaj	neg	0,0
20823a608692SPiotr Kubaj	andi.	0,0,16
20833a608692SPiotr Kubaj	sub	5,5,0
20843a608692SPiotr Kubaj
20853a608692SPiotr Kubaj	vspltisb	9,0x07
20863a608692SPiotr Kubaj
20873a608692SPiotr Kubaj
20883a608692SPiotr Kubaj
20893a608692SPiotr Kubaj
20903a608692SPiotr Kubaj	li	3,15
20913a608692SPiotr Kubaj	lvx	8,0,8
20923a608692SPiotr Kubaj	lvsl	5,0,8
20933a608692SPiotr Kubaj	lvx	4,3,8
20943a608692SPiotr Kubaj
20953a608692SPiotr Kubaj	vperm	8,8,4,5
20963a608692SPiotr Kubaj
20973a608692SPiotr Kubaj	neg	11,10
20983a608692SPiotr Kubaj	lvsr	5,0,11
20993a608692SPiotr Kubaj	lvx	2,0,10
21003a608692SPiotr Kubaj	addi	10,10,15
21013a608692SPiotr Kubaj
21023a608692SPiotr Kubaj
21033a608692SPiotr Kubaj	cmpldi	7,0
21043a608692SPiotr Kubaj	beq	.Lxts_dec_no_key2
21053a608692SPiotr Kubaj
21063a608692SPiotr Kubaj	lvsl	7,0,7
21073a608692SPiotr Kubaj	lwz	9,240(7)
21083a608692SPiotr Kubaj	srwi	9,9,1
21093a608692SPiotr Kubaj	subi	9,9,1
21103a608692SPiotr Kubaj	li	3,16
21113a608692SPiotr Kubaj
21123a608692SPiotr Kubaj	lvx	0,0,7
21133a608692SPiotr Kubaj	lvx	1,3,7
21143a608692SPiotr Kubaj	addi	3,3,16
21153a608692SPiotr Kubaj	vperm	0,0,1,7
21163a608692SPiotr Kubaj	vxor	8,8,0
21173a608692SPiotr Kubaj	lvx	0,3,7
21183a608692SPiotr Kubaj	addi	3,3,16
21193a608692SPiotr Kubaj	mtctr	9
21203a608692SPiotr Kubaj
21213a608692SPiotr Kubaj.Ltweak_xts_dec:
21223a608692SPiotr Kubaj	vperm	1,1,0,7
21233a608692SPiotr Kubaj	.long	0x11080D08
21243a608692SPiotr Kubaj	lvx	1,3,7
21253a608692SPiotr Kubaj	addi	3,3,16
21263a608692SPiotr Kubaj	vperm	0,0,1,7
21273a608692SPiotr Kubaj	.long	0x11080508
21283a608692SPiotr Kubaj	lvx	0,3,7
21293a608692SPiotr Kubaj	addi	3,3,16
21303a608692SPiotr Kubaj	bdnz	.Ltweak_xts_dec
21313a608692SPiotr Kubaj
21323a608692SPiotr Kubaj	vperm	1,1,0,7
21333a608692SPiotr Kubaj	.long	0x11080D08
21343a608692SPiotr Kubaj	lvx	1,3,7
21353a608692SPiotr Kubaj	vperm	0,0,1,7
21363a608692SPiotr Kubaj	.long	0x11080509
21373a608692SPiotr Kubaj
21383a608692SPiotr Kubaj	li	8,0
21393a608692SPiotr Kubaj	b	.Lxts_dec
21403a608692SPiotr Kubaj
21413a608692SPiotr Kubaj.Lxts_dec_no_key2:
21423a608692SPiotr Kubaj	neg	3,5
21433a608692SPiotr Kubaj	andi.	3,3,15
21443a608692SPiotr Kubaj	add	5,5,3
21453a608692SPiotr Kubaj
21463a608692SPiotr Kubaj
21473a608692SPiotr Kubaj.Lxts_dec:
21483a608692SPiotr Kubaj	lvx	4,0,10
21493a608692SPiotr Kubaj	addi	10,10,16
21503a608692SPiotr Kubaj
21513a608692SPiotr Kubaj	lvsl	7,0,6
21523a608692SPiotr Kubaj	lwz	9,240(6)
21533a608692SPiotr Kubaj	srwi	9,9,1
21543a608692SPiotr Kubaj	subi	9,9,1
21553a608692SPiotr Kubaj	li	3,16
21563a608692SPiotr Kubaj
21573a608692SPiotr Kubaj	vslb	10,9,9
21583a608692SPiotr Kubaj	vor	10,10,9
21593a608692SPiotr Kubaj	vspltisb	11,1
21603a608692SPiotr Kubaj	vsldoi	10,10,11,15
21613a608692SPiotr Kubaj
21623a608692SPiotr Kubaj	cmpldi	5,96
21633a608692SPiotr Kubaj	bge	_aesp8_xts_decrypt6x
21643a608692SPiotr Kubaj
21653a608692SPiotr Kubaj	lvx	0,0,6
21663a608692SPiotr Kubaj	lvx	1,3,6
21673a608692SPiotr Kubaj	addi	3,3,16
21683a608692SPiotr Kubaj	vperm	2,2,4,5
21693a608692SPiotr Kubaj	vperm	0,0,1,7
21703a608692SPiotr Kubaj	vxor	2,2,8
21713a608692SPiotr Kubaj	vxor	2,2,0
21723a608692SPiotr Kubaj	lvx	0,3,6
21733a608692SPiotr Kubaj	addi	3,3,16
21743a608692SPiotr Kubaj	mtctr	9
21753a608692SPiotr Kubaj
21763a608692SPiotr Kubaj	cmpldi	5,16
21773a608692SPiotr Kubaj	blt	.Ltail_xts_dec
21783a608692SPiotr Kubaj	b	.Loop_xts_dec
21793a608692SPiotr Kubaj
21803a608692SPiotr Kubaj.align	5
21813a608692SPiotr Kubaj.Loop_xts_dec:
21823a608692SPiotr Kubaj	vperm	1,1,0,7
21833a608692SPiotr Kubaj	.long	0x10420D48
21843a608692SPiotr Kubaj	lvx	1,3,6
21853a608692SPiotr Kubaj	addi	3,3,16
21863a608692SPiotr Kubaj	vperm	0,0,1,7
21873a608692SPiotr Kubaj	.long	0x10420548
21883a608692SPiotr Kubaj	lvx	0,3,6
21893a608692SPiotr Kubaj	addi	3,3,16
21903a608692SPiotr Kubaj	bdnz	.Loop_xts_dec
21913a608692SPiotr Kubaj
21923a608692SPiotr Kubaj	vperm	1,1,0,7
21933a608692SPiotr Kubaj	.long	0x10420D48
21943a608692SPiotr Kubaj	lvx	1,3,6
21953a608692SPiotr Kubaj	li	3,16
21963a608692SPiotr Kubaj	vperm	0,0,1,7
21973a608692SPiotr Kubaj	vxor	0,0,8
21983a608692SPiotr Kubaj	.long	0x10620549
21993a608692SPiotr Kubaj
22003a608692SPiotr Kubaj
22013a608692SPiotr Kubaj	nop
22023a608692SPiotr Kubaj
22033a608692SPiotr Kubaj	.long	0x7C602799
22043a608692SPiotr Kubaj	addi	4,4,16
22053a608692SPiotr Kubaj
22063a608692SPiotr Kubaj	subic.	5,5,16
22073a608692SPiotr Kubaj	beq	.Lxts_dec_done
22083a608692SPiotr Kubaj
22093a608692SPiotr Kubaj	vor	2,4,4
22103a608692SPiotr Kubaj	lvx	4,0,10
22113a608692SPiotr Kubaj	addi	10,10,16
22123a608692SPiotr Kubaj	lvx	0,0,6
22133a608692SPiotr Kubaj	lvx	1,3,6
22143a608692SPiotr Kubaj	addi	3,3,16
22153a608692SPiotr Kubaj
22163a608692SPiotr Kubaj	vsrab	11,8,9
22173a608692SPiotr Kubaj	vaddubm	8,8,8
22183a608692SPiotr Kubaj	vsldoi	11,11,11,15
22193a608692SPiotr Kubaj	vand	11,11,10
22203a608692SPiotr Kubaj	vxor	8,8,11
22213a608692SPiotr Kubaj
22223a608692SPiotr Kubaj	vperm	2,2,4,5
22233a608692SPiotr Kubaj	vperm	0,0,1,7
22243a608692SPiotr Kubaj	vxor	2,2,8
22253a608692SPiotr Kubaj	vxor	2,2,0
22263a608692SPiotr Kubaj	lvx	0,3,6
22273a608692SPiotr Kubaj	addi	3,3,16
22283a608692SPiotr Kubaj
22293a608692SPiotr Kubaj	mtctr	9
22303a608692SPiotr Kubaj	cmpldi	5,16
22313a608692SPiotr Kubaj	bge	.Loop_xts_dec
22323a608692SPiotr Kubaj
22333a608692SPiotr Kubaj.Ltail_xts_dec:
22343a608692SPiotr Kubaj	vsrab	11,8,9
22353a608692SPiotr Kubaj	vaddubm	12,8,8
22363a608692SPiotr Kubaj	vsldoi	11,11,11,15
22373a608692SPiotr Kubaj	vand	11,11,10
22383a608692SPiotr Kubaj	vxor	12,12,11
22393a608692SPiotr Kubaj
22403a608692SPiotr Kubaj	subi	10,10,16
22413a608692SPiotr Kubaj	add	10,10,5
22423a608692SPiotr Kubaj
22433a608692SPiotr Kubaj	vxor	2,2,8
22443a608692SPiotr Kubaj	vxor	2,2,12
22453a608692SPiotr Kubaj
22463a608692SPiotr Kubaj.Loop_xts_dec_short:
22473a608692SPiotr Kubaj	vperm	1,1,0,7
22483a608692SPiotr Kubaj	.long	0x10420D48
22493a608692SPiotr Kubaj	lvx	1,3,6
22503a608692SPiotr Kubaj	addi	3,3,16
22513a608692SPiotr Kubaj	vperm	0,0,1,7
22523a608692SPiotr Kubaj	.long	0x10420548
22533a608692SPiotr Kubaj	lvx	0,3,6
22543a608692SPiotr Kubaj	addi	3,3,16
22553a608692SPiotr Kubaj	bdnz	.Loop_xts_dec_short
22563a608692SPiotr Kubaj
22573a608692SPiotr Kubaj	vperm	1,1,0,7
22583a608692SPiotr Kubaj	.long	0x10420D48
22593a608692SPiotr Kubaj	lvx	1,3,6
22603a608692SPiotr Kubaj	li	3,16
22613a608692SPiotr Kubaj	vperm	0,0,1,7
22623a608692SPiotr Kubaj	vxor	0,0,12
22633a608692SPiotr Kubaj	.long	0x10620549
22643a608692SPiotr Kubaj
22653a608692SPiotr Kubaj
22663a608692SPiotr Kubaj	nop
22673a608692SPiotr Kubaj
22683a608692SPiotr Kubaj	.long	0x7C602799
22693a608692SPiotr Kubaj
22703a608692SPiotr Kubaj	vor	2,4,4
22713a608692SPiotr Kubaj	lvx	4,0,10
22723a608692SPiotr Kubaj
22733a608692SPiotr Kubaj	lvx	0,0,6
22743a608692SPiotr Kubaj	lvx	1,3,6
22753a608692SPiotr Kubaj	addi	3,3,16
22763a608692SPiotr Kubaj	vperm	2,2,4,5
22773a608692SPiotr Kubaj	vperm	0,0,1,7
22783a608692SPiotr Kubaj
22793a608692SPiotr Kubaj	lvsr	5,0,5
22803a608692SPiotr Kubaj	vxor	4,4,4
22813a608692SPiotr Kubaj	vspltisb	11,-1
22823a608692SPiotr Kubaj	vperm	4,4,11,5
22833a608692SPiotr Kubaj	vsel	2,2,3,4
22843a608692SPiotr Kubaj
22853a608692SPiotr Kubaj	vxor	0,0,8
22863a608692SPiotr Kubaj	vxor	2,2,0
22873a608692SPiotr Kubaj	lvx	0,3,6
22883a608692SPiotr Kubaj	addi	3,3,16
22893a608692SPiotr Kubaj
22903a608692SPiotr Kubaj	subi	11,4,1
22913a608692SPiotr Kubaj	mtctr	5
22923a608692SPiotr Kubaj	li	5,16
22933a608692SPiotr Kubaj.Loop_xts_dec_steal:
22943a608692SPiotr Kubaj	lbzu	0,1(11)
22953a608692SPiotr Kubaj	stb	0,16(11)
22963a608692SPiotr Kubaj	bdnz	.Loop_xts_dec_steal
22973a608692SPiotr Kubaj
22983a608692SPiotr Kubaj	mtctr	9
22993a608692SPiotr Kubaj	b	.Loop_xts_dec
23003a608692SPiotr Kubaj
23013a608692SPiotr Kubaj.Lxts_dec_done:
23023a608692SPiotr Kubaj	cmpldi	8,0
23033a608692SPiotr Kubaj	beq	.Lxts_dec_ret
23043a608692SPiotr Kubaj
23053a608692SPiotr Kubaj	vsrab	11,8,9
23063a608692SPiotr Kubaj	vaddubm	8,8,8
23073a608692SPiotr Kubaj	vsldoi	11,11,11,15
23083a608692SPiotr Kubaj	vand	11,11,10
23093a608692SPiotr Kubaj	vxor	8,8,11
23103a608692SPiotr Kubaj
23113a608692SPiotr Kubaj
23123a608692SPiotr Kubaj	.long	0x7D004799
23133a608692SPiotr Kubaj
23143a608692SPiotr Kubaj.Lxts_dec_ret:
23153a608692SPiotr Kubaj	or	12,12,12
23163a608692SPiotr Kubaj	li	3,0
23173a608692SPiotr Kubaj	blr
23183a608692SPiotr Kubaj.long	0
23193a608692SPiotr Kubaj.byte	0,12,0x04,0,0x80,6,6,0
23203a608692SPiotr Kubaj.long	0
23213a608692SPiotr Kubaj.size	aes_p8_xts_decrypt,.-aes_p8_xts_decrypt
23223a608692SPiotr Kubaj.align	5
23233a608692SPiotr Kubaj_aesp8_xts_encrypt6x:
23243a608692SPiotr Kubaj	stdu	1,-448(1)
23253a608692SPiotr Kubaj	mflr	11
23263a608692SPiotr Kubaj	li	7,207
23273a608692SPiotr Kubaj	li	3,223
23283a608692SPiotr Kubaj	std	11,464(1)
23293a608692SPiotr Kubaj	stvx	20,7,1
23303a608692SPiotr Kubaj	addi	7,7,32
23313a608692SPiotr Kubaj	stvx	21,3,1
23323a608692SPiotr Kubaj	addi	3,3,32
23333a608692SPiotr Kubaj	stvx	22,7,1
23343a608692SPiotr Kubaj	addi	7,7,32
23353a608692SPiotr Kubaj	stvx	23,3,1
23363a608692SPiotr Kubaj	addi	3,3,32
23373a608692SPiotr Kubaj	stvx	24,7,1
23383a608692SPiotr Kubaj	addi	7,7,32
23393a608692SPiotr Kubaj	stvx	25,3,1
23403a608692SPiotr Kubaj	addi	3,3,32
23413a608692SPiotr Kubaj	stvx	26,7,1
23423a608692SPiotr Kubaj	addi	7,7,32
23433a608692SPiotr Kubaj	stvx	27,3,1
23443a608692SPiotr Kubaj	addi	3,3,32
23453a608692SPiotr Kubaj	stvx	28,7,1
23463a608692SPiotr Kubaj	addi	7,7,32
23473a608692SPiotr Kubaj	stvx	29,3,1
23483a608692SPiotr Kubaj	addi	3,3,32
23493a608692SPiotr Kubaj	stvx	30,7,1
23503a608692SPiotr Kubaj	stvx	31,3,1
23513a608692SPiotr Kubaj	li	0,-1
23523a608692SPiotr Kubaj	stw	12,396(1)
23533a608692SPiotr Kubaj	li	3,0x10
23543a608692SPiotr Kubaj	std	26,400(1)
23553a608692SPiotr Kubaj	li	26,0x20
23563a608692SPiotr Kubaj	std	27,408(1)
23573a608692SPiotr Kubaj	li	27,0x30
23583a608692SPiotr Kubaj	std	28,416(1)
23593a608692SPiotr Kubaj	li	28,0x40
23603a608692SPiotr Kubaj	std	29,424(1)
23613a608692SPiotr Kubaj	li	29,0x50
23623a608692SPiotr Kubaj	std	30,432(1)
23633a608692SPiotr Kubaj	li	30,0x60
23643a608692SPiotr Kubaj	std	31,440(1)
23653a608692SPiotr Kubaj	li	31,0x70
23663a608692SPiotr Kubaj	or	0,0,0
23673a608692SPiotr Kubaj
2368*77864b54SEnji Cooper
2369*77864b54SEnji Cooper	xxlor	2, 32+10, 32+10
2370*77864b54SEnji Cooper	vsldoi	10,11,10,1
2371*77864b54SEnji Cooper	xxlor	1, 32+10, 32+10
2372*77864b54SEnji Cooper
2373*77864b54SEnji Cooper
2374*77864b54SEnji Cooper	mr	31, 6
2375*77864b54SEnji Cooper	bl	.Lconsts
2376*77864b54SEnji Cooper	lxvw4x	0, 28, 6
2377*77864b54SEnji Cooper	mr	6, 31
2378*77864b54SEnji Cooper	li	31,0x70
2379*77864b54SEnji Cooper
23803a608692SPiotr Kubaj	subi	9,9,3
23813a608692SPiotr Kubaj
23823a608692SPiotr Kubaj	lvx	23,0,6
23833a608692SPiotr Kubaj	lvx	30,3,6
23843a608692SPiotr Kubaj	addi	6,6,0x20
23853a608692SPiotr Kubaj	lvx	31,0,6
23863a608692SPiotr Kubaj	vperm	23,23,30,7
23873a608692SPiotr Kubaj	addi	7,1,64+15
23883a608692SPiotr Kubaj	mtctr	9
23893a608692SPiotr Kubaj
23903a608692SPiotr Kubaj.Load_xts_enc_key:
23913a608692SPiotr Kubaj	vperm	24,30,31,7
23923a608692SPiotr Kubaj	lvx	30,3,6
23933a608692SPiotr Kubaj	addi	6,6,0x20
23943a608692SPiotr Kubaj	stvx	24,0,7
23953a608692SPiotr Kubaj	vperm	25,31,30,7
23963a608692SPiotr Kubaj	lvx	31,0,6
23973a608692SPiotr Kubaj	stvx	25,3,7
23983a608692SPiotr Kubaj	addi	7,7,0x20
23993a608692SPiotr Kubaj	bdnz	.Load_xts_enc_key
24003a608692SPiotr Kubaj
24013a608692SPiotr Kubaj	lvx	26,3,6
24023a608692SPiotr Kubaj	vperm	24,30,31,7
24033a608692SPiotr Kubaj	lvx	27,26,6
24043a608692SPiotr Kubaj	stvx	24,0,7
24053a608692SPiotr Kubaj	vperm	25,31,26,7
24063a608692SPiotr Kubaj	lvx	28,27,6
24073a608692SPiotr Kubaj	stvx	25,3,7
24083a608692SPiotr Kubaj	addi	7,1,64+15
24093a608692SPiotr Kubaj	vperm	26,26,27,7
24103a608692SPiotr Kubaj	lvx	29,28,6
24113a608692SPiotr Kubaj	vperm	27,27,28,7
24123a608692SPiotr Kubaj	lvx	30,29,6
24133a608692SPiotr Kubaj	vperm	28,28,29,7
24143a608692SPiotr Kubaj	lvx	31,30,6
24153a608692SPiotr Kubaj	vperm	29,29,30,7
24163a608692SPiotr Kubaj	lvx	22,31,6
24173a608692SPiotr Kubaj	vperm	30,30,31,7
24183a608692SPiotr Kubaj	lvx	24,0,7
24193a608692SPiotr Kubaj	vperm	31,31,22,7
24203a608692SPiotr Kubaj	lvx	25,3,7
24213a608692SPiotr Kubaj
2422*77864b54SEnji Cooper
2423*77864b54SEnji Cooper
2424*77864b54SEnji Cooper
2425*77864b54SEnji Cooper
2426*77864b54SEnji Cooper
2427*77864b54SEnji Cooper
2428*77864b54SEnji Cooper
2429*77864b54SEnji Cooper
24303a608692SPiotr Kubaj	vperm	0,2,4,5
24313a608692SPiotr Kubaj	subi	10,10,31
24323a608692SPiotr Kubaj	vxor	17,8,23
24333a608692SPiotr Kubaj	vsrab	11,8,9
24343a608692SPiotr Kubaj	vaddubm	8,8,8
24353a608692SPiotr Kubaj	vand	11,11,10
24363a608692SPiotr Kubaj	vxor	7,0,17
2437*77864b54SEnji Cooper	xxlor	32+1, 0, 0
2438*77864b54SEnji Cooper	vpermxor	8, 8, 11, 1
24393a608692SPiotr Kubaj
24403a608692SPiotr Kubaj	.long	0x7C235699
24413a608692SPiotr Kubaj	vxor	18,8,23
24423a608692SPiotr Kubaj	vsrab	11,8,9
24433a608692SPiotr Kubaj	vaddubm	8,8,8
24443a608692SPiotr Kubaj
24453a608692SPiotr Kubaj	vand	11,11,10
24463a608692SPiotr Kubaj	vxor	12,1,18
2447*77864b54SEnji Cooper	xxlor	32+2, 0, 0
2448*77864b54SEnji Cooper	vpermxor	8, 8, 11, 2
24493a608692SPiotr Kubaj
24503a608692SPiotr Kubaj	.long	0x7C5A5699
24513a608692SPiotr Kubaj	andi.	31,5,15
24523a608692SPiotr Kubaj	vxor	19,8,23
24533a608692SPiotr Kubaj	vsrab	11,8,9
24543a608692SPiotr Kubaj	vaddubm	8,8,8
24553a608692SPiotr Kubaj
24563a608692SPiotr Kubaj	vand	11,11,10
24573a608692SPiotr Kubaj	vxor	13,2,19
2458*77864b54SEnji Cooper	xxlor	32+3, 0, 0
2459*77864b54SEnji Cooper	vpermxor	8, 8, 11, 3
24603a608692SPiotr Kubaj
24613a608692SPiotr Kubaj	.long	0x7C7B5699
24623a608692SPiotr Kubaj	sub	5,5,31
24633a608692SPiotr Kubaj	vxor	20,8,23
24643a608692SPiotr Kubaj	vsrab	11,8,9
24653a608692SPiotr Kubaj	vaddubm	8,8,8
24663a608692SPiotr Kubaj
24673a608692SPiotr Kubaj	vand	11,11,10
24683a608692SPiotr Kubaj	vxor	14,3,20
2469*77864b54SEnji Cooper	xxlor	32+4, 0, 0
2470*77864b54SEnji Cooper	vpermxor	8, 8, 11, 4
24713a608692SPiotr Kubaj
24723a608692SPiotr Kubaj	.long	0x7C9C5699
24733a608692SPiotr Kubaj	subi	5,5,0x60
24743a608692SPiotr Kubaj	vxor	21,8,23
24753a608692SPiotr Kubaj	vsrab	11,8,9
24763a608692SPiotr Kubaj	vaddubm	8,8,8
24773a608692SPiotr Kubaj
24783a608692SPiotr Kubaj	vand	11,11,10
24793a608692SPiotr Kubaj	vxor	15,4,21
2480*77864b54SEnji Cooper	xxlor	32+5, 0, 0
2481*77864b54SEnji Cooper	vpermxor	8, 8, 11, 5
24823a608692SPiotr Kubaj
24833a608692SPiotr Kubaj	.long	0x7CBD5699
24843a608692SPiotr Kubaj	addi	10,10,0x60
24853a608692SPiotr Kubaj	vxor	22,8,23
24863a608692SPiotr Kubaj	vsrab	11,8,9
24873a608692SPiotr Kubaj	vaddubm	8,8,8
24883a608692SPiotr Kubaj
24893a608692SPiotr Kubaj	vand	11,11,10
24903a608692SPiotr Kubaj	vxor	16,5,22
2491*77864b54SEnji Cooper	xxlor	32+0, 0, 0
2492*77864b54SEnji Cooper	vpermxor	8, 8, 11, 0
24933a608692SPiotr Kubaj
24943a608692SPiotr Kubaj	vxor	31,31,23
24953a608692SPiotr Kubaj	mtctr	9
24963a608692SPiotr Kubaj	b	.Loop_xts_enc6x
24973a608692SPiotr Kubaj
24983a608692SPiotr Kubaj.align	5
24993a608692SPiotr Kubaj.Loop_xts_enc6x:
25003a608692SPiotr Kubaj	.long	0x10E7C508
25013a608692SPiotr Kubaj	.long	0x118CC508
25023a608692SPiotr Kubaj	.long	0x11ADC508
25033a608692SPiotr Kubaj	.long	0x11CEC508
25043a608692SPiotr Kubaj	.long	0x11EFC508
25053a608692SPiotr Kubaj	.long	0x1210C508
25063a608692SPiotr Kubaj	lvx	24,26,7
25073a608692SPiotr Kubaj	addi	7,7,0x20
25083a608692SPiotr Kubaj
25093a608692SPiotr Kubaj	.long	0x10E7CD08
25103a608692SPiotr Kubaj	.long	0x118CCD08
25113a608692SPiotr Kubaj	.long	0x11ADCD08
25123a608692SPiotr Kubaj	.long	0x11CECD08
25133a608692SPiotr Kubaj	.long	0x11EFCD08
25143a608692SPiotr Kubaj	.long	0x1210CD08
25153a608692SPiotr Kubaj	lvx	25,3,7
25163a608692SPiotr Kubaj	bdnz	.Loop_xts_enc6x
25173a608692SPiotr Kubaj
2518*77864b54SEnji Cooper	xxlor	32+10, 1, 1
2519*77864b54SEnji Cooper
25203a608692SPiotr Kubaj	subic	5,5,96
25213a608692SPiotr Kubaj	vxor	0,17,31
25223a608692SPiotr Kubaj	.long	0x10E7C508
25233a608692SPiotr Kubaj	.long	0x118CC508
25243a608692SPiotr Kubaj	vsrab	11,8,9
25253a608692SPiotr Kubaj	vxor	17,8,23
25263a608692SPiotr Kubaj	vaddubm	8,8,8
25273a608692SPiotr Kubaj	.long	0x11ADC508
25283a608692SPiotr Kubaj	.long	0x11CEC508
25293a608692SPiotr Kubaj	.long	0x11EFC508
25303a608692SPiotr Kubaj	.long	0x1210C508
25313a608692SPiotr Kubaj
25323a608692SPiotr Kubaj	subfe.	0,0,0
25333a608692SPiotr Kubaj	vand	11,11,10
25343a608692SPiotr Kubaj	.long	0x10E7CD08
25353a608692SPiotr Kubaj	.long	0x118CCD08
2536*77864b54SEnji Cooper	xxlor	32+1, 0, 0
2537*77864b54SEnji Cooper	vpermxor	8, 8, 11, 1
25383a608692SPiotr Kubaj	.long	0x11ADCD08
25393a608692SPiotr Kubaj	.long	0x11CECD08
25403a608692SPiotr Kubaj	vxor	1,18,31
25413a608692SPiotr Kubaj	vsrab	11,8,9
25423a608692SPiotr Kubaj	vxor	18,8,23
25433a608692SPiotr Kubaj	.long	0x11EFCD08
25443a608692SPiotr Kubaj	.long	0x1210CD08
25453a608692SPiotr Kubaj
25463a608692SPiotr Kubaj	and	0,0,5
25473a608692SPiotr Kubaj	vaddubm	8,8,8
25483a608692SPiotr Kubaj	.long	0x10E7D508
25493a608692SPiotr Kubaj	.long	0x118CD508
25503a608692SPiotr Kubaj	vand	11,11,10
25513a608692SPiotr Kubaj	.long	0x11ADD508
25523a608692SPiotr Kubaj	.long	0x11CED508
2553*77864b54SEnji Cooper	xxlor	32+2, 0, 0
2554*77864b54SEnji Cooper	vpermxor	8, 8, 11, 2
25553a608692SPiotr Kubaj	.long	0x11EFD508
25563a608692SPiotr Kubaj	.long	0x1210D508
25573a608692SPiotr Kubaj
25583a608692SPiotr Kubaj	add	10,10,0
25593a608692SPiotr Kubaj
25603a608692SPiotr Kubaj
25613a608692SPiotr Kubaj
25623a608692SPiotr Kubaj	vxor	2,19,31
25633a608692SPiotr Kubaj	vsrab	11,8,9
25643a608692SPiotr Kubaj	vxor	19,8,23
25653a608692SPiotr Kubaj	vaddubm	8,8,8
25663a608692SPiotr Kubaj	.long	0x10E7DD08
25673a608692SPiotr Kubaj	.long	0x118CDD08
25683a608692SPiotr Kubaj	.long	0x11ADDD08
25693a608692SPiotr Kubaj	.long	0x11CEDD08
25703a608692SPiotr Kubaj	vand	11,11,10
25713a608692SPiotr Kubaj	.long	0x11EFDD08
25723a608692SPiotr Kubaj	.long	0x1210DD08
25733a608692SPiotr Kubaj
25743a608692SPiotr Kubaj	addi	7,1,64+15
2575*77864b54SEnji Cooper	xxlor	32+3, 0, 0
2576*77864b54SEnji Cooper	vpermxor	8, 8, 11, 3
25773a608692SPiotr Kubaj	.long	0x10E7E508
25783a608692SPiotr Kubaj	.long	0x118CE508
25793a608692SPiotr Kubaj	vxor	3,20,31
25803a608692SPiotr Kubaj	vsrab	11,8,9
25813a608692SPiotr Kubaj	vxor	20,8,23
25823a608692SPiotr Kubaj	.long	0x11ADE508
25833a608692SPiotr Kubaj	.long	0x11CEE508
25843a608692SPiotr Kubaj	vaddubm	8,8,8
25853a608692SPiotr Kubaj	.long	0x11EFE508
25863a608692SPiotr Kubaj	.long	0x1210E508
25873a608692SPiotr Kubaj	lvx	24,0,7
25883a608692SPiotr Kubaj	vand	11,11,10
25893a608692SPiotr Kubaj
25903a608692SPiotr Kubaj	.long	0x10E7ED08
25913a608692SPiotr Kubaj	.long	0x118CED08
2592*77864b54SEnji Cooper	xxlor	32+4, 0, 0
2593*77864b54SEnji Cooper	vpermxor	8, 8, 11, 4
25943a608692SPiotr Kubaj	.long	0x11ADED08
25953a608692SPiotr Kubaj	.long	0x11CEED08
25963a608692SPiotr Kubaj	vxor	4,21,31
25973a608692SPiotr Kubaj	vsrab	11,8,9
25983a608692SPiotr Kubaj	vxor	21,8,23
25993a608692SPiotr Kubaj	.long	0x11EFED08
26003a608692SPiotr Kubaj	.long	0x1210ED08
26013a608692SPiotr Kubaj	lvx	25,3,7
26023a608692SPiotr Kubaj	vaddubm	8,8,8
26033a608692SPiotr Kubaj
26043a608692SPiotr Kubaj	.long	0x10E7F508
26053a608692SPiotr Kubaj	.long	0x118CF508
26063a608692SPiotr Kubaj	vand	11,11,10
26073a608692SPiotr Kubaj	.long	0x11ADF508
26083a608692SPiotr Kubaj	.long	0x11CEF508
2609*77864b54SEnji Cooper	xxlor	32+5, 0, 0
2610*77864b54SEnji Cooper	vpermxor	8, 8, 11, 5
26113a608692SPiotr Kubaj	.long	0x11EFF508
26123a608692SPiotr Kubaj	.long	0x1210F508
26133a608692SPiotr Kubaj	vxor	5,22,31
26143a608692SPiotr Kubaj	vsrab	11,8,9
26153a608692SPiotr Kubaj	vxor	22,8,23
26163a608692SPiotr Kubaj
26173a608692SPiotr Kubaj	.long	0x10E70509
26183a608692SPiotr Kubaj	.long	0x7C005699
26193a608692SPiotr Kubaj	vaddubm	8,8,8
26203a608692SPiotr Kubaj	.long	0x118C0D09
26213a608692SPiotr Kubaj	.long	0x7C235699
26223a608692SPiotr Kubaj	.long	0x11AD1509
26233a608692SPiotr Kubaj
26243a608692SPiotr Kubaj	.long	0x7C5A5699
26253a608692SPiotr Kubaj	vand	11,11,10
26263a608692SPiotr Kubaj	.long	0x11CE1D09
26273a608692SPiotr Kubaj
26283a608692SPiotr Kubaj	.long	0x7C7B5699
26293a608692SPiotr Kubaj	.long	0x11EF2509
26303a608692SPiotr Kubaj
26313a608692SPiotr Kubaj	.long	0x7C9C5699
2632*77864b54SEnji Cooper	xxlor	10, 32+0, 32+0
2633*77864b54SEnji Cooper	xxlor	32+0, 0, 0
2634*77864b54SEnji Cooper	vpermxor	8, 8, 11, 0
2635*77864b54SEnji Cooper	xxlor	32+0, 10, 10
26363a608692SPiotr Kubaj	.long	0x11702D09
26373a608692SPiotr Kubaj
26383a608692SPiotr Kubaj
26393a608692SPiotr Kubaj	.long	0x7CBD5699
26403a608692SPiotr Kubaj	addi	10,10,0x60
26413a608692SPiotr Kubaj
26423a608692SPiotr Kubaj
26433a608692SPiotr Kubaj
26443a608692SPiotr Kubaj
26453a608692SPiotr Kubaj
26463a608692SPiotr Kubaj	.long	0x7CE02799
26473a608692SPiotr Kubaj	vxor	7,0,17
26483a608692SPiotr Kubaj
26493a608692SPiotr Kubaj	.long	0x7D832799
26503a608692SPiotr Kubaj	vxor	12,1,18
26513a608692SPiotr Kubaj
26523a608692SPiotr Kubaj	.long	0x7DBA2799
26533a608692SPiotr Kubaj	vxor	13,2,19
26543a608692SPiotr Kubaj
26553a608692SPiotr Kubaj	.long	0x7DDB2799
26563a608692SPiotr Kubaj	vxor	14,3,20
26573a608692SPiotr Kubaj
26583a608692SPiotr Kubaj	.long	0x7DFC2799
26593a608692SPiotr Kubaj	vxor	15,4,21
26603a608692SPiotr Kubaj
26613a608692SPiotr Kubaj	.long	0x7D7D2799
26623a608692SPiotr Kubaj	vxor	16,5,22
26633a608692SPiotr Kubaj	addi	4,4,0x60
26643a608692SPiotr Kubaj
26653a608692SPiotr Kubaj	mtctr	9
26663a608692SPiotr Kubaj	beq	.Loop_xts_enc6x
26673a608692SPiotr Kubaj
2668*77864b54SEnji Cooper	xxlor	32+10, 2, 2
2669*77864b54SEnji Cooper
26703a608692SPiotr Kubaj	addic.	5,5,0x60
26713a608692SPiotr Kubaj	beq	.Lxts_enc6x_zero
26723a608692SPiotr Kubaj	cmpwi	5,0x20
26733a608692SPiotr Kubaj	blt	.Lxts_enc6x_one
26743a608692SPiotr Kubaj	nop
26753a608692SPiotr Kubaj	beq	.Lxts_enc6x_two
26763a608692SPiotr Kubaj	cmpwi	5,0x40
26773a608692SPiotr Kubaj	blt	.Lxts_enc6x_three
26783a608692SPiotr Kubaj	nop
26793a608692SPiotr Kubaj	beq	.Lxts_enc6x_four
26803a608692SPiotr Kubaj
26813a608692SPiotr Kubaj.Lxts_enc6x_five:
26823a608692SPiotr Kubaj	vxor	7,1,17
26833a608692SPiotr Kubaj	vxor	12,2,18
26843a608692SPiotr Kubaj	vxor	13,3,19
26853a608692SPiotr Kubaj	vxor	14,4,20
26863a608692SPiotr Kubaj	vxor	15,5,21
26873a608692SPiotr Kubaj
26883a608692SPiotr Kubaj	bl	_aesp8_xts_enc5x
26893a608692SPiotr Kubaj
26903a608692SPiotr Kubaj
26913a608692SPiotr Kubaj	vor	17,22,22
26923a608692SPiotr Kubaj
26933a608692SPiotr Kubaj	.long	0x7CE02799
26943a608692SPiotr Kubaj
26953a608692SPiotr Kubaj	.long	0x7D832799
26963a608692SPiotr Kubaj
26973a608692SPiotr Kubaj	.long	0x7DBA2799
26983a608692SPiotr Kubaj	vxor	11,15,22
26993a608692SPiotr Kubaj
27003a608692SPiotr Kubaj	.long	0x7DDB2799
27013a608692SPiotr Kubaj	.long	0x7DFC2799
27023a608692SPiotr Kubaj	addi	4,4,0x50
27033a608692SPiotr Kubaj	bne	.Lxts_enc6x_steal
27043a608692SPiotr Kubaj	b	.Lxts_enc6x_done
27053a608692SPiotr Kubaj
27063a608692SPiotr Kubaj.align	4
27073a608692SPiotr Kubaj.Lxts_enc6x_four:
27083a608692SPiotr Kubaj	vxor	7,2,17
27093a608692SPiotr Kubaj	vxor	12,3,18
27103a608692SPiotr Kubaj	vxor	13,4,19
27113a608692SPiotr Kubaj	vxor	14,5,20
27123a608692SPiotr Kubaj	vxor	15,15,15
27133a608692SPiotr Kubaj
27143a608692SPiotr Kubaj	bl	_aesp8_xts_enc5x
27153a608692SPiotr Kubaj
27163a608692SPiotr Kubaj
27173a608692SPiotr Kubaj	vor	17,21,21
27183a608692SPiotr Kubaj
27193a608692SPiotr Kubaj	.long	0x7CE02799
27203a608692SPiotr Kubaj
27213a608692SPiotr Kubaj	.long	0x7D832799
27223a608692SPiotr Kubaj	vxor	11,14,21
27233a608692SPiotr Kubaj
27243a608692SPiotr Kubaj	.long	0x7DBA2799
27253a608692SPiotr Kubaj	.long	0x7DDB2799
27263a608692SPiotr Kubaj	addi	4,4,0x40
27273a608692SPiotr Kubaj	bne	.Lxts_enc6x_steal
27283a608692SPiotr Kubaj	b	.Lxts_enc6x_done
27293a608692SPiotr Kubaj
27303a608692SPiotr Kubaj.align	4
27313a608692SPiotr Kubaj.Lxts_enc6x_three:
27323a608692SPiotr Kubaj	vxor	7,3,17
27333a608692SPiotr Kubaj	vxor	12,4,18
27343a608692SPiotr Kubaj	vxor	13,5,19
27353a608692SPiotr Kubaj	vxor	14,14,14
27363a608692SPiotr Kubaj	vxor	15,15,15
27373a608692SPiotr Kubaj
27383a608692SPiotr Kubaj	bl	_aesp8_xts_enc5x
27393a608692SPiotr Kubaj
27403a608692SPiotr Kubaj
27413a608692SPiotr Kubaj	vor	17,20,20
27423a608692SPiotr Kubaj
27433a608692SPiotr Kubaj	.long	0x7CE02799
27443a608692SPiotr Kubaj	vxor	11,13,20
27453a608692SPiotr Kubaj
27463a608692SPiotr Kubaj	.long	0x7D832799
27473a608692SPiotr Kubaj	.long	0x7DBA2799
27483a608692SPiotr Kubaj	addi	4,4,0x30
27493a608692SPiotr Kubaj	bne	.Lxts_enc6x_steal
27503a608692SPiotr Kubaj	b	.Lxts_enc6x_done
27513a608692SPiotr Kubaj
27523a608692SPiotr Kubaj.align	4
27533a608692SPiotr Kubaj.Lxts_enc6x_two:
27543a608692SPiotr Kubaj	vxor	7,4,17
27553a608692SPiotr Kubaj	vxor	12,5,18
27563a608692SPiotr Kubaj	vxor	13,13,13
27573a608692SPiotr Kubaj	vxor	14,14,14
27583a608692SPiotr Kubaj	vxor	15,15,15
27593a608692SPiotr Kubaj
27603a608692SPiotr Kubaj	bl	_aesp8_xts_enc5x
27613a608692SPiotr Kubaj
27623a608692SPiotr Kubaj
27633a608692SPiotr Kubaj	vor	17,19,19
27643a608692SPiotr Kubaj	vxor	11,12,19
27653a608692SPiotr Kubaj
27663a608692SPiotr Kubaj	.long	0x7CE02799
27673a608692SPiotr Kubaj	.long	0x7D832799
27683a608692SPiotr Kubaj	addi	4,4,0x20
27693a608692SPiotr Kubaj	bne	.Lxts_enc6x_steal
27703a608692SPiotr Kubaj	b	.Lxts_enc6x_done
27713a608692SPiotr Kubaj
27723a608692SPiotr Kubaj.align	4
27733a608692SPiotr Kubaj.Lxts_enc6x_one:
27743a608692SPiotr Kubaj	vxor	7,5,17
27753a608692SPiotr Kubaj	nop
27763a608692SPiotr Kubaj.Loop_xts_enc1x:
27773a608692SPiotr Kubaj	.long	0x10E7C508
27783a608692SPiotr Kubaj	lvx	24,26,7
27793a608692SPiotr Kubaj	addi	7,7,0x20
27803a608692SPiotr Kubaj
27813a608692SPiotr Kubaj	.long	0x10E7CD08
27823a608692SPiotr Kubaj	lvx	25,3,7
27833a608692SPiotr Kubaj	bdnz	.Loop_xts_enc1x
27843a608692SPiotr Kubaj
27853a608692SPiotr Kubaj	add	10,10,31
27863a608692SPiotr Kubaj	cmpwi	31,0
27873a608692SPiotr Kubaj	.long	0x10E7C508
27883a608692SPiotr Kubaj
27893a608692SPiotr Kubaj	subi	10,10,16
27903a608692SPiotr Kubaj	.long	0x10E7CD08
27913a608692SPiotr Kubaj
27923a608692SPiotr Kubaj	lvsr	5,0,31
27933a608692SPiotr Kubaj	.long	0x10E7D508
27943a608692SPiotr Kubaj
27953a608692SPiotr Kubaj	.long	0x7C005699
27963a608692SPiotr Kubaj	.long	0x10E7DD08
27973a608692SPiotr Kubaj
27983a608692SPiotr Kubaj	addi	7,1,64+15
27993a608692SPiotr Kubaj	.long	0x10E7E508
28003a608692SPiotr Kubaj	lvx	24,0,7
28013a608692SPiotr Kubaj
28023a608692SPiotr Kubaj	.long	0x10E7ED08
28033a608692SPiotr Kubaj	lvx	25,3,7
28043a608692SPiotr Kubaj	vxor	17,17,31
28053a608692SPiotr Kubaj
28063a608692SPiotr Kubaj
28073a608692SPiotr Kubaj	.long	0x10E7F508
28083a608692SPiotr Kubaj
28093a608692SPiotr Kubaj	vperm	0,0,0,5
28103a608692SPiotr Kubaj	.long	0x10E78D09
28113a608692SPiotr Kubaj
28123a608692SPiotr Kubaj	vor	17,18,18
28133a608692SPiotr Kubaj	vxor	11,7,18
28143a608692SPiotr Kubaj
28153a608692SPiotr Kubaj	.long	0x7CE02799
28163a608692SPiotr Kubaj	addi	4,4,0x10
28173a608692SPiotr Kubaj	bne	.Lxts_enc6x_steal
28183a608692SPiotr Kubaj	b	.Lxts_enc6x_done
28193a608692SPiotr Kubaj
28203a608692SPiotr Kubaj.align	4
28213a608692SPiotr Kubaj.Lxts_enc6x_zero:
28223a608692SPiotr Kubaj	cmpwi	31,0
28233a608692SPiotr Kubaj	beq	.Lxts_enc6x_done
28243a608692SPiotr Kubaj
28253a608692SPiotr Kubaj	add	10,10,31
28263a608692SPiotr Kubaj	subi	10,10,16
28273a608692SPiotr Kubaj	.long	0x7C005699
28283a608692SPiotr Kubaj	lvsr	5,0,31
28293a608692SPiotr Kubaj
28303a608692SPiotr Kubaj	vperm	0,0,0,5
28313a608692SPiotr Kubaj	vxor	11,11,17
28323a608692SPiotr Kubaj.Lxts_enc6x_steal:
28333a608692SPiotr Kubaj	vxor	0,0,17
28343a608692SPiotr Kubaj	vxor	7,7,7
28353a608692SPiotr Kubaj	vspltisb	12,-1
28363a608692SPiotr Kubaj	vperm	7,7,12,5
28373a608692SPiotr Kubaj	vsel	7,0,11,7
28383a608692SPiotr Kubaj
28393a608692SPiotr Kubaj	subi	30,4,17
28403a608692SPiotr Kubaj	subi	4,4,16
28413a608692SPiotr Kubaj	mtctr	31
28423a608692SPiotr Kubaj.Loop_xts_enc6x_steal:
28433a608692SPiotr Kubaj	lbzu	0,1(30)
28443a608692SPiotr Kubaj	stb	0,16(30)
28453a608692SPiotr Kubaj	bdnz	.Loop_xts_enc6x_steal
28463a608692SPiotr Kubaj
28473a608692SPiotr Kubaj	li	31,0
28483a608692SPiotr Kubaj	mtctr	9
28493a608692SPiotr Kubaj	b	.Loop_xts_enc1x
28503a608692SPiotr Kubaj
28513a608692SPiotr Kubaj.align	4
28523a608692SPiotr Kubaj.Lxts_enc6x_done:
28533a608692SPiotr Kubaj	cmpldi	8,0
28543a608692SPiotr Kubaj	beq	.Lxts_enc6x_ret
28553a608692SPiotr Kubaj
28563a608692SPiotr Kubaj	vxor	8,17,23
28573a608692SPiotr Kubaj
28583a608692SPiotr Kubaj	.long	0x7D004799
28593a608692SPiotr Kubaj
28603a608692SPiotr Kubaj.Lxts_enc6x_ret:
28613a608692SPiotr Kubaj	mtlr	11
28623a608692SPiotr Kubaj	li	10,79
28633a608692SPiotr Kubaj	li	11,95
28643a608692SPiotr Kubaj	stvx	9,10,1
28653a608692SPiotr Kubaj	addi	10,10,32
28663a608692SPiotr Kubaj	stvx	9,11,1
28673a608692SPiotr Kubaj	addi	11,11,32
28683a608692SPiotr Kubaj	stvx	9,10,1
28693a608692SPiotr Kubaj	addi	10,10,32
28703a608692SPiotr Kubaj	stvx	9,11,1
28713a608692SPiotr Kubaj	addi	11,11,32
28723a608692SPiotr Kubaj	stvx	9,10,1
28733a608692SPiotr Kubaj	addi	10,10,32
28743a608692SPiotr Kubaj	stvx	9,11,1
28753a608692SPiotr Kubaj	addi	11,11,32
28763a608692SPiotr Kubaj	stvx	9,10,1
28773a608692SPiotr Kubaj	addi	10,10,32
28783a608692SPiotr Kubaj	stvx	9,11,1
28793a608692SPiotr Kubaj	addi	11,11,32
28803a608692SPiotr Kubaj
28813a608692SPiotr Kubaj	or	12,12,12
28823a608692SPiotr Kubaj	lvx	20,10,1
28833a608692SPiotr Kubaj	addi	10,10,32
28843a608692SPiotr Kubaj	lvx	21,11,1
28853a608692SPiotr Kubaj	addi	11,11,32
28863a608692SPiotr Kubaj	lvx	22,10,1
28873a608692SPiotr Kubaj	addi	10,10,32
28883a608692SPiotr Kubaj	lvx	23,11,1
28893a608692SPiotr Kubaj	addi	11,11,32
28903a608692SPiotr Kubaj	lvx	24,10,1
28913a608692SPiotr Kubaj	addi	10,10,32
28923a608692SPiotr Kubaj	lvx	25,11,1
28933a608692SPiotr Kubaj	addi	11,11,32
28943a608692SPiotr Kubaj	lvx	26,10,1
28953a608692SPiotr Kubaj	addi	10,10,32
28963a608692SPiotr Kubaj	lvx	27,11,1
28973a608692SPiotr Kubaj	addi	11,11,32
28983a608692SPiotr Kubaj	lvx	28,10,1
28993a608692SPiotr Kubaj	addi	10,10,32
29003a608692SPiotr Kubaj	lvx	29,11,1
29013a608692SPiotr Kubaj	addi	11,11,32
29023a608692SPiotr Kubaj	lvx	30,10,1
29033a608692SPiotr Kubaj	lvx	31,11,1
29043a608692SPiotr Kubaj	ld	26,400(1)
29053a608692SPiotr Kubaj	ld	27,408(1)
29063a608692SPiotr Kubaj	ld	28,416(1)
29073a608692SPiotr Kubaj	ld	29,424(1)
29083a608692SPiotr Kubaj	ld	30,432(1)
29093a608692SPiotr Kubaj	ld	31,440(1)
29103a608692SPiotr Kubaj	addi	1,1,448
29113a608692SPiotr Kubaj	blr
29123a608692SPiotr Kubaj.long	0
29133a608692SPiotr Kubaj.byte	0,12,0x04,1,0x80,6,6,0
29143a608692SPiotr Kubaj.long	0
29153a608692SPiotr Kubaj
29163a608692SPiotr Kubaj.align	5
29173a608692SPiotr Kubaj_aesp8_xts_enc5x:
29183a608692SPiotr Kubaj	.long	0x10E7C508
29193a608692SPiotr Kubaj	.long	0x118CC508
29203a608692SPiotr Kubaj	.long	0x11ADC508
29213a608692SPiotr Kubaj	.long	0x11CEC508
29223a608692SPiotr Kubaj	.long	0x11EFC508
29233a608692SPiotr Kubaj	lvx	24,26,7
29243a608692SPiotr Kubaj	addi	7,7,0x20
29253a608692SPiotr Kubaj
29263a608692SPiotr Kubaj	.long	0x10E7CD08
29273a608692SPiotr Kubaj	.long	0x118CCD08
29283a608692SPiotr Kubaj	.long	0x11ADCD08
29293a608692SPiotr Kubaj	.long	0x11CECD08
29303a608692SPiotr Kubaj	.long	0x11EFCD08
29313a608692SPiotr Kubaj	lvx	25,3,7
29323a608692SPiotr Kubaj	bdnz	_aesp8_xts_enc5x
29333a608692SPiotr Kubaj
29343a608692SPiotr Kubaj	add	10,10,31
29353a608692SPiotr Kubaj	cmpwi	31,0
29363a608692SPiotr Kubaj	.long	0x10E7C508
29373a608692SPiotr Kubaj	.long	0x118CC508
29383a608692SPiotr Kubaj	.long	0x11ADC508
29393a608692SPiotr Kubaj	.long	0x11CEC508
29403a608692SPiotr Kubaj	.long	0x11EFC508
29413a608692SPiotr Kubaj
29423a608692SPiotr Kubaj	subi	10,10,16
29433a608692SPiotr Kubaj	.long	0x10E7CD08
29443a608692SPiotr Kubaj	.long	0x118CCD08
29453a608692SPiotr Kubaj	.long	0x11ADCD08
29463a608692SPiotr Kubaj	.long	0x11CECD08
29473a608692SPiotr Kubaj	.long	0x11EFCD08
29483a608692SPiotr Kubaj	vxor	17,17,31
29493a608692SPiotr Kubaj
29503a608692SPiotr Kubaj	.long	0x10E7D508
29513a608692SPiotr Kubaj	lvsr	5,0,31
29523a608692SPiotr Kubaj	.long	0x118CD508
29533a608692SPiotr Kubaj	.long	0x11ADD508
29543a608692SPiotr Kubaj	.long	0x11CED508
29553a608692SPiotr Kubaj	.long	0x11EFD508
29563a608692SPiotr Kubaj	vxor	1,18,31
29573a608692SPiotr Kubaj
29583a608692SPiotr Kubaj	.long	0x10E7DD08
29593a608692SPiotr Kubaj	.long	0x7C005699
29603a608692SPiotr Kubaj	.long	0x118CDD08
29613a608692SPiotr Kubaj	.long	0x11ADDD08
29623a608692SPiotr Kubaj	.long	0x11CEDD08
29633a608692SPiotr Kubaj	.long	0x11EFDD08
29643a608692SPiotr Kubaj	vxor	2,19,31
29653a608692SPiotr Kubaj
29663a608692SPiotr Kubaj	addi	7,1,64+15
29673a608692SPiotr Kubaj	.long	0x10E7E508
29683a608692SPiotr Kubaj	.long	0x118CE508
29693a608692SPiotr Kubaj	.long	0x11ADE508
29703a608692SPiotr Kubaj	.long	0x11CEE508
29713a608692SPiotr Kubaj	.long	0x11EFE508
29723a608692SPiotr Kubaj	lvx	24,0,7
29733a608692SPiotr Kubaj	vxor	3,20,31
29743a608692SPiotr Kubaj
29753a608692SPiotr Kubaj	.long	0x10E7ED08
29763a608692SPiotr Kubaj
29773a608692SPiotr Kubaj	.long	0x118CED08
29783a608692SPiotr Kubaj	.long	0x11ADED08
29793a608692SPiotr Kubaj	.long	0x11CEED08
29803a608692SPiotr Kubaj	.long	0x11EFED08
29813a608692SPiotr Kubaj	lvx	25,3,7
29823a608692SPiotr Kubaj	vxor	4,21,31
29833a608692SPiotr Kubaj
29843a608692SPiotr Kubaj	.long	0x10E7F508
29853a608692SPiotr Kubaj	vperm	0,0,0,5
29863a608692SPiotr Kubaj	.long	0x118CF508
29873a608692SPiotr Kubaj	.long	0x11ADF508
29883a608692SPiotr Kubaj	.long	0x11CEF508
29893a608692SPiotr Kubaj	.long	0x11EFF508
29903a608692SPiotr Kubaj
29913a608692SPiotr Kubaj	.long	0x10E78D09
29923a608692SPiotr Kubaj	.long	0x118C0D09
29933a608692SPiotr Kubaj	.long	0x11AD1509
29943a608692SPiotr Kubaj	.long	0x11CE1D09
29953a608692SPiotr Kubaj	.long	0x11EF2509
29963a608692SPiotr Kubaj	blr
29973a608692SPiotr Kubaj.long	0
29983a608692SPiotr Kubaj.byte	0,12,0x14,0,0,0,0,0
29993a608692SPiotr Kubaj
30003a608692SPiotr Kubaj.align	5
30013a608692SPiotr Kubaj_aesp8_xts_decrypt6x:
30023a608692SPiotr Kubaj	stdu	1,-448(1)
30033a608692SPiotr Kubaj	mflr	11
30043a608692SPiotr Kubaj	li	7,207
30053a608692SPiotr Kubaj	li	3,223
30063a608692SPiotr Kubaj	std	11,464(1)
30073a608692SPiotr Kubaj	stvx	20,7,1
30083a608692SPiotr Kubaj	addi	7,7,32
30093a608692SPiotr Kubaj	stvx	21,3,1
30103a608692SPiotr Kubaj	addi	3,3,32
30113a608692SPiotr Kubaj	stvx	22,7,1
30123a608692SPiotr Kubaj	addi	7,7,32
30133a608692SPiotr Kubaj	stvx	23,3,1
30143a608692SPiotr Kubaj	addi	3,3,32
30153a608692SPiotr Kubaj	stvx	24,7,1
30163a608692SPiotr Kubaj	addi	7,7,32
30173a608692SPiotr Kubaj	stvx	25,3,1
30183a608692SPiotr Kubaj	addi	3,3,32
30193a608692SPiotr Kubaj	stvx	26,7,1
30203a608692SPiotr Kubaj	addi	7,7,32
30213a608692SPiotr Kubaj	stvx	27,3,1
30223a608692SPiotr Kubaj	addi	3,3,32
30233a608692SPiotr Kubaj	stvx	28,7,1
30243a608692SPiotr Kubaj	addi	7,7,32
30253a608692SPiotr Kubaj	stvx	29,3,1
30263a608692SPiotr Kubaj	addi	3,3,32
30273a608692SPiotr Kubaj	stvx	30,7,1
30283a608692SPiotr Kubaj	stvx	31,3,1
30293a608692SPiotr Kubaj	li	0,-1
30303a608692SPiotr Kubaj	stw	12,396(1)
30313a608692SPiotr Kubaj	li	3,0x10
30323a608692SPiotr Kubaj	std	26,400(1)
30333a608692SPiotr Kubaj	li	26,0x20
30343a608692SPiotr Kubaj	std	27,408(1)
30353a608692SPiotr Kubaj	li	27,0x30
30363a608692SPiotr Kubaj	std	28,416(1)
30373a608692SPiotr Kubaj	li	28,0x40
30383a608692SPiotr Kubaj	std	29,424(1)
30393a608692SPiotr Kubaj	li	29,0x50
30403a608692SPiotr Kubaj	std	30,432(1)
30413a608692SPiotr Kubaj	li	30,0x60
30423a608692SPiotr Kubaj	std	31,440(1)
30433a608692SPiotr Kubaj	li	31,0x70
30443a608692SPiotr Kubaj	or	0,0,0
30453a608692SPiotr Kubaj
3046*77864b54SEnji Cooper
3047*77864b54SEnji Cooper	xxlor	2, 32+10, 32+10
3048*77864b54SEnji Cooper	vsldoi	10,11,10,1
3049*77864b54SEnji Cooper	xxlor	1, 32+10, 32+10
3050*77864b54SEnji Cooper
3051*77864b54SEnji Cooper
3052*77864b54SEnji Cooper	mr	31, 6
3053*77864b54SEnji Cooper	bl	.Lconsts
3054*77864b54SEnji Cooper	lxvw4x	0, 28, 6
3055*77864b54SEnji Cooper	mr	6, 31
3056*77864b54SEnji Cooper	li	31,0x70
3057*77864b54SEnji Cooper
30583a608692SPiotr Kubaj	subi	9,9,3
30593a608692SPiotr Kubaj
30603a608692SPiotr Kubaj	lvx	23,0,6
30613a608692SPiotr Kubaj	lvx	30,3,6
30623a608692SPiotr Kubaj	addi	6,6,0x20
30633a608692SPiotr Kubaj	lvx	31,0,6
30643a608692SPiotr Kubaj	vperm	23,23,30,7
30653a608692SPiotr Kubaj	addi	7,1,64+15
30663a608692SPiotr Kubaj	mtctr	9
30673a608692SPiotr Kubaj
30683a608692SPiotr Kubaj.Load_xts_dec_key:
30693a608692SPiotr Kubaj	vperm	24,30,31,7
30703a608692SPiotr Kubaj	lvx	30,3,6
30713a608692SPiotr Kubaj	addi	6,6,0x20
30723a608692SPiotr Kubaj	stvx	24,0,7
30733a608692SPiotr Kubaj	vperm	25,31,30,7
30743a608692SPiotr Kubaj	lvx	31,0,6
30753a608692SPiotr Kubaj	stvx	25,3,7
30763a608692SPiotr Kubaj	addi	7,7,0x20
30773a608692SPiotr Kubaj	bdnz	.Load_xts_dec_key
30783a608692SPiotr Kubaj
30793a608692SPiotr Kubaj	lvx	26,3,6
30803a608692SPiotr Kubaj	vperm	24,30,31,7
30813a608692SPiotr Kubaj	lvx	27,26,6
30823a608692SPiotr Kubaj	stvx	24,0,7
30833a608692SPiotr Kubaj	vperm	25,31,26,7
30843a608692SPiotr Kubaj	lvx	28,27,6
30853a608692SPiotr Kubaj	stvx	25,3,7
30863a608692SPiotr Kubaj	addi	7,1,64+15
30873a608692SPiotr Kubaj	vperm	26,26,27,7
30883a608692SPiotr Kubaj	lvx	29,28,6
30893a608692SPiotr Kubaj	vperm	27,27,28,7
30903a608692SPiotr Kubaj	lvx	30,29,6
30913a608692SPiotr Kubaj	vperm	28,28,29,7
30923a608692SPiotr Kubaj	lvx	31,30,6
30933a608692SPiotr Kubaj	vperm	29,29,30,7
30943a608692SPiotr Kubaj	lvx	22,31,6
30953a608692SPiotr Kubaj	vperm	30,30,31,7
30963a608692SPiotr Kubaj	lvx	24,0,7
30973a608692SPiotr Kubaj	vperm	31,31,22,7
30983a608692SPiotr Kubaj	lvx	25,3,7
30993a608692SPiotr Kubaj
31003a608692SPiotr Kubaj	vperm	0,2,4,5
31013a608692SPiotr Kubaj	subi	10,10,31
31023a608692SPiotr Kubaj	vxor	17,8,23
31033a608692SPiotr Kubaj	vsrab	11,8,9
31043a608692SPiotr Kubaj	vaddubm	8,8,8
31053a608692SPiotr Kubaj	vand	11,11,10
31063a608692SPiotr Kubaj	vxor	7,0,17
3107*77864b54SEnji Cooper	xxlor	32+1, 0, 0
3108*77864b54SEnji Cooper	vpermxor	8, 8, 11, 1
31093a608692SPiotr Kubaj
31103a608692SPiotr Kubaj	.long	0x7C235699
31113a608692SPiotr Kubaj	vxor	18,8,23
31123a608692SPiotr Kubaj	vsrab	11,8,9
31133a608692SPiotr Kubaj	vaddubm	8,8,8
31143a608692SPiotr Kubaj
31153a608692SPiotr Kubaj	vand	11,11,10
31163a608692SPiotr Kubaj	vxor	12,1,18
3117*77864b54SEnji Cooper	xxlor	32+2, 0, 0
3118*77864b54SEnji Cooper	vpermxor	8, 8, 11, 2
31193a608692SPiotr Kubaj
31203a608692SPiotr Kubaj	.long	0x7C5A5699
31213a608692SPiotr Kubaj	andi.	31,5,15
31223a608692SPiotr Kubaj	vxor	19,8,23
31233a608692SPiotr Kubaj	vsrab	11,8,9
31243a608692SPiotr Kubaj	vaddubm	8,8,8
31253a608692SPiotr Kubaj
31263a608692SPiotr Kubaj	vand	11,11,10
31273a608692SPiotr Kubaj	vxor	13,2,19
3128*77864b54SEnji Cooper	xxlor	32+3, 0, 0
3129*77864b54SEnji Cooper	vpermxor	8, 8, 11, 3
31303a608692SPiotr Kubaj
31313a608692SPiotr Kubaj	.long	0x7C7B5699
31323a608692SPiotr Kubaj	sub	5,5,31
31333a608692SPiotr Kubaj	vxor	20,8,23
31343a608692SPiotr Kubaj	vsrab	11,8,9
31353a608692SPiotr Kubaj	vaddubm	8,8,8
31363a608692SPiotr Kubaj
31373a608692SPiotr Kubaj	vand	11,11,10
31383a608692SPiotr Kubaj	vxor	14,3,20
3139*77864b54SEnji Cooper	xxlor	32+4, 0, 0
3140*77864b54SEnji Cooper	vpermxor	8, 8, 11, 4
31413a608692SPiotr Kubaj
31423a608692SPiotr Kubaj	.long	0x7C9C5699
31433a608692SPiotr Kubaj	subi	5,5,0x60
31443a608692SPiotr Kubaj	vxor	21,8,23
31453a608692SPiotr Kubaj	vsrab	11,8,9
31463a608692SPiotr Kubaj	vaddubm	8,8,8
31473a608692SPiotr Kubaj
31483a608692SPiotr Kubaj	vand	11,11,10
31493a608692SPiotr Kubaj	vxor	15,4,21
3150*77864b54SEnji Cooper	xxlor	32+5, 0, 0
3151*77864b54SEnji Cooper	vpermxor	8, 8, 11, 5
31523a608692SPiotr Kubaj
31533a608692SPiotr Kubaj	.long	0x7CBD5699
31543a608692SPiotr Kubaj	addi	10,10,0x60
31553a608692SPiotr Kubaj	vxor	22,8,23
31563a608692SPiotr Kubaj	vsrab	11,8,9
31573a608692SPiotr Kubaj	vaddubm	8,8,8
31583a608692SPiotr Kubaj
31593a608692SPiotr Kubaj	vand	11,11,10
31603a608692SPiotr Kubaj	vxor	16,5,22
3161*77864b54SEnji Cooper	xxlor	32+0, 0, 0
3162*77864b54SEnji Cooper	vpermxor	8, 8, 11, 0
31633a608692SPiotr Kubaj
31643a608692SPiotr Kubaj	vxor	31,31,23
31653a608692SPiotr Kubaj	mtctr	9
31663a608692SPiotr Kubaj	b	.Loop_xts_dec6x
31673a608692SPiotr Kubaj
31683a608692SPiotr Kubaj.align	5
31693a608692SPiotr Kubaj.Loop_xts_dec6x:
31703a608692SPiotr Kubaj	.long	0x10E7C548
31713a608692SPiotr Kubaj	.long	0x118CC548
31723a608692SPiotr Kubaj	.long	0x11ADC548
31733a608692SPiotr Kubaj	.long	0x11CEC548
31743a608692SPiotr Kubaj	.long	0x11EFC548
31753a608692SPiotr Kubaj	.long	0x1210C548
31763a608692SPiotr Kubaj	lvx	24,26,7
31773a608692SPiotr Kubaj	addi	7,7,0x20
31783a608692SPiotr Kubaj
31793a608692SPiotr Kubaj	.long	0x10E7CD48
31803a608692SPiotr Kubaj	.long	0x118CCD48
31813a608692SPiotr Kubaj	.long	0x11ADCD48
31823a608692SPiotr Kubaj	.long	0x11CECD48
31833a608692SPiotr Kubaj	.long	0x11EFCD48
31843a608692SPiotr Kubaj	.long	0x1210CD48
31853a608692SPiotr Kubaj	lvx	25,3,7
31863a608692SPiotr Kubaj	bdnz	.Loop_xts_dec6x
31873a608692SPiotr Kubaj
3188*77864b54SEnji Cooper	xxlor	32+10, 1, 1
3189*77864b54SEnji Cooper
31903a608692SPiotr Kubaj	subic	5,5,96
31913a608692SPiotr Kubaj	vxor	0,17,31
31923a608692SPiotr Kubaj	.long	0x10E7C548
31933a608692SPiotr Kubaj	.long	0x118CC548
31943a608692SPiotr Kubaj	vsrab	11,8,9
31953a608692SPiotr Kubaj	vxor	17,8,23
31963a608692SPiotr Kubaj	vaddubm	8,8,8
31973a608692SPiotr Kubaj	.long	0x11ADC548
31983a608692SPiotr Kubaj	.long	0x11CEC548
31993a608692SPiotr Kubaj	.long	0x11EFC548
32003a608692SPiotr Kubaj	.long	0x1210C548
32013a608692SPiotr Kubaj
32023a608692SPiotr Kubaj	subfe.	0,0,0
32033a608692SPiotr Kubaj	vand	11,11,10
32043a608692SPiotr Kubaj	.long	0x10E7CD48
32053a608692SPiotr Kubaj	.long	0x118CCD48
3206*77864b54SEnji Cooper	xxlor	32+1, 0, 0
3207*77864b54SEnji Cooper	vpermxor	8, 8, 11, 1
32083a608692SPiotr Kubaj	.long	0x11ADCD48
32093a608692SPiotr Kubaj	.long	0x11CECD48
32103a608692SPiotr Kubaj	vxor	1,18,31
32113a608692SPiotr Kubaj	vsrab	11,8,9
32123a608692SPiotr Kubaj	vxor	18,8,23
32133a608692SPiotr Kubaj	.long	0x11EFCD48
32143a608692SPiotr Kubaj	.long	0x1210CD48
32153a608692SPiotr Kubaj
32163a608692SPiotr Kubaj	and	0,0,5
32173a608692SPiotr Kubaj	vaddubm	8,8,8
32183a608692SPiotr Kubaj	.long	0x10E7D548
32193a608692SPiotr Kubaj	.long	0x118CD548
32203a608692SPiotr Kubaj	vand	11,11,10
32213a608692SPiotr Kubaj	.long	0x11ADD548
32223a608692SPiotr Kubaj	.long	0x11CED548
3223*77864b54SEnji Cooper	xxlor	32+2, 0, 0
3224*77864b54SEnji Cooper	vpermxor	8, 8, 11, 2
32253a608692SPiotr Kubaj	.long	0x11EFD548
32263a608692SPiotr Kubaj	.long	0x1210D548
32273a608692SPiotr Kubaj
32283a608692SPiotr Kubaj	add	10,10,0
32293a608692SPiotr Kubaj
32303a608692SPiotr Kubaj
32313a608692SPiotr Kubaj
32323a608692SPiotr Kubaj	vxor	2,19,31
32333a608692SPiotr Kubaj	vsrab	11,8,9
32343a608692SPiotr Kubaj	vxor	19,8,23
32353a608692SPiotr Kubaj	vaddubm	8,8,8
32363a608692SPiotr Kubaj	.long	0x10E7DD48
32373a608692SPiotr Kubaj	.long	0x118CDD48
32383a608692SPiotr Kubaj	.long	0x11ADDD48
32393a608692SPiotr Kubaj	.long	0x11CEDD48
32403a608692SPiotr Kubaj	vand	11,11,10
32413a608692SPiotr Kubaj	.long	0x11EFDD48
32423a608692SPiotr Kubaj	.long	0x1210DD48
32433a608692SPiotr Kubaj
32443a608692SPiotr Kubaj	addi	7,1,64+15
3245*77864b54SEnji Cooper	xxlor	32+3, 0, 0
3246*77864b54SEnji Cooper	vpermxor	8, 8, 11, 3
32473a608692SPiotr Kubaj	.long	0x10E7E548
32483a608692SPiotr Kubaj	.long	0x118CE548
32493a608692SPiotr Kubaj	vxor	3,20,31
32503a608692SPiotr Kubaj	vsrab	11,8,9
32513a608692SPiotr Kubaj	vxor	20,8,23
32523a608692SPiotr Kubaj	.long	0x11ADE548
32533a608692SPiotr Kubaj	.long	0x11CEE548
32543a608692SPiotr Kubaj	vaddubm	8,8,8
32553a608692SPiotr Kubaj	.long	0x11EFE548
32563a608692SPiotr Kubaj	.long	0x1210E548
32573a608692SPiotr Kubaj	lvx	24,0,7
32583a608692SPiotr Kubaj	vand	11,11,10
32593a608692SPiotr Kubaj
32603a608692SPiotr Kubaj	.long	0x10E7ED48
32613a608692SPiotr Kubaj	.long	0x118CED48
3262*77864b54SEnji Cooper	xxlor	32+4, 0, 0
3263*77864b54SEnji Cooper	vpermxor	8, 8, 11, 4
32643a608692SPiotr Kubaj	.long	0x11ADED48
32653a608692SPiotr Kubaj	.long	0x11CEED48
32663a608692SPiotr Kubaj	vxor	4,21,31
32673a608692SPiotr Kubaj	vsrab	11,8,9
32683a608692SPiotr Kubaj	vxor	21,8,23
32693a608692SPiotr Kubaj	.long	0x11EFED48
32703a608692SPiotr Kubaj	.long	0x1210ED48
32713a608692SPiotr Kubaj	lvx	25,3,7
32723a608692SPiotr Kubaj	vaddubm	8,8,8
32733a608692SPiotr Kubaj
32743a608692SPiotr Kubaj	.long	0x10E7F548
32753a608692SPiotr Kubaj	.long	0x118CF548
32763a608692SPiotr Kubaj	vand	11,11,10
32773a608692SPiotr Kubaj	.long	0x11ADF548
32783a608692SPiotr Kubaj	.long	0x11CEF548
3279*77864b54SEnji Cooper	xxlor	32+5, 0, 0
3280*77864b54SEnji Cooper	vpermxor	8, 8, 11, 5
32813a608692SPiotr Kubaj	.long	0x11EFF548
32823a608692SPiotr Kubaj	.long	0x1210F548
32833a608692SPiotr Kubaj	vxor	5,22,31
32843a608692SPiotr Kubaj	vsrab	11,8,9
32853a608692SPiotr Kubaj	vxor	22,8,23
32863a608692SPiotr Kubaj
32873a608692SPiotr Kubaj	.long	0x10E70549
32883a608692SPiotr Kubaj	.long	0x7C005699
32893a608692SPiotr Kubaj	vaddubm	8,8,8
32903a608692SPiotr Kubaj	.long	0x118C0D49
32913a608692SPiotr Kubaj	.long	0x7C235699
32923a608692SPiotr Kubaj	.long	0x11AD1549
32933a608692SPiotr Kubaj
32943a608692SPiotr Kubaj	.long	0x7C5A5699
32953a608692SPiotr Kubaj	vand	11,11,10
32963a608692SPiotr Kubaj	.long	0x11CE1D49
32973a608692SPiotr Kubaj
32983a608692SPiotr Kubaj	.long	0x7C7B5699
32993a608692SPiotr Kubaj	.long	0x11EF2549
33003a608692SPiotr Kubaj
33013a608692SPiotr Kubaj	.long	0x7C9C5699
3302*77864b54SEnji Cooper	xxlor	10, 32+0, 32+0
3303*77864b54SEnji Cooper	xxlor	32+0, 0, 0
3304*77864b54SEnji Cooper	vpermxor	8, 8, 11, 0
3305*77864b54SEnji Cooper	xxlor	32+0, 10, 10
33063a608692SPiotr Kubaj	.long	0x12102D49
33073a608692SPiotr Kubaj
33083a608692SPiotr Kubaj	.long	0x7CBD5699
33093a608692SPiotr Kubaj	addi	10,10,0x60
33103a608692SPiotr Kubaj
33113a608692SPiotr Kubaj
33123a608692SPiotr Kubaj
33133a608692SPiotr Kubaj
33143a608692SPiotr Kubaj
33153a608692SPiotr Kubaj	.long	0x7CE02799
33163a608692SPiotr Kubaj	vxor	7,0,17
33173a608692SPiotr Kubaj
33183a608692SPiotr Kubaj	.long	0x7D832799
33193a608692SPiotr Kubaj	vxor	12,1,18
33203a608692SPiotr Kubaj
33213a608692SPiotr Kubaj	.long	0x7DBA2799
33223a608692SPiotr Kubaj	vxor	13,2,19
33233a608692SPiotr Kubaj
33243a608692SPiotr Kubaj	.long	0x7DDB2799
33253a608692SPiotr Kubaj	vxor	14,3,20
33263a608692SPiotr Kubaj
33273a608692SPiotr Kubaj	.long	0x7DFC2799
33283a608692SPiotr Kubaj	vxor	15,4,21
33293a608692SPiotr Kubaj	.long	0x7E1D2799
33303a608692SPiotr Kubaj	vxor	16,5,22
33313a608692SPiotr Kubaj	addi	4,4,0x60
33323a608692SPiotr Kubaj
33333a608692SPiotr Kubaj	mtctr	9
33343a608692SPiotr Kubaj	beq	.Loop_xts_dec6x
33353a608692SPiotr Kubaj
3336*77864b54SEnji Cooper	xxlor	32+10, 2, 2
3337*77864b54SEnji Cooper
33383a608692SPiotr Kubaj	addic.	5,5,0x60
33393a608692SPiotr Kubaj	beq	.Lxts_dec6x_zero
33403a608692SPiotr Kubaj	cmpwi	5,0x20
33413a608692SPiotr Kubaj	blt	.Lxts_dec6x_one
33423a608692SPiotr Kubaj	nop
33433a608692SPiotr Kubaj	beq	.Lxts_dec6x_two
33443a608692SPiotr Kubaj	cmpwi	5,0x40
33453a608692SPiotr Kubaj	blt	.Lxts_dec6x_three
33463a608692SPiotr Kubaj	nop
33473a608692SPiotr Kubaj	beq	.Lxts_dec6x_four
33483a608692SPiotr Kubaj
33493a608692SPiotr Kubaj.Lxts_dec6x_five:
33503a608692SPiotr Kubaj	vxor	7,1,17
33513a608692SPiotr Kubaj	vxor	12,2,18
33523a608692SPiotr Kubaj	vxor	13,3,19
33533a608692SPiotr Kubaj	vxor	14,4,20
33543a608692SPiotr Kubaj	vxor	15,5,21
33553a608692SPiotr Kubaj
33563a608692SPiotr Kubaj	bl	_aesp8_xts_dec5x
33573a608692SPiotr Kubaj
33583a608692SPiotr Kubaj
33593a608692SPiotr Kubaj	vor	17,22,22
33603a608692SPiotr Kubaj	vxor	18,8,23
33613a608692SPiotr Kubaj
33623a608692SPiotr Kubaj	.long	0x7CE02799
33633a608692SPiotr Kubaj	vxor	7,0,18
33643a608692SPiotr Kubaj
33653a608692SPiotr Kubaj	.long	0x7D832799
33663a608692SPiotr Kubaj
33673a608692SPiotr Kubaj	.long	0x7DBA2799
33683a608692SPiotr Kubaj
33693a608692SPiotr Kubaj	.long	0x7DDB2799
33703a608692SPiotr Kubaj	.long	0x7DFC2799
33713a608692SPiotr Kubaj	addi	4,4,0x50
33723a608692SPiotr Kubaj	bne	.Lxts_dec6x_steal
33733a608692SPiotr Kubaj	b	.Lxts_dec6x_done
33743a608692SPiotr Kubaj
33753a608692SPiotr Kubaj.align	4
33763a608692SPiotr Kubaj.Lxts_dec6x_four:
33773a608692SPiotr Kubaj	vxor	7,2,17
33783a608692SPiotr Kubaj	vxor	12,3,18
33793a608692SPiotr Kubaj	vxor	13,4,19
33803a608692SPiotr Kubaj	vxor	14,5,20
33813a608692SPiotr Kubaj	vxor	15,15,15
33823a608692SPiotr Kubaj
33833a608692SPiotr Kubaj	bl	_aesp8_xts_dec5x
33843a608692SPiotr Kubaj
33853a608692SPiotr Kubaj
33863a608692SPiotr Kubaj	vor	17,21,21
33873a608692SPiotr Kubaj	vor	18,22,22
33883a608692SPiotr Kubaj
33893a608692SPiotr Kubaj	.long	0x7CE02799
33903a608692SPiotr Kubaj	vxor	7,0,22
33913a608692SPiotr Kubaj
33923a608692SPiotr Kubaj	.long	0x7D832799
33933a608692SPiotr Kubaj
33943a608692SPiotr Kubaj	.long	0x7DBA2799
33953a608692SPiotr Kubaj	.long	0x7DDB2799
33963a608692SPiotr Kubaj	addi	4,4,0x40
33973a608692SPiotr Kubaj	bne	.Lxts_dec6x_steal
33983a608692SPiotr Kubaj	b	.Lxts_dec6x_done
33993a608692SPiotr Kubaj
34003a608692SPiotr Kubaj.align	4
34013a608692SPiotr Kubaj.Lxts_dec6x_three:
34023a608692SPiotr Kubaj	vxor	7,3,17
34033a608692SPiotr Kubaj	vxor	12,4,18
34043a608692SPiotr Kubaj	vxor	13,5,19
34053a608692SPiotr Kubaj	vxor	14,14,14
34063a608692SPiotr Kubaj	vxor	15,15,15
34073a608692SPiotr Kubaj
34083a608692SPiotr Kubaj	bl	_aesp8_xts_dec5x
34093a608692SPiotr Kubaj
34103a608692SPiotr Kubaj
34113a608692SPiotr Kubaj	vor	17,20,20
34123a608692SPiotr Kubaj	vor	18,21,21
34133a608692SPiotr Kubaj
34143a608692SPiotr Kubaj	.long	0x7CE02799
34153a608692SPiotr Kubaj	vxor	7,0,21
34163a608692SPiotr Kubaj
34173a608692SPiotr Kubaj	.long	0x7D832799
34183a608692SPiotr Kubaj	.long	0x7DBA2799
34193a608692SPiotr Kubaj	addi	4,4,0x30
34203a608692SPiotr Kubaj	bne	.Lxts_dec6x_steal
34213a608692SPiotr Kubaj	b	.Lxts_dec6x_done
34223a608692SPiotr Kubaj
34233a608692SPiotr Kubaj.align	4
34243a608692SPiotr Kubaj.Lxts_dec6x_two:
34253a608692SPiotr Kubaj	vxor	7,4,17
34263a608692SPiotr Kubaj	vxor	12,5,18
34273a608692SPiotr Kubaj	vxor	13,13,13
34283a608692SPiotr Kubaj	vxor	14,14,14
34293a608692SPiotr Kubaj	vxor	15,15,15
34303a608692SPiotr Kubaj
34313a608692SPiotr Kubaj	bl	_aesp8_xts_dec5x
34323a608692SPiotr Kubaj
34333a608692SPiotr Kubaj
34343a608692SPiotr Kubaj	vor	17,19,19
34353a608692SPiotr Kubaj	vor	18,20,20
34363a608692SPiotr Kubaj
34373a608692SPiotr Kubaj	.long	0x7CE02799
34383a608692SPiotr Kubaj	vxor	7,0,20
34393a608692SPiotr Kubaj	.long	0x7D832799
34403a608692SPiotr Kubaj	addi	4,4,0x20
34413a608692SPiotr Kubaj	bne	.Lxts_dec6x_steal
34423a608692SPiotr Kubaj	b	.Lxts_dec6x_done
34433a608692SPiotr Kubaj
34443a608692SPiotr Kubaj.align	4
34453a608692SPiotr Kubaj.Lxts_dec6x_one:
34463a608692SPiotr Kubaj	vxor	7,5,17
34473a608692SPiotr Kubaj	nop
34483a608692SPiotr Kubaj.Loop_xts_dec1x:
34493a608692SPiotr Kubaj	.long	0x10E7C548
34503a608692SPiotr Kubaj	lvx	24,26,7
34513a608692SPiotr Kubaj	addi	7,7,0x20
34523a608692SPiotr Kubaj
34533a608692SPiotr Kubaj	.long	0x10E7CD48
34543a608692SPiotr Kubaj	lvx	25,3,7
34553a608692SPiotr Kubaj	bdnz	.Loop_xts_dec1x
34563a608692SPiotr Kubaj
34573a608692SPiotr Kubaj	subi	0,31,1
34583a608692SPiotr Kubaj	.long	0x10E7C548
34593a608692SPiotr Kubaj
34603a608692SPiotr Kubaj	andi.	0,0,16
34613a608692SPiotr Kubaj	cmpwi	31,0
34623a608692SPiotr Kubaj	.long	0x10E7CD48
34633a608692SPiotr Kubaj
34643a608692SPiotr Kubaj	sub	10,10,0
34653a608692SPiotr Kubaj	.long	0x10E7D548
34663a608692SPiotr Kubaj
34673a608692SPiotr Kubaj	.long	0x7C005699
34683a608692SPiotr Kubaj	.long	0x10E7DD48
34693a608692SPiotr Kubaj
34703a608692SPiotr Kubaj	addi	7,1,64+15
34713a608692SPiotr Kubaj	.long	0x10E7E548
34723a608692SPiotr Kubaj	lvx	24,0,7
34733a608692SPiotr Kubaj
34743a608692SPiotr Kubaj	.long	0x10E7ED48
34753a608692SPiotr Kubaj	lvx	25,3,7
34763a608692SPiotr Kubaj	vxor	17,17,31
34773a608692SPiotr Kubaj
34783a608692SPiotr Kubaj
34793a608692SPiotr Kubaj	.long	0x10E7F548
34803a608692SPiotr Kubaj
34813a608692SPiotr Kubaj	mtctr	9
34823a608692SPiotr Kubaj	.long	0x10E78D49
34833a608692SPiotr Kubaj
34843a608692SPiotr Kubaj	vor	17,18,18
34853a608692SPiotr Kubaj	vor	18,19,19
34863a608692SPiotr Kubaj
34873a608692SPiotr Kubaj	.long	0x7CE02799
34883a608692SPiotr Kubaj	addi	4,4,0x10
34893a608692SPiotr Kubaj	vxor	7,0,19
34903a608692SPiotr Kubaj	bne	.Lxts_dec6x_steal
34913a608692SPiotr Kubaj	b	.Lxts_dec6x_done
34923a608692SPiotr Kubaj
34933a608692SPiotr Kubaj.align	4
34943a608692SPiotr Kubaj.Lxts_dec6x_zero:
34953a608692SPiotr Kubaj	cmpwi	31,0
34963a608692SPiotr Kubaj	beq	.Lxts_dec6x_done
34973a608692SPiotr Kubaj
34983a608692SPiotr Kubaj	.long	0x7C005699
34993a608692SPiotr Kubaj
35003a608692SPiotr Kubaj	vxor	7,0,18
35013a608692SPiotr Kubaj.Lxts_dec6x_steal:
35023a608692SPiotr Kubaj	.long	0x10E7C548
35033a608692SPiotr Kubaj	lvx	24,26,7
35043a608692SPiotr Kubaj	addi	7,7,0x20
35053a608692SPiotr Kubaj
35063a608692SPiotr Kubaj	.long	0x10E7CD48
35073a608692SPiotr Kubaj	lvx	25,3,7
35083a608692SPiotr Kubaj	bdnz	.Lxts_dec6x_steal
35093a608692SPiotr Kubaj
35103a608692SPiotr Kubaj	add	10,10,31
35113a608692SPiotr Kubaj	.long	0x10E7C548
35123a608692SPiotr Kubaj
35133a608692SPiotr Kubaj	cmpwi	31,0
35143a608692SPiotr Kubaj	.long	0x10E7CD48
35153a608692SPiotr Kubaj
35163a608692SPiotr Kubaj	.long	0x7C005699
35173a608692SPiotr Kubaj	.long	0x10E7D548
35183a608692SPiotr Kubaj
35193a608692SPiotr Kubaj	lvsr	5,0,31
35203a608692SPiotr Kubaj	.long	0x10E7DD48
35213a608692SPiotr Kubaj
35223a608692SPiotr Kubaj	addi	7,1,64+15
35233a608692SPiotr Kubaj	.long	0x10E7E548
35243a608692SPiotr Kubaj	lvx	24,0,7
35253a608692SPiotr Kubaj
35263a608692SPiotr Kubaj	.long	0x10E7ED48
35273a608692SPiotr Kubaj	lvx	25,3,7
35283a608692SPiotr Kubaj	vxor	18,18,31
35293a608692SPiotr Kubaj
35303a608692SPiotr Kubaj
35313a608692SPiotr Kubaj	.long	0x10E7F548
35323a608692SPiotr Kubaj
35333a608692SPiotr Kubaj	vperm	0,0,0,5
35343a608692SPiotr Kubaj	.long	0x11679549
35353a608692SPiotr Kubaj
35363a608692SPiotr Kubaj
35373a608692SPiotr Kubaj
35383a608692SPiotr Kubaj	.long	0x7D602799
35393a608692SPiotr Kubaj
35403a608692SPiotr Kubaj	vxor	7,7,7
35413a608692SPiotr Kubaj	vspltisb	12,-1
35423a608692SPiotr Kubaj	vperm	7,7,12,5
35433a608692SPiotr Kubaj	vsel	7,0,11,7
35443a608692SPiotr Kubaj	vxor	7,7,17
35453a608692SPiotr Kubaj
35463a608692SPiotr Kubaj	subi	30,4,1
35473a608692SPiotr Kubaj	mtctr	31
35483a608692SPiotr Kubaj.Loop_xts_dec6x_steal:
35493a608692SPiotr Kubaj	lbzu	0,1(30)
35503a608692SPiotr Kubaj	stb	0,16(30)
35513a608692SPiotr Kubaj	bdnz	.Loop_xts_dec6x_steal
35523a608692SPiotr Kubaj
35533a608692SPiotr Kubaj	li	31,0
35543a608692SPiotr Kubaj	mtctr	9
35553a608692SPiotr Kubaj	b	.Loop_xts_dec1x
35563a608692SPiotr Kubaj
35573a608692SPiotr Kubaj.align	4
35583a608692SPiotr Kubaj.Lxts_dec6x_done:
35593a608692SPiotr Kubaj	cmpldi	8,0
35603a608692SPiotr Kubaj	beq	.Lxts_dec6x_ret
35613a608692SPiotr Kubaj
35623a608692SPiotr Kubaj	vxor	8,17,23
35633a608692SPiotr Kubaj
35643a608692SPiotr Kubaj	.long	0x7D004799
35653a608692SPiotr Kubaj
35663a608692SPiotr Kubaj.Lxts_dec6x_ret:
35673a608692SPiotr Kubaj	mtlr	11
35683a608692SPiotr Kubaj	li	10,79
35693a608692SPiotr Kubaj	li	11,95
35703a608692SPiotr Kubaj	stvx	9,10,1
35713a608692SPiotr Kubaj	addi	10,10,32
35723a608692SPiotr Kubaj	stvx	9,11,1
35733a608692SPiotr Kubaj	addi	11,11,32
35743a608692SPiotr Kubaj	stvx	9,10,1
35753a608692SPiotr Kubaj	addi	10,10,32
35763a608692SPiotr Kubaj	stvx	9,11,1
35773a608692SPiotr Kubaj	addi	11,11,32
35783a608692SPiotr Kubaj	stvx	9,10,1
35793a608692SPiotr Kubaj	addi	10,10,32
35803a608692SPiotr Kubaj	stvx	9,11,1
35813a608692SPiotr Kubaj	addi	11,11,32
35823a608692SPiotr Kubaj	stvx	9,10,1
35833a608692SPiotr Kubaj	addi	10,10,32
35843a608692SPiotr Kubaj	stvx	9,11,1
35853a608692SPiotr Kubaj	addi	11,11,32
35863a608692SPiotr Kubaj
35873a608692SPiotr Kubaj	or	12,12,12
35883a608692SPiotr Kubaj	lvx	20,10,1
35893a608692SPiotr Kubaj	addi	10,10,32
35903a608692SPiotr Kubaj	lvx	21,11,1
35913a608692SPiotr Kubaj	addi	11,11,32
35923a608692SPiotr Kubaj	lvx	22,10,1
35933a608692SPiotr Kubaj	addi	10,10,32
35943a608692SPiotr Kubaj	lvx	23,11,1
35953a608692SPiotr Kubaj	addi	11,11,32
35963a608692SPiotr Kubaj	lvx	24,10,1
35973a608692SPiotr Kubaj	addi	10,10,32
35983a608692SPiotr Kubaj	lvx	25,11,1
35993a608692SPiotr Kubaj	addi	11,11,32
36003a608692SPiotr Kubaj	lvx	26,10,1
36013a608692SPiotr Kubaj	addi	10,10,32
36023a608692SPiotr Kubaj	lvx	27,11,1
36033a608692SPiotr Kubaj	addi	11,11,32
36043a608692SPiotr Kubaj	lvx	28,10,1
36053a608692SPiotr Kubaj	addi	10,10,32
36063a608692SPiotr Kubaj	lvx	29,11,1
36073a608692SPiotr Kubaj	addi	11,11,32
36083a608692SPiotr Kubaj	lvx	30,10,1
36093a608692SPiotr Kubaj	lvx	31,11,1
36103a608692SPiotr Kubaj	ld	26,400(1)
36113a608692SPiotr Kubaj	ld	27,408(1)
36123a608692SPiotr Kubaj	ld	28,416(1)
36133a608692SPiotr Kubaj	ld	29,424(1)
36143a608692SPiotr Kubaj	ld	30,432(1)
36153a608692SPiotr Kubaj	ld	31,440(1)
36163a608692SPiotr Kubaj	addi	1,1,448
36173a608692SPiotr Kubaj	blr
36183a608692SPiotr Kubaj.long	0
36193a608692SPiotr Kubaj.byte	0,12,0x04,1,0x80,6,6,0
36203a608692SPiotr Kubaj.long	0
36213a608692SPiotr Kubaj
36223a608692SPiotr Kubaj.align	5
36233a608692SPiotr Kubaj_aesp8_xts_dec5x:
36243a608692SPiotr Kubaj	.long	0x10E7C548
36253a608692SPiotr Kubaj	.long	0x118CC548
36263a608692SPiotr Kubaj	.long	0x11ADC548
36273a608692SPiotr Kubaj	.long	0x11CEC548
36283a608692SPiotr Kubaj	.long	0x11EFC548
36293a608692SPiotr Kubaj	lvx	24,26,7
36303a608692SPiotr Kubaj	addi	7,7,0x20
36313a608692SPiotr Kubaj
36323a608692SPiotr Kubaj	.long	0x10E7CD48
36333a608692SPiotr Kubaj	.long	0x118CCD48
36343a608692SPiotr Kubaj	.long	0x11ADCD48
36353a608692SPiotr Kubaj	.long	0x11CECD48
36363a608692SPiotr Kubaj	.long	0x11EFCD48
36373a608692SPiotr Kubaj	lvx	25,3,7
36383a608692SPiotr Kubaj	bdnz	_aesp8_xts_dec5x
36393a608692SPiotr Kubaj
36403a608692SPiotr Kubaj	subi	0,31,1
36413a608692SPiotr Kubaj	.long	0x10E7C548
36423a608692SPiotr Kubaj	.long	0x118CC548
36433a608692SPiotr Kubaj	.long	0x11ADC548
36443a608692SPiotr Kubaj	.long	0x11CEC548
36453a608692SPiotr Kubaj	.long	0x11EFC548
36463a608692SPiotr Kubaj
36473a608692SPiotr Kubaj	andi.	0,0,16
36483a608692SPiotr Kubaj	cmpwi	31,0
36493a608692SPiotr Kubaj	.long	0x10E7CD48
36503a608692SPiotr Kubaj	.long	0x118CCD48
36513a608692SPiotr Kubaj	.long	0x11ADCD48
36523a608692SPiotr Kubaj	.long	0x11CECD48
36533a608692SPiotr Kubaj	.long	0x11EFCD48
36543a608692SPiotr Kubaj	vxor	17,17,31
36553a608692SPiotr Kubaj
36563a608692SPiotr Kubaj	sub	10,10,0
36573a608692SPiotr Kubaj	.long	0x10E7D548
36583a608692SPiotr Kubaj	.long	0x118CD548
36593a608692SPiotr Kubaj	.long	0x11ADD548
36603a608692SPiotr Kubaj	.long	0x11CED548
36613a608692SPiotr Kubaj	.long	0x11EFD548
36623a608692SPiotr Kubaj	vxor	1,18,31
36633a608692SPiotr Kubaj
36643a608692SPiotr Kubaj	.long	0x10E7DD48
36653a608692SPiotr Kubaj	.long	0x7C005699
36663a608692SPiotr Kubaj	.long	0x118CDD48
36673a608692SPiotr Kubaj	.long	0x11ADDD48
36683a608692SPiotr Kubaj	.long	0x11CEDD48
36693a608692SPiotr Kubaj	.long	0x11EFDD48
36703a608692SPiotr Kubaj	vxor	2,19,31
36713a608692SPiotr Kubaj
36723a608692SPiotr Kubaj	addi	7,1,64+15
36733a608692SPiotr Kubaj	.long	0x10E7E548
36743a608692SPiotr Kubaj	.long	0x118CE548
36753a608692SPiotr Kubaj	.long	0x11ADE548
36763a608692SPiotr Kubaj	.long	0x11CEE548
36773a608692SPiotr Kubaj	.long	0x11EFE548
36783a608692SPiotr Kubaj	lvx	24,0,7
36793a608692SPiotr Kubaj	vxor	3,20,31
36803a608692SPiotr Kubaj
36813a608692SPiotr Kubaj	.long	0x10E7ED48
36823a608692SPiotr Kubaj
36833a608692SPiotr Kubaj	.long	0x118CED48
36843a608692SPiotr Kubaj	.long	0x11ADED48
36853a608692SPiotr Kubaj	.long	0x11CEED48
36863a608692SPiotr Kubaj	.long	0x11EFED48
36873a608692SPiotr Kubaj	lvx	25,3,7
36883a608692SPiotr Kubaj	vxor	4,21,31
36893a608692SPiotr Kubaj
36903a608692SPiotr Kubaj	.long	0x10E7F548
36913a608692SPiotr Kubaj	.long	0x118CF548
36923a608692SPiotr Kubaj	.long	0x11ADF548
36933a608692SPiotr Kubaj	.long	0x11CEF548
36943a608692SPiotr Kubaj	.long	0x11EFF548
36953a608692SPiotr Kubaj
36963a608692SPiotr Kubaj	.long	0x10E78D49
36973a608692SPiotr Kubaj	.long	0x118C0D49
36983a608692SPiotr Kubaj	.long	0x11AD1549
36993a608692SPiotr Kubaj	.long	0x11CE1D49
37003a608692SPiotr Kubaj	.long	0x11EF2549
37013a608692SPiotr Kubaj	mtctr	9
37023a608692SPiotr Kubaj	blr
37033a608692SPiotr Kubaj.long	0
37043a608692SPiotr Kubaj.byte	0,12,0x14,0,0,0,0,0
3705