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