xref: /freebsd/sys/crypto/openssl/powerpc/ghashp8-ppc.S (revision 71625ec9ad2a9bc8c09784fbd23b759830e0ee5f)
1*3a608692SPiotr Kubaj/* Do not modify. This file is auto-generated from ghashp8-ppc.pl. */
2*3a608692SPiotr Kubaj.machine	"any"
3*3a608692SPiotr Kubaj
4*3a608692SPiotr Kubaj.text
5*3a608692SPiotr Kubaj
6*3a608692SPiotr Kubaj.globl	gcm_init_p8
7*3a608692SPiotr Kubaj.type	gcm_init_p8,@function
8*3a608692SPiotr Kubaj.align	5
9*3a608692SPiotr Kubajgcm_init_p8:
10*3a608692SPiotr Kubaj	li	0,-4096
11*3a608692SPiotr Kubaj	li	8,0x10
12*3a608692SPiotr Kubaj	mfspr	12,256
13*3a608692SPiotr Kubaj	li	9,0x20
14*3a608692SPiotr Kubaj	mtspr	256,0
15*3a608692SPiotr Kubaj	li	10,0x30
16*3a608692SPiotr Kubaj	.long	0x7D202699
17*3a608692SPiotr Kubaj
18*3a608692SPiotr Kubaj	vspltisb	8,-16
19*3a608692SPiotr Kubaj	vspltisb	5,1
20*3a608692SPiotr Kubaj	vaddubm	8,8,8
21*3a608692SPiotr Kubaj	vxor	4,4,4
22*3a608692SPiotr Kubaj	vor	8,8,5
23*3a608692SPiotr Kubaj	vsldoi	8,8,4,15
24*3a608692SPiotr Kubaj	vsldoi	6,4,5,1
25*3a608692SPiotr Kubaj	vaddubm	8,8,8
26*3a608692SPiotr Kubaj	vspltisb	7,7
27*3a608692SPiotr Kubaj	vor	8,8,6
28*3a608692SPiotr Kubaj	vspltb	6,9,0
29*3a608692SPiotr Kubaj	vsl	9,9,5
30*3a608692SPiotr Kubaj	vsrab	6,6,7
31*3a608692SPiotr Kubaj	vand	6,6,8
32*3a608692SPiotr Kubaj	vxor	3,9,6
33*3a608692SPiotr Kubaj
34*3a608692SPiotr Kubaj	vsldoi	9,3,3,8
35*3a608692SPiotr Kubaj	vsldoi	8,4,8,8
36*3a608692SPiotr Kubaj	vsldoi	11,4,9,8
37*3a608692SPiotr Kubaj	vsldoi	10,9,4,8
38*3a608692SPiotr Kubaj
39*3a608692SPiotr Kubaj	.long	0x7D001F99
40*3a608692SPiotr Kubaj	.long	0x7D681F99
41*3a608692SPiotr Kubaj	li	8,0x40
42*3a608692SPiotr Kubaj	.long	0x7D291F99
43*3a608692SPiotr Kubaj	li	9,0x50
44*3a608692SPiotr Kubaj	.long	0x7D4A1F99
45*3a608692SPiotr Kubaj	li	10,0x60
46*3a608692SPiotr Kubaj
47*3a608692SPiotr Kubaj	.long	0x10035CC8
48*3a608692SPiotr Kubaj	.long	0x10234CC8
49*3a608692SPiotr Kubaj	.long	0x104354C8
50*3a608692SPiotr Kubaj
51*3a608692SPiotr Kubaj	.long	0x10E044C8
52*3a608692SPiotr Kubaj
53*3a608692SPiotr Kubaj	vsldoi	5,1,4,8
54*3a608692SPiotr Kubaj	vsldoi	6,4,1,8
55*3a608692SPiotr Kubaj	vxor	0,0,5
56*3a608692SPiotr Kubaj	vxor	2,2,6
57*3a608692SPiotr Kubaj
58*3a608692SPiotr Kubaj	vsldoi	0,0,0,8
59*3a608692SPiotr Kubaj	vxor	0,0,7
60*3a608692SPiotr Kubaj
61*3a608692SPiotr Kubaj	vsldoi	6,0,0,8
62*3a608692SPiotr Kubaj	.long	0x100044C8
63*3a608692SPiotr Kubaj	vxor	6,6,2
64*3a608692SPiotr Kubaj	vxor	16,0,6
65*3a608692SPiotr Kubaj
66*3a608692SPiotr Kubaj	vsldoi	17,16,16,8
67*3a608692SPiotr Kubaj	vsldoi	19,4,17,8
68*3a608692SPiotr Kubaj	vsldoi	18,17,4,8
69*3a608692SPiotr Kubaj
70*3a608692SPiotr Kubaj	.long	0x7E681F99
71*3a608692SPiotr Kubaj	li	8,0x70
72*3a608692SPiotr Kubaj	.long	0x7E291F99
73*3a608692SPiotr Kubaj	li	9,0x80
74*3a608692SPiotr Kubaj	.long	0x7E4A1F99
75*3a608692SPiotr Kubaj	li	10,0x90
76*3a608692SPiotr Kubaj	.long	0x10039CC8
77*3a608692SPiotr Kubaj	.long	0x11B09CC8
78*3a608692SPiotr Kubaj	.long	0x10238CC8
79*3a608692SPiotr Kubaj	.long	0x11D08CC8
80*3a608692SPiotr Kubaj	.long	0x104394C8
81*3a608692SPiotr Kubaj	.long	0x11F094C8
82*3a608692SPiotr Kubaj
83*3a608692SPiotr Kubaj	.long	0x10E044C8
84*3a608692SPiotr Kubaj	.long	0x114D44C8
85*3a608692SPiotr Kubaj
86*3a608692SPiotr Kubaj	vsldoi	5,1,4,8
87*3a608692SPiotr Kubaj	vsldoi	6,4,1,8
88*3a608692SPiotr Kubaj	vsldoi	11,14,4,8
89*3a608692SPiotr Kubaj	vsldoi	9,4,14,8
90*3a608692SPiotr Kubaj	vxor	0,0,5
91*3a608692SPiotr Kubaj	vxor	2,2,6
92*3a608692SPiotr Kubaj	vxor	13,13,11
93*3a608692SPiotr Kubaj	vxor	15,15,9
94*3a608692SPiotr Kubaj
95*3a608692SPiotr Kubaj	vsldoi	0,0,0,8
96*3a608692SPiotr Kubaj	vsldoi	13,13,13,8
97*3a608692SPiotr Kubaj	vxor	0,0,7
98*3a608692SPiotr Kubaj	vxor	13,13,10
99*3a608692SPiotr Kubaj
100*3a608692SPiotr Kubaj	vsldoi	6,0,0,8
101*3a608692SPiotr Kubaj	vsldoi	9,13,13,8
102*3a608692SPiotr Kubaj	.long	0x100044C8
103*3a608692SPiotr Kubaj	.long	0x11AD44C8
104*3a608692SPiotr Kubaj	vxor	6,6,2
105*3a608692SPiotr Kubaj	vxor	9,9,15
106*3a608692SPiotr Kubaj	vxor	0,0,6
107*3a608692SPiotr Kubaj	vxor	13,13,9
108*3a608692SPiotr Kubaj
109*3a608692SPiotr Kubaj	vsldoi	9,0,0,8
110*3a608692SPiotr Kubaj	vsldoi	17,13,13,8
111*3a608692SPiotr Kubaj	vsldoi	11,4,9,8
112*3a608692SPiotr Kubaj	vsldoi	10,9,4,8
113*3a608692SPiotr Kubaj	vsldoi	19,4,17,8
114*3a608692SPiotr Kubaj	vsldoi	18,17,4,8
115*3a608692SPiotr Kubaj
116*3a608692SPiotr Kubaj	.long	0x7D681F99
117*3a608692SPiotr Kubaj	li	8,0xa0
118*3a608692SPiotr Kubaj	.long	0x7D291F99
119*3a608692SPiotr Kubaj	li	9,0xb0
120*3a608692SPiotr Kubaj	.long	0x7D4A1F99
121*3a608692SPiotr Kubaj	li	10,0xc0
122*3a608692SPiotr Kubaj	.long	0x7E681F99
123*3a608692SPiotr Kubaj	.long	0x7E291F99
124*3a608692SPiotr Kubaj	.long	0x7E4A1F99
125*3a608692SPiotr Kubaj
126*3a608692SPiotr Kubaj	mtspr	256,12
127*3a608692SPiotr Kubaj	blr
128*3a608692SPiotr Kubaj.long	0
129*3a608692SPiotr Kubaj.byte	0,12,0x14,0,0,0,2,0
130*3a608692SPiotr Kubaj.long	0
131*3a608692SPiotr Kubaj.size	gcm_init_p8,.-gcm_init_p8
132*3a608692SPiotr Kubaj.globl	gcm_gmult_p8
133*3a608692SPiotr Kubaj.type	gcm_gmult_p8,@function
134*3a608692SPiotr Kubaj.align	5
135*3a608692SPiotr Kubajgcm_gmult_p8:
136*3a608692SPiotr Kubaj	lis	0,0xfff8
137*3a608692SPiotr Kubaj	li	8,0x10
138*3a608692SPiotr Kubaj	mfspr	12,256
139*3a608692SPiotr Kubaj	li	9,0x20
140*3a608692SPiotr Kubaj	mtspr	256,0
141*3a608692SPiotr Kubaj	li	10,0x30
142*3a608692SPiotr Kubaj	.long	0x7C601E99
143*3a608692SPiotr Kubaj
144*3a608692SPiotr Kubaj	.long	0x7D682699
145*3a608692SPiotr Kubaj
146*3a608692SPiotr Kubaj	.long	0x7D292699
147*3a608692SPiotr Kubaj
148*3a608692SPiotr Kubaj	.long	0x7D4A2699
149*3a608692SPiotr Kubaj
150*3a608692SPiotr Kubaj	.long	0x7D002699
151*3a608692SPiotr Kubaj
152*3a608692SPiotr Kubaj	vxor	4,4,4
153*3a608692SPiotr Kubaj
154*3a608692SPiotr Kubaj	.long	0x10035CC8
155*3a608692SPiotr Kubaj	.long	0x10234CC8
156*3a608692SPiotr Kubaj	.long	0x104354C8
157*3a608692SPiotr Kubaj
158*3a608692SPiotr Kubaj	.long	0x10E044C8
159*3a608692SPiotr Kubaj
160*3a608692SPiotr Kubaj	vsldoi	5,1,4,8
161*3a608692SPiotr Kubaj	vsldoi	6,4,1,8
162*3a608692SPiotr Kubaj	vxor	0,0,5
163*3a608692SPiotr Kubaj	vxor	2,2,6
164*3a608692SPiotr Kubaj
165*3a608692SPiotr Kubaj	vsldoi	0,0,0,8
166*3a608692SPiotr Kubaj	vxor	0,0,7
167*3a608692SPiotr Kubaj
168*3a608692SPiotr Kubaj	vsldoi	6,0,0,8
169*3a608692SPiotr Kubaj	.long	0x100044C8
170*3a608692SPiotr Kubaj	vxor	6,6,2
171*3a608692SPiotr Kubaj	vxor	0,0,6
172*3a608692SPiotr Kubaj
173*3a608692SPiotr Kubaj
174*3a608692SPiotr Kubaj	.long	0x7C001F99
175*3a608692SPiotr Kubaj
176*3a608692SPiotr Kubaj	mtspr	256,12
177*3a608692SPiotr Kubaj	blr
178*3a608692SPiotr Kubaj.long	0
179*3a608692SPiotr Kubaj.byte	0,12,0x14,0,0,0,2,0
180*3a608692SPiotr Kubaj.long	0
181*3a608692SPiotr Kubaj.size	gcm_gmult_p8,.-gcm_gmult_p8
182*3a608692SPiotr Kubaj
183*3a608692SPiotr Kubaj.globl	gcm_ghash_p8
184*3a608692SPiotr Kubaj.type	gcm_ghash_p8,@function
185*3a608692SPiotr Kubaj.align	5
186*3a608692SPiotr Kubajgcm_ghash_p8:
187*3a608692SPiotr Kubaj	li	0,-4096
188*3a608692SPiotr Kubaj	li	8,0x10
189*3a608692SPiotr Kubaj	mfspr	12,256
190*3a608692SPiotr Kubaj	li	9,0x20
191*3a608692SPiotr Kubaj	mtspr	256,0
192*3a608692SPiotr Kubaj	li	10,0x30
193*3a608692SPiotr Kubaj	.long	0x7C001E99
194*3a608692SPiotr Kubaj
195*3a608692SPiotr Kubaj	.long	0x7D682699
196*3a608692SPiotr Kubaj	li	8,0x40
197*3a608692SPiotr Kubaj
198*3a608692SPiotr Kubaj	.long	0x7D292699
199*3a608692SPiotr Kubaj	li	9,0x50
200*3a608692SPiotr Kubaj
201*3a608692SPiotr Kubaj	.long	0x7D4A2699
202*3a608692SPiotr Kubaj	li	10,0x60
203*3a608692SPiotr Kubaj
204*3a608692SPiotr Kubaj	.long	0x7D002699
205*3a608692SPiotr Kubaj
206*3a608692SPiotr Kubaj	vxor	4,4,4
207*3a608692SPiotr Kubaj
208*3a608692SPiotr Kubaj	cmplwi	6,64
209*3a608692SPiotr Kubaj	bge	.Lgcm_ghash_p8_4x
210*3a608692SPiotr Kubaj
211*3a608692SPiotr Kubaj	.long	0x7C602E99
212*3a608692SPiotr Kubaj	addi	5,5,16
213*3a608692SPiotr Kubaj	subic.	6,6,16
214*3a608692SPiotr Kubaj
215*3a608692SPiotr Kubaj	vxor	3,3,0
216*3a608692SPiotr Kubaj	beq	.Lshort
217*3a608692SPiotr Kubaj
218*3a608692SPiotr Kubaj	.long	0x7E682699
219*3a608692SPiotr Kubaj	li	8,16
220*3a608692SPiotr Kubaj	.long	0x7E292699
221*3a608692SPiotr Kubaj	add	9,5,6
222*3a608692SPiotr Kubaj	.long	0x7E4A2699
223*3a608692SPiotr Kubaj	b	.Loop_2x
224*3a608692SPiotr Kubaj
225*3a608692SPiotr Kubaj.align	5
226*3a608692SPiotr Kubaj.Loop_2x:
227*3a608692SPiotr Kubaj	.long	0x7E002E99
228*3a608692SPiotr Kubaj
229*3a608692SPiotr Kubaj
230*3a608692SPiotr Kubaj	subic	6,6,32
231*3a608692SPiotr Kubaj	.long	0x10039CC8
232*3a608692SPiotr Kubaj	.long	0x11B05CC8
233*3a608692SPiotr Kubaj	subfe	0,0,0
234*3a608692SPiotr Kubaj	.long	0x10238CC8
235*3a608692SPiotr Kubaj	.long	0x11D04CC8
236*3a608692SPiotr Kubaj	and	0,0,6
237*3a608692SPiotr Kubaj	.long	0x104394C8
238*3a608692SPiotr Kubaj	.long	0x11F054C8
239*3a608692SPiotr Kubaj	add	5,5,0
240*3a608692SPiotr Kubaj
241*3a608692SPiotr Kubaj	vxor	0,0,13
242*3a608692SPiotr Kubaj	vxor	1,1,14
243*3a608692SPiotr Kubaj
244*3a608692SPiotr Kubaj	.long	0x10E044C8
245*3a608692SPiotr Kubaj
246*3a608692SPiotr Kubaj	vsldoi	5,1,4,8
247*3a608692SPiotr Kubaj	vsldoi	6,4,1,8
248*3a608692SPiotr Kubaj	vxor	2,2,15
249*3a608692SPiotr Kubaj	vxor	0,0,5
250*3a608692SPiotr Kubaj	vxor	2,2,6
251*3a608692SPiotr Kubaj
252*3a608692SPiotr Kubaj	vsldoi	0,0,0,8
253*3a608692SPiotr Kubaj	vxor	0,0,7
254*3a608692SPiotr Kubaj	.long	0x7C682E99
255*3a608692SPiotr Kubaj	addi	5,5,32
256*3a608692SPiotr Kubaj
257*3a608692SPiotr Kubaj	vsldoi	6,0,0,8
258*3a608692SPiotr Kubaj	.long	0x100044C8
259*3a608692SPiotr Kubaj
260*3a608692SPiotr Kubaj	vxor	6,6,2
261*3a608692SPiotr Kubaj	vxor	3,3,6
262*3a608692SPiotr Kubaj	vxor	3,3,0
263*3a608692SPiotr Kubaj	.long	0x7c092840
264*3a608692SPiotr Kubaj	bgt	.Loop_2x
265*3a608692SPiotr Kubaj
266*3a608692SPiotr Kubaj	cmplwi	6,0
267*3a608692SPiotr Kubaj	bne	.Leven
268*3a608692SPiotr Kubaj
269*3a608692SPiotr Kubaj.Lshort:
270*3a608692SPiotr Kubaj	.long	0x10035CC8
271*3a608692SPiotr Kubaj	.long	0x10234CC8
272*3a608692SPiotr Kubaj	.long	0x104354C8
273*3a608692SPiotr Kubaj
274*3a608692SPiotr Kubaj	.long	0x10E044C8
275*3a608692SPiotr Kubaj
276*3a608692SPiotr Kubaj	vsldoi	5,1,4,8
277*3a608692SPiotr Kubaj	vsldoi	6,4,1,8
278*3a608692SPiotr Kubaj	vxor	0,0,5
279*3a608692SPiotr Kubaj	vxor	2,2,6
280*3a608692SPiotr Kubaj
281*3a608692SPiotr Kubaj	vsldoi	0,0,0,8
282*3a608692SPiotr Kubaj	vxor	0,0,7
283*3a608692SPiotr Kubaj
284*3a608692SPiotr Kubaj	vsldoi	6,0,0,8
285*3a608692SPiotr Kubaj	.long	0x100044C8
286*3a608692SPiotr Kubaj	vxor	6,6,2
287*3a608692SPiotr Kubaj
288*3a608692SPiotr Kubaj.Leven:
289*3a608692SPiotr Kubaj	vxor	0,0,6
290*3a608692SPiotr Kubaj
291*3a608692SPiotr Kubaj	.long	0x7C001F99
292*3a608692SPiotr Kubaj
293*3a608692SPiotr Kubaj	mtspr	256,12
294*3a608692SPiotr Kubaj	blr
295*3a608692SPiotr Kubaj.long	0
296*3a608692SPiotr Kubaj.byte	0,12,0x14,0,0,0,4,0
297*3a608692SPiotr Kubaj.long	0
298*3a608692SPiotr Kubaj.align	5
299*3a608692SPiotr Kubaj.gcm_ghash_p8_4x:
300*3a608692SPiotr Kubaj.Lgcm_ghash_p8_4x:
301*3a608692SPiotr Kubaj	stwu	1,-232(1)
302*3a608692SPiotr Kubaj	li	10,39
303*3a608692SPiotr Kubaj	li	11,55
304*3a608692SPiotr Kubaj	stvx	20,10,1
305*3a608692SPiotr Kubaj	addi	10,10,32
306*3a608692SPiotr Kubaj	stvx	21,11,1
307*3a608692SPiotr Kubaj	addi	11,11,32
308*3a608692SPiotr Kubaj	stvx	22,10,1
309*3a608692SPiotr Kubaj	addi	10,10,32
310*3a608692SPiotr Kubaj	stvx	23,11,1
311*3a608692SPiotr Kubaj	addi	11,11,32
312*3a608692SPiotr Kubaj	stvx	24,10,1
313*3a608692SPiotr Kubaj	addi	10,10,32
314*3a608692SPiotr Kubaj	stvx	25,11,1
315*3a608692SPiotr Kubaj	addi	11,11,32
316*3a608692SPiotr Kubaj	stvx	26,10,1
317*3a608692SPiotr Kubaj	addi	10,10,32
318*3a608692SPiotr Kubaj	stvx	27,11,1
319*3a608692SPiotr Kubaj	addi	11,11,32
320*3a608692SPiotr Kubaj	stvx	28,10,1
321*3a608692SPiotr Kubaj	addi	10,10,32
322*3a608692SPiotr Kubaj	stvx	29,11,1
323*3a608692SPiotr Kubaj	addi	11,11,32
324*3a608692SPiotr Kubaj	stvx	30,10,1
325*3a608692SPiotr Kubaj	li	10,0x60
326*3a608692SPiotr Kubaj	stvx	31,11,1
327*3a608692SPiotr Kubaj	li	0,-1
328*3a608692SPiotr Kubaj	stw	12,228(1)
329*3a608692SPiotr Kubaj	mtspr	256,0
330*3a608692SPiotr Kubaj
331*3a608692SPiotr Kubaj	lvsl	5,0,8
332*3a608692SPiotr Kubaj
333*3a608692SPiotr Kubaj	li	8,0x70
334*3a608692SPiotr Kubaj	.long	0x7E292699
335*3a608692SPiotr Kubaj	li	9,0x80
336*3a608692SPiotr Kubaj	vspltisb	6,8
337*3a608692SPiotr Kubaj
338*3a608692SPiotr Kubaj	li	10,0x90
339*3a608692SPiotr Kubaj	.long	0x7EE82699
340*3a608692SPiotr Kubaj	li	8,0xa0
341*3a608692SPiotr Kubaj	.long	0x7F092699
342*3a608692SPiotr Kubaj	li	9,0xb0
343*3a608692SPiotr Kubaj	.long	0x7F2A2699
344*3a608692SPiotr Kubaj	li	10,0xc0
345*3a608692SPiotr Kubaj	.long	0x7FA82699
346*3a608692SPiotr Kubaj	li	8,0x10
347*3a608692SPiotr Kubaj	.long	0x7FC92699
348*3a608692SPiotr Kubaj	li	9,0x20
349*3a608692SPiotr Kubaj	.long	0x7FEA2699
350*3a608692SPiotr Kubaj	li	10,0x30
351*3a608692SPiotr Kubaj
352*3a608692SPiotr Kubaj	vsldoi	7,4,6,8
353*3a608692SPiotr Kubaj	vaddubm	18,5,7
354*3a608692SPiotr Kubaj	vaddubm	19,6,18
355*3a608692SPiotr Kubaj
356*3a608692SPiotr Kubaj	srwi	6,6,4
357*3a608692SPiotr Kubaj
358*3a608692SPiotr Kubaj	.long	0x7C602E99
359*3a608692SPiotr Kubaj	.long	0x7E082E99
360*3a608692SPiotr Kubaj	subic.	6,6,8
361*3a608692SPiotr Kubaj	.long	0x7EC92E99
362*3a608692SPiotr Kubaj	.long	0x7F8A2E99
363*3a608692SPiotr Kubaj	addi	5,5,0x40
364*3a608692SPiotr Kubaj
365*3a608692SPiotr Kubaj
366*3a608692SPiotr Kubaj
367*3a608692SPiotr Kubaj
368*3a608692SPiotr Kubaj
369*3a608692SPiotr Kubaj	vxor	2,3,0
370*3a608692SPiotr Kubaj
371*3a608692SPiotr Kubaj	.long	0x11B0BCC8
372*3a608692SPiotr Kubaj	.long	0x11D0C4C8
373*3a608692SPiotr Kubaj	.long	0x11F0CCC8
374*3a608692SPiotr Kubaj
375*3a608692SPiotr Kubaj	vperm	11,17,9,18
376*3a608692SPiotr Kubaj	vperm	5,22,28,19
377*3a608692SPiotr Kubaj	vperm	10,17,9,19
378*3a608692SPiotr Kubaj	vperm	6,22,28,18
379*3a608692SPiotr Kubaj	.long	0x12B68CC8
380*3a608692SPiotr Kubaj	.long	0x12855CC8
381*3a608692SPiotr Kubaj	.long	0x137C4CC8
382*3a608692SPiotr Kubaj	.long	0x134654C8
383*3a608692SPiotr Kubaj
384*3a608692SPiotr Kubaj	vxor	21,21,14
385*3a608692SPiotr Kubaj	vxor	20,20,13
386*3a608692SPiotr Kubaj	vxor	27,27,21
387*3a608692SPiotr Kubaj	vxor	26,26,15
388*3a608692SPiotr Kubaj
389*3a608692SPiotr Kubaj	blt	.Ltail_4x
390*3a608692SPiotr Kubaj
391*3a608692SPiotr Kubaj.Loop_4x:
392*3a608692SPiotr Kubaj	.long	0x7C602E99
393*3a608692SPiotr Kubaj	.long	0x7E082E99
394*3a608692SPiotr Kubaj	subic.	6,6,4
395*3a608692SPiotr Kubaj	.long	0x7EC92E99
396*3a608692SPiotr Kubaj	.long	0x7F8A2E99
397*3a608692SPiotr Kubaj	addi	5,5,0x40
398*3a608692SPiotr Kubaj
399*3a608692SPiotr Kubaj
400*3a608692SPiotr Kubaj
401*3a608692SPiotr Kubaj
402*3a608692SPiotr Kubaj
403*3a608692SPiotr Kubaj	.long	0x1002ECC8
404*3a608692SPiotr Kubaj	.long	0x1022F4C8
405*3a608692SPiotr Kubaj	.long	0x1042FCC8
406*3a608692SPiotr Kubaj	.long	0x11B0BCC8
407*3a608692SPiotr Kubaj	.long	0x11D0C4C8
408*3a608692SPiotr Kubaj	.long	0x11F0CCC8
409*3a608692SPiotr Kubaj
410*3a608692SPiotr Kubaj	vxor	0,0,20
411*3a608692SPiotr Kubaj	vxor	1,1,27
412*3a608692SPiotr Kubaj	vxor	2,2,26
413*3a608692SPiotr Kubaj	vperm	5,22,28,19
414*3a608692SPiotr Kubaj	vperm	6,22,28,18
415*3a608692SPiotr Kubaj
416*3a608692SPiotr Kubaj	.long	0x10E044C8
417*3a608692SPiotr Kubaj	.long	0x12855CC8
418*3a608692SPiotr Kubaj	.long	0x134654C8
419*3a608692SPiotr Kubaj
420*3a608692SPiotr Kubaj	vsldoi	5,1,4,8
421*3a608692SPiotr Kubaj	vsldoi	6,4,1,8
422*3a608692SPiotr Kubaj	vxor	0,0,5
423*3a608692SPiotr Kubaj	vxor	2,2,6
424*3a608692SPiotr Kubaj
425*3a608692SPiotr Kubaj	vsldoi	0,0,0,8
426*3a608692SPiotr Kubaj	vxor	0,0,7
427*3a608692SPiotr Kubaj
428*3a608692SPiotr Kubaj	vsldoi	6,0,0,8
429*3a608692SPiotr Kubaj	.long	0x12B68CC8
430*3a608692SPiotr Kubaj	.long	0x137C4CC8
431*3a608692SPiotr Kubaj	.long	0x100044C8
432*3a608692SPiotr Kubaj
433*3a608692SPiotr Kubaj	vxor	20,20,13
434*3a608692SPiotr Kubaj	vxor	26,26,15
435*3a608692SPiotr Kubaj	vxor	2,2,3
436*3a608692SPiotr Kubaj	vxor	21,21,14
437*3a608692SPiotr Kubaj	vxor	2,2,6
438*3a608692SPiotr Kubaj	vxor	27,27,21
439*3a608692SPiotr Kubaj	vxor	2,2,0
440*3a608692SPiotr Kubaj	bge	.Loop_4x
441*3a608692SPiotr Kubaj
442*3a608692SPiotr Kubaj.Ltail_4x:
443*3a608692SPiotr Kubaj	.long	0x1002ECC8
444*3a608692SPiotr Kubaj	.long	0x1022F4C8
445*3a608692SPiotr Kubaj	.long	0x1042FCC8
446*3a608692SPiotr Kubaj
447*3a608692SPiotr Kubaj	vxor	0,0,20
448*3a608692SPiotr Kubaj	vxor	1,1,27
449*3a608692SPiotr Kubaj
450*3a608692SPiotr Kubaj	.long	0x10E044C8
451*3a608692SPiotr Kubaj
452*3a608692SPiotr Kubaj	vsldoi	5,1,4,8
453*3a608692SPiotr Kubaj	vsldoi	6,4,1,8
454*3a608692SPiotr Kubaj	vxor	2,2,26
455*3a608692SPiotr Kubaj	vxor	0,0,5
456*3a608692SPiotr Kubaj	vxor	2,2,6
457*3a608692SPiotr Kubaj
458*3a608692SPiotr Kubaj	vsldoi	0,0,0,8
459*3a608692SPiotr Kubaj	vxor	0,0,7
460*3a608692SPiotr Kubaj
461*3a608692SPiotr Kubaj	vsldoi	6,0,0,8
462*3a608692SPiotr Kubaj	.long	0x100044C8
463*3a608692SPiotr Kubaj	vxor	6,6,2
464*3a608692SPiotr Kubaj	vxor	0,0,6
465*3a608692SPiotr Kubaj
466*3a608692SPiotr Kubaj	addic.	6,6,4
467*3a608692SPiotr Kubaj	beq	.Ldone_4x
468*3a608692SPiotr Kubaj
469*3a608692SPiotr Kubaj	.long	0x7C602E99
470*3a608692SPiotr Kubaj	cmplwi	6,2
471*3a608692SPiotr Kubaj	li	6,-4
472*3a608692SPiotr Kubaj	blt	.Lone
473*3a608692SPiotr Kubaj	.long	0x7E082E99
474*3a608692SPiotr Kubaj	beq	.Ltwo
475*3a608692SPiotr Kubaj
476*3a608692SPiotr Kubaj.Lthree:
477*3a608692SPiotr Kubaj	.long	0x7EC92E99
478*3a608692SPiotr Kubaj
479*3a608692SPiotr Kubaj
480*3a608692SPiotr Kubaj
481*3a608692SPiotr Kubaj
482*3a608692SPiotr Kubaj	vxor	2,3,0
483*3a608692SPiotr Kubaj	vor	29,23,23
484*3a608692SPiotr Kubaj	vor	30,24,24
485*3a608692SPiotr Kubaj	vor	31,25,25
486*3a608692SPiotr Kubaj
487*3a608692SPiotr Kubaj	vperm	5,16,22,19
488*3a608692SPiotr Kubaj	vperm	6,16,22,18
489*3a608692SPiotr Kubaj	.long	0x12B08CC8
490*3a608692SPiotr Kubaj	.long	0x13764CC8
491*3a608692SPiotr Kubaj	.long	0x12855CC8
492*3a608692SPiotr Kubaj	.long	0x134654C8
493*3a608692SPiotr Kubaj
494*3a608692SPiotr Kubaj	vxor	27,27,21
495*3a608692SPiotr Kubaj	b	.Ltail_4x
496*3a608692SPiotr Kubaj
497*3a608692SPiotr Kubaj.align	4
498*3a608692SPiotr Kubaj.Ltwo:
499*3a608692SPiotr Kubaj
500*3a608692SPiotr Kubaj
501*3a608692SPiotr Kubaj
502*3a608692SPiotr Kubaj	vxor	2,3,0
503*3a608692SPiotr Kubaj	vperm	5,4,16,19
504*3a608692SPiotr Kubaj	vperm	6,4,16,18
505*3a608692SPiotr Kubaj
506*3a608692SPiotr Kubaj	vsldoi	29,4,17,8
507*3a608692SPiotr Kubaj	vor	30,17,17
508*3a608692SPiotr Kubaj	vsldoi	31,17,4,8
509*3a608692SPiotr Kubaj
510*3a608692SPiotr Kubaj	.long	0x12855CC8
511*3a608692SPiotr Kubaj	.long	0x13704CC8
512*3a608692SPiotr Kubaj	.long	0x134654C8
513*3a608692SPiotr Kubaj
514*3a608692SPiotr Kubaj	b	.Ltail_4x
515*3a608692SPiotr Kubaj
516*3a608692SPiotr Kubaj.align	4
517*3a608692SPiotr Kubaj.Lone:
518*3a608692SPiotr Kubaj
519*3a608692SPiotr Kubaj
520*3a608692SPiotr Kubaj	vsldoi	29,4,9,8
521*3a608692SPiotr Kubaj	vor	30,9,9
522*3a608692SPiotr Kubaj	vsldoi	31,9,4,8
523*3a608692SPiotr Kubaj
524*3a608692SPiotr Kubaj	vxor	2,3,0
525*3a608692SPiotr Kubaj	vxor	20,20,20
526*3a608692SPiotr Kubaj	vxor	27,27,27
527*3a608692SPiotr Kubaj	vxor	26,26,26
528*3a608692SPiotr Kubaj
529*3a608692SPiotr Kubaj	b	.Ltail_4x
530*3a608692SPiotr Kubaj
531*3a608692SPiotr Kubaj.Ldone_4x:
532*3a608692SPiotr Kubaj
533*3a608692SPiotr Kubaj	.long	0x7C001F99
534*3a608692SPiotr Kubaj
535*3a608692SPiotr Kubaj	li	10,39
536*3a608692SPiotr Kubaj	li	11,55
537*3a608692SPiotr Kubaj	mtspr	256,12
538*3a608692SPiotr Kubaj	lvx	20,10,1
539*3a608692SPiotr Kubaj	addi	10,10,32
540*3a608692SPiotr Kubaj	lvx	21,11,1
541*3a608692SPiotr Kubaj	addi	11,11,32
542*3a608692SPiotr Kubaj	lvx	22,10,1
543*3a608692SPiotr Kubaj	addi	10,10,32
544*3a608692SPiotr Kubaj	lvx	23,11,1
545*3a608692SPiotr Kubaj	addi	11,11,32
546*3a608692SPiotr Kubaj	lvx	24,10,1
547*3a608692SPiotr Kubaj	addi	10,10,32
548*3a608692SPiotr Kubaj	lvx	25,11,1
549*3a608692SPiotr Kubaj	addi	11,11,32
550*3a608692SPiotr Kubaj	lvx	26,10,1
551*3a608692SPiotr Kubaj	addi	10,10,32
552*3a608692SPiotr Kubaj	lvx	27,11,1
553*3a608692SPiotr Kubaj	addi	11,11,32
554*3a608692SPiotr Kubaj	lvx	28,10,1
555*3a608692SPiotr Kubaj	addi	10,10,32
556*3a608692SPiotr Kubaj	lvx	29,11,1
557*3a608692SPiotr Kubaj	addi	11,11,32
558*3a608692SPiotr Kubaj	lvx	30,10,1
559*3a608692SPiotr Kubaj	lvx	31,11,1
560*3a608692SPiotr Kubaj	addi	1,1,232
561*3a608692SPiotr Kubaj	blr
562*3a608692SPiotr Kubaj.long	0
563*3a608692SPiotr Kubaj.byte	0,12,0x04,0,0x80,0,4,0
564*3a608692SPiotr Kubaj.long	0
565*3a608692SPiotr Kubaj.size	gcm_ghash_p8,.-gcm_ghash_p8
566*3a608692SPiotr Kubaj
567*3a608692SPiotr Kubaj.byte	71,72,65,83,72,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
568*3a608692SPiotr Kubaj.align	2
569*3a608692SPiotr Kubaj.align	2
570