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