1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83.globl bn_sqr_comba4 84.type bn_sqr_comba4,@function 85.globl bn_sqr_comba8 86.type bn_sqr_comba8,@function 87.globl bn_mul_comba4 88.type bn_mul_comba4,@function 89.globl bn_mul_comba8 90.type bn_mul_comba8,@function 91.globl bn_sub_words 92.type bn_sub_words,@function 93.globl bn_add_words 94.type bn_add_words,@function 95.globl bn_div_words 96.type bn_div_words,@function 97.globl bn_sqr_words 98.type bn_sqr_words,@function 99.globl bn_mul_words 100.type bn_mul_words,@function 101.globl bn_mul_add_words 102.type bn_mul_add_words,@function 103 104 105 106.machine "any" 107 108 109 110 111 112 113 114 115.align 4 116bn_sqr_comba4: 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 xor 0,0,0 133 134 135 136 lwz 5,0(4) 137 mullw 9,5,5 138 mulhwu 10,5,5 139 140 141 142 143 stw 9,0(3) 144 145 lwz 6,4(4) 146 mullw 7,5,6 147 mulhwu 8,5,6 148 149 addc 7,7,7 150 adde 8,8,8 151 addze 9,0 152 153 154 addc 10,7,10 155 addze 11,8 156 addze 9,9 157 158 stw 10,4(3) 159 160 mullw 7,6,6 161 mulhwu 8,6,6 162 addc 11,7,11 163 adde 9,8,9 164 addze 10,0 165 166 lwz 6,8(4) 167 mullw 7,5,6 168 mulhwu 8,5,6 169 170 addc 7,7,7 171 adde 8,8,8 172 addze 10,10 173 174 addc 11,7,11 175 adde 9,8,9 176 addze 10,10 177 stw 11,8(3) 178 179 lwz 6,12(4) 180 mullw 7,5,6 181 mulhwu 8,5,6 182 addc 7,7,7 183 adde 8,8,8 184 addze 11,0 185 186 addc 9,7,9 187 adde 10,8,10 188 addze 11,11 189 190 lwz 5,4(4) 191 lwz 6,8(4) 192 mullw 7,5,6 193 mulhwu 8,5,6 194 195 addc 7,7,7 196 adde 8,8,8 197 addze 11,11 198 addc 9,7,9 199 adde 10,8,10 200 addze 11,11 201 stw 9,12(3) 202 203 mullw 7,6,6 204 mulhwu 8,6,6 205 addc 10,7,10 206 adde 11,8,11 207 addze 9,0 208 209 lwz 6,12(4) 210 mullw 7,5,6 211 mulhwu 8,5,6 212 addc 7,7,7 213 adde 8,8,8 214 addze 9,9 215 216 addc 10,7,10 217 adde 11,8,11 218 addze 9,9 219 stw 10,16(3) 220 221 lwz 5,8(4) 222 mullw 7,5,6 223 mulhwu 8,5,6 224 addc 7,7,7 225 adde 8,8,8 226 addze 10,0 227 228 addc 11,7,11 229 adde 9,8,9 230 addze 10,10 231 stw 11,20(3) 232 233 mullw 7,6,6 234 mulhwu 8,6,6 235 addc 9,7,9 236 adde 10,8,10 237 238 stw 9,24(3) 239 stw 10,28(3) 240 blr 241.long 0 242.byte 0,12,0x14,0,0,0,2,0 243.long 0 244 245 246 247 248 249 250 251 252.align 4 253bn_sqr_comba8: 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 xor 0,0,0 274 275 276 277 lwz 5,0(4) 278 mullw 9,5,5 279 mulhwu 10,5,5 280 stw 9,0(3) 281 282 lwz 6,4(4) 283 mullw 7,5,6 284 mulhwu 8,5,6 285 286 addc 10,7,10 287 adde 11,8,0 288 addze 9,0 289 290 addc 10,7,10 291 adde 11,8,11 292 addze 9,9 293 294 stw 10,4(3) 295 296 297 mullw 7,6,6 298 mulhwu 8,6,6 299 addc 11,7,11 300 adde 9,8,9 301 addze 10,0 302 303 lwz 6,8(4) 304 mullw 7,5,6 305 mulhwu 8,5,6 306 307 addc 11,7,11 308 adde 9,8,9 309 addze 10,10 310 311 addc 11,7,11 312 adde 9,8,9 313 addze 10,10 314 315 stw 11,8(3) 316 317 lwz 6,12(4) 318 mullw 7,5,6 319 mulhwu 8,5,6 320 321 addc 9,7,9 322 adde 10,8,10 323 addze 11,0 324 325 addc 9,7,9 326 adde 10,8,10 327 addze 11,11 328 329 lwz 5,4(4) 330 lwz 6,8(4) 331 mullw 7,5,6 332 mulhwu 8,5,6 333 334 addc 9,7,9 335 adde 10,8,10 336 addze 11,11 337 338 addc 9,7,9 339 adde 10,8,10 340 addze 11,11 341 342 stw 9,12(3) 343 344 mullw 7,6,6 345 mulhwu 8,6,6 346 347 addc 10,7,10 348 adde 11,8,11 349 addze 9,0 350 351 lwz 6,12(4) 352 mullw 7,5,6 353 mulhwu 8,5,6 354 355 addc 10,7,10 356 adde 11,8,11 357 addze 9,9 358 359 addc 10,7,10 360 adde 11,8,11 361 addze 9,9 362 363 lwz 5,0(4) 364 lwz 6,16(4) 365 mullw 7,5,6 366 mulhwu 8,5,6 367 368 addc 10,7,10 369 adde 11,8,11 370 addze 9,9 371 372 addc 10,7,10 373 adde 11,8,11 374 addze 9,9 375 stw 10,16(3) 376 377 lwz 6,20(4) 378 mullw 7,5,6 379 mulhwu 8,5,6 380 381 addc 11,7,11 382 adde 9,8,9 383 addze 10,0 384 385 addc 11,7,11 386 adde 9,8,9 387 addze 10,10 388 389 lwz 5,4(4) 390 lwz 6,16(4) 391 mullw 7,5,6 392 mulhwu 8,5,6 393 394 addc 11,7,11 395 adde 9,8,9 396 addze 10,10 397 398 addc 11,7,11 399 adde 9,8,9 400 addze 10,10 401 402 lwz 5,8(4) 403 lwz 6,12(4) 404 mullw 7,5,6 405 mulhwu 8,5,6 406 407 addc 11,7,11 408 adde 9,8,9 409 addze 10,10 410 411 addc 11,7,11 412 adde 9,8,9 413 addze 10,10 414 stw 11,20(3) 415 416 mullw 7,6,6 417 mulhwu 8,6,6 418 addc 9,7,9 419 adde 10,8,10 420 addze 11,0 421 422 lwz 6,16(4) 423 mullw 7,5,6 424 mulhwu 8,5,6 425 426 addc 9,7,9 427 adde 10,8,10 428 addze 11,11 429 430 addc 9,7,9 431 adde 10,8,10 432 addze 11,11 433 434 lwz 5,4(4) 435 lwz 6,20(4) 436 mullw 7,5,6 437 mulhwu 8,5,6 438 439 addc 9,7,9 440 adde 10,8,10 441 addze 11,11 442 443 addc 9,7,9 444 adde 10,8,10 445 addze 11,11 446 447 lwz 5,0(4) 448 lwz 6,24(4) 449 mullw 7,5,6 450 mulhwu 8,5,6 451 addc 9,7,9 452 adde 10,8,10 453 addze 11,11 454 addc 9,7,9 455 adde 10,8,10 456 addze 11,11 457 stw 9,24(3) 458 459 lwz 6,28(4) 460 mullw 7,5,6 461 mulhwu 8,5,6 462 463 addc 10,7,10 464 adde 11,8,11 465 addze 9,0 466 addc 10,7,10 467 adde 11,8,11 468 addze 9,9 469 470 lwz 5,4(4) 471 lwz 6,24(4) 472 mullw 7,5,6 473 mulhwu 8,5,6 474 475 addc 10,7,10 476 adde 11,8,11 477 addze 9,9 478 addc 10,7,10 479 adde 11,8,11 480 addze 9,9 481 482 lwz 5,8(4) 483 lwz 6,20(4) 484 mullw 7,5,6 485 mulhwu 8,5,6 486 addc 10,7,10 487 adde 11,8,11 488 addze 9,9 489 addc 10,7,10 490 adde 11,8,11 491 addze 9,9 492 493 lwz 5,12(4) 494 lwz 6,16(4) 495 mullw 7,5,6 496 mulhwu 8,5,6 497 498 addc 10,7,10 499 adde 11,8,11 500 addze 9,9 501 addc 10,7,10 502 adde 11,8,11 503 addze 9,9 504 stw 10,28(3) 505 506 mullw 7,6,6 507 mulhwu 8,6,6 508 addc 11,7,11 509 adde 9,8,9 510 addze 10,0 511 512 lwz 6,20(4) 513 mullw 7,5,6 514 mulhwu 8,5,6 515 addc 11,7,11 516 adde 9,8,9 517 addze 10,10 518 addc 11,7,11 519 adde 9,8,9 520 addze 10,10 521 522 lwz 5,8(4) 523 lwz 6,24(4) 524 mullw 7,5,6 525 mulhwu 8,5,6 526 addc 11,7,11 527 adde 9,8,9 528 addze 10,10 529 530 addc 11,7,11 531 adde 9,8,9 532 addze 10,10 533 534 lwz 5,4(4) 535 lwz 6,28(4) 536 mullw 7,5,6 537 mulhwu 8,5,6 538 addc 11,7,11 539 adde 9,8,9 540 addze 10,10 541 addc 11,7,11 542 adde 9,8,9 543 addze 10,10 544 stw 11,32(3) 545 546 lwz 5,8(4) 547 mullw 7,5,6 548 mulhwu 8,5,6 549 550 addc 9,7,9 551 adde 10,8,10 552 addze 11,0 553 addc 9,7,9 554 adde 10,8,10 555 addze 11,11 556 557 lwz 5,12(4) 558 lwz 6,24(4) 559 mullw 7,5,6 560 mulhwu 8,5,6 561 addc 9,7,9 562 adde 10,8,10 563 addze 11,11 564 addc 9,7,9 565 adde 10,8,10 566 addze 11,11 567 568 lwz 5,16(4) 569 lwz 6,20(4) 570 mullw 7,5,6 571 mulhwu 8,5,6 572 addc 9,7,9 573 adde 10,8,10 574 addze 11,11 575 addc 9,7,9 576 adde 10,8,10 577 addze 11,11 578 stw 9,36(3) 579 580 mullw 7,6,6 581 mulhwu 8,6,6 582 addc 10,7,10 583 adde 11,8,11 584 addze 9,0 585 586 lwz 6,24(4) 587 mullw 7,5,6 588 mulhwu 8,5,6 589 addc 10,7,10 590 adde 11,8,11 591 addze 9,9 592 addc 10,7,10 593 adde 11,8,11 594 addze 9,9 595 596 lwz 5,12(4) 597 lwz 6,28(4) 598 mullw 7,5,6 599 mulhwu 8,5,6 600 addc 10,7,10 601 adde 11,8,11 602 addze 9,9 603 addc 10,7,10 604 adde 11,8,11 605 addze 9,9 606 stw 10,40(3) 607 608 lwz 5,16(4) 609 mullw 7,5,6 610 mulhwu 8,5,6 611 addc 11,7,11 612 adde 9,8,9 613 addze 10,0 614 addc 11,7,11 615 adde 9,8,9 616 addze 10,10 617 618 lwz 5,20(4) 619 lwz 6,24(4) 620 mullw 7,5,6 621 mulhwu 8,5,6 622 addc 11,7,11 623 adde 9,8,9 624 addze 10,10 625 addc 11,7,11 626 adde 9,8,9 627 addze 10,10 628 stw 11,44(3) 629 630 mullw 7,6,6 631 mulhwu 8,6,6 632 addc 9,7,9 633 adde 10,8,10 634 addze 11,0 635 636 lwz 6,28(4) 637 mullw 7,5,6 638 mulhwu 8,5,6 639 addc 9,7,9 640 adde 10,8,10 641 addze 11,11 642 addc 9,7,9 643 adde 10,8,10 644 addze 11,11 645 stw 9,48(3) 646 647 648 lwz 5,24(4) 649 mullw 7,5,6 650 mulhwu 8,5,6 651 addc 10,7,10 652 adde 11,8,11 653 addze 9,0 654 addc 10,7,10 655 adde 11,8,11 656 addze 9,9 657 stw 10,52(3) 658 659 mullw 7,6,6 660 mulhwu 8,6,6 661 addc 11,7,11 662 adde 9,8,9 663 stw 11,56(3) 664 stw 9, 60(3) 665 666 667 blr 668.long 0 669.byte 0,12,0x14,0,0,0,2,0 670.long 0 671 672 673 674 675 676 677 678 679.align 4 680bn_mul_comba4: 681 682 683 684 685 686 687 688 689 690 691 692 xor 0,0,0 693 694 lwz 6,0(4) 695 lwz 7,0(5) 696 mullw 10,6,7 697 mulhwu 11,6,7 698 stw 10,0(3) 699 700 lwz 7,4(5) 701 mullw 8,6,7 702 mulhwu 9,6,7 703 addc 11,8,11 704 adde 12,9,0 705 addze 10,0 706 707 lwz 6, 4(4) 708 lwz 7, 0(5) 709 mullw 8,6,7 710 mulhwu 9,6,7 711 addc 11,8,11 712 adde 12,9,12 713 addze 10,10 714 stw 11,4(3) 715 716 lwz 6,8(4) 717 mullw 8,6,7 718 mulhwu 9,6,7 719 addc 12,8,12 720 adde 10,9,10 721 addze 11,0 722 723 lwz 6,4(4) 724 lwz 7,4(5) 725 mullw 8,6,7 726 mulhwu 9,6,7 727 addc 12,8,12 728 adde 10,9,10 729 addze 11,11 730 731 lwz 6,0(4) 732 lwz 7,8(5) 733 mullw 8,6,7 734 mulhwu 9,6,7 735 addc 12,8,12 736 adde 10,9,10 737 addze 11,11 738 stw 12,8(3) 739 740 lwz 7,12(5) 741 mullw 8,6,7 742 mulhwu 9,6,7 743 addc 10,8,10 744 adde 11,9,11 745 addze 12,0 746 747 lwz 6,4(4) 748 lwz 7,8(5) 749 mullw 8,6,7 750 mulhwu 9,6,7 751 addc 10,8,10 752 adde 11,9,11 753 addze 12,12 754 755 lwz 6,8(4) 756 lwz 7,4(5) 757 mullw 8,6,7 758 mulhwu 9,6,7 759 addc 10,8,10 760 adde 11,9,11 761 addze 12,12 762 763 lwz 6,12(4) 764 lwz 7,0(5) 765 mullw 8,6,7 766 mulhwu 9,6,7 767 addc 10,8,10 768 adde 11,9,11 769 addze 12,12 770 stw 10,12(3) 771 772 lwz 7,4(5) 773 mullw 8,6,7 774 mulhwu 9,6,7 775 addc 11,8,11 776 adde 12,9,12 777 addze 10,0 778 779 lwz 6,8(4) 780 lwz 7,8(5) 781 mullw 8,6,7 782 mulhwu 9,6,7 783 addc 11,8,11 784 adde 12,9,12 785 addze 10,10 786 787 lwz 6,4(4) 788 lwz 7,12(5) 789 mullw 8,6,7 790 mulhwu 9,6,7 791 addc 11,8,11 792 adde 12,9,12 793 addze 10,10 794 stw 11,16(3) 795 796 lwz 6,8(4) 797 mullw 8,6,7 798 mulhwu 9,6,7 799 addc 12,8,12 800 adde 10,9,10 801 addze 11,0 802 803 lwz 6,12(4) 804 lwz 7,8(5) 805 mullw 8,6,7 806 mulhwu 9,6,7 807 addc 12,8,12 808 adde 10,9,10 809 addze 11,11 810 stw 12,20(3) 811 812 lwz 7,12(5) 813 mullw 8,6,7 814 mulhwu 9,6,7 815 addc 10,8,10 816 adde 11,9,11 817 818 stw 10,24(3) 819 stw 11,28(3) 820 blr 821.long 0 822.byte 0,12,0x14,0,0,0,3,0 823.long 0 824 825 826 827 828 829 830 831 832.align 4 833bn_mul_comba8: 834 835 836 837 838 839 840 841 842 843 844 845 xor 0,0,0 846 847 848 lwz 6,0(4) 849 lwz 7,0(5) 850 mullw 10,6,7 851 mulhwu 11,6,7 852 stw 10,0(3) 853 854 lwz 7,4(5) 855 mullw 8,6,7 856 mulhwu 9,6,7 857 addc 11,11,8 858 addze 12,9 859 addze 10,0 860 861 lwz 6,4(4) 862 lwz 7,0(5) 863 mullw 8,6,7 864 mulhwu 9,6,7 865 addc 11,11,8 866 adde 12,12,9 867 addze 10,10 868 stw 11,4(3) 869 870 lwz 6,8(4) 871 mullw 8,6,7 872 mulhwu 9,6,7 873 addc 12,12,8 874 adde 10,10,9 875 addze 11,0 876 877 lwz 6,4(4) 878 lwz 7,4(5) 879 mullw 8,6,7 880 mulhwu 9,6,7 881 addc 12,12,8 882 adde 10,10,9 883 addze 11,11 884 885 lwz 6,0(4) 886 lwz 7,8(5) 887 mullw 8,6,7 888 mulhwu 9,6,7 889 addc 12,12,8 890 adde 10,10,9 891 addze 11,11 892 stw 12,8(3) 893 894 lwz 7,12(5) 895 mullw 8,6,7 896 mulhwu 9,6,7 897 addc 10,10,8 898 adde 11,11,9 899 addze 12,0 900 901 lwz 6,4(4) 902 lwz 7,8(5) 903 mullw 8,6,7 904 mulhwu 9,6,7 905 addc 10,10,8 906 adde 11,11,9 907 addze 12,12 908 909 910 lwz 6,8(4) 911 lwz 7,4(5) 912 mullw 8,6,7 913 mulhwu 9,6,7 914 addc 10,10,8 915 adde 11,11,9 916 addze 12,12 917 918 lwz 6,12(4) 919 lwz 7,0(5) 920 mullw 8,6,7 921 mulhwu 9,6,7 922 addc 10,10,8 923 adde 11,11,9 924 addze 12,12 925 stw 10,12(3) 926 927 lwz 6,16(4) 928 mullw 8,6,7 929 mulhwu 9,6,7 930 addc 11,11,8 931 adde 12,12,9 932 addze 10,0 933 934 lwz 6,12(4) 935 lwz 7,4(5) 936 mullw 8,6,7 937 mulhwu 9,6,7 938 addc 11,11,8 939 adde 12,12,9 940 addze 10,10 941 942 lwz 6,8(4) 943 lwz 7,8(5) 944 mullw 8,6,7 945 mulhwu 9,6,7 946 addc 11,11,8 947 adde 12,12,9 948 addze 10,10 949 950 lwz 6,4(4) 951 lwz 7,12(5) 952 mullw 8,6,7 953 mulhwu 9,6,7 954 addc 11,11,8 955 adde 12,12,9 956 addze 10,10 957 958 lwz 6,0(4) 959 lwz 7,16(5) 960 mullw 8,6,7 961 mulhwu 9,6,7 962 addc 11,11,8 963 adde 12,12,9 964 addze 10,10 965 stw 11,16(3) 966 967 lwz 7,20(5) 968 mullw 8,6,7 969 mulhwu 9,6,7 970 addc 12,12,8 971 adde 10,10,9 972 addze 11,0 973 974 lwz 6,4(4) 975 lwz 7,16(5) 976 mullw 8,6,7 977 mulhwu 9,6,7 978 addc 12,12,8 979 adde 10,10,9 980 addze 11,11 981 982 lwz 6,8(4) 983 lwz 7,12(5) 984 mullw 8,6,7 985 mulhwu 9,6,7 986 addc 12,12,8 987 adde 10,10,9 988 addze 11,11 989 990 lwz 6,12(4) 991 lwz 7,8(5) 992 mullw 8,6,7 993 mulhwu 9,6,7 994 addc 12,12,8 995 adde 10,10,9 996 addze 11,11 997 998 lwz 6,16(4) 999 lwz 7,4(5) 1000 mullw 8,6,7 1001 mulhwu 9,6,7 1002 addc 12,12,8 1003 adde 10,10,9 1004 addze 11,11 1005 1006 lwz 6,20(4) 1007 lwz 7,0(5) 1008 mullw 8,6,7 1009 mulhwu 9,6,7 1010 addc 12,12,8 1011 adde 10,10,9 1012 addze 11,11 1013 stw 12,20(3) 1014 1015 lwz 6,24(4) 1016 mullw 8,6,7 1017 mulhwu 9,6,7 1018 addc 10,10,8 1019 adde 11,11,9 1020 addze 12,0 1021 1022 lwz 6,20(4) 1023 lwz 7,4(5) 1024 mullw 8,6,7 1025 mulhwu 9,6,7 1026 addc 10,10,8 1027 adde 11,11,9 1028 addze 12,12 1029 1030 lwz 6,16(4) 1031 lwz 7,8(5) 1032 mullw 8,6,7 1033 mulhwu 9,6,7 1034 addc 10,10,8 1035 adde 11,11,9 1036 addze 12,12 1037 1038 lwz 6,12(4) 1039 lwz 7,12(5) 1040 mullw 8,6,7 1041 mulhwu 9,6,7 1042 addc 10,10,8 1043 adde 11,11,9 1044 addze 12,12 1045 1046 lwz 6,8(4) 1047 lwz 7,16(5) 1048 mullw 8,6,7 1049 mulhwu 9,6,7 1050 addc 10,10,8 1051 adde 11,11,9 1052 addze 12,12 1053 1054 lwz 6,4(4) 1055 lwz 7,20(5) 1056 mullw 8,6,7 1057 mulhwu 9,6,7 1058 addc 10,10,8 1059 adde 11,11,9 1060 addze 12,12 1061 1062 lwz 6,0(4) 1063 lwz 7,24(5) 1064 mullw 8,6,7 1065 mulhwu 9,6,7 1066 addc 10,10,8 1067 adde 11,11,9 1068 addze 12,12 1069 stw 10,24(3) 1070 1071 lwz 7,28(5) 1072 mullw 8,6,7 1073 mulhwu 9,6,7 1074 addc 11,11,8 1075 adde 12,12,9 1076 addze 10,0 1077 1078 lwz 6,4(4) 1079 lwz 7,24(5) 1080 mullw 8,6,7 1081 mulhwu 9,6,7 1082 addc 11,11,8 1083 adde 12,12,9 1084 addze 10,10 1085 1086 lwz 6,8(4) 1087 lwz 7,20(5) 1088 mullw 8,6,7 1089 mulhwu 9,6,7 1090 addc 11,11,8 1091 adde 12,12,9 1092 addze 10,10 1093 1094 lwz 6,12(4) 1095 lwz 7,16(5) 1096 mullw 8,6,7 1097 mulhwu 9,6,7 1098 addc 11,11,8 1099 adde 12,12,9 1100 addze 10,10 1101 1102 lwz 6,16(4) 1103 lwz 7,12(5) 1104 mullw 8,6,7 1105 mulhwu 9,6,7 1106 addc 11,11,8 1107 adde 12,12,9 1108 addze 10,10 1109 1110 lwz 6,20(4) 1111 lwz 7,8(5) 1112 mullw 8,6,7 1113 mulhwu 9,6,7 1114 addc 11,11,8 1115 adde 12,12,9 1116 addze 10,10 1117 1118 lwz 6,24(4) 1119 lwz 7,4(5) 1120 mullw 8,6,7 1121 mulhwu 9,6,7 1122 addc 11,11,8 1123 adde 12,12,9 1124 addze 10,10 1125 1126 lwz 6,28(4) 1127 lwz 7,0(5) 1128 mullw 8,6,7 1129 mulhwu 9,6,7 1130 addc 11,11,8 1131 adde 12,12,9 1132 addze 10,10 1133 stw 11,28(3) 1134 1135 lwz 7,4(5) 1136 mullw 8,6,7 1137 mulhwu 9,6,7 1138 addc 12,12,8 1139 adde 10,10,9 1140 addze 11,0 1141 1142 lwz 6,24(4) 1143 lwz 7,8(5) 1144 mullw 8,6,7 1145 mulhwu 9,6,7 1146 addc 12,12,8 1147 adde 10,10,9 1148 addze 11,11 1149 1150 lwz 6,20(4) 1151 lwz 7,12(5) 1152 mullw 8,6,7 1153 mulhwu 9,6,7 1154 addc 12,12,8 1155 adde 10,10,9 1156 addze 11,11 1157 1158 lwz 6,16(4) 1159 lwz 7,16(5) 1160 mullw 8,6,7 1161 mulhwu 9,6,7 1162 addc 12,12,8 1163 adde 10,10,9 1164 addze 11,11 1165 1166 lwz 6,12(4) 1167 lwz 7,20(5) 1168 mullw 8,6,7 1169 mulhwu 9,6,7 1170 addc 12,12,8 1171 adde 10,10,9 1172 addze 11,11 1173 1174 lwz 6,8(4) 1175 lwz 7,24(5) 1176 mullw 8,6,7 1177 mulhwu 9,6,7 1178 addc 12,12,8 1179 adde 10,10,9 1180 addze 11,11 1181 1182 lwz 6,4(4) 1183 lwz 7,28(5) 1184 mullw 8,6,7 1185 mulhwu 9,6,7 1186 addc 12,12,8 1187 adde 10,10,9 1188 addze 11,11 1189 stw 12,32(3) 1190 1191 lwz 6,8(4) 1192 mullw 8,6,7 1193 mulhwu 9,6,7 1194 addc 10,10,8 1195 adde 11,11,9 1196 addze 12,0 1197 1198 lwz 6,12(4) 1199 lwz 7,24(5) 1200 mullw 8,6,7 1201 mulhwu 9,6,7 1202 addc 10,10,8 1203 adde 11,11,9 1204 addze 12,12 1205 1206 lwz 6,16(4) 1207 lwz 7,20(5) 1208 mullw 8,6,7 1209 mulhwu 9,6,7 1210 addc 10,10,8 1211 adde 11,11,9 1212 addze 12,12 1213 1214 lwz 6,20(4) 1215 lwz 7,16(5) 1216 mullw 8,6,7 1217 mulhwu 9,6,7 1218 addc 10,10,8 1219 adde 11,11,9 1220 addze 12,12 1221 1222 lwz 6,24(4) 1223 lwz 7,12(5) 1224 mullw 8,6,7 1225 mulhwu 9,6,7 1226 addc 10,10,8 1227 adde 11,11,9 1228 addze 12,12 1229 1230 lwz 6,28(4) 1231 lwz 7,8(5) 1232 mullw 8,6,7 1233 mulhwu 9,6,7 1234 addc 10,10,8 1235 adde 11,11,9 1236 addze 12,12 1237 stw 10,36(3) 1238 1239 lwz 7,12(5) 1240 mullw 8,6,7 1241 mulhwu 9,6,7 1242 addc 11,11,8 1243 adde 12,12,9 1244 addze 10,0 1245 1246 lwz 6,24(4) 1247 lwz 7,16(5) 1248 mullw 8,6,7 1249 mulhwu 9,6,7 1250 addc 11,11,8 1251 adde 12,12,9 1252 addze 10,10 1253 1254 lwz 6,20(4) 1255 lwz 7,20(5) 1256 mullw 8,6,7 1257 mulhwu 9,6,7 1258 addc 11,11,8 1259 adde 12,12,9 1260 addze 10,10 1261 1262 lwz 6,16(4) 1263 lwz 7,24(5) 1264 mullw 8,6,7 1265 mulhwu 9,6,7 1266 addc 11,11,8 1267 adde 12,12,9 1268 addze 10,10 1269 1270 lwz 6,12(4) 1271 lwz 7,28(5) 1272 mullw 8,6,7 1273 mulhwu 9,6,7 1274 addc 11,11,8 1275 adde 12,12,9 1276 addze 10,10 1277 stw 11,40(3) 1278 1279 lwz 6,16(4) 1280 mullw 8,6,7 1281 mulhwu 9,6,7 1282 addc 12,12,8 1283 adde 10,10,9 1284 addze 11,0 1285 1286 lwz 6,20(4) 1287 lwz 7,24(5) 1288 mullw 8,6,7 1289 mulhwu 9,6,7 1290 addc 12,12,8 1291 adde 10,10,9 1292 addze 11,11 1293 1294 lwz 6,24(4) 1295 lwz 7,20(5) 1296 mullw 8,6,7 1297 mulhwu 9,6,7 1298 addc 12,12,8 1299 adde 10,10,9 1300 addze 11,11 1301 1302 lwz 6,28(4) 1303 lwz 7,16(5) 1304 mullw 8,6,7 1305 mulhwu 9,6,7 1306 addc 12,12,8 1307 adde 10,10,9 1308 addze 11,11 1309 stw 12,44(3) 1310 1311 lwz 7,20(5) 1312 mullw 8,6,7 1313 mulhwu 9,6,7 1314 addc 10,10,8 1315 adde 11,11,9 1316 addze 12,0 1317 1318 lwz 6,24(4) 1319 lwz 7,24(5) 1320 mullw 8,6,7 1321 mulhwu 9,6,7 1322 addc 10,10,8 1323 adde 11,11,9 1324 addze 12,12 1325 1326 lwz 6,20(4) 1327 lwz 7,28(5) 1328 mullw 8,6,7 1329 mulhwu 9,6,7 1330 addc 10,10,8 1331 adde 11,11,9 1332 addze 12,12 1333 stw 10,48(3) 1334 1335 lwz 6,24(4) 1336 mullw 8,6,7 1337 mulhwu 9,6,7 1338 addc 11,11,8 1339 adde 12,12,9 1340 addze 10,0 1341 1342 lwz 6,28(4) 1343 lwz 7,24(5) 1344 mullw 8,6,7 1345 mulhwu 9,6,7 1346 addc 11,11,8 1347 adde 12,12,9 1348 addze 10,10 1349 stw 11,52(3) 1350 1351 lwz 7,28(5) 1352 mullw 8,6,7 1353 mulhwu 9,6,7 1354 addc 12,12,8 1355 adde 10,10,9 1356 stw 12,56(3) 1357 stw 10,60(3) 1358 blr 1359.long 0 1360.byte 0,12,0x14,0,0,0,3,0 1361.long 0 1362 1363 1364 1365 1366 1367 1368 1369 1370.align 4 1371bn_sub_words: 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 xor 0,0,0 1386 1387 1388 1389 subfc. 7,0,6 1390 1391 1392 beq .Lppcasm_sub_adios 1393 addi 4,4,-4 1394 addi 3,3,-4 1395 addi 5,5,-4 1396 mtctr 6 1397.Lppcasm_sub_mainloop: 1398 lwzu 7,4(4) 1399 lwzu 8,4(5) 1400 subfe 6,8,7 1401 1402 1403 stwu 6,4(3) 1404 bdnz+ .Lppcasm_sub_mainloop 1405.Lppcasm_sub_adios: 1406 subfze 3,0 1407 andi. 3,3,1 1408 blr 1409.long 0 1410.byte 0,12,0x14,0,0,0,4,0 1411.long 0 1412 1413 1414 1415 1416 1417 1418 1419 1420.align 4 1421bn_add_words: 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 xor 0,0,0 1436 1437 1438 1439 addic. 6,6,0 1440 beq .Lppcasm_add_adios 1441 addi 4,4,-4 1442 addi 3,3,-4 1443 addi 5,5,-4 1444 mtctr 6 1445.Lppcasm_add_mainloop: 1446 lwzu 7,4(4) 1447 lwzu 8,4(5) 1448 adde 8,7,8 1449 stwu 8,4(3) 1450 bdnz+ .Lppcasm_add_mainloop 1451.Lppcasm_add_adios: 1452 addze 3,0 1453 blr 1454.long 0 1455.byte 0,12,0x14,0,0,0,4,0 1456.long 0 1457 1458 1459 1460 1461 1462 1463 1464 1465.align 4 1466bn_div_words: 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 cmplwi 0,5,0 1479 bne .Lppcasm_div1 1480 li 3,-1 1481 blr 1482.Lppcasm_div1: 1483 xor 0,0,0 1484 li 8,32 1485 cntlzw. 7,5 1486 beq .Lppcasm_div2 1487 subf 8,7,8 1488 srw. 9,3,8 1489 tw 16,9,0 1490.Lppcasm_div2: 1491 .long 0x7c032840 1492 blt .Lppcasm_div3 1493 subf 3,5,3 1494.Lppcasm_div3: 1495 cmpi 0,0,7,0 1496 beq .Lppcasm_div4 1497 slw 3,3,7 1498 srw 8,4,8 1499 slw 5,5,7 1500 or 3,3,8 1501 slw 4,4,7 1502.Lppcasm_div4: 1503 srwi 9,5,16 1504 1505 1506 li 6,2 1507 mtctr 6 1508.Lppcasm_divouterloop: 1509 srwi 8,3,16 1510 srwi 11,4,16 1511 1512 .long 0x7c084840 1513 bne .Lppcasm_div5 1514 1515 li 8,-1 1516 clrlwi 8,8,16 1517 b .Lppcasm_div6 1518.Lppcasm_div5: 1519 divwu 8,3,9 1520.Lppcasm_div6: 1521 mullw 12,9,8 1522 clrlwi 10,5,16 1523 mullw 6,8,10 1524 1525.Lppcasm_divinnerloop: 1526 subf 10,12,3 1527 srwi 7,10,16 1528 addic. 7,7,0 1529 1530 1531 1532 slwi 7,10,16 1533 or 7,7,11 1534 .long 0x7c863840 1535 bne .Lppcasm_divinnerexit 1536 ble 1,.Lppcasm_divinnerexit 1537 addi 8,8,-1 1538 subf 12,9,12 1539 clrlwi 10,5,16 1540 subf 6,10,6 1541 b .Lppcasm_divinnerloop 1542.Lppcasm_divinnerexit: 1543 srwi 10,6,16 1544 slwi 11,6,16 1545 .long 0x7c845840 1546 add 12,12,10 1547 bge 1,.Lppcasm_div7 1548 addi 12,12,1 1549.Lppcasm_div7: 1550 subf 11,11,4 1551 .long 0x7c836040 1552 bge 1,.Lppcasm_div8 1553 addi 8,8,-1 1554 add 3,5,3 1555.Lppcasm_div8: 1556 subf 12,12,3 1557 slwi 4,11,16 1558 1559 1560 1561 insrwi 11,12,16,16 1562 rotlwi 3,11,16 1563 bdz .Lppcasm_div9 1564 slwi 0,8,16 1565 b .Lppcasm_divouterloop 1566.Lppcasm_div9: 1567 or 3,8,0 1568 blr 1569.long 0 1570.byte 0,12,0x14,0,0,0,3,0 1571.long 0 1572 1573 1574 1575 1576 1577 1578 1579.align 4 1580bn_sqr_words: 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 addic. 5,5,0 1596 beq .Lppcasm_sqr_adios 1597 addi 4,4,-4 1598 addi 3,3,-4 1599 mtctr 5 1600.Lppcasm_sqr_mainloop: 1601 1602 lwzu 6,4(4) 1603 mullw 7,6,6 1604 mulhwu 8,6,6 1605 stwu 7,4(3) 1606 stwu 8,4(3) 1607 bdnz+ .Lppcasm_sqr_mainloop 1608.Lppcasm_sqr_adios: 1609 blr 1610.long 0 1611.byte 0,12,0x14,0,0,0,3,0 1612.long 0 1613 1614 1615 1616 1617 1618 1619 1620 1621.align 4 1622bn_mul_words: 1623 1624 1625 1626 1627 1628 1629 1630 xor 0,0,0 1631 xor 12,12,12 1632 rlwinm. 7,5,30,2,31 1633 beq .Lppcasm_mw_REM 1634 mtctr 7 1635.Lppcasm_mw_LOOP: 1636 1637 lwz 8,0(4) 1638 mullw 9,6,8 1639 mulhwu 10,6,8 1640 addc 9,9,12 1641 1642 1643 1644 1645 stw 9,0(3) 1646 1647 lwz 8,4(4) 1648 mullw 11,6,8 1649 mulhwu 12,6,8 1650 adde 11,11,10 1651 1652 stw 11,4(3) 1653 1654 lwz 8,8(4) 1655 mullw 9,6,8 1656 mulhwu 10,6,8 1657 adde 9,9,12 1658 1659 stw 9,8(3) 1660 1661 lwz 8,12(4) 1662 mullw 11,6,8 1663 mulhwu 12,6,8 1664 adde 11,11,10 1665 addze 12,12 1666 1667 stw 11,12(3) 1668 1669 addi 3,3,16 1670 addi 4,4,16 1671 bdnz+ .Lppcasm_mw_LOOP 1672 1673.Lppcasm_mw_REM: 1674 andi. 5,5,0x3 1675 beq .Lppcasm_mw_OVER 1676 1677 lwz 8,0(4) 1678 mullw 9,6,8 1679 mulhwu 10,6,8 1680 addc 9,9,12 1681 addze 10,10 1682 stw 9,0(3) 1683 addi 12,10,0 1684 1685 addi 5,5,-1 1686 cmpli 0,0,5,0 1687 beq .Lppcasm_mw_OVER 1688 1689 1690 1691 lwz 8,4(4) 1692 mullw 9,6,8 1693 mulhwu 10,6,8 1694 addc 9,9,12 1695 addze 10,10 1696 stw 9,4(3) 1697 addi 12,10,0 1698 1699 addi 5,5,-1 1700 cmpli 0,0,5,0 1701 beq .Lppcasm_mw_OVER 1702 1703 1704 lwz 8,8(4) 1705 mullw 9,6,8 1706 mulhwu 10,6,8 1707 addc 9,9,12 1708 addze 10,10 1709 stw 9,8(3) 1710 addi 12,10,0 1711 1712.Lppcasm_mw_OVER: 1713 addi 3,12,0 1714 blr 1715.long 0 1716.byte 0,12,0x14,0,0,0,4,0 1717.long 0 1718 1719 1720 1721 1722 1723 1724 1725 1726.align 4 1727bn_mul_add_words: 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 xor 0,0,0 1739 xor 12,12,12 1740 rlwinm. 7,5,30,2,31 1741 beq .Lppcasm_maw_leftover 1742 mtctr 7 1743.Lppcasm_maw_mainloop: 1744 1745 lwz 8,0(4) 1746 lwz 11,0(3) 1747 mullw 9,6,8 1748 mulhwu 10,6,8 1749 addc 9,9,12 1750 addze 10,10 1751 addc 9,9,11 1752 1753 1754 1755 1756 1757 1758 stw 9,0(3) 1759 1760 1761 lwz 8,4(4) 1762 lwz 9,4(3) 1763 mullw 11,6,8 1764 mulhwu 12,6,8 1765 adde 11,11,10 1766 addze 12,12 1767 addc 11,11,9 1768 1769 stw 11,4(3) 1770 1771 1772 lwz 8,8(4) 1773 mullw 9,6,8 1774 lwz 11,8(3) 1775 mulhwu 10,6,8 1776 adde 9,9,12 1777 addze 10,10 1778 addc 9,9,11 1779 1780 stw 9,8(3) 1781 1782 1783 lwz 8,12(4) 1784 mullw 11,6,8 1785 lwz 9,12(3) 1786 mulhwu 12,6,8 1787 adde 11,11,10 1788 addze 12,12 1789 addc 11,11,9 1790 addze 12,12 1791 stw 11,12(3) 1792 addi 3,3,16 1793 addi 4,4,16 1794 bdnz+ .Lppcasm_maw_mainloop 1795 1796.Lppcasm_maw_leftover: 1797 andi. 5,5,0x3 1798 beq .Lppcasm_maw_adios 1799 addi 3,3,-4 1800 addi 4,4,-4 1801 1802 mtctr 5 1803 lwzu 8,4(4) 1804 mullw 9,6,8 1805 mulhwu 10,6,8 1806 lwzu 11,4(3) 1807 addc 9,9,11 1808 addze 10,10 1809 addc 9,9,12 1810 addze 12,10 1811 stw 9,0(3) 1812 1813 bdz .Lppcasm_maw_adios 1814 1815 lwzu 8,4(4) 1816 mullw 9,6,8 1817 mulhwu 10,6,8 1818 lwzu 11,4(3) 1819 addc 9,9,11 1820 addze 10,10 1821 addc 9,9,12 1822 addze 12,10 1823 stw 9,0(3) 1824 1825 bdz .Lppcasm_maw_adios 1826 1827 lwzu 8,4(4) 1828 mullw 9,6,8 1829 mulhwu 10,6,8 1830 lwzu 11,4(3) 1831 addc 9,9,11 1832 addze 10,10 1833 addc 9,9,12 1834 addze 12,10 1835 stw 9,0(3) 1836 1837.Lppcasm_maw_adios: 1838 addi 3,12,0 1839 blr 1840.long 0 1841.byte 0,12,0x14,0,0,0,4,0 1842.long 0 1843.align 4 1844