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