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