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