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