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