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