xref: /freebsd/sys/crypto/openssl/powerpc64/aesp8-ppc.S (revision 3a60869237b8b315fe66497cf5299ec08b688533)
1*3a608692SPiotr Kubaj/* $FreeBSD$ */
2*3a608692SPiotr Kubaj/* Do not modify. This file is auto-generated from aesp8-ppc.pl. */
3*3a608692SPiotr Kubaj.machine	"any"
4*3a608692SPiotr Kubaj
5*3a608692SPiotr Kubaj.abiversion	2
6*3a608692SPiotr Kubaj.text
7*3a608692SPiotr Kubaj
8*3a608692SPiotr Kubaj.align	7
9*3a608692SPiotr Kubajrcon:
10*3a608692SPiotr Kubaj.byte	0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00
11*3a608692SPiotr Kubaj.byte	0x1b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00
12*3a608692SPiotr Kubaj.byte	0x0d,0x0e,0x0f,0x0c,0x0d,0x0e,0x0f,0x0c,0x0d,0x0e,0x0f,0x0c,0x0d,0x0e,0x0f,0x0c
13*3a608692SPiotr Kubaj.byte	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
14*3a608692SPiotr Kubaj.Lconsts:
15*3a608692SPiotr Kubaj	mflr	0
16*3a608692SPiotr Kubaj	bcl	20,31,$+4
17*3a608692SPiotr Kubaj	mflr	6
18*3a608692SPiotr Kubaj	addi	6,6,-0x48
19*3a608692SPiotr Kubaj	mtlr	0
20*3a608692SPiotr Kubaj	blr
21*3a608692SPiotr Kubaj.long	0
22*3a608692SPiotr Kubaj.byte	0,12,0x14,0,0,0,0,0
23*3a608692SPiotr 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
24*3a608692SPiotr Kubaj.align	2
25*3a608692SPiotr Kubaj
26*3a608692SPiotr Kubaj.globl	aes_p8_set_encrypt_key
27*3a608692SPiotr Kubaj.type	aes_p8_set_encrypt_key,@function
28*3a608692SPiotr Kubaj.align	5
29*3a608692SPiotr Kubajaes_p8_set_encrypt_key:
30*3a608692SPiotr Kubaj.localentry	aes_p8_set_encrypt_key,0
31*3a608692SPiotr Kubaj
32*3a608692SPiotr Kubaj.Lset_encrypt_key:
33*3a608692SPiotr Kubaj	mflr	11
34*3a608692SPiotr Kubaj	std	11,16(1)
35*3a608692SPiotr Kubaj
36*3a608692SPiotr Kubaj	li	6,-1
37*3a608692SPiotr Kubaj	cmpldi	3,0
38*3a608692SPiotr Kubaj	beq-	.Lenc_key_abort
39*3a608692SPiotr Kubaj	cmpldi	5,0
40*3a608692SPiotr Kubaj	beq-	.Lenc_key_abort
41*3a608692SPiotr Kubaj	li	6,-2
42*3a608692SPiotr Kubaj	cmpwi	4,128
43*3a608692SPiotr Kubaj	blt-	.Lenc_key_abort
44*3a608692SPiotr Kubaj	cmpwi	4,256
45*3a608692SPiotr Kubaj	bgt-	.Lenc_key_abort
46*3a608692SPiotr Kubaj	andi.	0,4,0x3f
47*3a608692SPiotr Kubaj	bne-	.Lenc_key_abort
48*3a608692SPiotr Kubaj
49*3a608692SPiotr Kubaj	lis	0,0xfff0
50*3a608692SPiotr Kubaj	li	12,-1
51*3a608692SPiotr Kubaj	or	0,0,0
52*3a608692SPiotr Kubaj
53*3a608692SPiotr Kubaj	bl	.Lconsts
54*3a608692SPiotr Kubaj	mtlr	11
55*3a608692SPiotr Kubaj
56*3a608692SPiotr Kubaj	neg	9,3
57*3a608692SPiotr Kubaj	lvx	1,0,3
58*3a608692SPiotr Kubaj	addi	3,3,15
59*3a608692SPiotr Kubaj	lvsr	3,0,9
60*3a608692SPiotr Kubaj	li	8,0x20
61*3a608692SPiotr Kubaj	cmpwi	4,192
62*3a608692SPiotr Kubaj	lvx	2,0,3
63*3a608692SPiotr Kubaj
64*3a608692SPiotr Kubaj	lvx	4,0,6
65*3a608692SPiotr Kubaj
66*3a608692SPiotr Kubaj	lvx	5,8,6
67*3a608692SPiotr Kubaj	addi	6,6,0x10
68*3a608692SPiotr Kubaj	vperm	1,1,2,3
69*3a608692SPiotr Kubaj	li	7,8
70*3a608692SPiotr Kubaj	vxor	0,0,0
71*3a608692SPiotr Kubaj	mtctr	7
72*3a608692SPiotr Kubaj
73*3a608692SPiotr Kubaj	lvsr	8,0,5
74*3a608692SPiotr Kubaj	vspltisb	9,-1
75*3a608692SPiotr Kubaj	lvx	10,0,5
76*3a608692SPiotr Kubaj	vperm	9,0,9,8
77*3a608692SPiotr Kubaj
78*3a608692SPiotr Kubaj	blt	.Loop128
79*3a608692SPiotr Kubaj	addi	3,3,8
80*3a608692SPiotr Kubaj	beq	.L192
81*3a608692SPiotr Kubaj	addi	3,3,8
82*3a608692SPiotr Kubaj	b	.L256
83*3a608692SPiotr Kubaj
84*3a608692SPiotr Kubaj.align	4
85*3a608692SPiotr Kubaj.Loop128:
86*3a608692SPiotr Kubaj	vperm	3,1,1,5
87*3a608692SPiotr Kubaj	vsldoi	6,0,1,12
88*3a608692SPiotr Kubaj	vperm	11,1,1,8
89*3a608692SPiotr Kubaj	vsel	7,10,11,9
90*3a608692SPiotr Kubaj	vor	10,11,11
91*3a608692SPiotr Kubaj	.long	0x10632509
92*3a608692SPiotr Kubaj	stvx	7,0,5
93*3a608692SPiotr Kubaj	addi	5,5,16
94*3a608692SPiotr Kubaj
95*3a608692SPiotr Kubaj	vxor	1,1,6
96*3a608692SPiotr Kubaj	vsldoi	6,0,6,12
97*3a608692SPiotr Kubaj	vxor	1,1,6
98*3a608692SPiotr Kubaj	vsldoi	6,0,6,12
99*3a608692SPiotr Kubaj	vxor	1,1,6
100*3a608692SPiotr Kubaj	vadduwm	4,4,4
101*3a608692SPiotr Kubaj	vxor	1,1,3
102*3a608692SPiotr Kubaj	bdnz	.Loop128
103*3a608692SPiotr Kubaj
104*3a608692SPiotr Kubaj	lvx	4,0,6
105*3a608692SPiotr Kubaj
106*3a608692SPiotr Kubaj	vperm	3,1,1,5
107*3a608692SPiotr Kubaj	vsldoi	6,0,1,12
108*3a608692SPiotr Kubaj	vperm	11,1,1,8
109*3a608692SPiotr Kubaj	vsel	7,10,11,9
110*3a608692SPiotr Kubaj	vor	10,11,11
111*3a608692SPiotr Kubaj	.long	0x10632509
112*3a608692SPiotr Kubaj	stvx	7,0,5
113*3a608692SPiotr Kubaj	addi	5,5,16
114*3a608692SPiotr Kubaj
115*3a608692SPiotr Kubaj	vxor	1,1,6
116*3a608692SPiotr Kubaj	vsldoi	6,0,6,12
117*3a608692SPiotr Kubaj	vxor	1,1,6
118*3a608692SPiotr Kubaj	vsldoi	6,0,6,12
119*3a608692SPiotr Kubaj	vxor	1,1,6
120*3a608692SPiotr Kubaj	vadduwm	4,4,4
121*3a608692SPiotr Kubaj	vxor	1,1,3
122*3a608692SPiotr Kubaj
123*3a608692SPiotr Kubaj	vperm	3,1,1,5
124*3a608692SPiotr Kubaj	vsldoi	6,0,1,12
125*3a608692SPiotr Kubaj	vperm	11,1,1,8
126*3a608692SPiotr Kubaj	vsel	7,10,11,9
127*3a608692SPiotr Kubaj	vor	10,11,11
128*3a608692SPiotr Kubaj	.long	0x10632509
129*3a608692SPiotr Kubaj	stvx	7,0,5
130*3a608692SPiotr Kubaj	addi	5,5,16
131*3a608692SPiotr Kubaj
132*3a608692SPiotr Kubaj	vxor	1,1,6
133*3a608692SPiotr Kubaj	vsldoi	6,0,6,12
134*3a608692SPiotr Kubaj	vxor	1,1,6
135*3a608692SPiotr Kubaj	vsldoi	6,0,6,12
136*3a608692SPiotr Kubaj	vxor	1,1,6
137*3a608692SPiotr Kubaj	vxor	1,1,3
138*3a608692SPiotr Kubaj	vperm	11,1,1,8
139*3a608692SPiotr Kubaj	vsel	7,10,11,9
140*3a608692SPiotr Kubaj	vor	10,11,11
141*3a608692SPiotr Kubaj	stvx	7,0,5
142*3a608692SPiotr Kubaj
143*3a608692SPiotr Kubaj	addi	3,5,15
144*3a608692SPiotr Kubaj	addi	5,5,0x50
145*3a608692SPiotr Kubaj
146*3a608692SPiotr Kubaj	li	8,10
147*3a608692SPiotr Kubaj	b	.Ldone
148*3a608692SPiotr Kubaj
149*3a608692SPiotr Kubaj.align	4
150*3a608692SPiotr Kubaj.L192:
151*3a608692SPiotr Kubaj	lvx	6,0,3
152*3a608692SPiotr Kubaj	li	7,4
153*3a608692SPiotr Kubaj	vperm	11,1,1,8
154*3a608692SPiotr Kubaj	vsel	7,10,11,9
155*3a608692SPiotr Kubaj	vor	10,11,11
156*3a608692SPiotr Kubaj	stvx	7,0,5
157*3a608692SPiotr Kubaj	addi	5,5,16
158*3a608692SPiotr Kubaj	vperm	2,2,6,3
159*3a608692SPiotr Kubaj	vspltisb	3,8
160*3a608692SPiotr Kubaj	mtctr	7
161*3a608692SPiotr Kubaj	vsububm	5,5,3
162*3a608692SPiotr Kubaj
163*3a608692SPiotr Kubaj.Loop192:
164*3a608692SPiotr Kubaj	vperm	3,2,2,5
165*3a608692SPiotr Kubaj	vsldoi	6,0,1,12
166*3a608692SPiotr Kubaj	.long	0x10632509
167*3a608692SPiotr Kubaj
168*3a608692SPiotr Kubaj	vxor	1,1,6
169*3a608692SPiotr Kubaj	vsldoi	6,0,6,12
170*3a608692SPiotr Kubaj	vxor	1,1,6
171*3a608692SPiotr Kubaj	vsldoi	6,0,6,12
172*3a608692SPiotr Kubaj	vxor	1,1,6
173*3a608692SPiotr Kubaj
174*3a608692SPiotr Kubaj	vsldoi	7,0,2,8
175*3a608692SPiotr Kubaj	vspltw	6,1,3
176*3a608692SPiotr Kubaj	vxor	6,6,2
177*3a608692SPiotr Kubaj	vsldoi	2,0,2,12
178*3a608692SPiotr Kubaj	vadduwm	4,4,4
179*3a608692SPiotr Kubaj	vxor	2,2,6
180*3a608692SPiotr Kubaj	vxor	1,1,3
181*3a608692SPiotr Kubaj	vxor	2,2,3
182*3a608692SPiotr Kubaj	vsldoi	7,7,1,8
183*3a608692SPiotr Kubaj
184*3a608692SPiotr Kubaj	vperm	3,2,2,5
185*3a608692SPiotr Kubaj	vsldoi	6,0,1,12
186*3a608692SPiotr Kubaj	vperm	11,7,7,8
187*3a608692SPiotr Kubaj	vsel	7,10,11,9
188*3a608692SPiotr Kubaj	vor	10,11,11
189*3a608692SPiotr Kubaj	.long	0x10632509
190*3a608692SPiotr Kubaj	stvx	7,0,5
191*3a608692SPiotr Kubaj	addi	5,5,16
192*3a608692SPiotr Kubaj
193*3a608692SPiotr Kubaj	vsldoi	7,1,2,8
194*3a608692SPiotr Kubaj	vxor	1,1,6
195*3a608692SPiotr Kubaj	vsldoi	6,0,6,12
196*3a608692SPiotr Kubaj	vperm	11,7,7,8
197*3a608692SPiotr Kubaj	vsel	7,10,11,9
198*3a608692SPiotr Kubaj	vor	10,11,11
199*3a608692SPiotr Kubaj	vxor	1,1,6
200*3a608692SPiotr Kubaj	vsldoi	6,0,6,12
201*3a608692SPiotr Kubaj	vxor	1,1,6
202*3a608692SPiotr Kubaj	stvx	7,0,5
203*3a608692SPiotr Kubaj	addi	5,5,16
204*3a608692SPiotr Kubaj
205*3a608692SPiotr Kubaj	vspltw	6,1,3
206*3a608692SPiotr Kubaj	vxor	6,6,2
207*3a608692SPiotr Kubaj	vsldoi	2,0,2,12
208*3a608692SPiotr Kubaj	vadduwm	4,4,4
209*3a608692SPiotr Kubaj	vxor	2,2,6
210*3a608692SPiotr Kubaj	vxor	1,1,3
211*3a608692SPiotr Kubaj	vxor	2,2,3
212*3a608692SPiotr Kubaj	vperm	11,1,1,8
213*3a608692SPiotr Kubaj	vsel	7,10,11,9
214*3a608692SPiotr Kubaj	vor	10,11,11
215*3a608692SPiotr Kubaj	stvx	7,0,5
216*3a608692SPiotr Kubaj	addi	3,5,15
217*3a608692SPiotr Kubaj	addi	5,5,16
218*3a608692SPiotr Kubaj	bdnz	.Loop192
219*3a608692SPiotr Kubaj
220*3a608692SPiotr Kubaj	li	8,12
221*3a608692SPiotr Kubaj	addi	5,5,0x20
222*3a608692SPiotr Kubaj	b	.Ldone
223*3a608692SPiotr Kubaj
224*3a608692SPiotr Kubaj.align	4
225*3a608692SPiotr Kubaj.L256:
226*3a608692SPiotr Kubaj	lvx	6,0,3
227*3a608692SPiotr Kubaj	li	7,7
228*3a608692SPiotr Kubaj	li	8,14
229*3a608692SPiotr Kubaj	vperm	11,1,1,8
230*3a608692SPiotr Kubaj	vsel	7,10,11,9
231*3a608692SPiotr Kubaj	vor	10,11,11
232*3a608692SPiotr Kubaj	stvx	7,0,5
233*3a608692SPiotr Kubaj	addi	5,5,16
234*3a608692SPiotr Kubaj	vperm	2,2,6,3
235*3a608692SPiotr Kubaj	mtctr	7
236*3a608692SPiotr Kubaj
237*3a608692SPiotr Kubaj.Loop256:
238*3a608692SPiotr Kubaj	vperm	3,2,2,5
239*3a608692SPiotr Kubaj	vsldoi	6,0,1,12
240*3a608692SPiotr Kubaj	vperm	11,2,2,8
241*3a608692SPiotr Kubaj	vsel	7,10,11,9
242*3a608692SPiotr Kubaj	vor	10,11,11
243*3a608692SPiotr Kubaj	.long	0x10632509
244*3a608692SPiotr Kubaj	stvx	7,0,5
245*3a608692SPiotr Kubaj	addi	5,5,16
246*3a608692SPiotr Kubaj
247*3a608692SPiotr Kubaj	vxor	1,1,6
248*3a608692SPiotr Kubaj	vsldoi	6,0,6,12
249*3a608692SPiotr Kubaj	vxor	1,1,6
250*3a608692SPiotr Kubaj	vsldoi	6,0,6,12
251*3a608692SPiotr Kubaj	vxor	1,1,6
252*3a608692SPiotr Kubaj	vadduwm	4,4,4
253*3a608692SPiotr Kubaj	vxor	1,1,3
254*3a608692SPiotr Kubaj	vperm	11,1,1,8
255*3a608692SPiotr Kubaj	vsel	7,10,11,9
256*3a608692SPiotr Kubaj	vor	10,11,11
257*3a608692SPiotr Kubaj	stvx	7,0,5
258*3a608692SPiotr Kubaj	addi	3,5,15
259*3a608692SPiotr Kubaj	addi	5,5,16
260*3a608692SPiotr Kubaj	bdz	.Ldone
261*3a608692SPiotr Kubaj
262*3a608692SPiotr Kubaj	vspltw	3,1,3
263*3a608692SPiotr Kubaj	vsldoi	6,0,2,12
264*3a608692SPiotr Kubaj	.long	0x106305C8
265*3a608692SPiotr Kubaj
266*3a608692SPiotr Kubaj	vxor	2,2,6
267*3a608692SPiotr Kubaj	vsldoi	6,0,6,12
268*3a608692SPiotr Kubaj	vxor	2,2,6
269*3a608692SPiotr Kubaj	vsldoi	6,0,6,12
270*3a608692SPiotr Kubaj	vxor	2,2,6
271*3a608692SPiotr Kubaj
272*3a608692SPiotr Kubaj	vxor	2,2,3
273*3a608692SPiotr Kubaj	b	.Loop256
274*3a608692SPiotr Kubaj
275*3a608692SPiotr Kubaj.align	4
276*3a608692SPiotr Kubaj.Ldone:
277*3a608692SPiotr Kubaj	lvx	2,0,3
278*3a608692SPiotr Kubaj	vsel	2,10,2,9
279*3a608692SPiotr Kubaj	stvx	2,0,3
280*3a608692SPiotr Kubaj	li	6,0
281*3a608692SPiotr Kubaj	or	12,12,12
282*3a608692SPiotr Kubaj	stw	8,0(5)
283*3a608692SPiotr Kubaj
284*3a608692SPiotr Kubaj.Lenc_key_abort:
285*3a608692SPiotr Kubaj	mr	3,6
286*3a608692SPiotr Kubaj	blr
287*3a608692SPiotr Kubaj.long	0
288*3a608692SPiotr Kubaj.byte	0,12,0x14,1,0,0,3,0
289*3a608692SPiotr Kubaj.long	0
290*3a608692SPiotr Kubaj.size	aes_p8_set_encrypt_key,.-aes_p8_set_encrypt_key
291*3a608692SPiotr Kubaj
292*3a608692SPiotr Kubaj.globl	aes_p8_set_decrypt_key
293*3a608692SPiotr Kubaj.type	aes_p8_set_decrypt_key,@function
294*3a608692SPiotr Kubaj.align	5
295*3a608692SPiotr Kubajaes_p8_set_decrypt_key:
296*3a608692SPiotr Kubaj.localentry	aes_p8_set_decrypt_key,0
297*3a608692SPiotr Kubaj
298*3a608692SPiotr Kubaj	stdu	1,-64(1)
299*3a608692SPiotr Kubaj	mflr	10
300*3a608692SPiotr Kubaj	std	10,64+16(1)
301*3a608692SPiotr Kubaj	bl	.Lset_encrypt_key
302*3a608692SPiotr Kubaj	mtlr	10
303*3a608692SPiotr Kubaj
304*3a608692SPiotr Kubaj	cmpwi	3,0
305*3a608692SPiotr Kubaj	bne-	.Ldec_key_abort
306*3a608692SPiotr Kubaj
307*3a608692SPiotr Kubaj	slwi	7,8,4
308*3a608692SPiotr Kubaj	subi	3,5,240
309*3a608692SPiotr Kubaj	srwi	8,8,1
310*3a608692SPiotr Kubaj	add	5,3,7
311*3a608692SPiotr Kubaj	mtctr	8
312*3a608692SPiotr Kubaj
313*3a608692SPiotr Kubaj.Ldeckey:
314*3a608692SPiotr Kubaj	lwz	0, 0(3)
315*3a608692SPiotr Kubaj	lwz	6, 4(3)
316*3a608692SPiotr Kubaj	lwz	7, 8(3)
317*3a608692SPiotr Kubaj	lwz	8, 12(3)
318*3a608692SPiotr Kubaj	addi	3,3,16
319*3a608692SPiotr Kubaj	lwz	9, 0(5)
320*3a608692SPiotr Kubaj	lwz	10,4(5)
321*3a608692SPiotr Kubaj	lwz	11,8(5)
322*3a608692SPiotr Kubaj	lwz	12,12(5)
323*3a608692SPiotr Kubaj	stw	0, 0(5)
324*3a608692SPiotr Kubaj	stw	6, 4(5)
325*3a608692SPiotr Kubaj	stw	7, 8(5)
326*3a608692SPiotr Kubaj	stw	8, 12(5)
327*3a608692SPiotr Kubaj	subi	5,5,16
328*3a608692SPiotr Kubaj	stw	9, -16(3)
329*3a608692SPiotr Kubaj	stw	10,-12(3)
330*3a608692SPiotr Kubaj	stw	11,-8(3)
331*3a608692SPiotr Kubaj	stw	12,-4(3)
332*3a608692SPiotr Kubaj	bdnz	.Ldeckey
333*3a608692SPiotr Kubaj
334*3a608692SPiotr Kubaj	xor	3,3,3
335*3a608692SPiotr Kubaj.Ldec_key_abort:
336*3a608692SPiotr Kubaj	addi	1,1,64
337*3a608692SPiotr Kubaj	blr
338*3a608692SPiotr Kubaj.long	0
339*3a608692SPiotr Kubaj.byte	0,12,4,1,0x80,0,3,0
340*3a608692SPiotr Kubaj.long	0
341*3a608692SPiotr Kubaj.size	aes_p8_set_decrypt_key,.-aes_p8_set_decrypt_key
342*3a608692SPiotr Kubaj.globl	aes_p8_encrypt
343*3a608692SPiotr Kubaj.type	aes_p8_encrypt,@function
344*3a608692SPiotr Kubaj.align	5
345*3a608692SPiotr Kubajaes_p8_encrypt:
346*3a608692SPiotr Kubaj.localentry	aes_p8_encrypt,0
347*3a608692SPiotr Kubaj
348*3a608692SPiotr Kubaj	lwz	6,240(5)
349*3a608692SPiotr Kubaj	lis	0,0xfc00
350*3a608692SPiotr Kubaj	li	12,-1
351*3a608692SPiotr Kubaj	li	7,15
352*3a608692SPiotr Kubaj	or	0,0,0
353*3a608692SPiotr Kubaj
354*3a608692SPiotr Kubaj	lvx	0,0,3
355*3a608692SPiotr Kubaj	neg	11,4
356*3a608692SPiotr Kubaj	lvx	1,7,3
357*3a608692SPiotr Kubaj	lvsl	2,0,3
358*3a608692SPiotr Kubaj
359*3a608692SPiotr Kubaj	lvsl	3,0,11
360*3a608692SPiotr Kubaj
361*3a608692SPiotr Kubaj	li	7,16
362*3a608692SPiotr Kubaj	vperm	0,0,1,2
363*3a608692SPiotr Kubaj	lvx	1,0,5
364*3a608692SPiotr Kubaj	lvsl	5,0,5
365*3a608692SPiotr Kubaj	srwi	6,6,1
366*3a608692SPiotr Kubaj	lvx	2,7,5
367*3a608692SPiotr Kubaj	addi	7,7,16
368*3a608692SPiotr Kubaj	subi	6,6,1
369*3a608692SPiotr Kubaj	vperm	1,1,2,5
370*3a608692SPiotr Kubaj
371*3a608692SPiotr Kubaj	vxor	0,0,1
372*3a608692SPiotr Kubaj	lvx	1,7,5
373*3a608692SPiotr Kubaj	addi	7,7,16
374*3a608692SPiotr Kubaj	mtctr	6
375*3a608692SPiotr Kubaj
376*3a608692SPiotr Kubaj.Loop_enc:
377*3a608692SPiotr Kubaj	vperm	2,2,1,5
378*3a608692SPiotr Kubaj	.long	0x10001508
379*3a608692SPiotr Kubaj	lvx	2,7,5
380*3a608692SPiotr Kubaj	addi	7,7,16
381*3a608692SPiotr Kubaj	vperm	1,1,2,5
382*3a608692SPiotr Kubaj	.long	0x10000D08
383*3a608692SPiotr Kubaj	lvx	1,7,5
384*3a608692SPiotr Kubaj	addi	7,7,16
385*3a608692SPiotr Kubaj	bdnz	.Loop_enc
386*3a608692SPiotr Kubaj
387*3a608692SPiotr Kubaj	vperm	2,2,1,5
388*3a608692SPiotr Kubaj	.long	0x10001508
389*3a608692SPiotr Kubaj	lvx	2,7,5
390*3a608692SPiotr Kubaj	vperm	1,1,2,5
391*3a608692SPiotr Kubaj	.long	0x10000D09
392*3a608692SPiotr Kubaj
393*3a608692SPiotr Kubaj	vspltisb	2,-1
394*3a608692SPiotr Kubaj	vxor	1,1,1
395*3a608692SPiotr Kubaj	li	7,15
396*3a608692SPiotr Kubaj	vperm	2,1,2,3
397*3a608692SPiotr Kubaj
398*3a608692SPiotr Kubaj	lvx	1,0,4
399*3a608692SPiotr Kubaj	vperm	0,0,0,3
400*3a608692SPiotr Kubaj	vsel	1,1,0,2
401*3a608692SPiotr Kubaj	lvx	4,7,4
402*3a608692SPiotr Kubaj	stvx	1,0,4
403*3a608692SPiotr Kubaj	vsel	0,0,4,2
404*3a608692SPiotr Kubaj	stvx	0,7,4
405*3a608692SPiotr Kubaj
406*3a608692SPiotr Kubaj	or	12,12,12
407*3a608692SPiotr Kubaj	blr
408*3a608692SPiotr Kubaj.long	0
409*3a608692SPiotr Kubaj.byte	0,12,0x14,0,0,0,3,0
410*3a608692SPiotr Kubaj.long	0
411*3a608692SPiotr Kubaj.size	aes_p8_encrypt,.-aes_p8_encrypt
412*3a608692SPiotr Kubaj.globl	aes_p8_decrypt
413*3a608692SPiotr Kubaj.type	aes_p8_decrypt,@function
414*3a608692SPiotr Kubaj.align	5
415*3a608692SPiotr Kubajaes_p8_decrypt:
416*3a608692SPiotr Kubaj.localentry	aes_p8_decrypt,0
417*3a608692SPiotr Kubaj
418*3a608692SPiotr Kubaj	lwz	6,240(5)
419*3a608692SPiotr Kubaj	lis	0,0xfc00
420*3a608692SPiotr Kubaj	li	12,-1
421*3a608692SPiotr Kubaj	li	7,15
422*3a608692SPiotr Kubaj	or	0,0,0
423*3a608692SPiotr Kubaj
424*3a608692SPiotr Kubaj	lvx	0,0,3
425*3a608692SPiotr Kubaj	neg	11,4
426*3a608692SPiotr Kubaj	lvx	1,7,3
427*3a608692SPiotr Kubaj	lvsl	2,0,3
428*3a608692SPiotr Kubaj
429*3a608692SPiotr Kubaj	lvsl	3,0,11
430*3a608692SPiotr Kubaj
431*3a608692SPiotr Kubaj	li	7,16
432*3a608692SPiotr Kubaj	vperm	0,0,1,2
433*3a608692SPiotr Kubaj	lvx	1,0,5
434*3a608692SPiotr Kubaj	lvsl	5,0,5
435*3a608692SPiotr Kubaj	srwi	6,6,1
436*3a608692SPiotr Kubaj	lvx	2,7,5
437*3a608692SPiotr Kubaj	addi	7,7,16
438*3a608692SPiotr Kubaj	subi	6,6,1
439*3a608692SPiotr Kubaj	vperm	1,1,2,5
440*3a608692SPiotr Kubaj
441*3a608692SPiotr Kubaj	vxor	0,0,1
442*3a608692SPiotr Kubaj	lvx	1,7,5
443*3a608692SPiotr Kubaj	addi	7,7,16
444*3a608692SPiotr Kubaj	mtctr	6
445*3a608692SPiotr Kubaj
446*3a608692SPiotr Kubaj.Loop_dec:
447*3a608692SPiotr Kubaj	vperm	2,2,1,5
448*3a608692SPiotr Kubaj	.long	0x10001548
449*3a608692SPiotr Kubaj	lvx	2,7,5
450*3a608692SPiotr Kubaj	addi	7,7,16
451*3a608692SPiotr Kubaj	vperm	1,1,2,5
452*3a608692SPiotr Kubaj	.long	0x10000D48
453*3a608692SPiotr Kubaj	lvx	1,7,5
454*3a608692SPiotr Kubaj	addi	7,7,16
455*3a608692SPiotr Kubaj	bdnz	.Loop_dec
456*3a608692SPiotr Kubaj
457*3a608692SPiotr Kubaj	vperm	2,2,1,5
458*3a608692SPiotr Kubaj	.long	0x10001548
459*3a608692SPiotr Kubaj	lvx	2,7,5
460*3a608692SPiotr Kubaj	vperm	1,1,2,5
461*3a608692SPiotr Kubaj	.long	0x10000D49
462*3a608692SPiotr Kubaj
463*3a608692SPiotr Kubaj	vspltisb	2,-1
464*3a608692SPiotr Kubaj	vxor	1,1,1
465*3a608692SPiotr Kubaj	li	7,15
466*3a608692SPiotr Kubaj	vperm	2,1,2,3
467*3a608692SPiotr Kubaj
468*3a608692SPiotr Kubaj	lvx	1,0,4
469*3a608692SPiotr Kubaj	vperm	0,0,0,3
470*3a608692SPiotr Kubaj	vsel	1,1,0,2
471*3a608692SPiotr Kubaj	lvx	4,7,4
472*3a608692SPiotr Kubaj	stvx	1,0,4
473*3a608692SPiotr Kubaj	vsel	0,0,4,2
474*3a608692SPiotr Kubaj	stvx	0,7,4
475*3a608692SPiotr Kubaj
476*3a608692SPiotr Kubaj	or	12,12,12
477*3a608692SPiotr Kubaj	blr
478*3a608692SPiotr Kubaj.long	0
479*3a608692SPiotr Kubaj.byte	0,12,0x14,0,0,0,3,0
480*3a608692SPiotr Kubaj.long	0
481*3a608692SPiotr Kubaj.size	aes_p8_decrypt,.-aes_p8_decrypt
482*3a608692SPiotr Kubaj.globl	aes_p8_cbc_encrypt
483*3a608692SPiotr Kubaj.type	aes_p8_cbc_encrypt,@function
484*3a608692SPiotr Kubaj.align	5
485*3a608692SPiotr Kubajaes_p8_cbc_encrypt:
486*3a608692SPiotr Kubaj.localentry	aes_p8_cbc_encrypt,0
487*3a608692SPiotr Kubaj
488*3a608692SPiotr Kubaj	cmpldi	5,16
489*3a608692SPiotr Kubaj	.long	0x4dc00020
490*3a608692SPiotr Kubaj
491*3a608692SPiotr Kubaj	cmpwi	8,0
492*3a608692SPiotr Kubaj	lis	0,0xffe0
493*3a608692SPiotr Kubaj	li	12,-1
494*3a608692SPiotr Kubaj	or	0,0,0
495*3a608692SPiotr Kubaj
496*3a608692SPiotr Kubaj	li	10,15
497*3a608692SPiotr Kubaj	vxor	0,0,0
498*3a608692SPiotr Kubaj
499*3a608692SPiotr Kubaj
500*3a608692SPiotr Kubaj	lvx	4,0,7
501*3a608692SPiotr Kubaj	lvsl	6,0,7
502*3a608692SPiotr Kubaj	lvx	5,10,7
503*3a608692SPiotr Kubaj
504*3a608692SPiotr Kubaj	vperm	4,4,5,6
505*3a608692SPiotr Kubaj
506*3a608692SPiotr Kubaj	neg	11,3
507*3a608692SPiotr Kubaj	lvsl	10,0,6
508*3a608692SPiotr Kubaj	lwz	9,240(6)
509*3a608692SPiotr Kubaj
510*3a608692SPiotr Kubaj	lvsr	6,0,11
511*3a608692SPiotr Kubaj	lvx	5,0,3
512*3a608692SPiotr Kubaj	addi	3,3,15
513*3a608692SPiotr Kubaj
514*3a608692SPiotr Kubaj
515*3a608692SPiotr Kubaj	lvsr	8,0,4
516*3a608692SPiotr Kubaj	vspltisb	9,-1
517*3a608692SPiotr Kubaj	lvx	7,0,4
518*3a608692SPiotr Kubaj	vperm	9,0,9,8
519*3a608692SPiotr Kubaj
520*3a608692SPiotr Kubaj
521*3a608692SPiotr Kubaj	srwi	9,9,1
522*3a608692SPiotr Kubaj	li	10,16
523*3a608692SPiotr Kubaj	subi	9,9,1
524*3a608692SPiotr Kubaj	beq	.Lcbc_dec
525*3a608692SPiotr Kubaj
526*3a608692SPiotr Kubaj.Lcbc_enc:
527*3a608692SPiotr Kubaj	vor	2,5,5
528*3a608692SPiotr Kubaj	lvx	5,0,3
529*3a608692SPiotr Kubaj	addi	3,3,16
530*3a608692SPiotr Kubaj	mtctr	9
531*3a608692SPiotr Kubaj	subi	5,5,16
532*3a608692SPiotr Kubaj
533*3a608692SPiotr Kubaj	lvx	0,0,6
534*3a608692SPiotr Kubaj	vperm	2,2,5,6
535*3a608692SPiotr Kubaj	lvx	1,10,6
536*3a608692SPiotr Kubaj	addi	10,10,16
537*3a608692SPiotr Kubaj	vperm	0,0,1,10
538*3a608692SPiotr Kubaj	vxor	2,2,0
539*3a608692SPiotr Kubaj	lvx	0,10,6
540*3a608692SPiotr Kubaj	addi	10,10,16
541*3a608692SPiotr Kubaj	vxor	2,2,4
542*3a608692SPiotr Kubaj
543*3a608692SPiotr Kubaj.Loop_cbc_enc:
544*3a608692SPiotr Kubaj	vperm	1,1,0,10
545*3a608692SPiotr Kubaj	.long	0x10420D08
546*3a608692SPiotr Kubaj	lvx	1,10,6
547*3a608692SPiotr Kubaj	addi	10,10,16
548*3a608692SPiotr Kubaj	vperm	0,0,1,10
549*3a608692SPiotr Kubaj	.long	0x10420508
550*3a608692SPiotr Kubaj	lvx	0,10,6
551*3a608692SPiotr Kubaj	addi	10,10,16
552*3a608692SPiotr Kubaj	bdnz	.Loop_cbc_enc
553*3a608692SPiotr Kubaj
554*3a608692SPiotr Kubaj	vperm	1,1,0,10
555*3a608692SPiotr Kubaj	.long	0x10420D08
556*3a608692SPiotr Kubaj	lvx	1,10,6
557*3a608692SPiotr Kubaj	li	10,16
558*3a608692SPiotr Kubaj	vperm	0,0,1,10
559*3a608692SPiotr Kubaj	.long	0x10820509
560*3a608692SPiotr Kubaj	cmpldi	5,16
561*3a608692SPiotr Kubaj
562*3a608692SPiotr Kubaj	vperm	3,4,4,8
563*3a608692SPiotr Kubaj	vsel	2,7,3,9
564*3a608692SPiotr Kubaj	vor	7,3,3
565*3a608692SPiotr Kubaj	stvx	2,0,4
566*3a608692SPiotr Kubaj	addi	4,4,16
567*3a608692SPiotr Kubaj	bge	.Lcbc_enc
568*3a608692SPiotr Kubaj
569*3a608692SPiotr Kubaj	b	.Lcbc_done
570*3a608692SPiotr Kubaj
571*3a608692SPiotr Kubaj.align	4
572*3a608692SPiotr Kubaj.Lcbc_dec:
573*3a608692SPiotr Kubaj	cmpldi	5,128
574*3a608692SPiotr Kubaj	bge	_aesp8_cbc_decrypt8x
575*3a608692SPiotr Kubaj	vor	3,5,5
576*3a608692SPiotr Kubaj	lvx	5,0,3
577*3a608692SPiotr Kubaj	addi	3,3,16
578*3a608692SPiotr Kubaj	mtctr	9
579*3a608692SPiotr Kubaj	subi	5,5,16
580*3a608692SPiotr Kubaj
581*3a608692SPiotr Kubaj	lvx	0,0,6
582*3a608692SPiotr Kubaj	vperm	3,3,5,6
583*3a608692SPiotr Kubaj	lvx	1,10,6
584*3a608692SPiotr Kubaj	addi	10,10,16
585*3a608692SPiotr Kubaj	vperm	0,0,1,10
586*3a608692SPiotr Kubaj	vxor	2,3,0
587*3a608692SPiotr Kubaj	lvx	0,10,6
588*3a608692SPiotr Kubaj	addi	10,10,16
589*3a608692SPiotr Kubaj
590*3a608692SPiotr Kubaj.Loop_cbc_dec:
591*3a608692SPiotr Kubaj	vperm	1,1,0,10
592*3a608692SPiotr Kubaj	.long	0x10420D48
593*3a608692SPiotr Kubaj	lvx	1,10,6
594*3a608692SPiotr Kubaj	addi	10,10,16
595*3a608692SPiotr Kubaj	vperm	0,0,1,10
596*3a608692SPiotr Kubaj	.long	0x10420548
597*3a608692SPiotr Kubaj	lvx	0,10,6
598*3a608692SPiotr Kubaj	addi	10,10,16
599*3a608692SPiotr Kubaj	bdnz	.Loop_cbc_dec
600*3a608692SPiotr Kubaj
601*3a608692SPiotr Kubaj	vperm	1,1,0,10
602*3a608692SPiotr Kubaj	.long	0x10420D48
603*3a608692SPiotr Kubaj	lvx	1,10,6
604*3a608692SPiotr Kubaj	li	10,16
605*3a608692SPiotr Kubaj	vperm	0,0,1,10
606*3a608692SPiotr Kubaj	.long	0x10420549
607*3a608692SPiotr Kubaj	cmpldi	5,16
608*3a608692SPiotr Kubaj
609*3a608692SPiotr Kubaj	vxor	2,2,4
610*3a608692SPiotr Kubaj	vor	4,3,3
611*3a608692SPiotr Kubaj	vperm	3,2,2,8
612*3a608692SPiotr Kubaj	vsel	2,7,3,9
613*3a608692SPiotr Kubaj	vor	7,3,3
614*3a608692SPiotr Kubaj	stvx	2,0,4
615*3a608692SPiotr Kubaj	addi	4,4,16
616*3a608692SPiotr Kubaj	bge	.Lcbc_dec
617*3a608692SPiotr Kubaj
618*3a608692SPiotr Kubaj.Lcbc_done:
619*3a608692SPiotr Kubaj	addi	4,4,-1
620*3a608692SPiotr Kubaj	lvx	2,0,4
621*3a608692SPiotr Kubaj	vsel	2,7,2,9
622*3a608692SPiotr Kubaj	stvx	2,0,4
623*3a608692SPiotr Kubaj
624*3a608692SPiotr Kubaj	neg	8,7
625*3a608692SPiotr Kubaj	li	10,15
626*3a608692SPiotr Kubaj	vxor	0,0,0
627*3a608692SPiotr Kubaj	vspltisb	9,-1
628*3a608692SPiotr Kubaj
629*3a608692SPiotr Kubaj	lvsl	8,0,8
630*3a608692SPiotr Kubaj	vperm	9,0,9,8
631*3a608692SPiotr Kubaj
632*3a608692SPiotr Kubaj	lvx	7,0,7
633*3a608692SPiotr Kubaj	vperm	4,4,4,8
634*3a608692SPiotr Kubaj	vsel	2,7,4,9
635*3a608692SPiotr Kubaj	lvx	5,10,7
636*3a608692SPiotr Kubaj	stvx	2,0,7
637*3a608692SPiotr Kubaj	vsel	2,4,5,9
638*3a608692SPiotr Kubaj	stvx	2,10,7
639*3a608692SPiotr Kubaj
640*3a608692SPiotr Kubaj	or	12,12,12
641*3a608692SPiotr Kubaj	blr
642*3a608692SPiotr Kubaj.long	0
643*3a608692SPiotr Kubaj.byte	0,12,0x14,0,0,0,6,0
644*3a608692SPiotr Kubaj.long	0
645*3a608692SPiotr Kubaj.align	5
646*3a608692SPiotr Kubaj_aesp8_cbc_decrypt8x:
647*3a608692SPiotr Kubaj	stdu	1,-448(1)
648*3a608692SPiotr Kubaj	li	10,207
649*3a608692SPiotr Kubaj	li	11,223
650*3a608692SPiotr Kubaj	stvx	20,10,1
651*3a608692SPiotr Kubaj	addi	10,10,32
652*3a608692SPiotr Kubaj	stvx	21,11,1
653*3a608692SPiotr Kubaj	addi	11,11,32
654*3a608692SPiotr Kubaj	stvx	22,10,1
655*3a608692SPiotr Kubaj	addi	10,10,32
656*3a608692SPiotr Kubaj	stvx	23,11,1
657*3a608692SPiotr Kubaj	addi	11,11,32
658*3a608692SPiotr Kubaj	stvx	24,10,1
659*3a608692SPiotr Kubaj	addi	10,10,32
660*3a608692SPiotr Kubaj	stvx	25,11,1
661*3a608692SPiotr Kubaj	addi	11,11,32
662*3a608692SPiotr Kubaj	stvx	26,10,1
663*3a608692SPiotr Kubaj	addi	10,10,32
664*3a608692SPiotr Kubaj	stvx	27,11,1
665*3a608692SPiotr Kubaj	addi	11,11,32
666*3a608692SPiotr Kubaj	stvx	28,10,1
667*3a608692SPiotr Kubaj	addi	10,10,32
668*3a608692SPiotr Kubaj	stvx	29,11,1
669*3a608692SPiotr Kubaj	addi	11,11,32
670*3a608692SPiotr Kubaj	stvx	30,10,1
671*3a608692SPiotr Kubaj	stvx	31,11,1
672*3a608692SPiotr Kubaj	li	0,-1
673*3a608692SPiotr Kubaj	stw	12,396(1)
674*3a608692SPiotr Kubaj	li	8,0x10
675*3a608692SPiotr Kubaj	std	26,400(1)
676*3a608692SPiotr Kubaj	li	26,0x20
677*3a608692SPiotr Kubaj	std	27,408(1)
678*3a608692SPiotr Kubaj	li	27,0x30
679*3a608692SPiotr Kubaj	std	28,416(1)
680*3a608692SPiotr Kubaj	li	28,0x40
681*3a608692SPiotr Kubaj	std	29,424(1)
682*3a608692SPiotr Kubaj	li	29,0x50
683*3a608692SPiotr Kubaj	std	30,432(1)
684*3a608692SPiotr Kubaj	li	30,0x60
685*3a608692SPiotr Kubaj	std	31,440(1)
686*3a608692SPiotr Kubaj	li	31,0x70
687*3a608692SPiotr Kubaj	or	0,0,0
688*3a608692SPiotr Kubaj
689*3a608692SPiotr Kubaj	subi	9,9,3
690*3a608692SPiotr Kubaj	subi	5,5,128
691*3a608692SPiotr Kubaj
692*3a608692SPiotr Kubaj	lvx	23,0,6
693*3a608692SPiotr Kubaj	lvx	30,8,6
694*3a608692SPiotr Kubaj	addi	6,6,0x20
695*3a608692SPiotr Kubaj	lvx	31,0,6
696*3a608692SPiotr Kubaj	vperm	23,23,30,10
697*3a608692SPiotr Kubaj	addi	11,1,64+15
698*3a608692SPiotr Kubaj	mtctr	9
699*3a608692SPiotr Kubaj
700*3a608692SPiotr Kubaj.Load_cbc_dec_key:
701*3a608692SPiotr Kubaj	vperm	24,30,31,10
702*3a608692SPiotr Kubaj	lvx	30,8,6
703*3a608692SPiotr Kubaj	addi	6,6,0x20
704*3a608692SPiotr Kubaj	stvx	24,0,11
705*3a608692SPiotr Kubaj	vperm	25,31,30,10
706*3a608692SPiotr Kubaj	lvx	31,0,6
707*3a608692SPiotr Kubaj	stvx	25,8,11
708*3a608692SPiotr Kubaj	addi	11,11,0x20
709*3a608692SPiotr Kubaj	bdnz	.Load_cbc_dec_key
710*3a608692SPiotr Kubaj
711*3a608692SPiotr Kubaj	lvx	26,8,6
712*3a608692SPiotr Kubaj	vperm	24,30,31,10
713*3a608692SPiotr Kubaj	lvx	27,26,6
714*3a608692SPiotr Kubaj	stvx	24,0,11
715*3a608692SPiotr Kubaj	vperm	25,31,26,10
716*3a608692SPiotr Kubaj	lvx	28,27,6
717*3a608692SPiotr Kubaj	stvx	25,8,11
718*3a608692SPiotr Kubaj	addi	11,1,64+15
719*3a608692SPiotr Kubaj	vperm	26,26,27,10
720*3a608692SPiotr Kubaj	lvx	29,28,6
721*3a608692SPiotr Kubaj	vperm	27,27,28,10
722*3a608692SPiotr Kubaj	lvx	30,29,6
723*3a608692SPiotr Kubaj	vperm	28,28,29,10
724*3a608692SPiotr Kubaj	lvx	31,30,6
725*3a608692SPiotr Kubaj	vperm	29,29,30,10
726*3a608692SPiotr Kubaj	lvx	14,31,6
727*3a608692SPiotr Kubaj	vperm	30,30,31,10
728*3a608692SPiotr Kubaj	lvx	24,0,11
729*3a608692SPiotr Kubaj	vperm	31,31,14,10
730*3a608692SPiotr Kubaj	lvx	25,8,11
731*3a608692SPiotr Kubaj
732*3a608692SPiotr Kubaj
733*3a608692SPiotr Kubaj
734*3a608692SPiotr Kubaj	subi	3,3,15
735*3a608692SPiotr Kubaj
736*3a608692SPiotr Kubaj
737*3a608692SPiotr Kubaj	.long	0x7C001E99
738*3a608692SPiotr Kubaj
739*3a608692SPiotr Kubaj
740*3a608692SPiotr Kubaj	.long	0x7C281E99
741*3a608692SPiotr Kubaj
742*3a608692SPiotr Kubaj	.long	0x7C5A1E99
743*3a608692SPiotr Kubaj
744*3a608692SPiotr Kubaj	.long	0x7C7B1E99
745*3a608692SPiotr Kubaj
746*3a608692SPiotr Kubaj	.long	0x7D5C1E99
747*3a608692SPiotr Kubaj
748*3a608692SPiotr Kubaj	vxor	14,0,23
749*3a608692SPiotr Kubaj	.long	0x7D7D1E99
750*3a608692SPiotr Kubaj
751*3a608692SPiotr Kubaj	vxor	15,1,23
752*3a608692SPiotr Kubaj	.long	0x7D9E1E99
753*3a608692SPiotr Kubaj
754*3a608692SPiotr Kubaj	vxor	16,2,23
755*3a608692SPiotr Kubaj	.long	0x7DBF1E99
756*3a608692SPiotr Kubaj	addi	3,3,0x80
757*3a608692SPiotr Kubaj
758*3a608692SPiotr Kubaj	vxor	17,3,23
759*3a608692SPiotr Kubaj
760*3a608692SPiotr Kubaj	vxor	18,10,23
761*3a608692SPiotr Kubaj
762*3a608692SPiotr Kubaj	vxor	19,11,23
763*3a608692SPiotr Kubaj	vxor	20,12,23
764*3a608692SPiotr Kubaj	vxor	21,13,23
765*3a608692SPiotr Kubaj
766*3a608692SPiotr Kubaj	mtctr	9
767*3a608692SPiotr Kubaj	b	.Loop_cbc_dec8x
768*3a608692SPiotr Kubaj.align	5
769*3a608692SPiotr Kubaj.Loop_cbc_dec8x:
770*3a608692SPiotr Kubaj	.long	0x11CEC548
771*3a608692SPiotr Kubaj	.long	0x11EFC548
772*3a608692SPiotr Kubaj	.long	0x1210C548
773*3a608692SPiotr Kubaj	.long	0x1231C548
774*3a608692SPiotr Kubaj	.long	0x1252C548
775*3a608692SPiotr Kubaj	.long	0x1273C548
776*3a608692SPiotr Kubaj	.long	0x1294C548
777*3a608692SPiotr Kubaj	.long	0x12B5C548
778*3a608692SPiotr Kubaj	lvx	24,26,11
779*3a608692SPiotr Kubaj	addi	11,11,0x20
780*3a608692SPiotr Kubaj
781*3a608692SPiotr Kubaj	.long	0x11CECD48
782*3a608692SPiotr Kubaj	.long	0x11EFCD48
783*3a608692SPiotr Kubaj	.long	0x1210CD48
784*3a608692SPiotr Kubaj	.long	0x1231CD48
785*3a608692SPiotr Kubaj	.long	0x1252CD48
786*3a608692SPiotr Kubaj	.long	0x1273CD48
787*3a608692SPiotr Kubaj	.long	0x1294CD48
788*3a608692SPiotr Kubaj	.long	0x12B5CD48
789*3a608692SPiotr Kubaj	lvx	25,8,11
790*3a608692SPiotr Kubaj	bdnz	.Loop_cbc_dec8x
791*3a608692SPiotr Kubaj
792*3a608692SPiotr Kubaj	subic	5,5,128
793*3a608692SPiotr Kubaj	.long	0x11CEC548
794*3a608692SPiotr Kubaj	.long	0x11EFC548
795*3a608692SPiotr Kubaj	.long	0x1210C548
796*3a608692SPiotr Kubaj	.long	0x1231C548
797*3a608692SPiotr Kubaj	.long	0x1252C548
798*3a608692SPiotr Kubaj	.long	0x1273C548
799*3a608692SPiotr Kubaj	.long	0x1294C548
800*3a608692SPiotr Kubaj	.long	0x12B5C548
801*3a608692SPiotr Kubaj
802*3a608692SPiotr Kubaj	subfe.	0,0,0
803*3a608692SPiotr Kubaj	.long	0x11CECD48
804*3a608692SPiotr Kubaj	.long	0x11EFCD48
805*3a608692SPiotr Kubaj	.long	0x1210CD48
806*3a608692SPiotr Kubaj	.long	0x1231CD48
807*3a608692SPiotr Kubaj	.long	0x1252CD48
808*3a608692SPiotr Kubaj	.long	0x1273CD48
809*3a608692SPiotr Kubaj	.long	0x1294CD48
810*3a608692SPiotr Kubaj	.long	0x12B5CD48
811*3a608692SPiotr Kubaj
812*3a608692SPiotr Kubaj	and	0,0,5
813*3a608692SPiotr Kubaj	.long	0x11CED548
814*3a608692SPiotr Kubaj	.long	0x11EFD548
815*3a608692SPiotr Kubaj	.long	0x1210D548
816*3a608692SPiotr Kubaj	.long	0x1231D548
817*3a608692SPiotr Kubaj	.long	0x1252D548
818*3a608692SPiotr Kubaj	.long	0x1273D548
819*3a608692SPiotr Kubaj	.long	0x1294D548
820*3a608692SPiotr Kubaj	.long	0x12B5D548
821*3a608692SPiotr Kubaj
822*3a608692SPiotr Kubaj	add	3,3,0
823*3a608692SPiotr Kubaj
824*3a608692SPiotr Kubaj
825*3a608692SPiotr Kubaj
826*3a608692SPiotr Kubaj	.long	0x11CEDD48
827*3a608692SPiotr Kubaj	.long	0x11EFDD48
828*3a608692SPiotr Kubaj	.long	0x1210DD48
829*3a608692SPiotr Kubaj	.long	0x1231DD48
830*3a608692SPiotr Kubaj	.long	0x1252DD48
831*3a608692SPiotr Kubaj	.long	0x1273DD48
832*3a608692SPiotr Kubaj	.long	0x1294DD48
833*3a608692SPiotr Kubaj	.long	0x12B5DD48
834*3a608692SPiotr Kubaj
835*3a608692SPiotr Kubaj	addi	11,1,64+15
836*3a608692SPiotr Kubaj	.long	0x11CEE548
837*3a608692SPiotr Kubaj	.long	0x11EFE548
838*3a608692SPiotr Kubaj	.long	0x1210E548
839*3a608692SPiotr Kubaj	.long	0x1231E548
840*3a608692SPiotr Kubaj	.long	0x1252E548
841*3a608692SPiotr Kubaj	.long	0x1273E548
842*3a608692SPiotr Kubaj	.long	0x1294E548
843*3a608692SPiotr Kubaj	.long	0x12B5E548
844*3a608692SPiotr Kubaj	lvx	24,0,11
845*3a608692SPiotr Kubaj
846*3a608692SPiotr Kubaj	.long	0x11CEED48
847*3a608692SPiotr Kubaj	.long	0x11EFED48
848*3a608692SPiotr Kubaj	.long	0x1210ED48
849*3a608692SPiotr Kubaj	.long	0x1231ED48
850*3a608692SPiotr Kubaj	.long	0x1252ED48
851*3a608692SPiotr Kubaj	.long	0x1273ED48
852*3a608692SPiotr Kubaj	.long	0x1294ED48
853*3a608692SPiotr Kubaj	.long	0x12B5ED48
854*3a608692SPiotr Kubaj	lvx	25,8,11
855*3a608692SPiotr Kubaj
856*3a608692SPiotr Kubaj	.long	0x11CEF548
857*3a608692SPiotr Kubaj	vxor	4,4,31
858*3a608692SPiotr Kubaj	.long	0x11EFF548
859*3a608692SPiotr Kubaj	vxor	0,0,31
860*3a608692SPiotr Kubaj	.long	0x1210F548
861*3a608692SPiotr Kubaj	vxor	1,1,31
862*3a608692SPiotr Kubaj	.long	0x1231F548
863*3a608692SPiotr Kubaj	vxor	2,2,31
864*3a608692SPiotr Kubaj	.long	0x1252F548
865*3a608692SPiotr Kubaj	vxor	3,3,31
866*3a608692SPiotr Kubaj	.long	0x1273F548
867*3a608692SPiotr Kubaj	vxor	10,10,31
868*3a608692SPiotr Kubaj	.long	0x1294F548
869*3a608692SPiotr Kubaj	vxor	11,11,31
870*3a608692SPiotr Kubaj	.long	0x12B5F548
871*3a608692SPiotr Kubaj	vxor	12,12,31
872*3a608692SPiotr Kubaj
873*3a608692SPiotr Kubaj	.long	0x11CE2549
874*3a608692SPiotr Kubaj	.long	0x11EF0549
875*3a608692SPiotr Kubaj	.long	0x7C001E99
876*3a608692SPiotr Kubaj	.long	0x12100D49
877*3a608692SPiotr Kubaj	.long	0x7C281E99
878*3a608692SPiotr Kubaj	.long	0x12311549
879*3a608692SPiotr Kubaj
880*3a608692SPiotr Kubaj	.long	0x7C5A1E99
881*3a608692SPiotr Kubaj	.long	0x12521D49
882*3a608692SPiotr Kubaj
883*3a608692SPiotr Kubaj	.long	0x7C7B1E99
884*3a608692SPiotr Kubaj	.long	0x12735549
885*3a608692SPiotr Kubaj
886*3a608692SPiotr Kubaj	.long	0x7D5C1E99
887*3a608692SPiotr Kubaj	.long	0x12945D49
888*3a608692SPiotr Kubaj
889*3a608692SPiotr Kubaj	.long	0x7D7D1E99
890*3a608692SPiotr Kubaj	.long	0x12B56549
891*3a608692SPiotr Kubaj
892*3a608692SPiotr Kubaj	.long	0x7D9E1E99
893*3a608692SPiotr Kubaj	vor	4,13,13
894*3a608692SPiotr Kubaj
895*3a608692SPiotr Kubaj	.long	0x7DBF1E99
896*3a608692SPiotr Kubaj	addi	3,3,0x80
897*3a608692SPiotr Kubaj
898*3a608692SPiotr Kubaj
899*3a608692SPiotr Kubaj
900*3a608692SPiotr Kubaj	.long	0x7DC02799
901*3a608692SPiotr Kubaj
902*3a608692SPiotr Kubaj	vxor	14,0,23
903*3a608692SPiotr Kubaj
904*3a608692SPiotr Kubaj	.long	0x7DE82799
905*3a608692SPiotr Kubaj
906*3a608692SPiotr Kubaj	vxor	15,1,23
907*3a608692SPiotr Kubaj
908*3a608692SPiotr Kubaj	.long	0x7E1A2799
909*3a608692SPiotr Kubaj	vxor	16,2,23
910*3a608692SPiotr Kubaj
911*3a608692SPiotr Kubaj	.long	0x7E3B2799
912*3a608692SPiotr Kubaj	vxor	17,3,23
913*3a608692SPiotr Kubaj
914*3a608692SPiotr Kubaj	.long	0x7E5C2799
915*3a608692SPiotr Kubaj	vxor	18,10,23
916*3a608692SPiotr Kubaj
917*3a608692SPiotr Kubaj	.long	0x7E7D2799
918*3a608692SPiotr Kubaj	vxor	19,11,23
919*3a608692SPiotr Kubaj
920*3a608692SPiotr Kubaj	.long	0x7E9E2799
921*3a608692SPiotr Kubaj	vxor	20,12,23
922*3a608692SPiotr Kubaj	.long	0x7EBF2799
923*3a608692SPiotr Kubaj	addi	4,4,0x80
924*3a608692SPiotr Kubaj	vxor	21,13,23
925*3a608692SPiotr Kubaj
926*3a608692SPiotr Kubaj	mtctr	9
927*3a608692SPiotr Kubaj	beq	.Loop_cbc_dec8x
928*3a608692SPiotr Kubaj
929*3a608692SPiotr Kubaj	addic.	5,5,128
930*3a608692SPiotr Kubaj	beq	.Lcbc_dec8x_done
931*3a608692SPiotr Kubaj	nop
932*3a608692SPiotr Kubaj	nop
933*3a608692SPiotr Kubaj
934*3a608692SPiotr Kubaj.Loop_cbc_dec8x_tail:
935*3a608692SPiotr Kubaj	.long	0x11EFC548
936*3a608692SPiotr Kubaj	.long	0x1210C548
937*3a608692SPiotr Kubaj	.long	0x1231C548
938*3a608692SPiotr Kubaj	.long	0x1252C548
939*3a608692SPiotr Kubaj	.long	0x1273C548
940*3a608692SPiotr Kubaj	.long	0x1294C548
941*3a608692SPiotr Kubaj	.long	0x12B5C548
942*3a608692SPiotr Kubaj	lvx	24,26,11
943*3a608692SPiotr Kubaj	addi	11,11,0x20
944*3a608692SPiotr Kubaj
945*3a608692SPiotr Kubaj	.long	0x11EFCD48
946*3a608692SPiotr Kubaj	.long	0x1210CD48
947*3a608692SPiotr Kubaj	.long	0x1231CD48
948*3a608692SPiotr Kubaj	.long	0x1252CD48
949*3a608692SPiotr Kubaj	.long	0x1273CD48
950*3a608692SPiotr Kubaj	.long	0x1294CD48
951*3a608692SPiotr Kubaj	.long	0x12B5CD48
952*3a608692SPiotr Kubaj	lvx	25,8,11
953*3a608692SPiotr Kubaj	bdnz	.Loop_cbc_dec8x_tail
954*3a608692SPiotr Kubaj
955*3a608692SPiotr Kubaj	.long	0x11EFC548
956*3a608692SPiotr Kubaj	.long	0x1210C548
957*3a608692SPiotr Kubaj	.long	0x1231C548
958*3a608692SPiotr Kubaj	.long	0x1252C548
959*3a608692SPiotr Kubaj	.long	0x1273C548
960*3a608692SPiotr Kubaj	.long	0x1294C548
961*3a608692SPiotr Kubaj	.long	0x12B5C548
962*3a608692SPiotr Kubaj
963*3a608692SPiotr Kubaj	.long	0x11EFCD48
964*3a608692SPiotr Kubaj	.long	0x1210CD48
965*3a608692SPiotr Kubaj	.long	0x1231CD48
966*3a608692SPiotr Kubaj	.long	0x1252CD48
967*3a608692SPiotr Kubaj	.long	0x1273CD48
968*3a608692SPiotr Kubaj	.long	0x1294CD48
969*3a608692SPiotr Kubaj	.long	0x12B5CD48
970*3a608692SPiotr Kubaj
971*3a608692SPiotr Kubaj	.long	0x11EFD548
972*3a608692SPiotr Kubaj	.long	0x1210D548
973*3a608692SPiotr Kubaj	.long	0x1231D548
974*3a608692SPiotr Kubaj	.long	0x1252D548
975*3a608692SPiotr Kubaj	.long	0x1273D548
976*3a608692SPiotr Kubaj	.long	0x1294D548
977*3a608692SPiotr Kubaj	.long	0x12B5D548
978*3a608692SPiotr Kubaj
979*3a608692SPiotr Kubaj	.long	0x11EFDD48
980*3a608692SPiotr Kubaj	.long	0x1210DD48
981*3a608692SPiotr Kubaj	.long	0x1231DD48
982*3a608692SPiotr Kubaj	.long	0x1252DD48
983*3a608692SPiotr Kubaj	.long	0x1273DD48
984*3a608692SPiotr Kubaj	.long	0x1294DD48
985*3a608692SPiotr Kubaj	.long	0x12B5DD48
986*3a608692SPiotr Kubaj
987*3a608692SPiotr Kubaj	.long	0x11EFE548
988*3a608692SPiotr Kubaj	.long	0x1210E548
989*3a608692SPiotr Kubaj	.long	0x1231E548
990*3a608692SPiotr Kubaj	.long	0x1252E548
991*3a608692SPiotr Kubaj	.long	0x1273E548
992*3a608692SPiotr Kubaj	.long	0x1294E548
993*3a608692SPiotr Kubaj	.long	0x12B5E548
994*3a608692SPiotr Kubaj
995*3a608692SPiotr Kubaj	.long	0x11EFED48
996*3a608692SPiotr Kubaj	.long	0x1210ED48
997*3a608692SPiotr Kubaj	.long	0x1231ED48
998*3a608692SPiotr Kubaj	.long	0x1252ED48
999*3a608692SPiotr Kubaj	.long	0x1273ED48
1000*3a608692SPiotr Kubaj	.long	0x1294ED48
1001*3a608692SPiotr Kubaj	.long	0x12B5ED48
1002*3a608692SPiotr Kubaj
1003*3a608692SPiotr Kubaj	.long	0x11EFF548
1004*3a608692SPiotr Kubaj	vxor	4,4,31
1005*3a608692SPiotr Kubaj	.long	0x1210F548
1006*3a608692SPiotr Kubaj	vxor	1,1,31
1007*3a608692SPiotr Kubaj	.long	0x1231F548
1008*3a608692SPiotr Kubaj	vxor	2,2,31
1009*3a608692SPiotr Kubaj	.long	0x1252F548
1010*3a608692SPiotr Kubaj	vxor	3,3,31
1011*3a608692SPiotr Kubaj	.long	0x1273F548
1012*3a608692SPiotr Kubaj	vxor	10,10,31
1013*3a608692SPiotr Kubaj	.long	0x1294F548
1014*3a608692SPiotr Kubaj	vxor	11,11,31
1015*3a608692SPiotr Kubaj	.long	0x12B5F548
1016*3a608692SPiotr Kubaj	vxor	12,12,31
1017*3a608692SPiotr Kubaj
1018*3a608692SPiotr Kubaj	cmplwi	5,32
1019*3a608692SPiotr Kubaj	blt	.Lcbc_dec8x_one
1020*3a608692SPiotr Kubaj	nop
1021*3a608692SPiotr Kubaj	beq	.Lcbc_dec8x_two
1022*3a608692SPiotr Kubaj	cmplwi	5,64
1023*3a608692SPiotr Kubaj	blt	.Lcbc_dec8x_three
1024*3a608692SPiotr Kubaj	nop
1025*3a608692SPiotr Kubaj	beq	.Lcbc_dec8x_four
1026*3a608692SPiotr Kubaj	cmplwi	5,96
1027*3a608692SPiotr Kubaj	blt	.Lcbc_dec8x_five
1028*3a608692SPiotr Kubaj	nop
1029*3a608692SPiotr Kubaj	beq	.Lcbc_dec8x_six
1030*3a608692SPiotr Kubaj
1031*3a608692SPiotr Kubaj.Lcbc_dec8x_seven:
1032*3a608692SPiotr Kubaj	.long	0x11EF2549
1033*3a608692SPiotr Kubaj	.long	0x12100D49
1034*3a608692SPiotr Kubaj	.long	0x12311549
1035*3a608692SPiotr Kubaj	.long	0x12521D49
1036*3a608692SPiotr Kubaj	.long	0x12735549
1037*3a608692SPiotr Kubaj	.long	0x12945D49
1038*3a608692SPiotr Kubaj	.long	0x12B56549
1039*3a608692SPiotr Kubaj	vor	4,13,13
1040*3a608692SPiotr Kubaj
1041*3a608692SPiotr Kubaj
1042*3a608692SPiotr Kubaj
1043*3a608692SPiotr Kubaj	.long	0x7DE02799
1044*3a608692SPiotr Kubaj
1045*3a608692SPiotr Kubaj	.long	0x7E082799
1046*3a608692SPiotr Kubaj
1047*3a608692SPiotr Kubaj	.long	0x7E3A2799
1048*3a608692SPiotr Kubaj
1049*3a608692SPiotr Kubaj	.long	0x7E5B2799
1050*3a608692SPiotr Kubaj
1051*3a608692SPiotr Kubaj	.long	0x7E7C2799
1052*3a608692SPiotr Kubaj
1053*3a608692SPiotr Kubaj	.long	0x7E9D2799
1054*3a608692SPiotr Kubaj	.long	0x7EBE2799
1055*3a608692SPiotr Kubaj	addi	4,4,0x70
1056*3a608692SPiotr Kubaj	b	.Lcbc_dec8x_done
1057*3a608692SPiotr Kubaj
1058*3a608692SPiotr Kubaj.align	5
1059*3a608692SPiotr Kubaj.Lcbc_dec8x_six:
1060*3a608692SPiotr Kubaj	.long	0x12102549
1061*3a608692SPiotr Kubaj	.long	0x12311549
1062*3a608692SPiotr Kubaj	.long	0x12521D49
1063*3a608692SPiotr Kubaj	.long	0x12735549
1064*3a608692SPiotr Kubaj	.long	0x12945D49
1065*3a608692SPiotr Kubaj	.long	0x12B56549
1066*3a608692SPiotr Kubaj	vor	4,13,13
1067*3a608692SPiotr Kubaj
1068*3a608692SPiotr Kubaj
1069*3a608692SPiotr Kubaj
1070*3a608692SPiotr Kubaj	.long	0x7E002799
1071*3a608692SPiotr Kubaj
1072*3a608692SPiotr Kubaj	.long	0x7E282799
1073*3a608692SPiotr Kubaj
1074*3a608692SPiotr Kubaj	.long	0x7E5A2799
1075*3a608692SPiotr Kubaj
1076*3a608692SPiotr Kubaj	.long	0x7E7B2799
1077*3a608692SPiotr Kubaj
1078*3a608692SPiotr Kubaj	.long	0x7E9C2799
1079*3a608692SPiotr Kubaj	.long	0x7EBD2799
1080*3a608692SPiotr Kubaj	addi	4,4,0x60
1081*3a608692SPiotr Kubaj	b	.Lcbc_dec8x_done
1082*3a608692SPiotr Kubaj
1083*3a608692SPiotr Kubaj.align	5
1084*3a608692SPiotr Kubaj.Lcbc_dec8x_five:
1085*3a608692SPiotr Kubaj	.long	0x12312549
1086*3a608692SPiotr Kubaj	.long	0x12521D49
1087*3a608692SPiotr Kubaj	.long	0x12735549
1088*3a608692SPiotr Kubaj	.long	0x12945D49
1089*3a608692SPiotr Kubaj	.long	0x12B56549
1090*3a608692SPiotr Kubaj	vor	4,13,13
1091*3a608692SPiotr Kubaj
1092*3a608692SPiotr Kubaj
1093*3a608692SPiotr Kubaj
1094*3a608692SPiotr Kubaj	.long	0x7E202799
1095*3a608692SPiotr Kubaj
1096*3a608692SPiotr Kubaj	.long	0x7E482799
1097*3a608692SPiotr Kubaj
1098*3a608692SPiotr Kubaj	.long	0x7E7A2799
1099*3a608692SPiotr Kubaj
1100*3a608692SPiotr Kubaj	.long	0x7E9B2799
1101*3a608692SPiotr Kubaj	.long	0x7EBC2799
1102*3a608692SPiotr Kubaj	addi	4,4,0x50
1103*3a608692SPiotr Kubaj	b	.Lcbc_dec8x_done
1104*3a608692SPiotr Kubaj
1105*3a608692SPiotr Kubaj.align	5
1106*3a608692SPiotr Kubaj.Lcbc_dec8x_four:
1107*3a608692SPiotr Kubaj	.long	0x12522549
1108*3a608692SPiotr Kubaj	.long	0x12735549
1109*3a608692SPiotr Kubaj	.long	0x12945D49
1110*3a608692SPiotr Kubaj	.long	0x12B56549
1111*3a608692SPiotr Kubaj	vor	4,13,13
1112*3a608692SPiotr Kubaj
1113*3a608692SPiotr Kubaj
1114*3a608692SPiotr Kubaj
1115*3a608692SPiotr Kubaj	.long	0x7E402799
1116*3a608692SPiotr Kubaj
1117*3a608692SPiotr Kubaj	.long	0x7E682799
1118*3a608692SPiotr Kubaj
1119*3a608692SPiotr Kubaj	.long	0x7E9A2799
1120*3a608692SPiotr Kubaj	.long	0x7EBB2799
1121*3a608692SPiotr Kubaj	addi	4,4,0x40
1122*3a608692SPiotr Kubaj	b	.Lcbc_dec8x_done
1123*3a608692SPiotr Kubaj
1124*3a608692SPiotr Kubaj.align	5
1125*3a608692SPiotr Kubaj.Lcbc_dec8x_three:
1126*3a608692SPiotr Kubaj	.long	0x12732549
1127*3a608692SPiotr Kubaj	.long	0x12945D49
1128*3a608692SPiotr Kubaj	.long	0x12B56549
1129*3a608692SPiotr Kubaj	vor	4,13,13
1130*3a608692SPiotr Kubaj
1131*3a608692SPiotr Kubaj
1132*3a608692SPiotr Kubaj
1133*3a608692SPiotr Kubaj	.long	0x7E602799
1134*3a608692SPiotr Kubaj
1135*3a608692SPiotr Kubaj	.long	0x7E882799
1136*3a608692SPiotr Kubaj	.long	0x7EBA2799
1137*3a608692SPiotr Kubaj	addi	4,4,0x30
1138*3a608692SPiotr Kubaj	b	.Lcbc_dec8x_done
1139*3a608692SPiotr Kubaj
1140*3a608692SPiotr Kubaj.align	5
1141*3a608692SPiotr Kubaj.Lcbc_dec8x_two:
1142*3a608692SPiotr Kubaj	.long	0x12942549
1143*3a608692SPiotr Kubaj	.long	0x12B56549
1144*3a608692SPiotr Kubaj	vor	4,13,13
1145*3a608692SPiotr Kubaj
1146*3a608692SPiotr Kubaj
1147*3a608692SPiotr Kubaj
1148*3a608692SPiotr Kubaj	.long	0x7E802799
1149*3a608692SPiotr Kubaj	.long	0x7EA82799
1150*3a608692SPiotr Kubaj	addi	4,4,0x20
1151*3a608692SPiotr Kubaj	b	.Lcbc_dec8x_done
1152*3a608692SPiotr Kubaj
1153*3a608692SPiotr Kubaj.align	5
1154*3a608692SPiotr Kubaj.Lcbc_dec8x_one:
1155*3a608692SPiotr Kubaj	.long	0x12B52549
1156*3a608692SPiotr Kubaj	vor	4,13,13
1157*3a608692SPiotr Kubaj
1158*3a608692SPiotr Kubaj
1159*3a608692SPiotr Kubaj	.long	0x7EA02799
1160*3a608692SPiotr Kubaj	addi	4,4,0x10
1161*3a608692SPiotr Kubaj
1162*3a608692SPiotr Kubaj.Lcbc_dec8x_done:
1163*3a608692SPiotr Kubaj
1164*3a608692SPiotr Kubaj	.long	0x7C803F99
1165*3a608692SPiotr Kubaj
1166*3a608692SPiotr Kubaj	li	10,79
1167*3a608692SPiotr Kubaj	li	11,95
1168*3a608692SPiotr Kubaj	stvx	6,10,1
1169*3a608692SPiotr Kubaj	addi	10,10,32
1170*3a608692SPiotr Kubaj	stvx	6,11,1
1171*3a608692SPiotr Kubaj	addi	11,11,32
1172*3a608692SPiotr Kubaj	stvx	6,10,1
1173*3a608692SPiotr Kubaj	addi	10,10,32
1174*3a608692SPiotr Kubaj	stvx	6,11,1
1175*3a608692SPiotr Kubaj	addi	11,11,32
1176*3a608692SPiotr Kubaj	stvx	6,10,1
1177*3a608692SPiotr Kubaj	addi	10,10,32
1178*3a608692SPiotr Kubaj	stvx	6,11,1
1179*3a608692SPiotr Kubaj	addi	11,11,32
1180*3a608692SPiotr Kubaj	stvx	6,10,1
1181*3a608692SPiotr Kubaj	addi	10,10,32
1182*3a608692SPiotr Kubaj	stvx	6,11,1
1183*3a608692SPiotr Kubaj	addi	11,11,32
1184*3a608692SPiotr Kubaj
1185*3a608692SPiotr Kubaj	or	12,12,12
1186*3a608692SPiotr Kubaj	lvx	20,10,1
1187*3a608692SPiotr Kubaj	addi	10,10,32
1188*3a608692SPiotr Kubaj	lvx	21,11,1
1189*3a608692SPiotr Kubaj	addi	11,11,32
1190*3a608692SPiotr Kubaj	lvx	22,10,1
1191*3a608692SPiotr Kubaj	addi	10,10,32
1192*3a608692SPiotr Kubaj	lvx	23,11,1
1193*3a608692SPiotr Kubaj	addi	11,11,32
1194*3a608692SPiotr Kubaj	lvx	24,10,1
1195*3a608692SPiotr Kubaj	addi	10,10,32
1196*3a608692SPiotr Kubaj	lvx	25,11,1
1197*3a608692SPiotr Kubaj	addi	11,11,32
1198*3a608692SPiotr Kubaj	lvx	26,10,1
1199*3a608692SPiotr Kubaj	addi	10,10,32
1200*3a608692SPiotr Kubaj	lvx	27,11,1
1201*3a608692SPiotr Kubaj	addi	11,11,32
1202*3a608692SPiotr Kubaj	lvx	28,10,1
1203*3a608692SPiotr Kubaj	addi	10,10,32
1204*3a608692SPiotr Kubaj	lvx	29,11,1
1205*3a608692SPiotr Kubaj	addi	11,11,32
1206*3a608692SPiotr Kubaj	lvx	30,10,1
1207*3a608692SPiotr Kubaj	lvx	31,11,1
1208*3a608692SPiotr Kubaj	ld	26,400(1)
1209*3a608692SPiotr Kubaj	ld	27,408(1)
1210*3a608692SPiotr Kubaj	ld	28,416(1)
1211*3a608692SPiotr Kubaj	ld	29,424(1)
1212*3a608692SPiotr Kubaj	ld	30,432(1)
1213*3a608692SPiotr Kubaj	ld	31,440(1)
1214*3a608692SPiotr Kubaj	addi	1,1,448
1215*3a608692SPiotr Kubaj	blr
1216*3a608692SPiotr Kubaj.long	0
1217*3a608692SPiotr Kubaj.byte	0,12,0x04,0,0x80,6,6,0
1218*3a608692SPiotr Kubaj.long	0
1219*3a608692SPiotr Kubaj.size	aes_p8_cbc_encrypt,.-aes_p8_cbc_encrypt
1220*3a608692SPiotr Kubaj.globl	aes_p8_ctr32_encrypt_blocks
1221*3a608692SPiotr Kubaj.type	aes_p8_ctr32_encrypt_blocks,@function
1222*3a608692SPiotr Kubaj.align	5
1223*3a608692SPiotr Kubajaes_p8_ctr32_encrypt_blocks:
1224*3a608692SPiotr Kubaj.localentry	aes_p8_ctr32_encrypt_blocks,0
1225*3a608692SPiotr Kubaj
1226*3a608692SPiotr Kubaj	cmpldi	5,1
1227*3a608692SPiotr Kubaj	.long	0x4dc00020
1228*3a608692SPiotr Kubaj
1229*3a608692SPiotr Kubaj	lis	0,0xfff0
1230*3a608692SPiotr Kubaj	li	12,-1
1231*3a608692SPiotr Kubaj	or	0,0,0
1232*3a608692SPiotr Kubaj
1233*3a608692SPiotr Kubaj	li	10,15
1234*3a608692SPiotr Kubaj	vxor	0,0,0
1235*3a608692SPiotr Kubaj
1236*3a608692SPiotr Kubaj
1237*3a608692SPiotr Kubaj	lvx	4,0,7
1238*3a608692SPiotr Kubaj	lvsl	6,0,7
1239*3a608692SPiotr Kubaj	lvx	5,10,7
1240*3a608692SPiotr Kubaj	vspltisb	11,1
1241*3a608692SPiotr Kubaj
1242*3a608692SPiotr Kubaj	vperm	4,4,5,6
1243*3a608692SPiotr Kubaj	vsldoi	11,0,11,1
1244*3a608692SPiotr Kubaj
1245*3a608692SPiotr Kubaj	neg	11,3
1246*3a608692SPiotr Kubaj	lvsl	10,0,6
1247*3a608692SPiotr Kubaj	lwz	9,240(6)
1248*3a608692SPiotr Kubaj
1249*3a608692SPiotr Kubaj	lvsr	6,0,11
1250*3a608692SPiotr Kubaj	lvx	5,0,3
1251*3a608692SPiotr Kubaj	addi	3,3,15
1252*3a608692SPiotr Kubaj
1253*3a608692SPiotr Kubaj
1254*3a608692SPiotr Kubaj	srwi	9,9,1
1255*3a608692SPiotr Kubaj	li	10,16
1256*3a608692SPiotr Kubaj	subi	9,9,1
1257*3a608692SPiotr Kubaj
1258*3a608692SPiotr Kubaj	cmpldi	5,8
1259*3a608692SPiotr Kubaj	bge	_aesp8_ctr32_encrypt8x
1260*3a608692SPiotr Kubaj
1261*3a608692SPiotr Kubaj	lvsr	8,0,4
1262*3a608692SPiotr Kubaj	vspltisb	9,-1
1263*3a608692SPiotr Kubaj	lvx	7,0,4
1264*3a608692SPiotr Kubaj	vperm	9,0,9,8
1265*3a608692SPiotr Kubaj
1266*3a608692SPiotr Kubaj
1267*3a608692SPiotr Kubaj	lvx	0,0,6
1268*3a608692SPiotr Kubaj	mtctr	9
1269*3a608692SPiotr Kubaj	lvx	1,10,6
1270*3a608692SPiotr Kubaj	addi	10,10,16
1271*3a608692SPiotr Kubaj	vperm	0,0,1,10
1272*3a608692SPiotr Kubaj	vxor	2,4,0
1273*3a608692SPiotr Kubaj	lvx	0,10,6
1274*3a608692SPiotr Kubaj	addi	10,10,16
1275*3a608692SPiotr Kubaj	b	.Loop_ctr32_enc
1276*3a608692SPiotr Kubaj
1277*3a608692SPiotr Kubaj.align	5
1278*3a608692SPiotr Kubaj.Loop_ctr32_enc:
1279*3a608692SPiotr Kubaj	vperm	1,1,0,10
1280*3a608692SPiotr Kubaj	.long	0x10420D08
1281*3a608692SPiotr Kubaj	lvx	1,10,6
1282*3a608692SPiotr Kubaj	addi	10,10,16
1283*3a608692SPiotr Kubaj	vperm	0,0,1,10
1284*3a608692SPiotr Kubaj	.long	0x10420508
1285*3a608692SPiotr Kubaj	lvx	0,10,6
1286*3a608692SPiotr Kubaj	addi	10,10,16
1287*3a608692SPiotr Kubaj	bdnz	.Loop_ctr32_enc
1288*3a608692SPiotr Kubaj
1289*3a608692SPiotr Kubaj	vadduwm	4,4,11
1290*3a608692SPiotr Kubaj	vor	3,5,5
1291*3a608692SPiotr Kubaj	lvx	5,0,3
1292*3a608692SPiotr Kubaj	addi	3,3,16
1293*3a608692SPiotr Kubaj	subic.	5,5,1
1294*3a608692SPiotr Kubaj
1295*3a608692SPiotr Kubaj	vperm	1,1,0,10
1296*3a608692SPiotr Kubaj	.long	0x10420D08
1297*3a608692SPiotr Kubaj	lvx	1,10,6
1298*3a608692SPiotr Kubaj	vperm	3,3,5,6
1299*3a608692SPiotr Kubaj	li	10,16
1300*3a608692SPiotr Kubaj	vperm	1,0,1,10
1301*3a608692SPiotr Kubaj	lvx	0,0,6
1302*3a608692SPiotr Kubaj	vxor	3,3,1
1303*3a608692SPiotr Kubaj	.long	0x10421D09
1304*3a608692SPiotr Kubaj
1305*3a608692SPiotr Kubaj	lvx	1,10,6
1306*3a608692SPiotr Kubaj	addi	10,10,16
1307*3a608692SPiotr Kubaj	vperm	2,2,2,8
1308*3a608692SPiotr Kubaj	vsel	3,7,2,9
1309*3a608692SPiotr Kubaj	mtctr	9
1310*3a608692SPiotr Kubaj	vperm	0,0,1,10
1311*3a608692SPiotr Kubaj	vor	7,2,2
1312*3a608692SPiotr Kubaj	vxor	2,4,0
1313*3a608692SPiotr Kubaj	lvx	0,10,6
1314*3a608692SPiotr Kubaj	addi	10,10,16
1315*3a608692SPiotr Kubaj	stvx	3,0,4
1316*3a608692SPiotr Kubaj	addi	4,4,16
1317*3a608692SPiotr Kubaj	bne	.Loop_ctr32_enc
1318*3a608692SPiotr Kubaj
1319*3a608692SPiotr Kubaj	addi	4,4,-1
1320*3a608692SPiotr Kubaj	lvx	2,0,4
1321*3a608692SPiotr Kubaj	vsel	2,7,2,9
1322*3a608692SPiotr Kubaj	stvx	2,0,4
1323*3a608692SPiotr Kubaj
1324*3a608692SPiotr Kubaj	or	12,12,12
1325*3a608692SPiotr Kubaj	blr
1326*3a608692SPiotr Kubaj.long	0
1327*3a608692SPiotr Kubaj.byte	0,12,0x14,0,0,0,6,0
1328*3a608692SPiotr Kubaj.long	0
1329*3a608692SPiotr Kubaj.align	5
1330*3a608692SPiotr Kubaj_aesp8_ctr32_encrypt8x:
1331*3a608692SPiotr Kubaj	stdu	1,-448(1)
1332*3a608692SPiotr Kubaj	li	10,207
1333*3a608692SPiotr Kubaj	li	11,223
1334*3a608692SPiotr Kubaj	stvx	20,10,1
1335*3a608692SPiotr Kubaj	addi	10,10,32
1336*3a608692SPiotr Kubaj	stvx	21,11,1
1337*3a608692SPiotr Kubaj	addi	11,11,32
1338*3a608692SPiotr Kubaj	stvx	22,10,1
1339*3a608692SPiotr Kubaj	addi	10,10,32
1340*3a608692SPiotr Kubaj	stvx	23,11,1
1341*3a608692SPiotr Kubaj	addi	11,11,32
1342*3a608692SPiotr Kubaj	stvx	24,10,1
1343*3a608692SPiotr Kubaj	addi	10,10,32
1344*3a608692SPiotr Kubaj	stvx	25,11,1
1345*3a608692SPiotr Kubaj	addi	11,11,32
1346*3a608692SPiotr Kubaj	stvx	26,10,1
1347*3a608692SPiotr Kubaj	addi	10,10,32
1348*3a608692SPiotr Kubaj	stvx	27,11,1
1349*3a608692SPiotr Kubaj	addi	11,11,32
1350*3a608692SPiotr Kubaj	stvx	28,10,1
1351*3a608692SPiotr Kubaj	addi	10,10,32
1352*3a608692SPiotr Kubaj	stvx	29,11,1
1353*3a608692SPiotr Kubaj	addi	11,11,32
1354*3a608692SPiotr Kubaj	stvx	30,10,1
1355*3a608692SPiotr Kubaj	stvx	31,11,1
1356*3a608692SPiotr Kubaj	li	0,-1
1357*3a608692SPiotr Kubaj	stw	12,396(1)
1358*3a608692SPiotr Kubaj	li	8,0x10
1359*3a608692SPiotr Kubaj	std	26,400(1)
1360*3a608692SPiotr Kubaj	li	26,0x20
1361*3a608692SPiotr Kubaj	std	27,408(1)
1362*3a608692SPiotr Kubaj	li	27,0x30
1363*3a608692SPiotr Kubaj	std	28,416(1)
1364*3a608692SPiotr Kubaj	li	28,0x40
1365*3a608692SPiotr Kubaj	std	29,424(1)
1366*3a608692SPiotr Kubaj	li	29,0x50
1367*3a608692SPiotr Kubaj	std	30,432(1)
1368*3a608692SPiotr Kubaj	li	30,0x60
1369*3a608692SPiotr Kubaj	std	31,440(1)
1370*3a608692SPiotr Kubaj	li	31,0x70
1371*3a608692SPiotr Kubaj	or	0,0,0
1372*3a608692SPiotr Kubaj
1373*3a608692SPiotr Kubaj	subi	9,9,3
1374*3a608692SPiotr Kubaj
1375*3a608692SPiotr Kubaj	lvx	23,0,6
1376*3a608692SPiotr Kubaj	lvx	30,8,6
1377*3a608692SPiotr Kubaj	addi	6,6,0x20
1378*3a608692SPiotr Kubaj	lvx	31,0,6
1379*3a608692SPiotr Kubaj	vperm	23,23,30,10
1380*3a608692SPiotr Kubaj	addi	11,1,64+15
1381*3a608692SPiotr Kubaj	mtctr	9
1382*3a608692SPiotr Kubaj
1383*3a608692SPiotr Kubaj.Load_ctr32_enc_key:
1384*3a608692SPiotr Kubaj	vperm	24,30,31,10
1385*3a608692SPiotr Kubaj	lvx	30,8,6
1386*3a608692SPiotr Kubaj	addi	6,6,0x20
1387*3a608692SPiotr Kubaj	stvx	24,0,11
1388*3a608692SPiotr Kubaj	vperm	25,31,30,10
1389*3a608692SPiotr Kubaj	lvx	31,0,6
1390*3a608692SPiotr Kubaj	stvx	25,8,11
1391*3a608692SPiotr Kubaj	addi	11,11,0x20
1392*3a608692SPiotr Kubaj	bdnz	.Load_ctr32_enc_key
1393*3a608692SPiotr Kubaj
1394*3a608692SPiotr Kubaj	lvx	26,8,6
1395*3a608692SPiotr Kubaj	vperm	24,30,31,10
1396*3a608692SPiotr Kubaj	lvx	27,26,6
1397*3a608692SPiotr Kubaj	stvx	24,0,11
1398*3a608692SPiotr Kubaj	vperm	25,31,26,10
1399*3a608692SPiotr Kubaj	lvx	28,27,6
1400*3a608692SPiotr Kubaj	stvx	25,8,11
1401*3a608692SPiotr Kubaj	addi	11,1,64+15
1402*3a608692SPiotr Kubaj	vperm	26,26,27,10
1403*3a608692SPiotr Kubaj	lvx	29,28,6
1404*3a608692SPiotr Kubaj	vperm	27,27,28,10
1405*3a608692SPiotr Kubaj	lvx	30,29,6
1406*3a608692SPiotr Kubaj	vperm	28,28,29,10
1407*3a608692SPiotr Kubaj	lvx	31,30,6
1408*3a608692SPiotr Kubaj	vperm	29,29,30,10
1409*3a608692SPiotr Kubaj	lvx	15,31,6
1410*3a608692SPiotr Kubaj	vperm	30,30,31,10
1411*3a608692SPiotr Kubaj	lvx	24,0,11
1412*3a608692SPiotr Kubaj	vperm	31,31,15,10
1413*3a608692SPiotr Kubaj	lvx	25,8,11
1414*3a608692SPiotr Kubaj
1415*3a608692SPiotr Kubaj	vadduwm	7,11,11
1416*3a608692SPiotr Kubaj	subi	3,3,15
1417*3a608692SPiotr Kubaj	sldi	5,5,4
1418*3a608692SPiotr Kubaj
1419*3a608692SPiotr Kubaj	vadduwm	16,4,11
1420*3a608692SPiotr Kubaj	vadduwm	17,4,7
1421*3a608692SPiotr Kubaj	vxor	15,4,23
1422*3a608692SPiotr Kubaj
1423*3a608692SPiotr Kubaj	vadduwm	18,16,7
1424*3a608692SPiotr Kubaj	vxor	16,16,23
1425*3a608692SPiotr Kubaj
1426*3a608692SPiotr Kubaj	vadduwm	19,17,7
1427*3a608692SPiotr Kubaj	vxor	17,17,23
1428*3a608692SPiotr Kubaj
1429*3a608692SPiotr Kubaj	vadduwm	20,18,7
1430*3a608692SPiotr Kubaj	vxor	18,18,23
1431*3a608692SPiotr Kubaj
1432*3a608692SPiotr Kubaj	vadduwm	21,19,7
1433*3a608692SPiotr Kubaj	vxor	19,19,23
1434*3a608692SPiotr Kubaj	vadduwm	22,20,7
1435*3a608692SPiotr Kubaj	vxor	20,20,23
1436*3a608692SPiotr Kubaj	vadduwm	4,21,7
1437*3a608692SPiotr Kubaj	vxor	21,21,23
1438*3a608692SPiotr Kubaj	vxor	22,22,23
1439*3a608692SPiotr Kubaj
1440*3a608692SPiotr Kubaj	mtctr	9
1441*3a608692SPiotr Kubaj	b	.Loop_ctr32_enc8x
1442*3a608692SPiotr Kubaj.align	5
1443*3a608692SPiotr Kubaj.Loop_ctr32_enc8x:
1444*3a608692SPiotr Kubaj	.long	0x11EFC508
1445*3a608692SPiotr Kubaj	.long	0x1210C508
1446*3a608692SPiotr Kubaj	.long	0x1231C508
1447*3a608692SPiotr Kubaj	.long	0x1252C508
1448*3a608692SPiotr Kubaj	.long	0x1273C508
1449*3a608692SPiotr Kubaj	.long	0x1294C508
1450*3a608692SPiotr Kubaj	.long	0x12B5C508
1451*3a608692SPiotr Kubaj	.long	0x12D6C508
1452*3a608692SPiotr Kubaj.Loop_ctr32_enc8x_middle:
1453*3a608692SPiotr Kubaj	lvx	24,26,11
1454*3a608692SPiotr Kubaj	addi	11,11,0x20
1455*3a608692SPiotr Kubaj
1456*3a608692SPiotr Kubaj	.long	0x11EFCD08
1457*3a608692SPiotr Kubaj	.long	0x1210CD08
1458*3a608692SPiotr Kubaj	.long	0x1231CD08
1459*3a608692SPiotr Kubaj	.long	0x1252CD08
1460*3a608692SPiotr Kubaj	.long	0x1273CD08
1461*3a608692SPiotr Kubaj	.long	0x1294CD08
1462*3a608692SPiotr Kubaj	.long	0x12B5CD08
1463*3a608692SPiotr Kubaj	.long	0x12D6CD08
1464*3a608692SPiotr Kubaj	lvx	25,8,11
1465*3a608692SPiotr Kubaj	bdnz	.Loop_ctr32_enc8x
1466*3a608692SPiotr Kubaj
1467*3a608692SPiotr Kubaj	subic	11,5,256
1468*3a608692SPiotr Kubaj	.long	0x11EFC508
1469*3a608692SPiotr Kubaj	.long	0x1210C508
1470*3a608692SPiotr Kubaj	.long	0x1231C508
1471*3a608692SPiotr Kubaj	.long	0x1252C508
1472*3a608692SPiotr Kubaj	.long	0x1273C508
1473*3a608692SPiotr Kubaj	.long	0x1294C508
1474*3a608692SPiotr Kubaj	.long	0x12B5C508
1475*3a608692SPiotr Kubaj	.long	0x12D6C508
1476*3a608692SPiotr Kubaj
1477*3a608692SPiotr Kubaj	subfe	0,0,0
1478*3a608692SPiotr Kubaj	.long	0x11EFCD08
1479*3a608692SPiotr Kubaj	.long	0x1210CD08
1480*3a608692SPiotr Kubaj	.long	0x1231CD08
1481*3a608692SPiotr Kubaj	.long	0x1252CD08
1482*3a608692SPiotr Kubaj	.long	0x1273CD08
1483*3a608692SPiotr Kubaj	.long	0x1294CD08
1484*3a608692SPiotr Kubaj	.long	0x12B5CD08
1485*3a608692SPiotr Kubaj	.long	0x12D6CD08
1486*3a608692SPiotr Kubaj
1487*3a608692SPiotr Kubaj	and	0,0,11
1488*3a608692SPiotr Kubaj	addi	11,1,64+15
1489*3a608692SPiotr Kubaj	.long	0x11EFD508
1490*3a608692SPiotr Kubaj	.long	0x1210D508
1491*3a608692SPiotr Kubaj	.long	0x1231D508
1492*3a608692SPiotr Kubaj	.long	0x1252D508
1493*3a608692SPiotr Kubaj	.long	0x1273D508
1494*3a608692SPiotr Kubaj	.long	0x1294D508
1495*3a608692SPiotr Kubaj	.long	0x12B5D508
1496*3a608692SPiotr Kubaj	.long	0x12D6D508
1497*3a608692SPiotr Kubaj	lvx	24,0,11
1498*3a608692SPiotr Kubaj
1499*3a608692SPiotr Kubaj	subic	5,5,129
1500*3a608692SPiotr Kubaj	.long	0x11EFDD08
1501*3a608692SPiotr Kubaj	addi	5,5,1
1502*3a608692SPiotr Kubaj	.long	0x1210DD08
1503*3a608692SPiotr Kubaj	.long	0x1231DD08
1504*3a608692SPiotr Kubaj	.long	0x1252DD08
1505*3a608692SPiotr Kubaj	.long	0x1273DD08
1506*3a608692SPiotr Kubaj	.long	0x1294DD08
1507*3a608692SPiotr Kubaj	.long	0x12B5DD08
1508*3a608692SPiotr Kubaj	.long	0x12D6DD08
1509*3a608692SPiotr Kubaj	lvx	25,8,11
1510*3a608692SPiotr Kubaj
1511*3a608692SPiotr Kubaj	.long	0x11EFE508
1512*3a608692SPiotr Kubaj	.long	0x7C001E99
1513*3a608692SPiotr Kubaj	.long	0x1210E508
1514*3a608692SPiotr Kubaj	.long	0x7C281E99
1515*3a608692SPiotr Kubaj	.long	0x1231E508
1516*3a608692SPiotr Kubaj	.long	0x7C5A1E99
1517*3a608692SPiotr Kubaj	.long	0x1252E508
1518*3a608692SPiotr Kubaj	.long	0x7C7B1E99
1519*3a608692SPiotr Kubaj	.long	0x1273E508
1520*3a608692SPiotr Kubaj	.long	0x7D5C1E99
1521*3a608692SPiotr Kubaj	.long	0x1294E508
1522*3a608692SPiotr Kubaj	.long	0x7D9D1E99
1523*3a608692SPiotr Kubaj	.long	0x12B5E508
1524*3a608692SPiotr Kubaj	.long	0x7DBE1E99
1525*3a608692SPiotr Kubaj	.long	0x12D6E508
1526*3a608692SPiotr Kubaj	.long	0x7DDF1E99
1527*3a608692SPiotr Kubaj	addi	3,3,0x80
1528*3a608692SPiotr Kubaj
1529*3a608692SPiotr Kubaj	.long	0x11EFED08
1530*3a608692SPiotr Kubaj
1531*3a608692SPiotr Kubaj	.long	0x1210ED08
1532*3a608692SPiotr Kubaj
1533*3a608692SPiotr Kubaj	.long	0x1231ED08
1534*3a608692SPiotr Kubaj
1535*3a608692SPiotr Kubaj	.long	0x1252ED08
1536*3a608692SPiotr Kubaj
1537*3a608692SPiotr Kubaj	.long	0x1273ED08
1538*3a608692SPiotr Kubaj
1539*3a608692SPiotr Kubaj	.long	0x1294ED08
1540*3a608692SPiotr Kubaj
1541*3a608692SPiotr Kubaj	.long	0x12B5ED08
1542*3a608692SPiotr Kubaj
1543*3a608692SPiotr Kubaj	.long	0x12D6ED08
1544*3a608692SPiotr Kubaj
1545*3a608692SPiotr Kubaj
1546*3a608692SPiotr Kubaj	add	3,3,0
1547*3a608692SPiotr Kubaj
1548*3a608692SPiotr Kubaj
1549*3a608692SPiotr Kubaj
1550*3a608692SPiotr Kubaj	subfe.	0,0,0
1551*3a608692SPiotr Kubaj	.long	0x11EFF508
1552*3a608692SPiotr Kubaj	vxor	0,0,31
1553*3a608692SPiotr Kubaj	.long	0x1210F508
1554*3a608692SPiotr Kubaj	vxor	1,1,31
1555*3a608692SPiotr Kubaj	.long	0x1231F508
1556*3a608692SPiotr Kubaj	vxor	2,2,31
1557*3a608692SPiotr Kubaj	.long	0x1252F508
1558*3a608692SPiotr Kubaj	vxor	3,3,31
1559*3a608692SPiotr Kubaj	.long	0x1273F508
1560*3a608692SPiotr Kubaj	vxor	10,10,31
1561*3a608692SPiotr Kubaj	.long	0x1294F508
1562*3a608692SPiotr Kubaj	vxor	12,12,31
1563*3a608692SPiotr Kubaj	.long	0x12B5F508
1564*3a608692SPiotr Kubaj	vxor	13,13,31
1565*3a608692SPiotr Kubaj	.long	0x12D6F508
1566*3a608692SPiotr Kubaj	vxor	14,14,31
1567*3a608692SPiotr Kubaj
1568*3a608692SPiotr Kubaj	bne	.Lctr32_enc8x_break
1569*3a608692SPiotr Kubaj
1570*3a608692SPiotr Kubaj	.long	0x100F0509
1571*3a608692SPiotr Kubaj	.long	0x10300D09
1572*3a608692SPiotr Kubaj	vadduwm	16,4,11
1573*3a608692SPiotr Kubaj	.long	0x10511509
1574*3a608692SPiotr Kubaj	vadduwm	17,4,7
1575*3a608692SPiotr Kubaj	vxor	15,4,23
1576*3a608692SPiotr Kubaj	.long	0x10721D09
1577*3a608692SPiotr Kubaj	vadduwm	18,16,7
1578*3a608692SPiotr Kubaj	vxor	16,16,23
1579*3a608692SPiotr Kubaj	.long	0x11535509
1580*3a608692SPiotr Kubaj	vadduwm	19,17,7
1581*3a608692SPiotr Kubaj	vxor	17,17,23
1582*3a608692SPiotr Kubaj	.long	0x11946509
1583*3a608692SPiotr Kubaj	vadduwm	20,18,7
1584*3a608692SPiotr Kubaj	vxor	18,18,23
1585*3a608692SPiotr Kubaj	.long	0x11B56D09
1586*3a608692SPiotr Kubaj	vadduwm	21,19,7
1587*3a608692SPiotr Kubaj	vxor	19,19,23
1588*3a608692SPiotr Kubaj	.long	0x11D67509
1589*3a608692SPiotr Kubaj	vadduwm	22,20,7
1590*3a608692SPiotr Kubaj	vxor	20,20,23
1591*3a608692SPiotr Kubaj
1592*3a608692SPiotr Kubaj	vadduwm	4,21,7
1593*3a608692SPiotr Kubaj	vxor	21,21,23
1594*3a608692SPiotr Kubaj
1595*3a608692SPiotr Kubaj	vxor	22,22,23
1596*3a608692SPiotr Kubaj	mtctr	9
1597*3a608692SPiotr Kubaj
1598*3a608692SPiotr Kubaj	.long	0x11EFC508
1599*3a608692SPiotr Kubaj	.long	0x7C002799
1600*3a608692SPiotr Kubaj
1601*3a608692SPiotr Kubaj	.long	0x1210C508
1602*3a608692SPiotr Kubaj	.long	0x7C282799
1603*3a608692SPiotr Kubaj
1604*3a608692SPiotr Kubaj	.long	0x1231C508
1605*3a608692SPiotr Kubaj	.long	0x7C5A2799
1606*3a608692SPiotr Kubaj
1607*3a608692SPiotr Kubaj	.long	0x1252C508
1608*3a608692SPiotr Kubaj	.long	0x7C7B2799
1609*3a608692SPiotr Kubaj
1610*3a608692SPiotr Kubaj	.long	0x1273C508
1611*3a608692SPiotr Kubaj	.long	0x7D5C2799
1612*3a608692SPiotr Kubaj
1613*3a608692SPiotr Kubaj	.long	0x1294C508
1614*3a608692SPiotr Kubaj	.long	0x7D9D2799
1615*3a608692SPiotr Kubaj
1616*3a608692SPiotr Kubaj	.long	0x12B5C508
1617*3a608692SPiotr Kubaj	.long	0x7DBE2799
1618*3a608692SPiotr Kubaj	.long	0x12D6C508
1619*3a608692SPiotr Kubaj	.long	0x7DDF2799
1620*3a608692SPiotr Kubaj	addi	4,4,0x80
1621*3a608692SPiotr Kubaj
1622*3a608692SPiotr Kubaj	b	.Loop_ctr32_enc8x_middle
1623*3a608692SPiotr Kubaj
1624*3a608692SPiotr Kubaj.align	5
1625*3a608692SPiotr Kubaj.Lctr32_enc8x_break:
1626*3a608692SPiotr Kubaj	cmpwi	5,-0x60
1627*3a608692SPiotr Kubaj	blt	.Lctr32_enc8x_one
1628*3a608692SPiotr Kubaj	nop
1629*3a608692SPiotr Kubaj	beq	.Lctr32_enc8x_two
1630*3a608692SPiotr Kubaj	cmpwi	5,-0x40
1631*3a608692SPiotr Kubaj	blt	.Lctr32_enc8x_three
1632*3a608692SPiotr Kubaj	nop
1633*3a608692SPiotr Kubaj	beq	.Lctr32_enc8x_four
1634*3a608692SPiotr Kubaj	cmpwi	5,-0x20
1635*3a608692SPiotr Kubaj	blt	.Lctr32_enc8x_five
1636*3a608692SPiotr Kubaj	nop
1637*3a608692SPiotr Kubaj	beq	.Lctr32_enc8x_six
1638*3a608692SPiotr Kubaj	cmpwi	5,0x00
1639*3a608692SPiotr Kubaj	blt	.Lctr32_enc8x_seven
1640*3a608692SPiotr Kubaj
1641*3a608692SPiotr Kubaj.Lctr32_enc8x_eight:
1642*3a608692SPiotr Kubaj	.long	0x11EF0509
1643*3a608692SPiotr Kubaj	.long	0x12100D09
1644*3a608692SPiotr Kubaj	.long	0x12311509
1645*3a608692SPiotr Kubaj	.long	0x12521D09
1646*3a608692SPiotr Kubaj	.long	0x12735509
1647*3a608692SPiotr Kubaj	.long	0x12946509
1648*3a608692SPiotr Kubaj	.long	0x12B56D09
1649*3a608692SPiotr Kubaj	.long	0x12D67509
1650*3a608692SPiotr Kubaj
1651*3a608692SPiotr Kubaj
1652*3a608692SPiotr Kubaj
1653*3a608692SPiotr Kubaj	.long	0x7DE02799
1654*3a608692SPiotr Kubaj
1655*3a608692SPiotr Kubaj	.long	0x7E082799
1656*3a608692SPiotr Kubaj
1657*3a608692SPiotr Kubaj	.long	0x7E3A2799
1658*3a608692SPiotr Kubaj
1659*3a608692SPiotr Kubaj	.long	0x7E5B2799
1660*3a608692SPiotr Kubaj
1661*3a608692SPiotr Kubaj	.long	0x7E7C2799
1662*3a608692SPiotr Kubaj
1663*3a608692SPiotr Kubaj	.long	0x7E9D2799
1664*3a608692SPiotr Kubaj
1665*3a608692SPiotr Kubaj	.long	0x7EBE2799
1666*3a608692SPiotr Kubaj	.long	0x7EDF2799
1667*3a608692SPiotr Kubaj	addi	4,4,0x80
1668*3a608692SPiotr Kubaj	b	.Lctr32_enc8x_done
1669*3a608692SPiotr Kubaj
1670*3a608692SPiotr Kubaj.align	5
1671*3a608692SPiotr Kubaj.Lctr32_enc8x_seven:
1672*3a608692SPiotr Kubaj	.long	0x11EF0D09
1673*3a608692SPiotr Kubaj	.long	0x12101509
1674*3a608692SPiotr Kubaj	.long	0x12311D09
1675*3a608692SPiotr Kubaj	.long	0x12525509
1676*3a608692SPiotr Kubaj	.long	0x12736509
1677*3a608692SPiotr Kubaj	.long	0x12946D09
1678*3a608692SPiotr Kubaj	.long	0x12B57509
1679*3a608692SPiotr Kubaj
1680*3a608692SPiotr Kubaj
1681*3a608692SPiotr Kubaj
1682*3a608692SPiotr Kubaj	.long	0x7DE02799
1683*3a608692SPiotr Kubaj
1684*3a608692SPiotr Kubaj	.long	0x7E082799
1685*3a608692SPiotr Kubaj
1686*3a608692SPiotr Kubaj	.long	0x7E3A2799
1687*3a608692SPiotr Kubaj
1688*3a608692SPiotr Kubaj	.long	0x7E5B2799
1689*3a608692SPiotr Kubaj
1690*3a608692SPiotr Kubaj	.long	0x7E7C2799
1691*3a608692SPiotr Kubaj
1692*3a608692SPiotr Kubaj	.long	0x7E9D2799
1693*3a608692SPiotr Kubaj	.long	0x7EBE2799
1694*3a608692SPiotr Kubaj	addi	4,4,0x70
1695*3a608692SPiotr Kubaj	b	.Lctr32_enc8x_done
1696*3a608692SPiotr Kubaj
1697*3a608692SPiotr Kubaj.align	5
1698*3a608692SPiotr Kubaj.Lctr32_enc8x_six:
1699*3a608692SPiotr Kubaj	.long	0x11EF1509
1700*3a608692SPiotr Kubaj	.long	0x12101D09
1701*3a608692SPiotr Kubaj	.long	0x12315509
1702*3a608692SPiotr Kubaj	.long	0x12526509
1703*3a608692SPiotr Kubaj	.long	0x12736D09
1704*3a608692SPiotr Kubaj	.long	0x12947509
1705*3a608692SPiotr Kubaj
1706*3a608692SPiotr Kubaj
1707*3a608692SPiotr Kubaj
1708*3a608692SPiotr Kubaj	.long	0x7DE02799
1709*3a608692SPiotr Kubaj
1710*3a608692SPiotr Kubaj	.long	0x7E082799
1711*3a608692SPiotr Kubaj
1712*3a608692SPiotr Kubaj	.long	0x7E3A2799
1713*3a608692SPiotr Kubaj
1714*3a608692SPiotr Kubaj	.long	0x7E5B2799
1715*3a608692SPiotr Kubaj
1716*3a608692SPiotr Kubaj	.long	0x7E7C2799
1717*3a608692SPiotr Kubaj	.long	0x7E9D2799
1718*3a608692SPiotr Kubaj	addi	4,4,0x60
1719*3a608692SPiotr Kubaj	b	.Lctr32_enc8x_done
1720*3a608692SPiotr Kubaj
1721*3a608692SPiotr Kubaj.align	5
1722*3a608692SPiotr Kubaj.Lctr32_enc8x_five:
1723*3a608692SPiotr Kubaj	.long	0x11EF1D09
1724*3a608692SPiotr Kubaj	.long	0x12105509
1725*3a608692SPiotr Kubaj	.long	0x12316509
1726*3a608692SPiotr Kubaj	.long	0x12526D09
1727*3a608692SPiotr Kubaj	.long	0x12737509
1728*3a608692SPiotr Kubaj
1729*3a608692SPiotr Kubaj
1730*3a608692SPiotr Kubaj
1731*3a608692SPiotr Kubaj	.long	0x7DE02799
1732*3a608692SPiotr Kubaj
1733*3a608692SPiotr Kubaj	.long	0x7E082799
1734*3a608692SPiotr Kubaj
1735*3a608692SPiotr Kubaj	.long	0x7E3A2799
1736*3a608692SPiotr Kubaj
1737*3a608692SPiotr Kubaj	.long	0x7E5B2799
1738*3a608692SPiotr Kubaj	.long	0x7E7C2799
1739*3a608692SPiotr Kubaj	addi	4,4,0x50
1740*3a608692SPiotr Kubaj	b	.Lctr32_enc8x_done
1741*3a608692SPiotr Kubaj
1742*3a608692SPiotr Kubaj.align	5
1743*3a608692SPiotr Kubaj.Lctr32_enc8x_four:
1744*3a608692SPiotr Kubaj	.long	0x11EF5509
1745*3a608692SPiotr Kubaj	.long	0x12106509
1746*3a608692SPiotr Kubaj	.long	0x12316D09
1747*3a608692SPiotr Kubaj	.long	0x12527509
1748*3a608692SPiotr Kubaj
1749*3a608692SPiotr Kubaj
1750*3a608692SPiotr Kubaj
1751*3a608692SPiotr Kubaj	.long	0x7DE02799
1752*3a608692SPiotr Kubaj
1753*3a608692SPiotr Kubaj	.long	0x7E082799
1754*3a608692SPiotr Kubaj
1755*3a608692SPiotr Kubaj	.long	0x7E3A2799
1756*3a608692SPiotr Kubaj	.long	0x7E5B2799
1757*3a608692SPiotr Kubaj	addi	4,4,0x40
1758*3a608692SPiotr Kubaj	b	.Lctr32_enc8x_done
1759*3a608692SPiotr Kubaj
1760*3a608692SPiotr Kubaj.align	5
1761*3a608692SPiotr Kubaj.Lctr32_enc8x_three:
1762*3a608692SPiotr Kubaj	.long	0x11EF6509
1763*3a608692SPiotr Kubaj	.long	0x12106D09
1764*3a608692SPiotr Kubaj	.long	0x12317509
1765*3a608692SPiotr Kubaj
1766*3a608692SPiotr Kubaj
1767*3a608692SPiotr Kubaj
1768*3a608692SPiotr Kubaj	.long	0x7DE02799
1769*3a608692SPiotr Kubaj
1770*3a608692SPiotr Kubaj	.long	0x7E082799
1771*3a608692SPiotr Kubaj	.long	0x7E3A2799
1772*3a608692SPiotr Kubaj	addi	4,4,0x30
1773*3a608692SPiotr Kubaj	b	.Lctr32_enc8x_done
1774*3a608692SPiotr Kubaj
1775*3a608692SPiotr Kubaj.align	5
1776*3a608692SPiotr Kubaj.Lctr32_enc8x_two:
1777*3a608692SPiotr Kubaj	.long	0x11EF6D09
1778*3a608692SPiotr Kubaj	.long	0x12107509
1779*3a608692SPiotr Kubaj
1780*3a608692SPiotr Kubaj
1781*3a608692SPiotr Kubaj
1782*3a608692SPiotr Kubaj	.long	0x7DE02799
1783*3a608692SPiotr Kubaj	.long	0x7E082799
1784*3a608692SPiotr Kubaj	addi	4,4,0x20
1785*3a608692SPiotr Kubaj	b	.Lctr32_enc8x_done
1786*3a608692SPiotr Kubaj
1787*3a608692SPiotr Kubaj.align	5
1788*3a608692SPiotr Kubaj.Lctr32_enc8x_one:
1789*3a608692SPiotr Kubaj	.long	0x11EF7509
1790*3a608692SPiotr Kubaj
1791*3a608692SPiotr Kubaj
1792*3a608692SPiotr Kubaj	.long	0x7DE02799
1793*3a608692SPiotr Kubaj	addi	4,4,0x10
1794*3a608692SPiotr Kubaj
1795*3a608692SPiotr Kubaj.Lctr32_enc8x_done:
1796*3a608692SPiotr Kubaj	li	10,79
1797*3a608692SPiotr Kubaj	li	11,95
1798*3a608692SPiotr Kubaj	stvx	6,10,1
1799*3a608692SPiotr Kubaj	addi	10,10,32
1800*3a608692SPiotr Kubaj	stvx	6,11,1
1801*3a608692SPiotr Kubaj	addi	11,11,32
1802*3a608692SPiotr Kubaj	stvx	6,10,1
1803*3a608692SPiotr Kubaj	addi	10,10,32
1804*3a608692SPiotr Kubaj	stvx	6,11,1
1805*3a608692SPiotr Kubaj	addi	11,11,32
1806*3a608692SPiotr Kubaj	stvx	6,10,1
1807*3a608692SPiotr Kubaj	addi	10,10,32
1808*3a608692SPiotr Kubaj	stvx	6,11,1
1809*3a608692SPiotr Kubaj	addi	11,11,32
1810*3a608692SPiotr Kubaj	stvx	6,10,1
1811*3a608692SPiotr Kubaj	addi	10,10,32
1812*3a608692SPiotr Kubaj	stvx	6,11,1
1813*3a608692SPiotr Kubaj	addi	11,11,32
1814*3a608692SPiotr Kubaj
1815*3a608692SPiotr Kubaj	or	12,12,12
1816*3a608692SPiotr Kubaj	lvx	20,10,1
1817*3a608692SPiotr Kubaj	addi	10,10,32
1818*3a608692SPiotr Kubaj	lvx	21,11,1
1819*3a608692SPiotr Kubaj	addi	11,11,32
1820*3a608692SPiotr Kubaj	lvx	22,10,1
1821*3a608692SPiotr Kubaj	addi	10,10,32
1822*3a608692SPiotr Kubaj	lvx	23,11,1
1823*3a608692SPiotr Kubaj	addi	11,11,32
1824*3a608692SPiotr Kubaj	lvx	24,10,1
1825*3a608692SPiotr Kubaj	addi	10,10,32
1826*3a608692SPiotr Kubaj	lvx	25,11,1
1827*3a608692SPiotr Kubaj	addi	11,11,32
1828*3a608692SPiotr Kubaj	lvx	26,10,1
1829*3a608692SPiotr Kubaj	addi	10,10,32
1830*3a608692SPiotr Kubaj	lvx	27,11,1
1831*3a608692SPiotr Kubaj	addi	11,11,32
1832*3a608692SPiotr Kubaj	lvx	28,10,1
1833*3a608692SPiotr Kubaj	addi	10,10,32
1834*3a608692SPiotr Kubaj	lvx	29,11,1
1835*3a608692SPiotr Kubaj	addi	11,11,32
1836*3a608692SPiotr Kubaj	lvx	30,10,1
1837*3a608692SPiotr Kubaj	lvx	31,11,1
1838*3a608692SPiotr Kubaj	ld	26,400(1)
1839*3a608692SPiotr Kubaj	ld	27,408(1)
1840*3a608692SPiotr Kubaj	ld	28,416(1)
1841*3a608692SPiotr Kubaj	ld	29,424(1)
1842*3a608692SPiotr Kubaj	ld	30,432(1)
1843*3a608692SPiotr Kubaj	ld	31,440(1)
1844*3a608692SPiotr Kubaj	addi	1,1,448
1845*3a608692SPiotr Kubaj	blr
1846*3a608692SPiotr Kubaj.long	0
1847*3a608692SPiotr Kubaj.byte	0,12,0x04,0,0x80,6,6,0
1848*3a608692SPiotr Kubaj.long	0
1849*3a608692SPiotr Kubaj.size	aes_p8_ctr32_encrypt_blocks,.-aes_p8_ctr32_encrypt_blocks
1850*3a608692SPiotr Kubaj.globl	aes_p8_xts_encrypt
1851*3a608692SPiotr Kubaj.type	aes_p8_xts_encrypt,@function
1852*3a608692SPiotr Kubaj.align	5
1853*3a608692SPiotr Kubajaes_p8_xts_encrypt:
1854*3a608692SPiotr Kubaj.localentry	aes_p8_xts_encrypt,0
1855*3a608692SPiotr Kubaj
1856*3a608692SPiotr Kubaj	mr	10,3
1857*3a608692SPiotr Kubaj	li	3,-1
1858*3a608692SPiotr Kubaj	cmpldi	5,16
1859*3a608692SPiotr Kubaj	.long	0x4dc00020
1860*3a608692SPiotr Kubaj
1861*3a608692SPiotr Kubaj	lis	0,0xfff0
1862*3a608692SPiotr Kubaj	li	12,-1
1863*3a608692SPiotr Kubaj	li	11,0
1864*3a608692SPiotr Kubaj	or	0,0,0
1865*3a608692SPiotr Kubaj
1866*3a608692SPiotr Kubaj	vspltisb	9,0x07
1867*3a608692SPiotr Kubaj
1868*3a608692SPiotr Kubaj
1869*3a608692SPiotr Kubaj
1870*3a608692SPiotr Kubaj
1871*3a608692SPiotr Kubaj	li	3,15
1872*3a608692SPiotr Kubaj	lvx	8,0,8
1873*3a608692SPiotr Kubaj	lvsl	5,0,8
1874*3a608692SPiotr Kubaj	lvx	4,3,8
1875*3a608692SPiotr Kubaj
1876*3a608692SPiotr Kubaj	vperm	8,8,4,5
1877*3a608692SPiotr Kubaj
1878*3a608692SPiotr Kubaj	neg	11,10
1879*3a608692SPiotr Kubaj	lvsr	5,0,11
1880*3a608692SPiotr Kubaj	lvx	2,0,10
1881*3a608692SPiotr Kubaj	addi	10,10,15
1882*3a608692SPiotr Kubaj
1883*3a608692SPiotr Kubaj
1884*3a608692SPiotr Kubaj	cmpldi	7,0
1885*3a608692SPiotr Kubaj	beq	.Lxts_enc_no_key2
1886*3a608692SPiotr Kubaj
1887*3a608692SPiotr Kubaj	lvsl	7,0,7
1888*3a608692SPiotr Kubaj	lwz	9,240(7)
1889*3a608692SPiotr Kubaj	srwi	9,9,1
1890*3a608692SPiotr Kubaj	subi	9,9,1
1891*3a608692SPiotr Kubaj	li	3,16
1892*3a608692SPiotr Kubaj
1893*3a608692SPiotr Kubaj	lvx	0,0,7
1894*3a608692SPiotr Kubaj	lvx	1,3,7
1895*3a608692SPiotr Kubaj	addi	3,3,16
1896*3a608692SPiotr Kubaj	vperm	0,0,1,7
1897*3a608692SPiotr Kubaj	vxor	8,8,0
1898*3a608692SPiotr Kubaj	lvx	0,3,7
1899*3a608692SPiotr Kubaj	addi	3,3,16
1900*3a608692SPiotr Kubaj	mtctr	9
1901*3a608692SPiotr Kubaj
1902*3a608692SPiotr Kubaj.Ltweak_xts_enc:
1903*3a608692SPiotr Kubaj	vperm	1,1,0,7
1904*3a608692SPiotr Kubaj	.long	0x11080D08
1905*3a608692SPiotr Kubaj	lvx	1,3,7
1906*3a608692SPiotr Kubaj	addi	3,3,16
1907*3a608692SPiotr Kubaj	vperm	0,0,1,7
1908*3a608692SPiotr Kubaj	.long	0x11080508
1909*3a608692SPiotr Kubaj	lvx	0,3,7
1910*3a608692SPiotr Kubaj	addi	3,3,16
1911*3a608692SPiotr Kubaj	bdnz	.Ltweak_xts_enc
1912*3a608692SPiotr Kubaj
1913*3a608692SPiotr Kubaj	vperm	1,1,0,7
1914*3a608692SPiotr Kubaj	.long	0x11080D08
1915*3a608692SPiotr Kubaj	lvx	1,3,7
1916*3a608692SPiotr Kubaj	vperm	0,0,1,7
1917*3a608692SPiotr Kubaj	.long	0x11080509
1918*3a608692SPiotr Kubaj
1919*3a608692SPiotr Kubaj	li	8,0
1920*3a608692SPiotr Kubaj	b	.Lxts_enc
1921*3a608692SPiotr Kubaj
1922*3a608692SPiotr Kubaj.Lxts_enc_no_key2:
1923*3a608692SPiotr Kubaj	li	3,-16
1924*3a608692SPiotr Kubaj	and	5,5,3
1925*3a608692SPiotr Kubaj
1926*3a608692SPiotr Kubaj
1927*3a608692SPiotr Kubaj.Lxts_enc:
1928*3a608692SPiotr Kubaj	lvx	4,0,10
1929*3a608692SPiotr Kubaj	addi	10,10,16
1930*3a608692SPiotr Kubaj
1931*3a608692SPiotr Kubaj	lvsl	7,0,6
1932*3a608692SPiotr Kubaj	lwz	9,240(6)
1933*3a608692SPiotr Kubaj	srwi	9,9,1
1934*3a608692SPiotr Kubaj	subi	9,9,1
1935*3a608692SPiotr Kubaj	li	3,16
1936*3a608692SPiotr Kubaj
1937*3a608692SPiotr Kubaj	vslb	10,9,9
1938*3a608692SPiotr Kubaj	vor	10,10,9
1939*3a608692SPiotr Kubaj	vspltisb	11,1
1940*3a608692SPiotr Kubaj	vsldoi	10,10,11,15
1941*3a608692SPiotr Kubaj
1942*3a608692SPiotr Kubaj	cmpldi	5,96
1943*3a608692SPiotr Kubaj	bge	_aesp8_xts_encrypt6x
1944*3a608692SPiotr Kubaj
1945*3a608692SPiotr Kubaj	andi.	7,5,15
1946*3a608692SPiotr Kubaj	subic	0,5,32
1947*3a608692SPiotr Kubaj	subi	7,7,16
1948*3a608692SPiotr Kubaj	subfe	0,0,0
1949*3a608692SPiotr Kubaj	and	0,0,7
1950*3a608692SPiotr Kubaj	add	10,10,0
1951*3a608692SPiotr Kubaj
1952*3a608692SPiotr Kubaj	lvx	0,0,6
1953*3a608692SPiotr Kubaj	lvx	1,3,6
1954*3a608692SPiotr Kubaj	addi	3,3,16
1955*3a608692SPiotr Kubaj	vperm	2,2,4,5
1956*3a608692SPiotr Kubaj	vperm	0,0,1,7
1957*3a608692SPiotr Kubaj	vxor	2,2,8
1958*3a608692SPiotr Kubaj	vxor	2,2,0
1959*3a608692SPiotr Kubaj	lvx	0,3,6
1960*3a608692SPiotr Kubaj	addi	3,3,16
1961*3a608692SPiotr Kubaj	mtctr	9
1962*3a608692SPiotr Kubaj	b	.Loop_xts_enc
1963*3a608692SPiotr Kubaj
1964*3a608692SPiotr Kubaj.align	5
1965*3a608692SPiotr Kubaj.Loop_xts_enc:
1966*3a608692SPiotr Kubaj	vperm	1,1,0,7
1967*3a608692SPiotr Kubaj	.long	0x10420D08
1968*3a608692SPiotr Kubaj	lvx	1,3,6
1969*3a608692SPiotr Kubaj	addi	3,3,16
1970*3a608692SPiotr Kubaj	vperm	0,0,1,7
1971*3a608692SPiotr Kubaj	.long	0x10420508
1972*3a608692SPiotr Kubaj	lvx	0,3,6
1973*3a608692SPiotr Kubaj	addi	3,3,16
1974*3a608692SPiotr Kubaj	bdnz	.Loop_xts_enc
1975*3a608692SPiotr Kubaj
1976*3a608692SPiotr Kubaj	vperm	1,1,0,7
1977*3a608692SPiotr Kubaj	.long	0x10420D08
1978*3a608692SPiotr Kubaj	lvx	1,3,6
1979*3a608692SPiotr Kubaj	li	3,16
1980*3a608692SPiotr Kubaj	vperm	0,0,1,7
1981*3a608692SPiotr Kubaj	vxor	0,0,8
1982*3a608692SPiotr Kubaj	.long	0x10620509
1983*3a608692SPiotr Kubaj
1984*3a608692SPiotr Kubaj
1985*3a608692SPiotr Kubaj	nop
1986*3a608692SPiotr Kubaj
1987*3a608692SPiotr Kubaj	.long	0x7C602799
1988*3a608692SPiotr Kubaj	addi	4,4,16
1989*3a608692SPiotr Kubaj
1990*3a608692SPiotr Kubaj	subic.	5,5,16
1991*3a608692SPiotr Kubaj	beq	.Lxts_enc_done
1992*3a608692SPiotr Kubaj
1993*3a608692SPiotr Kubaj	vor	2,4,4
1994*3a608692SPiotr Kubaj	lvx	4,0,10
1995*3a608692SPiotr Kubaj	addi	10,10,16
1996*3a608692SPiotr Kubaj	lvx	0,0,6
1997*3a608692SPiotr Kubaj	lvx	1,3,6
1998*3a608692SPiotr Kubaj	addi	3,3,16
1999*3a608692SPiotr Kubaj
2000*3a608692SPiotr Kubaj	subic	0,5,32
2001*3a608692SPiotr Kubaj	subfe	0,0,0
2002*3a608692SPiotr Kubaj	and	0,0,7
2003*3a608692SPiotr Kubaj	add	10,10,0
2004*3a608692SPiotr Kubaj
2005*3a608692SPiotr Kubaj	vsrab	11,8,9
2006*3a608692SPiotr Kubaj	vaddubm	8,8,8
2007*3a608692SPiotr Kubaj	vsldoi	11,11,11,15
2008*3a608692SPiotr Kubaj	vand	11,11,10
2009*3a608692SPiotr Kubaj	vxor	8,8,11
2010*3a608692SPiotr Kubaj
2011*3a608692SPiotr Kubaj	vperm	2,2,4,5
2012*3a608692SPiotr Kubaj	vperm	0,0,1,7
2013*3a608692SPiotr Kubaj	vxor	2,2,8
2014*3a608692SPiotr Kubaj	vxor	3,3,0
2015*3a608692SPiotr Kubaj	vxor	2,2,0
2016*3a608692SPiotr Kubaj	lvx	0,3,6
2017*3a608692SPiotr Kubaj	addi	3,3,16
2018*3a608692SPiotr Kubaj
2019*3a608692SPiotr Kubaj	mtctr	9
2020*3a608692SPiotr Kubaj	cmpldi	5,16
2021*3a608692SPiotr Kubaj	bge	.Loop_xts_enc
2022*3a608692SPiotr Kubaj
2023*3a608692SPiotr Kubaj	vxor	3,3,8
2024*3a608692SPiotr Kubaj	lvsr	5,0,5
2025*3a608692SPiotr Kubaj	vxor	4,4,4
2026*3a608692SPiotr Kubaj	vspltisb	11,-1
2027*3a608692SPiotr Kubaj	vperm	4,4,11,5
2028*3a608692SPiotr Kubaj	vsel	2,2,3,4
2029*3a608692SPiotr Kubaj
2030*3a608692SPiotr Kubaj	subi	11,4,17
2031*3a608692SPiotr Kubaj	subi	4,4,16
2032*3a608692SPiotr Kubaj	mtctr	5
2033*3a608692SPiotr Kubaj	li	5,16
2034*3a608692SPiotr Kubaj.Loop_xts_enc_steal:
2035*3a608692SPiotr Kubaj	lbzu	0,1(11)
2036*3a608692SPiotr Kubaj	stb	0,16(11)
2037*3a608692SPiotr Kubaj	bdnz	.Loop_xts_enc_steal
2038*3a608692SPiotr Kubaj
2039*3a608692SPiotr Kubaj	mtctr	9
2040*3a608692SPiotr Kubaj	b	.Loop_xts_enc
2041*3a608692SPiotr Kubaj
2042*3a608692SPiotr Kubaj.Lxts_enc_done:
2043*3a608692SPiotr Kubaj	cmpldi	8,0
2044*3a608692SPiotr Kubaj	beq	.Lxts_enc_ret
2045*3a608692SPiotr Kubaj
2046*3a608692SPiotr Kubaj	vsrab	11,8,9
2047*3a608692SPiotr Kubaj	vaddubm	8,8,8
2048*3a608692SPiotr Kubaj	vsldoi	11,11,11,15
2049*3a608692SPiotr Kubaj	vand	11,11,10
2050*3a608692SPiotr Kubaj	vxor	8,8,11
2051*3a608692SPiotr Kubaj
2052*3a608692SPiotr Kubaj
2053*3a608692SPiotr Kubaj	.long	0x7D004799
2054*3a608692SPiotr Kubaj
2055*3a608692SPiotr Kubaj.Lxts_enc_ret:
2056*3a608692SPiotr Kubaj	or	12,12,12
2057*3a608692SPiotr Kubaj	li	3,0
2058*3a608692SPiotr Kubaj	blr
2059*3a608692SPiotr Kubaj.long	0
2060*3a608692SPiotr Kubaj.byte	0,12,0x04,0,0x80,6,6,0
2061*3a608692SPiotr Kubaj.long	0
2062*3a608692SPiotr Kubaj.size	aes_p8_xts_encrypt,.-aes_p8_xts_encrypt
2063*3a608692SPiotr Kubaj
2064*3a608692SPiotr Kubaj.globl	aes_p8_xts_decrypt
2065*3a608692SPiotr Kubaj.type	aes_p8_xts_decrypt,@function
2066*3a608692SPiotr Kubaj.align	5
2067*3a608692SPiotr Kubajaes_p8_xts_decrypt:
2068*3a608692SPiotr Kubaj.localentry	aes_p8_xts_decrypt,0
2069*3a608692SPiotr Kubaj
2070*3a608692SPiotr Kubaj	mr	10,3
2071*3a608692SPiotr Kubaj	li	3,-1
2072*3a608692SPiotr Kubaj	cmpldi	5,16
2073*3a608692SPiotr Kubaj	.long	0x4dc00020
2074*3a608692SPiotr Kubaj
2075*3a608692SPiotr Kubaj	lis	0,0xfff8
2076*3a608692SPiotr Kubaj	li	12,-1
2077*3a608692SPiotr Kubaj	li	11,0
2078*3a608692SPiotr Kubaj	or	0,0,0
2079*3a608692SPiotr Kubaj
2080*3a608692SPiotr Kubaj	andi.	0,5,15
2081*3a608692SPiotr Kubaj	neg	0,0
2082*3a608692SPiotr Kubaj	andi.	0,0,16
2083*3a608692SPiotr Kubaj	sub	5,5,0
2084*3a608692SPiotr Kubaj
2085*3a608692SPiotr Kubaj	vspltisb	9,0x07
2086*3a608692SPiotr Kubaj
2087*3a608692SPiotr Kubaj
2088*3a608692SPiotr Kubaj
2089*3a608692SPiotr Kubaj
2090*3a608692SPiotr Kubaj	li	3,15
2091*3a608692SPiotr Kubaj	lvx	8,0,8
2092*3a608692SPiotr Kubaj	lvsl	5,0,8
2093*3a608692SPiotr Kubaj	lvx	4,3,8
2094*3a608692SPiotr Kubaj
2095*3a608692SPiotr Kubaj	vperm	8,8,4,5
2096*3a608692SPiotr Kubaj
2097*3a608692SPiotr Kubaj	neg	11,10
2098*3a608692SPiotr Kubaj	lvsr	5,0,11
2099*3a608692SPiotr Kubaj	lvx	2,0,10
2100*3a608692SPiotr Kubaj	addi	10,10,15
2101*3a608692SPiotr Kubaj
2102*3a608692SPiotr Kubaj
2103*3a608692SPiotr Kubaj	cmpldi	7,0
2104*3a608692SPiotr Kubaj	beq	.Lxts_dec_no_key2
2105*3a608692SPiotr Kubaj
2106*3a608692SPiotr Kubaj	lvsl	7,0,7
2107*3a608692SPiotr Kubaj	lwz	9,240(7)
2108*3a608692SPiotr Kubaj	srwi	9,9,1
2109*3a608692SPiotr Kubaj	subi	9,9,1
2110*3a608692SPiotr Kubaj	li	3,16
2111*3a608692SPiotr Kubaj
2112*3a608692SPiotr Kubaj	lvx	0,0,7
2113*3a608692SPiotr Kubaj	lvx	1,3,7
2114*3a608692SPiotr Kubaj	addi	3,3,16
2115*3a608692SPiotr Kubaj	vperm	0,0,1,7
2116*3a608692SPiotr Kubaj	vxor	8,8,0
2117*3a608692SPiotr Kubaj	lvx	0,3,7
2118*3a608692SPiotr Kubaj	addi	3,3,16
2119*3a608692SPiotr Kubaj	mtctr	9
2120*3a608692SPiotr Kubaj
2121*3a608692SPiotr Kubaj.Ltweak_xts_dec:
2122*3a608692SPiotr Kubaj	vperm	1,1,0,7
2123*3a608692SPiotr Kubaj	.long	0x11080D08
2124*3a608692SPiotr Kubaj	lvx	1,3,7
2125*3a608692SPiotr Kubaj	addi	3,3,16
2126*3a608692SPiotr Kubaj	vperm	0,0,1,7
2127*3a608692SPiotr Kubaj	.long	0x11080508
2128*3a608692SPiotr Kubaj	lvx	0,3,7
2129*3a608692SPiotr Kubaj	addi	3,3,16
2130*3a608692SPiotr Kubaj	bdnz	.Ltweak_xts_dec
2131*3a608692SPiotr Kubaj
2132*3a608692SPiotr Kubaj	vperm	1,1,0,7
2133*3a608692SPiotr Kubaj	.long	0x11080D08
2134*3a608692SPiotr Kubaj	lvx	1,3,7
2135*3a608692SPiotr Kubaj	vperm	0,0,1,7
2136*3a608692SPiotr Kubaj	.long	0x11080509
2137*3a608692SPiotr Kubaj
2138*3a608692SPiotr Kubaj	li	8,0
2139*3a608692SPiotr Kubaj	b	.Lxts_dec
2140*3a608692SPiotr Kubaj
2141*3a608692SPiotr Kubaj.Lxts_dec_no_key2:
2142*3a608692SPiotr Kubaj	neg	3,5
2143*3a608692SPiotr Kubaj	andi.	3,3,15
2144*3a608692SPiotr Kubaj	add	5,5,3
2145*3a608692SPiotr Kubaj
2146*3a608692SPiotr Kubaj
2147*3a608692SPiotr Kubaj.Lxts_dec:
2148*3a608692SPiotr Kubaj	lvx	4,0,10
2149*3a608692SPiotr Kubaj	addi	10,10,16
2150*3a608692SPiotr Kubaj
2151*3a608692SPiotr Kubaj	lvsl	7,0,6
2152*3a608692SPiotr Kubaj	lwz	9,240(6)
2153*3a608692SPiotr Kubaj	srwi	9,9,1
2154*3a608692SPiotr Kubaj	subi	9,9,1
2155*3a608692SPiotr Kubaj	li	3,16
2156*3a608692SPiotr Kubaj
2157*3a608692SPiotr Kubaj	vslb	10,9,9
2158*3a608692SPiotr Kubaj	vor	10,10,9
2159*3a608692SPiotr Kubaj	vspltisb	11,1
2160*3a608692SPiotr Kubaj	vsldoi	10,10,11,15
2161*3a608692SPiotr Kubaj
2162*3a608692SPiotr Kubaj	cmpldi	5,96
2163*3a608692SPiotr Kubaj	bge	_aesp8_xts_decrypt6x
2164*3a608692SPiotr Kubaj
2165*3a608692SPiotr Kubaj	lvx	0,0,6
2166*3a608692SPiotr Kubaj	lvx	1,3,6
2167*3a608692SPiotr Kubaj	addi	3,3,16
2168*3a608692SPiotr Kubaj	vperm	2,2,4,5
2169*3a608692SPiotr Kubaj	vperm	0,0,1,7
2170*3a608692SPiotr Kubaj	vxor	2,2,8
2171*3a608692SPiotr Kubaj	vxor	2,2,0
2172*3a608692SPiotr Kubaj	lvx	0,3,6
2173*3a608692SPiotr Kubaj	addi	3,3,16
2174*3a608692SPiotr Kubaj	mtctr	9
2175*3a608692SPiotr Kubaj
2176*3a608692SPiotr Kubaj	cmpldi	5,16
2177*3a608692SPiotr Kubaj	blt	.Ltail_xts_dec
2178*3a608692SPiotr Kubaj	b	.Loop_xts_dec
2179*3a608692SPiotr Kubaj
2180*3a608692SPiotr Kubaj.align	5
2181*3a608692SPiotr Kubaj.Loop_xts_dec:
2182*3a608692SPiotr Kubaj	vperm	1,1,0,7
2183*3a608692SPiotr Kubaj	.long	0x10420D48
2184*3a608692SPiotr Kubaj	lvx	1,3,6
2185*3a608692SPiotr Kubaj	addi	3,3,16
2186*3a608692SPiotr Kubaj	vperm	0,0,1,7
2187*3a608692SPiotr Kubaj	.long	0x10420548
2188*3a608692SPiotr Kubaj	lvx	0,3,6
2189*3a608692SPiotr Kubaj	addi	3,3,16
2190*3a608692SPiotr Kubaj	bdnz	.Loop_xts_dec
2191*3a608692SPiotr Kubaj
2192*3a608692SPiotr Kubaj	vperm	1,1,0,7
2193*3a608692SPiotr Kubaj	.long	0x10420D48
2194*3a608692SPiotr Kubaj	lvx	1,3,6
2195*3a608692SPiotr Kubaj	li	3,16
2196*3a608692SPiotr Kubaj	vperm	0,0,1,7
2197*3a608692SPiotr Kubaj	vxor	0,0,8
2198*3a608692SPiotr Kubaj	.long	0x10620549
2199*3a608692SPiotr Kubaj
2200*3a608692SPiotr Kubaj
2201*3a608692SPiotr Kubaj	nop
2202*3a608692SPiotr Kubaj
2203*3a608692SPiotr Kubaj	.long	0x7C602799
2204*3a608692SPiotr Kubaj	addi	4,4,16
2205*3a608692SPiotr Kubaj
2206*3a608692SPiotr Kubaj	subic.	5,5,16
2207*3a608692SPiotr Kubaj	beq	.Lxts_dec_done
2208*3a608692SPiotr Kubaj
2209*3a608692SPiotr Kubaj	vor	2,4,4
2210*3a608692SPiotr Kubaj	lvx	4,0,10
2211*3a608692SPiotr Kubaj	addi	10,10,16
2212*3a608692SPiotr Kubaj	lvx	0,0,6
2213*3a608692SPiotr Kubaj	lvx	1,3,6
2214*3a608692SPiotr Kubaj	addi	3,3,16
2215*3a608692SPiotr Kubaj
2216*3a608692SPiotr Kubaj	vsrab	11,8,9
2217*3a608692SPiotr Kubaj	vaddubm	8,8,8
2218*3a608692SPiotr Kubaj	vsldoi	11,11,11,15
2219*3a608692SPiotr Kubaj	vand	11,11,10
2220*3a608692SPiotr Kubaj	vxor	8,8,11
2221*3a608692SPiotr Kubaj
2222*3a608692SPiotr Kubaj	vperm	2,2,4,5
2223*3a608692SPiotr Kubaj	vperm	0,0,1,7
2224*3a608692SPiotr Kubaj	vxor	2,2,8
2225*3a608692SPiotr Kubaj	vxor	2,2,0
2226*3a608692SPiotr Kubaj	lvx	0,3,6
2227*3a608692SPiotr Kubaj	addi	3,3,16
2228*3a608692SPiotr Kubaj
2229*3a608692SPiotr Kubaj	mtctr	9
2230*3a608692SPiotr Kubaj	cmpldi	5,16
2231*3a608692SPiotr Kubaj	bge	.Loop_xts_dec
2232*3a608692SPiotr Kubaj
2233*3a608692SPiotr Kubaj.Ltail_xts_dec:
2234*3a608692SPiotr Kubaj	vsrab	11,8,9
2235*3a608692SPiotr Kubaj	vaddubm	12,8,8
2236*3a608692SPiotr Kubaj	vsldoi	11,11,11,15
2237*3a608692SPiotr Kubaj	vand	11,11,10
2238*3a608692SPiotr Kubaj	vxor	12,12,11
2239*3a608692SPiotr Kubaj
2240*3a608692SPiotr Kubaj	subi	10,10,16
2241*3a608692SPiotr Kubaj	add	10,10,5
2242*3a608692SPiotr Kubaj
2243*3a608692SPiotr Kubaj	vxor	2,2,8
2244*3a608692SPiotr Kubaj	vxor	2,2,12
2245*3a608692SPiotr Kubaj
2246*3a608692SPiotr Kubaj.Loop_xts_dec_short:
2247*3a608692SPiotr Kubaj	vperm	1,1,0,7
2248*3a608692SPiotr Kubaj	.long	0x10420D48
2249*3a608692SPiotr Kubaj	lvx	1,3,6
2250*3a608692SPiotr Kubaj	addi	3,3,16
2251*3a608692SPiotr Kubaj	vperm	0,0,1,7
2252*3a608692SPiotr Kubaj	.long	0x10420548
2253*3a608692SPiotr Kubaj	lvx	0,3,6
2254*3a608692SPiotr Kubaj	addi	3,3,16
2255*3a608692SPiotr Kubaj	bdnz	.Loop_xts_dec_short
2256*3a608692SPiotr Kubaj
2257*3a608692SPiotr Kubaj	vperm	1,1,0,7
2258*3a608692SPiotr Kubaj	.long	0x10420D48
2259*3a608692SPiotr Kubaj	lvx	1,3,6
2260*3a608692SPiotr Kubaj	li	3,16
2261*3a608692SPiotr Kubaj	vperm	0,0,1,7
2262*3a608692SPiotr Kubaj	vxor	0,0,12
2263*3a608692SPiotr Kubaj	.long	0x10620549
2264*3a608692SPiotr Kubaj
2265*3a608692SPiotr Kubaj
2266*3a608692SPiotr Kubaj	nop
2267*3a608692SPiotr Kubaj
2268*3a608692SPiotr Kubaj	.long	0x7C602799
2269*3a608692SPiotr Kubaj
2270*3a608692SPiotr Kubaj	vor	2,4,4
2271*3a608692SPiotr Kubaj	lvx	4,0,10
2272*3a608692SPiotr Kubaj
2273*3a608692SPiotr Kubaj	lvx	0,0,6
2274*3a608692SPiotr Kubaj	lvx	1,3,6
2275*3a608692SPiotr Kubaj	addi	3,3,16
2276*3a608692SPiotr Kubaj	vperm	2,2,4,5
2277*3a608692SPiotr Kubaj	vperm	0,0,1,7
2278*3a608692SPiotr Kubaj
2279*3a608692SPiotr Kubaj	lvsr	5,0,5
2280*3a608692SPiotr Kubaj	vxor	4,4,4
2281*3a608692SPiotr Kubaj	vspltisb	11,-1
2282*3a608692SPiotr Kubaj	vperm	4,4,11,5
2283*3a608692SPiotr Kubaj	vsel	2,2,3,4
2284*3a608692SPiotr Kubaj
2285*3a608692SPiotr Kubaj	vxor	0,0,8
2286*3a608692SPiotr Kubaj	vxor	2,2,0
2287*3a608692SPiotr Kubaj	lvx	0,3,6
2288*3a608692SPiotr Kubaj	addi	3,3,16
2289*3a608692SPiotr Kubaj
2290*3a608692SPiotr Kubaj	subi	11,4,1
2291*3a608692SPiotr Kubaj	mtctr	5
2292*3a608692SPiotr Kubaj	li	5,16
2293*3a608692SPiotr Kubaj.Loop_xts_dec_steal:
2294*3a608692SPiotr Kubaj	lbzu	0,1(11)
2295*3a608692SPiotr Kubaj	stb	0,16(11)
2296*3a608692SPiotr Kubaj	bdnz	.Loop_xts_dec_steal
2297*3a608692SPiotr Kubaj
2298*3a608692SPiotr Kubaj	mtctr	9
2299*3a608692SPiotr Kubaj	b	.Loop_xts_dec
2300*3a608692SPiotr Kubaj
2301*3a608692SPiotr Kubaj.Lxts_dec_done:
2302*3a608692SPiotr Kubaj	cmpldi	8,0
2303*3a608692SPiotr Kubaj	beq	.Lxts_dec_ret
2304*3a608692SPiotr Kubaj
2305*3a608692SPiotr Kubaj	vsrab	11,8,9
2306*3a608692SPiotr Kubaj	vaddubm	8,8,8
2307*3a608692SPiotr Kubaj	vsldoi	11,11,11,15
2308*3a608692SPiotr Kubaj	vand	11,11,10
2309*3a608692SPiotr Kubaj	vxor	8,8,11
2310*3a608692SPiotr Kubaj
2311*3a608692SPiotr Kubaj
2312*3a608692SPiotr Kubaj	.long	0x7D004799
2313*3a608692SPiotr Kubaj
2314*3a608692SPiotr Kubaj.Lxts_dec_ret:
2315*3a608692SPiotr Kubaj	or	12,12,12
2316*3a608692SPiotr Kubaj	li	3,0
2317*3a608692SPiotr Kubaj	blr
2318*3a608692SPiotr Kubaj.long	0
2319*3a608692SPiotr Kubaj.byte	0,12,0x04,0,0x80,6,6,0
2320*3a608692SPiotr Kubaj.long	0
2321*3a608692SPiotr Kubaj.size	aes_p8_xts_decrypt,.-aes_p8_xts_decrypt
2322*3a608692SPiotr Kubaj.align	5
2323*3a608692SPiotr Kubaj_aesp8_xts_encrypt6x:
2324*3a608692SPiotr Kubaj	stdu	1,-448(1)
2325*3a608692SPiotr Kubaj	mflr	11
2326*3a608692SPiotr Kubaj	li	7,207
2327*3a608692SPiotr Kubaj	li	3,223
2328*3a608692SPiotr Kubaj	std	11,464(1)
2329*3a608692SPiotr Kubaj	stvx	20,7,1
2330*3a608692SPiotr Kubaj	addi	7,7,32
2331*3a608692SPiotr Kubaj	stvx	21,3,1
2332*3a608692SPiotr Kubaj	addi	3,3,32
2333*3a608692SPiotr Kubaj	stvx	22,7,1
2334*3a608692SPiotr Kubaj	addi	7,7,32
2335*3a608692SPiotr Kubaj	stvx	23,3,1
2336*3a608692SPiotr Kubaj	addi	3,3,32
2337*3a608692SPiotr Kubaj	stvx	24,7,1
2338*3a608692SPiotr Kubaj	addi	7,7,32
2339*3a608692SPiotr Kubaj	stvx	25,3,1
2340*3a608692SPiotr Kubaj	addi	3,3,32
2341*3a608692SPiotr Kubaj	stvx	26,7,1
2342*3a608692SPiotr Kubaj	addi	7,7,32
2343*3a608692SPiotr Kubaj	stvx	27,3,1
2344*3a608692SPiotr Kubaj	addi	3,3,32
2345*3a608692SPiotr Kubaj	stvx	28,7,1
2346*3a608692SPiotr Kubaj	addi	7,7,32
2347*3a608692SPiotr Kubaj	stvx	29,3,1
2348*3a608692SPiotr Kubaj	addi	3,3,32
2349*3a608692SPiotr Kubaj	stvx	30,7,1
2350*3a608692SPiotr Kubaj	stvx	31,3,1
2351*3a608692SPiotr Kubaj	li	0,-1
2352*3a608692SPiotr Kubaj	stw	12,396(1)
2353*3a608692SPiotr Kubaj	li	3,0x10
2354*3a608692SPiotr Kubaj	std	26,400(1)
2355*3a608692SPiotr Kubaj	li	26,0x20
2356*3a608692SPiotr Kubaj	std	27,408(1)
2357*3a608692SPiotr Kubaj	li	27,0x30
2358*3a608692SPiotr Kubaj	std	28,416(1)
2359*3a608692SPiotr Kubaj	li	28,0x40
2360*3a608692SPiotr Kubaj	std	29,424(1)
2361*3a608692SPiotr Kubaj	li	29,0x50
2362*3a608692SPiotr Kubaj	std	30,432(1)
2363*3a608692SPiotr Kubaj	li	30,0x60
2364*3a608692SPiotr Kubaj	std	31,440(1)
2365*3a608692SPiotr Kubaj	li	31,0x70
2366*3a608692SPiotr Kubaj	or	0,0,0
2367*3a608692SPiotr Kubaj
2368*3a608692SPiotr Kubaj	subi	9,9,3
2369*3a608692SPiotr Kubaj
2370*3a608692SPiotr Kubaj	lvx	23,0,6
2371*3a608692SPiotr Kubaj	lvx	30,3,6
2372*3a608692SPiotr Kubaj	addi	6,6,0x20
2373*3a608692SPiotr Kubaj	lvx	31,0,6
2374*3a608692SPiotr Kubaj	vperm	23,23,30,7
2375*3a608692SPiotr Kubaj	addi	7,1,64+15
2376*3a608692SPiotr Kubaj	mtctr	9
2377*3a608692SPiotr Kubaj
2378*3a608692SPiotr Kubaj.Load_xts_enc_key:
2379*3a608692SPiotr Kubaj	vperm	24,30,31,7
2380*3a608692SPiotr Kubaj	lvx	30,3,6
2381*3a608692SPiotr Kubaj	addi	6,6,0x20
2382*3a608692SPiotr Kubaj	stvx	24,0,7
2383*3a608692SPiotr Kubaj	vperm	25,31,30,7
2384*3a608692SPiotr Kubaj	lvx	31,0,6
2385*3a608692SPiotr Kubaj	stvx	25,3,7
2386*3a608692SPiotr Kubaj	addi	7,7,0x20
2387*3a608692SPiotr Kubaj	bdnz	.Load_xts_enc_key
2388*3a608692SPiotr Kubaj
2389*3a608692SPiotr Kubaj	lvx	26,3,6
2390*3a608692SPiotr Kubaj	vperm	24,30,31,7
2391*3a608692SPiotr Kubaj	lvx	27,26,6
2392*3a608692SPiotr Kubaj	stvx	24,0,7
2393*3a608692SPiotr Kubaj	vperm	25,31,26,7
2394*3a608692SPiotr Kubaj	lvx	28,27,6
2395*3a608692SPiotr Kubaj	stvx	25,3,7
2396*3a608692SPiotr Kubaj	addi	7,1,64+15
2397*3a608692SPiotr Kubaj	vperm	26,26,27,7
2398*3a608692SPiotr Kubaj	lvx	29,28,6
2399*3a608692SPiotr Kubaj	vperm	27,27,28,7
2400*3a608692SPiotr Kubaj	lvx	30,29,6
2401*3a608692SPiotr Kubaj	vperm	28,28,29,7
2402*3a608692SPiotr Kubaj	lvx	31,30,6
2403*3a608692SPiotr Kubaj	vperm	29,29,30,7
2404*3a608692SPiotr Kubaj	lvx	22,31,6
2405*3a608692SPiotr Kubaj	vperm	30,30,31,7
2406*3a608692SPiotr Kubaj	lvx	24,0,7
2407*3a608692SPiotr Kubaj	vperm	31,31,22,7
2408*3a608692SPiotr Kubaj	lvx	25,3,7
2409*3a608692SPiotr Kubaj
2410*3a608692SPiotr Kubaj	vperm	0,2,4,5
2411*3a608692SPiotr Kubaj	subi	10,10,31
2412*3a608692SPiotr Kubaj	vxor	17,8,23
2413*3a608692SPiotr Kubaj	vsrab	11,8,9
2414*3a608692SPiotr Kubaj	vaddubm	8,8,8
2415*3a608692SPiotr Kubaj	vsldoi	11,11,11,15
2416*3a608692SPiotr Kubaj	vand	11,11,10
2417*3a608692SPiotr Kubaj	vxor	7,0,17
2418*3a608692SPiotr Kubaj	vxor	8,8,11
2419*3a608692SPiotr Kubaj
2420*3a608692SPiotr Kubaj	.long	0x7C235699
2421*3a608692SPiotr Kubaj	vxor	18,8,23
2422*3a608692SPiotr Kubaj	vsrab	11,8,9
2423*3a608692SPiotr Kubaj	vaddubm	8,8,8
2424*3a608692SPiotr Kubaj	vsldoi	11,11,11,15
2425*3a608692SPiotr Kubaj
2426*3a608692SPiotr Kubaj	vand	11,11,10
2427*3a608692SPiotr Kubaj	vxor	12,1,18
2428*3a608692SPiotr Kubaj	vxor	8,8,11
2429*3a608692SPiotr Kubaj
2430*3a608692SPiotr Kubaj	.long	0x7C5A5699
2431*3a608692SPiotr Kubaj	andi.	31,5,15
2432*3a608692SPiotr Kubaj	vxor	19,8,23
2433*3a608692SPiotr Kubaj	vsrab	11,8,9
2434*3a608692SPiotr Kubaj	vaddubm	8,8,8
2435*3a608692SPiotr Kubaj	vsldoi	11,11,11,15
2436*3a608692SPiotr Kubaj
2437*3a608692SPiotr Kubaj	vand	11,11,10
2438*3a608692SPiotr Kubaj	vxor	13,2,19
2439*3a608692SPiotr Kubaj	vxor	8,8,11
2440*3a608692SPiotr Kubaj
2441*3a608692SPiotr Kubaj	.long	0x7C7B5699
2442*3a608692SPiotr Kubaj	sub	5,5,31
2443*3a608692SPiotr Kubaj	vxor	20,8,23
2444*3a608692SPiotr Kubaj	vsrab	11,8,9
2445*3a608692SPiotr Kubaj	vaddubm	8,8,8
2446*3a608692SPiotr Kubaj	vsldoi	11,11,11,15
2447*3a608692SPiotr Kubaj
2448*3a608692SPiotr Kubaj	vand	11,11,10
2449*3a608692SPiotr Kubaj	vxor	14,3,20
2450*3a608692SPiotr Kubaj	vxor	8,8,11
2451*3a608692SPiotr Kubaj
2452*3a608692SPiotr Kubaj	.long	0x7C9C5699
2453*3a608692SPiotr Kubaj	subi	5,5,0x60
2454*3a608692SPiotr Kubaj	vxor	21,8,23
2455*3a608692SPiotr Kubaj	vsrab	11,8,9
2456*3a608692SPiotr Kubaj	vaddubm	8,8,8
2457*3a608692SPiotr Kubaj	vsldoi	11,11,11,15
2458*3a608692SPiotr Kubaj
2459*3a608692SPiotr Kubaj	vand	11,11,10
2460*3a608692SPiotr Kubaj	vxor	15,4,21
2461*3a608692SPiotr Kubaj	vxor	8,8,11
2462*3a608692SPiotr Kubaj
2463*3a608692SPiotr Kubaj	.long	0x7CBD5699
2464*3a608692SPiotr Kubaj	addi	10,10,0x60
2465*3a608692SPiotr Kubaj	vxor	22,8,23
2466*3a608692SPiotr Kubaj	vsrab	11,8,9
2467*3a608692SPiotr Kubaj	vaddubm	8,8,8
2468*3a608692SPiotr Kubaj	vsldoi	11,11,11,15
2469*3a608692SPiotr Kubaj
2470*3a608692SPiotr Kubaj	vand	11,11,10
2471*3a608692SPiotr Kubaj	vxor	16,5,22
2472*3a608692SPiotr Kubaj	vxor	8,8,11
2473*3a608692SPiotr Kubaj
2474*3a608692SPiotr Kubaj	vxor	31,31,23
2475*3a608692SPiotr Kubaj	mtctr	9
2476*3a608692SPiotr Kubaj	b	.Loop_xts_enc6x
2477*3a608692SPiotr Kubaj
2478*3a608692SPiotr Kubaj.align	5
2479*3a608692SPiotr Kubaj.Loop_xts_enc6x:
2480*3a608692SPiotr Kubaj	.long	0x10E7C508
2481*3a608692SPiotr Kubaj	.long	0x118CC508
2482*3a608692SPiotr Kubaj	.long	0x11ADC508
2483*3a608692SPiotr Kubaj	.long	0x11CEC508
2484*3a608692SPiotr Kubaj	.long	0x11EFC508
2485*3a608692SPiotr Kubaj	.long	0x1210C508
2486*3a608692SPiotr Kubaj	lvx	24,26,7
2487*3a608692SPiotr Kubaj	addi	7,7,0x20
2488*3a608692SPiotr Kubaj
2489*3a608692SPiotr Kubaj	.long	0x10E7CD08
2490*3a608692SPiotr Kubaj	.long	0x118CCD08
2491*3a608692SPiotr Kubaj	.long	0x11ADCD08
2492*3a608692SPiotr Kubaj	.long	0x11CECD08
2493*3a608692SPiotr Kubaj	.long	0x11EFCD08
2494*3a608692SPiotr Kubaj	.long	0x1210CD08
2495*3a608692SPiotr Kubaj	lvx	25,3,7
2496*3a608692SPiotr Kubaj	bdnz	.Loop_xts_enc6x
2497*3a608692SPiotr Kubaj
2498*3a608692SPiotr Kubaj	subic	5,5,96
2499*3a608692SPiotr Kubaj	vxor	0,17,31
2500*3a608692SPiotr Kubaj	.long	0x10E7C508
2501*3a608692SPiotr Kubaj	.long	0x118CC508
2502*3a608692SPiotr Kubaj	vsrab	11,8,9
2503*3a608692SPiotr Kubaj	vxor	17,8,23
2504*3a608692SPiotr Kubaj	vaddubm	8,8,8
2505*3a608692SPiotr Kubaj	.long	0x11ADC508
2506*3a608692SPiotr Kubaj	.long	0x11CEC508
2507*3a608692SPiotr Kubaj	vsldoi	11,11,11,15
2508*3a608692SPiotr Kubaj	.long	0x11EFC508
2509*3a608692SPiotr Kubaj	.long	0x1210C508
2510*3a608692SPiotr Kubaj
2511*3a608692SPiotr Kubaj	subfe.	0,0,0
2512*3a608692SPiotr Kubaj	vand	11,11,10
2513*3a608692SPiotr Kubaj	.long	0x10E7CD08
2514*3a608692SPiotr Kubaj	.long	0x118CCD08
2515*3a608692SPiotr Kubaj	vxor	8,8,11
2516*3a608692SPiotr Kubaj	.long	0x11ADCD08
2517*3a608692SPiotr Kubaj	.long	0x11CECD08
2518*3a608692SPiotr Kubaj	vxor	1,18,31
2519*3a608692SPiotr Kubaj	vsrab	11,8,9
2520*3a608692SPiotr Kubaj	vxor	18,8,23
2521*3a608692SPiotr Kubaj	.long	0x11EFCD08
2522*3a608692SPiotr Kubaj	.long	0x1210CD08
2523*3a608692SPiotr Kubaj
2524*3a608692SPiotr Kubaj	and	0,0,5
2525*3a608692SPiotr Kubaj	vaddubm	8,8,8
2526*3a608692SPiotr Kubaj	vsldoi	11,11,11,15
2527*3a608692SPiotr Kubaj	.long	0x10E7D508
2528*3a608692SPiotr Kubaj	.long	0x118CD508
2529*3a608692SPiotr Kubaj	vand	11,11,10
2530*3a608692SPiotr Kubaj	.long	0x11ADD508
2531*3a608692SPiotr Kubaj	.long	0x11CED508
2532*3a608692SPiotr Kubaj	vxor	8,8,11
2533*3a608692SPiotr Kubaj	.long	0x11EFD508
2534*3a608692SPiotr Kubaj	.long	0x1210D508
2535*3a608692SPiotr Kubaj
2536*3a608692SPiotr Kubaj	add	10,10,0
2537*3a608692SPiotr Kubaj
2538*3a608692SPiotr Kubaj
2539*3a608692SPiotr Kubaj
2540*3a608692SPiotr Kubaj	vxor	2,19,31
2541*3a608692SPiotr Kubaj	vsrab	11,8,9
2542*3a608692SPiotr Kubaj	vxor	19,8,23
2543*3a608692SPiotr Kubaj	vaddubm	8,8,8
2544*3a608692SPiotr Kubaj	.long	0x10E7DD08
2545*3a608692SPiotr Kubaj	.long	0x118CDD08
2546*3a608692SPiotr Kubaj	vsldoi	11,11,11,15
2547*3a608692SPiotr Kubaj	.long	0x11ADDD08
2548*3a608692SPiotr Kubaj	.long	0x11CEDD08
2549*3a608692SPiotr Kubaj	vand	11,11,10
2550*3a608692SPiotr Kubaj	.long	0x11EFDD08
2551*3a608692SPiotr Kubaj	.long	0x1210DD08
2552*3a608692SPiotr Kubaj
2553*3a608692SPiotr Kubaj	addi	7,1,64+15
2554*3a608692SPiotr Kubaj	vxor	8,8,11
2555*3a608692SPiotr Kubaj	.long	0x10E7E508
2556*3a608692SPiotr Kubaj	.long	0x118CE508
2557*3a608692SPiotr Kubaj	vxor	3,20,31
2558*3a608692SPiotr Kubaj	vsrab	11,8,9
2559*3a608692SPiotr Kubaj	vxor	20,8,23
2560*3a608692SPiotr Kubaj	.long	0x11ADE508
2561*3a608692SPiotr Kubaj	.long	0x11CEE508
2562*3a608692SPiotr Kubaj	vaddubm	8,8,8
2563*3a608692SPiotr Kubaj	vsldoi	11,11,11,15
2564*3a608692SPiotr Kubaj	.long	0x11EFE508
2565*3a608692SPiotr Kubaj	.long	0x1210E508
2566*3a608692SPiotr Kubaj	lvx	24,0,7
2567*3a608692SPiotr Kubaj	vand	11,11,10
2568*3a608692SPiotr Kubaj
2569*3a608692SPiotr Kubaj	.long	0x10E7ED08
2570*3a608692SPiotr Kubaj	.long	0x118CED08
2571*3a608692SPiotr Kubaj	vxor	8,8,11
2572*3a608692SPiotr Kubaj	.long	0x11ADED08
2573*3a608692SPiotr Kubaj	.long	0x11CEED08
2574*3a608692SPiotr Kubaj	vxor	4,21,31
2575*3a608692SPiotr Kubaj	vsrab	11,8,9
2576*3a608692SPiotr Kubaj	vxor	21,8,23
2577*3a608692SPiotr Kubaj	.long	0x11EFED08
2578*3a608692SPiotr Kubaj	.long	0x1210ED08
2579*3a608692SPiotr Kubaj	lvx	25,3,7
2580*3a608692SPiotr Kubaj	vaddubm	8,8,8
2581*3a608692SPiotr Kubaj	vsldoi	11,11,11,15
2582*3a608692SPiotr Kubaj
2583*3a608692SPiotr Kubaj	.long	0x10E7F508
2584*3a608692SPiotr Kubaj	.long	0x118CF508
2585*3a608692SPiotr Kubaj	vand	11,11,10
2586*3a608692SPiotr Kubaj	.long	0x11ADF508
2587*3a608692SPiotr Kubaj	.long	0x11CEF508
2588*3a608692SPiotr Kubaj	vxor	8,8,11
2589*3a608692SPiotr Kubaj	.long	0x11EFF508
2590*3a608692SPiotr Kubaj	.long	0x1210F508
2591*3a608692SPiotr Kubaj	vxor	5,22,31
2592*3a608692SPiotr Kubaj	vsrab	11,8,9
2593*3a608692SPiotr Kubaj	vxor	22,8,23
2594*3a608692SPiotr Kubaj
2595*3a608692SPiotr Kubaj	.long	0x10E70509
2596*3a608692SPiotr Kubaj	.long	0x7C005699
2597*3a608692SPiotr Kubaj	vaddubm	8,8,8
2598*3a608692SPiotr Kubaj	vsldoi	11,11,11,15
2599*3a608692SPiotr Kubaj	.long	0x118C0D09
2600*3a608692SPiotr Kubaj	.long	0x7C235699
2601*3a608692SPiotr Kubaj	.long	0x11AD1509
2602*3a608692SPiotr Kubaj
2603*3a608692SPiotr Kubaj	.long	0x7C5A5699
2604*3a608692SPiotr Kubaj	vand	11,11,10
2605*3a608692SPiotr Kubaj	.long	0x11CE1D09
2606*3a608692SPiotr Kubaj
2607*3a608692SPiotr Kubaj	.long	0x7C7B5699
2608*3a608692SPiotr Kubaj	.long	0x11EF2509
2609*3a608692SPiotr Kubaj
2610*3a608692SPiotr Kubaj	.long	0x7C9C5699
2611*3a608692SPiotr Kubaj	vxor	8,8,11
2612*3a608692SPiotr Kubaj	.long	0x11702D09
2613*3a608692SPiotr Kubaj
2614*3a608692SPiotr Kubaj
2615*3a608692SPiotr Kubaj	.long	0x7CBD5699
2616*3a608692SPiotr Kubaj	addi	10,10,0x60
2617*3a608692SPiotr Kubaj
2618*3a608692SPiotr Kubaj
2619*3a608692SPiotr Kubaj
2620*3a608692SPiotr Kubaj
2621*3a608692SPiotr Kubaj
2622*3a608692SPiotr Kubaj	.long	0x7CE02799
2623*3a608692SPiotr Kubaj	vxor	7,0,17
2624*3a608692SPiotr Kubaj
2625*3a608692SPiotr Kubaj	.long	0x7D832799
2626*3a608692SPiotr Kubaj	vxor	12,1,18
2627*3a608692SPiotr Kubaj
2628*3a608692SPiotr Kubaj	.long	0x7DBA2799
2629*3a608692SPiotr Kubaj	vxor	13,2,19
2630*3a608692SPiotr Kubaj
2631*3a608692SPiotr Kubaj	.long	0x7DDB2799
2632*3a608692SPiotr Kubaj	vxor	14,3,20
2633*3a608692SPiotr Kubaj
2634*3a608692SPiotr Kubaj	.long	0x7DFC2799
2635*3a608692SPiotr Kubaj	vxor	15,4,21
2636*3a608692SPiotr Kubaj
2637*3a608692SPiotr Kubaj	.long	0x7D7D2799
2638*3a608692SPiotr Kubaj	vxor	16,5,22
2639*3a608692SPiotr Kubaj	addi	4,4,0x60
2640*3a608692SPiotr Kubaj
2641*3a608692SPiotr Kubaj	mtctr	9
2642*3a608692SPiotr Kubaj	beq	.Loop_xts_enc6x
2643*3a608692SPiotr Kubaj
2644*3a608692SPiotr Kubaj	addic.	5,5,0x60
2645*3a608692SPiotr Kubaj	beq	.Lxts_enc6x_zero
2646*3a608692SPiotr Kubaj	cmpwi	5,0x20
2647*3a608692SPiotr Kubaj	blt	.Lxts_enc6x_one
2648*3a608692SPiotr Kubaj	nop
2649*3a608692SPiotr Kubaj	beq	.Lxts_enc6x_two
2650*3a608692SPiotr Kubaj	cmpwi	5,0x40
2651*3a608692SPiotr Kubaj	blt	.Lxts_enc6x_three
2652*3a608692SPiotr Kubaj	nop
2653*3a608692SPiotr Kubaj	beq	.Lxts_enc6x_four
2654*3a608692SPiotr Kubaj
2655*3a608692SPiotr Kubaj.Lxts_enc6x_five:
2656*3a608692SPiotr Kubaj	vxor	7,1,17
2657*3a608692SPiotr Kubaj	vxor	12,2,18
2658*3a608692SPiotr Kubaj	vxor	13,3,19
2659*3a608692SPiotr Kubaj	vxor	14,4,20
2660*3a608692SPiotr Kubaj	vxor	15,5,21
2661*3a608692SPiotr Kubaj
2662*3a608692SPiotr Kubaj	bl	_aesp8_xts_enc5x
2663*3a608692SPiotr Kubaj
2664*3a608692SPiotr Kubaj
2665*3a608692SPiotr Kubaj	vor	17,22,22
2666*3a608692SPiotr Kubaj
2667*3a608692SPiotr Kubaj	.long	0x7CE02799
2668*3a608692SPiotr Kubaj
2669*3a608692SPiotr Kubaj	.long	0x7D832799
2670*3a608692SPiotr Kubaj
2671*3a608692SPiotr Kubaj	.long	0x7DBA2799
2672*3a608692SPiotr Kubaj	vxor	11,15,22
2673*3a608692SPiotr Kubaj
2674*3a608692SPiotr Kubaj	.long	0x7DDB2799
2675*3a608692SPiotr Kubaj	.long	0x7DFC2799
2676*3a608692SPiotr Kubaj	addi	4,4,0x50
2677*3a608692SPiotr Kubaj	bne	.Lxts_enc6x_steal
2678*3a608692SPiotr Kubaj	b	.Lxts_enc6x_done
2679*3a608692SPiotr Kubaj
2680*3a608692SPiotr Kubaj.align	4
2681*3a608692SPiotr Kubaj.Lxts_enc6x_four:
2682*3a608692SPiotr Kubaj	vxor	7,2,17
2683*3a608692SPiotr Kubaj	vxor	12,3,18
2684*3a608692SPiotr Kubaj	vxor	13,4,19
2685*3a608692SPiotr Kubaj	vxor	14,5,20
2686*3a608692SPiotr Kubaj	vxor	15,15,15
2687*3a608692SPiotr Kubaj
2688*3a608692SPiotr Kubaj	bl	_aesp8_xts_enc5x
2689*3a608692SPiotr Kubaj
2690*3a608692SPiotr Kubaj
2691*3a608692SPiotr Kubaj	vor	17,21,21
2692*3a608692SPiotr Kubaj
2693*3a608692SPiotr Kubaj	.long	0x7CE02799
2694*3a608692SPiotr Kubaj
2695*3a608692SPiotr Kubaj	.long	0x7D832799
2696*3a608692SPiotr Kubaj	vxor	11,14,21
2697*3a608692SPiotr Kubaj
2698*3a608692SPiotr Kubaj	.long	0x7DBA2799
2699*3a608692SPiotr Kubaj	.long	0x7DDB2799
2700*3a608692SPiotr Kubaj	addi	4,4,0x40
2701*3a608692SPiotr Kubaj	bne	.Lxts_enc6x_steal
2702*3a608692SPiotr Kubaj	b	.Lxts_enc6x_done
2703*3a608692SPiotr Kubaj
2704*3a608692SPiotr Kubaj.align	4
2705*3a608692SPiotr Kubaj.Lxts_enc6x_three:
2706*3a608692SPiotr Kubaj	vxor	7,3,17
2707*3a608692SPiotr Kubaj	vxor	12,4,18
2708*3a608692SPiotr Kubaj	vxor	13,5,19
2709*3a608692SPiotr Kubaj	vxor	14,14,14
2710*3a608692SPiotr Kubaj	vxor	15,15,15
2711*3a608692SPiotr Kubaj
2712*3a608692SPiotr Kubaj	bl	_aesp8_xts_enc5x
2713*3a608692SPiotr Kubaj
2714*3a608692SPiotr Kubaj
2715*3a608692SPiotr Kubaj	vor	17,20,20
2716*3a608692SPiotr Kubaj
2717*3a608692SPiotr Kubaj	.long	0x7CE02799
2718*3a608692SPiotr Kubaj	vxor	11,13,20
2719*3a608692SPiotr Kubaj
2720*3a608692SPiotr Kubaj	.long	0x7D832799
2721*3a608692SPiotr Kubaj	.long	0x7DBA2799
2722*3a608692SPiotr Kubaj	addi	4,4,0x30
2723*3a608692SPiotr Kubaj	bne	.Lxts_enc6x_steal
2724*3a608692SPiotr Kubaj	b	.Lxts_enc6x_done
2725*3a608692SPiotr Kubaj
2726*3a608692SPiotr Kubaj.align	4
2727*3a608692SPiotr Kubaj.Lxts_enc6x_two:
2728*3a608692SPiotr Kubaj	vxor	7,4,17
2729*3a608692SPiotr Kubaj	vxor	12,5,18
2730*3a608692SPiotr Kubaj	vxor	13,13,13
2731*3a608692SPiotr Kubaj	vxor	14,14,14
2732*3a608692SPiotr Kubaj	vxor	15,15,15
2733*3a608692SPiotr Kubaj
2734*3a608692SPiotr Kubaj	bl	_aesp8_xts_enc5x
2735*3a608692SPiotr Kubaj
2736*3a608692SPiotr Kubaj
2737*3a608692SPiotr Kubaj	vor	17,19,19
2738*3a608692SPiotr Kubaj	vxor	11,12,19
2739*3a608692SPiotr Kubaj
2740*3a608692SPiotr Kubaj	.long	0x7CE02799
2741*3a608692SPiotr Kubaj	.long	0x7D832799
2742*3a608692SPiotr Kubaj	addi	4,4,0x20
2743*3a608692SPiotr Kubaj	bne	.Lxts_enc6x_steal
2744*3a608692SPiotr Kubaj	b	.Lxts_enc6x_done
2745*3a608692SPiotr Kubaj
2746*3a608692SPiotr Kubaj.align	4
2747*3a608692SPiotr Kubaj.Lxts_enc6x_one:
2748*3a608692SPiotr Kubaj	vxor	7,5,17
2749*3a608692SPiotr Kubaj	nop
2750*3a608692SPiotr Kubaj.Loop_xts_enc1x:
2751*3a608692SPiotr Kubaj	.long	0x10E7C508
2752*3a608692SPiotr Kubaj	lvx	24,26,7
2753*3a608692SPiotr Kubaj	addi	7,7,0x20
2754*3a608692SPiotr Kubaj
2755*3a608692SPiotr Kubaj	.long	0x10E7CD08
2756*3a608692SPiotr Kubaj	lvx	25,3,7
2757*3a608692SPiotr Kubaj	bdnz	.Loop_xts_enc1x
2758*3a608692SPiotr Kubaj
2759*3a608692SPiotr Kubaj	add	10,10,31
2760*3a608692SPiotr Kubaj	cmpwi	31,0
2761*3a608692SPiotr Kubaj	.long	0x10E7C508
2762*3a608692SPiotr Kubaj
2763*3a608692SPiotr Kubaj	subi	10,10,16
2764*3a608692SPiotr Kubaj	.long	0x10E7CD08
2765*3a608692SPiotr Kubaj
2766*3a608692SPiotr Kubaj	lvsr	5,0,31
2767*3a608692SPiotr Kubaj	.long	0x10E7D508
2768*3a608692SPiotr Kubaj
2769*3a608692SPiotr Kubaj	.long	0x7C005699
2770*3a608692SPiotr Kubaj	.long	0x10E7DD08
2771*3a608692SPiotr Kubaj
2772*3a608692SPiotr Kubaj	addi	7,1,64+15
2773*3a608692SPiotr Kubaj	.long	0x10E7E508
2774*3a608692SPiotr Kubaj	lvx	24,0,7
2775*3a608692SPiotr Kubaj
2776*3a608692SPiotr Kubaj	.long	0x10E7ED08
2777*3a608692SPiotr Kubaj	lvx	25,3,7
2778*3a608692SPiotr Kubaj	vxor	17,17,31
2779*3a608692SPiotr Kubaj
2780*3a608692SPiotr Kubaj
2781*3a608692SPiotr Kubaj	.long	0x10E7F508
2782*3a608692SPiotr Kubaj
2783*3a608692SPiotr Kubaj	vperm	0,0,0,5
2784*3a608692SPiotr Kubaj	.long	0x10E78D09
2785*3a608692SPiotr Kubaj
2786*3a608692SPiotr Kubaj	vor	17,18,18
2787*3a608692SPiotr Kubaj	vxor	11,7,18
2788*3a608692SPiotr Kubaj
2789*3a608692SPiotr Kubaj	.long	0x7CE02799
2790*3a608692SPiotr Kubaj	addi	4,4,0x10
2791*3a608692SPiotr Kubaj	bne	.Lxts_enc6x_steal
2792*3a608692SPiotr Kubaj	b	.Lxts_enc6x_done
2793*3a608692SPiotr Kubaj
2794*3a608692SPiotr Kubaj.align	4
2795*3a608692SPiotr Kubaj.Lxts_enc6x_zero:
2796*3a608692SPiotr Kubaj	cmpwi	31,0
2797*3a608692SPiotr Kubaj	beq	.Lxts_enc6x_done
2798*3a608692SPiotr Kubaj
2799*3a608692SPiotr Kubaj	add	10,10,31
2800*3a608692SPiotr Kubaj	subi	10,10,16
2801*3a608692SPiotr Kubaj	.long	0x7C005699
2802*3a608692SPiotr Kubaj	lvsr	5,0,31
2803*3a608692SPiotr Kubaj
2804*3a608692SPiotr Kubaj	vperm	0,0,0,5
2805*3a608692SPiotr Kubaj	vxor	11,11,17
2806*3a608692SPiotr Kubaj.Lxts_enc6x_steal:
2807*3a608692SPiotr Kubaj	vxor	0,0,17
2808*3a608692SPiotr Kubaj	vxor	7,7,7
2809*3a608692SPiotr Kubaj	vspltisb	12,-1
2810*3a608692SPiotr Kubaj	vperm	7,7,12,5
2811*3a608692SPiotr Kubaj	vsel	7,0,11,7
2812*3a608692SPiotr Kubaj
2813*3a608692SPiotr Kubaj	subi	30,4,17
2814*3a608692SPiotr Kubaj	subi	4,4,16
2815*3a608692SPiotr Kubaj	mtctr	31
2816*3a608692SPiotr Kubaj.Loop_xts_enc6x_steal:
2817*3a608692SPiotr Kubaj	lbzu	0,1(30)
2818*3a608692SPiotr Kubaj	stb	0,16(30)
2819*3a608692SPiotr Kubaj	bdnz	.Loop_xts_enc6x_steal
2820*3a608692SPiotr Kubaj
2821*3a608692SPiotr Kubaj	li	31,0
2822*3a608692SPiotr Kubaj	mtctr	9
2823*3a608692SPiotr Kubaj	b	.Loop_xts_enc1x
2824*3a608692SPiotr Kubaj
2825*3a608692SPiotr Kubaj.align	4
2826*3a608692SPiotr Kubaj.Lxts_enc6x_done:
2827*3a608692SPiotr Kubaj	cmpldi	8,0
2828*3a608692SPiotr Kubaj	beq	.Lxts_enc6x_ret
2829*3a608692SPiotr Kubaj
2830*3a608692SPiotr Kubaj	vxor	8,17,23
2831*3a608692SPiotr Kubaj
2832*3a608692SPiotr Kubaj	.long	0x7D004799
2833*3a608692SPiotr Kubaj
2834*3a608692SPiotr Kubaj.Lxts_enc6x_ret:
2835*3a608692SPiotr Kubaj	mtlr	11
2836*3a608692SPiotr Kubaj	li	10,79
2837*3a608692SPiotr Kubaj	li	11,95
2838*3a608692SPiotr Kubaj	stvx	9,10,1
2839*3a608692SPiotr Kubaj	addi	10,10,32
2840*3a608692SPiotr Kubaj	stvx	9,11,1
2841*3a608692SPiotr Kubaj	addi	11,11,32
2842*3a608692SPiotr Kubaj	stvx	9,10,1
2843*3a608692SPiotr Kubaj	addi	10,10,32
2844*3a608692SPiotr Kubaj	stvx	9,11,1
2845*3a608692SPiotr Kubaj	addi	11,11,32
2846*3a608692SPiotr Kubaj	stvx	9,10,1
2847*3a608692SPiotr Kubaj	addi	10,10,32
2848*3a608692SPiotr Kubaj	stvx	9,11,1
2849*3a608692SPiotr Kubaj	addi	11,11,32
2850*3a608692SPiotr Kubaj	stvx	9,10,1
2851*3a608692SPiotr Kubaj	addi	10,10,32
2852*3a608692SPiotr Kubaj	stvx	9,11,1
2853*3a608692SPiotr Kubaj	addi	11,11,32
2854*3a608692SPiotr Kubaj
2855*3a608692SPiotr Kubaj	or	12,12,12
2856*3a608692SPiotr Kubaj	lvx	20,10,1
2857*3a608692SPiotr Kubaj	addi	10,10,32
2858*3a608692SPiotr Kubaj	lvx	21,11,1
2859*3a608692SPiotr Kubaj	addi	11,11,32
2860*3a608692SPiotr Kubaj	lvx	22,10,1
2861*3a608692SPiotr Kubaj	addi	10,10,32
2862*3a608692SPiotr Kubaj	lvx	23,11,1
2863*3a608692SPiotr Kubaj	addi	11,11,32
2864*3a608692SPiotr Kubaj	lvx	24,10,1
2865*3a608692SPiotr Kubaj	addi	10,10,32
2866*3a608692SPiotr Kubaj	lvx	25,11,1
2867*3a608692SPiotr Kubaj	addi	11,11,32
2868*3a608692SPiotr Kubaj	lvx	26,10,1
2869*3a608692SPiotr Kubaj	addi	10,10,32
2870*3a608692SPiotr Kubaj	lvx	27,11,1
2871*3a608692SPiotr Kubaj	addi	11,11,32
2872*3a608692SPiotr Kubaj	lvx	28,10,1
2873*3a608692SPiotr Kubaj	addi	10,10,32
2874*3a608692SPiotr Kubaj	lvx	29,11,1
2875*3a608692SPiotr Kubaj	addi	11,11,32
2876*3a608692SPiotr Kubaj	lvx	30,10,1
2877*3a608692SPiotr Kubaj	lvx	31,11,1
2878*3a608692SPiotr Kubaj	ld	26,400(1)
2879*3a608692SPiotr Kubaj	ld	27,408(1)
2880*3a608692SPiotr Kubaj	ld	28,416(1)
2881*3a608692SPiotr Kubaj	ld	29,424(1)
2882*3a608692SPiotr Kubaj	ld	30,432(1)
2883*3a608692SPiotr Kubaj	ld	31,440(1)
2884*3a608692SPiotr Kubaj	addi	1,1,448
2885*3a608692SPiotr Kubaj	blr
2886*3a608692SPiotr Kubaj.long	0
2887*3a608692SPiotr Kubaj.byte	0,12,0x04,1,0x80,6,6,0
2888*3a608692SPiotr Kubaj.long	0
2889*3a608692SPiotr Kubaj
2890*3a608692SPiotr Kubaj.align	5
2891*3a608692SPiotr Kubaj_aesp8_xts_enc5x:
2892*3a608692SPiotr Kubaj	.long	0x10E7C508
2893*3a608692SPiotr Kubaj	.long	0x118CC508
2894*3a608692SPiotr Kubaj	.long	0x11ADC508
2895*3a608692SPiotr Kubaj	.long	0x11CEC508
2896*3a608692SPiotr Kubaj	.long	0x11EFC508
2897*3a608692SPiotr Kubaj	lvx	24,26,7
2898*3a608692SPiotr Kubaj	addi	7,7,0x20
2899*3a608692SPiotr Kubaj
2900*3a608692SPiotr Kubaj	.long	0x10E7CD08
2901*3a608692SPiotr Kubaj	.long	0x118CCD08
2902*3a608692SPiotr Kubaj	.long	0x11ADCD08
2903*3a608692SPiotr Kubaj	.long	0x11CECD08
2904*3a608692SPiotr Kubaj	.long	0x11EFCD08
2905*3a608692SPiotr Kubaj	lvx	25,3,7
2906*3a608692SPiotr Kubaj	bdnz	_aesp8_xts_enc5x
2907*3a608692SPiotr Kubaj
2908*3a608692SPiotr Kubaj	add	10,10,31
2909*3a608692SPiotr Kubaj	cmpwi	31,0
2910*3a608692SPiotr Kubaj	.long	0x10E7C508
2911*3a608692SPiotr Kubaj	.long	0x118CC508
2912*3a608692SPiotr Kubaj	.long	0x11ADC508
2913*3a608692SPiotr Kubaj	.long	0x11CEC508
2914*3a608692SPiotr Kubaj	.long	0x11EFC508
2915*3a608692SPiotr Kubaj
2916*3a608692SPiotr Kubaj	subi	10,10,16
2917*3a608692SPiotr Kubaj	.long	0x10E7CD08
2918*3a608692SPiotr Kubaj	.long	0x118CCD08
2919*3a608692SPiotr Kubaj	.long	0x11ADCD08
2920*3a608692SPiotr Kubaj	.long	0x11CECD08
2921*3a608692SPiotr Kubaj	.long	0x11EFCD08
2922*3a608692SPiotr Kubaj	vxor	17,17,31
2923*3a608692SPiotr Kubaj
2924*3a608692SPiotr Kubaj	.long	0x10E7D508
2925*3a608692SPiotr Kubaj	lvsr	5,0,31
2926*3a608692SPiotr Kubaj	.long	0x118CD508
2927*3a608692SPiotr Kubaj	.long	0x11ADD508
2928*3a608692SPiotr Kubaj	.long	0x11CED508
2929*3a608692SPiotr Kubaj	.long	0x11EFD508
2930*3a608692SPiotr Kubaj	vxor	1,18,31
2931*3a608692SPiotr Kubaj
2932*3a608692SPiotr Kubaj	.long	0x10E7DD08
2933*3a608692SPiotr Kubaj	.long	0x7C005699
2934*3a608692SPiotr Kubaj	.long	0x118CDD08
2935*3a608692SPiotr Kubaj	.long	0x11ADDD08
2936*3a608692SPiotr Kubaj	.long	0x11CEDD08
2937*3a608692SPiotr Kubaj	.long	0x11EFDD08
2938*3a608692SPiotr Kubaj	vxor	2,19,31
2939*3a608692SPiotr Kubaj
2940*3a608692SPiotr Kubaj	addi	7,1,64+15
2941*3a608692SPiotr Kubaj	.long	0x10E7E508
2942*3a608692SPiotr Kubaj	.long	0x118CE508
2943*3a608692SPiotr Kubaj	.long	0x11ADE508
2944*3a608692SPiotr Kubaj	.long	0x11CEE508
2945*3a608692SPiotr Kubaj	.long	0x11EFE508
2946*3a608692SPiotr Kubaj	lvx	24,0,7
2947*3a608692SPiotr Kubaj	vxor	3,20,31
2948*3a608692SPiotr Kubaj
2949*3a608692SPiotr Kubaj	.long	0x10E7ED08
2950*3a608692SPiotr Kubaj
2951*3a608692SPiotr Kubaj	.long	0x118CED08
2952*3a608692SPiotr Kubaj	.long	0x11ADED08
2953*3a608692SPiotr Kubaj	.long	0x11CEED08
2954*3a608692SPiotr Kubaj	.long	0x11EFED08
2955*3a608692SPiotr Kubaj	lvx	25,3,7
2956*3a608692SPiotr Kubaj	vxor	4,21,31
2957*3a608692SPiotr Kubaj
2958*3a608692SPiotr Kubaj	.long	0x10E7F508
2959*3a608692SPiotr Kubaj	vperm	0,0,0,5
2960*3a608692SPiotr Kubaj	.long	0x118CF508
2961*3a608692SPiotr Kubaj	.long	0x11ADF508
2962*3a608692SPiotr Kubaj	.long	0x11CEF508
2963*3a608692SPiotr Kubaj	.long	0x11EFF508
2964*3a608692SPiotr Kubaj
2965*3a608692SPiotr Kubaj	.long	0x10E78D09
2966*3a608692SPiotr Kubaj	.long	0x118C0D09
2967*3a608692SPiotr Kubaj	.long	0x11AD1509
2968*3a608692SPiotr Kubaj	.long	0x11CE1D09
2969*3a608692SPiotr Kubaj	.long	0x11EF2509
2970*3a608692SPiotr Kubaj	blr
2971*3a608692SPiotr Kubaj.long	0
2972*3a608692SPiotr Kubaj.byte	0,12,0x14,0,0,0,0,0
2973*3a608692SPiotr Kubaj
2974*3a608692SPiotr Kubaj.align	5
2975*3a608692SPiotr Kubaj_aesp8_xts_decrypt6x:
2976*3a608692SPiotr Kubaj	stdu	1,-448(1)
2977*3a608692SPiotr Kubaj	mflr	11
2978*3a608692SPiotr Kubaj	li	7,207
2979*3a608692SPiotr Kubaj	li	3,223
2980*3a608692SPiotr Kubaj	std	11,464(1)
2981*3a608692SPiotr Kubaj	stvx	20,7,1
2982*3a608692SPiotr Kubaj	addi	7,7,32
2983*3a608692SPiotr Kubaj	stvx	21,3,1
2984*3a608692SPiotr Kubaj	addi	3,3,32
2985*3a608692SPiotr Kubaj	stvx	22,7,1
2986*3a608692SPiotr Kubaj	addi	7,7,32
2987*3a608692SPiotr Kubaj	stvx	23,3,1
2988*3a608692SPiotr Kubaj	addi	3,3,32
2989*3a608692SPiotr Kubaj	stvx	24,7,1
2990*3a608692SPiotr Kubaj	addi	7,7,32
2991*3a608692SPiotr Kubaj	stvx	25,3,1
2992*3a608692SPiotr Kubaj	addi	3,3,32
2993*3a608692SPiotr Kubaj	stvx	26,7,1
2994*3a608692SPiotr Kubaj	addi	7,7,32
2995*3a608692SPiotr Kubaj	stvx	27,3,1
2996*3a608692SPiotr Kubaj	addi	3,3,32
2997*3a608692SPiotr Kubaj	stvx	28,7,1
2998*3a608692SPiotr Kubaj	addi	7,7,32
2999*3a608692SPiotr Kubaj	stvx	29,3,1
3000*3a608692SPiotr Kubaj	addi	3,3,32
3001*3a608692SPiotr Kubaj	stvx	30,7,1
3002*3a608692SPiotr Kubaj	stvx	31,3,1
3003*3a608692SPiotr Kubaj	li	0,-1
3004*3a608692SPiotr Kubaj	stw	12,396(1)
3005*3a608692SPiotr Kubaj	li	3,0x10
3006*3a608692SPiotr Kubaj	std	26,400(1)
3007*3a608692SPiotr Kubaj	li	26,0x20
3008*3a608692SPiotr Kubaj	std	27,408(1)
3009*3a608692SPiotr Kubaj	li	27,0x30
3010*3a608692SPiotr Kubaj	std	28,416(1)
3011*3a608692SPiotr Kubaj	li	28,0x40
3012*3a608692SPiotr Kubaj	std	29,424(1)
3013*3a608692SPiotr Kubaj	li	29,0x50
3014*3a608692SPiotr Kubaj	std	30,432(1)
3015*3a608692SPiotr Kubaj	li	30,0x60
3016*3a608692SPiotr Kubaj	std	31,440(1)
3017*3a608692SPiotr Kubaj	li	31,0x70
3018*3a608692SPiotr Kubaj	or	0,0,0
3019*3a608692SPiotr Kubaj
3020*3a608692SPiotr Kubaj	subi	9,9,3
3021*3a608692SPiotr Kubaj
3022*3a608692SPiotr Kubaj	lvx	23,0,6
3023*3a608692SPiotr Kubaj	lvx	30,3,6
3024*3a608692SPiotr Kubaj	addi	6,6,0x20
3025*3a608692SPiotr Kubaj	lvx	31,0,6
3026*3a608692SPiotr Kubaj	vperm	23,23,30,7
3027*3a608692SPiotr Kubaj	addi	7,1,64+15
3028*3a608692SPiotr Kubaj	mtctr	9
3029*3a608692SPiotr Kubaj
3030*3a608692SPiotr Kubaj.Load_xts_dec_key:
3031*3a608692SPiotr Kubaj	vperm	24,30,31,7
3032*3a608692SPiotr Kubaj	lvx	30,3,6
3033*3a608692SPiotr Kubaj	addi	6,6,0x20
3034*3a608692SPiotr Kubaj	stvx	24,0,7
3035*3a608692SPiotr Kubaj	vperm	25,31,30,7
3036*3a608692SPiotr Kubaj	lvx	31,0,6
3037*3a608692SPiotr Kubaj	stvx	25,3,7
3038*3a608692SPiotr Kubaj	addi	7,7,0x20
3039*3a608692SPiotr Kubaj	bdnz	.Load_xts_dec_key
3040*3a608692SPiotr Kubaj
3041*3a608692SPiotr Kubaj	lvx	26,3,6
3042*3a608692SPiotr Kubaj	vperm	24,30,31,7
3043*3a608692SPiotr Kubaj	lvx	27,26,6
3044*3a608692SPiotr Kubaj	stvx	24,0,7
3045*3a608692SPiotr Kubaj	vperm	25,31,26,7
3046*3a608692SPiotr Kubaj	lvx	28,27,6
3047*3a608692SPiotr Kubaj	stvx	25,3,7
3048*3a608692SPiotr Kubaj	addi	7,1,64+15
3049*3a608692SPiotr Kubaj	vperm	26,26,27,7
3050*3a608692SPiotr Kubaj	lvx	29,28,6
3051*3a608692SPiotr Kubaj	vperm	27,27,28,7
3052*3a608692SPiotr Kubaj	lvx	30,29,6
3053*3a608692SPiotr Kubaj	vperm	28,28,29,7
3054*3a608692SPiotr Kubaj	lvx	31,30,6
3055*3a608692SPiotr Kubaj	vperm	29,29,30,7
3056*3a608692SPiotr Kubaj	lvx	22,31,6
3057*3a608692SPiotr Kubaj	vperm	30,30,31,7
3058*3a608692SPiotr Kubaj	lvx	24,0,7
3059*3a608692SPiotr Kubaj	vperm	31,31,22,7
3060*3a608692SPiotr Kubaj	lvx	25,3,7
3061*3a608692SPiotr Kubaj
3062*3a608692SPiotr Kubaj	vperm	0,2,4,5
3063*3a608692SPiotr Kubaj	subi	10,10,31
3064*3a608692SPiotr Kubaj	vxor	17,8,23
3065*3a608692SPiotr Kubaj	vsrab	11,8,9
3066*3a608692SPiotr Kubaj	vaddubm	8,8,8
3067*3a608692SPiotr Kubaj	vsldoi	11,11,11,15
3068*3a608692SPiotr Kubaj	vand	11,11,10
3069*3a608692SPiotr Kubaj	vxor	7,0,17
3070*3a608692SPiotr Kubaj	vxor	8,8,11
3071*3a608692SPiotr Kubaj
3072*3a608692SPiotr Kubaj	.long	0x7C235699
3073*3a608692SPiotr Kubaj	vxor	18,8,23
3074*3a608692SPiotr Kubaj	vsrab	11,8,9
3075*3a608692SPiotr Kubaj	vaddubm	8,8,8
3076*3a608692SPiotr Kubaj	vsldoi	11,11,11,15
3077*3a608692SPiotr Kubaj
3078*3a608692SPiotr Kubaj	vand	11,11,10
3079*3a608692SPiotr Kubaj	vxor	12,1,18
3080*3a608692SPiotr Kubaj	vxor	8,8,11
3081*3a608692SPiotr Kubaj
3082*3a608692SPiotr Kubaj	.long	0x7C5A5699
3083*3a608692SPiotr Kubaj	andi.	31,5,15
3084*3a608692SPiotr Kubaj	vxor	19,8,23
3085*3a608692SPiotr Kubaj	vsrab	11,8,9
3086*3a608692SPiotr Kubaj	vaddubm	8,8,8
3087*3a608692SPiotr Kubaj	vsldoi	11,11,11,15
3088*3a608692SPiotr Kubaj
3089*3a608692SPiotr Kubaj	vand	11,11,10
3090*3a608692SPiotr Kubaj	vxor	13,2,19
3091*3a608692SPiotr Kubaj	vxor	8,8,11
3092*3a608692SPiotr Kubaj
3093*3a608692SPiotr Kubaj	.long	0x7C7B5699
3094*3a608692SPiotr Kubaj	sub	5,5,31
3095*3a608692SPiotr Kubaj	vxor	20,8,23
3096*3a608692SPiotr Kubaj	vsrab	11,8,9
3097*3a608692SPiotr Kubaj	vaddubm	8,8,8
3098*3a608692SPiotr Kubaj	vsldoi	11,11,11,15
3099*3a608692SPiotr Kubaj
3100*3a608692SPiotr Kubaj	vand	11,11,10
3101*3a608692SPiotr Kubaj	vxor	14,3,20
3102*3a608692SPiotr Kubaj	vxor	8,8,11
3103*3a608692SPiotr Kubaj
3104*3a608692SPiotr Kubaj	.long	0x7C9C5699
3105*3a608692SPiotr Kubaj	subi	5,5,0x60
3106*3a608692SPiotr Kubaj	vxor	21,8,23
3107*3a608692SPiotr Kubaj	vsrab	11,8,9
3108*3a608692SPiotr Kubaj	vaddubm	8,8,8
3109*3a608692SPiotr Kubaj	vsldoi	11,11,11,15
3110*3a608692SPiotr Kubaj
3111*3a608692SPiotr Kubaj	vand	11,11,10
3112*3a608692SPiotr Kubaj	vxor	15,4,21
3113*3a608692SPiotr Kubaj	vxor	8,8,11
3114*3a608692SPiotr Kubaj
3115*3a608692SPiotr Kubaj	.long	0x7CBD5699
3116*3a608692SPiotr Kubaj	addi	10,10,0x60
3117*3a608692SPiotr Kubaj	vxor	22,8,23
3118*3a608692SPiotr Kubaj	vsrab	11,8,9
3119*3a608692SPiotr Kubaj	vaddubm	8,8,8
3120*3a608692SPiotr Kubaj	vsldoi	11,11,11,15
3121*3a608692SPiotr Kubaj
3122*3a608692SPiotr Kubaj	vand	11,11,10
3123*3a608692SPiotr Kubaj	vxor	16,5,22
3124*3a608692SPiotr Kubaj	vxor	8,8,11
3125*3a608692SPiotr Kubaj
3126*3a608692SPiotr Kubaj	vxor	31,31,23
3127*3a608692SPiotr Kubaj	mtctr	9
3128*3a608692SPiotr Kubaj	b	.Loop_xts_dec6x
3129*3a608692SPiotr Kubaj
3130*3a608692SPiotr Kubaj.align	5
3131*3a608692SPiotr Kubaj.Loop_xts_dec6x:
3132*3a608692SPiotr Kubaj	.long	0x10E7C548
3133*3a608692SPiotr Kubaj	.long	0x118CC548
3134*3a608692SPiotr Kubaj	.long	0x11ADC548
3135*3a608692SPiotr Kubaj	.long	0x11CEC548
3136*3a608692SPiotr Kubaj	.long	0x11EFC548
3137*3a608692SPiotr Kubaj	.long	0x1210C548
3138*3a608692SPiotr Kubaj	lvx	24,26,7
3139*3a608692SPiotr Kubaj	addi	7,7,0x20
3140*3a608692SPiotr Kubaj
3141*3a608692SPiotr Kubaj	.long	0x10E7CD48
3142*3a608692SPiotr Kubaj	.long	0x118CCD48
3143*3a608692SPiotr Kubaj	.long	0x11ADCD48
3144*3a608692SPiotr Kubaj	.long	0x11CECD48
3145*3a608692SPiotr Kubaj	.long	0x11EFCD48
3146*3a608692SPiotr Kubaj	.long	0x1210CD48
3147*3a608692SPiotr Kubaj	lvx	25,3,7
3148*3a608692SPiotr Kubaj	bdnz	.Loop_xts_dec6x
3149*3a608692SPiotr Kubaj
3150*3a608692SPiotr Kubaj	subic	5,5,96
3151*3a608692SPiotr Kubaj	vxor	0,17,31
3152*3a608692SPiotr Kubaj	.long	0x10E7C548
3153*3a608692SPiotr Kubaj	.long	0x118CC548
3154*3a608692SPiotr Kubaj	vsrab	11,8,9
3155*3a608692SPiotr Kubaj	vxor	17,8,23
3156*3a608692SPiotr Kubaj	vaddubm	8,8,8
3157*3a608692SPiotr Kubaj	.long	0x11ADC548
3158*3a608692SPiotr Kubaj	.long	0x11CEC548
3159*3a608692SPiotr Kubaj	vsldoi	11,11,11,15
3160*3a608692SPiotr Kubaj	.long	0x11EFC548
3161*3a608692SPiotr Kubaj	.long	0x1210C548
3162*3a608692SPiotr Kubaj
3163*3a608692SPiotr Kubaj	subfe.	0,0,0
3164*3a608692SPiotr Kubaj	vand	11,11,10
3165*3a608692SPiotr Kubaj	.long	0x10E7CD48
3166*3a608692SPiotr Kubaj	.long	0x118CCD48
3167*3a608692SPiotr Kubaj	vxor	8,8,11
3168*3a608692SPiotr Kubaj	.long	0x11ADCD48
3169*3a608692SPiotr Kubaj	.long	0x11CECD48
3170*3a608692SPiotr Kubaj	vxor	1,18,31
3171*3a608692SPiotr Kubaj	vsrab	11,8,9
3172*3a608692SPiotr Kubaj	vxor	18,8,23
3173*3a608692SPiotr Kubaj	.long	0x11EFCD48
3174*3a608692SPiotr Kubaj	.long	0x1210CD48
3175*3a608692SPiotr Kubaj
3176*3a608692SPiotr Kubaj	and	0,0,5
3177*3a608692SPiotr Kubaj	vaddubm	8,8,8
3178*3a608692SPiotr Kubaj	vsldoi	11,11,11,15
3179*3a608692SPiotr Kubaj	.long	0x10E7D548
3180*3a608692SPiotr Kubaj	.long	0x118CD548
3181*3a608692SPiotr Kubaj	vand	11,11,10
3182*3a608692SPiotr Kubaj	.long	0x11ADD548
3183*3a608692SPiotr Kubaj	.long	0x11CED548
3184*3a608692SPiotr Kubaj	vxor	8,8,11
3185*3a608692SPiotr Kubaj	.long	0x11EFD548
3186*3a608692SPiotr Kubaj	.long	0x1210D548
3187*3a608692SPiotr Kubaj
3188*3a608692SPiotr Kubaj	add	10,10,0
3189*3a608692SPiotr Kubaj
3190*3a608692SPiotr Kubaj
3191*3a608692SPiotr Kubaj
3192*3a608692SPiotr Kubaj	vxor	2,19,31
3193*3a608692SPiotr Kubaj	vsrab	11,8,9
3194*3a608692SPiotr Kubaj	vxor	19,8,23
3195*3a608692SPiotr Kubaj	vaddubm	8,8,8
3196*3a608692SPiotr Kubaj	.long	0x10E7DD48
3197*3a608692SPiotr Kubaj	.long	0x118CDD48
3198*3a608692SPiotr Kubaj	vsldoi	11,11,11,15
3199*3a608692SPiotr Kubaj	.long	0x11ADDD48
3200*3a608692SPiotr Kubaj	.long	0x11CEDD48
3201*3a608692SPiotr Kubaj	vand	11,11,10
3202*3a608692SPiotr Kubaj	.long	0x11EFDD48
3203*3a608692SPiotr Kubaj	.long	0x1210DD48
3204*3a608692SPiotr Kubaj
3205*3a608692SPiotr Kubaj	addi	7,1,64+15
3206*3a608692SPiotr Kubaj	vxor	8,8,11
3207*3a608692SPiotr Kubaj	.long	0x10E7E548
3208*3a608692SPiotr Kubaj	.long	0x118CE548
3209*3a608692SPiotr Kubaj	vxor	3,20,31
3210*3a608692SPiotr Kubaj	vsrab	11,8,9
3211*3a608692SPiotr Kubaj	vxor	20,8,23
3212*3a608692SPiotr Kubaj	.long	0x11ADE548
3213*3a608692SPiotr Kubaj	.long	0x11CEE548
3214*3a608692SPiotr Kubaj	vaddubm	8,8,8
3215*3a608692SPiotr Kubaj	vsldoi	11,11,11,15
3216*3a608692SPiotr Kubaj	.long	0x11EFE548
3217*3a608692SPiotr Kubaj	.long	0x1210E548
3218*3a608692SPiotr Kubaj	lvx	24,0,7
3219*3a608692SPiotr Kubaj	vand	11,11,10
3220*3a608692SPiotr Kubaj
3221*3a608692SPiotr Kubaj	.long	0x10E7ED48
3222*3a608692SPiotr Kubaj	.long	0x118CED48
3223*3a608692SPiotr Kubaj	vxor	8,8,11
3224*3a608692SPiotr Kubaj	.long	0x11ADED48
3225*3a608692SPiotr Kubaj	.long	0x11CEED48
3226*3a608692SPiotr Kubaj	vxor	4,21,31
3227*3a608692SPiotr Kubaj	vsrab	11,8,9
3228*3a608692SPiotr Kubaj	vxor	21,8,23
3229*3a608692SPiotr Kubaj	.long	0x11EFED48
3230*3a608692SPiotr Kubaj	.long	0x1210ED48
3231*3a608692SPiotr Kubaj	lvx	25,3,7
3232*3a608692SPiotr Kubaj	vaddubm	8,8,8
3233*3a608692SPiotr Kubaj	vsldoi	11,11,11,15
3234*3a608692SPiotr Kubaj
3235*3a608692SPiotr Kubaj	.long	0x10E7F548
3236*3a608692SPiotr Kubaj	.long	0x118CF548
3237*3a608692SPiotr Kubaj	vand	11,11,10
3238*3a608692SPiotr Kubaj	.long	0x11ADF548
3239*3a608692SPiotr Kubaj	.long	0x11CEF548
3240*3a608692SPiotr Kubaj	vxor	8,8,11
3241*3a608692SPiotr Kubaj	.long	0x11EFF548
3242*3a608692SPiotr Kubaj	.long	0x1210F548
3243*3a608692SPiotr Kubaj	vxor	5,22,31
3244*3a608692SPiotr Kubaj	vsrab	11,8,9
3245*3a608692SPiotr Kubaj	vxor	22,8,23
3246*3a608692SPiotr Kubaj
3247*3a608692SPiotr Kubaj	.long	0x10E70549
3248*3a608692SPiotr Kubaj	.long	0x7C005699
3249*3a608692SPiotr Kubaj	vaddubm	8,8,8
3250*3a608692SPiotr Kubaj	vsldoi	11,11,11,15
3251*3a608692SPiotr Kubaj	.long	0x118C0D49
3252*3a608692SPiotr Kubaj	.long	0x7C235699
3253*3a608692SPiotr Kubaj	.long	0x11AD1549
3254*3a608692SPiotr Kubaj
3255*3a608692SPiotr Kubaj	.long	0x7C5A5699
3256*3a608692SPiotr Kubaj	vand	11,11,10
3257*3a608692SPiotr Kubaj	.long	0x11CE1D49
3258*3a608692SPiotr Kubaj
3259*3a608692SPiotr Kubaj	.long	0x7C7B5699
3260*3a608692SPiotr Kubaj	.long	0x11EF2549
3261*3a608692SPiotr Kubaj
3262*3a608692SPiotr Kubaj	.long	0x7C9C5699
3263*3a608692SPiotr Kubaj	vxor	8,8,11
3264*3a608692SPiotr Kubaj	.long	0x12102D49
3265*3a608692SPiotr Kubaj
3266*3a608692SPiotr Kubaj	.long	0x7CBD5699
3267*3a608692SPiotr Kubaj	addi	10,10,0x60
3268*3a608692SPiotr Kubaj
3269*3a608692SPiotr Kubaj
3270*3a608692SPiotr Kubaj
3271*3a608692SPiotr Kubaj
3272*3a608692SPiotr Kubaj
3273*3a608692SPiotr Kubaj	.long	0x7CE02799
3274*3a608692SPiotr Kubaj	vxor	7,0,17
3275*3a608692SPiotr Kubaj
3276*3a608692SPiotr Kubaj	.long	0x7D832799
3277*3a608692SPiotr Kubaj	vxor	12,1,18
3278*3a608692SPiotr Kubaj
3279*3a608692SPiotr Kubaj	.long	0x7DBA2799
3280*3a608692SPiotr Kubaj	vxor	13,2,19
3281*3a608692SPiotr Kubaj
3282*3a608692SPiotr Kubaj	.long	0x7DDB2799
3283*3a608692SPiotr Kubaj	vxor	14,3,20
3284*3a608692SPiotr Kubaj
3285*3a608692SPiotr Kubaj	.long	0x7DFC2799
3286*3a608692SPiotr Kubaj	vxor	15,4,21
3287*3a608692SPiotr Kubaj	.long	0x7E1D2799
3288*3a608692SPiotr Kubaj	vxor	16,5,22
3289*3a608692SPiotr Kubaj	addi	4,4,0x60
3290*3a608692SPiotr Kubaj
3291*3a608692SPiotr Kubaj	mtctr	9
3292*3a608692SPiotr Kubaj	beq	.Loop_xts_dec6x
3293*3a608692SPiotr Kubaj
3294*3a608692SPiotr Kubaj	addic.	5,5,0x60
3295*3a608692SPiotr Kubaj	beq	.Lxts_dec6x_zero
3296*3a608692SPiotr Kubaj	cmpwi	5,0x20
3297*3a608692SPiotr Kubaj	blt	.Lxts_dec6x_one
3298*3a608692SPiotr Kubaj	nop
3299*3a608692SPiotr Kubaj	beq	.Lxts_dec6x_two
3300*3a608692SPiotr Kubaj	cmpwi	5,0x40
3301*3a608692SPiotr Kubaj	blt	.Lxts_dec6x_three
3302*3a608692SPiotr Kubaj	nop
3303*3a608692SPiotr Kubaj	beq	.Lxts_dec6x_four
3304*3a608692SPiotr Kubaj
3305*3a608692SPiotr Kubaj.Lxts_dec6x_five:
3306*3a608692SPiotr Kubaj	vxor	7,1,17
3307*3a608692SPiotr Kubaj	vxor	12,2,18
3308*3a608692SPiotr Kubaj	vxor	13,3,19
3309*3a608692SPiotr Kubaj	vxor	14,4,20
3310*3a608692SPiotr Kubaj	vxor	15,5,21
3311*3a608692SPiotr Kubaj
3312*3a608692SPiotr Kubaj	bl	_aesp8_xts_dec5x
3313*3a608692SPiotr Kubaj
3314*3a608692SPiotr Kubaj
3315*3a608692SPiotr Kubaj	vor	17,22,22
3316*3a608692SPiotr Kubaj	vxor	18,8,23
3317*3a608692SPiotr Kubaj
3318*3a608692SPiotr Kubaj	.long	0x7CE02799
3319*3a608692SPiotr Kubaj	vxor	7,0,18
3320*3a608692SPiotr Kubaj
3321*3a608692SPiotr Kubaj	.long	0x7D832799
3322*3a608692SPiotr Kubaj
3323*3a608692SPiotr Kubaj	.long	0x7DBA2799
3324*3a608692SPiotr Kubaj
3325*3a608692SPiotr Kubaj	.long	0x7DDB2799
3326*3a608692SPiotr Kubaj	.long	0x7DFC2799
3327*3a608692SPiotr Kubaj	addi	4,4,0x50
3328*3a608692SPiotr Kubaj	bne	.Lxts_dec6x_steal
3329*3a608692SPiotr Kubaj	b	.Lxts_dec6x_done
3330*3a608692SPiotr Kubaj
3331*3a608692SPiotr Kubaj.align	4
3332*3a608692SPiotr Kubaj.Lxts_dec6x_four:
3333*3a608692SPiotr Kubaj	vxor	7,2,17
3334*3a608692SPiotr Kubaj	vxor	12,3,18
3335*3a608692SPiotr Kubaj	vxor	13,4,19
3336*3a608692SPiotr Kubaj	vxor	14,5,20
3337*3a608692SPiotr Kubaj	vxor	15,15,15
3338*3a608692SPiotr Kubaj
3339*3a608692SPiotr Kubaj	bl	_aesp8_xts_dec5x
3340*3a608692SPiotr Kubaj
3341*3a608692SPiotr Kubaj
3342*3a608692SPiotr Kubaj	vor	17,21,21
3343*3a608692SPiotr Kubaj	vor	18,22,22
3344*3a608692SPiotr Kubaj
3345*3a608692SPiotr Kubaj	.long	0x7CE02799
3346*3a608692SPiotr Kubaj	vxor	7,0,22
3347*3a608692SPiotr Kubaj
3348*3a608692SPiotr Kubaj	.long	0x7D832799
3349*3a608692SPiotr Kubaj
3350*3a608692SPiotr Kubaj	.long	0x7DBA2799
3351*3a608692SPiotr Kubaj	.long	0x7DDB2799
3352*3a608692SPiotr Kubaj	addi	4,4,0x40
3353*3a608692SPiotr Kubaj	bne	.Lxts_dec6x_steal
3354*3a608692SPiotr Kubaj	b	.Lxts_dec6x_done
3355*3a608692SPiotr Kubaj
3356*3a608692SPiotr Kubaj.align	4
3357*3a608692SPiotr Kubaj.Lxts_dec6x_three:
3358*3a608692SPiotr Kubaj	vxor	7,3,17
3359*3a608692SPiotr Kubaj	vxor	12,4,18
3360*3a608692SPiotr Kubaj	vxor	13,5,19
3361*3a608692SPiotr Kubaj	vxor	14,14,14
3362*3a608692SPiotr Kubaj	vxor	15,15,15
3363*3a608692SPiotr Kubaj
3364*3a608692SPiotr Kubaj	bl	_aesp8_xts_dec5x
3365*3a608692SPiotr Kubaj
3366*3a608692SPiotr Kubaj
3367*3a608692SPiotr Kubaj	vor	17,20,20
3368*3a608692SPiotr Kubaj	vor	18,21,21
3369*3a608692SPiotr Kubaj
3370*3a608692SPiotr Kubaj	.long	0x7CE02799
3371*3a608692SPiotr Kubaj	vxor	7,0,21
3372*3a608692SPiotr Kubaj
3373*3a608692SPiotr Kubaj	.long	0x7D832799
3374*3a608692SPiotr Kubaj	.long	0x7DBA2799
3375*3a608692SPiotr Kubaj	addi	4,4,0x30
3376*3a608692SPiotr Kubaj	bne	.Lxts_dec6x_steal
3377*3a608692SPiotr Kubaj	b	.Lxts_dec6x_done
3378*3a608692SPiotr Kubaj
3379*3a608692SPiotr Kubaj.align	4
3380*3a608692SPiotr Kubaj.Lxts_dec6x_two:
3381*3a608692SPiotr Kubaj	vxor	7,4,17
3382*3a608692SPiotr Kubaj	vxor	12,5,18
3383*3a608692SPiotr Kubaj	vxor	13,13,13
3384*3a608692SPiotr Kubaj	vxor	14,14,14
3385*3a608692SPiotr Kubaj	vxor	15,15,15
3386*3a608692SPiotr Kubaj
3387*3a608692SPiotr Kubaj	bl	_aesp8_xts_dec5x
3388*3a608692SPiotr Kubaj
3389*3a608692SPiotr Kubaj
3390*3a608692SPiotr Kubaj	vor	17,19,19
3391*3a608692SPiotr Kubaj	vor	18,20,20
3392*3a608692SPiotr Kubaj
3393*3a608692SPiotr Kubaj	.long	0x7CE02799
3394*3a608692SPiotr Kubaj	vxor	7,0,20
3395*3a608692SPiotr Kubaj	.long	0x7D832799
3396*3a608692SPiotr Kubaj	addi	4,4,0x20
3397*3a608692SPiotr Kubaj	bne	.Lxts_dec6x_steal
3398*3a608692SPiotr Kubaj	b	.Lxts_dec6x_done
3399*3a608692SPiotr Kubaj
3400*3a608692SPiotr Kubaj.align	4
3401*3a608692SPiotr Kubaj.Lxts_dec6x_one:
3402*3a608692SPiotr Kubaj	vxor	7,5,17
3403*3a608692SPiotr Kubaj	nop
3404*3a608692SPiotr Kubaj.Loop_xts_dec1x:
3405*3a608692SPiotr Kubaj	.long	0x10E7C548
3406*3a608692SPiotr Kubaj	lvx	24,26,7
3407*3a608692SPiotr Kubaj	addi	7,7,0x20
3408*3a608692SPiotr Kubaj
3409*3a608692SPiotr Kubaj	.long	0x10E7CD48
3410*3a608692SPiotr Kubaj	lvx	25,3,7
3411*3a608692SPiotr Kubaj	bdnz	.Loop_xts_dec1x
3412*3a608692SPiotr Kubaj
3413*3a608692SPiotr Kubaj	subi	0,31,1
3414*3a608692SPiotr Kubaj	.long	0x10E7C548
3415*3a608692SPiotr Kubaj
3416*3a608692SPiotr Kubaj	andi.	0,0,16
3417*3a608692SPiotr Kubaj	cmpwi	31,0
3418*3a608692SPiotr Kubaj	.long	0x10E7CD48
3419*3a608692SPiotr Kubaj
3420*3a608692SPiotr Kubaj	sub	10,10,0
3421*3a608692SPiotr Kubaj	.long	0x10E7D548
3422*3a608692SPiotr Kubaj
3423*3a608692SPiotr Kubaj	.long	0x7C005699
3424*3a608692SPiotr Kubaj	.long	0x10E7DD48
3425*3a608692SPiotr Kubaj
3426*3a608692SPiotr Kubaj	addi	7,1,64+15
3427*3a608692SPiotr Kubaj	.long	0x10E7E548
3428*3a608692SPiotr Kubaj	lvx	24,0,7
3429*3a608692SPiotr Kubaj
3430*3a608692SPiotr Kubaj	.long	0x10E7ED48
3431*3a608692SPiotr Kubaj	lvx	25,3,7
3432*3a608692SPiotr Kubaj	vxor	17,17,31
3433*3a608692SPiotr Kubaj
3434*3a608692SPiotr Kubaj
3435*3a608692SPiotr Kubaj	.long	0x10E7F548
3436*3a608692SPiotr Kubaj
3437*3a608692SPiotr Kubaj	mtctr	9
3438*3a608692SPiotr Kubaj	.long	0x10E78D49
3439*3a608692SPiotr Kubaj
3440*3a608692SPiotr Kubaj	vor	17,18,18
3441*3a608692SPiotr Kubaj	vor	18,19,19
3442*3a608692SPiotr Kubaj
3443*3a608692SPiotr Kubaj	.long	0x7CE02799
3444*3a608692SPiotr Kubaj	addi	4,4,0x10
3445*3a608692SPiotr Kubaj	vxor	7,0,19
3446*3a608692SPiotr Kubaj	bne	.Lxts_dec6x_steal
3447*3a608692SPiotr Kubaj	b	.Lxts_dec6x_done
3448*3a608692SPiotr Kubaj
3449*3a608692SPiotr Kubaj.align	4
3450*3a608692SPiotr Kubaj.Lxts_dec6x_zero:
3451*3a608692SPiotr Kubaj	cmpwi	31,0
3452*3a608692SPiotr Kubaj	beq	.Lxts_dec6x_done
3453*3a608692SPiotr Kubaj
3454*3a608692SPiotr Kubaj	.long	0x7C005699
3455*3a608692SPiotr Kubaj
3456*3a608692SPiotr Kubaj	vxor	7,0,18
3457*3a608692SPiotr Kubaj.Lxts_dec6x_steal:
3458*3a608692SPiotr Kubaj	.long	0x10E7C548
3459*3a608692SPiotr Kubaj	lvx	24,26,7
3460*3a608692SPiotr Kubaj	addi	7,7,0x20
3461*3a608692SPiotr Kubaj
3462*3a608692SPiotr Kubaj	.long	0x10E7CD48
3463*3a608692SPiotr Kubaj	lvx	25,3,7
3464*3a608692SPiotr Kubaj	bdnz	.Lxts_dec6x_steal
3465*3a608692SPiotr Kubaj
3466*3a608692SPiotr Kubaj	add	10,10,31
3467*3a608692SPiotr Kubaj	.long	0x10E7C548
3468*3a608692SPiotr Kubaj
3469*3a608692SPiotr Kubaj	cmpwi	31,0
3470*3a608692SPiotr Kubaj	.long	0x10E7CD48
3471*3a608692SPiotr Kubaj
3472*3a608692SPiotr Kubaj	.long	0x7C005699
3473*3a608692SPiotr Kubaj	.long	0x10E7D548
3474*3a608692SPiotr Kubaj
3475*3a608692SPiotr Kubaj	lvsr	5,0,31
3476*3a608692SPiotr Kubaj	.long	0x10E7DD48
3477*3a608692SPiotr Kubaj
3478*3a608692SPiotr Kubaj	addi	7,1,64+15
3479*3a608692SPiotr Kubaj	.long	0x10E7E548
3480*3a608692SPiotr Kubaj	lvx	24,0,7
3481*3a608692SPiotr Kubaj
3482*3a608692SPiotr Kubaj	.long	0x10E7ED48
3483*3a608692SPiotr Kubaj	lvx	25,3,7
3484*3a608692SPiotr Kubaj	vxor	18,18,31
3485*3a608692SPiotr Kubaj
3486*3a608692SPiotr Kubaj
3487*3a608692SPiotr Kubaj	.long	0x10E7F548
3488*3a608692SPiotr Kubaj
3489*3a608692SPiotr Kubaj	vperm	0,0,0,5
3490*3a608692SPiotr Kubaj	.long	0x11679549
3491*3a608692SPiotr Kubaj
3492*3a608692SPiotr Kubaj
3493*3a608692SPiotr Kubaj
3494*3a608692SPiotr Kubaj	.long	0x7D602799
3495*3a608692SPiotr Kubaj
3496*3a608692SPiotr Kubaj	vxor	7,7,7
3497*3a608692SPiotr Kubaj	vspltisb	12,-1
3498*3a608692SPiotr Kubaj	vperm	7,7,12,5
3499*3a608692SPiotr Kubaj	vsel	7,0,11,7
3500*3a608692SPiotr Kubaj	vxor	7,7,17
3501*3a608692SPiotr Kubaj
3502*3a608692SPiotr Kubaj	subi	30,4,1
3503*3a608692SPiotr Kubaj	mtctr	31
3504*3a608692SPiotr Kubaj.Loop_xts_dec6x_steal:
3505*3a608692SPiotr Kubaj	lbzu	0,1(30)
3506*3a608692SPiotr Kubaj	stb	0,16(30)
3507*3a608692SPiotr Kubaj	bdnz	.Loop_xts_dec6x_steal
3508*3a608692SPiotr Kubaj
3509*3a608692SPiotr Kubaj	li	31,0
3510*3a608692SPiotr Kubaj	mtctr	9
3511*3a608692SPiotr Kubaj	b	.Loop_xts_dec1x
3512*3a608692SPiotr Kubaj
3513*3a608692SPiotr Kubaj.align	4
3514*3a608692SPiotr Kubaj.Lxts_dec6x_done:
3515*3a608692SPiotr Kubaj	cmpldi	8,0
3516*3a608692SPiotr Kubaj	beq	.Lxts_dec6x_ret
3517*3a608692SPiotr Kubaj
3518*3a608692SPiotr Kubaj	vxor	8,17,23
3519*3a608692SPiotr Kubaj
3520*3a608692SPiotr Kubaj	.long	0x7D004799
3521*3a608692SPiotr Kubaj
3522*3a608692SPiotr Kubaj.Lxts_dec6x_ret:
3523*3a608692SPiotr Kubaj	mtlr	11
3524*3a608692SPiotr Kubaj	li	10,79
3525*3a608692SPiotr Kubaj	li	11,95
3526*3a608692SPiotr Kubaj	stvx	9,10,1
3527*3a608692SPiotr Kubaj	addi	10,10,32
3528*3a608692SPiotr Kubaj	stvx	9,11,1
3529*3a608692SPiotr Kubaj	addi	11,11,32
3530*3a608692SPiotr Kubaj	stvx	9,10,1
3531*3a608692SPiotr Kubaj	addi	10,10,32
3532*3a608692SPiotr Kubaj	stvx	9,11,1
3533*3a608692SPiotr Kubaj	addi	11,11,32
3534*3a608692SPiotr Kubaj	stvx	9,10,1
3535*3a608692SPiotr Kubaj	addi	10,10,32
3536*3a608692SPiotr Kubaj	stvx	9,11,1
3537*3a608692SPiotr Kubaj	addi	11,11,32
3538*3a608692SPiotr Kubaj	stvx	9,10,1
3539*3a608692SPiotr Kubaj	addi	10,10,32
3540*3a608692SPiotr Kubaj	stvx	9,11,1
3541*3a608692SPiotr Kubaj	addi	11,11,32
3542*3a608692SPiotr Kubaj
3543*3a608692SPiotr Kubaj	or	12,12,12
3544*3a608692SPiotr Kubaj	lvx	20,10,1
3545*3a608692SPiotr Kubaj	addi	10,10,32
3546*3a608692SPiotr Kubaj	lvx	21,11,1
3547*3a608692SPiotr Kubaj	addi	11,11,32
3548*3a608692SPiotr Kubaj	lvx	22,10,1
3549*3a608692SPiotr Kubaj	addi	10,10,32
3550*3a608692SPiotr Kubaj	lvx	23,11,1
3551*3a608692SPiotr Kubaj	addi	11,11,32
3552*3a608692SPiotr Kubaj	lvx	24,10,1
3553*3a608692SPiotr Kubaj	addi	10,10,32
3554*3a608692SPiotr Kubaj	lvx	25,11,1
3555*3a608692SPiotr Kubaj	addi	11,11,32
3556*3a608692SPiotr Kubaj	lvx	26,10,1
3557*3a608692SPiotr Kubaj	addi	10,10,32
3558*3a608692SPiotr Kubaj	lvx	27,11,1
3559*3a608692SPiotr Kubaj	addi	11,11,32
3560*3a608692SPiotr Kubaj	lvx	28,10,1
3561*3a608692SPiotr Kubaj	addi	10,10,32
3562*3a608692SPiotr Kubaj	lvx	29,11,1
3563*3a608692SPiotr Kubaj	addi	11,11,32
3564*3a608692SPiotr Kubaj	lvx	30,10,1
3565*3a608692SPiotr Kubaj	lvx	31,11,1
3566*3a608692SPiotr Kubaj	ld	26,400(1)
3567*3a608692SPiotr Kubaj	ld	27,408(1)
3568*3a608692SPiotr Kubaj	ld	28,416(1)
3569*3a608692SPiotr Kubaj	ld	29,424(1)
3570*3a608692SPiotr Kubaj	ld	30,432(1)
3571*3a608692SPiotr Kubaj	ld	31,440(1)
3572*3a608692SPiotr Kubaj	addi	1,1,448
3573*3a608692SPiotr Kubaj	blr
3574*3a608692SPiotr Kubaj.long	0
3575*3a608692SPiotr Kubaj.byte	0,12,0x04,1,0x80,6,6,0
3576*3a608692SPiotr Kubaj.long	0
3577*3a608692SPiotr Kubaj
3578*3a608692SPiotr Kubaj.align	5
3579*3a608692SPiotr Kubaj_aesp8_xts_dec5x:
3580*3a608692SPiotr Kubaj	.long	0x10E7C548
3581*3a608692SPiotr Kubaj	.long	0x118CC548
3582*3a608692SPiotr Kubaj	.long	0x11ADC548
3583*3a608692SPiotr Kubaj	.long	0x11CEC548
3584*3a608692SPiotr Kubaj	.long	0x11EFC548
3585*3a608692SPiotr Kubaj	lvx	24,26,7
3586*3a608692SPiotr Kubaj	addi	7,7,0x20
3587*3a608692SPiotr Kubaj
3588*3a608692SPiotr Kubaj	.long	0x10E7CD48
3589*3a608692SPiotr Kubaj	.long	0x118CCD48
3590*3a608692SPiotr Kubaj	.long	0x11ADCD48
3591*3a608692SPiotr Kubaj	.long	0x11CECD48
3592*3a608692SPiotr Kubaj	.long	0x11EFCD48
3593*3a608692SPiotr Kubaj	lvx	25,3,7
3594*3a608692SPiotr Kubaj	bdnz	_aesp8_xts_dec5x
3595*3a608692SPiotr Kubaj
3596*3a608692SPiotr Kubaj	subi	0,31,1
3597*3a608692SPiotr Kubaj	.long	0x10E7C548
3598*3a608692SPiotr Kubaj	.long	0x118CC548
3599*3a608692SPiotr Kubaj	.long	0x11ADC548
3600*3a608692SPiotr Kubaj	.long	0x11CEC548
3601*3a608692SPiotr Kubaj	.long	0x11EFC548
3602*3a608692SPiotr Kubaj
3603*3a608692SPiotr Kubaj	andi.	0,0,16
3604*3a608692SPiotr Kubaj	cmpwi	31,0
3605*3a608692SPiotr Kubaj	.long	0x10E7CD48
3606*3a608692SPiotr Kubaj	.long	0x118CCD48
3607*3a608692SPiotr Kubaj	.long	0x11ADCD48
3608*3a608692SPiotr Kubaj	.long	0x11CECD48
3609*3a608692SPiotr Kubaj	.long	0x11EFCD48
3610*3a608692SPiotr Kubaj	vxor	17,17,31
3611*3a608692SPiotr Kubaj
3612*3a608692SPiotr Kubaj	sub	10,10,0
3613*3a608692SPiotr Kubaj	.long	0x10E7D548
3614*3a608692SPiotr Kubaj	.long	0x118CD548
3615*3a608692SPiotr Kubaj	.long	0x11ADD548
3616*3a608692SPiotr Kubaj	.long	0x11CED548
3617*3a608692SPiotr Kubaj	.long	0x11EFD548
3618*3a608692SPiotr Kubaj	vxor	1,18,31
3619*3a608692SPiotr Kubaj
3620*3a608692SPiotr Kubaj	.long	0x10E7DD48
3621*3a608692SPiotr Kubaj	.long	0x7C005699
3622*3a608692SPiotr Kubaj	.long	0x118CDD48
3623*3a608692SPiotr Kubaj	.long	0x11ADDD48
3624*3a608692SPiotr Kubaj	.long	0x11CEDD48
3625*3a608692SPiotr Kubaj	.long	0x11EFDD48
3626*3a608692SPiotr Kubaj	vxor	2,19,31
3627*3a608692SPiotr Kubaj
3628*3a608692SPiotr Kubaj	addi	7,1,64+15
3629*3a608692SPiotr Kubaj	.long	0x10E7E548
3630*3a608692SPiotr Kubaj	.long	0x118CE548
3631*3a608692SPiotr Kubaj	.long	0x11ADE548
3632*3a608692SPiotr Kubaj	.long	0x11CEE548
3633*3a608692SPiotr Kubaj	.long	0x11EFE548
3634*3a608692SPiotr Kubaj	lvx	24,0,7
3635*3a608692SPiotr Kubaj	vxor	3,20,31
3636*3a608692SPiotr Kubaj
3637*3a608692SPiotr Kubaj	.long	0x10E7ED48
3638*3a608692SPiotr Kubaj
3639*3a608692SPiotr Kubaj	.long	0x118CED48
3640*3a608692SPiotr Kubaj	.long	0x11ADED48
3641*3a608692SPiotr Kubaj	.long	0x11CEED48
3642*3a608692SPiotr Kubaj	.long	0x11EFED48
3643*3a608692SPiotr Kubaj	lvx	25,3,7
3644*3a608692SPiotr Kubaj	vxor	4,21,31
3645*3a608692SPiotr Kubaj
3646*3a608692SPiotr Kubaj	.long	0x10E7F548
3647*3a608692SPiotr Kubaj	.long	0x118CF548
3648*3a608692SPiotr Kubaj	.long	0x11ADF548
3649*3a608692SPiotr Kubaj	.long	0x11CEF548
3650*3a608692SPiotr Kubaj	.long	0x11EFF548
3651*3a608692SPiotr Kubaj
3652*3a608692SPiotr Kubaj	.long	0x10E78D49
3653*3a608692SPiotr Kubaj	.long	0x118C0D49
3654*3a608692SPiotr Kubaj	.long	0x11AD1549
3655*3a608692SPiotr Kubaj	.long	0x11CE1D49
3656*3a608692SPiotr Kubaj	.long	0x11EF2549
3657*3a608692SPiotr Kubaj	mtctr	9
3658*3a608692SPiotr Kubaj	blr
3659*3a608692SPiotr Kubaj.long	0
3660*3a608692SPiotr Kubaj.byte	0,12,0x14,0,0,0,0,0
3661