1 .machine	"any"
2 .csect	.text[PR],7
3 .globl	.poly1305_init_int
4 .align	4
5 .poly1305_init_int:
6 	xor	0,0,0
7 	std	0,0(3)
8 	std	0,8(3)
9 	std	0,16(3)
10 	stw	0,24(3)
11 
12 	cmpld	4,0
13 	beq-	Lno_key
14 	li	7,4
15 	lwbrx	10,0,4
16 	li	11,8
17 	lwbrx	7,7,4
18 	li	8,12
19 	lwbrx	11,11,4
20 	lwbrx	8,8,4
21 	insrdi	10,7,32,0
22 	insrdi	11,8,32,0
23 	lis	8,0xfff
24 	ori	8,8,0xfffc
25 	insrdi	8,8,32,0
26 	ori	7,8,3
27 
28 	and	10,10,7
29 	and	11,11,8
30 
31 	std	10,32(3)
32 	std	11,40(3)
33 
34 Lno_key:
35 	xor	3,3,3
36 	blr
37 .long	0
38 .byte	0,12,0x14,0,0,0,2,0
39 
40 
41 .globl	.poly1305_blocks
42 .align	4
43 .poly1305_blocks:
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 	li	10,4
73 	lwbrx	30,0,4
74 	li	31,8
75 	lwbrx	10,10,4
76 	li	11,12
77 	lwbrx	31,31,4
78 	lwbrx	11,11,4
79 	insrdi	30,10,32,0
80 	insrdi	31,11,32,0
81 	addi	4,4,16
82 
83 	addc	7,7,30
84 	adde	8,8,31
85 
86 	mulld	10,7,27
87 	mulhdu	11,7,27
88 	adde	9,9,6
89 
90 	mulld	30,8,29
91 	mulhdu	31,8,29
92 	addc	10,10,30
93 	adde	11,11,31
94 
95 	mulld	30,7,28
96 	mulhdu	12,7,28
97 	addc	11,11,30
98 	addze	12,12
99 
100 	mulld	30,8,27
101 	mulhdu	31,8,27
102 	addc	11,11,30
103 	adde	12,12,31
104 
105 	mulld	30,9,29
106 	mulld	31,9,27
107 	addc	11,11,30
108 	adde	12,12,31
109 
110 	andc	30,12,0
111 	and	9,12,0
112 	srdi	31,30,2
113 	add	30,30,31
114 	addc	7,10,30
115 	addze	8,11
116 	addze	9,9
117 
118 	bc	16,0,Loop
119 
120 	std	7,0(3)
121 	std	8,8(3)
122 	std	9,16(3)
123 
124 	ld	27,152(1)
125 	ld	28,160(1)
126 	ld	29,168(1)
127 	ld	30,176(1)
128 	ld	31,184(1)
129 	addi	1,1,192
130 Labort:
131 	blr
132 .long	0
133 .byte	0,12,4,1,0x80,5,4,0
134 
135 .globl	.poly1305_emit
136 .align	5
137 .poly1305_emit:
138 	lwz	7,0(3)
139 	lwz	8,4(3)
140 	lwz	9,8(3)
141 	lwz	10,12(3)
142 	lwz	11,16(3)
143 	lwz	0,24(3)
144 
145 	sldi	8,8,26
146 	sldi	12,9,52
147 	srdi	9,9,12
148 	sldi	10,10,14
149 	add	7,7,8
150 	addc	7,7,12
151 	sldi	12,11,40
152 	srdi	11,11,24
153 	adde	8,9,10
154 	addc	8,8,12
155 	addze	9,11
156 
157 	ld	10,0(3)
158 	ld	11,8(3)
159 	ld	12,16(3)
160 
161 	neg	0,0
162 	xor	7,7,10
163 	xor	8,8,11
164 	xor	9,9,12
165 	and	7,7,0
166 	and	8,8,0
167 	and	9,9,0
168 	xor	7,7,10
169 	xor	8,8,11
170 	xor	9,9,12
171 
172 	addic	10,7,5
173 	addze	11,8
174 	addze	12,9
175 
176 	srdi	12,12,2
177 	neg	12,12
178 
179 	andc	7,7,12
180 	and	10,10,12
181 	andc	8,8,12
182 	and	11,11,12
183 	or	7,7,10
184 	or	8,8,11
185 
186 	lwz	12,4(5)
187 	lwz	9,12(5)
188 	lwz	10,0(5)
189 	lwz	11,8(5)
190 
191 	insrdi	10,12,32,0
192 	insrdi	11,9,32,0
193 
194 	addc	7,7,10
195 	adde	8,8,11
196 
197 	addi	3,4,-1
198 	addi	4,4,7
199 
200 	stbu	7,1(3)
201 	srdi	7,7,8
202 	stbu	8,1(4)
203 	srdi	8,8,8
204 
205 	stbu	7,1(3)
206 	srdi	7,7,8
207 	stbu	8,1(4)
208 	srdi	8,8,8
209 
210 	stbu	7,1(3)
211 	srdi	7,7,8
212 	stbu	8,1(4)
213 	srdi	8,8,8
214 
215 	stbu	7,1(3)
216 	srdi	7,7,8
217 	stbu	8,1(4)
218 	srdi	8,8,8
219 
220 	stbu	7,1(3)
221 	srdi	7,7,8
222 	stbu	8,1(4)
223 	srdi	8,8,8
224 
225 	stbu	7,1(3)
226 	srdi	7,7,8
227 	stbu	8,1(4)
228 	srdi	8,8,8
229 
230 	stbu	7,1(3)
231 	srdi	7,7,8
232 	stbu	8,1(4)
233 	srdi	8,8,8
234 
235 	stbu	7,1(3)
236 	stbu	8,1(4)
237 
238 	blr
239 .long	0
240 .byte	0,12,0x14,0,0,0,3,0
241 
242 .globl	.poly1305_blocks_vsx
243 .align	5
244 .poly1305_blocks_vsx:
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 
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 
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 
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,56
432 	bl	__poly1305_splat
433 
434 	bl	__poly1305_mul
435 	addi	31,3,48
436 	bl	__poly1305_splat
437 
438 	bl	__poly1305_mul
439 	addi	31,3,60
440 	bl	__poly1305_splat
441 
442 	bl	__poly1305_mul
443 	addi	31,3,52
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 	.long	0x7F5F6699
497 	.long	0x7EA02699
498 	.long	0x7EDB2699
499 	.long	0x7EFC2699
500 	.long	0x7F1D2699
501 	vperm	21,21,21,26
502 	vperm	22,22,22,26
503 	vperm	23,23,23,26
504 	vperm	24,24,24,26
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 	.long	0x7F406699
633 	.long	0x7EA02699
634 	.long	0x7EDB2699
635 	.long	0x7EFC2699
636 	.long	0x7F1D2699
637 	vperm	21,21,21,26
638 	vperm	22,22,22,26
639 	vperm	23,23,23,26
640 	vperm	24,24,24,26
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 	bc	16,0,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 	.long	0x7F406699
965 	.long	0x7EA02699
966 	.long	0x7EDB2699
967 	.long	0x7EFC2699
968 	.long	0x7F1D2699
969 	vperm	21,21,21,26
970 	vperm	22,22,22,26
971 	vperm	23,23,23,26
972 	vperm	24,24,24,26
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 
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	0x00000000,0x03ffffff
1102 .long	0x00000000,0x03ffffff
1103 .long	0x00000000,0x0000001a
1104 .long	0x00000000,0x0000001a
1105 .long	0x00000000,0x00000028
1106 .long	0x00000000,0x00000028
1107 .long	0x00000000,0x0e0f0001
1108 .long	0x00000000,0x1e1f1011
1109 .long	0x01000000,0x01000000
1110 .long	0x01000000,0x01000000
1111 .long	0x07060504,0x03020100
1112 .long	0x0f0e0d0c,0x0b0a0908
1113 
1114 .long	0x00000000,0x00000000
1115 .long	0x00000000,0x04050607
1116 .long	0x04050607,0x00000000
1117 .long	0x00000000,0x00000000
1118 .long	0x00000000,0x00000000
1119 .long	0x04050607,0x00000000
1120 
1121 .long	0xffffffff,0x00000000
1122 .long	0xffffffff,0xffffffff
1123 .long	0xffffffff,0x00000000
1124 .long	0xffffffff,0x00000000
1125 .long	0x00000000,0x00000000
1126 .long	0xffffffff,0x00000000
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