1/* 2 * Copyright 2004-2022 The OpenSSL Project Authors. All Rights Reserved. 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * https://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17/* 18 * Portions Copyright (c) 2022 Tino Reichardt <milky-zfs@mcmilk.de> 19 * - modified assembly to fit into OpenZFS 20 */ 21 22#if (defined(__PPC64__) && defined(__BIG_ENDIAN__)) 23 24.text 25 26.globl zfs_sha512_ppc 27.globl .zfs_sha512_ppc 28.type zfs_sha512_ppc,@function 29.section ".opd","aw" 30.align 3 31zfs_sha512_ppc: 32.quad .zfs_sha512_ppc,.TOC.@tocbase,0 33.previous 34.align 6 35.zfs_sha512_ppc: 36 stdu 1,-384(1) 37 mflr 0 38 sldi 5,5,7 39 40 std 3,208(1) 41 42 std 14,240(1) 43 std 15,248(1) 44 std 16,256(1) 45 std 17,264(1) 46 std 18,272(1) 47 std 19,280(1) 48 std 20,288(1) 49 std 21,296(1) 50 std 22,304(1) 51 std 23,312(1) 52 std 24,320(1) 53 std 25,328(1) 54 std 26,336(1) 55 std 27,344(1) 56 std 28,352(1) 57 std 29,360(1) 58 std 30,368(1) 59 std 31,376(1) 60 std 0,400(1) 61 ld 8,0(3) 62 mr 31,4 63 ld 9,8(3) 64 ld 10,16(3) 65 ld 11,24(3) 66 ld 12,32(3) 67 ld 6,40(3) 68 ld 14,48(3) 69 ld 15,56(3) 70 bl .LPICmeup 71.LPICedup: 72 andi. 0,31,3 73 bne .Lunaligned 74.Laligned: 75 add 5,31,5 76 std 5,192(1) 77 std 31,200(1) 78 bl .Lsha2_block_private 79 b .Ldone 80 81 82 83 84 85 86 87.align 4 88.Lunaligned: 89 subfic 0,31,4096 90 andi. 0,0,3968 91 beq .Lcross_page 92 cmpld 5,0 93 ble .Laligned 94 subfc 5,0,5 95 add 0,31,0 96 std 5,184(1) 97 std 0,192(1) 98 std 31,200(1) 99 bl .Lsha2_block_private 100 101 ld 5,184(1) 102.Lcross_page: 103 li 0,32 104 mtctr 0 105 addi 20,1,48 106.Lmemcpy: 107 lbz 16,0(31) 108 lbz 17,1(31) 109 lbz 18,2(31) 110 lbz 19,3(31) 111 addi 31,31,4 112 stb 16,0(20) 113 stb 17,1(20) 114 stb 18,2(20) 115 stb 19,3(20) 116 addi 20,20,4 117 bdnz .Lmemcpy 118 std 31,176(1) 119 addi 0,1,176 120 addi 31,1,48 121 std 5,184(1) 122 std 0,192(1) 123 std 31,200(1) 124 bl .Lsha2_block_private 125 ld 31,176(1) 126 ld 5,184(1) 127 addic. 5,5,-128 128 bne .Lunaligned 129 130.Ldone: 131 ld 0,400(1) 132 ld 14,240(1) 133 ld 15,248(1) 134 ld 16,256(1) 135 ld 17,264(1) 136 ld 18,272(1) 137 ld 19,280(1) 138 ld 20,288(1) 139 ld 21,296(1) 140 ld 22,304(1) 141 ld 23,312(1) 142 ld 24,320(1) 143 ld 25,328(1) 144 ld 26,336(1) 145 ld 27,344(1) 146 ld 28,352(1) 147 ld 29,360(1) 148 ld 30,368(1) 149 ld 31,376(1) 150 mtlr 0 151 addi 1,1,384 152 blr 153.long 0 154.byte 0,12,4,1,0x80,18,3,0 155.long 0 156.align 4 157.Lsha2_block_private: 158 ld 0,0(7) 159 lwz 5,0(31) 160 lwz 16,4(31) 161 insrdi 16,5,32,0 162 rotrdi 3,12,14 163 rotrdi 4,12,18 164 and 5,6,12 165 xor 3,3,4 166 add 15,15,0 167 andc 0,14,12 168 rotrdi 4,4,23 169 or 5,5,0 170 add 15,15,16 171 xor 3,3,4 172 add 15,15,5 173 add 15,15,3 174 175 rotrdi 3,8,28 176 rotrdi 4,8,34 177 and 5,8,9 178 and 0,8,10 179 xor 3,3,4 180 rotrdi 4,4,5 181 xor 5,5,0 182 and 0,9,10 183 xor 3,3,4 184 add 11,11,15 185 xor 5,5,0 186 ld 0,8(7) 187 add 15,15,3 188 add 15,15,5 189 190 lwz 5,8(31) 191 lwz 17,12(31) 192 insrdi 17,5,32,0 193 rotrdi 3,11,14 194 rotrdi 4,11,18 195 and 5,12,11 196 xor 3,3,4 197 add 14,14,0 198 andc 0,6,11 199 rotrdi 4,4,23 200 or 5,5,0 201 add 14,14,17 202 xor 3,3,4 203 add 14,14,5 204 add 14,14,3 205 206 rotrdi 3,15,28 207 rotrdi 4,15,34 208 and 5,15,8 209 and 0,15,9 210 xor 3,3,4 211 rotrdi 4,4,5 212 xor 5,5,0 213 and 0,8,9 214 xor 3,3,4 215 add 10,10,14 216 xor 5,5,0 217 ld 0,16(7) 218 add 14,14,3 219 add 14,14,5 220 221 lwz 5,16(31) 222 lwz 18,20(31) 223 insrdi 18,5,32,0 224 rotrdi 3,10,14 225 rotrdi 4,10,18 226 and 5,11,10 227 xor 3,3,4 228 add 6,6,0 229 andc 0,12,10 230 rotrdi 4,4,23 231 or 5,5,0 232 add 6,6,18 233 xor 3,3,4 234 add 6,6,5 235 add 6,6,3 236 237 rotrdi 3,14,28 238 rotrdi 4,14,34 239 and 5,14,15 240 and 0,14,8 241 xor 3,3,4 242 rotrdi 4,4,5 243 xor 5,5,0 244 and 0,15,8 245 xor 3,3,4 246 add 9,9,6 247 xor 5,5,0 248 ld 0,24(7) 249 add 6,6,3 250 add 6,6,5 251 252 lwz 5,24(31) 253 lwz 19,28(31) 254 insrdi 19,5,32,0 255 rotrdi 3,9,14 256 rotrdi 4,9,18 257 and 5,10,9 258 xor 3,3,4 259 add 12,12,0 260 andc 0,11,9 261 rotrdi 4,4,23 262 or 5,5,0 263 add 12,12,19 264 xor 3,3,4 265 add 12,12,5 266 add 12,12,3 267 268 rotrdi 3,6,28 269 rotrdi 4,6,34 270 and 5,6,14 271 and 0,6,15 272 xor 3,3,4 273 rotrdi 4,4,5 274 xor 5,5,0 275 and 0,14,15 276 xor 3,3,4 277 add 8,8,12 278 xor 5,5,0 279 ld 0,32(7) 280 add 12,12,3 281 add 12,12,5 282 283 lwz 5,32(31) 284 lwz 20,36(31) 285 insrdi 20,5,32,0 286 rotrdi 3,8,14 287 rotrdi 4,8,18 288 and 5,9,8 289 xor 3,3,4 290 add 11,11,0 291 andc 0,10,8 292 rotrdi 4,4,23 293 or 5,5,0 294 add 11,11,20 295 xor 3,3,4 296 add 11,11,5 297 add 11,11,3 298 299 rotrdi 3,12,28 300 rotrdi 4,12,34 301 and 5,12,6 302 and 0,12,14 303 xor 3,3,4 304 rotrdi 4,4,5 305 xor 5,5,0 306 and 0,6,14 307 xor 3,3,4 308 add 15,15,11 309 xor 5,5,0 310 ld 0,40(7) 311 add 11,11,3 312 add 11,11,5 313 314 lwz 5,40(31) 315 lwz 21,44(31) 316 insrdi 21,5,32,0 317 rotrdi 3,15,14 318 rotrdi 4,15,18 319 and 5,8,15 320 xor 3,3,4 321 add 10,10,0 322 andc 0,9,15 323 rotrdi 4,4,23 324 or 5,5,0 325 add 10,10,21 326 xor 3,3,4 327 add 10,10,5 328 add 10,10,3 329 330 rotrdi 3,11,28 331 rotrdi 4,11,34 332 and 5,11,12 333 and 0,11,6 334 xor 3,3,4 335 rotrdi 4,4,5 336 xor 5,5,0 337 and 0,12,6 338 xor 3,3,4 339 add 14,14,10 340 xor 5,5,0 341 ld 0,48(7) 342 add 10,10,3 343 add 10,10,5 344 345 lwz 5,48(31) 346 lwz 22,52(31) 347 insrdi 22,5,32,0 348 rotrdi 3,14,14 349 rotrdi 4,14,18 350 and 5,15,14 351 xor 3,3,4 352 add 9,9,0 353 andc 0,8,14 354 rotrdi 4,4,23 355 or 5,5,0 356 add 9,9,22 357 xor 3,3,4 358 add 9,9,5 359 add 9,9,3 360 361 rotrdi 3,10,28 362 rotrdi 4,10,34 363 and 5,10,11 364 and 0,10,12 365 xor 3,3,4 366 rotrdi 4,4,5 367 xor 5,5,0 368 and 0,11,12 369 xor 3,3,4 370 add 6,6,9 371 xor 5,5,0 372 ld 0,56(7) 373 add 9,9,3 374 add 9,9,5 375 376 lwz 5,56(31) 377 lwz 23,60(31) 378 insrdi 23,5,32,0 379 rotrdi 3,6,14 380 rotrdi 4,6,18 381 and 5,14,6 382 xor 3,3,4 383 add 8,8,0 384 andc 0,15,6 385 rotrdi 4,4,23 386 or 5,5,0 387 add 8,8,23 388 xor 3,3,4 389 add 8,8,5 390 add 8,8,3 391 392 rotrdi 3,9,28 393 rotrdi 4,9,34 394 and 5,9,10 395 and 0,9,11 396 xor 3,3,4 397 rotrdi 4,4,5 398 xor 5,5,0 399 and 0,10,11 400 xor 3,3,4 401 add 12,12,8 402 xor 5,5,0 403 ld 0,64(7) 404 add 8,8,3 405 add 8,8,5 406 407 lwz 5,64(31) 408 lwz 24,68(31) 409 insrdi 24,5,32,0 410 rotrdi 3,12,14 411 rotrdi 4,12,18 412 and 5,6,12 413 xor 3,3,4 414 add 15,15,0 415 andc 0,14,12 416 rotrdi 4,4,23 417 or 5,5,0 418 add 15,15,24 419 xor 3,3,4 420 add 15,15,5 421 add 15,15,3 422 423 rotrdi 3,8,28 424 rotrdi 4,8,34 425 and 5,8,9 426 and 0,8,10 427 xor 3,3,4 428 rotrdi 4,4,5 429 xor 5,5,0 430 and 0,9,10 431 xor 3,3,4 432 add 11,11,15 433 xor 5,5,0 434 ld 0,72(7) 435 add 15,15,3 436 add 15,15,5 437 438 lwz 5,72(31) 439 lwz 25,76(31) 440 insrdi 25,5,32,0 441 rotrdi 3,11,14 442 rotrdi 4,11,18 443 and 5,12,11 444 xor 3,3,4 445 add 14,14,0 446 andc 0,6,11 447 rotrdi 4,4,23 448 or 5,5,0 449 add 14,14,25 450 xor 3,3,4 451 add 14,14,5 452 add 14,14,3 453 454 rotrdi 3,15,28 455 rotrdi 4,15,34 456 and 5,15,8 457 and 0,15,9 458 xor 3,3,4 459 rotrdi 4,4,5 460 xor 5,5,0 461 and 0,8,9 462 xor 3,3,4 463 add 10,10,14 464 xor 5,5,0 465 ld 0,80(7) 466 add 14,14,3 467 add 14,14,5 468 469 lwz 5,80(31) 470 lwz 26,84(31) 471 insrdi 26,5,32,0 472 rotrdi 3,10,14 473 rotrdi 4,10,18 474 and 5,11,10 475 xor 3,3,4 476 add 6,6,0 477 andc 0,12,10 478 rotrdi 4,4,23 479 or 5,5,0 480 add 6,6,26 481 xor 3,3,4 482 add 6,6,5 483 add 6,6,3 484 485 rotrdi 3,14,28 486 rotrdi 4,14,34 487 and 5,14,15 488 and 0,14,8 489 xor 3,3,4 490 rotrdi 4,4,5 491 xor 5,5,0 492 and 0,15,8 493 xor 3,3,4 494 add 9,9,6 495 xor 5,5,0 496 ld 0,88(7) 497 add 6,6,3 498 add 6,6,5 499 500 lwz 5,88(31) 501 lwz 27,92(31) 502 insrdi 27,5,32,0 503 rotrdi 3,9,14 504 rotrdi 4,9,18 505 and 5,10,9 506 xor 3,3,4 507 add 12,12,0 508 andc 0,11,9 509 rotrdi 4,4,23 510 or 5,5,0 511 add 12,12,27 512 xor 3,3,4 513 add 12,12,5 514 add 12,12,3 515 516 rotrdi 3,6,28 517 rotrdi 4,6,34 518 and 5,6,14 519 and 0,6,15 520 xor 3,3,4 521 rotrdi 4,4,5 522 xor 5,5,0 523 and 0,14,15 524 xor 3,3,4 525 add 8,8,12 526 xor 5,5,0 527 ld 0,96(7) 528 add 12,12,3 529 add 12,12,5 530 531 lwz 5,96(31) 532 lwz 28,100(31) 533 insrdi 28,5,32,0 534 rotrdi 3,8,14 535 rotrdi 4,8,18 536 and 5,9,8 537 xor 3,3,4 538 add 11,11,0 539 andc 0,10,8 540 rotrdi 4,4,23 541 or 5,5,0 542 add 11,11,28 543 xor 3,3,4 544 add 11,11,5 545 add 11,11,3 546 547 rotrdi 3,12,28 548 rotrdi 4,12,34 549 and 5,12,6 550 and 0,12,14 551 xor 3,3,4 552 rotrdi 4,4,5 553 xor 5,5,0 554 and 0,6,14 555 xor 3,3,4 556 add 15,15,11 557 xor 5,5,0 558 ld 0,104(7) 559 add 11,11,3 560 add 11,11,5 561 562 lwz 5,104(31) 563 lwz 29,108(31) 564 insrdi 29,5,32,0 565 rotrdi 3,15,14 566 rotrdi 4,15,18 567 and 5,8,15 568 xor 3,3,4 569 add 10,10,0 570 andc 0,9,15 571 rotrdi 4,4,23 572 or 5,5,0 573 add 10,10,29 574 xor 3,3,4 575 add 10,10,5 576 add 10,10,3 577 578 rotrdi 3,11,28 579 rotrdi 4,11,34 580 and 5,11,12 581 and 0,11,6 582 xor 3,3,4 583 rotrdi 4,4,5 584 xor 5,5,0 585 and 0,12,6 586 xor 3,3,4 587 add 14,14,10 588 xor 5,5,0 589 ld 0,112(7) 590 add 10,10,3 591 add 10,10,5 592 593 lwz 5,112(31) 594 lwz 30,116(31) 595 insrdi 30,5,32,0 596 rotrdi 3,14,14 597 rotrdi 4,14,18 598 and 5,15,14 599 xor 3,3,4 600 add 9,9,0 601 andc 0,8,14 602 rotrdi 4,4,23 603 or 5,5,0 604 add 9,9,30 605 xor 3,3,4 606 add 9,9,5 607 add 9,9,3 608 609 rotrdi 3,10,28 610 rotrdi 4,10,34 611 and 5,10,11 612 and 0,10,12 613 xor 3,3,4 614 rotrdi 4,4,5 615 xor 5,5,0 616 and 0,11,12 617 xor 3,3,4 618 add 6,6,9 619 xor 5,5,0 620 ld 0,120(7) 621 add 9,9,3 622 add 9,9,5 623 624 lwz 5,120(31) 625 lwz 31,124(31) 626 insrdi 31,5,32,0 627 rotrdi 3,6,14 628 rotrdi 4,6,18 629 and 5,14,6 630 xor 3,3,4 631 add 8,8,0 632 andc 0,15,6 633 rotrdi 4,4,23 634 or 5,5,0 635 add 8,8,31 636 xor 3,3,4 637 add 8,8,5 638 add 8,8,3 639 640 rotrdi 3,9,28 641 rotrdi 4,9,34 642 and 5,9,10 643 and 0,9,11 644 xor 3,3,4 645 rotrdi 4,4,5 646 xor 5,5,0 647 and 0,10,11 648 xor 3,3,4 649 add 12,12,8 650 xor 5,5,0 651 add 8,8,3 652 add 8,8,5 653 654 li 5,4 655 mtctr 5 656.align 4 657.Lrounds: 658 addi 7,7,128 659 rotrdi 3,17,1 660 rotrdi 4,17,8 661 rotrdi 5,30,19 662 rotrdi 0,30,61 663 xor 3,3,4 664 srdi 4,17,7 665 xor 5,5,0 666 srdi 0,30,6 667 add 16,16,25 668 xor 3,3,4 669 xor 5,5,0 670 ld 0,0(7) 671 add 16,16,3 672 add 16,16,5 673 rotrdi 3,12,14 674 rotrdi 4,12,18 675 and 5,6,12 676 xor 3,3,4 677 add 15,15,0 678 andc 0,14,12 679 rotrdi 4,4,23 680 or 5,5,0 681 add 15,15,16 682 xor 3,3,4 683 add 15,15,5 684 add 15,15,3 685 686 rotrdi 3,8,28 687 rotrdi 4,8,34 688 and 5,8,9 689 and 0,8,10 690 xor 3,3,4 691 rotrdi 4,4,5 692 xor 5,5,0 693 and 0,9,10 694 xor 3,3,4 695 add 11,11,15 696 xor 5,5,0 697 add 15,15,3 698 add 15,15,5 699 700 rotrdi 3,18,1 701 rotrdi 4,18,8 702 rotrdi 5,31,19 703 rotrdi 0,31,61 704 xor 3,3,4 705 srdi 4,18,7 706 xor 5,5,0 707 srdi 0,31,6 708 add 17,17,26 709 xor 3,3,4 710 xor 5,5,0 711 ld 0,8(7) 712 add 17,17,3 713 add 17,17,5 714 rotrdi 3,11,14 715 rotrdi 4,11,18 716 and 5,12,11 717 xor 3,3,4 718 add 14,14,0 719 andc 0,6,11 720 rotrdi 4,4,23 721 or 5,5,0 722 add 14,14,17 723 xor 3,3,4 724 add 14,14,5 725 add 14,14,3 726 727 rotrdi 3,15,28 728 rotrdi 4,15,34 729 and 5,15,8 730 and 0,15,9 731 xor 3,3,4 732 rotrdi 4,4,5 733 xor 5,5,0 734 and 0,8,9 735 xor 3,3,4 736 add 10,10,14 737 xor 5,5,0 738 add 14,14,3 739 add 14,14,5 740 741 rotrdi 3,19,1 742 rotrdi 4,19,8 743 rotrdi 5,16,19 744 rotrdi 0,16,61 745 xor 3,3,4 746 srdi 4,19,7 747 xor 5,5,0 748 srdi 0,16,6 749 add 18,18,27 750 xor 3,3,4 751 xor 5,5,0 752 ld 0,16(7) 753 add 18,18,3 754 add 18,18,5 755 rotrdi 3,10,14 756 rotrdi 4,10,18 757 and 5,11,10 758 xor 3,3,4 759 add 6,6,0 760 andc 0,12,10 761 rotrdi 4,4,23 762 or 5,5,0 763 add 6,6,18 764 xor 3,3,4 765 add 6,6,5 766 add 6,6,3 767 768 rotrdi 3,14,28 769 rotrdi 4,14,34 770 and 5,14,15 771 and 0,14,8 772 xor 3,3,4 773 rotrdi 4,4,5 774 xor 5,5,0 775 and 0,15,8 776 xor 3,3,4 777 add 9,9,6 778 xor 5,5,0 779 add 6,6,3 780 add 6,6,5 781 782 rotrdi 3,20,1 783 rotrdi 4,20,8 784 rotrdi 5,17,19 785 rotrdi 0,17,61 786 xor 3,3,4 787 srdi 4,20,7 788 xor 5,5,0 789 srdi 0,17,6 790 add 19,19,28 791 xor 3,3,4 792 xor 5,5,0 793 ld 0,24(7) 794 add 19,19,3 795 add 19,19,5 796 rotrdi 3,9,14 797 rotrdi 4,9,18 798 and 5,10,9 799 xor 3,3,4 800 add 12,12,0 801 andc 0,11,9 802 rotrdi 4,4,23 803 or 5,5,0 804 add 12,12,19 805 xor 3,3,4 806 add 12,12,5 807 add 12,12,3 808 809 rotrdi 3,6,28 810 rotrdi 4,6,34 811 and 5,6,14 812 and 0,6,15 813 xor 3,3,4 814 rotrdi 4,4,5 815 xor 5,5,0 816 and 0,14,15 817 xor 3,3,4 818 add 8,8,12 819 xor 5,5,0 820 add 12,12,3 821 add 12,12,5 822 823 rotrdi 3,21,1 824 rotrdi 4,21,8 825 rotrdi 5,18,19 826 rotrdi 0,18,61 827 xor 3,3,4 828 srdi 4,21,7 829 xor 5,5,0 830 srdi 0,18,6 831 add 20,20,29 832 xor 3,3,4 833 xor 5,5,0 834 ld 0,32(7) 835 add 20,20,3 836 add 20,20,5 837 rotrdi 3,8,14 838 rotrdi 4,8,18 839 and 5,9,8 840 xor 3,3,4 841 add 11,11,0 842 andc 0,10,8 843 rotrdi 4,4,23 844 or 5,5,0 845 add 11,11,20 846 xor 3,3,4 847 add 11,11,5 848 add 11,11,3 849 850 rotrdi 3,12,28 851 rotrdi 4,12,34 852 and 5,12,6 853 and 0,12,14 854 xor 3,3,4 855 rotrdi 4,4,5 856 xor 5,5,0 857 and 0,6,14 858 xor 3,3,4 859 add 15,15,11 860 xor 5,5,0 861 add 11,11,3 862 add 11,11,5 863 864 rotrdi 3,22,1 865 rotrdi 4,22,8 866 rotrdi 5,19,19 867 rotrdi 0,19,61 868 xor 3,3,4 869 srdi 4,22,7 870 xor 5,5,0 871 srdi 0,19,6 872 add 21,21,30 873 xor 3,3,4 874 xor 5,5,0 875 ld 0,40(7) 876 add 21,21,3 877 add 21,21,5 878 rotrdi 3,15,14 879 rotrdi 4,15,18 880 and 5,8,15 881 xor 3,3,4 882 add 10,10,0 883 andc 0,9,15 884 rotrdi 4,4,23 885 or 5,5,0 886 add 10,10,21 887 xor 3,3,4 888 add 10,10,5 889 add 10,10,3 890 891 rotrdi 3,11,28 892 rotrdi 4,11,34 893 and 5,11,12 894 and 0,11,6 895 xor 3,3,4 896 rotrdi 4,4,5 897 xor 5,5,0 898 and 0,12,6 899 xor 3,3,4 900 add 14,14,10 901 xor 5,5,0 902 add 10,10,3 903 add 10,10,5 904 905 rotrdi 3,23,1 906 rotrdi 4,23,8 907 rotrdi 5,20,19 908 rotrdi 0,20,61 909 xor 3,3,4 910 srdi 4,23,7 911 xor 5,5,0 912 srdi 0,20,6 913 add 22,22,31 914 xor 3,3,4 915 xor 5,5,0 916 ld 0,48(7) 917 add 22,22,3 918 add 22,22,5 919 rotrdi 3,14,14 920 rotrdi 4,14,18 921 and 5,15,14 922 xor 3,3,4 923 add 9,9,0 924 andc 0,8,14 925 rotrdi 4,4,23 926 or 5,5,0 927 add 9,9,22 928 xor 3,3,4 929 add 9,9,5 930 add 9,9,3 931 932 rotrdi 3,10,28 933 rotrdi 4,10,34 934 and 5,10,11 935 and 0,10,12 936 xor 3,3,4 937 rotrdi 4,4,5 938 xor 5,5,0 939 and 0,11,12 940 xor 3,3,4 941 add 6,6,9 942 xor 5,5,0 943 add 9,9,3 944 add 9,9,5 945 946 rotrdi 3,24,1 947 rotrdi 4,24,8 948 rotrdi 5,21,19 949 rotrdi 0,21,61 950 xor 3,3,4 951 srdi 4,24,7 952 xor 5,5,0 953 srdi 0,21,6 954 add 23,23,16 955 xor 3,3,4 956 xor 5,5,0 957 ld 0,56(7) 958 add 23,23,3 959 add 23,23,5 960 rotrdi 3,6,14 961 rotrdi 4,6,18 962 and 5,14,6 963 xor 3,3,4 964 add 8,8,0 965 andc 0,15,6 966 rotrdi 4,4,23 967 or 5,5,0 968 add 8,8,23 969 xor 3,3,4 970 add 8,8,5 971 add 8,8,3 972 973 rotrdi 3,9,28 974 rotrdi 4,9,34 975 and 5,9,10 976 and 0,9,11 977 xor 3,3,4 978 rotrdi 4,4,5 979 xor 5,5,0 980 and 0,10,11 981 xor 3,3,4 982 add 12,12,8 983 xor 5,5,0 984 add 8,8,3 985 add 8,8,5 986 987 rotrdi 3,25,1 988 rotrdi 4,25,8 989 rotrdi 5,22,19 990 rotrdi 0,22,61 991 xor 3,3,4 992 srdi 4,25,7 993 xor 5,5,0 994 srdi 0,22,6 995 add 24,24,17 996 xor 3,3,4 997 xor 5,5,0 998 ld 0,64(7) 999 add 24,24,3 1000 add 24,24,5 1001 rotrdi 3,12,14 1002 rotrdi 4,12,18 1003 and 5,6,12 1004 xor 3,3,4 1005 add 15,15,0 1006 andc 0,14,12 1007 rotrdi 4,4,23 1008 or 5,5,0 1009 add 15,15,24 1010 xor 3,3,4 1011 add 15,15,5 1012 add 15,15,3 1013 1014 rotrdi 3,8,28 1015 rotrdi 4,8,34 1016 and 5,8,9 1017 and 0,8,10 1018 xor 3,3,4 1019 rotrdi 4,4,5 1020 xor 5,5,0 1021 and 0,9,10 1022 xor 3,3,4 1023 add 11,11,15 1024 xor 5,5,0 1025 add 15,15,3 1026 add 15,15,5 1027 1028 rotrdi 3,26,1 1029 rotrdi 4,26,8 1030 rotrdi 5,23,19 1031 rotrdi 0,23,61 1032 xor 3,3,4 1033 srdi 4,26,7 1034 xor 5,5,0 1035 srdi 0,23,6 1036 add 25,25,18 1037 xor 3,3,4 1038 xor 5,5,0 1039 ld 0,72(7) 1040 add 25,25,3 1041 add 25,25,5 1042 rotrdi 3,11,14 1043 rotrdi 4,11,18 1044 and 5,12,11 1045 xor 3,3,4 1046 add 14,14,0 1047 andc 0,6,11 1048 rotrdi 4,4,23 1049 or 5,5,0 1050 add 14,14,25 1051 xor 3,3,4 1052 add 14,14,5 1053 add 14,14,3 1054 1055 rotrdi 3,15,28 1056 rotrdi 4,15,34 1057 and 5,15,8 1058 and 0,15,9 1059 xor 3,3,4 1060 rotrdi 4,4,5 1061 xor 5,5,0 1062 and 0,8,9 1063 xor 3,3,4 1064 add 10,10,14 1065 xor 5,5,0 1066 add 14,14,3 1067 add 14,14,5 1068 1069 rotrdi 3,27,1 1070 rotrdi 4,27,8 1071 rotrdi 5,24,19 1072 rotrdi 0,24,61 1073 xor 3,3,4 1074 srdi 4,27,7 1075 xor 5,5,0 1076 srdi 0,24,6 1077 add 26,26,19 1078 xor 3,3,4 1079 xor 5,5,0 1080 ld 0,80(7) 1081 add 26,26,3 1082 add 26,26,5 1083 rotrdi 3,10,14 1084 rotrdi 4,10,18 1085 and 5,11,10 1086 xor 3,3,4 1087 add 6,6,0 1088 andc 0,12,10 1089 rotrdi 4,4,23 1090 or 5,5,0 1091 add 6,6,26 1092 xor 3,3,4 1093 add 6,6,5 1094 add 6,6,3 1095 1096 rotrdi 3,14,28 1097 rotrdi 4,14,34 1098 and 5,14,15 1099 and 0,14,8 1100 xor 3,3,4 1101 rotrdi 4,4,5 1102 xor 5,5,0 1103 and 0,15,8 1104 xor 3,3,4 1105 add 9,9,6 1106 xor 5,5,0 1107 add 6,6,3 1108 add 6,6,5 1109 1110 rotrdi 3,28,1 1111 rotrdi 4,28,8 1112 rotrdi 5,25,19 1113 rotrdi 0,25,61 1114 xor 3,3,4 1115 srdi 4,28,7 1116 xor 5,5,0 1117 srdi 0,25,6 1118 add 27,27,20 1119 xor 3,3,4 1120 xor 5,5,0 1121 ld 0,88(7) 1122 add 27,27,3 1123 add 27,27,5 1124 rotrdi 3,9,14 1125 rotrdi 4,9,18 1126 and 5,10,9 1127 xor 3,3,4 1128 add 12,12,0 1129 andc 0,11,9 1130 rotrdi 4,4,23 1131 or 5,5,0 1132 add 12,12,27 1133 xor 3,3,4 1134 add 12,12,5 1135 add 12,12,3 1136 1137 rotrdi 3,6,28 1138 rotrdi 4,6,34 1139 and 5,6,14 1140 and 0,6,15 1141 xor 3,3,4 1142 rotrdi 4,4,5 1143 xor 5,5,0 1144 and 0,14,15 1145 xor 3,3,4 1146 add 8,8,12 1147 xor 5,5,0 1148 add 12,12,3 1149 add 12,12,5 1150 1151 rotrdi 3,29,1 1152 rotrdi 4,29,8 1153 rotrdi 5,26,19 1154 rotrdi 0,26,61 1155 xor 3,3,4 1156 srdi 4,29,7 1157 xor 5,5,0 1158 srdi 0,26,6 1159 add 28,28,21 1160 xor 3,3,4 1161 xor 5,5,0 1162 ld 0,96(7) 1163 add 28,28,3 1164 add 28,28,5 1165 rotrdi 3,8,14 1166 rotrdi 4,8,18 1167 and 5,9,8 1168 xor 3,3,4 1169 add 11,11,0 1170 andc 0,10,8 1171 rotrdi 4,4,23 1172 or 5,5,0 1173 add 11,11,28 1174 xor 3,3,4 1175 add 11,11,5 1176 add 11,11,3 1177 1178 rotrdi 3,12,28 1179 rotrdi 4,12,34 1180 and 5,12,6 1181 and 0,12,14 1182 xor 3,3,4 1183 rotrdi 4,4,5 1184 xor 5,5,0 1185 and 0,6,14 1186 xor 3,3,4 1187 add 15,15,11 1188 xor 5,5,0 1189 add 11,11,3 1190 add 11,11,5 1191 1192 rotrdi 3,30,1 1193 rotrdi 4,30,8 1194 rotrdi 5,27,19 1195 rotrdi 0,27,61 1196 xor 3,3,4 1197 srdi 4,30,7 1198 xor 5,5,0 1199 srdi 0,27,6 1200 add 29,29,22 1201 xor 3,3,4 1202 xor 5,5,0 1203 ld 0,104(7) 1204 add 29,29,3 1205 add 29,29,5 1206 rotrdi 3,15,14 1207 rotrdi 4,15,18 1208 and 5,8,15 1209 xor 3,3,4 1210 add 10,10,0 1211 andc 0,9,15 1212 rotrdi 4,4,23 1213 or 5,5,0 1214 add 10,10,29 1215 xor 3,3,4 1216 add 10,10,5 1217 add 10,10,3 1218 1219 rotrdi 3,11,28 1220 rotrdi 4,11,34 1221 and 5,11,12 1222 and 0,11,6 1223 xor 3,3,4 1224 rotrdi 4,4,5 1225 xor 5,5,0 1226 and 0,12,6 1227 xor 3,3,4 1228 add 14,14,10 1229 xor 5,5,0 1230 add 10,10,3 1231 add 10,10,5 1232 1233 rotrdi 3,31,1 1234 rotrdi 4,31,8 1235 rotrdi 5,28,19 1236 rotrdi 0,28,61 1237 xor 3,3,4 1238 srdi 4,31,7 1239 xor 5,5,0 1240 srdi 0,28,6 1241 add 30,30,23 1242 xor 3,3,4 1243 xor 5,5,0 1244 ld 0,112(7) 1245 add 30,30,3 1246 add 30,30,5 1247 rotrdi 3,14,14 1248 rotrdi 4,14,18 1249 and 5,15,14 1250 xor 3,3,4 1251 add 9,9,0 1252 andc 0,8,14 1253 rotrdi 4,4,23 1254 or 5,5,0 1255 add 9,9,30 1256 xor 3,3,4 1257 add 9,9,5 1258 add 9,9,3 1259 1260 rotrdi 3,10,28 1261 rotrdi 4,10,34 1262 and 5,10,11 1263 and 0,10,12 1264 xor 3,3,4 1265 rotrdi 4,4,5 1266 xor 5,5,0 1267 and 0,11,12 1268 xor 3,3,4 1269 add 6,6,9 1270 xor 5,5,0 1271 add 9,9,3 1272 add 9,9,5 1273 1274 rotrdi 3,16,1 1275 rotrdi 4,16,8 1276 rotrdi 5,29,19 1277 rotrdi 0,29,61 1278 xor 3,3,4 1279 srdi 4,16,7 1280 xor 5,5,0 1281 srdi 0,29,6 1282 add 31,31,24 1283 xor 3,3,4 1284 xor 5,5,0 1285 ld 0,120(7) 1286 add 31,31,3 1287 add 31,31,5 1288 rotrdi 3,6,14 1289 rotrdi 4,6,18 1290 and 5,14,6 1291 xor 3,3,4 1292 add 8,8,0 1293 andc 0,15,6 1294 rotrdi 4,4,23 1295 or 5,5,0 1296 add 8,8,31 1297 xor 3,3,4 1298 add 8,8,5 1299 add 8,8,3 1300 1301 rotrdi 3,9,28 1302 rotrdi 4,9,34 1303 and 5,9,10 1304 and 0,9,11 1305 xor 3,3,4 1306 rotrdi 4,4,5 1307 xor 5,5,0 1308 and 0,10,11 1309 xor 3,3,4 1310 add 12,12,8 1311 xor 5,5,0 1312 add 8,8,3 1313 add 8,8,5 1314 1315 bdnz .Lrounds 1316 1317 ld 3,208(1) 1318 ld 31,200(1) 1319 ld 5,192(1) 1320 subi 7,7,512 1321 1322 ld 16,0(3) 1323 ld 17,8(3) 1324 ld 18,16(3) 1325 ld 19,24(3) 1326 ld 20,32(3) 1327 ld 21,40(3) 1328 ld 22,48(3) 1329 addi 31,31,128 1330 ld 23,56(3) 1331 add 8,8,16 1332 add 9,9,17 1333 std 31,200(1) 1334 add 10,10,18 1335 std 8,0(3) 1336 add 11,11,19 1337 std 9,8(3) 1338 add 12,12,20 1339 std 10,16(3) 1340 add 6,6,21 1341 std 11,24(3) 1342 add 14,14,22 1343 std 12,32(3) 1344 add 15,15,23 1345 std 6,40(3) 1346 std 14,48(3) 1347 cmpld 31,5 1348 std 15,56(3) 1349 bne .Lsha2_block_private 1350 blr 1351.long 0 1352.byte 0,12,0x14,0,0,0,0,0 1353.size .zfs_sha512_ppc,.-.zfs_sha512_ppc 1354.size zfs_sha512_ppc,.-.zfs_sha512_ppc 1355.align 6 1356.LPICmeup: 1357 mflr 0 1358 bcl 20,31,$+4 1359 mflr 7 1360 addi 7,7,56 1361 mtlr 0 1362 blr 1363.long 0 1364.byte 0,12,0x14,0,0,0,0,0 1365.space 28 1366.long 0x428a2f98,0xd728ae22 1367.long 0x71374491,0x23ef65cd 1368.long 0xb5c0fbcf,0xec4d3b2f 1369.long 0xe9b5dba5,0x8189dbbc 1370.long 0x3956c25b,0xf348b538 1371.long 0x59f111f1,0xb605d019 1372.long 0x923f82a4,0xaf194f9b 1373.long 0xab1c5ed5,0xda6d8118 1374.long 0xd807aa98,0xa3030242 1375.long 0x12835b01,0x45706fbe 1376.long 0x243185be,0x4ee4b28c 1377.long 0x550c7dc3,0xd5ffb4e2 1378.long 0x72be5d74,0xf27b896f 1379.long 0x80deb1fe,0x3b1696b1 1380.long 0x9bdc06a7,0x25c71235 1381.long 0xc19bf174,0xcf692694 1382.long 0xe49b69c1,0x9ef14ad2 1383.long 0xefbe4786,0x384f25e3 1384.long 0x0fc19dc6,0x8b8cd5b5 1385.long 0x240ca1cc,0x77ac9c65 1386.long 0x2de92c6f,0x592b0275 1387.long 0x4a7484aa,0x6ea6e483 1388.long 0x5cb0a9dc,0xbd41fbd4 1389.long 0x76f988da,0x831153b5 1390.long 0x983e5152,0xee66dfab 1391.long 0xa831c66d,0x2db43210 1392.long 0xb00327c8,0x98fb213f 1393.long 0xbf597fc7,0xbeef0ee4 1394.long 0xc6e00bf3,0x3da88fc2 1395.long 0xd5a79147,0x930aa725 1396.long 0x06ca6351,0xe003826f 1397.long 0x14292967,0x0a0e6e70 1398.long 0x27b70a85,0x46d22ffc 1399.long 0x2e1b2138,0x5c26c926 1400.long 0x4d2c6dfc,0x5ac42aed 1401.long 0x53380d13,0x9d95b3df 1402.long 0x650a7354,0x8baf63de 1403.long 0x766a0abb,0x3c77b2a8 1404.long 0x81c2c92e,0x47edaee6 1405.long 0x92722c85,0x1482353b 1406.long 0xa2bfe8a1,0x4cf10364 1407.long 0xa81a664b,0xbc423001 1408.long 0xc24b8b70,0xd0f89791 1409.long 0xc76c51a3,0x0654be30 1410.long 0xd192e819,0xd6ef5218 1411.long 0xd6990624,0x5565a910 1412.long 0xf40e3585,0x5771202a 1413.long 0x106aa070,0x32bbd1b8 1414.long 0x19a4c116,0xb8d2d0c8 1415.long 0x1e376c08,0x5141ab53 1416.long 0x2748774c,0xdf8eeb99 1417.long 0x34b0bcb5,0xe19b48a8 1418.long 0x391c0cb3,0xc5c95a63 1419.long 0x4ed8aa4a,0xe3418acb 1420.long 0x5b9cca4f,0x7763e373 1421.long 0x682e6ff3,0xd6b2b8a3 1422.long 0x748f82ee,0x5defb2fc 1423.long 0x78a5636f,0x43172f60 1424.long 0x84c87814,0xa1f0ab72 1425.long 0x8cc70208,0x1a6439ec 1426.long 0x90befffa,0x23631e28 1427.long 0xa4506ceb,0xde82bde9 1428.long 0xbef9a3f7,0xb2c67915 1429.long 0xc67178f2,0xe372532b 1430.long 0xca273ece,0xea26619c 1431.long 0xd186b8c7,0x21c0c207 1432.long 0xeada7dd6,0xcde0eb1e 1433.long 0xf57d4f7f,0xee6ed178 1434.long 0x06f067aa,0x72176fba 1435.long 0x0a637dc5,0xa2c898a6 1436.long 0x113f9804,0xbef90dae 1437.long 0x1b710b35,0x131c471b 1438.long 0x28db77f5,0x23047d84 1439.long 0x32caab7b,0x40c72493 1440.long 0x3c9ebe0a,0x15c9bebc 1441.long 0x431d67c4,0x9c100d4c 1442.long 0x4cc5d4be,0xcb3e42b6 1443.long 0x597f299c,0xfc657e2a 1444.long 0x5fcb6fab,0x3ad6faec 1445.long 0x6c44198c,0x4a475817 1446 1447#elif (defined(__PPC64__) && defined(__LITTLE_ENDIAN__)) 1448 1449.abiversion 2 1450.text 1451 1452.globl zfs_sha512_ppc 1453.type zfs_sha512_ppc,@function 1454.align 6 1455zfs_sha512_ppc: 1456.localentry zfs_sha512_ppc,0 1457 1458 stdu 1,-384(1) 1459 mflr 0 1460 sldi 5,5,7 1461 1462 std 3,208(1) 1463 1464 std 14,240(1) 1465 std 15,248(1) 1466 std 16,256(1) 1467 std 17,264(1) 1468 std 18,272(1) 1469 std 19,280(1) 1470 std 20,288(1) 1471 std 21,296(1) 1472 std 22,304(1) 1473 std 23,312(1) 1474 std 24,320(1) 1475 std 25,328(1) 1476 std 26,336(1) 1477 std 27,344(1) 1478 std 28,352(1) 1479 std 29,360(1) 1480 std 30,368(1) 1481 std 31,376(1) 1482 std 0,400(1) 1483 ld 8,0(3) 1484 mr 31,4 1485 ld 9,8(3) 1486 ld 10,16(3) 1487 ld 11,24(3) 1488 ld 12,32(3) 1489 ld 6,40(3) 1490 ld 14,48(3) 1491 ld 15,56(3) 1492 bl .LPICmeup 1493.LPICedup: 1494 andi. 0,31,3 1495 bne .Lunaligned 1496.Laligned: 1497 add 5,31,5 1498 std 5,192(1) 1499 std 31,200(1) 1500 bl .Lsha2_block_private 1501 b .Ldone 1502 1503.align 4 1504.Lunaligned: 1505 subfic 0,31,4096 1506 andi. 0,0,3968 1507 beq .Lcross_page 1508 cmpld 5,0 1509 ble .Laligned 1510 subfc 5,0,5 1511 add 0,31,0 1512 std 5,184(1) 1513 std 0,192(1) 1514 std 31,200(1) 1515 bl .Lsha2_block_private 1516 1517 ld 5,184(1) 1518.Lcross_page: 1519 li 0,32 1520 mtctr 0 1521 addi 20,1,48 1522.Lmemcpy: 1523 lbz 16,0(31) 1524 lbz 17,1(31) 1525 lbz 18,2(31) 1526 lbz 19,3(31) 1527 addi 31,31,4 1528 stb 16,0(20) 1529 stb 17,1(20) 1530 stb 18,2(20) 1531 stb 19,3(20) 1532 addi 20,20,4 1533 bdnz .Lmemcpy 1534 std 31,176(1) 1535 addi 0,1,176 1536 addi 31,1,48 1537 std 5,184(1) 1538 std 0,192(1) 1539 std 31,200(1) 1540 bl .Lsha2_block_private 1541 ld 31,176(1) 1542 ld 5,184(1) 1543 addic. 5,5,-128 1544 bne .Lunaligned 1545 1546.Ldone: 1547 ld 0,400(1) 1548 ld 14,240(1) 1549 ld 15,248(1) 1550 ld 16,256(1) 1551 ld 17,264(1) 1552 ld 18,272(1) 1553 ld 19,280(1) 1554 ld 20,288(1) 1555 ld 21,296(1) 1556 ld 22,304(1) 1557 ld 23,312(1) 1558 ld 24,320(1) 1559 ld 25,328(1) 1560 ld 26,336(1) 1561 ld 27,344(1) 1562 ld 28,352(1) 1563 ld 29,360(1) 1564 ld 30,368(1) 1565 ld 31,376(1) 1566 mtlr 0 1567 addi 1,1,384 1568 blr 1569.long 0 1570.byte 0,12,4,1,0x80,18,3,0 1571.long 0 1572.align 4 1573.Lsha2_block_private: 1574 ld 0,0(7) 1575 lwz 3,0(31) 1576 lwz 4,4(31) 1577 rotlwi 5,3,8 1578 rotlwi 16,4,8 1579 rlwimi 5,3,24,0,7 1580 rlwimi 16,4,24,0,7 1581 rlwimi 5,3,24,16,23 1582 rlwimi 16,4,24,16,23 1583 insrdi 16,5,32,0 1584 rotrdi 3,12,14 1585 rotrdi 4,12,18 1586 and 5,6,12 1587 xor 3,3,4 1588 add 15,15,0 1589 andc 0,14,12 1590 rotrdi 4,4,23 1591 or 5,5,0 1592 add 15,15,16 1593 xor 3,3,4 1594 add 15,15,5 1595 add 15,15,3 1596 1597 rotrdi 3,8,28 1598 rotrdi 4,8,34 1599 and 5,8,9 1600 and 0,8,10 1601 xor 3,3,4 1602 rotrdi 4,4,5 1603 xor 5,5,0 1604 and 0,9,10 1605 xor 3,3,4 1606 add 11,11,15 1607 xor 5,5,0 1608 ld 0,8(7) 1609 add 15,15,3 1610 add 15,15,5 1611 1612 lwz 3,8(31) 1613 lwz 4,12(31) 1614 rotlwi 5,3,8 1615 rotlwi 17,4,8 1616 rlwimi 5,3,24,0,7 1617 rlwimi 17,4,24,0,7 1618 rlwimi 5,3,24,16,23 1619 rlwimi 17,4,24,16,23 1620 insrdi 17,5,32,0 1621 rotrdi 3,11,14 1622 rotrdi 4,11,18 1623 and 5,12,11 1624 xor 3,3,4 1625 add 14,14,0 1626 andc 0,6,11 1627 rotrdi 4,4,23 1628 or 5,5,0 1629 add 14,14,17 1630 xor 3,3,4 1631 add 14,14,5 1632 add 14,14,3 1633 1634 rotrdi 3,15,28 1635 rotrdi 4,15,34 1636 and 5,15,8 1637 and 0,15,9 1638 xor 3,3,4 1639 rotrdi 4,4,5 1640 xor 5,5,0 1641 and 0,8,9 1642 xor 3,3,4 1643 add 10,10,14 1644 xor 5,5,0 1645 ld 0,16(7) 1646 add 14,14,3 1647 add 14,14,5 1648 1649 lwz 3,16(31) 1650 lwz 4,20(31) 1651 rotlwi 5,3,8 1652 rotlwi 18,4,8 1653 rlwimi 5,3,24,0,7 1654 rlwimi 18,4,24,0,7 1655 rlwimi 5,3,24,16,23 1656 rlwimi 18,4,24,16,23 1657 insrdi 18,5,32,0 1658 rotrdi 3,10,14 1659 rotrdi 4,10,18 1660 and 5,11,10 1661 xor 3,3,4 1662 add 6,6,0 1663 andc 0,12,10 1664 rotrdi 4,4,23 1665 or 5,5,0 1666 add 6,6,18 1667 xor 3,3,4 1668 add 6,6,5 1669 add 6,6,3 1670 1671 rotrdi 3,14,28 1672 rotrdi 4,14,34 1673 and 5,14,15 1674 and 0,14,8 1675 xor 3,3,4 1676 rotrdi 4,4,5 1677 xor 5,5,0 1678 and 0,15,8 1679 xor 3,3,4 1680 add 9,9,6 1681 xor 5,5,0 1682 ld 0,24(7) 1683 add 6,6,3 1684 add 6,6,5 1685 1686 lwz 3,24(31) 1687 lwz 4,28(31) 1688 rotlwi 5,3,8 1689 rotlwi 19,4,8 1690 rlwimi 5,3,24,0,7 1691 rlwimi 19,4,24,0,7 1692 rlwimi 5,3,24,16,23 1693 rlwimi 19,4,24,16,23 1694 insrdi 19,5,32,0 1695 rotrdi 3,9,14 1696 rotrdi 4,9,18 1697 and 5,10,9 1698 xor 3,3,4 1699 add 12,12,0 1700 andc 0,11,9 1701 rotrdi 4,4,23 1702 or 5,5,0 1703 add 12,12,19 1704 xor 3,3,4 1705 add 12,12,5 1706 add 12,12,3 1707 1708 rotrdi 3,6,28 1709 rotrdi 4,6,34 1710 and 5,6,14 1711 and 0,6,15 1712 xor 3,3,4 1713 rotrdi 4,4,5 1714 xor 5,5,0 1715 and 0,14,15 1716 xor 3,3,4 1717 add 8,8,12 1718 xor 5,5,0 1719 ld 0,32(7) 1720 add 12,12,3 1721 add 12,12,5 1722 1723 lwz 3,32(31) 1724 lwz 4,36(31) 1725 rotlwi 5,3,8 1726 rotlwi 20,4,8 1727 rlwimi 5,3,24,0,7 1728 rlwimi 20,4,24,0,7 1729 rlwimi 5,3,24,16,23 1730 rlwimi 20,4,24,16,23 1731 insrdi 20,5,32,0 1732 rotrdi 3,8,14 1733 rotrdi 4,8,18 1734 and 5,9,8 1735 xor 3,3,4 1736 add 11,11,0 1737 andc 0,10,8 1738 rotrdi 4,4,23 1739 or 5,5,0 1740 add 11,11,20 1741 xor 3,3,4 1742 add 11,11,5 1743 add 11,11,3 1744 1745 rotrdi 3,12,28 1746 rotrdi 4,12,34 1747 and 5,12,6 1748 and 0,12,14 1749 xor 3,3,4 1750 rotrdi 4,4,5 1751 xor 5,5,0 1752 and 0,6,14 1753 xor 3,3,4 1754 add 15,15,11 1755 xor 5,5,0 1756 ld 0,40(7) 1757 add 11,11,3 1758 add 11,11,5 1759 1760 lwz 3,40(31) 1761 lwz 4,44(31) 1762 rotlwi 5,3,8 1763 rotlwi 21,4,8 1764 rlwimi 5,3,24,0,7 1765 rlwimi 21,4,24,0,7 1766 rlwimi 5,3,24,16,23 1767 rlwimi 21,4,24,16,23 1768 insrdi 21,5,32,0 1769 rotrdi 3,15,14 1770 rotrdi 4,15,18 1771 and 5,8,15 1772 xor 3,3,4 1773 add 10,10,0 1774 andc 0,9,15 1775 rotrdi 4,4,23 1776 or 5,5,0 1777 add 10,10,21 1778 xor 3,3,4 1779 add 10,10,5 1780 add 10,10,3 1781 1782 rotrdi 3,11,28 1783 rotrdi 4,11,34 1784 and 5,11,12 1785 and 0,11,6 1786 xor 3,3,4 1787 rotrdi 4,4,5 1788 xor 5,5,0 1789 and 0,12,6 1790 xor 3,3,4 1791 add 14,14,10 1792 xor 5,5,0 1793 ld 0,48(7) 1794 add 10,10,3 1795 add 10,10,5 1796 1797 lwz 3,48(31) 1798 lwz 4,52(31) 1799 rotlwi 5,3,8 1800 rotlwi 22,4,8 1801 rlwimi 5,3,24,0,7 1802 rlwimi 22,4,24,0,7 1803 rlwimi 5,3,24,16,23 1804 rlwimi 22,4,24,16,23 1805 insrdi 22,5,32,0 1806 rotrdi 3,14,14 1807 rotrdi 4,14,18 1808 and 5,15,14 1809 xor 3,3,4 1810 add 9,9,0 1811 andc 0,8,14 1812 rotrdi 4,4,23 1813 or 5,5,0 1814 add 9,9,22 1815 xor 3,3,4 1816 add 9,9,5 1817 add 9,9,3 1818 1819 rotrdi 3,10,28 1820 rotrdi 4,10,34 1821 and 5,10,11 1822 and 0,10,12 1823 xor 3,3,4 1824 rotrdi 4,4,5 1825 xor 5,5,0 1826 and 0,11,12 1827 xor 3,3,4 1828 add 6,6,9 1829 xor 5,5,0 1830 ld 0,56(7) 1831 add 9,9,3 1832 add 9,9,5 1833 1834 lwz 3,56(31) 1835 lwz 4,60(31) 1836 rotlwi 5,3,8 1837 rotlwi 23,4,8 1838 rlwimi 5,3,24,0,7 1839 rlwimi 23,4,24,0,7 1840 rlwimi 5,3,24,16,23 1841 rlwimi 23,4,24,16,23 1842 insrdi 23,5,32,0 1843 rotrdi 3,6,14 1844 rotrdi 4,6,18 1845 and 5,14,6 1846 xor 3,3,4 1847 add 8,8,0 1848 andc 0,15,6 1849 rotrdi 4,4,23 1850 or 5,5,0 1851 add 8,8,23 1852 xor 3,3,4 1853 add 8,8,5 1854 add 8,8,3 1855 1856 rotrdi 3,9,28 1857 rotrdi 4,9,34 1858 and 5,9,10 1859 and 0,9,11 1860 xor 3,3,4 1861 rotrdi 4,4,5 1862 xor 5,5,0 1863 and 0,10,11 1864 xor 3,3,4 1865 add 12,12,8 1866 xor 5,5,0 1867 ld 0,64(7) 1868 add 8,8,3 1869 add 8,8,5 1870 1871 lwz 3,64(31) 1872 lwz 4,68(31) 1873 rotlwi 5,3,8 1874 rotlwi 24,4,8 1875 rlwimi 5,3,24,0,7 1876 rlwimi 24,4,24,0,7 1877 rlwimi 5,3,24,16,23 1878 rlwimi 24,4,24,16,23 1879 insrdi 24,5,32,0 1880 rotrdi 3,12,14 1881 rotrdi 4,12,18 1882 and 5,6,12 1883 xor 3,3,4 1884 add 15,15,0 1885 andc 0,14,12 1886 rotrdi 4,4,23 1887 or 5,5,0 1888 add 15,15,24 1889 xor 3,3,4 1890 add 15,15,5 1891 add 15,15,3 1892 1893 rotrdi 3,8,28 1894 rotrdi 4,8,34 1895 and 5,8,9 1896 and 0,8,10 1897 xor 3,3,4 1898 rotrdi 4,4,5 1899 xor 5,5,0 1900 and 0,9,10 1901 xor 3,3,4 1902 add 11,11,15 1903 xor 5,5,0 1904 ld 0,72(7) 1905 add 15,15,3 1906 add 15,15,5 1907 1908 lwz 3,72(31) 1909 lwz 4,76(31) 1910 rotlwi 5,3,8 1911 rotlwi 25,4,8 1912 rlwimi 5,3,24,0,7 1913 rlwimi 25,4,24,0,7 1914 rlwimi 5,3,24,16,23 1915 rlwimi 25,4,24,16,23 1916 insrdi 25,5,32,0 1917 rotrdi 3,11,14 1918 rotrdi 4,11,18 1919 and 5,12,11 1920 xor 3,3,4 1921 add 14,14,0 1922 andc 0,6,11 1923 rotrdi 4,4,23 1924 or 5,5,0 1925 add 14,14,25 1926 xor 3,3,4 1927 add 14,14,5 1928 add 14,14,3 1929 1930 rotrdi 3,15,28 1931 rotrdi 4,15,34 1932 and 5,15,8 1933 and 0,15,9 1934 xor 3,3,4 1935 rotrdi 4,4,5 1936 xor 5,5,0 1937 and 0,8,9 1938 xor 3,3,4 1939 add 10,10,14 1940 xor 5,5,0 1941 ld 0,80(7) 1942 add 14,14,3 1943 add 14,14,5 1944 1945 lwz 3,80(31) 1946 lwz 4,84(31) 1947 rotlwi 5,3,8 1948 rotlwi 26,4,8 1949 rlwimi 5,3,24,0,7 1950 rlwimi 26,4,24,0,7 1951 rlwimi 5,3,24,16,23 1952 rlwimi 26,4,24,16,23 1953 insrdi 26,5,32,0 1954 rotrdi 3,10,14 1955 rotrdi 4,10,18 1956 and 5,11,10 1957 xor 3,3,4 1958 add 6,6,0 1959 andc 0,12,10 1960 rotrdi 4,4,23 1961 or 5,5,0 1962 add 6,6,26 1963 xor 3,3,4 1964 add 6,6,5 1965 add 6,6,3 1966 1967 rotrdi 3,14,28 1968 rotrdi 4,14,34 1969 and 5,14,15 1970 and 0,14,8 1971 xor 3,3,4 1972 rotrdi 4,4,5 1973 xor 5,5,0 1974 and 0,15,8 1975 xor 3,3,4 1976 add 9,9,6 1977 xor 5,5,0 1978 ld 0,88(7) 1979 add 6,6,3 1980 add 6,6,5 1981 1982 lwz 3,88(31) 1983 lwz 4,92(31) 1984 rotlwi 5,3,8 1985 rotlwi 27,4,8 1986 rlwimi 5,3,24,0,7 1987 rlwimi 27,4,24,0,7 1988 rlwimi 5,3,24,16,23 1989 rlwimi 27,4,24,16,23 1990 insrdi 27,5,32,0 1991 rotrdi 3,9,14 1992 rotrdi 4,9,18 1993 and 5,10,9 1994 xor 3,3,4 1995 add 12,12,0 1996 andc 0,11,9 1997 rotrdi 4,4,23 1998 or 5,5,0 1999 add 12,12,27 2000 xor 3,3,4 2001 add 12,12,5 2002 add 12,12,3 2003 2004 rotrdi 3,6,28 2005 rotrdi 4,6,34 2006 and 5,6,14 2007 and 0,6,15 2008 xor 3,3,4 2009 rotrdi 4,4,5 2010 xor 5,5,0 2011 and 0,14,15 2012 xor 3,3,4 2013 add 8,8,12 2014 xor 5,5,0 2015 ld 0,96(7) 2016 add 12,12,3 2017 add 12,12,5 2018 2019 lwz 3,96(31) 2020 lwz 4,100(31) 2021 rotlwi 5,3,8 2022 rotlwi 28,4,8 2023 rlwimi 5,3,24,0,7 2024 rlwimi 28,4,24,0,7 2025 rlwimi 5,3,24,16,23 2026 rlwimi 28,4,24,16,23 2027 insrdi 28,5,32,0 2028 rotrdi 3,8,14 2029 rotrdi 4,8,18 2030 and 5,9,8 2031 xor 3,3,4 2032 add 11,11,0 2033 andc 0,10,8 2034 rotrdi 4,4,23 2035 or 5,5,0 2036 add 11,11,28 2037 xor 3,3,4 2038 add 11,11,5 2039 add 11,11,3 2040 2041 rotrdi 3,12,28 2042 rotrdi 4,12,34 2043 and 5,12,6 2044 and 0,12,14 2045 xor 3,3,4 2046 rotrdi 4,4,5 2047 xor 5,5,0 2048 and 0,6,14 2049 xor 3,3,4 2050 add 15,15,11 2051 xor 5,5,0 2052 ld 0,104(7) 2053 add 11,11,3 2054 add 11,11,5 2055 2056 lwz 3,104(31) 2057 lwz 4,108(31) 2058 rotlwi 5,3,8 2059 rotlwi 29,4,8 2060 rlwimi 5,3,24,0,7 2061 rlwimi 29,4,24,0,7 2062 rlwimi 5,3,24,16,23 2063 rlwimi 29,4,24,16,23 2064 insrdi 29,5,32,0 2065 rotrdi 3,15,14 2066 rotrdi 4,15,18 2067 and 5,8,15 2068 xor 3,3,4 2069 add 10,10,0 2070 andc 0,9,15 2071 rotrdi 4,4,23 2072 or 5,5,0 2073 add 10,10,29 2074 xor 3,3,4 2075 add 10,10,5 2076 add 10,10,3 2077 2078 rotrdi 3,11,28 2079 rotrdi 4,11,34 2080 and 5,11,12 2081 and 0,11,6 2082 xor 3,3,4 2083 rotrdi 4,4,5 2084 xor 5,5,0 2085 and 0,12,6 2086 xor 3,3,4 2087 add 14,14,10 2088 xor 5,5,0 2089 ld 0,112(7) 2090 add 10,10,3 2091 add 10,10,5 2092 2093 lwz 3,112(31) 2094 lwz 4,116(31) 2095 rotlwi 5,3,8 2096 rotlwi 30,4,8 2097 rlwimi 5,3,24,0,7 2098 rlwimi 30,4,24,0,7 2099 rlwimi 5,3,24,16,23 2100 rlwimi 30,4,24,16,23 2101 insrdi 30,5,32,0 2102 rotrdi 3,14,14 2103 rotrdi 4,14,18 2104 and 5,15,14 2105 xor 3,3,4 2106 add 9,9,0 2107 andc 0,8,14 2108 rotrdi 4,4,23 2109 or 5,5,0 2110 add 9,9,30 2111 xor 3,3,4 2112 add 9,9,5 2113 add 9,9,3 2114 2115 rotrdi 3,10,28 2116 rotrdi 4,10,34 2117 and 5,10,11 2118 and 0,10,12 2119 xor 3,3,4 2120 rotrdi 4,4,5 2121 xor 5,5,0 2122 and 0,11,12 2123 xor 3,3,4 2124 add 6,6,9 2125 xor 5,5,0 2126 ld 0,120(7) 2127 add 9,9,3 2128 add 9,9,5 2129 2130 lwz 3,120(31) 2131 lwz 4,124(31) 2132 rotlwi 5,3,8 2133 rotlwi 31,4,8 2134 rlwimi 5,3,24,0,7 2135 rlwimi 31,4,24,0,7 2136 rlwimi 5,3,24,16,23 2137 rlwimi 31,4,24,16,23 2138 insrdi 31,5,32,0 2139 rotrdi 3,6,14 2140 rotrdi 4,6,18 2141 and 5,14,6 2142 xor 3,3,4 2143 add 8,8,0 2144 andc 0,15,6 2145 rotrdi 4,4,23 2146 or 5,5,0 2147 add 8,8,31 2148 xor 3,3,4 2149 add 8,8,5 2150 add 8,8,3 2151 2152 rotrdi 3,9,28 2153 rotrdi 4,9,34 2154 and 5,9,10 2155 and 0,9,11 2156 xor 3,3,4 2157 rotrdi 4,4,5 2158 xor 5,5,0 2159 and 0,10,11 2160 xor 3,3,4 2161 add 12,12,8 2162 xor 5,5,0 2163 add 8,8,3 2164 add 8,8,5 2165 2166 li 5,4 2167 mtctr 5 2168.align 4 2169.Lrounds: 2170 addi 7,7,128 2171 rotrdi 3,17,1 2172 rotrdi 4,17,8 2173 rotrdi 5,30,19 2174 rotrdi 0,30,61 2175 xor 3,3,4 2176 srdi 4,17,7 2177 xor 5,5,0 2178 srdi 0,30,6 2179 add 16,16,25 2180 xor 3,3,4 2181 xor 5,5,0 2182 ld 0,0(7) 2183 add 16,16,3 2184 add 16,16,5 2185 rotrdi 3,12,14 2186 rotrdi 4,12,18 2187 and 5,6,12 2188 xor 3,3,4 2189 add 15,15,0 2190 andc 0,14,12 2191 rotrdi 4,4,23 2192 or 5,5,0 2193 add 15,15,16 2194 xor 3,3,4 2195 add 15,15,5 2196 add 15,15,3 2197 2198 rotrdi 3,8,28 2199 rotrdi 4,8,34 2200 and 5,8,9 2201 and 0,8,10 2202 xor 3,3,4 2203 rotrdi 4,4,5 2204 xor 5,5,0 2205 and 0,9,10 2206 xor 3,3,4 2207 add 11,11,15 2208 xor 5,5,0 2209 add 15,15,3 2210 add 15,15,5 2211 2212 rotrdi 3,18,1 2213 rotrdi 4,18,8 2214 rotrdi 5,31,19 2215 rotrdi 0,31,61 2216 xor 3,3,4 2217 srdi 4,18,7 2218 xor 5,5,0 2219 srdi 0,31,6 2220 add 17,17,26 2221 xor 3,3,4 2222 xor 5,5,0 2223 ld 0,8(7) 2224 add 17,17,3 2225 add 17,17,5 2226 rotrdi 3,11,14 2227 rotrdi 4,11,18 2228 and 5,12,11 2229 xor 3,3,4 2230 add 14,14,0 2231 andc 0,6,11 2232 rotrdi 4,4,23 2233 or 5,5,0 2234 add 14,14,17 2235 xor 3,3,4 2236 add 14,14,5 2237 add 14,14,3 2238 2239 rotrdi 3,15,28 2240 rotrdi 4,15,34 2241 and 5,15,8 2242 and 0,15,9 2243 xor 3,3,4 2244 rotrdi 4,4,5 2245 xor 5,5,0 2246 and 0,8,9 2247 xor 3,3,4 2248 add 10,10,14 2249 xor 5,5,0 2250 add 14,14,3 2251 add 14,14,5 2252 2253 rotrdi 3,19,1 2254 rotrdi 4,19,8 2255 rotrdi 5,16,19 2256 rotrdi 0,16,61 2257 xor 3,3,4 2258 srdi 4,19,7 2259 xor 5,5,0 2260 srdi 0,16,6 2261 add 18,18,27 2262 xor 3,3,4 2263 xor 5,5,0 2264 ld 0,16(7) 2265 add 18,18,3 2266 add 18,18,5 2267 rotrdi 3,10,14 2268 rotrdi 4,10,18 2269 and 5,11,10 2270 xor 3,3,4 2271 add 6,6,0 2272 andc 0,12,10 2273 rotrdi 4,4,23 2274 or 5,5,0 2275 add 6,6,18 2276 xor 3,3,4 2277 add 6,6,5 2278 add 6,6,3 2279 2280 rotrdi 3,14,28 2281 rotrdi 4,14,34 2282 and 5,14,15 2283 and 0,14,8 2284 xor 3,3,4 2285 rotrdi 4,4,5 2286 xor 5,5,0 2287 and 0,15,8 2288 xor 3,3,4 2289 add 9,9,6 2290 xor 5,5,0 2291 add 6,6,3 2292 add 6,6,5 2293 2294 rotrdi 3,20,1 2295 rotrdi 4,20,8 2296 rotrdi 5,17,19 2297 rotrdi 0,17,61 2298 xor 3,3,4 2299 srdi 4,20,7 2300 xor 5,5,0 2301 srdi 0,17,6 2302 add 19,19,28 2303 xor 3,3,4 2304 xor 5,5,0 2305 ld 0,24(7) 2306 add 19,19,3 2307 add 19,19,5 2308 rotrdi 3,9,14 2309 rotrdi 4,9,18 2310 and 5,10,9 2311 xor 3,3,4 2312 add 12,12,0 2313 andc 0,11,9 2314 rotrdi 4,4,23 2315 or 5,5,0 2316 add 12,12,19 2317 xor 3,3,4 2318 add 12,12,5 2319 add 12,12,3 2320 2321 rotrdi 3,6,28 2322 rotrdi 4,6,34 2323 and 5,6,14 2324 and 0,6,15 2325 xor 3,3,4 2326 rotrdi 4,4,5 2327 xor 5,5,0 2328 and 0,14,15 2329 xor 3,3,4 2330 add 8,8,12 2331 xor 5,5,0 2332 add 12,12,3 2333 add 12,12,5 2334 2335 rotrdi 3,21,1 2336 rotrdi 4,21,8 2337 rotrdi 5,18,19 2338 rotrdi 0,18,61 2339 xor 3,3,4 2340 srdi 4,21,7 2341 xor 5,5,0 2342 srdi 0,18,6 2343 add 20,20,29 2344 xor 3,3,4 2345 xor 5,5,0 2346 ld 0,32(7) 2347 add 20,20,3 2348 add 20,20,5 2349 rotrdi 3,8,14 2350 rotrdi 4,8,18 2351 and 5,9,8 2352 xor 3,3,4 2353 add 11,11,0 2354 andc 0,10,8 2355 rotrdi 4,4,23 2356 or 5,5,0 2357 add 11,11,20 2358 xor 3,3,4 2359 add 11,11,5 2360 add 11,11,3 2361 2362 rotrdi 3,12,28 2363 rotrdi 4,12,34 2364 and 5,12,6 2365 and 0,12,14 2366 xor 3,3,4 2367 rotrdi 4,4,5 2368 xor 5,5,0 2369 and 0,6,14 2370 xor 3,3,4 2371 add 15,15,11 2372 xor 5,5,0 2373 add 11,11,3 2374 add 11,11,5 2375 2376 rotrdi 3,22,1 2377 rotrdi 4,22,8 2378 rotrdi 5,19,19 2379 rotrdi 0,19,61 2380 xor 3,3,4 2381 srdi 4,22,7 2382 xor 5,5,0 2383 srdi 0,19,6 2384 add 21,21,30 2385 xor 3,3,4 2386 xor 5,5,0 2387 ld 0,40(7) 2388 add 21,21,3 2389 add 21,21,5 2390 rotrdi 3,15,14 2391 rotrdi 4,15,18 2392 and 5,8,15 2393 xor 3,3,4 2394 add 10,10,0 2395 andc 0,9,15 2396 rotrdi 4,4,23 2397 or 5,5,0 2398 add 10,10,21 2399 xor 3,3,4 2400 add 10,10,5 2401 add 10,10,3 2402 2403 rotrdi 3,11,28 2404 rotrdi 4,11,34 2405 and 5,11,12 2406 and 0,11,6 2407 xor 3,3,4 2408 rotrdi 4,4,5 2409 xor 5,5,0 2410 and 0,12,6 2411 xor 3,3,4 2412 add 14,14,10 2413 xor 5,5,0 2414 add 10,10,3 2415 add 10,10,5 2416 2417 rotrdi 3,23,1 2418 rotrdi 4,23,8 2419 rotrdi 5,20,19 2420 rotrdi 0,20,61 2421 xor 3,3,4 2422 srdi 4,23,7 2423 xor 5,5,0 2424 srdi 0,20,6 2425 add 22,22,31 2426 xor 3,3,4 2427 xor 5,5,0 2428 ld 0,48(7) 2429 add 22,22,3 2430 add 22,22,5 2431 rotrdi 3,14,14 2432 rotrdi 4,14,18 2433 and 5,15,14 2434 xor 3,3,4 2435 add 9,9,0 2436 andc 0,8,14 2437 rotrdi 4,4,23 2438 or 5,5,0 2439 add 9,9,22 2440 xor 3,3,4 2441 add 9,9,5 2442 add 9,9,3 2443 2444 rotrdi 3,10,28 2445 rotrdi 4,10,34 2446 and 5,10,11 2447 and 0,10,12 2448 xor 3,3,4 2449 rotrdi 4,4,5 2450 xor 5,5,0 2451 and 0,11,12 2452 xor 3,3,4 2453 add 6,6,9 2454 xor 5,5,0 2455 add 9,9,3 2456 add 9,9,5 2457 2458 rotrdi 3,24,1 2459 rotrdi 4,24,8 2460 rotrdi 5,21,19 2461 rotrdi 0,21,61 2462 xor 3,3,4 2463 srdi 4,24,7 2464 xor 5,5,0 2465 srdi 0,21,6 2466 add 23,23,16 2467 xor 3,3,4 2468 xor 5,5,0 2469 ld 0,56(7) 2470 add 23,23,3 2471 add 23,23,5 2472 rotrdi 3,6,14 2473 rotrdi 4,6,18 2474 and 5,14,6 2475 xor 3,3,4 2476 add 8,8,0 2477 andc 0,15,6 2478 rotrdi 4,4,23 2479 or 5,5,0 2480 add 8,8,23 2481 xor 3,3,4 2482 add 8,8,5 2483 add 8,8,3 2484 2485 rotrdi 3,9,28 2486 rotrdi 4,9,34 2487 and 5,9,10 2488 and 0,9,11 2489 xor 3,3,4 2490 rotrdi 4,4,5 2491 xor 5,5,0 2492 and 0,10,11 2493 xor 3,3,4 2494 add 12,12,8 2495 xor 5,5,0 2496 add 8,8,3 2497 add 8,8,5 2498 2499 rotrdi 3,25,1 2500 rotrdi 4,25,8 2501 rotrdi 5,22,19 2502 rotrdi 0,22,61 2503 xor 3,3,4 2504 srdi 4,25,7 2505 xor 5,5,0 2506 srdi 0,22,6 2507 add 24,24,17 2508 xor 3,3,4 2509 xor 5,5,0 2510 ld 0,64(7) 2511 add 24,24,3 2512 add 24,24,5 2513 rotrdi 3,12,14 2514 rotrdi 4,12,18 2515 and 5,6,12 2516 xor 3,3,4 2517 add 15,15,0 2518 andc 0,14,12 2519 rotrdi 4,4,23 2520 or 5,5,0 2521 add 15,15,24 2522 xor 3,3,4 2523 add 15,15,5 2524 add 15,15,3 2525 2526 rotrdi 3,8,28 2527 rotrdi 4,8,34 2528 and 5,8,9 2529 and 0,8,10 2530 xor 3,3,4 2531 rotrdi 4,4,5 2532 xor 5,5,0 2533 and 0,9,10 2534 xor 3,3,4 2535 add 11,11,15 2536 xor 5,5,0 2537 add 15,15,3 2538 add 15,15,5 2539 2540 rotrdi 3,26,1 2541 rotrdi 4,26,8 2542 rotrdi 5,23,19 2543 rotrdi 0,23,61 2544 xor 3,3,4 2545 srdi 4,26,7 2546 xor 5,5,0 2547 srdi 0,23,6 2548 add 25,25,18 2549 xor 3,3,4 2550 xor 5,5,0 2551 ld 0,72(7) 2552 add 25,25,3 2553 add 25,25,5 2554 rotrdi 3,11,14 2555 rotrdi 4,11,18 2556 and 5,12,11 2557 xor 3,3,4 2558 add 14,14,0 2559 andc 0,6,11 2560 rotrdi 4,4,23 2561 or 5,5,0 2562 add 14,14,25 2563 xor 3,3,4 2564 add 14,14,5 2565 add 14,14,3 2566 2567 rotrdi 3,15,28 2568 rotrdi 4,15,34 2569 and 5,15,8 2570 and 0,15,9 2571 xor 3,3,4 2572 rotrdi 4,4,5 2573 xor 5,5,0 2574 and 0,8,9 2575 xor 3,3,4 2576 add 10,10,14 2577 xor 5,5,0 2578 add 14,14,3 2579 add 14,14,5 2580 2581 rotrdi 3,27,1 2582 rotrdi 4,27,8 2583 rotrdi 5,24,19 2584 rotrdi 0,24,61 2585 xor 3,3,4 2586 srdi 4,27,7 2587 xor 5,5,0 2588 srdi 0,24,6 2589 add 26,26,19 2590 xor 3,3,4 2591 xor 5,5,0 2592 ld 0,80(7) 2593 add 26,26,3 2594 add 26,26,5 2595 rotrdi 3,10,14 2596 rotrdi 4,10,18 2597 and 5,11,10 2598 xor 3,3,4 2599 add 6,6,0 2600 andc 0,12,10 2601 rotrdi 4,4,23 2602 or 5,5,0 2603 add 6,6,26 2604 xor 3,3,4 2605 add 6,6,5 2606 add 6,6,3 2607 2608 rotrdi 3,14,28 2609 rotrdi 4,14,34 2610 and 5,14,15 2611 and 0,14,8 2612 xor 3,3,4 2613 rotrdi 4,4,5 2614 xor 5,5,0 2615 and 0,15,8 2616 xor 3,3,4 2617 add 9,9,6 2618 xor 5,5,0 2619 add 6,6,3 2620 add 6,6,5 2621 2622 rotrdi 3,28,1 2623 rotrdi 4,28,8 2624 rotrdi 5,25,19 2625 rotrdi 0,25,61 2626 xor 3,3,4 2627 srdi 4,28,7 2628 xor 5,5,0 2629 srdi 0,25,6 2630 add 27,27,20 2631 xor 3,3,4 2632 xor 5,5,0 2633 ld 0,88(7) 2634 add 27,27,3 2635 add 27,27,5 2636 rotrdi 3,9,14 2637 rotrdi 4,9,18 2638 and 5,10,9 2639 xor 3,3,4 2640 add 12,12,0 2641 andc 0,11,9 2642 rotrdi 4,4,23 2643 or 5,5,0 2644 add 12,12,27 2645 xor 3,3,4 2646 add 12,12,5 2647 add 12,12,3 2648 2649 rotrdi 3,6,28 2650 rotrdi 4,6,34 2651 and 5,6,14 2652 and 0,6,15 2653 xor 3,3,4 2654 rotrdi 4,4,5 2655 xor 5,5,0 2656 and 0,14,15 2657 xor 3,3,4 2658 add 8,8,12 2659 xor 5,5,0 2660 add 12,12,3 2661 add 12,12,5 2662 2663 rotrdi 3,29,1 2664 rotrdi 4,29,8 2665 rotrdi 5,26,19 2666 rotrdi 0,26,61 2667 xor 3,3,4 2668 srdi 4,29,7 2669 xor 5,5,0 2670 srdi 0,26,6 2671 add 28,28,21 2672 xor 3,3,4 2673 xor 5,5,0 2674 ld 0,96(7) 2675 add 28,28,3 2676 add 28,28,5 2677 rotrdi 3,8,14 2678 rotrdi 4,8,18 2679 and 5,9,8 2680 xor 3,3,4 2681 add 11,11,0 2682 andc 0,10,8 2683 rotrdi 4,4,23 2684 or 5,5,0 2685 add 11,11,28 2686 xor 3,3,4 2687 add 11,11,5 2688 add 11,11,3 2689 2690 rotrdi 3,12,28 2691 rotrdi 4,12,34 2692 and 5,12,6 2693 and 0,12,14 2694 xor 3,3,4 2695 rotrdi 4,4,5 2696 xor 5,5,0 2697 and 0,6,14 2698 xor 3,3,4 2699 add 15,15,11 2700 xor 5,5,0 2701 add 11,11,3 2702 add 11,11,5 2703 2704 rotrdi 3,30,1 2705 rotrdi 4,30,8 2706 rotrdi 5,27,19 2707 rotrdi 0,27,61 2708 xor 3,3,4 2709 srdi 4,30,7 2710 xor 5,5,0 2711 srdi 0,27,6 2712 add 29,29,22 2713 xor 3,3,4 2714 xor 5,5,0 2715 ld 0,104(7) 2716 add 29,29,3 2717 add 29,29,5 2718 rotrdi 3,15,14 2719 rotrdi 4,15,18 2720 and 5,8,15 2721 xor 3,3,4 2722 add 10,10,0 2723 andc 0,9,15 2724 rotrdi 4,4,23 2725 or 5,5,0 2726 add 10,10,29 2727 xor 3,3,4 2728 add 10,10,5 2729 add 10,10,3 2730 2731 rotrdi 3,11,28 2732 rotrdi 4,11,34 2733 and 5,11,12 2734 and 0,11,6 2735 xor 3,3,4 2736 rotrdi 4,4,5 2737 xor 5,5,0 2738 and 0,12,6 2739 xor 3,3,4 2740 add 14,14,10 2741 xor 5,5,0 2742 add 10,10,3 2743 add 10,10,5 2744 2745 rotrdi 3,31,1 2746 rotrdi 4,31,8 2747 rotrdi 5,28,19 2748 rotrdi 0,28,61 2749 xor 3,3,4 2750 srdi 4,31,7 2751 xor 5,5,0 2752 srdi 0,28,6 2753 add 30,30,23 2754 xor 3,3,4 2755 xor 5,5,0 2756 ld 0,112(7) 2757 add 30,30,3 2758 add 30,30,5 2759 rotrdi 3,14,14 2760 rotrdi 4,14,18 2761 and 5,15,14 2762 xor 3,3,4 2763 add 9,9,0 2764 andc 0,8,14 2765 rotrdi 4,4,23 2766 or 5,5,0 2767 add 9,9,30 2768 xor 3,3,4 2769 add 9,9,5 2770 add 9,9,3 2771 2772 rotrdi 3,10,28 2773 rotrdi 4,10,34 2774 and 5,10,11 2775 and 0,10,12 2776 xor 3,3,4 2777 rotrdi 4,4,5 2778 xor 5,5,0 2779 and 0,11,12 2780 xor 3,3,4 2781 add 6,6,9 2782 xor 5,5,0 2783 add 9,9,3 2784 add 9,9,5 2785 2786 rotrdi 3,16,1 2787 rotrdi 4,16,8 2788 rotrdi 5,29,19 2789 rotrdi 0,29,61 2790 xor 3,3,4 2791 srdi 4,16,7 2792 xor 5,5,0 2793 srdi 0,29,6 2794 add 31,31,24 2795 xor 3,3,4 2796 xor 5,5,0 2797 ld 0,120(7) 2798 add 31,31,3 2799 add 31,31,5 2800 rotrdi 3,6,14 2801 rotrdi 4,6,18 2802 and 5,14,6 2803 xor 3,3,4 2804 add 8,8,0 2805 andc 0,15,6 2806 rotrdi 4,4,23 2807 or 5,5,0 2808 add 8,8,31 2809 xor 3,3,4 2810 add 8,8,5 2811 add 8,8,3 2812 2813 rotrdi 3,9,28 2814 rotrdi 4,9,34 2815 and 5,9,10 2816 and 0,9,11 2817 xor 3,3,4 2818 rotrdi 4,4,5 2819 xor 5,5,0 2820 and 0,10,11 2821 xor 3,3,4 2822 add 12,12,8 2823 xor 5,5,0 2824 add 8,8,3 2825 add 8,8,5 2826 2827 bdnz .Lrounds 2828 2829 ld 3,208(1) 2830 ld 31,200(1) 2831 ld 5,192(1) 2832 subi 7,7,512 2833 2834 ld 16,0(3) 2835 ld 17,8(3) 2836 ld 18,16(3) 2837 ld 19,24(3) 2838 ld 20,32(3) 2839 ld 21,40(3) 2840 ld 22,48(3) 2841 addi 31,31,128 2842 ld 23,56(3) 2843 add 8,8,16 2844 add 9,9,17 2845 std 31,200(1) 2846 add 10,10,18 2847 std 8,0(3) 2848 add 11,11,19 2849 std 9,8(3) 2850 add 12,12,20 2851 std 10,16(3) 2852 add 6,6,21 2853 std 11,24(3) 2854 add 14,14,22 2855 std 12,32(3) 2856 add 15,15,23 2857 std 6,40(3) 2858 std 14,48(3) 2859 cmpld 31,5 2860 std 15,56(3) 2861 bne .Lsha2_block_private 2862 blr 2863.long 0 2864.byte 0,12,0x14,0,0,0,0,0 2865.size zfs_sha512_ppc,.-zfs_sha512_ppc 2866.align 6 2867.LPICmeup: 2868 mflr 0 2869 bcl 20,31,$+4 2870 mflr 7 2871 addi 7,7,56 2872 mtlr 0 2873 blr 2874.long 0 2875.byte 0,12,0x14,0,0,0,0,0 2876.space 28 2877.long 0xd728ae22,0x428a2f98 2878.long 0x23ef65cd,0x71374491 2879.long 0xec4d3b2f,0xb5c0fbcf 2880.long 0x8189dbbc,0xe9b5dba5 2881.long 0xf348b538,0x3956c25b 2882.long 0xb605d019,0x59f111f1 2883.long 0xaf194f9b,0x923f82a4 2884.long 0xda6d8118,0xab1c5ed5 2885.long 0xa3030242,0xd807aa98 2886.long 0x45706fbe,0x12835b01 2887.long 0x4ee4b28c,0x243185be 2888.long 0xd5ffb4e2,0x550c7dc3 2889.long 0xf27b896f,0x72be5d74 2890.long 0x3b1696b1,0x80deb1fe 2891.long 0x25c71235,0x9bdc06a7 2892.long 0xcf692694,0xc19bf174 2893.long 0x9ef14ad2,0xe49b69c1 2894.long 0x384f25e3,0xefbe4786 2895.long 0x8b8cd5b5,0x0fc19dc6 2896.long 0x77ac9c65,0x240ca1cc 2897.long 0x592b0275,0x2de92c6f 2898.long 0x6ea6e483,0x4a7484aa 2899.long 0xbd41fbd4,0x5cb0a9dc 2900.long 0x831153b5,0x76f988da 2901.long 0xee66dfab,0x983e5152 2902.long 0x2db43210,0xa831c66d 2903.long 0x98fb213f,0xb00327c8 2904.long 0xbeef0ee4,0xbf597fc7 2905.long 0x3da88fc2,0xc6e00bf3 2906.long 0x930aa725,0xd5a79147 2907.long 0xe003826f,0x06ca6351 2908.long 0x0a0e6e70,0x14292967 2909.long 0x46d22ffc,0x27b70a85 2910.long 0x5c26c926,0x2e1b2138 2911.long 0x5ac42aed,0x4d2c6dfc 2912.long 0x9d95b3df,0x53380d13 2913.long 0x8baf63de,0x650a7354 2914.long 0x3c77b2a8,0x766a0abb 2915.long 0x47edaee6,0x81c2c92e 2916.long 0x1482353b,0x92722c85 2917.long 0x4cf10364,0xa2bfe8a1 2918.long 0xbc423001,0xa81a664b 2919.long 0xd0f89791,0xc24b8b70 2920.long 0x0654be30,0xc76c51a3 2921.long 0xd6ef5218,0xd192e819 2922.long 0x5565a910,0xd6990624 2923.long 0x5771202a,0xf40e3585 2924.long 0x32bbd1b8,0x106aa070 2925.long 0xb8d2d0c8,0x19a4c116 2926.long 0x5141ab53,0x1e376c08 2927.long 0xdf8eeb99,0x2748774c 2928.long 0xe19b48a8,0x34b0bcb5 2929.long 0xc5c95a63,0x391c0cb3 2930.long 0xe3418acb,0x4ed8aa4a 2931.long 0x7763e373,0x5b9cca4f 2932.long 0xd6b2b8a3,0x682e6ff3 2933.long 0x5defb2fc,0x748f82ee 2934.long 0x43172f60,0x78a5636f 2935.long 0xa1f0ab72,0x84c87814 2936.long 0x1a6439ec,0x8cc70208 2937.long 0x23631e28,0x90befffa 2938.long 0xde82bde9,0xa4506ceb 2939.long 0xb2c67915,0xbef9a3f7 2940.long 0xe372532b,0xc67178f2 2941.long 0xea26619c,0xca273ece 2942.long 0x21c0c207,0xd186b8c7 2943.long 0xcde0eb1e,0xeada7dd6 2944.long 0xee6ed178,0xf57d4f7f 2945.long 0x72176fba,0x06f067aa 2946.long 0xa2c898a6,0x0a637dc5 2947.long 0xbef90dae,0x113f9804 2948.long 0x131c471b,0x1b710b35 2949.long 0x23047d84,0x28db77f5 2950.long 0x40c72493,0x32caab7b 2951.long 0x15c9bebc,0x3c9ebe0a 2952.long 0x9c100d4c,0x431d67c4 2953.long 0xcb3e42b6,0x4cc5d4be 2954.long 0xfc657e2a,0x597f299c 2955.long 0x3ad6faec,0x5fcb6fab 2956.long 0x4a475817,0x6c44198c 2957 2958#endif 2959