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