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