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