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