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