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