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