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