1*1dcdf01fSchristos.machine "any" 2*1dcdf01fSchristos.text 3*1dcdf01fSchristos 4*1dcdf01fSchristos.globl ChaCha20_ctr32_int 5*1dcdf01fSchristos.type ChaCha20_ctr32_int,@function 6*1dcdf01fSchristos.section ".opd","aw" 7*1dcdf01fSchristos.align 3 8*1dcdf01fSchristosChaCha20_ctr32_int: 9*1dcdf01fSchristos.quad .ChaCha20_ctr32_int,.TOC.@tocbase,0 10*1dcdf01fSchristos.previous 11*1dcdf01fSchristos.align 5 12*1dcdf01fSchristos.ChaCha20_ctr32_int: 13*1dcdf01fSchristos__ChaCha20_ctr32_int: 14*1dcdf01fSchristos cmpldi 5,0 15*1dcdf01fSchristos beqlr 16*1dcdf01fSchristos 17*1dcdf01fSchristos stdu 1,-256(1) 18*1dcdf01fSchristos mflr 0 19*1dcdf01fSchristos 20*1dcdf01fSchristos std 14,112(1) 21*1dcdf01fSchristos std 15,120(1) 22*1dcdf01fSchristos std 16,128(1) 23*1dcdf01fSchristos std 17,136(1) 24*1dcdf01fSchristos std 18,144(1) 25*1dcdf01fSchristos std 19,152(1) 26*1dcdf01fSchristos std 20,160(1) 27*1dcdf01fSchristos std 21,168(1) 28*1dcdf01fSchristos std 22,176(1) 29*1dcdf01fSchristos std 23,184(1) 30*1dcdf01fSchristos std 24,192(1) 31*1dcdf01fSchristos std 25,200(1) 32*1dcdf01fSchristos std 26,208(1) 33*1dcdf01fSchristos std 27,216(1) 34*1dcdf01fSchristos std 28,224(1) 35*1dcdf01fSchristos std 29,232(1) 36*1dcdf01fSchristos std 30,240(1) 37*1dcdf01fSchristos std 31,248(1) 38*1dcdf01fSchristos std 0,272(1) 39*1dcdf01fSchristos 40*1dcdf01fSchristos lwz 11,0(7) 41*1dcdf01fSchristos lwz 12,4(7) 42*1dcdf01fSchristos lwz 14,8(7) 43*1dcdf01fSchristos lwz 15,12(7) 44*1dcdf01fSchristos 45*1dcdf01fSchristos bl __ChaCha20_1x 46*1dcdf01fSchristos 47*1dcdf01fSchristos ld 0,272(1) 48*1dcdf01fSchristos ld 14,112(1) 49*1dcdf01fSchristos ld 15,120(1) 50*1dcdf01fSchristos ld 16,128(1) 51*1dcdf01fSchristos ld 17,136(1) 52*1dcdf01fSchristos ld 18,144(1) 53*1dcdf01fSchristos ld 19,152(1) 54*1dcdf01fSchristos ld 20,160(1) 55*1dcdf01fSchristos ld 21,168(1) 56*1dcdf01fSchristos ld 22,176(1) 57*1dcdf01fSchristos ld 23,184(1) 58*1dcdf01fSchristos ld 24,192(1) 59*1dcdf01fSchristos ld 25,200(1) 60*1dcdf01fSchristos ld 26,208(1) 61*1dcdf01fSchristos ld 27,216(1) 62*1dcdf01fSchristos ld 28,224(1) 63*1dcdf01fSchristos ld 29,232(1) 64*1dcdf01fSchristos ld 30,240(1) 65*1dcdf01fSchristos ld 31,248(1) 66*1dcdf01fSchristos mtlr 0 67*1dcdf01fSchristos addi 1,1,256 68*1dcdf01fSchristos blr 69*1dcdf01fSchristos.long 0 70*1dcdf01fSchristos.byte 0,12,4,1,0x80,18,5,0 71*1dcdf01fSchristos.long 0 72*1dcdf01fSchristos 73*1dcdf01fSchristos 74*1dcdf01fSchristos.align 5 75*1dcdf01fSchristos__ChaCha20_1x: 76*1dcdf01fSchristos.Loop_outer: 77*1dcdf01fSchristos lis 16,0x6170 78*1dcdf01fSchristos lis 17,0x3320 79*1dcdf01fSchristos lis 18,0x7962 80*1dcdf01fSchristos lis 19,0x6b20 81*1dcdf01fSchristos ori 16,16,0x7865 82*1dcdf01fSchristos ori 17,17,0x646e 83*1dcdf01fSchristos ori 18,18,0x2d32 84*1dcdf01fSchristos ori 19,19,0x6574 85*1dcdf01fSchristos 86*1dcdf01fSchristos li 0,10 87*1dcdf01fSchristos lwz 20,0(6) 88*1dcdf01fSchristos lwz 21,4(6) 89*1dcdf01fSchristos lwz 22,8(6) 90*1dcdf01fSchristos lwz 23,12(6) 91*1dcdf01fSchristos lwz 24,16(6) 92*1dcdf01fSchristos mr 28,11 93*1dcdf01fSchristos lwz 25,20(6) 94*1dcdf01fSchristos mr 29,12 95*1dcdf01fSchristos lwz 26,24(6) 96*1dcdf01fSchristos mr 30,14 97*1dcdf01fSchristos lwz 27,28(6) 98*1dcdf01fSchristos mr 31,15 99*1dcdf01fSchristos 100*1dcdf01fSchristos mr 7,20 101*1dcdf01fSchristos mr 8,21 102*1dcdf01fSchristos mr 9,22 103*1dcdf01fSchristos mr 10,23 104*1dcdf01fSchristos 105*1dcdf01fSchristos mtctr 0 106*1dcdf01fSchristos.Loop: 107*1dcdf01fSchristos add 16,16,20 108*1dcdf01fSchristos add 17,17,21 109*1dcdf01fSchristos add 18,18,22 110*1dcdf01fSchristos add 19,19,23 111*1dcdf01fSchristos xor 28,28,16 112*1dcdf01fSchristos xor 29,29,17 113*1dcdf01fSchristos xor 30,30,18 114*1dcdf01fSchristos xor 31,31,19 115*1dcdf01fSchristos rotlwi 28,28,16 116*1dcdf01fSchristos rotlwi 29,29,16 117*1dcdf01fSchristos rotlwi 30,30,16 118*1dcdf01fSchristos rotlwi 31,31,16 119*1dcdf01fSchristos add 24,24,28 120*1dcdf01fSchristos add 25,25,29 121*1dcdf01fSchristos add 26,26,30 122*1dcdf01fSchristos add 27,27,31 123*1dcdf01fSchristos xor 20,20,24 124*1dcdf01fSchristos xor 21,21,25 125*1dcdf01fSchristos xor 22,22,26 126*1dcdf01fSchristos xor 23,23,27 127*1dcdf01fSchristos rotlwi 20,20,12 128*1dcdf01fSchristos rotlwi 21,21,12 129*1dcdf01fSchristos rotlwi 22,22,12 130*1dcdf01fSchristos rotlwi 23,23,12 131*1dcdf01fSchristos add 16,16,20 132*1dcdf01fSchristos add 17,17,21 133*1dcdf01fSchristos add 18,18,22 134*1dcdf01fSchristos add 19,19,23 135*1dcdf01fSchristos xor 28,28,16 136*1dcdf01fSchristos xor 29,29,17 137*1dcdf01fSchristos xor 30,30,18 138*1dcdf01fSchristos xor 31,31,19 139*1dcdf01fSchristos rotlwi 28,28,8 140*1dcdf01fSchristos rotlwi 29,29,8 141*1dcdf01fSchristos rotlwi 30,30,8 142*1dcdf01fSchristos rotlwi 31,31,8 143*1dcdf01fSchristos add 24,24,28 144*1dcdf01fSchristos add 25,25,29 145*1dcdf01fSchristos add 26,26,30 146*1dcdf01fSchristos add 27,27,31 147*1dcdf01fSchristos xor 20,20,24 148*1dcdf01fSchristos xor 21,21,25 149*1dcdf01fSchristos xor 22,22,26 150*1dcdf01fSchristos xor 23,23,27 151*1dcdf01fSchristos rotlwi 20,20,7 152*1dcdf01fSchristos rotlwi 21,21,7 153*1dcdf01fSchristos rotlwi 22,22,7 154*1dcdf01fSchristos rotlwi 23,23,7 155*1dcdf01fSchristos add 16,16,21 156*1dcdf01fSchristos add 17,17,22 157*1dcdf01fSchristos add 18,18,23 158*1dcdf01fSchristos add 19,19,20 159*1dcdf01fSchristos xor 31,31,16 160*1dcdf01fSchristos xor 28,28,17 161*1dcdf01fSchristos xor 29,29,18 162*1dcdf01fSchristos xor 30,30,19 163*1dcdf01fSchristos rotlwi 31,31,16 164*1dcdf01fSchristos rotlwi 28,28,16 165*1dcdf01fSchristos rotlwi 29,29,16 166*1dcdf01fSchristos rotlwi 30,30,16 167*1dcdf01fSchristos add 26,26,31 168*1dcdf01fSchristos add 27,27,28 169*1dcdf01fSchristos add 24,24,29 170*1dcdf01fSchristos add 25,25,30 171*1dcdf01fSchristos xor 21,21,26 172*1dcdf01fSchristos xor 22,22,27 173*1dcdf01fSchristos xor 23,23,24 174*1dcdf01fSchristos xor 20,20,25 175*1dcdf01fSchristos rotlwi 21,21,12 176*1dcdf01fSchristos rotlwi 22,22,12 177*1dcdf01fSchristos rotlwi 23,23,12 178*1dcdf01fSchristos rotlwi 20,20,12 179*1dcdf01fSchristos add 16,16,21 180*1dcdf01fSchristos add 17,17,22 181*1dcdf01fSchristos add 18,18,23 182*1dcdf01fSchristos add 19,19,20 183*1dcdf01fSchristos xor 31,31,16 184*1dcdf01fSchristos xor 28,28,17 185*1dcdf01fSchristos xor 29,29,18 186*1dcdf01fSchristos xor 30,30,19 187*1dcdf01fSchristos rotlwi 31,31,8 188*1dcdf01fSchristos rotlwi 28,28,8 189*1dcdf01fSchristos rotlwi 29,29,8 190*1dcdf01fSchristos rotlwi 30,30,8 191*1dcdf01fSchristos add 26,26,31 192*1dcdf01fSchristos add 27,27,28 193*1dcdf01fSchristos add 24,24,29 194*1dcdf01fSchristos add 25,25,30 195*1dcdf01fSchristos xor 21,21,26 196*1dcdf01fSchristos xor 22,22,27 197*1dcdf01fSchristos xor 23,23,24 198*1dcdf01fSchristos xor 20,20,25 199*1dcdf01fSchristos rotlwi 21,21,7 200*1dcdf01fSchristos rotlwi 22,22,7 201*1dcdf01fSchristos rotlwi 23,23,7 202*1dcdf01fSchristos rotlwi 20,20,7 203*1dcdf01fSchristos bc 16,0,.Loop 204*1dcdf01fSchristos 205*1dcdf01fSchristos subic 5,5,64 206*1dcdf01fSchristos addi 16,16,0x7865 207*1dcdf01fSchristos addi 17,17,0x646e 208*1dcdf01fSchristos addi 18,18,0x2d32 209*1dcdf01fSchristos addi 19,19,0x6574 210*1dcdf01fSchristos addis 16,16,0x6170 211*1dcdf01fSchristos addis 17,17,0x3320 212*1dcdf01fSchristos addis 18,18,0x7962 213*1dcdf01fSchristos addis 19,19,0x6b20 214*1dcdf01fSchristos 215*1dcdf01fSchristos subfe. 0,0,0 216*1dcdf01fSchristos add 20,20,7 217*1dcdf01fSchristos lwz 7,16(6) 218*1dcdf01fSchristos add 21,21,8 219*1dcdf01fSchristos lwz 8,20(6) 220*1dcdf01fSchristos add 22,22,9 221*1dcdf01fSchristos lwz 9,24(6) 222*1dcdf01fSchristos add 23,23,10 223*1dcdf01fSchristos lwz 10,28(6) 224*1dcdf01fSchristos add 24,24,7 225*1dcdf01fSchristos add 25,25,8 226*1dcdf01fSchristos add 26,26,9 227*1dcdf01fSchristos add 27,27,10 228*1dcdf01fSchristos 229*1dcdf01fSchristos add 28,28,11 230*1dcdf01fSchristos add 29,29,12 231*1dcdf01fSchristos add 30,30,14 232*1dcdf01fSchristos add 31,31,15 233*1dcdf01fSchristos addi 11,11,1 234*1dcdf01fSchristos mr 7,16 235*1dcdf01fSchristos rotlwi 16,16,8 236*1dcdf01fSchristos rlwimi 16,7,24,0,7 237*1dcdf01fSchristos rlwimi 16,7,24,16,23 238*1dcdf01fSchristos mr 8,17 239*1dcdf01fSchristos rotlwi 17,17,8 240*1dcdf01fSchristos rlwimi 17,8,24,0,7 241*1dcdf01fSchristos rlwimi 17,8,24,16,23 242*1dcdf01fSchristos mr 9,18 243*1dcdf01fSchristos rotlwi 18,18,8 244*1dcdf01fSchristos rlwimi 18,9,24,0,7 245*1dcdf01fSchristos rlwimi 18,9,24,16,23 246*1dcdf01fSchristos mr 10,19 247*1dcdf01fSchristos rotlwi 19,19,8 248*1dcdf01fSchristos rlwimi 19,10,24,0,7 249*1dcdf01fSchristos rlwimi 19,10,24,16,23 250*1dcdf01fSchristos mr 7,20 251*1dcdf01fSchristos rotlwi 20,20,8 252*1dcdf01fSchristos rlwimi 20,7,24,0,7 253*1dcdf01fSchristos rlwimi 20,7,24,16,23 254*1dcdf01fSchristos mr 8,21 255*1dcdf01fSchristos rotlwi 21,21,8 256*1dcdf01fSchristos rlwimi 21,8,24,0,7 257*1dcdf01fSchristos rlwimi 21,8,24,16,23 258*1dcdf01fSchristos mr 9,22 259*1dcdf01fSchristos rotlwi 22,22,8 260*1dcdf01fSchristos rlwimi 22,9,24,0,7 261*1dcdf01fSchristos rlwimi 22,9,24,16,23 262*1dcdf01fSchristos mr 10,23 263*1dcdf01fSchristos rotlwi 23,23,8 264*1dcdf01fSchristos rlwimi 23,10,24,0,7 265*1dcdf01fSchristos rlwimi 23,10,24,16,23 266*1dcdf01fSchristos mr 7,24 267*1dcdf01fSchristos rotlwi 24,24,8 268*1dcdf01fSchristos rlwimi 24,7,24,0,7 269*1dcdf01fSchristos rlwimi 24,7,24,16,23 270*1dcdf01fSchristos mr 8,25 271*1dcdf01fSchristos rotlwi 25,25,8 272*1dcdf01fSchristos rlwimi 25,8,24,0,7 273*1dcdf01fSchristos rlwimi 25,8,24,16,23 274*1dcdf01fSchristos mr 9,26 275*1dcdf01fSchristos rotlwi 26,26,8 276*1dcdf01fSchristos rlwimi 26,9,24,0,7 277*1dcdf01fSchristos rlwimi 26,9,24,16,23 278*1dcdf01fSchristos mr 10,27 279*1dcdf01fSchristos rotlwi 27,27,8 280*1dcdf01fSchristos rlwimi 27,10,24,0,7 281*1dcdf01fSchristos rlwimi 27,10,24,16,23 282*1dcdf01fSchristos mr 7,28 283*1dcdf01fSchristos rotlwi 28,28,8 284*1dcdf01fSchristos rlwimi 28,7,24,0,7 285*1dcdf01fSchristos rlwimi 28,7,24,16,23 286*1dcdf01fSchristos mr 8,29 287*1dcdf01fSchristos rotlwi 29,29,8 288*1dcdf01fSchristos rlwimi 29,8,24,0,7 289*1dcdf01fSchristos rlwimi 29,8,24,16,23 290*1dcdf01fSchristos mr 9,30 291*1dcdf01fSchristos rotlwi 30,30,8 292*1dcdf01fSchristos rlwimi 30,9,24,0,7 293*1dcdf01fSchristos rlwimi 30,9,24,16,23 294*1dcdf01fSchristos mr 10,31 295*1dcdf01fSchristos rotlwi 31,31,8 296*1dcdf01fSchristos rlwimi 31,10,24,0,7 297*1dcdf01fSchristos rlwimi 31,10,24,16,23 298*1dcdf01fSchristos bne .Ltail 299*1dcdf01fSchristos 300*1dcdf01fSchristos lwz 7,0(4) 301*1dcdf01fSchristos lwz 8,4(4) 302*1dcdf01fSchristos cmpldi 5,0 303*1dcdf01fSchristos lwz 9,8(4) 304*1dcdf01fSchristos lwz 10,12(4) 305*1dcdf01fSchristos xor 16,16,7 306*1dcdf01fSchristos lwz 7,16(4) 307*1dcdf01fSchristos xor 17,17,8 308*1dcdf01fSchristos lwz 8,20(4) 309*1dcdf01fSchristos xor 18,18,9 310*1dcdf01fSchristos lwz 9,24(4) 311*1dcdf01fSchristos xor 19,19,10 312*1dcdf01fSchristos lwz 10,28(4) 313*1dcdf01fSchristos xor 20,20,7 314*1dcdf01fSchristos lwz 7,32(4) 315*1dcdf01fSchristos xor 21,21,8 316*1dcdf01fSchristos lwz 8,36(4) 317*1dcdf01fSchristos xor 22,22,9 318*1dcdf01fSchristos lwz 9,40(4) 319*1dcdf01fSchristos xor 23,23,10 320*1dcdf01fSchristos lwz 10,44(4) 321*1dcdf01fSchristos xor 24,24,7 322*1dcdf01fSchristos lwz 7,48(4) 323*1dcdf01fSchristos xor 25,25,8 324*1dcdf01fSchristos lwz 8,52(4) 325*1dcdf01fSchristos xor 26,26,9 326*1dcdf01fSchristos lwz 9,56(4) 327*1dcdf01fSchristos xor 27,27,10 328*1dcdf01fSchristos lwz 10,60(4) 329*1dcdf01fSchristos xor 28,28,7 330*1dcdf01fSchristos stw 16,0(3) 331*1dcdf01fSchristos xor 29,29,8 332*1dcdf01fSchristos stw 17,4(3) 333*1dcdf01fSchristos xor 30,30,9 334*1dcdf01fSchristos stw 18,8(3) 335*1dcdf01fSchristos xor 31,31,10 336*1dcdf01fSchristos stw 19,12(3) 337*1dcdf01fSchristos stw 20,16(3) 338*1dcdf01fSchristos stw 21,20(3) 339*1dcdf01fSchristos stw 22,24(3) 340*1dcdf01fSchristos stw 23,28(3) 341*1dcdf01fSchristos stw 24,32(3) 342*1dcdf01fSchristos stw 25,36(3) 343*1dcdf01fSchristos stw 26,40(3) 344*1dcdf01fSchristos stw 27,44(3) 345*1dcdf01fSchristos stw 28,48(3) 346*1dcdf01fSchristos stw 29,52(3) 347*1dcdf01fSchristos stw 30,56(3) 348*1dcdf01fSchristos addi 4,4,64 349*1dcdf01fSchristos stw 31,60(3) 350*1dcdf01fSchristos addi 3,3,64 351*1dcdf01fSchristos 352*1dcdf01fSchristos bne .Loop_outer 353*1dcdf01fSchristos 354*1dcdf01fSchristos blr 355*1dcdf01fSchristos 356*1dcdf01fSchristos.align 4 357*1dcdf01fSchristos.Ltail: 358*1dcdf01fSchristos addi 5,5,64 359*1dcdf01fSchristos subi 4,4,1 360*1dcdf01fSchristos subi 3,3,1 361*1dcdf01fSchristos addi 7,1,48-1 362*1dcdf01fSchristos mtctr 5 363*1dcdf01fSchristos 364*1dcdf01fSchristos stw 16,48(1) 365*1dcdf01fSchristos stw 17,52(1) 366*1dcdf01fSchristos stw 18,56(1) 367*1dcdf01fSchristos stw 19,60(1) 368*1dcdf01fSchristos stw 20,64(1) 369*1dcdf01fSchristos stw 21,68(1) 370*1dcdf01fSchristos stw 22,72(1) 371*1dcdf01fSchristos stw 23,76(1) 372*1dcdf01fSchristos stw 24,80(1) 373*1dcdf01fSchristos stw 25,84(1) 374*1dcdf01fSchristos stw 26,88(1) 375*1dcdf01fSchristos stw 27,92(1) 376*1dcdf01fSchristos stw 28,96(1) 377*1dcdf01fSchristos stw 29,100(1) 378*1dcdf01fSchristos stw 30,104(1) 379*1dcdf01fSchristos stw 31,108(1) 380*1dcdf01fSchristos 381*1dcdf01fSchristos.Loop_tail: 382*1dcdf01fSchristos lbzu 11,1(4) 383*1dcdf01fSchristos lbzu 16,1(7) 384*1dcdf01fSchristos xor 12,11,16 385*1dcdf01fSchristos stbu 12,1(3) 386*1dcdf01fSchristos bc 16,0,.Loop_tail 387*1dcdf01fSchristos 388*1dcdf01fSchristos stw 1,48(1) 389*1dcdf01fSchristos stw 1,52(1) 390*1dcdf01fSchristos stw 1,56(1) 391*1dcdf01fSchristos stw 1,60(1) 392*1dcdf01fSchristos stw 1,64(1) 393*1dcdf01fSchristos stw 1,68(1) 394*1dcdf01fSchristos stw 1,72(1) 395*1dcdf01fSchristos stw 1,76(1) 396*1dcdf01fSchristos stw 1,80(1) 397*1dcdf01fSchristos stw 1,84(1) 398*1dcdf01fSchristos stw 1,88(1) 399*1dcdf01fSchristos stw 1,92(1) 400*1dcdf01fSchristos stw 1,96(1) 401*1dcdf01fSchristos stw 1,100(1) 402*1dcdf01fSchristos stw 1,104(1) 403*1dcdf01fSchristos stw 1,108(1) 404*1dcdf01fSchristos 405*1dcdf01fSchristos blr 406*1dcdf01fSchristos.long 0 407*1dcdf01fSchristos.byte 0,12,0x14,0,0,0,0,0 408*1dcdf01fSchristos 409*1dcdf01fSchristos.globl ChaCha20_ctr32_vmx 410*1dcdf01fSchristos.type ChaCha20_ctr32_vmx,@function 411*1dcdf01fSchristos.section ".opd","aw" 412*1dcdf01fSchristos.align 3 413*1dcdf01fSchristosChaCha20_ctr32_vmx: 414*1dcdf01fSchristos.quad .ChaCha20_ctr32_vmx,.TOC.@tocbase,0 415*1dcdf01fSchristos.previous 416*1dcdf01fSchristos.align 5 417*1dcdf01fSchristos.ChaCha20_ctr32_vmx: 418*1dcdf01fSchristos cmpldi 5,256 419*1dcdf01fSchristos blt __ChaCha20_ctr32_int 420*1dcdf01fSchristos 421*1dcdf01fSchristos stdu 1,-416(1) 422*1dcdf01fSchristos mflr 0 423*1dcdf01fSchristos li 10,127 424*1dcdf01fSchristos li 11,143 425*1dcdf01fSchristos mfspr 12,256 426*1dcdf01fSchristos stvx 23,10,1 427*1dcdf01fSchristos addi 10,10,32 428*1dcdf01fSchristos stvx 24,11,1 429*1dcdf01fSchristos addi 11,11,32 430*1dcdf01fSchristos stvx 25,10,1 431*1dcdf01fSchristos addi 10,10,32 432*1dcdf01fSchristos stvx 26,11,1 433*1dcdf01fSchristos addi 11,11,32 434*1dcdf01fSchristos stvx 27,10,1 435*1dcdf01fSchristos addi 10,10,32 436*1dcdf01fSchristos stvx 28,11,1 437*1dcdf01fSchristos addi 11,11,32 438*1dcdf01fSchristos stvx 29,10,1 439*1dcdf01fSchristos addi 10,10,32 440*1dcdf01fSchristos stvx 30,11,1 441*1dcdf01fSchristos stvx 31,10,1 442*1dcdf01fSchristos stw 12,268(1) 443*1dcdf01fSchristos std 14,272(1) 444*1dcdf01fSchristos std 15,280(1) 445*1dcdf01fSchristos std 16,288(1) 446*1dcdf01fSchristos std 17,296(1) 447*1dcdf01fSchristos std 18,304(1) 448*1dcdf01fSchristos std 19,312(1) 449*1dcdf01fSchristos std 20,320(1) 450*1dcdf01fSchristos std 21,328(1) 451*1dcdf01fSchristos std 22,336(1) 452*1dcdf01fSchristos std 23,344(1) 453*1dcdf01fSchristos std 24,352(1) 454*1dcdf01fSchristos std 25,360(1) 455*1dcdf01fSchristos std 26,368(1) 456*1dcdf01fSchristos std 27,376(1) 457*1dcdf01fSchristos std 28,384(1) 458*1dcdf01fSchristos std 29,392(1) 459*1dcdf01fSchristos std 30,400(1) 460*1dcdf01fSchristos std 31,408(1) 461*1dcdf01fSchristos li 12,-4096+511 462*1dcdf01fSchristos std 0, 432(1) 463*1dcdf01fSchristos mtspr 256,12 464*1dcdf01fSchristos 465*1dcdf01fSchristos bl .Lconsts 466*1dcdf01fSchristos li 16,16 467*1dcdf01fSchristos li 17,32 468*1dcdf01fSchristos li 18,48 469*1dcdf01fSchristos li 19,64 470*1dcdf01fSchristos li 20,31 471*1dcdf01fSchristos li 21,15 472*1dcdf01fSchristos 473*1dcdf01fSchristos lvx 13,0,6 474*1dcdf01fSchristos lvsl 29,0,6 475*1dcdf01fSchristos lvx 14,16,6 476*1dcdf01fSchristos lvx 27,20,6 477*1dcdf01fSchristos 478*1dcdf01fSchristos lvx 15,0,7 479*1dcdf01fSchristos lvsl 30,0,7 480*1dcdf01fSchristos lvx 28,21,7 481*1dcdf01fSchristos 482*1dcdf01fSchristos lvx 12,0,12 483*1dcdf01fSchristos lvx 17,16,12 484*1dcdf01fSchristos lvx 18,17,12 485*1dcdf01fSchristos lvx 19,18,12 486*1dcdf01fSchristos lvx 23,19,12 487*1dcdf01fSchristos 488*1dcdf01fSchristos vperm 13,13,14,29 489*1dcdf01fSchristos vperm 14,14,27,29 490*1dcdf01fSchristos vperm 15,15,28,30 491*1dcdf01fSchristos 492*1dcdf01fSchristos lwz 11,0(7) 493*1dcdf01fSchristos lwz 12,4(7) 494*1dcdf01fSchristos vadduwm 15,15,17 495*1dcdf01fSchristos lwz 14,8(7) 496*1dcdf01fSchristos vadduwm 16,15,17 497*1dcdf01fSchristos lwz 15,12(7) 498*1dcdf01fSchristos vadduwm 17,16,17 499*1dcdf01fSchristos 500*1dcdf01fSchristos vxor 29,29,29 501*1dcdf01fSchristos vspltisw 26,-1 502*1dcdf01fSchristos lvsl 24,0,4 503*1dcdf01fSchristos lvsr 25,0,3 504*1dcdf01fSchristos vperm 26,29,26,25 505*1dcdf01fSchristos 506*1dcdf01fSchristos lvsl 29,0,16 507*1dcdf01fSchristos vspltisb 30,3 508*1dcdf01fSchristos vxor 29,29,30 509*1dcdf01fSchristos vxor 25,25,30 510*1dcdf01fSchristos vperm 24,24,24,29 511*1dcdf01fSchristos 512*1dcdf01fSchristos li 0,10 513*1dcdf01fSchristos b .Loop_outer_vmx 514*1dcdf01fSchristos 515*1dcdf01fSchristos.align 4 516*1dcdf01fSchristos.Loop_outer_vmx: 517*1dcdf01fSchristos lis 16,0x6170 518*1dcdf01fSchristos lis 17,0x3320 519*1dcdf01fSchristos vor 0,12,12 520*1dcdf01fSchristos lis 18,0x7962 521*1dcdf01fSchristos lis 19,0x6b20 522*1dcdf01fSchristos vor 4,12,12 523*1dcdf01fSchristos ori 16,16,0x7865 524*1dcdf01fSchristos ori 17,17,0x646e 525*1dcdf01fSchristos vor 8,12,12 526*1dcdf01fSchristos ori 18,18,0x2d32 527*1dcdf01fSchristos ori 19,19,0x6574 528*1dcdf01fSchristos vor 1,13,13 529*1dcdf01fSchristos 530*1dcdf01fSchristos lwz 20,0(6) 531*1dcdf01fSchristos vor 5,13,13 532*1dcdf01fSchristos lwz 21,4(6) 533*1dcdf01fSchristos vor 9,13,13 534*1dcdf01fSchristos lwz 22,8(6) 535*1dcdf01fSchristos vor 2,14,14 536*1dcdf01fSchristos lwz 23,12(6) 537*1dcdf01fSchristos vor 6,14,14 538*1dcdf01fSchristos lwz 24,16(6) 539*1dcdf01fSchristos vor 10,14,14 540*1dcdf01fSchristos mr 28,11 541*1dcdf01fSchristos lwz 25,20(6) 542*1dcdf01fSchristos vor 3,15,15 543*1dcdf01fSchristos mr 29,12 544*1dcdf01fSchristos lwz 26,24(6) 545*1dcdf01fSchristos vor 7,16,16 546*1dcdf01fSchristos mr 30,14 547*1dcdf01fSchristos lwz 27,28(6) 548*1dcdf01fSchristos vor 11,17,17 549*1dcdf01fSchristos mr 31,15 550*1dcdf01fSchristos 551*1dcdf01fSchristos mr 7,20 552*1dcdf01fSchristos mr 8,21 553*1dcdf01fSchristos mr 9,22 554*1dcdf01fSchristos mr 10,23 555*1dcdf01fSchristos 556*1dcdf01fSchristos vspltisw 27,12 557*1dcdf01fSchristos vspltisw 28,7 558*1dcdf01fSchristos 559*1dcdf01fSchristos mtctr 0 560*1dcdf01fSchristos nop 561*1dcdf01fSchristos.Loop_vmx: 562*1dcdf01fSchristos vadduwm 0,0,1 563*1dcdf01fSchristos vadduwm 4,4,5 564*1dcdf01fSchristos vadduwm 8,8,9 565*1dcdf01fSchristos add 16,16,20 566*1dcdf01fSchristos add 17,17,21 567*1dcdf01fSchristos add 18,18,22 568*1dcdf01fSchristos vxor 3,3,0 569*1dcdf01fSchristos vxor 7,7,4 570*1dcdf01fSchristos vxor 11,11,8 571*1dcdf01fSchristos add 19,19,23 572*1dcdf01fSchristos xor 28,28,16 573*1dcdf01fSchristos xor 29,29,17 574*1dcdf01fSchristos vperm 3,3,3,19 575*1dcdf01fSchristos vperm 7,7,7,19 576*1dcdf01fSchristos vperm 11,11,11,19 577*1dcdf01fSchristos xor 30,30,18 578*1dcdf01fSchristos xor 31,31,19 579*1dcdf01fSchristos rotlwi 28,28,16 580*1dcdf01fSchristos vadduwm 2,2,3 581*1dcdf01fSchristos vadduwm 6,6,7 582*1dcdf01fSchristos vadduwm 10,10,11 583*1dcdf01fSchristos rotlwi 29,29,16 584*1dcdf01fSchristos rotlwi 30,30,16 585*1dcdf01fSchristos rotlwi 31,31,16 586*1dcdf01fSchristos vxor 1,1,2 587*1dcdf01fSchristos vxor 5,5,6 588*1dcdf01fSchristos vxor 9,9,10 589*1dcdf01fSchristos add 24,24,28 590*1dcdf01fSchristos add 25,25,29 591*1dcdf01fSchristos add 26,26,30 592*1dcdf01fSchristos vrlw 1,1,27 593*1dcdf01fSchristos vrlw 5,5,27 594*1dcdf01fSchristos vrlw 9,9,27 595*1dcdf01fSchristos add 27,27,31 596*1dcdf01fSchristos xor 20,20,24 597*1dcdf01fSchristos xor 21,21,25 598*1dcdf01fSchristos vadduwm 0,0,1 599*1dcdf01fSchristos vadduwm 4,4,5 600*1dcdf01fSchristos vadduwm 8,8,9 601*1dcdf01fSchristos xor 22,22,26 602*1dcdf01fSchristos xor 23,23,27 603*1dcdf01fSchristos rotlwi 20,20,12 604*1dcdf01fSchristos vxor 3,3,0 605*1dcdf01fSchristos vxor 7,7,4 606*1dcdf01fSchristos vxor 11,11,8 607*1dcdf01fSchristos rotlwi 21,21,12 608*1dcdf01fSchristos rotlwi 22,22,12 609*1dcdf01fSchristos rotlwi 23,23,12 610*1dcdf01fSchristos vperm 3,3,3,23 611*1dcdf01fSchristos vperm 7,7,7,23 612*1dcdf01fSchristos vperm 11,11,11,23 613*1dcdf01fSchristos add 16,16,20 614*1dcdf01fSchristos add 17,17,21 615*1dcdf01fSchristos add 18,18,22 616*1dcdf01fSchristos vadduwm 2,2,3 617*1dcdf01fSchristos vadduwm 6,6,7 618*1dcdf01fSchristos vadduwm 10,10,11 619*1dcdf01fSchristos add 19,19,23 620*1dcdf01fSchristos xor 28,28,16 621*1dcdf01fSchristos xor 29,29,17 622*1dcdf01fSchristos vxor 1,1,2 623*1dcdf01fSchristos vxor 5,5,6 624*1dcdf01fSchristos vxor 9,9,10 625*1dcdf01fSchristos xor 30,30,18 626*1dcdf01fSchristos xor 31,31,19 627*1dcdf01fSchristos rotlwi 28,28,8 628*1dcdf01fSchristos vrlw 1,1,28 629*1dcdf01fSchristos vrlw 5,5,28 630*1dcdf01fSchristos vrlw 9,9,28 631*1dcdf01fSchristos rotlwi 29,29,8 632*1dcdf01fSchristos rotlwi 30,30,8 633*1dcdf01fSchristos rotlwi 31,31,8 634*1dcdf01fSchristos vsldoi 2,2,2, 16-8 635*1dcdf01fSchristos vsldoi 6,6,6, 16-8 636*1dcdf01fSchristos vsldoi 10,10,10, 16-8 637*1dcdf01fSchristos add 24,24,28 638*1dcdf01fSchristos add 25,25,29 639*1dcdf01fSchristos add 26,26,30 640*1dcdf01fSchristos vsldoi 1,1,1, 16-12 641*1dcdf01fSchristos vsldoi 5,5,5, 16-12 642*1dcdf01fSchristos vsldoi 9,9,9, 16-12 643*1dcdf01fSchristos add 27,27,31 644*1dcdf01fSchristos xor 20,20,24 645*1dcdf01fSchristos xor 21,21,25 646*1dcdf01fSchristos vsldoi 3,3,3, 16-4 647*1dcdf01fSchristos vsldoi 7,7,7, 16-4 648*1dcdf01fSchristos vsldoi 11,11,11, 16-4 649*1dcdf01fSchristos xor 22,22,26 650*1dcdf01fSchristos xor 23,23,27 651*1dcdf01fSchristos rotlwi 20,20,7 652*1dcdf01fSchristos rotlwi 21,21,7 653*1dcdf01fSchristos rotlwi 22,22,7 654*1dcdf01fSchristos rotlwi 23,23,7 655*1dcdf01fSchristos vadduwm 0,0,1 656*1dcdf01fSchristos vadduwm 4,4,5 657*1dcdf01fSchristos vadduwm 8,8,9 658*1dcdf01fSchristos add 16,16,21 659*1dcdf01fSchristos add 17,17,22 660*1dcdf01fSchristos add 18,18,23 661*1dcdf01fSchristos vxor 3,3,0 662*1dcdf01fSchristos vxor 7,7,4 663*1dcdf01fSchristos vxor 11,11,8 664*1dcdf01fSchristos add 19,19,20 665*1dcdf01fSchristos xor 31,31,16 666*1dcdf01fSchristos xor 28,28,17 667*1dcdf01fSchristos vperm 3,3,3,19 668*1dcdf01fSchristos vperm 7,7,7,19 669*1dcdf01fSchristos vperm 11,11,11,19 670*1dcdf01fSchristos xor 29,29,18 671*1dcdf01fSchristos xor 30,30,19 672*1dcdf01fSchristos rotlwi 31,31,16 673*1dcdf01fSchristos vadduwm 2,2,3 674*1dcdf01fSchristos vadduwm 6,6,7 675*1dcdf01fSchristos vadduwm 10,10,11 676*1dcdf01fSchristos rotlwi 28,28,16 677*1dcdf01fSchristos rotlwi 29,29,16 678*1dcdf01fSchristos rotlwi 30,30,16 679*1dcdf01fSchristos vxor 1,1,2 680*1dcdf01fSchristos vxor 5,5,6 681*1dcdf01fSchristos vxor 9,9,10 682*1dcdf01fSchristos add 26,26,31 683*1dcdf01fSchristos add 27,27,28 684*1dcdf01fSchristos add 24,24,29 685*1dcdf01fSchristos vrlw 1,1,27 686*1dcdf01fSchristos vrlw 5,5,27 687*1dcdf01fSchristos vrlw 9,9,27 688*1dcdf01fSchristos add 25,25,30 689*1dcdf01fSchristos xor 21,21,26 690*1dcdf01fSchristos xor 22,22,27 691*1dcdf01fSchristos vadduwm 0,0,1 692*1dcdf01fSchristos vadduwm 4,4,5 693*1dcdf01fSchristos vadduwm 8,8,9 694*1dcdf01fSchristos xor 23,23,24 695*1dcdf01fSchristos xor 20,20,25 696*1dcdf01fSchristos rotlwi 21,21,12 697*1dcdf01fSchristos vxor 3,3,0 698*1dcdf01fSchristos vxor 7,7,4 699*1dcdf01fSchristos vxor 11,11,8 700*1dcdf01fSchristos rotlwi 22,22,12 701*1dcdf01fSchristos rotlwi 23,23,12 702*1dcdf01fSchristos rotlwi 20,20,12 703*1dcdf01fSchristos vperm 3,3,3,23 704*1dcdf01fSchristos vperm 7,7,7,23 705*1dcdf01fSchristos vperm 11,11,11,23 706*1dcdf01fSchristos add 16,16,21 707*1dcdf01fSchristos add 17,17,22 708*1dcdf01fSchristos add 18,18,23 709*1dcdf01fSchristos vadduwm 2,2,3 710*1dcdf01fSchristos vadduwm 6,6,7 711*1dcdf01fSchristos vadduwm 10,10,11 712*1dcdf01fSchristos add 19,19,20 713*1dcdf01fSchristos xor 31,31,16 714*1dcdf01fSchristos xor 28,28,17 715*1dcdf01fSchristos vxor 1,1,2 716*1dcdf01fSchristos vxor 5,5,6 717*1dcdf01fSchristos vxor 9,9,10 718*1dcdf01fSchristos xor 29,29,18 719*1dcdf01fSchristos xor 30,30,19 720*1dcdf01fSchristos rotlwi 31,31,8 721*1dcdf01fSchristos vrlw 1,1,28 722*1dcdf01fSchristos vrlw 5,5,28 723*1dcdf01fSchristos vrlw 9,9,28 724*1dcdf01fSchristos rotlwi 28,28,8 725*1dcdf01fSchristos rotlwi 29,29,8 726*1dcdf01fSchristos rotlwi 30,30,8 727*1dcdf01fSchristos vsldoi 2,2,2, 16-8 728*1dcdf01fSchristos vsldoi 6,6,6, 16-8 729*1dcdf01fSchristos vsldoi 10,10,10, 16-8 730*1dcdf01fSchristos add 26,26,31 731*1dcdf01fSchristos add 27,27,28 732*1dcdf01fSchristos add 24,24,29 733*1dcdf01fSchristos vsldoi 1,1,1, 16-4 734*1dcdf01fSchristos vsldoi 5,5,5, 16-4 735*1dcdf01fSchristos vsldoi 9,9,9, 16-4 736*1dcdf01fSchristos add 25,25,30 737*1dcdf01fSchristos xor 21,21,26 738*1dcdf01fSchristos xor 22,22,27 739*1dcdf01fSchristos vsldoi 3,3,3, 16-12 740*1dcdf01fSchristos vsldoi 7,7,7, 16-12 741*1dcdf01fSchristos vsldoi 11,11,11, 16-12 742*1dcdf01fSchristos xor 23,23,24 743*1dcdf01fSchristos xor 20,20,25 744*1dcdf01fSchristos rotlwi 21,21,7 745*1dcdf01fSchristos rotlwi 22,22,7 746*1dcdf01fSchristos rotlwi 23,23,7 747*1dcdf01fSchristos rotlwi 20,20,7 748*1dcdf01fSchristos bc 16,0,.Loop_vmx 749*1dcdf01fSchristos 750*1dcdf01fSchristos subi 5,5,256 751*1dcdf01fSchristos addi 16,16,0x7865 752*1dcdf01fSchristos addi 17,17,0x646e 753*1dcdf01fSchristos addi 18,18,0x2d32 754*1dcdf01fSchristos addi 19,19,0x6574 755*1dcdf01fSchristos addis 16,16,0x6170 756*1dcdf01fSchristos addis 17,17,0x3320 757*1dcdf01fSchristos addis 18,18,0x7962 758*1dcdf01fSchristos addis 19,19,0x6b20 759*1dcdf01fSchristos add 20,20,7 760*1dcdf01fSchristos lwz 7,16(6) 761*1dcdf01fSchristos add 21,21,8 762*1dcdf01fSchristos lwz 8,20(6) 763*1dcdf01fSchristos add 22,22,9 764*1dcdf01fSchristos lwz 9,24(6) 765*1dcdf01fSchristos add 23,23,10 766*1dcdf01fSchristos lwz 10,28(6) 767*1dcdf01fSchristos add 24,24,7 768*1dcdf01fSchristos add 25,25,8 769*1dcdf01fSchristos add 26,26,9 770*1dcdf01fSchristos add 27,27,10 771*1dcdf01fSchristos add 28,28,11 772*1dcdf01fSchristos add 29,29,12 773*1dcdf01fSchristos add 30,30,14 774*1dcdf01fSchristos add 31,31,15 775*1dcdf01fSchristos 776*1dcdf01fSchristos vadduwm 0,0,12 777*1dcdf01fSchristos vadduwm 4,4,12 778*1dcdf01fSchristos vadduwm 8,8,12 779*1dcdf01fSchristos vadduwm 1,1,13 780*1dcdf01fSchristos vadduwm 5,5,13 781*1dcdf01fSchristos vadduwm 9,9,13 782*1dcdf01fSchristos vadduwm 2,2,14 783*1dcdf01fSchristos vadduwm 6,6,14 784*1dcdf01fSchristos vadduwm 10,10,14 785*1dcdf01fSchristos vadduwm 3,3,15 786*1dcdf01fSchristos vadduwm 7,7,16 787*1dcdf01fSchristos vadduwm 11,11,17 788*1dcdf01fSchristos 789*1dcdf01fSchristos addi 11,11,4 790*1dcdf01fSchristos vadduwm 15,15,18 791*1dcdf01fSchristos vadduwm 16,16,18 792*1dcdf01fSchristos vadduwm 17,17,18 793*1dcdf01fSchristos 794*1dcdf01fSchristos mr 7,16 795*1dcdf01fSchristos rotlwi 16,16,8 796*1dcdf01fSchristos rlwimi 16,7,24,0,7 797*1dcdf01fSchristos rlwimi 16,7,24,16,23 798*1dcdf01fSchristos mr 8,17 799*1dcdf01fSchristos rotlwi 17,17,8 800*1dcdf01fSchristos rlwimi 17,8,24,0,7 801*1dcdf01fSchristos rlwimi 17,8,24,16,23 802*1dcdf01fSchristos mr 9,18 803*1dcdf01fSchristos rotlwi 18,18,8 804*1dcdf01fSchristos rlwimi 18,9,24,0,7 805*1dcdf01fSchristos rlwimi 18,9,24,16,23 806*1dcdf01fSchristos mr 10,19 807*1dcdf01fSchristos rotlwi 19,19,8 808*1dcdf01fSchristos rlwimi 19,10,24,0,7 809*1dcdf01fSchristos rlwimi 19,10,24,16,23 810*1dcdf01fSchristos mr 7,20 811*1dcdf01fSchristos rotlwi 20,20,8 812*1dcdf01fSchristos rlwimi 20,7,24,0,7 813*1dcdf01fSchristos rlwimi 20,7,24,16,23 814*1dcdf01fSchristos mr 8,21 815*1dcdf01fSchristos rotlwi 21,21,8 816*1dcdf01fSchristos rlwimi 21,8,24,0,7 817*1dcdf01fSchristos rlwimi 21,8,24,16,23 818*1dcdf01fSchristos mr 9,22 819*1dcdf01fSchristos rotlwi 22,22,8 820*1dcdf01fSchristos rlwimi 22,9,24,0,7 821*1dcdf01fSchristos rlwimi 22,9,24,16,23 822*1dcdf01fSchristos mr 10,23 823*1dcdf01fSchristos rotlwi 23,23,8 824*1dcdf01fSchristos rlwimi 23,10,24,0,7 825*1dcdf01fSchristos rlwimi 23,10,24,16,23 826*1dcdf01fSchristos mr 7,24 827*1dcdf01fSchristos rotlwi 24,24,8 828*1dcdf01fSchristos rlwimi 24,7,24,0,7 829*1dcdf01fSchristos rlwimi 24,7,24,16,23 830*1dcdf01fSchristos mr 8,25 831*1dcdf01fSchristos rotlwi 25,25,8 832*1dcdf01fSchristos rlwimi 25,8,24,0,7 833*1dcdf01fSchristos rlwimi 25,8,24,16,23 834*1dcdf01fSchristos mr 9,26 835*1dcdf01fSchristos rotlwi 26,26,8 836*1dcdf01fSchristos rlwimi 26,9,24,0,7 837*1dcdf01fSchristos rlwimi 26,9,24,16,23 838*1dcdf01fSchristos mr 10,27 839*1dcdf01fSchristos rotlwi 27,27,8 840*1dcdf01fSchristos rlwimi 27,10,24,0,7 841*1dcdf01fSchristos rlwimi 27,10,24,16,23 842*1dcdf01fSchristos mr 7,28 843*1dcdf01fSchristos rotlwi 28,28,8 844*1dcdf01fSchristos rlwimi 28,7,24,0,7 845*1dcdf01fSchristos rlwimi 28,7,24,16,23 846*1dcdf01fSchristos mr 8,29 847*1dcdf01fSchristos rotlwi 29,29,8 848*1dcdf01fSchristos rlwimi 29,8,24,0,7 849*1dcdf01fSchristos rlwimi 29,8,24,16,23 850*1dcdf01fSchristos mr 9,30 851*1dcdf01fSchristos rotlwi 30,30,8 852*1dcdf01fSchristos rlwimi 30,9,24,0,7 853*1dcdf01fSchristos rlwimi 30,9,24,16,23 854*1dcdf01fSchristos mr 10,31 855*1dcdf01fSchristos rotlwi 31,31,8 856*1dcdf01fSchristos rlwimi 31,10,24,0,7 857*1dcdf01fSchristos rlwimi 31,10,24,16,23 858*1dcdf01fSchristos lwz 7,0(4) 859*1dcdf01fSchristos lwz 8,4(4) 860*1dcdf01fSchristos lwz 9,8(4) 861*1dcdf01fSchristos lwz 10,12(4) 862*1dcdf01fSchristos xor 16,16,7 863*1dcdf01fSchristos lwz 7,16(4) 864*1dcdf01fSchristos xor 17,17,8 865*1dcdf01fSchristos lwz 8,20(4) 866*1dcdf01fSchristos xor 18,18,9 867*1dcdf01fSchristos lwz 9,24(4) 868*1dcdf01fSchristos xor 19,19,10 869*1dcdf01fSchristos lwz 10,28(4) 870*1dcdf01fSchristos xor 20,20,7 871*1dcdf01fSchristos lwz 7,32(4) 872*1dcdf01fSchristos xor 21,21,8 873*1dcdf01fSchristos lwz 8,36(4) 874*1dcdf01fSchristos xor 22,22,9 875*1dcdf01fSchristos lwz 9,40(4) 876*1dcdf01fSchristos xor 23,23,10 877*1dcdf01fSchristos lwz 10,44(4) 878*1dcdf01fSchristos xor 24,24,7 879*1dcdf01fSchristos lwz 7,48(4) 880*1dcdf01fSchristos xor 25,25,8 881*1dcdf01fSchristos lwz 8,52(4) 882*1dcdf01fSchristos xor 26,26,9 883*1dcdf01fSchristos lwz 9,56(4) 884*1dcdf01fSchristos xor 27,27,10 885*1dcdf01fSchristos lwz 10,60(4) 886*1dcdf01fSchristos xor 28,28,7 887*1dcdf01fSchristos stw 16,0(3) 888*1dcdf01fSchristos xor 29,29,8 889*1dcdf01fSchristos stw 17,4(3) 890*1dcdf01fSchristos xor 30,30,9 891*1dcdf01fSchristos stw 18,8(3) 892*1dcdf01fSchristos xor 31,31,10 893*1dcdf01fSchristos stw 19,12(3) 894*1dcdf01fSchristos addi 4,4,64 895*1dcdf01fSchristos stw 20,16(3) 896*1dcdf01fSchristos li 7,16 897*1dcdf01fSchristos stw 21,20(3) 898*1dcdf01fSchristos li 8,32 899*1dcdf01fSchristos stw 22,24(3) 900*1dcdf01fSchristos li 9,48 901*1dcdf01fSchristos stw 23,28(3) 902*1dcdf01fSchristos li 10,64 903*1dcdf01fSchristos stw 24,32(3) 904*1dcdf01fSchristos stw 25,36(3) 905*1dcdf01fSchristos stw 26,40(3) 906*1dcdf01fSchristos stw 27,44(3) 907*1dcdf01fSchristos stw 28,48(3) 908*1dcdf01fSchristos stw 29,52(3) 909*1dcdf01fSchristos stw 30,56(3) 910*1dcdf01fSchristos stw 31,60(3) 911*1dcdf01fSchristos addi 3,3,64 912*1dcdf01fSchristos 913*1dcdf01fSchristos lvx 27,0,4 914*1dcdf01fSchristos lvx 28,7,4 915*1dcdf01fSchristos lvx 29,8,4 916*1dcdf01fSchristos lvx 30,9,4 917*1dcdf01fSchristos lvx 31,10,4 918*1dcdf01fSchristos addi 4,4,64 919*1dcdf01fSchristos 920*1dcdf01fSchristos vperm 27,27,28,24 921*1dcdf01fSchristos vperm 28,28,29,24 922*1dcdf01fSchristos vperm 29,29,30,24 923*1dcdf01fSchristos vperm 30,30,31,24 924*1dcdf01fSchristos vxor 0,0,27 925*1dcdf01fSchristos vxor 1,1,28 926*1dcdf01fSchristos lvx 28,7,4 927*1dcdf01fSchristos vxor 2,2,29 928*1dcdf01fSchristos lvx 29,8,4 929*1dcdf01fSchristos vxor 3,3,30 930*1dcdf01fSchristos lvx 30,9,4 931*1dcdf01fSchristos lvx 27,10,4 932*1dcdf01fSchristos addi 4,4,64 933*1dcdf01fSchristos li 10,63 934*1dcdf01fSchristos vperm 0,0,0,25 935*1dcdf01fSchristos vperm 1,1,1,25 936*1dcdf01fSchristos vperm 2,2,2,25 937*1dcdf01fSchristos vperm 3,3,3,25 938*1dcdf01fSchristos 939*1dcdf01fSchristos vperm 31,31,28,24 940*1dcdf01fSchristos vperm 28,28,29,24 941*1dcdf01fSchristos vperm 29,29,30,24 942*1dcdf01fSchristos vperm 30,30,27,24 943*1dcdf01fSchristos vxor 4,4,31 944*1dcdf01fSchristos vxor 5,5,28 945*1dcdf01fSchristos lvx 28,7,4 946*1dcdf01fSchristos vxor 6,6,29 947*1dcdf01fSchristos lvx 29,8,4 948*1dcdf01fSchristos vxor 7,7,30 949*1dcdf01fSchristos lvx 30,9,4 950*1dcdf01fSchristos lvx 31,10,4 951*1dcdf01fSchristos addi 4,4,64 952*1dcdf01fSchristos vperm 4,4,4,25 953*1dcdf01fSchristos vperm 5,5,5,25 954*1dcdf01fSchristos vperm 6,6,6,25 955*1dcdf01fSchristos vperm 7,7,7,25 956*1dcdf01fSchristos 957*1dcdf01fSchristos vperm 27,27,28,24 958*1dcdf01fSchristos vperm 28,28,29,24 959*1dcdf01fSchristos vperm 29,29,30,24 960*1dcdf01fSchristos vperm 30,30,31,24 961*1dcdf01fSchristos vxor 8,8,27 962*1dcdf01fSchristos vxor 9,9,28 963*1dcdf01fSchristos vxor 10,10,29 964*1dcdf01fSchristos vxor 11,11,30 965*1dcdf01fSchristos vperm 8,8,8,25 966*1dcdf01fSchristos vperm 9,9,9,25 967*1dcdf01fSchristos vperm 10,10,10,25 968*1dcdf01fSchristos vperm 11,11,11,25 969*1dcdf01fSchristos 970*1dcdf01fSchristos andi. 17,3,15 971*1dcdf01fSchristos mr 16,3 972*1dcdf01fSchristos 973*1dcdf01fSchristos vsel 27,0,1,26 974*1dcdf01fSchristos vsel 28,1,2,26 975*1dcdf01fSchristos vsel 29,2,3,26 976*1dcdf01fSchristos vsel 30,3,4,26 977*1dcdf01fSchristos vsel 1,4,5,26 978*1dcdf01fSchristos vsel 2,5,6,26 979*1dcdf01fSchristos vsel 3,6,7,26 980*1dcdf01fSchristos vsel 4,7,8,26 981*1dcdf01fSchristos vsel 5,8,9,26 982*1dcdf01fSchristos vsel 6,9,10,26 983*1dcdf01fSchristos vsel 7,10,11,26 984*1dcdf01fSchristos 985*1dcdf01fSchristos 986*1dcdf01fSchristos stvx 27,7,3 987*1dcdf01fSchristos stvx 28,8,3 988*1dcdf01fSchristos stvx 29,9,3 989*1dcdf01fSchristos addi 3,3,64 990*1dcdf01fSchristos stvx 30,0,3 991*1dcdf01fSchristos stvx 1,7,3 992*1dcdf01fSchristos stvx 2,8,3 993*1dcdf01fSchristos stvx 3,9,3 994*1dcdf01fSchristos addi 3,3,64 995*1dcdf01fSchristos stvx 4,0,3 996*1dcdf01fSchristos stvx 5,7,3 997*1dcdf01fSchristos stvx 6,8,3 998*1dcdf01fSchristos stvx 7,9,3 999*1dcdf01fSchristos addi 3,3,64 1000*1dcdf01fSchristos 1001*1dcdf01fSchristos beq .Laligned_vmx 1002*1dcdf01fSchristos 1003*1dcdf01fSchristos sub 18,3,17 1004*1dcdf01fSchristos li 19,0 1005*1dcdf01fSchristos.Lunaligned_tail_vmx: 1006*1dcdf01fSchristos stvebx 11,19,18 1007*1dcdf01fSchristos addi 19,19,1 1008*1dcdf01fSchristos cmpw 19,17 1009*1dcdf01fSchristos bne .Lunaligned_tail_vmx 1010*1dcdf01fSchristos 1011*1dcdf01fSchristos sub 18,16,17 1012*1dcdf01fSchristos.Lunaligned_head_vmx: 1013*1dcdf01fSchristos stvebx 0,17,18 1014*1dcdf01fSchristos cmpwi 17,15 1015*1dcdf01fSchristos addi 17,17,1 1016*1dcdf01fSchristos bne .Lunaligned_head_vmx 1017*1dcdf01fSchristos 1018*1dcdf01fSchristos cmpldi 5,255 1019*1dcdf01fSchristos bgt .Loop_outer_vmx 1020*1dcdf01fSchristos 1021*1dcdf01fSchristos b .Ldone_vmx 1022*1dcdf01fSchristos 1023*1dcdf01fSchristos.align 4 1024*1dcdf01fSchristos.Laligned_vmx: 1025*1dcdf01fSchristos stvx 0,0,16 1026*1dcdf01fSchristos 1027*1dcdf01fSchristos cmpldi 5,255 1028*1dcdf01fSchristos bgt .Loop_outer_vmx 1029*1dcdf01fSchristos nop 1030*1dcdf01fSchristos 1031*1dcdf01fSchristos.Ldone_vmx: 1032*1dcdf01fSchristos cmpldi 5,0 1033*1dcdf01fSchristos bnel __ChaCha20_1x 1034*1dcdf01fSchristos 1035*1dcdf01fSchristos lwz 12,268(1) 1036*1dcdf01fSchristos li 10,127 1037*1dcdf01fSchristos li 11,143 1038*1dcdf01fSchristos mtspr 256,12 1039*1dcdf01fSchristos lvx 23,10,1 1040*1dcdf01fSchristos addi 10,10,32 1041*1dcdf01fSchristos lvx 24,11,1 1042*1dcdf01fSchristos addi 11,11,32 1043*1dcdf01fSchristos lvx 25,10,1 1044*1dcdf01fSchristos addi 10,10,32 1045*1dcdf01fSchristos lvx 26,11,1 1046*1dcdf01fSchristos addi 11,11,32 1047*1dcdf01fSchristos lvx 27,10,1 1048*1dcdf01fSchristos addi 10,10,32 1049*1dcdf01fSchristos lvx 28,11,1 1050*1dcdf01fSchristos addi 11,11,32 1051*1dcdf01fSchristos lvx 29,10,1 1052*1dcdf01fSchristos addi 10,10,32 1053*1dcdf01fSchristos lvx 30,11,1 1054*1dcdf01fSchristos lvx 31,10,1 1055*1dcdf01fSchristos ld 0, 432(1) 1056*1dcdf01fSchristos ld 14,272(1) 1057*1dcdf01fSchristos ld 15,280(1) 1058*1dcdf01fSchristos ld 16,288(1) 1059*1dcdf01fSchristos ld 17,296(1) 1060*1dcdf01fSchristos ld 18,304(1) 1061*1dcdf01fSchristos ld 19,312(1) 1062*1dcdf01fSchristos ld 20,320(1) 1063*1dcdf01fSchristos ld 21,328(1) 1064*1dcdf01fSchristos ld 22,336(1) 1065*1dcdf01fSchristos ld 23,344(1) 1066*1dcdf01fSchristos ld 24,352(1) 1067*1dcdf01fSchristos ld 25,360(1) 1068*1dcdf01fSchristos ld 26,368(1) 1069*1dcdf01fSchristos ld 27,376(1) 1070*1dcdf01fSchristos ld 28,384(1) 1071*1dcdf01fSchristos ld 29,392(1) 1072*1dcdf01fSchristos ld 30,400(1) 1073*1dcdf01fSchristos ld 31,408(1) 1074*1dcdf01fSchristos mtlr 0 1075*1dcdf01fSchristos addi 1,1,416 1076*1dcdf01fSchristos blr 1077*1dcdf01fSchristos.long 0 1078*1dcdf01fSchristos.byte 0,12,0x04,1,0x80,18,5,0 1079*1dcdf01fSchristos.long 0 1080*1dcdf01fSchristos 1081*1dcdf01fSchristos 1082*1dcdf01fSchristos.globl ChaCha20_ctr32_vsx 1083*1dcdf01fSchristos.type ChaCha20_ctr32_vsx,@function 1084*1dcdf01fSchristos.section ".opd","aw" 1085*1dcdf01fSchristos.align 3 1086*1dcdf01fSchristosChaCha20_ctr32_vsx: 1087*1dcdf01fSchristos.quad .ChaCha20_ctr32_vsx,.TOC.@tocbase,0 1088*1dcdf01fSchristos.previous 1089*1dcdf01fSchristos.align 5 1090*1dcdf01fSchristos.ChaCha20_ctr32_vsx: 1091*1dcdf01fSchristos stdu 1,-224(1) 1092*1dcdf01fSchristos mflr 0 1093*1dcdf01fSchristos li 10,127 1094*1dcdf01fSchristos li 11,143 1095*1dcdf01fSchristos mfspr 12,256 1096*1dcdf01fSchristos stvx 26,10,1 1097*1dcdf01fSchristos addi 10,10,32 1098*1dcdf01fSchristos stvx 27,11,1 1099*1dcdf01fSchristos addi 11,11,32 1100*1dcdf01fSchristos stvx 28,10,1 1101*1dcdf01fSchristos addi 10,10,32 1102*1dcdf01fSchristos stvx 29,11,1 1103*1dcdf01fSchristos addi 11,11,32 1104*1dcdf01fSchristos stvx 30,10,1 1105*1dcdf01fSchristos stvx 31,11,1 1106*1dcdf01fSchristos stw 12,220(1) 1107*1dcdf01fSchristos li 12,-4096+63 1108*1dcdf01fSchristos std 0, 240(1) 1109*1dcdf01fSchristos mtspr 256,12 1110*1dcdf01fSchristos 1111*1dcdf01fSchristos bl .Lconsts 1112*1dcdf01fSchristos.long 0x7E006619 1113*1dcdf01fSchristos addi 12,12,0x50 1114*1dcdf01fSchristos li 8,16 1115*1dcdf01fSchristos li 9,32 1116*1dcdf01fSchristos li 10,48 1117*1dcdf01fSchristos li 11,64 1118*1dcdf01fSchristos 1119*1dcdf01fSchristos.long 0x7E203619 1120*1dcdf01fSchristos.long 0x7E483619 1121*1dcdf01fSchristos.long 0x7E603E19 1122*1dcdf01fSchristos 1123*1dcdf01fSchristos vxor 27,27,27 1124*1dcdf01fSchristos.long 0x7F8B6619 1125*1dcdf01fSchristos vspltw 26,19,0 1126*1dcdf01fSchristos vsldoi 19,19,27,4 1127*1dcdf01fSchristos vsldoi 19,27,19,12 1128*1dcdf01fSchristos vadduwm 26,26,28 1129*1dcdf01fSchristos 1130*1dcdf01fSchristos lvsl 31,0,8 1131*1dcdf01fSchristos vspltisb 27,3 1132*1dcdf01fSchristos vxor 31,31,27 1133*1dcdf01fSchristos 1134*1dcdf01fSchristos li 0,10 1135*1dcdf01fSchristos mtctr 0 1136*1dcdf01fSchristos b .Loop_outer_vsx 1137*1dcdf01fSchristos 1138*1dcdf01fSchristos.align 5 1139*1dcdf01fSchristos.Loop_outer_vsx: 1140*1dcdf01fSchristos lvx 0,0,12 1141*1dcdf01fSchristos lvx 1,8,12 1142*1dcdf01fSchristos lvx 2,9,12 1143*1dcdf01fSchristos lvx 3,10,12 1144*1dcdf01fSchristos 1145*1dcdf01fSchristos vspltw 4,17,0 1146*1dcdf01fSchristos vspltw 5,17,1 1147*1dcdf01fSchristos vspltw 6,17,2 1148*1dcdf01fSchristos vspltw 7,17,3 1149*1dcdf01fSchristos 1150*1dcdf01fSchristos vspltw 8,18,0 1151*1dcdf01fSchristos vspltw 9,18,1 1152*1dcdf01fSchristos vspltw 10,18,2 1153*1dcdf01fSchristos vspltw 11,18,3 1154*1dcdf01fSchristos 1155*1dcdf01fSchristos vor 12,26,26 1156*1dcdf01fSchristos vspltw 13,19,1 1157*1dcdf01fSchristos vspltw 14,19,2 1158*1dcdf01fSchristos vspltw 15,19,3 1159*1dcdf01fSchristos 1160*1dcdf01fSchristos vspltisw 27,-16 1161*1dcdf01fSchristos vspltisw 28,12 1162*1dcdf01fSchristos vspltisw 29,8 1163*1dcdf01fSchristos vspltisw 30,7 1164*1dcdf01fSchristos 1165*1dcdf01fSchristos.Loop_vsx: 1166*1dcdf01fSchristos vadduwm 0,0,4 1167*1dcdf01fSchristos vadduwm 1,1,5 1168*1dcdf01fSchristos vadduwm 2,2,6 1169*1dcdf01fSchristos vadduwm 3,3,7 1170*1dcdf01fSchristos vxor 12,12,0 1171*1dcdf01fSchristos vxor 13,13,1 1172*1dcdf01fSchristos vxor 14,14,2 1173*1dcdf01fSchristos vxor 15,15,3 1174*1dcdf01fSchristos vrlw 12,12,27 1175*1dcdf01fSchristos vrlw 13,13,27 1176*1dcdf01fSchristos vrlw 14,14,27 1177*1dcdf01fSchristos vrlw 15,15,27 1178*1dcdf01fSchristos vadduwm 8,8,12 1179*1dcdf01fSchristos vadduwm 9,9,13 1180*1dcdf01fSchristos vadduwm 10,10,14 1181*1dcdf01fSchristos vadduwm 11,11,15 1182*1dcdf01fSchristos vxor 4,4,8 1183*1dcdf01fSchristos vxor 5,5,9 1184*1dcdf01fSchristos vxor 6,6,10 1185*1dcdf01fSchristos vxor 7,7,11 1186*1dcdf01fSchristos vrlw 4,4,28 1187*1dcdf01fSchristos vrlw 5,5,28 1188*1dcdf01fSchristos vrlw 6,6,28 1189*1dcdf01fSchristos vrlw 7,7,28 1190*1dcdf01fSchristos vadduwm 0,0,4 1191*1dcdf01fSchristos vadduwm 1,1,5 1192*1dcdf01fSchristos vadduwm 2,2,6 1193*1dcdf01fSchristos vadduwm 3,3,7 1194*1dcdf01fSchristos vxor 12,12,0 1195*1dcdf01fSchristos vxor 13,13,1 1196*1dcdf01fSchristos vxor 14,14,2 1197*1dcdf01fSchristos vxor 15,15,3 1198*1dcdf01fSchristos vrlw 12,12,29 1199*1dcdf01fSchristos vrlw 13,13,29 1200*1dcdf01fSchristos vrlw 14,14,29 1201*1dcdf01fSchristos vrlw 15,15,29 1202*1dcdf01fSchristos vadduwm 8,8,12 1203*1dcdf01fSchristos vadduwm 9,9,13 1204*1dcdf01fSchristos vadduwm 10,10,14 1205*1dcdf01fSchristos vadduwm 11,11,15 1206*1dcdf01fSchristos vxor 4,4,8 1207*1dcdf01fSchristos vxor 5,5,9 1208*1dcdf01fSchristos vxor 6,6,10 1209*1dcdf01fSchristos vxor 7,7,11 1210*1dcdf01fSchristos vrlw 4,4,30 1211*1dcdf01fSchristos vrlw 5,5,30 1212*1dcdf01fSchristos vrlw 6,6,30 1213*1dcdf01fSchristos vrlw 7,7,30 1214*1dcdf01fSchristos vadduwm 0,0,5 1215*1dcdf01fSchristos vadduwm 1,1,6 1216*1dcdf01fSchristos vadduwm 2,2,7 1217*1dcdf01fSchristos vadduwm 3,3,4 1218*1dcdf01fSchristos vxor 15,15,0 1219*1dcdf01fSchristos vxor 12,12,1 1220*1dcdf01fSchristos vxor 13,13,2 1221*1dcdf01fSchristos vxor 14,14,3 1222*1dcdf01fSchristos vrlw 15,15,27 1223*1dcdf01fSchristos vrlw 12,12,27 1224*1dcdf01fSchristos vrlw 13,13,27 1225*1dcdf01fSchristos vrlw 14,14,27 1226*1dcdf01fSchristos vadduwm 10,10,15 1227*1dcdf01fSchristos vadduwm 11,11,12 1228*1dcdf01fSchristos vadduwm 8,8,13 1229*1dcdf01fSchristos vadduwm 9,9,14 1230*1dcdf01fSchristos vxor 5,5,10 1231*1dcdf01fSchristos vxor 6,6,11 1232*1dcdf01fSchristos vxor 7,7,8 1233*1dcdf01fSchristos vxor 4,4,9 1234*1dcdf01fSchristos vrlw 5,5,28 1235*1dcdf01fSchristos vrlw 6,6,28 1236*1dcdf01fSchristos vrlw 7,7,28 1237*1dcdf01fSchristos vrlw 4,4,28 1238*1dcdf01fSchristos vadduwm 0,0,5 1239*1dcdf01fSchristos vadduwm 1,1,6 1240*1dcdf01fSchristos vadduwm 2,2,7 1241*1dcdf01fSchristos vadduwm 3,3,4 1242*1dcdf01fSchristos vxor 15,15,0 1243*1dcdf01fSchristos vxor 12,12,1 1244*1dcdf01fSchristos vxor 13,13,2 1245*1dcdf01fSchristos vxor 14,14,3 1246*1dcdf01fSchristos vrlw 15,15,29 1247*1dcdf01fSchristos vrlw 12,12,29 1248*1dcdf01fSchristos vrlw 13,13,29 1249*1dcdf01fSchristos vrlw 14,14,29 1250*1dcdf01fSchristos vadduwm 10,10,15 1251*1dcdf01fSchristos vadduwm 11,11,12 1252*1dcdf01fSchristos vadduwm 8,8,13 1253*1dcdf01fSchristos vadduwm 9,9,14 1254*1dcdf01fSchristos vxor 5,5,10 1255*1dcdf01fSchristos vxor 6,6,11 1256*1dcdf01fSchristos vxor 7,7,8 1257*1dcdf01fSchristos vxor 4,4,9 1258*1dcdf01fSchristos vrlw 5,5,30 1259*1dcdf01fSchristos vrlw 6,6,30 1260*1dcdf01fSchristos vrlw 7,7,30 1261*1dcdf01fSchristos vrlw 4,4,30 1262*1dcdf01fSchristos bc 16,0,.Loop_vsx 1263*1dcdf01fSchristos 1264*1dcdf01fSchristos vadduwm 12,12,26 1265*1dcdf01fSchristos 1266*1dcdf01fSchristos.long 0x13600F8C 1267*1dcdf01fSchristos.long 0x13821F8C 1268*1dcdf01fSchristos.long 0x10000E8C 1269*1dcdf01fSchristos.long 0x10421E8C 1270*1dcdf01fSchristos.long 0x13A42F8C 1271*1dcdf01fSchristos.long 0x13C63F8C 1272*1dcdf01fSchristos.long 0xF0201057 1273*1dcdf01fSchristos.long 0xF0601357 1274*1dcdf01fSchristos.long 0xF01BE057 1275*1dcdf01fSchristos.long 0xF05BE357 1276*1dcdf01fSchristos 1277*1dcdf01fSchristos.long 0x10842E8C 1278*1dcdf01fSchristos.long 0x10C63E8C 1279*1dcdf01fSchristos.long 0x13684F8C 1280*1dcdf01fSchristos.long 0x138A5F8C 1281*1dcdf01fSchristos.long 0xF0A43057 1282*1dcdf01fSchristos.long 0xF0E43357 1283*1dcdf01fSchristos.long 0xF09DF057 1284*1dcdf01fSchristos.long 0xF0DDF357 1285*1dcdf01fSchristos 1286*1dcdf01fSchristos.long 0x11084E8C 1287*1dcdf01fSchristos.long 0x114A5E8C 1288*1dcdf01fSchristos.long 0x13AC6F8C 1289*1dcdf01fSchristos.long 0x13CE7F8C 1290*1dcdf01fSchristos.long 0xF1285057 1291*1dcdf01fSchristos.long 0xF1685357 1292*1dcdf01fSchristos.long 0xF11BE057 1293*1dcdf01fSchristos.long 0xF15BE357 1294*1dcdf01fSchristos 1295*1dcdf01fSchristos.long 0x118C6E8C 1296*1dcdf01fSchristos.long 0x11CE7E8C 1297*1dcdf01fSchristos vspltisw 27,4 1298*1dcdf01fSchristos vadduwm 26,26,27 1299*1dcdf01fSchristos.long 0xF1AC7057 1300*1dcdf01fSchristos.long 0xF1EC7357 1301*1dcdf01fSchristos.long 0xF19DF057 1302*1dcdf01fSchristos.long 0xF1DDF357 1303*1dcdf01fSchristos 1304*1dcdf01fSchristos vadduwm 0,0,16 1305*1dcdf01fSchristos vadduwm 4,4,17 1306*1dcdf01fSchristos vadduwm 8,8,18 1307*1dcdf01fSchristos vadduwm 12,12,19 1308*1dcdf01fSchristos 1309*1dcdf01fSchristos vperm 0,0,0,31 1310*1dcdf01fSchristos vperm 4,4,4,31 1311*1dcdf01fSchristos vperm 8,8,8,31 1312*1dcdf01fSchristos vperm 12,12,12,31 1313*1dcdf01fSchristos 1314*1dcdf01fSchristos cmpldi 5,0x40 1315*1dcdf01fSchristos blt .Ltail_vsx 1316*1dcdf01fSchristos 1317*1dcdf01fSchristos.long 0x7F602619 1318*1dcdf01fSchristos.long 0x7F882619 1319*1dcdf01fSchristos.long 0x7FA92619 1320*1dcdf01fSchristos.long 0x7FCA2619 1321*1dcdf01fSchristos 1322*1dcdf01fSchristos vxor 27,27,0 1323*1dcdf01fSchristos vxor 28,28,4 1324*1dcdf01fSchristos vxor 29,29,8 1325*1dcdf01fSchristos vxor 30,30,12 1326*1dcdf01fSchristos 1327*1dcdf01fSchristos.long 0x7F601F19 1328*1dcdf01fSchristos.long 0x7F881F19 1329*1dcdf01fSchristos addi 4,4,0x40 1330*1dcdf01fSchristos.long 0x7FA91F19 1331*1dcdf01fSchristos subi 5,5,0x40 1332*1dcdf01fSchristos.long 0x7FCA1F19 1333*1dcdf01fSchristos addi 3,3,0x40 1334*1dcdf01fSchristos beq .Ldone_vsx 1335*1dcdf01fSchristos 1336*1dcdf01fSchristos vadduwm 0,1,16 1337*1dcdf01fSchristos vadduwm 4,5,17 1338*1dcdf01fSchristos vadduwm 8,9,18 1339*1dcdf01fSchristos vadduwm 12,13,19 1340*1dcdf01fSchristos 1341*1dcdf01fSchristos vperm 0,0,0,31 1342*1dcdf01fSchristos vperm 4,4,4,31 1343*1dcdf01fSchristos vperm 8,8,8,31 1344*1dcdf01fSchristos vperm 12,12,12,31 1345*1dcdf01fSchristos 1346*1dcdf01fSchristos cmpldi 5,0x40 1347*1dcdf01fSchristos blt .Ltail_vsx 1348*1dcdf01fSchristos 1349*1dcdf01fSchristos.long 0x7F602619 1350*1dcdf01fSchristos.long 0x7F882619 1351*1dcdf01fSchristos.long 0x7FA92619 1352*1dcdf01fSchristos.long 0x7FCA2619 1353*1dcdf01fSchristos 1354*1dcdf01fSchristos vxor 27,27,0 1355*1dcdf01fSchristos vxor 28,28,4 1356*1dcdf01fSchristos vxor 29,29,8 1357*1dcdf01fSchristos vxor 30,30,12 1358*1dcdf01fSchristos 1359*1dcdf01fSchristos.long 0x7F601F19 1360*1dcdf01fSchristos.long 0x7F881F19 1361*1dcdf01fSchristos addi 4,4,0x40 1362*1dcdf01fSchristos.long 0x7FA91F19 1363*1dcdf01fSchristos subi 5,5,0x40 1364*1dcdf01fSchristos.long 0x7FCA1F19 1365*1dcdf01fSchristos addi 3,3,0x40 1366*1dcdf01fSchristos beq .Ldone_vsx 1367*1dcdf01fSchristos 1368*1dcdf01fSchristos vadduwm 0,2,16 1369*1dcdf01fSchristos vadduwm 4,6,17 1370*1dcdf01fSchristos vadduwm 8,10,18 1371*1dcdf01fSchristos vadduwm 12,14,19 1372*1dcdf01fSchristos 1373*1dcdf01fSchristos vperm 0,0,0,31 1374*1dcdf01fSchristos vperm 4,4,4,31 1375*1dcdf01fSchristos vperm 8,8,8,31 1376*1dcdf01fSchristos vperm 12,12,12,31 1377*1dcdf01fSchristos 1378*1dcdf01fSchristos cmpldi 5,0x40 1379*1dcdf01fSchristos blt .Ltail_vsx 1380*1dcdf01fSchristos 1381*1dcdf01fSchristos.long 0x7F602619 1382*1dcdf01fSchristos.long 0x7F882619 1383*1dcdf01fSchristos.long 0x7FA92619 1384*1dcdf01fSchristos.long 0x7FCA2619 1385*1dcdf01fSchristos 1386*1dcdf01fSchristos vxor 27,27,0 1387*1dcdf01fSchristos vxor 28,28,4 1388*1dcdf01fSchristos vxor 29,29,8 1389*1dcdf01fSchristos vxor 30,30,12 1390*1dcdf01fSchristos 1391*1dcdf01fSchristos.long 0x7F601F19 1392*1dcdf01fSchristos.long 0x7F881F19 1393*1dcdf01fSchristos addi 4,4,0x40 1394*1dcdf01fSchristos.long 0x7FA91F19 1395*1dcdf01fSchristos subi 5,5,0x40 1396*1dcdf01fSchristos.long 0x7FCA1F19 1397*1dcdf01fSchristos addi 3,3,0x40 1398*1dcdf01fSchristos beq .Ldone_vsx 1399*1dcdf01fSchristos 1400*1dcdf01fSchristos vadduwm 0,3,16 1401*1dcdf01fSchristos vadduwm 4,7,17 1402*1dcdf01fSchristos vadduwm 8,11,18 1403*1dcdf01fSchristos vadduwm 12,15,19 1404*1dcdf01fSchristos 1405*1dcdf01fSchristos vperm 0,0,0,31 1406*1dcdf01fSchristos vperm 4,4,4,31 1407*1dcdf01fSchristos vperm 8,8,8,31 1408*1dcdf01fSchristos vperm 12,12,12,31 1409*1dcdf01fSchristos 1410*1dcdf01fSchristos cmpldi 5,0x40 1411*1dcdf01fSchristos blt .Ltail_vsx 1412*1dcdf01fSchristos 1413*1dcdf01fSchristos.long 0x7F602619 1414*1dcdf01fSchristos.long 0x7F882619 1415*1dcdf01fSchristos.long 0x7FA92619 1416*1dcdf01fSchristos.long 0x7FCA2619 1417*1dcdf01fSchristos 1418*1dcdf01fSchristos vxor 27,27,0 1419*1dcdf01fSchristos vxor 28,28,4 1420*1dcdf01fSchristos vxor 29,29,8 1421*1dcdf01fSchristos vxor 30,30,12 1422*1dcdf01fSchristos 1423*1dcdf01fSchristos.long 0x7F601F19 1424*1dcdf01fSchristos.long 0x7F881F19 1425*1dcdf01fSchristos addi 4,4,0x40 1426*1dcdf01fSchristos.long 0x7FA91F19 1427*1dcdf01fSchristos subi 5,5,0x40 1428*1dcdf01fSchristos.long 0x7FCA1F19 1429*1dcdf01fSchristos addi 3,3,0x40 1430*1dcdf01fSchristos mtctr 0 1431*1dcdf01fSchristos bne .Loop_outer_vsx 1432*1dcdf01fSchristos 1433*1dcdf01fSchristos.Ldone_vsx: 1434*1dcdf01fSchristos lwz 12,220(1) 1435*1dcdf01fSchristos li 10,127 1436*1dcdf01fSchristos li 11,143 1437*1dcdf01fSchristos ld 0, 240(1) 1438*1dcdf01fSchristos mtspr 256,12 1439*1dcdf01fSchristos lvx 26,10,1 1440*1dcdf01fSchristos addi 10,10,32 1441*1dcdf01fSchristos lvx 27,11,1 1442*1dcdf01fSchristos addi 11,11,32 1443*1dcdf01fSchristos lvx 28,10,1 1444*1dcdf01fSchristos addi 10,10,32 1445*1dcdf01fSchristos lvx 29,11,1 1446*1dcdf01fSchristos addi 11,11,32 1447*1dcdf01fSchristos lvx 30,10,1 1448*1dcdf01fSchristos lvx 31,11,1 1449*1dcdf01fSchristos mtlr 0 1450*1dcdf01fSchristos addi 1,1,224 1451*1dcdf01fSchristos blr 1452*1dcdf01fSchristos 1453*1dcdf01fSchristos.align 4 1454*1dcdf01fSchristos.Ltail_vsx: 1455*1dcdf01fSchristos addi 11,1,48 1456*1dcdf01fSchristos mtctr 5 1457*1dcdf01fSchristos.long 0x7C005F19 1458*1dcdf01fSchristos.long 0x7C885F19 1459*1dcdf01fSchristos.long 0x7D095F19 1460*1dcdf01fSchristos.long 0x7D8A5F19 1461*1dcdf01fSchristos subi 12,11,1 1462*1dcdf01fSchristos subi 4,4,1 1463*1dcdf01fSchristos subi 3,3,1 1464*1dcdf01fSchristos 1465*1dcdf01fSchristos.Loop_tail_vsx: 1466*1dcdf01fSchristos lbzu 6,1(12) 1467*1dcdf01fSchristos lbzu 7,1(4) 1468*1dcdf01fSchristos xor 6,6,7 1469*1dcdf01fSchristos stbu 6,1(3) 1470*1dcdf01fSchristos bc 16,0,.Loop_tail_vsx 1471*1dcdf01fSchristos 1472*1dcdf01fSchristos.long 0x7E005F19 1473*1dcdf01fSchristos.long 0x7E085F19 1474*1dcdf01fSchristos.long 0x7E095F19 1475*1dcdf01fSchristos.long 0x7E0A5F19 1476*1dcdf01fSchristos 1477*1dcdf01fSchristos b .Ldone_vsx 1478*1dcdf01fSchristos.long 0 1479*1dcdf01fSchristos.byte 0,12,0x04,1,0x80,0,5,0 1480*1dcdf01fSchristos.long 0 1481*1dcdf01fSchristos 1482*1dcdf01fSchristos.align 5 1483*1dcdf01fSchristos.Lconsts: 1484*1dcdf01fSchristos mflr 0 1485*1dcdf01fSchristos bcl 20,31,$+4 1486*1dcdf01fSchristos mflr 12 1487*1dcdf01fSchristos addi 12,12,56 1488*1dcdf01fSchristos mtlr 0 1489*1dcdf01fSchristos blr 1490*1dcdf01fSchristos.long 0 1491*1dcdf01fSchristos.byte 0,12,0x14,0,0,0,0,0 1492*1dcdf01fSchristos.space 28 1493*1dcdf01fSchristos.Lsigma: 1494*1dcdf01fSchristos.long 0x61707865,0x3320646e,0x79622d32,0x6b206574 1495*1dcdf01fSchristos.long 1,0,0,0 1496*1dcdf01fSchristos.long 4,0,0,0 1497*1dcdf01fSchristos.long 0x02030001,0x06070405,0x0a0b0809,0x0e0f0c0d 1498*1dcdf01fSchristos.long 0x01020300,0x05060704,0x090a0b08,0x0d0e0f0c 1499*1dcdf01fSchristos.long 0x61707865,0x61707865,0x61707865,0x61707865 1500*1dcdf01fSchristos.long 0x3320646e,0x3320646e,0x3320646e,0x3320646e 1501*1dcdf01fSchristos.long 0x79622d32,0x79622d32,0x79622d32,0x79622d32 1502*1dcdf01fSchristos.long 0x6b206574,0x6b206574,0x6b206574,0x6b206574 1503*1dcdf01fSchristos.long 0,1,2,3 1504*1dcdf01fSchristos.byte 67,104,97,67,104,97,50,48,32,102,111,114,32,80,111,119,101,114,80,67,47,65,108,116,105,86,101,99,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 1505*1dcdf01fSchristos.align 2 1506*1dcdf01fSchristos.align 2 1507