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