1.machine "any" 2.text 3 4.globl bn_mul_mont_fpu64 5.type bn_mul_mont_fpu64,@function 6.section ".opd","aw" 7.align 3 8bn_mul_mont_fpu64: 9.quad .bn_mul_mont_fpu64,.TOC.@tocbase,0 10.previous 11.align 5 12.bn_mul_mont_fpu64: 13 cmpwi 8,3 14 mr 9,3 15 li 3,0 16 bltlr 17 andi. 0,8,1 18 bnelr 19 20 slwi 8,8,3 21 li 12,-4096 22 slwi 10,8,2 23 add 10,10,8 24 addi 10,10,552 25 subf 10,10,1 26 and 10,10,12 27 subf 10,1,10 28 mr 12,1 29 stdux 1,1,10 30 31 std 19,-200(12) 32 std 20,-192(12) 33 std 21,-184(12) 34 std 22,-176(12) 35 std 23,-168(12) 36 std 24,-160(12) 37 std 25,-152(12) 38 std 26,-144(12) 39 std 27,-136(12) 40 std 28,-128(12) 41 std 29,-120(12) 42 std 30,-112(12) 43 std 31,-104(12) 44 stfd 20,-96(12) 45 stfd 21,-88(12) 46 stfd 22,-80(12) 47 stfd 23,-72(12) 48 stfd 24,-64(12) 49 stfd 25,-56(12) 50 stfd 26,-48(12) 51 stfd 27,-40(12) 52 stfd 28,-32(12) 53 stfd 29,-24(12) 54 stfd 30,-16(12) 55 stfd 31,-8(12) 56 57 addi 10,1,264 58 li 12,-64 59 add 22,10,8 60 and 22,22,12 61 62 addi 22,22,-8 63 srwi 11,8,4 64 addi 11,11,-1 65 addi 10,1,184 66 li 0,0 67 mtctr 11 68 ld 23,0(4) 69 ld 27,0(5) 70 ld 7,0(7) 71 72 mulld 31,23,27 73 74 rldicl 24,27,0,48 75 rldicl 25,27,48,48 76 rldicl 26,27,32,48 77 rldicl 27,27,16,48 78 std 24,64(1) 79 std 25,72(1) 80 std 26,80(1) 81 std 27,88(1) 82 83 mulld 31,31,7 84 85 rldicl 28,31,0,48 86 rldicl 29,31,48,48 87 rldicl 30,31,32,48 88 rldicl 31,31,16,48 89 std 28,96(1) 90 std 29,104(1) 91 std 30,112(1) 92 std 31,120(1) 93 94 rldicl 24,23,0,32 95 rldicl 25,23,32,32 96 lwz 26,12(4) 97 lwz 27,8(4) 98 lwz 28,4(6) 99 lwz 29,0(6) 100 lwz 30,12(6) 101 lwz 31,8(6) 102 lfd 0,64(1) 103 lfd 1,72(1) 104 lfd 2,80(1) 105 lfd 3,88(1) 106 lfd 4,96(1) 107 lfd 5,104(1) 108 lfd 6,112(1) 109 lfd 7,120(1) 110 std 24,128(1) 111 std 25,136(1) 112 std 26,144(1) 113 std 27,152(1) 114 std 28,160(1) 115 std 29,168(1) 116 std 30,176(1) 117 std 31,184(1) 118 fcfid 0,0 119 fcfid 1,1 120 fcfid 2,2 121 fcfid 3,3 122 fcfid 4,4 123 fcfid 5,5 124 fcfid 6,6 125 fcfid 7,7 126 127 lfd 10,128(1) 128 lfd 11,136(1) 129 lfd 12,144(1) 130 lfd 13,152(1) 131 lfd 20,160(1) 132 lfd 21,168(1) 133 lfd 22,176(1) 134 lfd 23,184(1) 135 fcfid 10,10 136 fcfid 11,11 137 fcfid 12,12 138 fcfid 13,13 139 fcfid 20,20 140 fcfid 21,21 141 fcfid 22,22 142 fcfid 23,23 143 addi 4,4,16 144 addi 6,6,16 145 146 fmul 26,11,0 147 fmul 27,11,1 148 stfd 10,8(22) 149 stfd 11,16(22) 150 fmul 28,12,0 151 fmul 29,12,1 152 stfd 12,24(22) 153 stfd 13,32(22) 154 fmul 30,13,0 155 fmul 31,13,1 156 stfd 20,40(22) 157 stfd 21,48(22) 158 fmul 24,10,0 159 fmul 25,10,1 160 stfd 22,56(22) 161 stfdu 23,64(22) 162 163 fmadd 26,10,2,26 164 fmadd 27,10,3,27 165 fmadd 28,11,2,28 166 fmadd 29,11,3,29 167 fmadd 30,12,2,30 168 fmadd 31,12,3,31 169 fmul 8,13,2 170 fmul 9,13,3 171 172 fmadd 26,21,4,26 173 fmadd 27,21,5,27 174 fmadd 28,22,4,28 175 fmadd 29,22,5,29 176 fmadd 30,23,4,30 177 fmadd 31,23,5,31 178 fmadd 24,20,4,24 179 fmadd 25,20,5,25 180 181 fmadd 26,20,6,26 182 fmadd 27,20,7,27 183 fmadd 28,21,6,28 184 fmadd 29,21,7,29 185 fmadd 30,22,6,30 186 fmadd 31,22,7,31 187 fmadd 8,23,6,8 188 fmadd 9,23,7,9 189 190 fctid 24,24 191 fctid 25,25 192 fctid 26,26 193 fctid 27,27 194 fctid 28,28 195 fctid 29,29 196 fctid 30,30 197 fctid 31,31 198 199 stfd 24,64(1) 200 stfd 25,72(1) 201 stfd 26,80(1) 202 stfd 27,88(1) 203 stfd 28,96(1) 204 stfd 29,104(1) 205 stfd 30,112(1) 206 stfd 31,120(1) 207 208.align 5 209.L1st: 210 lwz 24,4(4) 211 lwz 25,0(4) 212 lwz 26,12(4) 213 lwz 27,8(4) 214 lwz 28,4(6) 215 lwz 29,0(6) 216 lwz 30,12(6) 217 lwz 31,8(6) 218 std 24,128(1) 219 std 25,136(1) 220 std 26,144(1) 221 std 27,152(1) 222 std 28,160(1) 223 std 29,168(1) 224 std 30,176(1) 225 std 31,184(1) 226 ld 24,64(1) 227 ld 25,72(1) 228 ld 26,80(1) 229 ld 27,88(1) 230 ld 28,96(1) 231 ld 29,104(1) 232 ld 30,112(1) 233 ld 31,120(1) 234 lfd 10,128(1) 235 lfd 11,136(1) 236 lfd 12,144(1) 237 lfd 13,152(1) 238 lfd 20,160(1) 239 lfd 21,168(1) 240 lfd 22,176(1) 241 lfd 23,184(1) 242 fcfid 10,10 243 fcfid 11,11 244 fcfid 12,12 245 fcfid 13,13 246 fcfid 20,20 247 fcfid 21,21 248 fcfid 22,22 249 fcfid 23,23 250 addi 4,4,16 251 addi 6,6,16 252 253 fmul 26,11,0 254 fmul 27,11,1 255 fmul 28,12,0 256 fmul 29,12,1 257 stfd 10,8(22) 258 stfd 11,16(22) 259 fmul 30,13,0 260 fmul 31,13,1 261 fmadd 24,10,0,8 262 fmadd 25,10,1,9 263 stfd 12,24(22) 264 stfd 13,32(22) 265 fmadd 26,10,2,26 266 fmadd 27,10,3,27 267 fmadd 28,11,2,28 268 fmadd 29,11,3,29 269 stfd 20,40(22) 270 stfd 21,48(22) 271 fmadd 30,12,2,30 272 fmadd 31,12,3,31 273 add 24,24,0 274 fmul 8,13,2 275 fmul 9,13,3 276 stfd 22,56(22) 277 stfdu 23,64(22) 278 srdi 0,24,16 279 add 25,25,0 280 srdi 0,25,16 281 282 fmadd 26,21,4,26 283 fmadd 27,21,5,27 284 insrdi 24,25,16,32 285 fmadd 28,22,4,28 286 fmadd 29,22,5,29 287 add 26,26,0 288 fmadd 30,23,4,30 289 fmadd 31,23,5,31 290 srdi 0,26,16 291 fmadd 24,20,4,24 292 fmadd 25,20,5,25 293 insrdi 24,26,16,16 294 add 27,27,0 295 srdi 0,27,16 296 297 fmadd 26,20,6,26 298 fmadd 27,20,7,27 299 insrdi 24,27,16,0 300 fmadd 28,21,6,28 301 fmadd 29,21,7,29 302 add 28,28,0 303 fmadd 30,22,6,30 304 fmadd 31,22,7,31 305 srdi 0,28,16 306 fmadd 8,23,6,8 307 fmadd 9,23,7,9 308 add 29,29,0 309 srdi 0,29,16 310 insrdi 28,29,16,32 311 312 fctid 24,24 313 fctid 25,25 314 add 30,30,0 315 fctid 26,26 316 fctid 27,27 317 srdi 0,30,16 318 fctid 28,28 319 fctid 29,29 320 insrdi 28,30,16,16 321 fctid 30,30 322 fctid 31,31 323 add 31,31,0 324 insrdi 28,31,16,0 325 srdi 0,31,16 326 327 stfd 24,64(1) 328 stfd 25,72(1) 329 stfd 26,80(1) 330 stfd 27,88(1) 331 stfd 28,96(1) 332 stfd 29,104(1) 333 stfd 30,112(1) 334 stfd 31,120(1) 335 std 24,8(10) 336 stdu 28,16(10) 337 bc 16,0,.L1st 338 339 fctid 8,8 340 fctid 9,9 341 ld 24,64(1) 342 ld 25,72(1) 343 ld 26,80(1) 344 ld 27,88(1) 345 ld 28,96(1) 346 ld 29,104(1) 347 ld 30,112(1) 348 ld 31,120(1) 349 stfd 8,128(1) 350 stfd 9,136(1) 351 352 add 24,24,0 353 srdi 0,24,16 354 add 25,25,0 355 srdi 0,25,16 356 insrdi 24,25,16,32 357 add 26,26,0 358 srdi 0,26,16 359 insrdi 24,26,16,16 360 add 27,27,0 361 srdi 0,27,16 362 insrdi 24,27,16,0 363 add 28,28,0 364 srdi 0,28,16 365 add 29,29,0 366 srdi 0,29,16 367 insrdi 28,29,16,32 368 add 30,30,0 369 srdi 0,30,16 370 insrdi 28,30,16,16 371 add 31,31,0 372 insrdi 28,31,16,0 373 srdi 0,31,16 374 ld 30,128(1) 375 ld 31,136(1) 376 377 std 24,8(10) 378 stdu 28,16(10) 379 380 add 30,30,0 381 srdi 0,30,16 382 add 31,31,0 383 insrdi 30,31,48,0 384 srdi 3,31,48 385 std 30,8(10) 386 slwi 31,8,2 387 subf 22,31,22 388 389 li 12,8 390.align 5 391.Louter: 392 addi 10,1,192 393 li 0,0 394 mtctr 11 395 ldx 27,5,12 396 397 ld 30,200(1) 398 mulld 31,23,27 399 add 31,31,30 400 401 rldicl 24,27,0,48 402 rldicl 25,27,48,48 403 rldicl 26,27,32,48 404 rldicl 27,27,16,48 405 std 24,64(1) 406 std 25,72(1) 407 std 26,80(1) 408 std 27,88(1) 409 410 mulld 31,31,7 411 412 rldicl 28,31,0,48 413 rldicl 29,31,48,48 414 rldicl 30,31,32,48 415 rldicl 31,31,16,48 416 std 28,96(1) 417 std 29,104(1) 418 std 30,112(1) 419 std 31,120(1) 420 lfd 10,8(22) 421 lfd 11,16(22) 422 lfd 12,24(22) 423 lfd 13,32(22) 424 lfd 20,40(22) 425 lfd 21,48(22) 426 lfd 22,56(22) 427 lfdu 23,64(22) 428 429 lfd 0,64(1) 430 lfd 1,72(1) 431 lfd 2,80(1) 432 lfd 3,88(1) 433 lfd 4,96(1) 434 lfd 5,104(1) 435 lfd 6,112(1) 436 lfd 7,120(1) 437 438 fcfid 0,0 439 fcfid 1,1 440 fcfid 2,2 441 fcfid 3,3 442 fcfid 4,4 443 fcfid 5,5 444 fcfid 6,6 445 fcfid 7,7 446 447 fmul 26,11,0 448 fmul 27,11,1 449 fmul 28,12,0 450 fmul 29,12,1 451 fmul 30,13,0 452 fmul 31,13,1 453 fmul 24,10,0 454 fmul 25,10,1 455 456 fmadd 26,10,2,26 457 fmadd 27,10,3,27 458 fmadd 28,11,2,28 459 fmadd 29,11,3,29 460 fmadd 30,12,2,30 461 fmadd 31,12,3,31 462 fmul 8,13,2 463 fmul 9,13,3 464 465 fmadd 26,21,4,26 466 fmadd 27,21,5,27 467 lfd 10,8(22) 468 lfd 11,16(22) 469 fmadd 28,22,4,28 470 fmadd 29,22,5,29 471 lfd 12,24(22) 472 lfd 13,32(22) 473 fmadd 30,23,4,30 474 fmadd 31,23,5,31 475 fmadd 24,20,4,24 476 fmadd 25,20,5,25 477 478 fmadd 26,20,6,26 479 fmadd 27,20,7,27 480 fmadd 28,21,6,28 481 fmadd 29,21,7,29 482 fmadd 30,22,6,30 483 fmadd 31,22,7,31 484 fmadd 8,23,6,8 485 fmadd 9,23,7,9 486 487 fctid 24,24 488 fctid 25,25 489 fctid 26,26 490 fctid 27,27 491 fctid 28,28 492 fctid 29,29 493 fctid 30,30 494 fctid 31,31 495 496 stfd 24,64(1) 497 stfd 25,72(1) 498 stfd 26,80(1) 499 stfd 27,88(1) 500 stfd 28,96(1) 501 stfd 29,104(1) 502 stfd 30,112(1) 503 stfd 31,120(1) 504 505.align 5 506.Linner: 507 fmul 26,11,0 508 fmul 27,11,1 509 fmul 28,12,0 510 fmul 29,12,1 511 lfd 20,40(22) 512 lfd 21,48(22) 513 fmul 30,13,0 514 fmul 31,13,1 515 fmadd 24,10,0,8 516 fmadd 25,10,1,9 517 lfd 22,56(22) 518 lfdu 23,64(22) 519 520 fmadd 26,10,2,26 521 fmadd 27,10,3,27 522 fmadd 28,11,2,28 523 fmadd 29,11,3,29 524 lfd 10,8(22) 525 lfd 11,16(22) 526 fmadd 30,12,2,30 527 fmadd 31,12,3,31 528 fmul 8,13,2 529 fmul 9,13,3 530 lfd 12,24(22) 531 lfd 13,32(22) 532 fmadd 26,21,4,26 533 fmadd 27,21,5,27 534 ld 24,64(1) 535 ld 25,72(1) 536 fmadd 28,22,4,28 537 fmadd 29,22,5,29 538 ld 26,80(1) 539 ld 27,88(1) 540 fmadd 30,23,4,30 541 fmadd 31,23,5,31 542 add 24,24,0 543 ld 28,96(1) 544 ld 29,104(1) 545 fmadd 24,20,4,24 546 fmadd 25,20,5,25 547 srdi 0,24,16 548 add 25,25,0 549 srdi 0,25,16 550 ld 30,112(1) 551 ld 31,120(1) 552 553 fmadd 26,20,6,26 554 fmadd 27,20,7,27 555 insrdi 24,25,16,32 556 ld 25,8(10) 557 fmadd 28,21,6,28 558 fmadd 29,21,7,29 559 add 26,26,0 560 fmadd 30,22,6,30 561 fmadd 31,22,7,31 562 srdi 0,26,16 563 insrdi 24,26,16,16 564 fmadd 8,23,6,8 565 fmadd 9,23,7,9 566 add 27,27,0 567 ldu 26,16(10) 568 srdi 0,27,16 569 insrdi 24,27,16,0 570 add 28,28,0 571 572 fctid 24,24 573 fctid 25,25 574 srdi 0,28,16 575 fctid 26,26 576 fctid 27,27 577 add 29,29,0 578 fctid 28,28 579 fctid 29,29 580 srdi 0,29,16 581 insrdi 28,29,16,32 582 fctid 30,30 583 fctid 31,31 584 add 30,30,0 585 srdi 0,30,16 586 insrdi 28,30,16,16 587 588 stfd 24,64(1) 589 stfd 25,72(1) 590 add 31,31,0 591 addc 27,24,25 592 stfd 26,80(1) 593 stfd 27,88(1) 594 insrdi 28,31,16,0 595 srdi 0,31,16 596 stfd 28,96(1) 597 stfd 29,104(1) 598 adde 29,28,26 599 stfd 30,112(1) 600 stfd 31,120(1) 601 addze 0,0 602 std 27,-16(10) 603 std 29,-8(10) 604 bc 16,0,.Linner 605 606 fctid 8,8 607 fctid 9,9 608 ld 24,64(1) 609 ld 25,72(1) 610 ld 26,80(1) 611 ld 27,88(1) 612 ld 28,96(1) 613 ld 29,104(1) 614 ld 30,112(1) 615 ld 31,120(1) 616 stfd 8,128(1) 617 stfd 9,136(1) 618 619 add 24,24,0 620 srdi 0,24,16 621 add 25,25,0 622 srdi 0,25,16 623 insrdi 24,25,16,32 624 add 26,26,0 625 ld 25,8(10) 626 srdi 0,26,16 627 insrdi 24,26,16,16 628 add 27,27,0 629 ldu 26,16(10) 630 srdi 0,27,16 631 insrdi 24,27,16,0 632 add 28,28,0 633 srdi 0,28,16 634 add 29,29,0 635 srdi 0,29,16 636 insrdi 28,29,16,32 637 add 30,30,0 638 srdi 0,30,16 639 insrdi 28,30,16,16 640 add 31,31,0 641 insrdi 28,31,16,0 642 srdi 0,31,16 643 ld 30,128(1) 644 ld 31,136(1) 645 646 addc 27,24,25 647 adde 29,28,26 648 addze 0,0 649 650 std 27,-16(10) 651 std 29,-8(10) 652 653 add 0,0,3 654 add 30,30,0 655 srdi 0,30,16 656 add 31,31,0 657 insrdi 30,31,48,0 658 srdi 3,31,48 659 std 30,0(10) 660 slwi 31,8,2 661 addi 12,12,8 662 subf 22,31,22 663 cmpw 12,8 664 blt- .Louter 665 subf 6,8,6 666 addi 11,11,1 667 subfc 12,12,12 668 addi 10,1,200 669 addi 28,1,208 670 addi 29,6,8 671 addi 30,9,8 672 mtctr 11 673 674.align 4 675.Lsub: ldx 24,10,12 676 ldx 25,6,12 677 ldx 26,28,12 678 ldx 27,29,12 679 subfe 24,25,24 680 subfe 26,27,26 681 stdx 24,9,12 682 stdx 26,30,12 683 addi 12,12,16 684 bc 16,0,.Lsub 685 686 li 12,0 687 subfe 3,12,3 688 mtctr 11 689 690.align 4 691.Lcopy: 692 ldx 24,10,12 693 ldx 25,28,12 694 ldx 26,9,12 695 ldx 27,30,12 696 std 12,8(22) 697 std 12,16(22) 698 std 12,24(22) 699 std 12,32(22) 700 std 12,40(22) 701 std 12,48(22) 702 std 12,56(22) 703 stdu 12,64(22) 704 and 24,24,3 705 and 25,25,3 706 andc 26,26,3 707 andc 27,27,3 708 or 24,24,26 709 or 25,25,27 710 stdx 24,9,12 711 stdx 25,30,12 712 stdx 12,10,12 713 stdx 12,28,12 714 addi 12,12,16 715 bc 16,0,.Lcopy 716 ld 12,0(1) 717 li 3,1 718 ld 19,-200(12) 719 ld 20,-192(12) 720 ld 21,-184(12) 721 ld 22,-176(12) 722 ld 23,-168(12) 723 ld 24,-160(12) 724 ld 25,-152(12) 725 ld 26,-144(12) 726 ld 27,-136(12) 727 ld 28,-128(12) 728 ld 29,-120(12) 729 ld 30,-112(12) 730 ld 31,-104(12) 731 lfd 20,-96(12) 732 lfd 21,-88(12) 733 lfd 22,-80(12) 734 lfd 23,-72(12) 735 lfd 24,-64(12) 736 lfd 25,-56(12) 737 lfd 26,-48(12) 738 lfd 27,-40(12) 739 lfd 28,-32(12) 740 lfd 29,-24(12) 741 lfd 30,-16(12) 742 lfd 31,-8(12) 743 mr 1,12 744 blr 745.long 0 746.byte 0,12,4,0,0x8c,13,6,0 747.long 0 748 749 750.byte 77,111,110,116,103,111,109,101,114,121,32,77,117,108,116,105,112,108,105,99,97,116,105,111,110,32,102,111,114,32,80,80,67,54,52,44,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 751.align 2 752