xref: /netbsd-src/crypto/external/bsd/openssl/lib/libcrypto/arch/powerpc64/sha256-ppc.S (revision a4199014299a2a830470c72fa2d232f281d7ddea)
1*a4199014Schristos.machine	"any"
2*a4199014Schristos.text
3*a4199014Schristos
4*a4199014Schristos.globl	sha256_block_ppc
5*a4199014Schristos.align	6
6*a4199014Schristossha256_block_ppc:
7*a4199014Schristos	stdu	1,-320(1)
8*a4199014Schristos	mflr	0
9*a4199014Schristos	sldi	5,5,6
10*a4199014Schristos
11*a4199014Schristos	std	3,144(1)
12*a4199014Schristos
13*a4199014Schristos	std	14,176(1)
14*a4199014Schristos	std	15,184(1)
15*a4199014Schristos	std	16,192(1)
16*a4199014Schristos	std	17,200(1)
17*a4199014Schristos	std	18,208(1)
18*a4199014Schristos	std	19,216(1)
19*a4199014Schristos	std	20,224(1)
20*a4199014Schristos	std	21,232(1)
21*a4199014Schristos	std	22,240(1)
22*a4199014Schristos	std	23,248(1)
23*a4199014Schristos	std	24,256(1)
24*a4199014Schristos	std	25,264(1)
25*a4199014Schristos	std	26,272(1)
26*a4199014Schristos	std	27,280(1)
27*a4199014Schristos	std	28,288(1)
28*a4199014Schristos	std	29,296(1)
29*a4199014Schristos	std	30,304(1)
30*a4199014Schristos	std	31,312(1)
31*a4199014Schristos	std	0,336(1)
32*a4199014Schristos	lwz	8,0(3)
33*a4199014Schristos	mr	31,4
34*a4199014Schristos	lwz	9,4(3)
35*a4199014Schristos	lwz	10,8(3)
36*a4199014Schristos	lwz	11,12(3)
37*a4199014Schristos	lwz	12,16(3)
38*a4199014Schristos	lwz	6,20(3)
39*a4199014Schristos	lwz	14,24(3)
40*a4199014Schristos	lwz	15,28(3)
41*a4199014Schristos	bl	LPICmeup
42*a4199014SchristosLPICedup:
43*a4199014Schristos	andi.	0,31,3
44*a4199014Schristos	bne	Lunaligned
45*a4199014SchristosLaligned:
46*a4199014Schristos	add	5,31,5
47*a4199014Schristos	std	5,128(1)
48*a4199014Schristos	std	31,136(1)
49*a4199014Schristos	bl	Lsha2_block_private
50*a4199014Schristos	b	Ldone
51*a4199014Schristos
52*a4199014Schristos
53*a4199014Schristos
54*a4199014Schristos
55*a4199014Schristos
56*a4199014Schristos
57*a4199014Schristos
58*a4199014Schristos.align	4
59*a4199014SchristosLunaligned:
60*a4199014Schristos	subfic	0,31,4096
61*a4199014Schristos	andi.	0,0,4032
62*a4199014Schristos	beq	Lcross_page
63*a4199014Schristos	cmpld	5,0
64*a4199014Schristos	ble	Laligned
65*a4199014Schristos	subfc	5,0,5
66*a4199014Schristos	add	0,31,0
67*a4199014Schristos	std	5,120(1)
68*a4199014Schristos	std	0,128(1)
69*a4199014Schristos	std	31,136(1)
70*a4199014Schristos	bl	Lsha2_block_private
71*a4199014Schristos
72*a4199014Schristos	ld	5,120(1)
73*a4199014SchristosLcross_page:
74*a4199014Schristos	li	0,16
75*a4199014Schristos	mtctr	0
76*a4199014Schristos	addi	20,1,48
77*a4199014SchristosLmemcpy:
78*a4199014Schristos	lbz	16,0(31)
79*a4199014Schristos	lbz	17,1(31)
80*a4199014Schristos	lbz	18,2(31)
81*a4199014Schristos	lbz	19,3(31)
82*a4199014Schristos	addi	31,31,4
83*a4199014Schristos	stb	16,0(20)
84*a4199014Schristos	stb	17,1(20)
85*a4199014Schristos	stb	18,2(20)
86*a4199014Schristos	stb	19,3(20)
87*a4199014Schristos	addi	20,20,4
88*a4199014Schristos	bc	16,0,Lmemcpy
89*a4199014Schristos	std	31,112(1)
90*a4199014Schristos	addi	0,1,112
91*a4199014Schristos	addi	31,1,48
92*a4199014Schristos	std	5,120(1)
93*a4199014Schristos	std	0,128(1)
94*a4199014Schristos	std	31,136(1)
95*a4199014Schristos	bl	Lsha2_block_private
96*a4199014Schristos	ld	31,112(1)
97*a4199014Schristos	ld	5,120(1)
98*a4199014Schristos	addic.	5,5,-64
99*a4199014Schristos	bne	Lunaligned
100*a4199014Schristos
101*a4199014SchristosLdone:
102*a4199014Schristos	ld	0,336(1)
103*a4199014Schristos	ld	14,176(1)
104*a4199014Schristos	ld	15,184(1)
105*a4199014Schristos	ld	16,192(1)
106*a4199014Schristos	ld	17,200(1)
107*a4199014Schristos	ld	18,208(1)
108*a4199014Schristos	ld	19,216(1)
109*a4199014Schristos	ld	20,224(1)
110*a4199014Schristos	ld	21,232(1)
111*a4199014Schristos	ld	22,240(1)
112*a4199014Schristos	ld	23,248(1)
113*a4199014Schristos	ld	24,256(1)
114*a4199014Schristos	ld	25,264(1)
115*a4199014Schristos	ld	26,272(1)
116*a4199014Schristos	ld	27,280(1)
117*a4199014Schristos	ld	28,288(1)
118*a4199014Schristos	ld	29,296(1)
119*a4199014Schristos	ld	30,304(1)
120*a4199014Schristos	ld	31,312(1)
121*a4199014Schristos	mtlr	0
122*a4199014Schristos	addi	1,1,320
123*a4199014Schristos	blr
124*a4199014Schristos.long	0
125*a4199014Schristos.byte	0,12,4,1,0x80,18,3,0
126*a4199014Schristos.long	0
127*a4199014Schristos.align	4
128*a4199014SchristosLsha2_block_private:
129*a4199014Schristos	lwz	0,0(7)
130*a4199014Schristos	lwz	16,0(31)
131*a4199014Schristos	rotrwi	3,12,6
132*a4199014Schristos	rotrwi	4,12,11
133*a4199014Schristos	and	5,6,12
134*a4199014Schristos	xor	3,3,4
135*a4199014Schristos	add	15,15,0
136*a4199014Schristos	andc	0,14,12
137*a4199014Schristos	rotrwi	4,4,14
138*a4199014Schristos	or	5,5,0
139*a4199014Schristos	add	15,15,16
140*a4199014Schristos	xor	3,3,4
141*a4199014Schristos	add	15,15,5
142*a4199014Schristos	add	15,15,3
143*a4199014Schristos
144*a4199014Schristos	rotrwi	3,8,2
145*a4199014Schristos	rotrwi	4,8,13
146*a4199014Schristos	and	5,8,9
147*a4199014Schristos	and	0,8,10
148*a4199014Schristos	xor	3,3,4
149*a4199014Schristos	rotrwi	4,4,9
150*a4199014Schristos	xor	5,5,0
151*a4199014Schristos	and	0,9,10
152*a4199014Schristos	xor	3,3,4
153*a4199014Schristos	add	11,11,15
154*a4199014Schristos	xor	5,5,0
155*a4199014Schristos	lwz	0,4(7)
156*a4199014Schristos	add	15,15,3
157*a4199014Schristos	add	15,15,5
158*a4199014Schristos
159*a4199014Schristos	lwz	17,4(31)
160*a4199014Schristos	rotrwi	3,11,6
161*a4199014Schristos	rotrwi	4,11,11
162*a4199014Schristos	and	5,12,11
163*a4199014Schristos	xor	3,3,4
164*a4199014Schristos	add	14,14,0
165*a4199014Schristos	andc	0,6,11
166*a4199014Schristos	rotrwi	4,4,14
167*a4199014Schristos	or	5,5,0
168*a4199014Schristos	add	14,14,17
169*a4199014Schristos	xor	3,3,4
170*a4199014Schristos	add	14,14,5
171*a4199014Schristos	add	14,14,3
172*a4199014Schristos
173*a4199014Schristos	rotrwi	3,15,2
174*a4199014Schristos	rotrwi	4,15,13
175*a4199014Schristos	and	5,15,8
176*a4199014Schristos	and	0,15,9
177*a4199014Schristos	xor	3,3,4
178*a4199014Schristos	rotrwi	4,4,9
179*a4199014Schristos	xor	5,5,0
180*a4199014Schristos	and	0,8,9
181*a4199014Schristos	xor	3,3,4
182*a4199014Schristos	add	10,10,14
183*a4199014Schristos	xor	5,5,0
184*a4199014Schristos	lwz	0,8(7)
185*a4199014Schristos	add	14,14,3
186*a4199014Schristos	add	14,14,5
187*a4199014Schristos
188*a4199014Schristos	lwz	18,8(31)
189*a4199014Schristos	rotrwi	3,10,6
190*a4199014Schristos	rotrwi	4,10,11
191*a4199014Schristos	and	5,11,10
192*a4199014Schristos	xor	3,3,4
193*a4199014Schristos	add	6,6,0
194*a4199014Schristos	andc	0,12,10
195*a4199014Schristos	rotrwi	4,4,14
196*a4199014Schristos	or	5,5,0
197*a4199014Schristos	add	6,6,18
198*a4199014Schristos	xor	3,3,4
199*a4199014Schristos	add	6,6,5
200*a4199014Schristos	add	6,6,3
201*a4199014Schristos
202*a4199014Schristos	rotrwi	3,14,2
203*a4199014Schristos	rotrwi	4,14,13
204*a4199014Schristos	and	5,14,15
205*a4199014Schristos	and	0,14,8
206*a4199014Schristos	xor	3,3,4
207*a4199014Schristos	rotrwi	4,4,9
208*a4199014Schristos	xor	5,5,0
209*a4199014Schristos	and	0,15,8
210*a4199014Schristos	xor	3,3,4
211*a4199014Schristos	add	9,9,6
212*a4199014Schristos	xor	5,5,0
213*a4199014Schristos	lwz	0,12(7)
214*a4199014Schristos	add	6,6,3
215*a4199014Schristos	add	6,6,5
216*a4199014Schristos
217*a4199014Schristos	lwz	19,12(31)
218*a4199014Schristos	rotrwi	3,9,6
219*a4199014Schristos	rotrwi	4,9,11
220*a4199014Schristos	and	5,10,9
221*a4199014Schristos	xor	3,3,4
222*a4199014Schristos	add	12,12,0
223*a4199014Schristos	andc	0,11,9
224*a4199014Schristos	rotrwi	4,4,14
225*a4199014Schristos	or	5,5,0
226*a4199014Schristos	add	12,12,19
227*a4199014Schristos	xor	3,3,4
228*a4199014Schristos	add	12,12,5
229*a4199014Schristos	add	12,12,3
230*a4199014Schristos
231*a4199014Schristos	rotrwi	3,6,2
232*a4199014Schristos	rotrwi	4,6,13
233*a4199014Schristos	and	5,6,14
234*a4199014Schristos	and	0,6,15
235*a4199014Schristos	xor	3,3,4
236*a4199014Schristos	rotrwi	4,4,9
237*a4199014Schristos	xor	5,5,0
238*a4199014Schristos	and	0,14,15
239*a4199014Schristos	xor	3,3,4
240*a4199014Schristos	add	8,8,12
241*a4199014Schristos	xor	5,5,0
242*a4199014Schristos	lwz	0,16(7)
243*a4199014Schristos	add	12,12,3
244*a4199014Schristos	add	12,12,5
245*a4199014Schristos
246*a4199014Schristos	lwz	20,16(31)
247*a4199014Schristos	rotrwi	3,8,6
248*a4199014Schristos	rotrwi	4,8,11
249*a4199014Schristos	and	5,9,8
250*a4199014Schristos	xor	3,3,4
251*a4199014Schristos	add	11,11,0
252*a4199014Schristos	andc	0,10,8
253*a4199014Schristos	rotrwi	4,4,14
254*a4199014Schristos	or	5,5,0
255*a4199014Schristos	add	11,11,20
256*a4199014Schristos	xor	3,3,4
257*a4199014Schristos	add	11,11,5
258*a4199014Schristos	add	11,11,3
259*a4199014Schristos
260*a4199014Schristos	rotrwi	3,12,2
261*a4199014Schristos	rotrwi	4,12,13
262*a4199014Schristos	and	5,12,6
263*a4199014Schristos	and	0,12,14
264*a4199014Schristos	xor	3,3,4
265*a4199014Schristos	rotrwi	4,4,9
266*a4199014Schristos	xor	5,5,0
267*a4199014Schristos	and	0,6,14
268*a4199014Schristos	xor	3,3,4
269*a4199014Schristos	add	15,15,11
270*a4199014Schristos	xor	5,5,0
271*a4199014Schristos	lwz	0,20(7)
272*a4199014Schristos	add	11,11,3
273*a4199014Schristos	add	11,11,5
274*a4199014Schristos
275*a4199014Schristos	lwz	21,20(31)
276*a4199014Schristos	rotrwi	3,15,6
277*a4199014Schristos	rotrwi	4,15,11
278*a4199014Schristos	and	5,8,15
279*a4199014Schristos	xor	3,3,4
280*a4199014Schristos	add	10,10,0
281*a4199014Schristos	andc	0,9,15
282*a4199014Schristos	rotrwi	4,4,14
283*a4199014Schristos	or	5,5,0
284*a4199014Schristos	add	10,10,21
285*a4199014Schristos	xor	3,3,4
286*a4199014Schristos	add	10,10,5
287*a4199014Schristos	add	10,10,3
288*a4199014Schristos
289*a4199014Schristos	rotrwi	3,11,2
290*a4199014Schristos	rotrwi	4,11,13
291*a4199014Schristos	and	5,11,12
292*a4199014Schristos	and	0,11,6
293*a4199014Schristos	xor	3,3,4
294*a4199014Schristos	rotrwi	4,4,9
295*a4199014Schristos	xor	5,5,0
296*a4199014Schristos	and	0,12,6
297*a4199014Schristos	xor	3,3,4
298*a4199014Schristos	add	14,14,10
299*a4199014Schristos	xor	5,5,0
300*a4199014Schristos	lwz	0,24(7)
301*a4199014Schristos	add	10,10,3
302*a4199014Schristos	add	10,10,5
303*a4199014Schristos
304*a4199014Schristos	lwz	22,24(31)
305*a4199014Schristos	rotrwi	3,14,6
306*a4199014Schristos	rotrwi	4,14,11
307*a4199014Schristos	and	5,15,14
308*a4199014Schristos	xor	3,3,4
309*a4199014Schristos	add	9,9,0
310*a4199014Schristos	andc	0,8,14
311*a4199014Schristos	rotrwi	4,4,14
312*a4199014Schristos	or	5,5,0
313*a4199014Schristos	add	9,9,22
314*a4199014Schristos	xor	3,3,4
315*a4199014Schristos	add	9,9,5
316*a4199014Schristos	add	9,9,3
317*a4199014Schristos
318*a4199014Schristos	rotrwi	3,10,2
319*a4199014Schristos	rotrwi	4,10,13
320*a4199014Schristos	and	5,10,11
321*a4199014Schristos	and	0,10,12
322*a4199014Schristos	xor	3,3,4
323*a4199014Schristos	rotrwi	4,4,9
324*a4199014Schristos	xor	5,5,0
325*a4199014Schristos	and	0,11,12
326*a4199014Schristos	xor	3,3,4
327*a4199014Schristos	add	6,6,9
328*a4199014Schristos	xor	5,5,0
329*a4199014Schristos	lwz	0,28(7)
330*a4199014Schristos	add	9,9,3
331*a4199014Schristos	add	9,9,5
332*a4199014Schristos
333*a4199014Schristos	lwz	23,28(31)
334*a4199014Schristos	rotrwi	3,6,6
335*a4199014Schristos	rotrwi	4,6,11
336*a4199014Schristos	and	5,14,6
337*a4199014Schristos	xor	3,3,4
338*a4199014Schristos	add	8,8,0
339*a4199014Schristos	andc	0,15,6
340*a4199014Schristos	rotrwi	4,4,14
341*a4199014Schristos	or	5,5,0
342*a4199014Schristos	add	8,8,23
343*a4199014Schristos	xor	3,3,4
344*a4199014Schristos	add	8,8,5
345*a4199014Schristos	add	8,8,3
346*a4199014Schristos
347*a4199014Schristos	rotrwi	3,9,2
348*a4199014Schristos	rotrwi	4,9,13
349*a4199014Schristos	and	5,9,10
350*a4199014Schristos	and	0,9,11
351*a4199014Schristos	xor	3,3,4
352*a4199014Schristos	rotrwi	4,4,9
353*a4199014Schristos	xor	5,5,0
354*a4199014Schristos	and	0,10,11
355*a4199014Schristos	xor	3,3,4
356*a4199014Schristos	add	12,12,8
357*a4199014Schristos	xor	5,5,0
358*a4199014Schristos	lwz	0,32(7)
359*a4199014Schristos	add	8,8,3
360*a4199014Schristos	add	8,8,5
361*a4199014Schristos
362*a4199014Schristos	lwz	24,32(31)
363*a4199014Schristos	rotrwi	3,12,6
364*a4199014Schristos	rotrwi	4,12,11
365*a4199014Schristos	and	5,6,12
366*a4199014Schristos	xor	3,3,4
367*a4199014Schristos	add	15,15,0
368*a4199014Schristos	andc	0,14,12
369*a4199014Schristos	rotrwi	4,4,14
370*a4199014Schristos	or	5,5,0
371*a4199014Schristos	add	15,15,24
372*a4199014Schristos	xor	3,3,4
373*a4199014Schristos	add	15,15,5
374*a4199014Schristos	add	15,15,3
375*a4199014Schristos
376*a4199014Schristos	rotrwi	3,8,2
377*a4199014Schristos	rotrwi	4,8,13
378*a4199014Schristos	and	5,8,9
379*a4199014Schristos	and	0,8,10
380*a4199014Schristos	xor	3,3,4
381*a4199014Schristos	rotrwi	4,4,9
382*a4199014Schristos	xor	5,5,0
383*a4199014Schristos	and	0,9,10
384*a4199014Schristos	xor	3,3,4
385*a4199014Schristos	add	11,11,15
386*a4199014Schristos	xor	5,5,0
387*a4199014Schristos	lwz	0,36(7)
388*a4199014Schristos	add	15,15,3
389*a4199014Schristos	add	15,15,5
390*a4199014Schristos
391*a4199014Schristos	lwz	25,36(31)
392*a4199014Schristos	rotrwi	3,11,6
393*a4199014Schristos	rotrwi	4,11,11
394*a4199014Schristos	and	5,12,11
395*a4199014Schristos	xor	3,3,4
396*a4199014Schristos	add	14,14,0
397*a4199014Schristos	andc	0,6,11
398*a4199014Schristos	rotrwi	4,4,14
399*a4199014Schristos	or	5,5,0
400*a4199014Schristos	add	14,14,25
401*a4199014Schristos	xor	3,3,4
402*a4199014Schristos	add	14,14,5
403*a4199014Schristos	add	14,14,3
404*a4199014Schristos
405*a4199014Schristos	rotrwi	3,15,2
406*a4199014Schristos	rotrwi	4,15,13
407*a4199014Schristos	and	5,15,8
408*a4199014Schristos	and	0,15,9
409*a4199014Schristos	xor	3,3,4
410*a4199014Schristos	rotrwi	4,4,9
411*a4199014Schristos	xor	5,5,0
412*a4199014Schristos	and	0,8,9
413*a4199014Schristos	xor	3,3,4
414*a4199014Schristos	add	10,10,14
415*a4199014Schristos	xor	5,5,0
416*a4199014Schristos	lwz	0,40(7)
417*a4199014Schristos	add	14,14,3
418*a4199014Schristos	add	14,14,5
419*a4199014Schristos
420*a4199014Schristos	lwz	26,40(31)
421*a4199014Schristos	rotrwi	3,10,6
422*a4199014Schristos	rotrwi	4,10,11
423*a4199014Schristos	and	5,11,10
424*a4199014Schristos	xor	3,3,4
425*a4199014Schristos	add	6,6,0
426*a4199014Schristos	andc	0,12,10
427*a4199014Schristos	rotrwi	4,4,14
428*a4199014Schristos	or	5,5,0
429*a4199014Schristos	add	6,6,26
430*a4199014Schristos	xor	3,3,4
431*a4199014Schristos	add	6,6,5
432*a4199014Schristos	add	6,6,3
433*a4199014Schristos
434*a4199014Schristos	rotrwi	3,14,2
435*a4199014Schristos	rotrwi	4,14,13
436*a4199014Schristos	and	5,14,15
437*a4199014Schristos	and	0,14,8
438*a4199014Schristos	xor	3,3,4
439*a4199014Schristos	rotrwi	4,4,9
440*a4199014Schristos	xor	5,5,0
441*a4199014Schristos	and	0,15,8
442*a4199014Schristos	xor	3,3,4
443*a4199014Schristos	add	9,9,6
444*a4199014Schristos	xor	5,5,0
445*a4199014Schristos	lwz	0,44(7)
446*a4199014Schristos	add	6,6,3
447*a4199014Schristos	add	6,6,5
448*a4199014Schristos
449*a4199014Schristos	lwz	27,44(31)
450*a4199014Schristos	rotrwi	3,9,6
451*a4199014Schristos	rotrwi	4,9,11
452*a4199014Schristos	and	5,10,9
453*a4199014Schristos	xor	3,3,4
454*a4199014Schristos	add	12,12,0
455*a4199014Schristos	andc	0,11,9
456*a4199014Schristos	rotrwi	4,4,14
457*a4199014Schristos	or	5,5,0
458*a4199014Schristos	add	12,12,27
459*a4199014Schristos	xor	3,3,4
460*a4199014Schristos	add	12,12,5
461*a4199014Schristos	add	12,12,3
462*a4199014Schristos
463*a4199014Schristos	rotrwi	3,6,2
464*a4199014Schristos	rotrwi	4,6,13
465*a4199014Schristos	and	5,6,14
466*a4199014Schristos	and	0,6,15
467*a4199014Schristos	xor	3,3,4
468*a4199014Schristos	rotrwi	4,4,9
469*a4199014Schristos	xor	5,5,0
470*a4199014Schristos	and	0,14,15
471*a4199014Schristos	xor	3,3,4
472*a4199014Schristos	add	8,8,12
473*a4199014Schristos	xor	5,5,0
474*a4199014Schristos	lwz	0,48(7)
475*a4199014Schristos	add	12,12,3
476*a4199014Schristos	add	12,12,5
477*a4199014Schristos
478*a4199014Schristos	lwz	28,48(31)
479*a4199014Schristos	rotrwi	3,8,6
480*a4199014Schristos	rotrwi	4,8,11
481*a4199014Schristos	and	5,9,8
482*a4199014Schristos	xor	3,3,4
483*a4199014Schristos	add	11,11,0
484*a4199014Schristos	andc	0,10,8
485*a4199014Schristos	rotrwi	4,4,14
486*a4199014Schristos	or	5,5,0
487*a4199014Schristos	add	11,11,28
488*a4199014Schristos	xor	3,3,4
489*a4199014Schristos	add	11,11,5
490*a4199014Schristos	add	11,11,3
491*a4199014Schristos
492*a4199014Schristos	rotrwi	3,12,2
493*a4199014Schristos	rotrwi	4,12,13
494*a4199014Schristos	and	5,12,6
495*a4199014Schristos	and	0,12,14
496*a4199014Schristos	xor	3,3,4
497*a4199014Schristos	rotrwi	4,4,9
498*a4199014Schristos	xor	5,5,0
499*a4199014Schristos	and	0,6,14
500*a4199014Schristos	xor	3,3,4
501*a4199014Schristos	add	15,15,11
502*a4199014Schristos	xor	5,5,0
503*a4199014Schristos	lwz	0,52(7)
504*a4199014Schristos	add	11,11,3
505*a4199014Schristos	add	11,11,5
506*a4199014Schristos
507*a4199014Schristos	lwz	29,52(31)
508*a4199014Schristos	rotrwi	3,15,6
509*a4199014Schristos	rotrwi	4,15,11
510*a4199014Schristos	and	5,8,15
511*a4199014Schristos	xor	3,3,4
512*a4199014Schristos	add	10,10,0
513*a4199014Schristos	andc	0,9,15
514*a4199014Schristos	rotrwi	4,4,14
515*a4199014Schristos	or	5,5,0
516*a4199014Schristos	add	10,10,29
517*a4199014Schristos	xor	3,3,4
518*a4199014Schristos	add	10,10,5
519*a4199014Schristos	add	10,10,3
520*a4199014Schristos
521*a4199014Schristos	rotrwi	3,11,2
522*a4199014Schristos	rotrwi	4,11,13
523*a4199014Schristos	and	5,11,12
524*a4199014Schristos	and	0,11,6
525*a4199014Schristos	xor	3,3,4
526*a4199014Schristos	rotrwi	4,4,9
527*a4199014Schristos	xor	5,5,0
528*a4199014Schristos	and	0,12,6
529*a4199014Schristos	xor	3,3,4
530*a4199014Schristos	add	14,14,10
531*a4199014Schristos	xor	5,5,0
532*a4199014Schristos	lwz	0,56(7)
533*a4199014Schristos	add	10,10,3
534*a4199014Schristos	add	10,10,5
535*a4199014Schristos
536*a4199014Schristos	lwz	30,56(31)
537*a4199014Schristos	rotrwi	3,14,6
538*a4199014Schristos	rotrwi	4,14,11
539*a4199014Schristos	and	5,15,14
540*a4199014Schristos	xor	3,3,4
541*a4199014Schristos	add	9,9,0
542*a4199014Schristos	andc	0,8,14
543*a4199014Schristos	rotrwi	4,4,14
544*a4199014Schristos	or	5,5,0
545*a4199014Schristos	add	9,9,30
546*a4199014Schristos	xor	3,3,4
547*a4199014Schristos	add	9,9,5
548*a4199014Schristos	add	9,9,3
549*a4199014Schristos
550*a4199014Schristos	rotrwi	3,10,2
551*a4199014Schristos	rotrwi	4,10,13
552*a4199014Schristos	and	5,10,11
553*a4199014Schristos	and	0,10,12
554*a4199014Schristos	xor	3,3,4
555*a4199014Schristos	rotrwi	4,4,9
556*a4199014Schristos	xor	5,5,0
557*a4199014Schristos	and	0,11,12
558*a4199014Schristos	xor	3,3,4
559*a4199014Schristos	add	6,6,9
560*a4199014Schristos	xor	5,5,0
561*a4199014Schristos	lwz	0,60(7)
562*a4199014Schristos	add	9,9,3
563*a4199014Schristos	add	9,9,5
564*a4199014Schristos
565*a4199014Schristos	lwz	31,60(31)
566*a4199014Schristos	rotrwi	3,6,6
567*a4199014Schristos	rotrwi	4,6,11
568*a4199014Schristos	and	5,14,6
569*a4199014Schristos	xor	3,3,4
570*a4199014Schristos	add	8,8,0
571*a4199014Schristos	andc	0,15,6
572*a4199014Schristos	rotrwi	4,4,14
573*a4199014Schristos	or	5,5,0
574*a4199014Schristos	add	8,8,31
575*a4199014Schristos	xor	3,3,4
576*a4199014Schristos	add	8,8,5
577*a4199014Schristos	add	8,8,3
578*a4199014Schristos
579*a4199014Schristos	rotrwi	3,9,2
580*a4199014Schristos	rotrwi	4,9,13
581*a4199014Schristos	and	5,9,10
582*a4199014Schristos	and	0,9,11
583*a4199014Schristos	xor	3,3,4
584*a4199014Schristos	rotrwi	4,4,9
585*a4199014Schristos	xor	5,5,0
586*a4199014Schristos	and	0,10,11
587*a4199014Schristos	xor	3,3,4
588*a4199014Schristos	add	12,12,8
589*a4199014Schristos	xor	5,5,0
590*a4199014Schristos	add	8,8,3
591*a4199014Schristos	add	8,8,5
592*a4199014Schristos
593*a4199014Schristos	li	5,3
594*a4199014Schristos	mtctr	5
595*a4199014Schristos.align	4
596*a4199014SchristosLrounds:
597*a4199014Schristos	addi	7,7,64
598*a4199014Schristos	rotrwi	3,17,7
599*a4199014Schristos	rotrwi	4,17,18
600*a4199014Schristos	rotrwi	5,30,17
601*a4199014Schristos	rotrwi	0,30,19
602*a4199014Schristos	xor	3,3,4
603*a4199014Schristos	srwi	4,17,3
604*a4199014Schristos	xor	5,5,0
605*a4199014Schristos	srwi	0,30,10
606*a4199014Schristos	add	16,16,25
607*a4199014Schristos	xor	3,3,4
608*a4199014Schristos	xor	5,5,0
609*a4199014Schristos	lwz	0,0(7)
610*a4199014Schristos	add	16,16,3
611*a4199014Schristos	add	16,16,5
612*a4199014Schristos	rotrwi	3,12,6
613*a4199014Schristos	rotrwi	4,12,11
614*a4199014Schristos	and	5,6,12
615*a4199014Schristos	xor	3,3,4
616*a4199014Schristos	add	15,15,0
617*a4199014Schristos	andc	0,14,12
618*a4199014Schristos	rotrwi	4,4,14
619*a4199014Schristos	or	5,5,0
620*a4199014Schristos	add	15,15,16
621*a4199014Schristos	xor	3,3,4
622*a4199014Schristos	add	15,15,5
623*a4199014Schristos	add	15,15,3
624*a4199014Schristos
625*a4199014Schristos	rotrwi	3,8,2
626*a4199014Schristos	rotrwi	4,8,13
627*a4199014Schristos	and	5,8,9
628*a4199014Schristos	and	0,8,10
629*a4199014Schristos	xor	3,3,4
630*a4199014Schristos	rotrwi	4,4,9
631*a4199014Schristos	xor	5,5,0
632*a4199014Schristos	and	0,9,10
633*a4199014Schristos	xor	3,3,4
634*a4199014Schristos	add	11,11,15
635*a4199014Schristos	xor	5,5,0
636*a4199014Schristos	add	15,15,3
637*a4199014Schristos	add	15,15,5
638*a4199014Schristos
639*a4199014Schristos	rotrwi	3,18,7
640*a4199014Schristos	rotrwi	4,18,18
641*a4199014Schristos	rotrwi	5,31,17
642*a4199014Schristos	rotrwi	0,31,19
643*a4199014Schristos	xor	3,3,4
644*a4199014Schristos	srwi	4,18,3
645*a4199014Schristos	xor	5,5,0
646*a4199014Schristos	srwi	0,31,10
647*a4199014Schristos	add	17,17,26
648*a4199014Schristos	xor	3,3,4
649*a4199014Schristos	xor	5,5,0
650*a4199014Schristos	lwz	0,4(7)
651*a4199014Schristos	add	17,17,3
652*a4199014Schristos	add	17,17,5
653*a4199014Schristos	rotrwi	3,11,6
654*a4199014Schristos	rotrwi	4,11,11
655*a4199014Schristos	and	5,12,11
656*a4199014Schristos	xor	3,3,4
657*a4199014Schristos	add	14,14,0
658*a4199014Schristos	andc	0,6,11
659*a4199014Schristos	rotrwi	4,4,14
660*a4199014Schristos	or	5,5,0
661*a4199014Schristos	add	14,14,17
662*a4199014Schristos	xor	3,3,4
663*a4199014Schristos	add	14,14,5
664*a4199014Schristos	add	14,14,3
665*a4199014Schristos
666*a4199014Schristos	rotrwi	3,15,2
667*a4199014Schristos	rotrwi	4,15,13
668*a4199014Schristos	and	5,15,8
669*a4199014Schristos	and	0,15,9
670*a4199014Schristos	xor	3,3,4
671*a4199014Schristos	rotrwi	4,4,9
672*a4199014Schristos	xor	5,5,0
673*a4199014Schristos	and	0,8,9
674*a4199014Schristos	xor	3,3,4
675*a4199014Schristos	add	10,10,14
676*a4199014Schristos	xor	5,5,0
677*a4199014Schristos	add	14,14,3
678*a4199014Schristos	add	14,14,5
679*a4199014Schristos
680*a4199014Schristos	rotrwi	3,19,7
681*a4199014Schristos	rotrwi	4,19,18
682*a4199014Schristos	rotrwi	5,16,17
683*a4199014Schristos	rotrwi	0,16,19
684*a4199014Schristos	xor	3,3,4
685*a4199014Schristos	srwi	4,19,3
686*a4199014Schristos	xor	5,5,0
687*a4199014Schristos	srwi	0,16,10
688*a4199014Schristos	add	18,18,27
689*a4199014Schristos	xor	3,3,4
690*a4199014Schristos	xor	5,5,0
691*a4199014Schristos	lwz	0,8(7)
692*a4199014Schristos	add	18,18,3
693*a4199014Schristos	add	18,18,5
694*a4199014Schristos	rotrwi	3,10,6
695*a4199014Schristos	rotrwi	4,10,11
696*a4199014Schristos	and	5,11,10
697*a4199014Schristos	xor	3,3,4
698*a4199014Schristos	add	6,6,0
699*a4199014Schristos	andc	0,12,10
700*a4199014Schristos	rotrwi	4,4,14
701*a4199014Schristos	or	5,5,0
702*a4199014Schristos	add	6,6,18
703*a4199014Schristos	xor	3,3,4
704*a4199014Schristos	add	6,6,5
705*a4199014Schristos	add	6,6,3
706*a4199014Schristos
707*a4199014Schristos	rotrwi	3,14,2
708*a4199014Schristos	rotrwi	4,14,13
709*a4199014Schristos	and	5,14,15
710*a4199014Schristos	and	0,14,8
711*a4199014Schristos	xor	3,3,4
712*a4199014Schristos	rotrwi	4,4,9
713*a4199014Schristos	xor	5,5,0
714*a4199014Schristos	and	0,15,8
715*a4199014Schristos	xor	3,3,4
716*a4199014Schristos	add	9,9,6
717*a4199014Schristos	xor	5,5,0
718*a4199014Schristos	add	6,6,3
719*a4199014Schristos	add	6,6,5
720*a4199014Schristos
721*a4199014Schristos	rotrwi	3,20,7
722*a4199014Schristos	rotrwi	4,20,18
723*a4199014Schristos	rotrwi	5,17,17
724*a4199014Schristos	rotrwi	0,17,19
725*a4199014Schristos	xor	3,3,4
726*a4199014Schristos	srwi	4,20,3
727*a4199014Schristos	xor	5,5,0
728*a4199014Schristos	srwi	0,17,10
729*a4199014Schristos	add	19,19,28
730*a4199014Schristos	xor	3,3,4
731*a4199014Schristos	xor	5,5,0
732*a4199014Schristos	lwz	0,12(7)
733*a4199014Schristos	add	19,19,3
734*a4199014Schristos	add	19,19,5
735*a4199014Schristos	rotrwi	3,9,6
736*a4199014Schristos	rotrwi	4,9,11
737*a4199014Schristos	and	5,10,9
738*a4199014Schristos	xor	3,3,4
739*a4199014Schristos	add	12,12,0
740*a4199014Schristos	andc	0,11,9
741*a4199014Schristos	rotrwi	4,4,14
742*a4199014Schristos	or	5,5,0
743*a4199014Schristos	add	12,12,19
744*a4199014Schristos	xor	3,3,4
745*a4199014Schristos	add	12,12,5
746*a4199014Schristos	add	12,12,3
747*a4199014Schristos
748*a4199014Schristos	rotrwi	3,6,2
749*a4199014Schristos	rotrwi	4,6,13
750*a4199014Schristos	and	5,6,14
751*a4199014Schristos	and	0,6,15
752*a4199014Schristos	xor	3,3,4
753*a4199014Schristos	rotrwi	4,4,9
754*a4199014Schristos	xor	5,5,0
755*a4199014Schristos	and	0,14,15
756*a4199014Schristos	xor	3,3,4
757*a4199014Schristos	add	8,8,12
758*a4199014Schristos	xor	5,5,0
759*a4199014Schristos	add	12,12,3
760*a4199014Schristos	add	12,12,5
761*a4199014Schristos
762*a4199014Schristos	rotrwi	3,21,7
763*a4199014Schristos	rotrwi	4,21,18
764*a4199014Schristos	rotrwi	5,18,17
765*a4199014Schristos	rotrwi	0,18,19
766*a4199014Schristos	xor	3,3,4
767*a4199014Schristos	srwi	4,21,3
768*a4199014Schristos	xor	5,5,0
769*a4199014Schristos	srwi	0,18,10
770*a4199014Schristos	add	20,20,29
771*a4199014Schristos	xor	3,3,4
772*a4199014Schristos	xor	5,5,0
773*a4199014Schristos	lwz	0,16(7)
774*a4199014Schristos	add	20,20,3
775*a4199014Schristos	add	20,20,5
776*a4199014Schristos	rotrwi	3,8,6
777*a4199014Schristos	rotrwi	4,8,11
778*a4199014Schristos	and	5,9,8
779*a4199014Schristos	xor	3,3,4
780*a4199014Schristos	add	11,11,0
781*a4199014Schristos	andc	0,10,8
782*a4199014Schristos	rotrwi	4,4,14
783*a4199014Schristos	or	5,5,0
784*a4199014Schristos	add	11,11,20
785*a4199014Schristos	xor	3,3,4
786*a4199014Schristos	add	11,11,5
787*a4199014Schristos	add	11,11,3
788*a4199014Schristos
789*a4199014Schristos	rotrwi	3,12,2
790*a4199014Schristos	rotrwi	4,12,13
791*a4199014Schristos	and	5,12,6
792*a4199014Schristos	and	0,12,14
793*a4199014Schristos	xor	3,3,4
794*a4199014Schristos	rotrwi	4,4,9
795*a4199014Schristos	xor	5,5,0
796*a4199014Schristos	and	0,6,14
797*a4199014Schristos	xor	3,3,4
798*a4199014Schristos	add	15,15,11
799*a4199014Schristos	xor	5,5,0
800*a4199014Schristos	add	11,11,3
801*a4199014Schristos	add	11,11,5
802*a4199014Schristos
803*a4199014Schristos	rotrwi	3,22,7
804*a4199014Schristos	rotrwi	4,22,18
805*a4199014Schristos	rotrwi	5,19,17
806*a4199014Schristos	rotrwi	0,19,19
807*a4199014Schristos	xor	3,3,4
808*a4199014Schristos	srwi	4,22,3
809*a4199014Schristos	xor	5,5,0
810*a4199014Schristos	srwi	0,19,10
811*a4199014Schristos	add	21,21,30
812*a4199014Schristos	xor	3,3,4
813*a4199014Schristos	xor	5,5,0
814*a4199014Schristos	lwz	0,20(7)
815*a4199014Schristos	add	21,21,3
816*a4199014Schristos	add	21,21,5
817*a4199014Schristos	rotrwi	3,15,6
818*a4199014Schristos	rotrwi	4,15,11
819*a4199014Schristos	and	5,8,15
820*a4199014Schristos	xor	3,3,4
821*a4199014Schristos	add	10,10,0
822*a4199014Schristos	andc	0,9,15
823*a4199014Schristos	rotrwi	4,4,14
824*a4199014Schristos	or	5,5,0
825*a4199014Schristos	add	10,10,21
826*a4199014Schristos	xor	3,3,4
827*a4199014Schristos	add	10,10,5
828*a4199014Schristos	add	10,10,3
829*a4199014Schristos
830*a4199014Schristos	rotrwi	3,11,2
831*a4199014Schristos	rotrwi	4,11,13
832*a4199014Schristos	and	5,11,12
833*a4199014Schristos	and	0,11,6
834*a4199014Schristos	xor	3,3,4
835*a4199014Schristos	rotrwi	4,4,9
836*a4199014Schristos	xor	5,5,0
837*a4199014Schristos	and	0,12,6
838*a4199014Schristos	xor	3,3,4
839*a4199014Schristos	add	14,14,10
840*a4199014Schristos	xor	5,5,0
841*a4199014Schristos	add	10,10,3
842*a4199014Schristos	add	10,10,5
843*a4199014Schristos
844*a4199014Schristos	rotrwi	3,23,7
845*a4199014Schristos	rotrwi	4,23,18
846*a4199014Schristos	rotrwi	5,20,17
847*a4199014Schristos	rotrwi	0,20,19
848*a4199014Schristos	xor	3,3,4
849*a4199014Schristos	srwi	4,23,3
850*a4199014Schristos	xor	5,5,0
851*a4199014Schristos	srwi	0,20,10
852*a4199014Schristos	add	22,22,31
853*a4199014Schristos	xor	3,3,4
854*a4199014Schristos	xor	5,5,0
855*a4199014Schristos	lwz	0,24(7)
856*a4199014Schristos	add	22,22,3
857*a4199014Schristos	add	22,22,5
858*a4199014Schristos	rotrwi	3,14,6
859*a4199014Schristos	rotrwi	4,14,11
860*a4199014Schristos	and	5,15,14
861*a4199014Schristos	xor	3,3,4
862*a4199014Schristos	add	9,9,0
863*a4199014Schristos	andc	0,8,14
864*a4199014Schristos	rotrwi	4,4,14
865*a4199014Schristos	or	5,5,0
866*a4199014Schristos	add	9,9,22
867*a4199014Schristos	xor	3,3,4
868*a4199014Schristos	add	9,9,5
869*a4199014Schristos	add	9,9,3
870*a4199014Schristos
871*a4199014Schristos	rotrwi	3,10,2
872*a4199014Schristos	rotrwi	4,10,13
873*a4199014Schristos	and	5,10,11
874*a4199014Schristos	and	0,10,12
875*a4199014Schristos	xor	3,3,4
876*a4199014Schristos	rotrwi	4,4,9
877*a4199014Schristos	xor	5,5,0
878*a4199014Schristos	and	0,11,12
879*a4199014Schristos	xor	3,3,4
880*a4199014Schristos	add	6,6,9
881*a4199014Schristos	xor	5,5,0
882*a4199014Schristos	add	9,9,3
883*a4199014Schristos	add	9,9,5
884*a4199014Schristos
885*a4199014Schristos	rotrwi	3,24,7
886*a4199014Schristos	rotrwi	4,24,18
887*a4199014Schristos	rotrwi	5,21,17
888*a4199014Schristos	rotrwi	0,21,19
889*a4199014Schristos	xor	3,3,4
890*a4199014Schristos	srwi	4,24,3
891*a4199014Schristos	xor	5,5,0
892*a4199014Schristos	srwi	0,21,10
893*a4199014Schristos	add	23,23,16
894*a4199014Schristos	xor	3,3,4
895*a4199014Schristos	xor	5,5,0
896*a4199014Schristos	lwz	0,28(7)
897*a4199014Schristos	add	23,23,3
898*a4199014Schristos	add	23,23,5
899*a4199014Schristos	rotrwi	3,6,6
900*a4199014Schristos	rotrwi	4,6,11
901*a4199014Schristos	and	5,14,6
902*a4199014Schristos	xor	3,3,4
903*a4199014Schristos	add	8,8,0
904*a4199014Schristos	andc	0,15,6
905*a4199014Schristos	rotrwi	4,4,14
906*a4199014Schristos	or	5,5,0
907*a4199014Schristos	add	8,8,23
908*a4199014Schristos	xor	3,3,4
909*a4199014Schristos	add	8,8,5
910*a4199014Schristos	add	8,8,3
911*a4199014Schristos
912*a4199014Schristos	rotrwi	3,9,2
913*a4199014Schristos	rotrwi	4,9,13
914*a4199014Schristos	and	5,9,10
915*a4199014Schristos	and	0,9,11
916*a4199014Schristos	xor	3,3,4
917*a4199014Schristos	rotrwi	4,4,9
918*a4199014Schristos	xor	5,5,0
919*a4199014Schristos	and	0,10,11
920*a4199014Schristos	xor	3,3,4
921*a4199014Schristos	add	12,12,8
922*a4199014Schristos	xor	5,5,0
923*a4199014Schristos	add	8,8,3
924*a4199014Schristos	add	8,8,5
925*a4199014Schristos
926*a4199014Schristos	rotrwi	3,25,7
927*a4199014Schristos	rotrwi	4,25,18
928*a4199014Schristos	rotrwi	5,22,17
929*a4199014Schristos	rotrwi	0,22,19
930*a4199014Schristos	xor	3,3,4
931*a4199014Schristos	srwi	4,25,3
932*a4199014Schristos	xor	5,5,0
933*a4199014Schristos	srwi	0,22,10
934*a4199014Schristos	add	24,24,17
935*a4199014Schristos	xor	3,3,4
936*a4199014Schristos	xor	5,5,0
937*a4199014Schristos	lwz	0,32(7)
938*a4199014Schristos	add	24,24,3
939*a4199014Schristos	add	24,24,5
940*a4199014Schristos	rotrwi	3,12,6
941*a4199014Schristos	rotrwi	4,12,11
942*a4199014Schristos	and	5,6,12
943*a4199014Schristos	xor	3,3,4
944*a4199014Schristos	add	15,15,0
945*a4199014Schristos	andc	0,14,12
946*a4199014Schristos	rotrwi	4,4,14
947*a4199014Schristos	or	5,5,0
948*a4199014Schristos	add	15,15,24
949*a4199014Schristos	xor	3,3,4
950*a4199014Schristos	add	15,15,5
951*a4199014Schristos	add	15,15,3
952*a4199014Schristos
953*a4199014Schristos	rotrwi	3,8,2
954*a4199014Schristos	rotrwi	4,8,13
955*a4199014Schristos	and	5,8,9
956*a4199014Schristos	and	0,8,10
957*a4199014Schristos	xor	3,3,4
958*a4199014Schristos	rotrwi	4,4,9
959*a4199014Schristos	xor	5,5,0
960*a4199014Schristos	and	0,9,10
961*a4199014Schristos	xor	3,3,4
962*a4199014Schristos	add	11,11,15
963*a4199014Schristos	xor	5,5,0
964*a4199014Schristos	add	15,15,3
965*a4199014Schristos	add	15,15,5
966*a4199014Schristos
967*a4199014Schristos	rotrwi	3,26,7
968*a4199014Schristos	rotrwi	4,26,18
969*a4199014Schristos	rotrwi	5,23,17
970*a4199014Schristos	rotrwi	0,23,19
971*a4199014Schristos	xor	3,3,4
972*a4199014Schristos	srwi	4,26,3
973*a4199014Schristos	xor	5,5,0
974*a4199014Schristos	srwi	0,23,10
975*a4199014Schristos	add	25,25,18
976*a4199014Schristos	xor	3,3,4
977*a4199014Schristos	xor	5,5,0
978*a4199014Schristos	lwz	0,36(7)
979*a4199014Schristos	add	25,25,3
980*a4199014Schristos	add	25,25,5
981*a4199014Schristos	rotrwi	3,11,6
982*a4199014Schristos	rotrwi	4,11,11
983*a4199014Schristos	and	5,12,11
984*a4199014Schristos	xor	3,3,4
985*a4199014Schristos	add	14,14,0
986*a4199014Schristos	andc	0,6,11
987*a4199014Schristos	rotrwi	4,4,14
988*a4199014Schristos	or	5,5,0
989*a4199014Schristos	add	14,14,25
990*a4199014Schristos	xor	3,3,4
991*a4199014Schristos	add	14,14,5
992*a4199014Schristos	add	14,14,3
993*a4199014Schristos
994*a4199014Schristos	rotrwi	3,15,2
995*a4199014Schristos	rotrwi	4,15,13
996*a4199014Schristos	and	5,15,8
997*a4199014Schristos	and	0,15,9
998*a4199014Schristos	xor	3,3,4
999*a4199014Schristos	rotrwi	4,4,9
1000*a4199014Schristos	xor	5,5,0
1001*a4199014Schristos	and	0,8,9
1002*a4199014Schristos	xor	3,3,4
1003*a4199014Schristos	add	10,10,14
1004*a4199014Schristos	xor	5,5,0
1005*a4199014Schristos	add	14,14,3
1006*a4199014Schristos	add	14,14,5
1007*a4199014Schristos
1008*a4199014Schristos	rotrwi	3,27,7
1009*a4199014Schristos	rotrwi	4,27,18
1010*a4199014Schristos	rotrwi	5,24,17
1011*a4199014Schristos	rotrwi	0,24,19
1012*a4199014Schristos	xor	3,3,4
1013*a4199014Schristos	srwi	4,27,3
1014*a4199014Schristos	xor	5,5,0
1015*a4199014Schristos	srwi	0,24,10
1016*a4199014Schristos	add	26,26,19
1017*a4199014Schristos	xor	3,3,4
1018*a4199014Schristos	xor	5,5,0
1019*a4199014Schristos	lwz	0,40(7)
1020*a4199014Schristos	add	26,26,3
1021*a4199014Schristos	add	26,26,5
1022*a4199014Schristos	rotrwi	3,10,6
1023*a4199014Schristos	rotrwi	4,10,11
1024*a4199014Schristos	and	5,11,10
1025*a4199014Schristos	xor	3,3,4
1026*a4199014Schristos	add	6,6,0
1027*a4199014Schristos	andc	0,12,10
1028*a4199014Schristos	rotrwi	4,4,14
1029*a4199014Schristos	or	5,5,0
1030*a4199014Schristos	add	6,6,26
1031*a4199014Schristos	xor	3,3,4
1032*a4199014Schristos	add	6,6,5
1033*a4199014Schristos	add	6,6,3
1034*a4199014Schristos
1035*a4199014Schristos	rotrwi	3,14,2
1036*a4199014Schristos	rotrwi	4,14,13
1037*a4199014Schristos	and	5,14,15
1038*a4199014Schristos	and	0,14,8
1039*a4199014Schristos	xor	3,3,4
1040*a4199014Schristos	rotrwi	4,4,9
1041*a4199014Schristos	xor	5,5,0
1042*a4199014Schristos	and	0,15,8
1043*a4199014Schristos	xor	3,3,4
1044*a4199014Schristos	add	9,9,6
1045*a4199014Schristos	xor	5,5,0
1046*a4199014Schristos	add	6,6,3
1047*a4199014Schristos	add	6,6,5
1048*a4199014Schristos
1049*a4199014Schristos	rotrwi	3,28,7
1050*a4199014Schristos	rotrwi	4,28,18
1051*a4199014Schristos	rotrwi	5,25,17
1052*a4199014Schristos	rotrwi	0,25,19
1053*a4199014Schristos	xor	3,3,4
1054*a4199014Schristos	srwi	4,28,3
1055*a4199014Schristos	xor	5,5,0
1056*a4199014Schristos	srwi	0,25,10
1057*a4199014Schristos	add	27,27,20
1058*a4199014Schristos	xor	3,3,4
1059*a4199014Schristos	xor	5,5,0
1060*a4199014Schristos	lwz	0,44(7)
1061*a4199014Schristos	add	27,27,3
1062*a4199014Schristos	add	27,27,5
1063*a4199014Schristos	rotrwi	3,9,6
1064*a4199014Schristos	rotrwi	4,9,11
1065*a4199014Schristos	and	5,10,9
1066*a4199014Schristos	xor	3,3,4
1067*a4199014Schristos	add	12,12,0
1068*a4199014Schristos	andc	0,11,9
1069*a4199014Schristos	rotrwi	4,4,14
1070*a4199014Schristos	or	5,5,0
1071*a4199014Schristos	add	12,12,27
1072*a4199014Schristos	xor	3,3,4
1073*a4199014Schristos	add	12,12,5
1074*a4199014Schristos	add	12,12,3
1075*a4199014Schristos
1076*a4199014Schristos	rotrwi	3,6,2
1077*a4199014Schristos	rotrwi	4,6,13
1078*a4199014Schristos	and	5,6,14
1079*a4199014Schristos	and	0,6,15
1080*a4199014Schristos	xor	3,3,4
1081*a4199014Schristos	rotrwi	4,4,9
1082*a4199014Schristos	xor	5,5,0
1083*a4199014Schristos	and	0,14,15
1084*a4199014Schristos	xor	3,3,4
1085*a4199014Schristos	add	8,8,12
1086*a4199014Schristos	xor	5,5,0
1087*a4199014Schristos	add	12,12,3
1088*a4199014Schristos	add	12,12,5
1089*a4199014Schristos
1090*a4199014Schristos	rotrwi	3,29,7
1091*a4199014Schristos	rotrwi	4,29,18
1092*a4199014Schristos	rotrwi	5,26,17
1093*a4199014Schristos	rotrwi	0,26,19
1094*a4199014Schristos	xor	3,3,4
1095*a4199014Schristos	srwi	4,29,3
1096*a4199014Schristos	xor	5,5,0
1097*a4199014Schristos	srwi	0,26,10
1098*a4199014Schristos	add	28,28,21
1099*a4199014Schristos	xor	3,3,4
1100*a4199014Schristos	xor	5,5,0
1101*a4199014Schristos	lwz	0,48(7)
1102*a4199014Schristos	add	28,28,3
1103*a4199014Schristos	add	28,28,5
1104*a4199014Schristos	rotrwi	3,8,6
1105*a4199014Schristos	rotrwi	4,8,11
1106*a4199014Schristos	and	5,9,8
1107*a4199014Schristos	xor	3,3,4
1108*a4199014Schristos	add	11,11,0
1109*a4199014Schristos	andc	0,10,8
1110*a4199014Schristos	rotrwi	4,4,14
1111*a4199014Schristos	or	5,5,0
1112*a4199014Schristos	add	11,11,28
1113*a4199014Schristos	xor	3,3,4
1114*a4199014Schristos	add	11,11,5
1115*a4199014Schristos	add	11,11,3
1116*a4199014Schristos
1117*a4199014Schristos	rotrwi	3,12,2
1118*a4199014Schristos	rotrwi	4,12,13
1119*a4199014Schristos	and	5,12,6
1120*a4199014Schristos	and	0,12,14
1121*a4199014Schristos	xor	3,3,4
1122*a4199014Schristos	rotrwi	4,4,9
1123*a4199014Schristos	xor	5,5,0
1124*a4199014Schristos	and	0,6,14
1125*a4199014Schristos	xor	3,3,4
1126*a4199014Schristos	add	15,15,11
1127*a4199014Schristos	xor	5,5,0
1128*a4199014Schristos	add	11,11,3
1129*a4199014Schristos	add	11,11,5
1130*a4199014Schristos
1131*a4199014Schristos	rotrwi	3,30,7
1132*a4199014Schristos	rotrwi	4,30,18
1133*a4199014Schristos	rotrwi	5,27,17
1134*a4199014Schristos	rotrwi	0,27,19
1135*a4199014Schristos	xor	3,3,4
1136*a4199014Schristos	srwi	4,30,3
1137*a4199014Schristos	xor	5,5,0
1138*a4199014Schristos	srwi	0,27,10
1139*a4199014Schristos	add	29,29,22
1140*a4199014Schristos	xor	3,3,4
1141*a4199014Schristos	xor	5,5,0
1142*a4199014Schristos	lwz	0,52(7)
1143*a4199014Schristos	add	29,29,3
1144*a4199014Schristos	add	29,29,5
1145*a4199014Schristos	rotrwi	3,15,6
1146*a4199014Schristos	rotrwi	4,15,11
1147*a4199014Schristos	and	5,8,15
1148*a4199014Schristos	xor	3,3,4
1149*a4199014Schristos	add	10,10,0
1150*a4199014Schristos	andc	0,9,15
1151*a4199014Schristos	rotrwi	4,4,14
1152*a4199014Schristos	or	5,5,0
1153*a4199014Schristos	add	10,10,29
1154*a4199014Schristos	xor	3,3,4
1155*a4199014Schristos	add	10,10,5
1156*a4199014Schristos	add	10,10,3
1157*a4199014Schristos
1158*a4199014Schristos	rotrwi	3,11,2
1159*a4199014Schristos	rotrwi	4,11,13
1160*a4199014Schristos	and	5,11,12
1161*a4199014Schristos	and	0,11,6
1162*a4199014Schristos	xor	3,3,4
1163*a4199014Schristos	rotrwi	4,4,9
1164*a4199014Schristos	xor	5,5,0
1165*a4199014Schristos	and	0,12,6
1166*a4199014Schristos	xor	3,3,4
1167*a4199014Schristos	add	14,14,10
1168*a4199014Schristos	xor	5,5,0
1169*a4199014Schristos	add	10,10,3
1170*a4199014Schristos	add	10,10,5
1171*a4199014Schristos
1172*a4199014Schristos	rotrwi	3,31,7
1173*a4199014Schristos	rotrwi	4,31,18
1174*a4199014Schristos	rotrwi	5,28,17
1175*a4199014Schristos	rotrwi	0,28,19
1176*a4199014Schristos	xor	3,3,4
1177*a4199014Schristos	srwi	4,31,3
1178*a4199014Schristos	xor	5,5,0
1179*a4199014Schristos	srwi	0,28,10
1180*a4199014Schristos	add	30,30,23
1181*a4199014Schristos	xor	3,3,4
1182*a4199014Schristos	xor	5,5,0
1183*a4199014Schristos	lwz	0,56(7)
1184*a4199014Schristos	add	30,30,3
1185*a4199014Schristos	add	30,30,5
1186*a4199014Schristos	rotrwi	3,14,6
1187*a4199014Schristos	rotrwi	4,14,11
1188*a4199014Schristos	and	5,15,14
1189*a4199014Schristos	xor	3,3,4
1190*a4199014Schristos	add	9,9,0
1191*a4199014Schristos	andc	0,8,14
1192*a4199014Schristos	rotrwi	4,4,14
1193*a4199014Schristos	or	5,5,0
1194*a4199014Schristos	add	9,9,30
1195*a4199014Schristos	xor	3,3,4
1196*a4199014Schristos	add	9,9,5
1197*a4199014Schristos	add	9,9,3
1198*a4199014Schristos
1199*a4199014Schristos	rotrwi	3,10,2
1200*a4199014Schristos	rotrwi	4,10,13
1201*a4199014Schristos	and	5,10,11
1202*a4199014Schristos	and	0,10,12
1203*a4199014Schristos	xor	3,3,4
1204*a4199014Schristos	rotrwi	4,4,9
1205*a4199014Schristos	xor	5,5,0
1206*a4199014Schristos	and	0,11,12
1207*a4199014Schristos	xor	3,3,4
1208*a4199014Schristos	add	6,6,9
1209*a4199014Schristos	xor	5,5,0
1210*a4199014Schristos	add	9,9,3
1211*a4199014Schristos	add	9,9,5
1212*a4199014Schristos
1213*a4199014Schristos	rotrwi	3,16,7
1214*a4199014Schristos	rotrwi	4,16,18
1215*a4199014Schristos	rotrwi	5,29,17
1216*a4199014Schristos	rotrwi	0,29,19
1217*a4199014Schristos	xor	3,3,4
1218*a4199014Schristos	srwi	4,16,3
1219*a4199014Schristos	xor	5,5,0
1220*a4199014Schristos	srwi	0,29,10
1221*a4199014Schristos	add	31,31,24
1222*a4199014Schristos	xor	3,3,4
1223*a4199014Schristos	xor	5,5,0
1224*a4199014Schristos	lwz	0,60(7)
1225*a4199014Schristos	add	31,31,3
1226*a4199014Schristos	add	31,31,5
1227*a4199014Schristos	rotrwi	3,6,6
1228*a4199014Schristos	rotrwi	4,6,11
1229*a4199014Schristos	and	5,14,6
1230*a4199014Schristos	xor	3,3,4
1231*a4199014Schristos	add	8,8,0
1232*a4199014Schristos	andc	0,15,6
1233*a4199014Schristos	rotrwi	4,4,14
1234*a4199014Schristos	or	5,5,0
1235*a4199014Schristos	add	8,8,31
1236*a4199014Schristos	xor	3,3,4
1237*a4199014Schristos	add	8,8,5
1238*a4199014Schristos	add	8,8,3
1239*a4199014Schristos
1240*a4199014Schristos	rotrwi	3,9,2
1241*a4199014Schristos	rotrwi	4,9,13
1242*a4199014Schristos	and	5,9,10
1243*a4199014Schristos	and	0,9,11
1244*a4199014Schristos	xor	3,3,4
1245*a4199014Schristos	rotrwi	4,4,9
1246*a4199014Schristos	xor	5,5,0
1247*a4199014Schristos	and	0,10,11
1248*a4199014Schristos	xor	3,3,4
1249*a4199014Schristos	add	12,12,8
1250*a4199014Schristos	xor	5,5,0
1251*a4199014Schristos	add	8,8,3
1252*a4199014Schristos	add	8,8,5
1253*a4199014Schristos
1254*a4199014Schristos	bc	16,0,Lrounds
1255*a4199014Schristos
1256*a4199014Schristos	ld	3,144(1)
1257*a4199014Schristos	ld	31,136(1)
1258*a4199014Schristos	ld	5,128(1)
1259*a4199014Schristos	subi	7,7,192
1260*a4199014Schristos
1261*a4199014Schristos	lwz	16,0(3)
1262*a4199014Schristos	lwz	17,4(3)
1263*a4199014Schristos	lwz	18,8(3)
1264*a4199014Schristos	lwz	19,12(3)
1265*a4199014Schristos	lwz	20,16(3)
1266*a4199014Schristos	lwz	21,20(3)
1267*a4199014Schristos	lwz	22,24(3)
1268*a4199014Schristos	addi	31,31,64
1269*a4199014Schristos	lwz	23,28(3)
1270*a4199014Schristos	add	8,8,16
1271*a4199014Schristos	add	9,9,17
1272*a4199014Schristos	std	31,136(1)
1273*a4199014Schristos	add	10,10,18
1274*a4199014Schristos	stw	8,0(3)
1275*a4199014Schristos	add	11,11,19
1276*a4199014Schristos	stw	9,4(3)
1277*a4199014Schristos	add	12,12,20
1278*a4199014Schristos	stw	10,8(3)
1279*a4199014Schristos	add	6,6,21
1280*a4199014Schristos	stw	11,12(3)
1281*a4199014Schristos	add	14,14,22
1282*a4199014Schristos	stw	12,16(3)
1283*a4199014Schristos	add	15,15,23
1284*a4199014Schristos	stw	6,20(3)
1285*a4199014Schristos	stw	14,24(3)
1286*a4199014Schristos	cmpld	31,5
1287*a4199014Schristos	stw	15,28(3)
1288*a4199014Schristos	bne	Lsha2_block_private
1289*a4199014Schristos	blr
1290*a4199014Schristos.long	0
1291*a4199014Schristos.byte	0,12,0x14,0,0,0,0,0
1292*a4199014Schristos
1293*a4199014Schristos.align	6
1294*a4199014SchristosLPICmeup:
1295*a4199014Schristos	mflr	0
1296*a4199014Schristos	bcl	20,31,$+4
1297*a4199014Schristos	mflr	7
1298*a4199014Schristos	addi	7,7,56
1299*a4199014Schristos	mtlr	0
1300*a4199014Schristos	blr
1301*a4199014Schristos.long	0
1302*a4199014Schristos.byte	0,12,0x14,0,0,0,0,0
1303*a4199014Schristos.space	28
1304*a4199014Schristos.long	0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5
1305*a4199014Schristos.long	0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5
1306*a4199014Schristos.long	0xd807aa98,0x12835b01,0x243185be,0x550c7dc3
1307*a4199014Schristos.long	0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174
1308*a4199014Schristos.long	0xe49b69c1,0xefbe4786,0x0fc19dc6,0x240ca1cc
1309*a4199014Schristos.long	0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da
1310*a4199014Schristos.long	0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7
1311*a4199014Schristos.long	0xc6e00bf3,0xd5a79147,0x06ca6351,0x14292967
1312*a4199014Schristos.long	0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13
1313*a4199014Schristos.long	0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85
1314*a4199014Schristos.long	0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc76c51a3
1315*a4199014Schristos.long	0xd192e819,0xd6990624,0xf40e3585,0x106aa070
1316*a4199014Schristos.long	0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5
1317*a4199014Schristos.long	0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3
1318*a4199014Schristos.long	0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208
1319*a4199014Schristos.long	0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2
1320