1/* Do not modify. This file is auto-generated from chachap10-ppc.pl. */ 2 3.globl ChaCha20_ctr32_vsx_p10 4.type ChaCha20_ctr32_vsx_p10,@function 5.align 5 6ChaCha20_ctr32_vsx_p10: 7 cmplwi 5,255 8 ble .Not_greater_than_8x 9 b ChaCha20_ctr32_vsx_8x 10.Not_greater_than_8x: 11 stwu 1,-200(1) 12 mflr 0 13 li 10,103 14 li 11,119 15 mfspr 12,256 16 stvx 26,10,1 17 addi 10,10,32 18 stvx 27,11,1 19 addi 11,11,32 20 stvx 28,10,1 21 addi 10,10,32 22 stvx 29,11,1 23 addi 11,11,32 24 stvx 30,10,1 25 stvx 31,11,1 26 stw 12,196(1) 27 li 12,-4096+63 28 stw 0, 204(1) 29 mtspr 256,12 30 31 bl .Lconsts 32 .long 0x7E006619 33 addi 12,12,0x70 34 li 8,16 35 li 9,32 36 li 10,48 37 li 11,64 38 39 .long 0x7E203619 40 .long 0x7E483619 41 .long 0x7E603E19 42 43 vxor 27,27,27 44 .long 0x7F8B6619 45 vspltw 26,19,0 46 vsldoi 19,19,27,4 47 vsldoi 19,27,19,12 48 vadduwm 26,26,28 49 50 lvsl 31,0,8 51 vspltisb 27,3 52 vxor 31,31,27 53 54 li 0,10 55 mtctr 0 56 b .Loop_outer_vsx 57 58.align 5 59.Loop_outer_vsx: 60 lvx 0,0,12 61 lvx 1,8,12 62 lvx 2,9,12 63 lvx 3,10,12 64 65 vspltw 4,17,0 66 vspltw 5,17,1 67 vspltw 6,17,2 68 vspltw 7,17,3 69 70 vspltw 8,18,0 71 vspltw 9,18,1 72 vspltw 10,18,2 73 vspltw 11,18,3 74 75 vor 12,26,26 76 vspltw 13,19,1 77 vspltw 14,19,2 78 vspltw 15,19,3 79 80 vspltisw 27,-16 81 vspltisw 28,12 82 vspltisw 29,8 83 vspltisw 30,7 84 85.Loop_vsx_4x: 86 vadduwm 0,0,4 87 vadduwm 1,1,5 88 vadduwm 2,2,6 89 vadduwm 3,3,7 90 vxor 12,12,0 91 vxor 13,13,1 92 vxor 14,14,2 93 vxor 15,15,3 94 vrlw 12,12,27 95 vrlw 13,13,27 96 vrlw 14,14,27 97 vrlw 15,15,27 98 vadduwm 8,8,12 99 vadduwm 9,9,13 100 vadduwm 10,10,14 101 vadduwm 11,11,15 102 vxor 4,4,8 103 vxor 5,5,9 104 vxor 6,6,10 105 vxor 7,7,11 106 vrlw 4,4,28 107 vrlw 5,5,28 108 vrlw 6,6,28 109 vrlw 7,7,28 110 vadduwm 0,0,4 111 vadduwm 1,1,5 112 vadduwm 2,2,6 113 vadduwm 3,3,7 114 vxor 12,12,0 115 vxor 13,13,1 116 vxor 14,14,2 117 vxor 15,15,3 118 vrlw 12,12,29 119 vrlw 13,13,29 120 vrlw 14,14,29 121 vrlw 15,15,29 122 vadduwm 8,8,12 123 vadduwm 9,9,13 124 vadduwm 10,10,14 125 vadduwm 11,11,15 126 vxor 4,4,8 127 vxor 5,5,9 128 vxor 6,6,10 129 vxor 7,7,11 130 vrlw 4,4,30 131 vrlw 5,5,30 132 vrlw 6,6,30 133 vrlw 7,7,30 134 vadduwm 0,0,5 135 vadduwm 1,1,6 136 vadduwm 2,2,7 137 vadduwm 3,3,4 138 vxor 15,15,0 139 vxor 12,12,1 140 vxor 13,13,2 141 vxor 14,14,3 142 vrlw 15,15,27 143 vrlw 12,12,27 144 vrlw 13,13,27 145 vrlw 14,14,27 146 vadduwm 10,10,15 147 vadduwm 11,11,12 148 vadduwm 8,8,13 149 vadduwm 9,9,14 150 vxor 5,5,10 151 vxor 6,6,11 152 vxor 7,7,8 153 vxor 4,4,9 154 vrlw 5,5,28 155 vrlw 6,6,28 156 vrlw 7,7,28 157 vrlw 4,4,28 158 vadduwm 0,0,5 159 vadduwm 1,1,6 160 vadduwm 2,2,7 161 vadduwm 3,3,4 162 vxor 15,15,0 163 vxor 12,12,1 164 vxor 13,13,2 165 vxor 14,14,3 166 vrlw 15,15,29 167 vrlw 12,12,29 168 vrlw 13,13,29 169 vrlw 14,14,29 170 vadduwm 10,10,15 171 vadduwm 11,11,12 172 vadduwm 8,8,13 173 vadduwm 9,9,14 174 vxor 5,5,10 175 vxor 6,6,11 176 vxor 7,7,8 177 vxor 4,4,9 178 vrlw 5,5,30 179 vrlw 6,6,30 180 vrlw 7,7,30 181 vrlw 4,4,30 182 183 bdnz .Loop_vsx_4x 184 185 vadduwm 12,12,26 186 187 .long 0x13600F8C 188 .long 0x13821F8C 189 .long 0x10000E8C 190 .long 0x10421E8C 191 .long 0x13A42F8C 192 .long 0x13C63F8C 193 .long 0xF0201057 194 .long 0xF0601357 195 .long 0xF01BE057 196 .long 0xF05BE357 197 198 .long 0x10842E8C 199 .long 0x10C63E8C 200 .long 0x13684F8C 201 .long 0x138A5F8C 202 .long 0xF0A43057 203 .long 0xF0E43357 204 .long 0xF09DF057 205 .long 0xF0DDF357 206 207 .long 0x11084E8C 208 .long 0x114A5E8C 209 .long 0x13AC6F8C 210 .long 0x13CE7F8C 211 .long 0xF1285057 212 .long 0xF1685357 213 .long 0xF11BE057 214 .long 0xF15BE357 215 216 .long 0x118C6E8C 217 .long 0x11CE7E8C 218 vspltisw 27,4 219 vadduwm 26,26,27 220 .long 0xF1AC7057 221 .long 0xF1EC7357 222 .long 0xF19DF057 223 .long 0xF1DDF357 224 225 vadduwm 0,0,16 226 vadduwm 4,4,17 227 vadduwm 8,8,18 228 vadduwm 12,12,19 229 230 vperm 0,0,0,31 231 vperm 4,4,4,31 232 vperm 8,8,8,31 233 vperm 12,12,12,31 234 235 cmplwi 5,0x40 236 blt .Ltail_vsx 237 238 .long 0x7F602619 239 .long 0x7F882619 240 .long 0x7FA92619 241 .long 0x7FCA2619 242 243 vxor 27,27,0 244 vxor 28,28,4 245 vxor 29,29,8 246 vxor 30,30,12 247 248 .long 0x7F601F19 249 .long 0x7F881F19 250 addi 4,4,0x40 251 .long 0x7FA91F19 252 subi 5,5,0x40 253 .long 0x7FCA1F19 254 addi 3,3,0x40 255 beq .Ldone_vsx 256 257 vadduwm 0,1,16 258 vadduwm 4,5,17 259 vadduwm 8,9,18 260 vadduwm 12,13,19 261 262 vperm 0,0,0,31 263 vperm 4,4,4,31 264 vperm 8,8,8,31 265 vperm 12,12,12,31 266 267 cmplwi 5,0x40 268 blt .Ltail_vsx 269 270 .long 0x7F602619 271 .long 0x7F882619 272 .long 0x7FA92619 273 .long 0x7FCA2619 274 275 vxor 27,27,0 276 vxor 28,28,4 277 vxor 29,29,8 278 vxor 30,30,12 279 280 .long 0x7F601F19 281 .long 0x7F881F19 282 addi 4,4,0x40 283 .long 0x7FA91F19 284 subi 5,5,0x40 285 .long 0x7FCA1F19 286 addi 3,3,0x40 287 beq .Ldone_vsx 288 289 vadduwm 0,2,16 290 vadduwm 4,6,17 291 vadduwm 8,10,18 292 vadduwm 12,14,19 293 294 vperm 0,0,0,31 295 vperm 4,4,4,31 296 vperm 8,8,8,31 297 vperm 12,12,12,31 298 299 cmplwi 5,0x40 300 blt .Ltail_vsx 301 302 .long 0x7F602619 303 .long 0x7F882619 304 .long 0x7FA92619 305 .long 0x7FCA2619 306 307 vxor 27,27,0 308 vxor 28,28,4 309 vxor 29,29,8 310 vxor 30,30,12 311 312 .long 0x7F601F19 313 .long 0x7F881F19 314 addi 4,4,0x40 315 .long 0x7FA91F19 316 subi 5,5,0x40 317 .long 0x7FCA1F19 318 addi 3,3,0x40 319 beq .Ldone_vsx 320 321 vadduwm 0,3,16 322 vadduwm 4,7,17 323 vadduwm 8,11,18 324 vadduwm 12,15,19 325 326 vperm 0,0,0,31 327 vperm 4,4,4,31 328 vperm 8,8,8,31 329 vperm 12,12,12,31 330 331 cmplwi 5,0x40 332 blt .Ltail_vsx 333 334 .long 0x7F602619 335 .long 0x7F882619 336 .long 0x7FA92619 337 .long 0x7FCA2619 338 339 vxor 27,27,0 340 vxor 28,28,4 341 vxor 29,29,8 342 vxor 30,30,12 343 344 .long 0x7F601F19 345 .long 0x7F881F19 346 addi 4,4,0x40 347 .long 0x7FA91F19 348 subi 5,5,0x40 349 .long 0x7FCA1F19 350 addi 3,3,0x40 351 mtctr 0 352 bne .Loop_outer_vsx 353 354.Ldone_vsx: 355 lwz 12,196(1) 356 li 10,103 357 li 11,119 358 lwz 0, 204(1) 359 mtspr 256,12 360 lvx 26,10,1 361 addi 10,10,32 362 lvx 27,11,1 363 addi 11,11,32 364 lvx 28,10,1 365 addi 10,10,32 366 lvx 29,11,1 367 addi 11,11,32 368 lvx 30,10,1 369 lvx 31,11,1 370 mtlr 0 371 addi 1,1,200 372 blr 373 374.align 4 375.Ltail_vsx: 376 addi 11,1,24 377 mtctr 5 378 .long 0x7C005F19 379 .long 0x7C885F19 380 .long 0x7D095F19 381 .long 0x7D8A5F19 382 subi 12,11,1 383 subi 4,4,1 384 subi 3,3,1 385 386.Loop_tail_vsx: 387 lbzu 6,1(12) 388 lbzu 7,1(4) 389 xor 6,6,7 390 stbu 6,1(3) 391 bdnz .Loop_tail_vsx 392 393 .long 0x7E005F19 394 .long 0x7E085F19 395 .long 0x7E095F19 396 .long 0x7E0A5F19 397 398 b .Ldone_vsx 399.long 0 400.byte 0,12,0x04,1,0x80,0,5,0 401.long 0 402.size ChaCha20_ctr32_vsx_p10,.-ChaCha20_ctr32_vsx_p10 403 404.globl ChaCha20_ctr32_vsx_8x 405.type ChaCha20_ctr32_vsx_8x,@function 406.align 5 407ChaCha20_ctr32_vsx_8x: 408 stwu 1,-232(1) 409 mflr 0 410 li 10,103 411 li 11,119 412 mfspr 12,256 413 stvx 24,10,1 414 addi 10,10,32 415 stvx 25,11,1 416 addi 11,11,32 417 stvx 26,10,1 418 addi 10,10,32 419 stvx 27,11,1 420 addi 11,11,32 421 stvx 28,10,1 422 addi 10,10,32 423 stvx 29,11,1 424 addi 11,11,32 425 stvx 30,10,1 426 stvx 31,11,1 427 stw 12,228(1) 428 li 12,-4096+63 429 stw 0, 236(1) 430 mtspr 256,12 431 432 bl .Lconsts 433 434 .long 0x7F606619 435 addi 12,12,0x70 436 li 8,16 437 li 9,32 438 li 10,48 439 li 11,64 440 441 vspltisw 16,-16 442 vspltisw 20,12 443 vspltisw 24,8 444 vspltisw 28,7 445 446 lvx 0,0,12 447 lvx 1,8,12 448 lvx 2,9,12 449 lvx 3,10,12 450 451 .long 0xF1308496 452 .long 0xF154A496 453 .long 0xF178C496 454 .long 0xF19CE496 455 .long 0xF2C00496 456 .long 0xF2E10C96 457 .long 0xF3021496 458 .long 0xF3231C96 459 460 .long 0x7F003619 461 .long 0x7F283619 462 .long 0x7F403E19 463 vspltisw 30,4 464 465 466 vxor 29,29,29 467 .long 0x7F8B6619 468 vspltw 2,26,0 469 vsldoi 26,26,29,4 470 vsldoi 26,29,26,12 471 vadduwm 28,2,28 472 vadduwm 30,28,30 473 vspltw 0,25,2 474 475 lvsl 31,0,8 476 vspltisb 23,3 477 vxor 31,31,23 478 .long 0xF35FFC96 479 480 .long 0xF01BDC96 481 .long 0xF038C496 482 .long 0xF059CC96 483 .long 0xF07AD496 484 .long 0xF09CE496 485 .long 0xF0BEF496 486 .long 0xF1000496 487 488 li 0,10 489 mtctr 0 490 b .Loop_outer_vsx_8x 491 492.align 5 493.Loop_outer_vsx_8x: 494 .long 0xF016B491 495 .long 0xF037BC91 496 .long 0xF058C491 497 .long 0xF079CC91 498 .long 0xF216B491 499 .long 0xF237BC91 500 .long 0xF258C491 501 .long 0xF279CC91 502 503 vspltw 4,24,0 504 vspltw 5,24,1 505 vspltw 6,24,2 506 vspltw 7,24,3 507 vspltw 20,24,0 508 vspltw 21,24,1 509 vspltw 22,24,2 510 vspltw 23,24,3 511 512 vspltw 8,25,0 513 vspltw 9,25,1 514 vspltw 10,25,2 515 vspltw 11,25,3 516 vspltw 24,25,0 517 vspltw 27,25,3 518 vspltw 25,25,1 519 520 .long 0xF1842491 521 vspltw 13,26,1 522 vspltw 14,26,2 523 vspltw 15,26,3 524 .long 0xF3852C91 525 vspltw 29,26,1 526 vspltw 30,26,2 527 vspltw 31,26,3 528 .long 0xF3484491 529 530.Loop_vsx_8x: 531 .long 0xF1FBDC96 532 .long 0xF3694C91 533 vadduwm 0,0,4 534 vadduwm 1,1,5 535 vadduwm 2,2,6 536 vadduwm 3,3,7 537 vadduwm 16,16,20 538 vadduwm 17,17,21 539 vadduwm 18,18,22 540 vadduwm 19,19,23 541 vxor 12,12,0 542 vxor 13,13,1 543 vxor 14,14,2 544 vxor 15,15,3 545 vxor 28,28,16 546 vxor 29,29,17 547 vxor 30,30,18 548 vxor 31,31,19 549 vrlw 12,12,27 550 vrlw 13,13,27 551 vrlw 14,14,27 552 vrlw 15,15,27 553 vrlw 28,28,27 554 vrlw 29,29,27 555 vrlw 30,30,27 556 vrlw 31,31,27 557 .long 0xF1B39C96 558 .long 0xF36F7C91 559 .long 0xF26A5491 560 vadduwm 8,8,12 561 vadduwm 9,9,13 562 vadduwm 10,10,14 563 vadduwm 11,11,15 564 vadduwm 24,24,28 565 vadduwm 25,25,29 566 vadduwm 26,26,30 567 vadduwm 27,27,31 568 vxor 4,4,8 569 vxor 5,5,9 570 vxor 6,6,10 571 vxor 7,7,11 572 vxor 20,20,24 573 vxor 21,21,25 574 vxor 22,22,26 575 vxor 23,23,27 576 vrlw 4,4,19 577 vrlw 5,5,19 578 vrlw 6,6,19 579 vrlw 7,7,19 580 vrlw 20,20,19 581 vrlw 21,21,19 582 vrlw 22,22,19 583 vrlw 23,23,19 584 .long 0xF26D6C91 585 .long 0xF1FBDC96 586 .long 0xF36B5C91 587 vadduwm 0,0,4 588 vadduwm 1,1,5 589 vadduwm 2,2,6 590 vadduwm 3,3,7 591 vadduwm 16,16,20 592 vadduwm 17,17,21 593 vadduwm 18,18,22 594 vadduwm 19,19,23 595 vxor 12,12,0 596 vxor 13,13,1 597 vxor 14,14,2 598 vxor 15,15,3 599 vxor 28,28,16 600 vxor 29,29,17 601 vxor 30,30,18 602 vxor 31,31,19 603 vrlw 12,12,27 604 vrlw 13,13,27 605 vrlw 14,14,27 606 vrlw 15,15,27 607 vrlw 28,28,27 608 vrlw 29,29,27 609 vrlw 30,30,27 610 vrlw 31,31,27 611 .long 0xF36F7C91 612 .long 0xF1B39C96 613 .long 0xF26C6491 614 vadduwm 8,8,12 615 vadduwm 9,9,13 616 vadduwm 10,10,14 617 vadduwm 11,11,15 618 vadduwm 24,24,28 619 vadduwm 25,25,29 620 vadduwm 26,26,30 621 vadduwm 27,27,31 622 vxor 4,4,8 623 vxor 5,5,9 624 vxor 6,6,10 625 vxor 7,7,11 626 vxor 20,20,24 627 vxor 21,21,25 628 vxor 22,22,26 629 vxor 23,23,27 630 vrlw 4,4,19 631 vrlw 5,5,19 632 vrlw 6,6,19 633 vrlw 7,7,19 634 vrlw 20,20,19 635 vrlw 21,21,19 636 vrlw 22,22,19 637 vrlw 23,23,19 638 .long 0xF26D6C91 639 .long 0xF1F9CC96 640 .long 0xF3294C91 641 vadduwm 0,0,5 642 vadduwm 1,1,6 643 vadduwm 2,2,7 644 vadduwm 3,3,4 645 vadduwm 16,16,21 646 vadduwm 17,17,22 647 vadduwm 18,18,23 648 vadduwm 19,19,20 649 vxor 15,15,0 650 vxor 12,12,1 651 vxor 13,13,2 652 vxor 14,14,3 653 vxor 31,31,16 654 vxor 28,28,17 655 vxor 29,29,18 656 vxor 30,30,19 657 vrlw 15,15,25 658 vrlw 12,12,25 659 vrlw 13,13,25 660 vrlw 14,14,25 661 vrlw 31,31,25 662 vrlw 28,28,25 663 vrlw 29,29,25 664 vrlw 30,30,25 665 .long 0xF1B39C96 666 .long 0xF32F7C91 667 .long 0xF26A5491 668 vadduwm 10,10,15 669 vadduwm 11,11,12 670 vadduwm 8,8,13 671 vadduwm 9,9,14 672 vadduwm 26,26,31 673 vadduwm 27,27,28 674 vadduwm 24,24,29 675 vadduwm 25,25,30 676 vxor 5,5,10 677 vxor 6,6,11 678 vxor 7,7,8 679 vxor 4,4,9 680 vxor 21,21,26 681 vxor 22,22,27 682 vxor 23,23,24 683 vxor 20,20,25 684 vrlw 5,5,19 685 vrlw 6,6,19 686 vrlw 7,7,19 687 vrlw 4,4,19 688 vrlw 21,21,19 689 vrlw 22,22,19 690 vrlw 23,23,19 691 vrlw 20,20,19 692 .long 0xF26D6C91 693 .long 0xF1F9CC96 694 .long 0xF32B5C91 695 vadduwm 0,0,5 696 vadduwm 1,1,6 697 vadduwm 2,2,7 698 vadduwm 3,3,4 699 vadduwm 16,16,21 700 vadduwm 17,17,22 701 vadduwm 18,18,23 702 vadduwm 19,19,20 703 vxor 15,15,0 704 vxor 12,12,1 705 vxor 13,13,2 706 vxor 14,14,3 707 vxor 31,31,16 708 vxor 28,28,17 709 vxor 29,29,18 710 vxor 30,30,19 711 vrlw 15,15,25 712 vrlw 12,12,25 713 vrlw 13,13,25 714 vrlw 14,14,25 715 vrlw 31,31,25 716 vrlw 28,28,25 717 vrlw 29,29,25 718 vrlw 30,30,25 719 .long 0xF32F7C91 720 .long 0xF1B39C96 721 .long 0xF26C6491 722 vadduwm 10,10,15 723 vadduwm 11,11,12 724 vadduwm 8,8,13 725 vadduwm 9,9,14 726 vadduwm 26,26,31 727 vadduwm 27,27,28 728 vadduwm 24,24,29 729 vadduwm 25,25,30 730 vxor 5,5,10 731 vxor 6,6,11 732 vxor 7,7,8 733 vxor 4,4,9 734 vxor 21,21,26 735 vxor 22,22,27 736 vxor 23,23,24 737 vxor 20,20,25 738 vrlw 5,5,19 739 vrlw 6,6,19 740 vrlw 7,7,19 741 vrlw 4,4,19 742 vrlw 21,21,19 743 vrlw 22,22,19 744 vrlw 23,23,19 745 vrlw 20,20,19 746 .long 0xF26D6C91 747 748 bdnz .Loop_vsx_8x 749 .long 0xF1BCE496 750 .long 0xF1DDEC96 751 .long 0xF1FEF496 752 .long 0xF21FFC96 753 754 .long 0xF258C496 755 .long 0xF279CC96 756 .long 0xF29AD496 757 .long 0xF2BBDC96 758 759 .long 0xF0D6B496 760 .long 0xF0F7BC96 761 .long 0xF3FAD491 762 763 .long 0xF3600491 764 .long 0xF3010C91 765 .long 0xF3221491 766 .long 0xF3431C91 767 .long 0xF2C42491 768 769 770 .long 0x12E00F8C 771 .long 0x13821F8C 772 .long 0x10000E8C 773 .long 0x10421E8C 774 775 .long 0x13A42F8C 776 .long 0x13C63F8C 777 .long 0x10842E8C 778 .long 0x10C63E8C 779 780 vadduwm 12,12,22 781 782 .long 0xF0201057 783 .long 0xF0601357 784 .long 0xF017E057 785 .long 0xF057E357 786 .long 0xF0A43057 787 .long 0xF0E43357 788 .long 0xF09DF057 789 .long 0xF0DDF357 790 791 .long 0x12E84F8C 792 .long 0x138A5F8C 793 .long 0x11084E8C 794 .long 0x114A5E8C 795 .long 0x13AC6F8C 796 .long 0x13CE7F8C 797 .long 0x118C6E8C 798 .long 0x11CE7E8C 799 800 .long 0xF1285057 801 .long 0xF1685357 802 .long 0xF117E057 803 .long 0xF157E357 804 .long 0xF1AC7057 805 .long 0xF1EC7357 806 .long 0xF19DF057 807 .long 0xF1DDF357 808 809 vspltisw 23,8 810 vadduwm 22,22,23 811 .long 0xF096B496 812 813 vadduwm 0,0,27 814 vadduwm 4,4,24 815 vadduwm 8,8,25 816 vadduwm 12,12,26 817 818 vperm 0,0,0,31 819 vperm 4,4,4,31 820 vperm 8,8,8,31 821 vperm 12,12,12,31 822 823 cmplwi 5,0x40 824 blt .Ltail_vsx_8x 825 826 .long 0x7EE02619 827 .long 0x7F882619 828 .long 0x7FA92619 829 .long 0x7FCA2619 830 831 vxor 23,23,0 832 vxor 28,28,4 833 vxor 29,29,8 834 vxor 30,30,12 835 836 .long 0x7EE01F19 837 .long 0x7F881F19 838 addi 4,4,0x40 839 .long 0x7FA91F19 840 subi 5,5,0x40 841 .long 0x7FCA1F19 842 addi 3,3,0x40 843 beq .Ldone_vsx_8x 844 845 vadduwm 0,1,27 846 vadduwm 4,5,24 847 vadduwm 8,9,25 848 vadduwm 12,13,26 849 850 vperm 0,0,0,31 851 vperm 4,4,4,31 852 vperm 8,8,8,31 853 vperm 12,12,12,31 854 855 cmplwi 5,0x40 856 blt .Ltail_vsx_8x 857 858 .long 0x7EE02619 859 .long 0x7F882619 860 .long 0x7FA92619 861 .long 0x7FCA2619 862 863 vxor 23,23,0 864 vxor 28,28,4 865 vxor 29,29,8 866 vxor 30,30,12 867 868 .long 0x7EE01F19 869 .long 0x7F881F19 870 addi 4,4,0x40 871 .long 0x7FA91F19 872 subi 5,5,0x40 873 .long 0x7FCA1F19 874 addi 3,3,0x40 875 beq .Ldone_vsx_8x 876 877 vadduwm 0,2,27 878 vadduwm 4,6,24 879 vadduwm 8,10,25 880 vadduwm 12,14,26 881 882 vperm 0,0,0,31 883 vperm 4,4,4,31 884 vperm 8,8,8,31 885 vperm 12,12,12,31 886 887 cmplwi 5,0x40 888 blt .Ltail_vsx_8x 889 890 .long 0x7EE02619 891 .long 0x7F882619 892 .long 0x7FA92619 893 .long 0x7FCA2619 894 895 vxor 23,23,0 896 vxor 28,28,4 897 vxor 29,29,8 898 vxor 30,30,12 899 900 .long 0x7EE01F19 901 .long 0x7F881F19 902 addi 4,4,0x40 903 .long 0x7FA91F19 904 subi 5,5,0x40 905 .long 0x7FCA1F19 906 addi 3,3,0x40 907 beq .Ldone_vsx_8x 908 909 vadduwm 0,3,27 910 vadduwm 4,7,24 911 vadduwm 8,11,25 912 vadduwm 12,15,26 913 914 vperm 0,0,0,31 915 vperm 4,4,4,31 916 vperm 8,8,8,31 917 vperm 12,12,12,31 918 919 cmplwi 5,0x40 920 blt .Ltail_vsx_8x 921 922 .long 0x7EE02619 923 .long 0x7F882619 924 .long 0x7FA92619 925 .long 0x7FCA2619 926 927 vxor 23,23,0 928 vxor 28,28,4 929 vxor 29,29,8 930 vxor 30,30,12 931 932 .long 0x7EE01F19 933 .long 0x7F881F19 934 addi 4,4,0x40 935 .long 0x7FA91F19 936 subi 5,5,0x40 937 .long 0x7FCA1F19 938 addi 3,3,0x40 939 beq .Ldone_vsx_8x 940 941 942 943 944 .long 0xF0A52C91 945 946 .long 0xF1129491 947 .long 0xF1339C91 948 .long 0xF154A491 949 .long 0xF175AC91 950 951 .long 0xF18D6C91 952 .long 0xF1AE7491 953 .long 0xF1CF7C91 954 .long 0xF1F08491 955 vadduwm 12,12,5 956 957 .long 0xF2C63491 958 .long 0xF2E73C91 959 960 961 .long 0x10908F8C 962 .long 0x13929F8C 963 .long 0x12108E8C 964 .long 0x12529E8C 965 .long 0x13B4AF8C 966 .long 0x13D6BF8C 967 .long 0x1294AE8C 968 .long 0x12D6BE8C 969 970 .long 0xF2309057 971 .long 0xF2709357 972 .long 0xF204E057 973 .long 0xF244E357 974 .long 0xF2B4B057 975 .long 0xF2F4B357 976 .long 0xF29DF057 977 .long 0xF2DDF357 978 979 .long 0x10884F8C 980 .long 0x138A5F8C 981 .long 0x11084E8C 982 .long 0x114A5E8C 983 .long 0x13AC6F8C 984 .long 0x13CE7F8C 985 .long 0x118C6E8C 986 .long 0x11CE7E8C 987 988 .long 0xF1285057 989 .long 0xF1685357 990 .long 0xF104E057 991 .long 0xF144E357 992 .long 0xF1AC7057 993 .long 0xF1EC7357 994 .long 0xF19DF057 995 .long 0xF1DDF357 996 997 vspltisw 4,8 998 vadduwm 5,5,4 999 .long 0xF0A52C96 1000 1001 vadduwm 0,16,27 1002 vadduwm 1,20,24 1003 vadduwm 2,8,25 1004 vadduwm 3,12,26 1005 1006 vperm 0,0,0,31 1007 vperm 1,1,1,31 1008 vperm 2,2,2,31 1009 vperm 3,3,3,31 1010 1011 cmplwi 5,0x40 1012 blt .Ltail_vsx_8x_1 1013 1014 .long 0x7C802619 1015 .long 0x7F882619 1016 .long 0x7FA92619 1017 .long 0x7FCA2619 1018 1019 vxor 4,4,0 1020 vxor 28,28,1 1021 vxor 29,29,2 1022 vxor 30,30,3 1023 1024 .long 0x7C801F19 1025 .long 0x7F881F19 1026 addi 4,4,0x40 1027 .long 0x7FA91F19 1028 subi 5,5,0x40 1029 .long 0x7FCA1F19 1030 addi 3,3,0x40 1031 beq .Ldone_vsx_8x 1032 1033 vadduwm 0,17,27 1034 vadduwm 1,21,24 1035 vadduwm 2,9,25 1036 vadduwm 3,13,26 1037 1038 vperm 0,0,0,31 1039 vperm 1,1,1,31 1040 vperm 2,2,2,31 1041 vperm 3,3,3,31 1042 1043 cmplwi 5,0x40 1044 blt .Ltail_vsx_8x_1 1045 1046 .long 0x7C802619 1047 .long 0x7F882619 1048 .long 0x7FA92619 1049 .long 0x7FCA2619 1050 1051 vxor 4,4,0 1052 vxor 28,28,1 1053 vxor 29,29,2 1054 vxor 30,30,3 1055 1056 .long 0x7C801F19 1057 .long 0x7F881F19 1058 addi 4,4,0x40 1059 .long 0x7FA91F19 1060 subi 5,5,0x40 1061 .long 0x7FCA1F19 1062 addi 3,3,0x40 1063 beq .Ldone_vsx_8x 1064 1065 vadduwm 0,18,27 1066 vadduwm 1,22,24 1067 vadduwm 2,10,25 1068 vadduwm 3,14,26 1069 1070 vperm 0,0,0,31 1071 vperm 1,1,1,31 1072 vperm 2,2,2,31 1073 vperm 3,3,3,31 1074 1075 cmplwi 5,0x40 1076 blt .Ltail_vsx_8x_1 1077 1078 .long 0x7C802619 1079 .long 0x7F882619 1080 .long 0x7FA92619 1081 .long 0x7FCA2619 1082 1083 vxor 4,4,0 1084 vxor 28,28,1 1085 vxor 29,29,2 1086 vxor 30,30,3 1087 1088 .long 0x7C801F19 1089 .long 0x7F881F19 1090 addi 4,4,0x40 1091 .long 0x7FA91F19 1092 subi 5,5,0x40 1093 .long 0x7FCA1F19 1094 addi 3,3,0x40 1095 beq .Ldone_vsx_8x 1096 1097 vadduwm 0,19,27 1098 vadduwm 1,23,24 1099 vadduwm 2,11,25 1100 vadduwm 3,15,26 1101 1102 vperm 0,0,0,31 1103 vperm 1,1,1,31 1104 vperm 2,2,2,31 1105 vperm 3,3,3,31 1106 1107 cmplwi 5,0x40 1108 blt .Ltail_vsx_8x_1 1109 1110 .long 0x7C802619 1111 .long 0x7F882619 1112 .long 0x7FA92619 1113 .long 0x7FCA2619 1114 1115 vxor 4,4,0 1116 vxor 28,28,1 1117 vxor 29,29,2 1118 vxor 30,30,3 1119 1120 .long 0x7C801F19 1121 .long 0x7F881F19 1122 addi 4,4,0x40 1123 .long 0x7FA91F19 1124 subi 5,5,0x40 1125 .long 0x7FCA1F19 1126 addi 3,3,0x40 1127 beq .Ldone_vsx_8x 1128 1129 mtctr 0 1130 bne .Loop_outer_vsx_8x 1131 1132.Ldone_vsx_8x: 1133 lwz 12,228(1) 1134 li 10,103 1135 li 11,119 1136 lwz 0, 236(1) 1137 mtspr 256,12 1138 lvx 24,10,1 1139 addi 10,10,32 1140 lvx 25,11,1 1141 addi 11,11,32 1142 lvx 26,10,1 1143 addi 10,10,32 1144 lvx 27,11,1 1145 addi 11,11,32 1146 lvx 28,10,1 1147 addi 10,10,32 1148 lvx 29,11,1 1149 addi 11,11,32 1150 lvx 30,10,1 1151 lvx 31,11,1 1152 mtlr 0 1153 addi 1,1,232 1154 blr 1155 1156.align 4 1157.Ltail_vsx_8x: 1158 addi 11,1,24 1159 mtctr 5 1160 .long 0x7C005F19 1161 .long 0x7C885F19 1162 .long 0x7D095F19 1163 .long 0x7D8A5F19 1164 subi 12,11,1 1165 subi 4,4,1 1166 subi 3,3,1 1167 bl .Loop_tail_vsx_8x 1168.Ltail_vsx_8x_1: 1169 addi 11,1,24 1170 mtctr 5 1171 .long 0x7C005F19 1172 .long 0x7C285F19 1173 .long 0x7C495F19 1174 .long 0x7C6A5F19 1175 subi 12,11,1 1176 subi 4,4,1 1177 subi 3,3,1 1178 bl .Loop_tail_vsx_8x 1179 1180.Loop_tail_vsx_8x: 1181 lbzu 6,1(12) 1182 lbzu 7,1(4) 1183 xor 6,6,7 1184 stbu 6,1(3) 1185 bdnz .Loop_tail_vsx_8x 1186 1187 .long 0x7F605F19 1188 .long 0x7F685F19 1189 .long 0x7F695F19 1190 .long 0x7F6A5F19 1191 1192 b .Ldone_vsx_8x 1193.long 0 1194.byte 0,12,0x04,1,0x80,0,5,0 1195.long 0 1196.size ChaCha20_ctr32_vsx_8x,.-ChaCha20_ctr32_vsx_8x 1197.align 5 1198.Lconsts: 1199 mflr 0 1200 bcl 20,31,$+4 1201 mflr 12 1202 addi 12,12,56 1203 mtlr 0 1204 blr 1205.long 0 1206.byte 0,12,0x14,0,0,0,0,0 1207.space 28 1208.Lsigma: 1209.long 0x61707865,0x3320646e,0x79622d32,0x6b206574 1210.long 1,0,0,0 1211.long 2,0,0,0 1212.long 3,0,0,0 1213.long 4,0,0,0 1214.long 0x02030001,0x06070405,0x0a0b0809,0x0e0f0c0d 1215.long 0x01020300,0x05060704,0x090a0b08,0x0d0e0f0c 1216.long 0x61707865,0x61707865,0x61707865,0x61707865 1217.long 0x3320646e,0x3320646e,0x3320646e,0x3320646e 1218.long 0x79622d32,0x79622d32,0x79622d32,0x79622d32 1219.long 0x6b206574,0x6b206574,0x6b206574,0x6b206574 1220.long 0,1,2,3 1221.long 0x03020100,0x07060504,0x0b0a0908,0x0f0e0d0c 1222.byte 67,104,97,67,104,97,50,48,32,102,111,114,32,80,111,119,101,114,80,67,47,65,108,116,105,86,101,99,44,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 1223.align 2 1224.align 2 1225