xref: /freebsd/sys/crypto/openssl/powerpc64le/poly1305-ppc.S (revision 2339ead6384e95af83b9aa482a61f645b5931b2e)
1/* Do not modify. This file is auto-generated from poly1305-ppc.pl. */
2.machine	"any"
3.abiversion	2
4.text
5.globl	poly1305_init_int
6.type	poly1305_init_int,@function
7.align	4
8poly1305_init_int:
9.localentry	poly1305_init_int,0
10
11	xor	0,0,0
12	std	0,0(3)
13	std	0,8(3)
14	std	0,16(3)
15	stw	0,24(3)
16
17	cmpld	4,0
18	beq-	.Lno_key
19	ld	10,0(4)
20	ld	11,8(4)
21	lis	8,0xfff
22	ori	8,8,0xfffc
23	insrdi	8,8,32,0
24	ori	7,8,3
25
26	and	10,10,7
27	and	11,11,8
28
29	std	10,32(3)
30	std	11,40(3)
31
32.Lno_key:
33	xor	3,3,3
34	blr
35.long	0
36.byte	0,12,0x14,0,0,0,2,0
37.size	poly1305_init_int,.-poly1305_init_int
38
39.globl	poly1305_blocks
40.type	poly1305_blocks,@function
41.align	4
42poly1305_blocks:
43.localentry	poly1305_blocks,0
44
45.Lpoly1305_blocks:
46	srdi.	5,5,4
47	beq-	.Labort
48
49	stdu	1,-192(1)
50	mflr	0
51	std	27,152(1)
52	std	28,160(1)
53	std	29,168(1)
54	std	30,176(1)
55	std	31,184(1)
56	std	0,208(1)
57
58	ld	27,32(3)
59	ld	28,40(3)
60
61	ld	7,0(3)
62	ld	8,8(3)
63	ld	9,16(3)
64
65	srdi	29,28,2
66	mtctr	5
67	add	29,29,28
68	li	0,3
69	b	.Loop
70
71.align	4
72.Loop:
73	ld	30,0(4)
74	ld	31,8(4)
75	addi	4,4,16
76
77	addc	7,7,30
78	adde	8,8,31
79
80	mulld	10,7,27
81	mulhdu	11,7,27
82	adde	9,9,6
83
84	mulld	30,8,29
85	mulhdu	31,8,29
86	addc	10,10,30
87	adde	11,11,31
88
89	mulld	30,7,28
90	mulhdu	12,7,28
91	addc	11,11,30
92	addze	12,12
93
94	mulld	30,8,27
95	mulhdu	31,8,27
96	addc	11,11,30
97	adde	12,12,31
98
99	mulld	30,9,29
100	mulld	31,9,27
101	addc	11,11,30
102	adde	12,12,31
103
104	andc	30,12,0
105	and	9,12,0
106	srdi	31,30,2
107	add	30,30,31
108	addc	7,10,30
109	addze	8,11
110	addze	9,9
111
112	bdnz	.Loop
113
114	std	7,0(3)
115	std	8,8(3)
116	std	9,16(3)
117
118	ld	27,152(1)
119	ld	28,160(1)
120	ld	29,168(1)
121	ld	30,176(1)
122	ld	31,184(1)
123	addi	1,1,192
124.Labort:
125	blr
126.long	0
127.byte	0,12,4,1,0x80,5,4,0
128.size	poly1305_blocks,.-poly1305_blocks
129.globl	poly1305_emit
130.type	poly1305_emit,@function
131.align	5
132poly1305_emit:
133.localentry	poly1305_emit,0
134
135	lwz	7,0(3)
136	lwz	8,4(3)
137	lwz	9,8(3)
138	lwz	10,12(3)
139	lwz	11,16(3)
140	lwz	0,24(3)
141
142	sldi	8,8,26
143	sldi	12,9,52
144	srdi	9,9,12
145	sldi	10,10,14
146	add	7,7,8
147	addc	7,7,12
148	sldi	12,11,40
149	srdi	11,11,24
150	adde	8,9,10
151	addc	8,8,12
152	addze	9,11
153
154	ld	10,0(3)
155	ld	11,8(3)
156	ld	12,16(3)
157
158	neg	0,0
159	xor	7,7,10
160	xor	8,8,11
161	xor	9,9,12
162	and	7,7,0
163	and	8,8,0
164	and	9,9,0
165	xor	7,7,10
166	xor	8,8,11
167	xor	9,9,12
168
169	addic	10,7,5
170	addze	11,8
171	addze	12,9
172
173	srdi	12,12,2
174	neg	12,12
175
176	andc	7,7,12
177	and	10,10,12
178	andc	8,8,12
179	and	11,11,12
180	or	7,7,10
181	or	8,8,11
182
183	lwz	12,4(5)
184	lwz	9,12(5)
185	lwz	10,0(5)
186	lwz	11,8(5)
187
188	insrdi	10,12,32,0
189	insrdi	11,9,32,0
190
191	addc	7,7,10
192	adde	8,8,11
193
194	addi	3,4,-1
195	addi	4,4,7
196
197	stbu	7,1(3)
198	srdi	7,7,8
199	stbu	8,1(4)
200	srdi	8,8,8
201
202	stbu	7,1(3)
203	srdi	7,7,8
204	stbu	8,1(4)
205	srdi	8,8,8
206
207	stbu	7,1(3)
208	srdi	7,7,8
209	stbu	8,1(4)
210	srdi	8,8,8
211
212	stbu	7,1(3)
213	srdi	7,7,8
214	stbu	8,1(4)
215	srdi	8,8,8
216
217	stbu	7,1(3)
218	srdi	7,7,8
219	stbu	8,1(4)
220	srdi	8,8,8
221
222	stbu	7,1(3)
223	srdi	7,7,8
224	stbu	8,1(4)
225	srdi	8,8,8
226
227	stbu	7,1(3)
228	srdi	7,7,8
229	stbu	8,1(4)
230	srdi	8,8,8
231
232	stbu	7,1(3)
233	stbu	8,1(4)
234
235	blr
236.long	0
237.byte	0,12,0x14,0,0,0,3,0
238.size	poly1305_emit,.-poly1305_emit
239.globl	poly1305_blocks_vsx
240.type	poly1305_blocks_vsx,@function
241.align	5
242poly1305_blocks_vsx:
243.localentry	poly1305_blocks_vsx,0
244
245	lwz	7,24(3)
246	cmpldi	5,128
247	bge	__poly1305_blocks_vsx
248
249	neg	0,7
250	lwz	7,0(3)
251	lwz	8,4(3)
252	lwz	9,8(3)
253	lwz	10,12(3)
254	lwz	11,16(3)
255
256	sldi	8,8,26
257	sldi	12,9,52
258	add	7,7,8
259	srdi	9,9,12
260	sldi	10,10,14
261	addc	7,7,12
262	sldi	8,11,40
263	adde	9,9,10
264	srdi	11,11,24
265	addc	9,9,8
266	addze	11,11
267
268	ld	8,0(3)
269	ld	10,8(3)
270	ld	12,16(3)
271
272	xor	7,7,8
273	xor	9,9,10
274	xor	11,11,12
275	and	7,7,0
276	and	9,9,0
277	and	11,11,0
278	xor	7,7,8
279	xor	9,9,10
280	xor	11,11,12
281
282	li	0,0
283	std	7,0(3)
284	std	9,8(3)
285	std	11,16(3)
286	stw	0,24(3)
287
288	b	.Lpoly1305_blocks
289.long	0
290.byte	0,12,0x14,0,0,0,4,0
291.size	poly1305_blocks_vsx,.-poly1305_blocks_vsx
292
293.align	5
294__poly1305_mul:
295	mulld	9,6,27
296	mulhdu	10,6,27
297
298	mulld	30,7,29
299	mulhdu	31,7,29
300	addc	9,9,30
301	adde	10,10,31
302
303	mulld	30,6,28
304	mulhdu	11,6,28
305	addc	10,10,30
306	addze	11,11
307
308	mulld	30,7,27
309	mulhdu	31,7,27
310	addc	10,10,30
311	adde	11,11,31
312
313	mulld	30,8,29
314	mulld	31,8,27
315	addc	10,10,30
316	adde	11,11,31
317
318	andc	30,11,0
319	and	8,11,0
320	srdi	31,30,2
321	add	30,30,31
322	addc	6,9,30
323	addze	7,10
324	addze	8,8
325
326	blr
327.long	0
328.byte	0,12,0x14,0,0,0,0,0
329.size	__poly1305_mul,.-__poly1305_mul
330
331.align	5
332__poly1305_splat:
333	rldicl	9,6,0,38
334	rldicl	10,6,38,38
335	stw	9,0x00(31)
336
337	rldicl	11,6,12,52
338	slwi	9,10,2
339	stw	10,0x10(31)
340	add	9,9,10
341	stw	9,0x20(31)
342
343	insrdi	11,7,14,38
344	slwi	9,11,2
345	stw	11,0x30(31)
346	add	9,9,11
347	stw	9,0x40(31)
348
349	rldicl	10,7,50,38
350	rldicl	11,7,24,40
351	slwi	9,10,2
352	stw	10,0x50(31)
353	add	9,9,10
354	stw	9,0x60(31)
355
356	insrdi	11,8,3,37
357	slwi	9,11,2
358	stw	11,0x70(31)
359	add	9,9,11
360	stw	9,0x80(31)
361
362	blr
363.long	0
364.byte	0,12,0x14,0,0,0,0,0
365.size	__poly1305_splat,.-__poly1305_splat
366
367.align	5
368__poly1305_blocks_vsx:
369	stdu	1,-416(1)
370	mflr	0
371	li	10,191
372	li	11,207
373	li	12,-1
374	stvx	20,10,1
375	addi	10,10,32
376	stvx	21,11,1
377	addi	11,11,32
378	stvx	22,10,1
379	addi	10,10,32
380	stvx	23,11,1
381	addi	11,11,32
382	stvx	24,10,1
383	addi	10,10,32
384	stvx	25,11,1
385	addi	11,11,32
386	stvx	26,10,1
387	addi	10,10,32
388	stvx	27,11,1
389	addi	11,11,32
390	stvx	28,10,1
391	addi	10,10,32
392	stvx	29,11,1
393	addi	11,11,32
394	stvx	30,10,1
395	stvx	31,11,1
396	stw	12,372(1)
397	li	12,-1
398	or	12,12,12
399	std	27,376(1)
400	std	28,384(1)
401	std	29,392(1)
402	std	30,400(1)
403	std	31,408(1)
404	std	0,432(1)
405
406	bl	.LPICmeup
407
408	li	27,0x10
409	li	28,0x20
410	li	29,0x30
411	li	30,0x40
412	li	31,0x50
413	.long	0x7FA06699
414	.long	0x7F3B6699
415	.long	0x7F7C6699
416	.long	0x7FFD6699
417	.long	0x7FDE6699
418
419	cmplwi	7,0
420	bne	.Lskip_init_vsx
421
422	ld	27,32(3)
423	ld	28,40(3)
424	srdi	29,28,2
425	li	0,3
426	add	29,29,28
427
428	mr	6,27
429	mr	7,28
430	li	8,0
431	addi	31,3,60
432	bl	__poly1305_splat
433
434	bl	__poly1305_mul
435	addi	31,3,52
436	bl	__poly1305_splat
437
438	bl	__poly1305_mul
439	addi	31,3,56
440	bl	__poly1305_splat
441
442	bl	__poly1305_mul
443	addi	31,3,48
444	bl	__poly1305_splat
445
446	ld	6,0(3)
447	ld	7,8(3)
448	ld	8,16(3)
449
450	rldicl	9,6,0,38
451	rldicl	10,6,38,38
452	rldicl	11,6,12,52
453	.long	0x7C0901E7
454	insrdi	11,7,14,38
455	.long	0x7C2A01E7
456	rldicl	10,7,50,38
457	.long	0x7C4B01E7
458	rldicl	11,7,24,40
459	.long	0x7C6A01E7
460	insrdi	11,8,3,37
461	.long	0x7C8B01E7
462	li	0,1
463	stw	0,24(3)
464	b	.Loaded_vsx
465
466.align	4
467.Lskip_init_vsx:
468	li	27,4
469	li	28,8
470	li	29,12
471	li	30,16
472	.long	0x7C001819
473	.long	0x7C3B1819
474	.long	0x7C5C1819
475	.long	0x7C7D1819
476	.long	0x7C9E1819
477
478.Loaded_vsx:
479	li	27,0x10
480	li	28,0x20
481	li	29,0x30
482	li	30,0x40
483	li	31,0x50
484	li	7,0x60
485	li	8,0x70
486	addi	10,3,64
487	addi	11,1,63
488
489	vxor	20,20,20
490	.long	0xF000A057
491	.long	0xF021A057
492	.long	0xF042A057
493	.long	0xF063A057
494	.long	0xF084A057
495
496
497	.long	0x7EA02699
498	.long	0x7EDB2699
499	.long	0x7EFC2699
500	.long	0x7F1D2699
501
502
503
504
505
506	.long	0xF0B5B057
507	vspltisb	26,4
508	vperm	7,21,22,31
509	vspltisb	28,14
510	.long	0xF115B357
511
512	.long	0x10C5CEC4
513	.long	0x10E7D6C4
514	.long	0x1128DEC4
515	.long	0x1108E6C4
516	vand	5,5,29
517	vand	6,6,29
518	vand	7,7,29
519	vand	8,8,29
520
521	.long	0xF2B7C057
522	vperm	22,23,24,31
523	.long	0xF2F7C357
524
525	.long	0x1295CEC4
526	.long	0x12D6D6C4
527	.long	0x1317DEC4
528	.long	0x12F7E6C4
529	vand	21,21,29
530	vand	20,20,29
531	vand	22,22,29
532	vand	23,23,29
533
534
535	.long	0x11384E8C
536	.long	0x10B52E8C
537	.long	0x10D4368C
538	.long	0x10F63E8C
539	.long	0x1117468C
540	vor	9,9,30
541
542	.long	0x7D5D1A99
543	.long	0x7D605299
544	.long	0x7D9B5299
545	.long	0x7DBC5299
546	.long	0x7DDD5299
547	.long	0x7EBE5299
548	.long	0x7EDF5299
549	.long	0x7EE75299
550	.long	0x7F085299
551	stvx	11,0,11
552	stvx	12,27,11
553	stvx	13,28,11
554	stvx	14,29,11
555	stvx	21,30,11
556	stvx	22,31,11
557	stvx	23,7,11
558	stvx	24,8,11
559
560	addi	4,4,0x40
561	addi	12,12,0x50
562	addi	0,5,-64
563	srdi	0,0,6
564	mtctr	0
565	b	.Loop_vsx
566
567.align	4
568.Loop_vsx:
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583	.long	0x11E55288
584	.long	0x12055A88
585	.long	0x12256A88
586	.long	0x12466A88
587
588	.long	0x12865288
589	.long	0x1210A0C0
590	.long	0x12865A88
591	.long	0x1231A0C0
592	.long	0x12676A88
593	.long	0x12896288
594	.long	0x11EFA0C0
595	.long	0x12875A88
596	.long	0x1252A0C0
597	lvx	12,31,11
598	.long	0x12885A88
599	.long	0x1273A0C0
600	lvx	11,30,11
601
602	.long	0x104238C0
603	.long	0x100028C0
604	.long	0x106340C0
605	.long	0x102130C0
606	.long	0x108448C0
607
608	.long	0x12887288
609	.long	0x11EFA0C0
610	.long	0x12897288
611	.long	0x1210A0C0
612	.long	0x12875288
613	.long	0x1231A0C0
614	.long	0x12885288
615	.long	0x1252A0C0
616	lvx	14,8,11
617	.long	0x12895288
618	.long	0x1273A0C0
619	lvx	13,7,11
620
621	.long	0x12876288
622	.long	0x11EFA0C0
623	.long	0x12886288
624	.long	0x1210A0C0
625	.long	0x12896288
626	.long	0x1231A0C0
627	.long	0x12855A88
628	.long	0x1252A0C0
629	.long	0x12865A88
630	.long	0x1273A0C0
631
632
633	.long	0x7EA02699
634	.long	0x7EDB2699
635	.long	0x7EFC2699
636	.long	0x7F1D2699
637
638
639
640
641
642	.long	0x12867288
643	.long	0x11EFA0C0
644	.long	0x12877288
645	.long	0x1210A0C0
646	.long	0x12887288
647	.long	0x1231A0C0
648	.long	0x12897288
649	.long	0x1252A0C0
650	.long	0x12856A88
651	.long	0x1273A0C0
652
653	.long	0xF0B5B057
654	vspltisb	26,4
655	vperm	7,21,22,31
656	.long	0xF115B357
657
658
659	.long	0x12805088
660	.long	0x11EFA0C0
661	.long	0x12815088
662	.long	0x1210A0C0
663	.long	0x12825088
664	.long	0x1231A0C0
665	.long	0x12835088
666	.long	0x1252A0C0
667	.long	0x12845088
668	.long	0x1273A0C0
669
670	.long	0xF2B7C057
671	vperm	22,23,24,31
672	.long	0xF2F7C357
673
674	.long	0x12826088
675	.long	0x11EFA0C0
676	.long	0x12836088
677	.long	0x1210A0C0
678	.long	0x12846088
679	.long	0x1231A0C0
680	.long	0x12805888
681	.long	0x1252A0C0
682	lvx	12,27,11
683	.long	0x12815888
684	.long	0x1273A0C0
685	lvx	11,0,11
686
687	.long	0x10C5CEC4
688	.long	0x10E7D6C4
689	.long	0x1128DEC4
690	.long	0x1108E6C4
691
692	.long	0x12817088
693	.long	0x11EFA0C0
694	.long	0x12827088
695	.long	0x1210A0C0
696	.long	0x12837088
697	.long	0x1231A0C0
698	.long	0x12847088
699	.long	0x1252A0C0
700	lvx	14,29,11
701	.long	0x12806888
702	.long	0x1273A0C0
703	lvx	13,28,11
704
705	vand	5,5,29
706	vand	6,6,29
707	vand	7,7,29
708	vand	8,8,29
709
710	.long	0x12846088
711	.long	0x11EFA0C0
712	.long	0x12805888
713	.long	0x1210A0C0
714	.long	0x12815888
715	.long	0x1231A0C0
716	.long	0x12825888
717	.long	0x1252A0C0
718	.long	0x12835888
719	.long	0x1273A0C0
720
721	.long	0x12D6D6C4
722	.long	0x1355CEC4
723	.long	0x1317DEC4
724	.long	0x12F7E6C4
725
726	.long	0x12837088
727	.long	0x11EFA0C0
728	.long	0x12847088
729	.long	0x1210A0C0
730	.long	0x12806888
731	.long	0x1231A0C0
732	.long	0x12816888
733	.long	0x1252A0C0
734	.long	0x12826888
735	.long	0x1273A0C0
736
737	vand	21,21,29
738	vand	26,26,29
739	vand	22,22,29
740	vand	23,23,29
741
742
743
744
745
746	vspltisb	20,2
747	.long	0x1092CEC4
748	.long	0x102FCEC4
749	vand	3,18,29
750	vand	0,15,29
751	.long	0x108498C0
752	.long	0x102180C0
753
754	.long	0x11384E8C
755	.long	0x10B52E8C
756	.long	0x10DA368C
757	.long	0x10F63E8C
758	.long	0x1117468C
759	vor	9,9,30
760
761	.long	0x1264CEC4
762	.long	0x1201CEC4
763	vand	4,4,29
764	vand	1,1,29
765	.long	0x100098C0
766	.long	0x105180C0
767
768	.long	0x1273A5C4
769	.long	0x1222CEC4
770	vand	2,2,29
771	.long	0x100098C0
772	.long	0x106388C0
773
774	.long	0x11E0CEC4
775	.long	0x1243CEC4
776	vand	0,0,29
777	vand	3,3,29
778	.long	0x102178C0
779	.long	0x108490C0
780
781	addi	4,4,0x40
782	bdnz	.Loop_vsx
783
784	neg	5,5
785	andi.	5,5,0x30
786	sub	4,4,5
787
788	.long	0x7D5D1E99
789	.long	0x7D605699
790	.long	0x7D9B5699
791	.long	0x7DBC5699
792	.long	0x7DDD5699
793
794.Last_vsx:
795	.long	0x11E55288
796	.long	0x12065288
797	.long	0x12275288
798	.long	0x12485288
799	.long	0x12695288
800
801	.long	0x12896288
802	.long	0x11EFA0C0
803	.long	0x12855A88
804	.long	0x1210A0C0
805	.long	0x12865A88
806	.long	0x1231A0C0
807	.long	0x12875A88
808	.long	0x1252A0C0
809	.long	0x7D9F5699
810	.long	0x12885A88
811	.long	0x1273A0C0
812	.long	0x7D7E5699
813
814	.long	0x104238C0
815	.long	0x100028C0
816	.long	0x106340C0
817	.long	0x102130C0
818	.long	0x108448C0
819
820	.long	0x12887288
821	.long	0x11EFA0C0
822	.long	0x12897288
823	.long	0x1210A0C0
824	.long	0x12856A88
825	.long	0x1231A0C0
826	.long	0x12866A88
827	.long	0x1252A0C0
828	.long	0x7DC85699
829	.long	0x12876A88
830	.long	0x1273A0C0
831	.long	0x7DA75699
832
833	.long	0x12876288
834	.long	0x11EFA0C0
835	.long	0x12886288
836	.long	0x1210A0C0
837	.long	0x12896288
838	.long	0x1231A0C0
839	.long	0x12855A88
840	.long	0x1252A0C0
841	.long	0x12865A88
842	.long	0x1273A0C0
843
844	.long	0x12867288
845	.long	0x11EFA0C0
846	.long	0x12877288
847	.long	0x1210A0C0
848	.long	0x12887288
849	.long	0x1231A0C0
850	.long	0x12897288
851	.long	0x1252A0C0
852	.long	0x12856A88
853	.long	0x1273A0C0
854
855
856	.long	0x12805088
857	.long	0x11EFA0C0
858	.long	0x12815088
859	.long	0x1210A0C0
860	.long	0x12825088
861	.long	0x1231A0C0
862	.long	0x12835088
863	.long	0x1252A0C0
864	.long	0x12845088
865	.long	0x1273A0C0
866
867	.long	0x12826088
868	.long	0x11EFA0C0
869	.long	0x12836088
870	.long	0x1210A0C0
871	.long	0x12846088
872	.long	0x1231A0C0
873	.long	0x12805888
874	.long	0x1252A0C0
875	.long	0x7D9B5699
876	.long	0x12815888
877	.long	0x1273A0C0
878	.long	0x7D605699
879
880	.long	0x12817088
881	.long	0x11EFA0C0
882	.long	0x12827088
883	.long	0x1210A0C0
884	.long	0x12837088
885	.long	0x1231A0C0
886	.long	0x12847088
887	.long	0x1252A0C0
888	.long	0x7DDD5699
889	.long	0x12806888
890	.long	0x1273A0C0
891	.long	0x7DBC5699
892
893	.long	0x12846088
894	.long	0x11EFA0C0
895	.long	0x12805888
896	.long	0x1210A0C0
897	.long	0x12815888
898	.long	0x1231A0C0
899	.long	0x12825888
900	.long	0x1252A0C0
901	.long	0x12835888
902	.long	0x1273A0C0
903
904	.long	0x12837088
905	.long	0x11EFA0C0
906	.long	0x12847088
907	.long	0x1210A0C0
908	.long	0x12806888
909	.long	0x1231A0C0
910	.long	0x12816888
911	.long	0x1252A0C0
912	.long	0x12826888
913	.long	0x1273A0C0
914
915
916
917
918	.long	0xF00F7A57
919	.long	0xF0308257
920	.long	0xF0518A57
921	.long	0xF0729257
922	.long	0xF0939A57
923	.long	0x11EF00C0
924	.long	0x121008C0
925	.long	0x123110C0
926	.long	0x125218C0
927	.long	0x127320C0
928
929
930
931
932	vspltisb	20,2
933	.long	0x1092CEC4
934	.long	0x102FCEC4
935	vand	3,18,29
936	vand	0,15,29
937	.long	0x108498C0
938	.long	0x102180C0
939
940	.long	0x1264CEC4
941	.long	0x1201CEC4
942	vand	4,4,29
943	vand	1,1,29
944	.long	0x100098C0
945	.long	0x105180C0
946
947	.long	0x1273A5C4
948	.long	0x1222CEC4
949	vand	2,2,29
950	.long	0x100098C0
951	.long	0x106388C0
952
953	.long	0x11E0CEC4
954	.long	0x1243CEC4
955	vand	0,0,29
956	vand	3,3,29
957	.long	0x102178C0
958	.long	0x108490C0
959
960	beq	.Ldone_vsx
961
962	add	6,12,5
963
964
965	.long	0x7EA02699
966	.long	0x7EDB2699
967	.long	0x7EFC2699
968	.long	0x7F1D2699
969
970
971
972
973
974	.long	0xF0B5B057
975	vspltisb	26,4
976	vperm	7,21,22,31
977	.long	0xF115B357
978
979	.long	0x10C5CEC4
980	.long	0x10E7D6C4
981	.long	0x1128DEC4
982	.long	0x1108E6C4
983	vand	5,5,29
984	vand	6,6,29
985	vand	7,7,29
986	vand	8,8,29
987
988	.long	0xF297C057
989	vperm	21,23,24,31
990	.long	0xF2D7C357
991
992	.long	0x7DE03699
993	.long	0x7E1D3699
994
995	.long	0x12F4CEC4
996	.long	0x12B5D6C4
997	.long	0x1316DEC4
998	.long	0x12D6E6C4
999	vand	20,20,29
1000	vand	23,23,29
1001	vand	21,21,29
1002	vand	22,22,29
1003
1004
1005	.long	0x11384E8C
1006	.long	0x10B42E8C
1007	.long	0x10D7368C
1008	.long	0x10F53E8C
1009	.long	0x1116468C
1010	vor	9,9,30
1011
1012	vperm	0,0,0,15
1013	vand	5,5,    16
1014	vperm	1,1,1,15
1015	vand	6,6,    16
1016	vperm	2,2,2,15
1017	vand	7,7,    16
1018	vperm	3,3,3,15
1019	vand	8,8,    16
1020	vperm	4,4,4,15
1021	vand	9,9,    16
1022
1023	.long	0x10A500C0
1024	vxor	0,0,0
1025	.long	0x10C608C0
1026	vxor	1,1,1
1027	.long	0x10E710C0
1028	vxor	2,2,2
1029	.long	0x110818C0
1030	vxor	3,3,3
1031	.long	0x112920C0
1032	vxor	4,4,4
1033
1034	xor.	5,5,5
1035	b	.Last_vsx
1036
1037.align	4
1038.Ldone_vsx:
1039	ld	0,432(1)
1040	li	27,4
1041	li	28,8
1042	li	29,12
1043	li	30,16
1044	.long	0x7C001919
1045	.long	0x7C3B1919
1046	.long	0x7C5C1919
1047	.long	0x7C7D1919
1048	.long	0x7C9E1919
1049
1050	lwz	12,372(1)
1051	mtlr	0
1052	li	10,191
1053	li	11,207
1054	or	12,12,12
1055	lvx	20,10,1
1056	addi	10,10,32
1057	lvx	21,11,1
1058	addi	11,11,32
1059	lvx	22,10,1
1060	addi	10,10,32
1061	lvx	23,11,1
1062	addi	11,11,32
1063	lvx	24,10,1
1064	addi	10,10,32
1065	lvx	25,11,1
1066	addi	11,11,32
1067	lvx	26,10,1
1068	addi	10,10,32
1069	lvx	27,11,1
1070	addi	11,11,32
1071	lvx	28,10,1
1072	addi	10,10,32
1073	lvx	29,11,1
1074	addi	11,11,32
1075	lvx	30,10,1
1076	lvx	31,11,1
1077	ld	27,376(1)
1078	ld	28,384(1)
1079	ld	29,392(1)
1080	ld	30,400(1)
1081	ld	31,408(1)
1082	addi	1,1,416
1083	blr
1084.long	0
1085.byte	0,12,0x04,1,0x80,5,4,0
1086.long	0
1087.size	__poly1305_blocks_vsx,.-__poly1305_blocks_vsx
1088
1089.align	6
1090.LPICmeup:
1091	mflr	0
1092	bcl	20,31,$+4
1093	mflr	12
1094	addi	12,12,56
1095	mtlr	0
1096	blr
1097.long	0
1098.byte	0,12,0x14,0,0,0,0,0
1099.space	28
1100
1101.long	0x03ffffff,0x00000000
1102.long	0x03ffffff,0x00000000
1103.long	0x0000001a,0x00000000
1104.long	0x0000001a,0x00000000
1105.long	0x00000028,0x00000000
1106.long	0x00000028,0x00000000
1107.long	0x0e0f0001,0x00000000
1108.long	0x1e1f1011,0x00000000
1109.long	0x01000000,0x01000000
1110.long	0x01000000,0x01000000
1111.long	0x03020100,0x07060504
1112.long	0x0b0a0908,0x0f0e0d0c
1113
1114.long	0x00000000,0x00000000
1115.long	0x04050607,0x00000000
1116.long	0x00000000,0x04050607
1117.long	0x00000000,0x00000000
1118.long	0x00000000,0x00000000
1119.long	0x00000000,0x04050607
1120
1121.long	0x00000000,0xffffffff
1122.long	0xffffffff,0xffffffff
1123.long	0x00000000,0xffffffff
1124.long	0x00000000,0xffffffff
1125.long	0x00000000,0x00000000
1126.long	0x00000000,0xffffffff
1127.byte	80,111,108,121,49,51,48,53,32,102,111,114,32,80,80,67,44,67,82,89,80,84,79,71,65,77,83,32,98,121,32,64,100,111,116,45,97,115,109,0
1128.align	2
1129