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