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