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