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