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