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