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