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