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