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