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