12ac7033aSchristos.machine "any" 22ac7033aSchristos.text 32ac7033aSchristos 42ac7033aSchristos.globl ChaCha20_ctr32_int 52ac7033aSchristos.type ChaCha20_ctr32_int,@function 62ac7033aSchristos.section ".opd","aw" 72ac7033aSchristos.align 3 82ac7033aSchristosChaCha20_ctr32_int: 92ac7033aSchristos.quad .ChaCha20_ctr32_int,.TOC.@tocbase,0 102ac7033aSchristos.previous 112ac7033aSchristos.align 5 122ac7033aSchristos.ChaCha20_ctr32_int: 132ac7033aSchristos__ChaCha20_ctr32_int: 142ac7033aSchristos cmpldi 5,0 152ac7033aSchristos beqlr 162ac7033aSchristos 172ac7033aSchristos stdu 1,-256(1) 182ac7033aSchristos mflr 0 192ac7033aSchristos 202ac7033aSchristos std 14,112(1) 212ac7033aSchristos std 15,120(1) 222ac7033aSchristos std 16,128(1) 232ac7033aSchristos std 17,136(1) 242ac7033aSchristos std 18,144(1) 252ac7033aSchristos std 19,152(1) 262ac7033aSchristos std 20,160(1) 272ac7033aSchristos std 21,168(1) 282ac7033aSchristos std 22,176(1) 292ac7033aSchristos std 23,184(1) 302ac7033aSchristos std 24,192(1) 312ac7033aSchristos std 25,200(1) 322ac7033aSchristos std 26,208(1) 332ac7033aSchristos std 27,216(1) 342ac7033aSchristos std 28,224(1) 352ac7033aSchristos std 29,232(1) 362ac7033aSchristos std 30,240(1) 372ac7033aSchristos std 31,248(1) 382ac7033aSchristos std 0,272(1) 392ac7033aSchristos 402ac7033aSchristos lwz 11,0(7) 412ac7033aSchristos lwz 12,4(7) 422ac7033aSchristos lwz 14,8(7) 432ac7033aSchristos lwz 15,12(7) 442ac7033aSchristos 452ac7033aSchristos bl __ChaCha20_1x 462ac7033aSchristos 472ac7033aSchristos ld 0,272(1) 482ac7033aSchristos ld 14,112(1) 492ac7033aSchristos ld 15,120(1) 502ac7033aSchristos ld 16,128(1) 512ac7033aSchristos ld 17,136(1) 522ac7033aSchristos ld 18,144(1) 532ac7033aSchristos ld 19,152(1) 542ac7033aSchristos ld 20,160(1) 552ac7033aSchristos ld 21,168(1) 562ac7033aSchristos ld 22,176(1) 572ac7033aSchristos ld 23,184(1) 582ac7033aSchristos ld 24,192(1) 592ac7033aSchristos ld 25,200(1) 602ac7033aSchristos ld 26,208(1) 612ac7033aSchristos ld 27,216(1) 622ac7033aSchristos ld 28,224(1) 632ac7033aSchristos ld 29,232(1) 642ac7033aSchristos ld 30,240(1) 652ac7033aSchristos ld 31,248(1) 662ac7033aSchristos mtlr 0 672ac7033aSchristos addi 1,1,256 682ac7033aSchristos blr 692ac7033aSchristos.long 0 702ac7033aSchristos.byte 0,12,4,1,0x80,18,5,0 712ac7033aSchristos.long 0 722ac7033aSchristos 732ac7033aSchristos 742ac7033aSchristos.align 5 752ac7033aSchristos__ChaCha20_1x: 762ac7033aSchristos.Loop_outer: 772ac7033aSchristos lis 16,0x6170 782ac7033aSchristos lis 17,0x3320 792ac7033aSchristos lis 18,0x7962 802ac7033aSchristos lis 19,0x6b20 812ac7033aSchristos ori 16,16,0x7865 822ac7033aSchristos ori 17,17,0x646e 832ac7033aSchristos ori 18,18,0x2d32 842ac7033aSchristos ori 19,19,0x6574 852ac7033aSchristos 862ac7033aSchristos li 0,10 872ac7033aSchristos lwz 20,0(6) 882ac7033aSchristos lwz 21,4(6) 892ac7033aSchristos lwz 22,8(6) 902ac7033aSchristos lwz 23,12(6) 912ac7033aSchristos lwz 24,16(6) 922ac7033aSchristos mr 28,11 932ac7033aSchristos lwz 25,20(6) 942ac7033aSchristos mr 29,12 952ac7033aSchristos lwz 26,24(6) 962ac7033aSchristos mr 30,14 972ac7033aSchristos lwz 27,28(6) 982ac7033aSchristos mr 31,15 992ac7033aSchristos 1002ac7033aSchristos mr 7,20 1012ac7033aSchristos mr 8,21 1022ac7033aSchristos mr 9,22 1032ac7033aSchristos mr 10,23 1042ac7033aSchristos 1052ac7033aSchristos mtctr 0 1062ac7033aSchristos.Loop: 1072ac7033aSchristos add 16,16,20 1082ac7033aSchristos add 17,17,21 1092ac7033aSchristos add 18,18,22 1102ac7033aSchristos add 19,19,23 1112ac7033aSchristos xor 28,28,16 1122ac7033aSchristos xor 29,29,17 1132ac7033aSchristos xor 30,30,18 1142ac7033aSchristos xor 31,31,19 1152ac7033aSchristos rotlwi 28,28,16 1162ac7033aSchristos rotlwi 29,29,16 1172ac7033aSchristos rotlwi 30,30,16 1182ac7033aSchristos rotlwi 31,31,16 1192ac7033aSchristos add 24,24,28 1202ac7033aSchristos add 25,25,29 1212ac7033aSchristos add 26,26,30 1222ac7033aSchristos add 27,27,31 1232ac7033aSchristos xor 20,20,24 1242ac7033aSchristos xor 21,21,25 1252ac7033aSchristos xor 22,22,26 1262ac7033aSchristos xor 23,23,27 1272ac7033aSchristos rotlwi 20,20,12 1282ac7033aSchristos rotlwi 21,21,12 1292ac7033aSchristos rotlwi 22,22,12 1302ac7033aSchristos rotlwi 23,23,12 1312ac7033aSchristos add 16,16,20 1322ac7033aSchristos add 17,17,21 1332ac7033aSchristos add 18,18,22 1342ac7033aSchristos add 19,19,23 1352ac7033aSchristos xor 28,28,16 1362ac7033aSchristos xor 29,29,17 1372ac7033aSchristos xor 30,30,18 1382ac7033aSchristos xor 31,31,19 1392ac7033aSchristos rotlwi 28,28,8 1402ac7033aSchristos rotlwi 29,29,8 1412ac7033aSchristos rotlwi 30,30,8 1422ac7033aSchristos rotlwi 31,31,8 1432ac7033aSchristos add 24,24,28 1442ac7033aSchristos add 25,25,29 1452ac7033aSchristos add 26,26,30 1462ac7033aSchristos add 27,27,31 1472ac7033aSchristos xor 20,20,24 1482ac7033aSchristos xor 21,21,25 1492ac7033aSchristos xor 22,22,26 1502ac7033aSchristos xor 23,23,27 1512ac7033aSchristos rotlwi 20,20,7 1522ac7033aSchristos rotlwi 21,21,7 1532ac7033aSchristos rotlwi 22,22,7 1542ac7033aSchristos rotlwi 23,23,7 1552ac7033aSchristos add 16,16,21 1562ac7033aSchristos add 17,17,22 1572ac7033aSchristos add 18,18,23 1582ac7033aSchristos add 19,19,20 1592ac7033aSchristos xor 31,31,16 1602ac7033aSchristos xor 28,28,17 1612ac7033aSchristos xor 29,29,18 1622ac7033aSchristos xor 30,30,19 1632ac7033aSchristos rotlwi 31,31,16 1642ac7033aSchristos rotlwi 28,28,16 1652ac7033aSchristos rotlwi 29,29,16 1662ac7033aSchristos rotlwi 30,30,16 1672ac7033aSchristos add 26,26,31 1682ac7033aSchristos add 27,27,28 1692ac7033aSchristos add 24,24,29 1702ac7033aSchristos add 25,25,30 1712ac7033aSchristos xor 21,21,26 1722ac7033aSchristos xor 22,22,27 1732ac7033aSchristos xor 23,23,24 1742ac7033aSchristos xor 20,20,25 1752ac7033aSchristos rotlwi 21,21,12 1762ac7033aSchristos rotlwi 22,22,12 1772ac7033aSchristos rotlwi 23,23,12 1782ac7033aSchristos rotlwi 20,20,12 1792ac7033aSchristos add 16,16,21 1802ac7033aSchristos add 17,17,22 1812ac7033aSchristos add 18,18,23 1822ac7033aSchristos add 19,19,20 1832ac7033aSchristos xor 31,31,16 1842ac7033aSchristos xor 28,28,17 1852ac7033aSchristos xor 29,29,18 1862ac7033aSchristos xor 30,30,19 1872ac7033aSchristos rotlwi 31,31,8 1882ac7033aSchristos rotlwi 28,28,8 1892ac7033aSchristos rotlwi 29,29,8 1902ac7033aSchristos rotlwi 30,30,8 1912ac7033aSchristos add 26,26,31 1922ac7033aSchristos add 27,27,28 1932ac7033aSchristos add 24,24,29 1942ac7033aSchristos add 25,25,30 1952ac7033aSchristos xor 21,21,26 1962ac7033aSchristos xor 22,22,27 1972ac7033aSchristos xor 23,23,24 1982ac7033aSchristos xor 20,20,25 1992ac7033aSchristos rotlwi 21,21,7 2002ac7033aSchristos rotlwi 22,22,7 2012ac7033aSchristos rotlwi 23,23,7 2022ac7033aSchristos rotlwi 20,20,7 2032ac7033aSchristos bc 16,0,.Loop 2042ac7033aSchristos 2052ac7033aSchristos subic 5,5,64 2062ac7033aSchristos addi 16,16,0x7865 2072ac7033aSchristos addi 17,17,0x646e 2082ac7033aSchristos addi 18,18,0x2d32 2092ac7033aSchristos addi 19,19,0x6574 2102ac7033aSchristos addis 16,16,0x6170 2112ac7033aSchristos addis 17,17,0x3320 2122ac7033aSchristos addis 18,18,0x7962 2132ac7033aSchristos addis 19,19,0x6b20 2142ac7033aSchristos 2152ac7033aSchristos subfe. 0,0,0 2162ac7033aSchristos add 20,20,7 2172ac7033aSchristos lwz 7,16(6) 2182ac7033aSchristos add 21,21,8 2192ac7033aSchristos lwz 8,20(6) 2202ac7033aSchristos add 22,22,9 2212ac7033aSchristos lwz 9,24(6) 2222ac7033aSchristos add 23,23,10 2232ac7033aSchristos lwz 10,28(6) 2242ac7033aSchristos add 24,24,7 2252ac7033aSchristos add 25,25,8 2262ac7033aSchristos add 26,26,9 2272ac7033aSchristos add 27,27,10 2282ac7033aSchristos 2292ac7033aSchristos add 28,28,11 2302ac7033aSchristos add 29,29,12 2312ac7033aSchristos add 30,30,14 2322ac7033aSchristos add 31,31,15 2332ac7033aSchristos addi 11,11,1 2342ac7033aSchristos mr 7,16 2352ac7033aSchristos rotlwi 16,16,8 2362ac7033aSchristos rlwimi 16,7,24,0,7 2372ac7033aSchristos rlwimi 16,7,24,16,23 2382ac7033aSchristos mr 8,17 2392ac7033aSchristos rotlwi 17,17,8 2402ac7033aSchristos rlwimi 17,8,24,0,7 2412ac7033aSchristos rlwimi 17,8,24,16,23 2422ac7033aSchristos mr 9,18 2432ac7033aSchristos rotlwi 18,18,8 2442ac7033aSchristos rlwimi 18,9,24,0,7 2452ac7033aSchristos rlwimi 18,9,24,16,23 2462ac7033aSchristos mr 10,19 2472ac7033aSchristos rotlwi 19,19,8 2482ac7033aSchristos rlwimi 19,10,24,0,7 2492ac7033aSchristos rlwimi 19,10,24,16,23 2502ac7033aSchristos mr 7,20 2512ac7033aSchristos rotlwi 20,20,8 2522ac7033aSchristos rlwimi 20,7,24,0,7 2532ac7033aSchristos rlwimi 20,7,24,16,23 2542ac7033aSchristos mr 8,21 2552ac7033aSchristos rotlwi 21,21,8 2562ac7033aSchristos rlwimi 21,8,24,0,7 2572ac7033aSchristos rlwimi 21,8,24,16,23 2582ac7033aSchristos mr 9,22 2592ac7033aSchristos rotlwi 22,22,8 2602ac7033aSchristos rlwimi 22,9,24,0,7 2612ac7033aSchristos rlwimi 22,9,24,16,23 2622ac7033aSchristos mr 10,23 2632ac7033aSchristos rotlwi 23,23,8 2642ac7033aSchristos rlwimi 23,10,24,0,7 2652ac7033aSchristos rlwimi 23,10,24,16,23 2662ac7033aSchristos mr 7,24 2672ac7033aSchristos rotlwi 24,24,8 2682ac7033aSchristos rlwimi 24,7,24,0,7 2692ac7033aSchristos rlwimi 24,7,24,16,23 2702ac7033aSchristos mr 8,25 2712ac7033aSchristos rotlwi 25,25,8 2722ac7033aSchristos rlwimi 25,8,24,0,7 2732ac7033aSchristos rlwimi 25,8,24,16,23 2742ac7033aSchristos mr 9,26 2752ac7033aSchristos rotlwi 26,26,8 2762ac7033aSchristos rlwimi 26,9,24,0,7 2772ac7033aSchristos rlwimi 26,9,24,16,23 2782ac7033aSchristos mr 10,27 2792ac7033aSchristos rotlwi 27,27,8 2802ac7033aSchristos rlwimi 27,10,24,0,7 2812ac7033aSchristos rlwimi 27,10,24,16,23 2822ac7033aSchristos mr 7,28 2832ac7033aSchristos rotlwi 28,28,8 2842ac7033aSchristos rlwimi 28,7,24,0,7 2852ac7033aSchristos rlwimi 28,7,24,16,23 2862ac7033aSchristos mr 8,29 2872ac7033aSchristos rotlwi 29,29,8 2882ac7033aSchristos rlwimi 29,8,24,0,7 2892ac7033aSchristos rlwimi 29,8,24,16,23 2902ac7033aSchristos mr 9,30 2912ac7033aSchristos rotlwi 30,30,8 2922ac7033aSchristos rlwimi 30,9,24,0,7 2932ac7033aSchristos rlwimi 30,9,24,16,23 2942ac7033aSchristos mr 10,31 2952ac7033aSchristos rotlwi 31,31,8 2962ac7033aSchristos rlwimi 31,10,24,0,7 2972ac7033aSchristos rlwimi 31,10,24,16,23 2982ac7033aSchristos bne .Ltail 2992ac7033aSchristos 3002ac7033aSchristos lwz 7,0(4) 3012ac7033aSchristos lwz 8,4(4) 3022ac7033aSchristos cmpldi 5,0 3032ac7033aSchristos lwz 9,8(4) 3042ac7033aSchristos lwz 10,12(4) 3052ac7033aSchristos xor 16,16,7 3062ac7033aSchristos lwz 7,16(4) 3072ac7033aSchristos xor 17,17,8 3082ac7033aSchristos lwz 8,20(4) 3092ac7033aSchristos xor 18,18,9 3102ac7033aSchristos lwz 9,24(4) 3112ac7033aSchristos xor 19,19,10 3122ac7033aSchristos lwz 10,28(4) 3132ac7033aSchristos xor 20,20,7 3142ac7033aSchristos lwz 7,32(4) 3152ac7033aSchristos xor 21,21,8 3162ac7033aSchristos lwz 8,36(4) 3172ac7033aSchristos xor 22,22,9 3182ac7033aSchristos lwz 9,40(4) 3192ac7033aSchristos xor 23,23,10 3202ac7033aSchristos lwz 10,44(4) 3212ac7033aSchristos xor 24,24,7 3222ac7033aSchristos lwz 7,48(4) 3232ac7033aSchristos xor 25,25,8 3242ac7033aSchristos lwz 8,52(4) 3252ac7033aSchristos xor 26,26,9 3262ac7033aSchristos lwz 9,56(4) 3272ac7033aSchristos xor 27,27,10 3282ac7033aSchristos lwz 10,60(4) 3292ac7033aSchristos xor 28,28,7 3302ac7033aSchristos stw 16,0(3) 3312ac7033aSchristos xor 29,29,8 3322ac7033aSchristos stw 17,4(3) 3332ac7033aSchristos xor 30,30,9 3342ac7033aSchristos stw 18,8(3) 3352ac7033aSchristos xor 31,31,10 3362ac7033aSchristos stw 19,12(3) 3372ac7033aSchristos stw 20,16(3) 3382ac7033aSchristos stw 21,20(3) 3392ac7033aSchristos stw 22,24(3) 3402ac7033aSchristos stw 23,28(3) 3412ac7033aSchristos stw 24,32(3) 3422ac7033aSchristos stw 25,36(3) 3432ac7033aSchristos stw 26,40(3) 3442ac7033aSchristos stw 27,44(3) 3452ac7033aSchristos stw 28,48(3) 3462ac7033aSchristos stw 29,52(3) 3472ac7033aSchristos stw 30,56(3) 3482ac7033aSchristos addi 4,4,64 3492ac7033aSchristos stw 31,60(3) 3502ac7033aSchristos addi 3,3,64 3512ac7033aSchristos 3522ac7033aSchristos bne .Loop_outer 3532ac7033aSchristos 3542ac7033aSchristos blr 3552ac7033aSchristos 3562ac7033aSchristos.align 4 3572ac7033aSchristos.Ltail: 3582ac7033aSchristos addi 5,5,64 3592ac7033aSchristos subi 4,4,1 3602ac7033aSchristos subi 3,3,1 3612ac7033aSchristos addi 7,1,48-1 3622ac7033aSchristos mtctr 5 3632ac7033aSchristos 3642ac7033aSchristos stw 16,48(1) 3652ac7033aSchristos stw 17,52(1) 3662ac7033aSchristos stw 18,56(1) 3672ac7033aSchristos stw 19,60(1) 3682ac7033aSchristos stw 20,64(1) 3692ac7033aSchristos stw 21,68(1) 3702ac7033aSchristos stw 22,72(1) 3712ac7033aSchristos stw 23,76(1) 3722ac7033aSchristos stw 24,80(1) 3732ac7033aSchristos stw 25,84(1) 3742ac7033aSchristos stw 26,88(1) 3752ac7033aSchristos stw 27,92(1) 3762ac7033aSchristos stw 28,96(1) 3772ac7033aSchristos stw 29,100(1) 3782ac7033aSchristos stw 30,104(1) 3792ac7033aSchristos stw 31,108(1) 3802ac7033aSchristos 3812ac7033aSchristos.Loop_tail: 3822ac7033aSchristos lbzu 11,1(4) 3832ac7033aSchristos lbzu 16,1(7) 3842ac7033aSchristos xor 12,11,16 3852ac7033aSchristos stbu 12,1(3) 3862ac7033aSchristos bc 16,0,.Loop_tail 3872ac7033aSchristos 3882ac7033aSchristos stw 1,48(1) 3892ac7033aSchristos stw 1,52(1) 3902ac7033aSchristos stw 1,56(1) 3912ac7033aSchristos stw 1,60(1) 3922ac7033aSchristos stw 1,64(1) 3932ac7033aSchristos stw 1,68(1) 3942ac7033aSchristos stw 1,72(1) 3952ac7033aSchristos stw 1,76(1) 3962ac7033aSchristos stw 1,80(1) 3972ac7033aSchristos stw 1,84(1) 3982ac7033aSchristos stw 1,88(1) 3992ac7033aSchristos stw 1,92(1) 4002ac7033aSchristos stw 1,96(1) 4012ac7033aSchristos stw 1,100(1) 4022ac7033aSchristos stw 1,104(1) 4032ac7033aSchristos stw 1,108(1) 4042ac7033aSchristos 4052ac7033aSchristos blr 4062ac7033aSchristos.long 0 4072ac7033aSchristos.byte 0,12,0x14,0,0,0,0,0 4082ac7033aSchristos 4092ac7033aSchristos.globl ChaCha20_ctr32_vmx 4102ac7033aSchristos.type ChaCha20_ctr32_vmx,@function 4112ac7033aSchristos.section ".opd","aw" 4122ac7033aSchristos.align 3 4132ac7033aSchristosChaCha20_ctr32_vmx: 4142ac7033aSchristos.quad .ChaCha20_ctr32_vmx,.TOC.@tocbase,0 4152ac7033aSchristos.previous 4162ac7033aSchristos.align 5 4172ac7033aSchristos.ChaCha20_ctr32_vmx: 4182ac7033aSchristos cmpldi 5,256 4192ac7033aSchristos blt __ChaCha20_ctr32_int 4202ac7033aSchristos 421*e0ea3921Schristos stdu 1,-416(1) 4222ac7033aSchristos mflr 0 4232ac7033aSchristos li 10,127 4242ac7033aSchristos li 11,143 4252ac7033aSchristos mfspr 12,256 426*e0ea3921Schristos stvx 23,10,1 4272ac7033aSchristos addi 10,10,32 428*e0ea3921Schristos stvx 24,11,1 4292ac7033aSchristos addi 11,11,32 430*e0ea3921Schristos stvx 25,10,1 4312ac7033aSchristos addi 10,10,32 432*e0ea3921Schristos stvx 26,11,1 4332ac7033aSchristos addi 11,11,32 434*e0ea3921Schristos stvx 27,10,1 4352ac7033aSchristos addi 10,10,32 436*e0ea3921Schristos stvx 28,11,1 4372ac7033aSchristos addi 11,11,32 438*e0ea3921Schristos stvx 29,10,1 4392ac7033aSchristos addi 10,10,32 440*e0ea3921Schristos stvx 30,11,1 441*e0ea3921Schristos stvx 31,10,1 442*e0ea3921Schristos stw 12,268(1) 443*e0ea3921Schristos std 14,272(1) 444*e0ea3921Schristos std 15,280(1) 445*e0ea3921Schristos std 16,288(1) 446*e0ea3921Schristos std 17,296(1) 447*e0ea3921Schristos std 18,304(1) 448*e0ea3921Schristos std 19,312(1) 449*e0ea3921Schristos std 20,320(1) 450*e0ea3921Schristos std 21,328(1) 451*e0ea3921Schristos std 22,336(1) 452*e0ea3921Schristos std 23,344(1) 453*e0ea3921Schristos std 24,352(1) 454*e0ea3921Schristos std 25,360(1) 455*e0ea3921Schristos std 26,368(1) 456*e0ea3921Schristos std 27,376(1) 457*e0ea3921Schristos std 28,384(1) 458*e0ea3921Schristos std 29,392(1) 459*e0ea3921Schristos std 30,400(1) 460*e0ea3921Schristos std 31,408(1) 461*e0ea3921Schristos li 12,-4096+511 462*e0ea3921Schristos std 0, 432(1) 4632ac7033aSchristos mtspr 256,12 4642ac7033aSchristos 4652ac7033aSchristos bl .Lconsts 4662ac7033aSchristos li 16,16 4672ac7033aSchristos li 17,32 4682ac7033aSchristos li 18,48 4692ac7033aSchristos li 19,64 4702ac7033aSchristos li 20,31 4712ac7033aSchristos li 21,15 4722ac7033aSchristos 473*e0ea3921Schristos lvx 13,0,6 474*e0ea3921Schristos lvsl 29,0,6 475*e0ea3921Schristos lvx 14,16,6 476*e0ea3921Schristos lvx 27,20,6 4772ac7033aSchristos 478*e0ea3921Schristos lvx 15,0,7 479*e0ea3921Schristos lvsl 30,0,7 480*e0ea3921Schristos lvx 28,21,7 4812ac7033aSchristos 482*e0ea3921Schristos lvx 12,0,12 483*e0ea3921Schristos lvx 17,16,12 484*e0ea3921Schristos lvx 18,17,12 485*e0ea3921Schristos lvx 19,18,12 4862ac7033aSchristos lvx 23,19,12 4872ac7033aSchristos 488*e0ea3921Schristos vperm 13,13,14,29 489*e0ea3921Schristos vperm 14,14,27,29 490*e0ea3921Schristos vperm 15,15,28,30 4912ac7033aSchristos 4922ac7033aSchristos lwz 11,0(7) 4932ac7033aSchristos lwz 12,4(7) 494*e0ea3921Schristos vadduwm 15,15,17 4952ac7033aSchristos lwz 14,8(7) 496*e0ea3921Schristos vadduwm 16,15,17 4972ac7033aSchristos lwz 15,12(7) 498*e0ea3921Schristos vadduwm 17,16,17 4992ac7033aSchristos 500*e0ea3921Schristos vxor 29,29,29 501*e0ea3921Schristos vspltisw 26,-1 502*e0ea3921Schristos lvsl 24,0,4 503*e0ea3921Schristos lvsr 25,0,3 504*e0ea3921Schristos vperm 26,29,26,25 5052ac7033aSchristos 506*e0ea3921Schristos lvsl 29,0,16 507*e0ea3921Schristos vspltisb 30,3 508*e0ea3921Schristos vxor 29,29,30 509*e0ea3921Schristos vxor 25,25,30 510*e0ea3921Schristos vperm 24,24,24,29 5112ac7033aSchristos 512*e0ea3921Schristos li 0,10 5132ac7033aSchristos b .Loop_outer_vmx 5142ac7033aSchristos 5152ac7033aSchristos.align 4 5162ac7033aSchristos.Loop_outer_vmx: 5172ac7033aSchristos lis 16,0x6170 5182ac7033aSchristos lis 17,0x3320 519*e0ea3921Schristos vor 0,12,12 5202ac7033aSchristos lis 18,0x7962 5212ac7033aSchristos lis 19,0x6b20 522*e0ea3921Schristos vor 4,12,12 5232ac7033aSchristos ori 16,16,0x7865 5242ac7033aSchristos ori 17,17,0x646e 525*e0ea3921Schristos vor 8,12,12 5262ac7033aSchristos ori 18,18,0x2d32 5272ac7033aSchristos ori 19,19,0x6574 528*e0ea3921Schristos vor 1,13,13 5292ac7033aSchristos 5302ac7033aSchristos lwz 20,0(6) 531*e0ea3921Schristos vor 5,13,13 5322ac7033aSchristos lwz 21,4(6) 533*e0ea3921Schristos vor 9,13,13 5342ac7033aSchristos lwz 22,8(6) 535*e0ea3921Schristos vor 2,14,14 5362ac7033aSchristos lwz 23,12(6) 537*e0ea3921Schristos vor 6,14,14 5382ac7033aSchristos lwz 24,16(6) 539*e0ea3921Schristos vor 10,14,14 5402ac7033aSchristos mr 28,11 5412ac7033aSchristos lwz 25,20(6) 542*e0ea3921Schristos vor 3,15,15 5432ac7033aSchristos mr 29,12 5442ac7033aSchristos lwz 26,24(6) 545*e0ea3921Schristos vor 7,16,16 5462ac7033aSchristos mr 30,14 5472ac7033aSchristos lwz 27,28(6) 548*e0ea3921Schristos vor 11,17,17 5492ac7033aSchristos mr 31,15 5502ac7033aSchristos 5512ac7033aSchristos mr 7,20 5522ac7033aSchristos mr 8,21 5532ac7033aSchristos mr 9,22 5542ac7033aSchristos mr 10,23 555*e0ea3921Schristos 556*e0ea3921Schristos vspltisw 27,12 557*e0ea3921Schristos vspltisw 28,7 5582ac7033aSchristos 5592ac7033aSchristos mtctr 0 5602ac7033aSchristos nop 5612ac7033aSchristos.Loop_vmx: 5622ac7033aSchristos vadduwm 0,0,1 5632ac7033aSchristos vadduwm 4,4,5 5642ac7033aSchristos vadduwm 8,8,9 565*e0ea3921Schristos add 16,16,20 566*e0ea3921Schristos add 17,17,21 5672ac7033aSchristos add 18,18,22 5682ac7033aSchristos vxor 3,3,0 5692ac7033aSchristos vxor 7,7,4 5702ac7033aSchristos vxor 11,11,8 571*e0ea3921Schristos add 19,19,23 572*e0ea3921Schristos xor 28,28,16 5732ac7033aSchristos xor 29,29,17 574*e0ea3921Schristos vperm 3,3,3,19 575*e0ea3921Schristos vperm 7,7,7,19 576*e0ea3921Schristos vperm 11,11,11,19 5772ac7033aSchristos xor 30,30,18 5782ac7033aSchristos xor 31,31,19 5792ac7033aSchristos rotlwi 28,28,16 5802ac7033aSchristos vadduwm 2,2,3 581*e0ea3921Schristos vadduwm 6,6,7 582*e0ea3921Schristos vadduwm 10,10,11 5832ac7033aSchristos rotlwi 29,29,16 5842ac7033aSchristos rotlwi 30,30,16 5852ac7033aSchristos rotlwi 31,31,16 586*e0ea3921Schristos vxor 1,1,2 587*e0ea3921Schristos vxor 5,5,6 588*e0ea3921Schristos vxor 9,9,10 5892ac7033aSchristos add 24,24,28 5902ac7033aSchristos add 25,25,29 5912ac7033aSchristos add 26,26,30 592*e0ea3921Schristos vrlw 1,1,27 593*e0ea3921Schristos vrlw 5,5,27 594*e0ea3921Schristos vrlw 9,9,27 5952ac7033aSchristos add 27,27,31 5962ac7033aSchristos xor 20,20,24 5972ac7033aSchristos xor 21,21,25 5982ac7033aSchristos vadduwm 0,0,1 5992ac7033aSchristos vadduwm 4,4,5 6002ac7033aSchristos vadduwm 8,8,9 6012ac7033aSchristos xor 22,22,26 6022ac7033aSchristos xor 23,23,27 603*e0ea3921Schristos rotlwi 20,20,12 604*e0ea3921Schristos vxor 3,3,0 605*e0ea3921Schristos vxor 7,7,4 606*e0ea3921Schristos vxor 11,11,8 607*e0ea3921Schristos rotlwi 21,21,12 608*e0ea3921Schristos rotlwi 22,22,12 609*e0ea3921Schristos rotlwi 23,23,12 610*e0ea3921Schristos vperm 3,3,3,23 611*e0ea3921Schristos vperm 7,7,7,23 612*e0ea3921Schristos vperm 11,11,11,23 613*e0ea3921Schristos add 16,16,20 614*e0ea3921Schristos add 17,17,21 615*e0ea3921Schristos add 18,18,22 616*e0ea3921Schristos vadduwm 2,2,3 617*e0ea3921Schristos vadduwm 6,6,7 618*e0ea3921Schristos vadduwm 10,10,11 619*e0ea3921Schristos add 19,19,23 620*e0ea3921Schristos xor 28,28,16 621*e0ea3921Schristos xor 29,29,17 622*e0ea3921Schristos vxor 1,1,2 623*e0ea3921Schristos vxor 5,5,6 624*e0ea3921Schristos vxor 9,9,10 625*e0ea3921Schristos xor 30,30,18 626*e0ea3921Schristos xor 31,31,19 627*e0ea3921Schristos rotlwi 28,28,8 628*e0ea3921Schristos vrlw 1,1,28 629*e0ea3921Schristos vrlw 5,5,28 630*e0ea3921Schristos vrlw 9,9,28 631*e0ea3921Schristos rotlwi 29,29,8 632*e0ea3921Schristos rotlwi 30,30,8 633*e0ea3921Schristos rotlwi 31,31,8 6342ac7033aSchristos vsldoi 2,2,2, 16-8 6352ac7033aSchristos vsldoi 6,6,6, 16-8 6362ac7033aSchristos vsldoi 10,10,10, 16-8 637*e0ea3921Schristos add 24,24,28 638*e0ea3921Schristos add 25,25,29 639*e0ea3921Schristos add 26,26,30 6402ac7033aSchristos vsldoi 1,1,1, 16-12 6412ac7033aSchristos vsldoi 5,5,5, 16-12 6422ac7033aSchristos vsldoi 9,9,9, 16-12 643*e0ea3921Schristos add 27,27,31 644*e0ea3921Schristos xor 20,20,24 645*e0ea3921Schristos xor 21,21,25 6462ac7033aSchristos vsldoi 3,3,3, 16-4 6472ac7033aSchristos vsldoi 7,7,7, 16-4 6482ac7033aSchristos vsldoi 11,11,11, 16-4 649*e0ea3921Schristos xor 22,22,26 650*e0ea3921Schristos xor 23,23,27 651*e0ea3921Schristos rotlwi 20,20,7 652*e0ea3921Schristos rotlwi 21,21,7 653*e0ea3921Schristos rotlwi 22,22,7 654*e0ea3921Schristos rotlwi 23,23,7 6552ac7033aSchristos vadduwm 0,0,1 6562ac7033aSchristos vadduwm 4,4,5 6572ac7033aSchristos vadduwm 8,8,9 658*e0ea3921Schristos add 16,16,21 659*e0ea3921Schristos add 17,17,22 6602ac7033aSchristos add 18,18,23 6612ac7033aSchristos vxor 3,3,0 6622ac7033aSchristos vxor 7,7,4 6632ac7033aSchristos vxor 11,11,8 664*e0ea3921Schristos add 19,19,20 665*e0ea3921Schristos xor 31,31,16 6662ac7033aSchristos xor 28,28,17 667*e0ea3921Schristos vperm 3,3,3,19 668*e0ea3921Schristos vperm 7,7,7,19 669*e0ea3921Schristos vperm 11,11,11,19 6702ac7033aSchristos xor 29,29,18 6712ac7033aSchristos xor 30,30,19 6722ac7033aSchristos rotlwi 31,31,16 6732ac7033aSchristos vadduwm 2,2,3 674*e0ea3921Schristos vadduwm 6,6,7 675*e0ea3921Schristos vadduwm 10,10,11 6762ac7033aSchristos rotlwi 28,28,16 6772ac7033aSchristos rotlwi 29,29,16 6782ac7033aSchristos rotlwi 30,30,16 679*e0ea3921Schristos vxor 1,1,2 680*e0ea3921Schristos vxor 5,5,6 681*e0ea3921Schristos vxor 9,9,10 6822ac7033aSchristos add 26,26,31 6832ac7033aSchristos add 27,27,28 6842ac7033aSchristos add 24,24,29 685*e0ea3921Schristos vrlw 1,1,27 686*e0ea3921Schristos vrlw 5,5,27 687*e0ea3921Schristos vrlw 9,9,27 6882ac7033aSchristos add 25,25,30 6892ac7033aSchristos xor 21,21,26 6902ac7033aSchristos xor 22,22,27 6912ac7033aSchristos vadduwm 0,0,1 6922ac7033aSchristos vadduwm 4,4,5 6932ac7033aSchristos vadduwm 8,8,9 6942ac7033aSchristos xor 23,23,24 6952ac7033aSchristos xor 20,20,25 696*e0ea3921Schristos rotlwi 21,21,12 697*e0ea3921Schristos vxor 3,3,0 698*e0ea3921Schristos vxor 7,7,4 699*e0ea3921Schristos vxor 11,11,8 700*e0ea3921Schristos rotlwi 22,22,12 701*e0ea3921Schristos rotlwi 23,23,12 702*e0ea3921Schristos rotlwi 20,20,12 703*e0ea3921Schristos vperm 3,3,3,23 704*e0ea3921Schristos vperm 7,7,7,23 705*e0ea3921Schristos vperm 11,11,11,23 706*e0ea3921Schristos add 16,16,21 707*e0ea3921Schristos add 17,17,22 708*e0ea3921Schristos add 18,18,23 709*e0ea3921Schristos vadduwm 2,2,3 710*e0ea3921Schristos vadduwm 6,6,7 711*e0ea3921Schristos vadduwm 10,10,11 712*e0ea3921Schristos add 19,19,20 713*e0ea3921Schristos xor 31,31,16 714*e0ea3921Schristos xor 28,28,17 715*e0ea3921Schristos vxor 1,1,2 716*e0ea3921Schristos vxor 5,5,6 717*e0ea3921Schristos vxor 9,9,10 718*e0ea3921Schristos xor 29,29,18 719*e0ea3921Schristos xor 30,30,19 720*e0ea3921Schristos rotlwi 31,31,8 721*e0ea3921Schristos vrlw 1,1,28 722*e0ea3921Schristos vrlw 5,5,28 723*e0ea3921Schristos vrlw 9,9,28 724*e0ea3921Schristos rotlwi 28,28,8 725*e0ea3921Schristos rotlwi 29,29,8 726*e0ea3921Schristos rotlwi 30,30,8 7272ac7033aSchristos vsldoi 2,2,2, 16-8 7282ac7033aSchristos vsldoi 6,6,6, 16-8 7292ac7033aSchristos vsldoi 10,10,10, 16-8 730*e0ea3921Schristos add 26,26,31 731*e0ea3921Schristos add 27,27,28 732*e0ea3921Schristos add 24,24,29 7332ac7033aSchristos vsldoi 1,1,1, 16-4 7342ac7033aSchristos vsldoi 5,5,5, 16-4 7352ac7033aSchristos vsldoi 9,9,9, 16-4 736*e0ea3921Schristos add 25,25,30 737*e0ea3921Schristos xor 21,21,26 738*e0ea3921Schristos xor 22,22,27 7392ac7033aSchristos vsldoi 3,3,3, 16-12 7402ac7033aSchristos vsldoi 7,7,7, 16-12 7412ac7033aSchristos vsldoi 11,11,11, 16-12 742*e0ea3921Schristos xor 23,23,24 743*e0ea3921Schristos xor 20,20,25 744*e0ea3921Schristos rotlwi 21,21,7 745*e0ea3921Schristos rotlwi 22,22,7 746*e0ea3921Schristos rotlwi 23,23,7 747*e0ea3921Schristos rotlwi 20,20,7 7482ac7033aSchristos bc 16,0,.Loop_vmx 7492ac7033aSchristos 7502ac7033aSchristos subi 5,5,256 7512ac7033aSchristos addi 16,16,0x7865 7522ac7033aSchristos addi 17,17,0x646e 7532ac7033aSchristos addi 18,18,0x2d32 7542ac7033aSchristos addi 19,19,0x6574 7552ac7033aSchristos addis 16,16,0x6170 7562ac7033aSchristos addis 17,17,0x3320 7572ac7033aSchristos addis 18,18,0x7962 7582ac7033aSchristos addis 19,19,0x6b20 7592ac7033aSchristos add 20,20,7 7602ac7033aSchristos lwz 7,16(6) 7612ac7033aSchristos add 21,21,8 7622ac7033aSchristos lwz 8,20(6) 7632ac7033aSchristos add 22,22,9 7642ac7033aSchristos lwz 9,24(6) 7652ac7033aSchristos add 23,23,10 7662ac7033aSchristos lwz 10,28(6) 7672ac7033aSchristos add 24,24,7 7682ac7033aSchristos add 25,25,8 7692ac7033aSchristos add 26,26,9 7702ac7033aSchristos add 27,27,10 7712ac7033aSchristos add 28,28,11 7722ac7033aSchristos add 29,29,12 7732ac7033aSchristos add 30,30,14 7742ac7033aSchristos add 31,31,15 7752ac7033aSchristos 776*e0ea3921Schristos vadduwm 0,0,12 777*e0ea3921Schristos vadduwm 4,4,12 778*e0ea3921Schristos vadduwm 8,8,12 779*e0ea3921Schristos vadduwm 1,1,13 780*e0ea3921Schristos vadduwm 5,5,13 781*e0ea3921Schristos vadduwm 9,9,13 782*e0ea3921Schristos vadduwm 2,2,14 783*e0ea3921Schristos vadduwm 6,6,14 784*e0ea3921Schristos vadduwm 10,10,14 785*e0ea3921Schristos vadduwm 3,3,15 786*e0ea3921Schristos vadduwm 7,7,16 787*e0ea3921Schristos vadduwm 11,11,17 7882ac7033aSchristos 7892ac7033aSchristos addi 11,11,4 790*e0ea3921Schristos vadduwm 15,15,18 791*e0ea3921Schristos vadduwm 16,16,18 792*e0ea3921Schristos vadduwm 17,17,18 7932ac7033aSchristos 7942ac7033aSchristos mr 7,16 7952ac7033aSchristos rotlwi 16,16,8 7962ac7033aSchristos rlwimi 16,7,24,0,7 7972ac7033aSchristos rlwimi 16,7,24,16,23 7982ac7033aSchristos mr 8,17 7992ac7033aSchristos rotlwi 17,17,8 8002ac7033aSchristos rlwimi 17,8,24,0,7 8012ac7033aSchristos rlwimi 17,8,24,16,23 8022ac7033aSchristos mr 9,18 8032ac7033aSchristos rotlwi 18,18,8 8042ac7033aSchristos rlwimi 18,9,24,0,7 8052ac7033aSchristos rlwimi 18,9,24,16,23 8062ac7033aSchristos mr 10,19 8072ac7033aSchristos rotlwi 19,19,8 8082ac7033aSchristos rlwimi 19,10,24,0,7 8092ac7033aSchristos rlwimi 19,10,24,16,23 8102ac7033aSchristos mr 7,20 8112ac7033aSchristos rotlwi 20,20,8 8122ac7033aSchristos rlwimi 20,7,24,0,7 8132ac7033aSchristos rlwimi 20,7,24,16,23 8142ac7033aSchristos mr 8,21 8152ac7033aSchristos rotlwi 21,21,8 8162ac7033aSchristos rlwimi 21,8,24,0,7 8172ac7033aSchristos rlwimi 21,8,24,16,23 8182ac7033aSchristos mr 9,22 8192ac7033aSchristos rotlwi 22,22,8 8202ac7033aSchristos rlwimi 22,9,24,0,7 8212ac7033aSchristos rlwimi 22,9,24,16,23 8222ac7033aSchristos mr 10,23 8232ac7033aSchristos rotlwi 23,23,8 8242ac7033aSchristos rlwimi 23,10,24,0,7 8252ac7033aSchristos rlwimi 23,10,24,16,23 8262ac7033aSchristos mr 7,24 8272ac7033aSchristos rotlwi 24,24,8 8282ac7033aSchristos rlwimi 24,7,24,0,7 8292ac7033aSchristos rlwimi 24,7,24,16,23 8302ac7033aSchristos mr 8,25 8312ac7033aSchristos rotlwi 25,25,8 8322ac7033aSchristos rlwimi 25,8,24,0,7 8332ac7033aSchristos rlwimi 25,8,24,16,23 8342ac7033aSchristos mr 9,26 8352ac7033aSchristos rotlwi 26,26,8 8362ac7033aSchristos rlwimi 26,9,24,0,7 8372ac7033aSchristos rlwimi 26,9,24,16,23 8382ac7033aSchristos mr 10,27 8392ac7033aSchristos rotlwi 27,27,8 8402ac7033aSchristos rlwimi 27,10,24,0,7 8412ac7033aSchristos rlwimi 27,10,24,16,23 8422ac7033aSchristos mr 7,28 8432ac7033aSchristos rotlwi 28,28,8 8442ac7033aSchristos rlwimi 28,7,24,0,7 8452ac7033aSchristos rlwimi 28,7,24,16,23 8462ac7033aSchristos mr 8,29 8472ac7033aSchristos rotlwi 29,29,8 8482ac7033aSchristos rlwimi 29,8,24,0,7 8492ac7033aSchristos rlwimi 29,8,24,16,23 8502ac7033aSchristos mr 9,30 8512ac7033aSchristos rotlwi 30,30,8 8522ac7033aSchristos rlwimi 30,9,24,0,7 8532ac7033aSchristos rlwimi 30,9,24,16,23 8542ac7033aSchristos mr 10,31 8552ac7033aSchristos rotlwi 31,31,8 8562ac7033aSchristos rlwimi 31,10,24,0,7 8572ac7033aSchristos rlwimi 31,10,24,16,23 8582ac7033aSchristos lwz 7,0(4) 8592ac7033aSchristos lwz 8,4(4) 8602ac7033aSchristos lwz 9,8(4) 8612ac7033aSchristos lwz 10,12(4) 8622ac7033aSchristos xor 16,16,7 8632ac7033aSchristos lwz 7,16(4) 8642ac7033aSchristos xor 17,17,8 8652ac7033aSchristos lwz 8,20(4) 8662ac7033aSchristos xor 18,18,9 8672ac7033aSchristos lwz 9,24(4) 8682ac7033aSchristos xor 19,19,10 8692ac7033aSchristos lwz 10,28(4) 8702ac7033aSchristos xor 20,20,7 8712ac7033aSchristos lwz 7,32(4) 8722ac7033aSchristos xor 21,21,8 8732ac7033aSchristos lwz 8,36(4) 8742ac7033aSchristos xor 22,22,9 8752ac7033aSchristos lwz 9,40(4) 8762ac7033aSchristos xor 23,23,10 8772ac7033aSchristos lwz 10,44(4) 8782ac7033aSchristos xor 24,24,7 8792ac7033aSchristos lwz 7,48(4) 8802ac7033aSchristos xor 25,25,8 8812ac7033aSchristos lwz 8,52(4) 8822ac7033aSchristos xor 26,26,9 8832ac7033aSchristos lwz 9,56(4) 8842ac7033aSchristos xor 27,27,10 8852ac7033aSchristos lwz 10,60(4) 8862ac7033aSchristos xor 28,28,7 8872ac7033aSchristos stw 16,0(3) 8882ac7033aSchristos xor 29,29,8 8892ac7033aSchristos stw 17,4(3) 8902ac7033aSchristos xor 30,30,9 8912ac7033aSchristos stw 18,8(3) 8922ac7033aSchristos xor 31,31,10 8932ac7033aSchristos stw 19,12(3) 8942ac7033aSchristos addi 4,4,64 8952ac7033aSchristos stw 20,16(3) 8962ac7033aSchristos li 7,16 8972ac7033aSchristos stw 21,20(3) 8982ac7033aSchristos li 8,32 8992ac7033aSchristos stw 22,24(3) 9002ac7033aSchristos li 9,48 9012ac7033aSchristos stw 23,28(3) 9022ac7033aSchristos li 10,64 9032ac7033aSchristos stw 24,32(3) 9042ac7033aSchristos stw 25,36(3) 9052ac7033aSchristos stw 26,40(3) 9062ac7033aSchristos stw 27,44(3) 9072ac7033aSchristos stw 28,48(3) 9082ac7033aSchristos stw 29,52(3) 9092ac7033aSchristos stw 30,56(3) 9102ac7033aSchristos stw 31,60(3) 9112ac7033aSchristos addi 3,3,64 9122ac7033aSchristos 913*e0ea3921Schristos lvx 27,0,4 914*e0ea3921Schristos lvx 28,7,4 915*e0ea3921Schristos lvx 29,8,4 916*e0ea3921Schristos lvx 30,9,4 9172ac7033aSchristos lvx 31,10,4 9182ac7033aSchristos addi 4,4,64 9192ac7033aSchristos 920*e0ea3921Schristos vperm 27,27,28,24 921*e0ea3921Schristos vperm 28,28,29,24 922*e0ea3921Schristos vperm 29,29,30,24 923*e0ea3921Schristos vperm 30,30,31,24 924*e0ea3921Schristos vxor 0,0,27 925*e0ea3921Schristos vxor 1,1,28 926*e0ea3921Schristos lvx 28,7,4 927*e0ea3921Schristos vxor 2,2,29 928*e0ea3921Schristos lvx 29,8,4 929*e0ea3921Schristos vxor 3,3,30 930*e0ea3921Schristos lvx 30,9,4 931*e0ea3921Schristos lvx 27,10,4 9322ac7033aSchristos addi 4,4,64 933*e0ea3921Schristos li 10,63 934*e0ea3921Schristos vperm 0,0,0,25 935*e0ea3921Schristos vperm 1,1,1,25 936*e0ea3921Schristos vperm 2,2,2,25 937*e0ea3921Schristos vperm 3,3,3,25 9382ac7033aSchristos 939*e0ea3921Schristos vperm 31,31,28,24 940*e0ea3921Schristos vperm 28,28,29,24 941*e0ea3921Schristos vperm 29,29,30,24 942*e0ea3921Schristos vperm 30,30,27,24 943*e0ea3921Schristos vxor 4,4,31 944*e0ea3921Schristos vxor 5,5,28 945*e0ea3921Schristos lvx 28,7,4 946*e0ea3921Schristos vxor 6,6,29 947*e0ea3921Schristos lvx 29,8,4 948*e0ea3921Schristos vxor 7,7,30 949*e0ea3921Schristos lvx 30,9,4 950*e0ea3921Schristos lvx 31,10,4 951*e0ea3921Schristos addi 4,4,64 952*e0ea3921Schristos vperm 4,4,4,25 953*e0ea3921Schristos vperm 5,5,5,25 954*e0ea3921Schristos vperm 6,6,6,25 955*e0ea3921Schristos vperm 7,7,7,25 956*e0ea3921Schristos 957*e0ea3921Schristos vperm 27,27,28,24 958*e0ea3921Schristos vperm 28,28,29,24 959*e0ea3921Schristos vperm 29,29,30,24 960*e0ea3921Schristos vperm 30,30,31,24 961*e0ea3921Schristos vxor 8,8,27 962*e0ea3921Schristos vxor 9,9,28 963*e0ea3921Schristos vxor 10,10,29 964*e0ea3921Schristos vxor 11,11,30 965*e0ea3921Schristos vperm 8,8,8,25 966*e0ea3921Schristos vperm 9,9,9,25 967*e0ea3921Schristos vperm 10,10,10,25 968*e0ea3921Schristos vperm 11,11,11,25 9692ac7033aSchristos 9702ac7033aSchristos andi. 17,3,15 9712ac7033aSchristos mr 16,3 9722ac7033aSchristos 973*e0ea3921Schristos vsel 27,0,1,26 974*e0ea3921Schristos vsel 28,1,2,26 975*e0ea3921Schristos vsel 29,2,3,26 976*e0ea3921Schristos vsel 30,3,4,26 977*e0ea3921Schristos vsel 1,4,5,26 978*e0ea3921Schristos vsel 2,5,6,26 979*e0ea3921Schristos vsel 3,6,7,26 980*e0ea3921Schristos vsel 4,7,8,26 981*e0ea3921Schristos vsel 5,8,9,26 982*e0ea3921Schristos vsel 6,9,10,26 983*e0ea3921Schristos vsel 7,10,11,26 9842ac7033aSchristos 9852ac7033aSchristos 986*e0ea3921Schristos stvx 27,7,3 987*e0ea3921Schristos stvx 28,8,3 988*e0ea3921Schristos stvx 29,9,3 9892ac7033aSchristos addi 3,3,64 990*e0ea3921Schristos stvx 30,0,3 9912ac7033aSchristos stvx 1,7,3 9922ac7033aSchristos stvx 2,8,3 9932ac7033aSchristos stvx 3,9,3 9942ac7033aSchristos addi 3,3,64 9952ac7033aSchristos stvx 4,0,3 9962ac7033aSchristos stvx 5,7,3 9972ac7033aSchristos stvx 6,8,3 9982ac7033aSchristos stvx 7,9,3 9992ac7033aSchristos addi 3,3,64 10002ac7033aSchristos 10012ac7033aSchristos beq .Laligned_vmx 10022ac7033aSchristos 10032ac7033aSchristos sub 18,3,17 10042ac7033aSchristos li 19,0 10052ac7033aSchristos.Lunaligned_tail_vmx: 10062ac7033aSchristos stvebx 11,19,18 10072ac7033aSchristos addi 19,19,1 10082ac7033aSchristos cmpw 19,17 10092ac7033aSchristos bne .Lunaligned_tail_vmx 10102ac7033aSchristos 10112ac7033aSchristos sub 18,16,17 10122ac7033aSchristos.Lunaligned_head_vmx: 10132ac7033aSchristos stvebx 0,17,18 10142ac7033aSchristos cmpwi 17,15 10152ac7033aSchristos addi 17,17,1 10162ac7033aSchristos bne .Lunaligned_head_vmx 10172ac7033aSchristos 10182ac7033aSchristos cmpldi 5,255 10192ac7033aSchristos bgt .Loop_outer_vmx 10202ac7033aSchristos 10212ac7033aSchristos b .Ldone_vmx 10222ac7033aSchristos 10232ac7033aSchristos.align 4 10242ac7033aSchristos.Laligned_vmx: 10252ac7033aSchristos stvx 0,0,16 10262ac7033aSchristos 10272ac7033aSchristos cmpldi 5,255 10282ac7033aSchristos bgt .Loop_outer_vmx 10292ac7033aSchristos nop 10302ac7033aSchristos 10312ac7033aSchristos.Ldone_vmx: 10322ac7033aSchristos cmpldi 5,0 10332ac7033aSchristos bnel __ChaCha20_1x 10342ac7033aSchristos 1035*e0ea3921Schristos lwz 12,268(1) 10362ac7033aSchristos li 10,127 10372ac7033aSchristos li 11,143 10382ac7033aSchristos mtspr 256,12 1039*e0ea3921Schristos lvx 23,10,1 10402ac7033aSchristos addi 10,10,32 1041*e0ea3921Schristos lvx 24,11,1 10422ac7033aSchristos addi 11,11,32 1043*e0ea3921Schristos lvx 25,10,1 10442ac7033aSchristos addi 10,10,32 1045*e0ea3921Schristos lvx 26,11,1 10462ac7033aSchristos addi 11,11,32 1047*e0ea3921Schristos lvx 27,10,1 10482ac7033aSchristos addi 10,10,32 1049*e0ea3921Schristos lvx 28,11,1 10502ac7033aSchristos addi 11,11,32 1051*e0ea3921Schristos lvx 29,10,1 1052*e0ea3921Schristos addi 10,10,32 1053*e0ea3921Schristos lvx 30,11,1 1054*e0ea3921Schristos lvx 31,10,1 1055*e0ea3921Schristos ld 0, 432(1) 1056*e0ea3921Schristos ld 14,272(1) 1057*e0ea3921Schristos ld 15,280(1) 1058*e0ea3921Schristos ld 16,288(1) 1059*e0ea3921Schristos ld 17,296(1) 1060*e0ea3921Schristos ld 18,304(1) 1061*e0ea3921Schristos ld 19,312(1) 1062*e0ea3921Schristos ld 20,320(1) 1063*e0ea3921Schristos ld 21,328(1) 1064*e0ea3921Schristos ld 22,336(1) 1065*e0ea3921Schristos ld 23,344(1) 1066*e0ea3921Schristos ld 24,352(1) 1067*e0ea3921Schristos ld 25,360(1) 1068*e0ea3921Schristos ld 26,368(1) 1069*e0ea3921Schristos ld 27,376(1) 1070*e0ea3921Schristos ld 28,384(1) 1071*e0ea3921Schristos ld 29,392(1) 1072*e0ea3921Schristos ld 30,400(1) 1073*e0ea3921Schristos ld 31,408(1) 1074*e0ea3921Schristos mtlr 0 1075*e0ea3921Schristos addi 1,1,416 1076*e0ea3921Schristos blr 1077*e0ea3921Schristos.long 0 1078*e0ea3921Schristos.byte 0,12,0x04,1,0x80,18,5,0 1079*e0ea3921Schristos.long 0 1080*e0ea3921Schristos 1081*e0ea3921Schristos 1082*e0ea3921Schristos.globl ChaCha20_ctr32_vsx 1083*e0ea3921Schristos.type ChaCha20_ctr32_vsx,@function 1084*e0ea3921Schristos.section ".opd","aw" 1085*e0ea3921Schristos.align 3 1086*e0ea3921SchristosChaCha20_ctr32_vsx: 1087*e0ea3921Schristos.quad .ChaCha20_ctr32_vsx,.TOC.@tocbase,0 1088*e0ea3921Schristos.previous 1089*e0ea3921Schristos.align 5 1090*e0ea3921Schristos.ChaCha20_ctr32_vsx: 1091*e0ea3921Schristos stdu 1,-224(1) 1092*e0ea3921Schristos mflr 0 1093*e0ea3921Schristos li 10,127 1094*e0ea3921Schristos li 11,143 1095*e0ea3921Schristos mfspr 12,256 1096*e0ea3921Schristos stvx 26,10,1 1097*e0ea3921Schristos addi 10,10,32 1098*e0ea3921Schristos stvx 27,11,1 1099*e0ea3921Schristos addi 11,11,32 1100*e0ea3921Schristos stvx 28,10,1 1101*e0ea3921Schristos addi 10,10,32 1102*e0ea3921Schristos stvx 29,11,1 1103*e0ea3921Schristos addi 11,11,32 1104*e0ea3921Schristos stvx 30,10,1 1105*e0ea3921Schristos stvx 31,11,1 1106*e0ea3921Schristos stw 12,220(1) 1107*e0ea3921Schristos li 12,-4096+63 1108*e0ea3921Schristos std 0, 240(1) 1109*e0ea3921Schristos mtspr 256,12 1110*e0ea3921Schristos 1111*e0ea3921Schristos bl .Lconsts 1112*e0ea3921Schristos.long 0x7E006619 1113*e0ea3921Schristos addi 12,12,0x50 1114*e0ea3921Schristos li 8,16 1115*e0ea3921Schristos li 9,32 1116*e0ea3921Schristos li 10,48 1117*e0ea3921Schristos li 11,64 1118*e0ea3921Schristos 1119*e0ea3921Schristos.long 0x7E203619 1120*e0ea3921Schristos.long 0x7E483619 1121*e0ea3921Schristos.long 0x7E603E19 1122*e0ea3921Schristos 1123*e0ea3921Schristos vxor 27,27,27 1124*e0ea3921Schristos.long 0x7F8B6619 1125*e0ea3921Schristos vspltw 26,19,0 1126*e0ea3921Schristos vsldoi 19,19,27,4 1127*e0ea3921Schristos vsldoi 19,27,19,12 1128*e0ea3921Schristos vadduwm 26,26,28 1129*e0ea3921Schristos 1130*e0ea3921Schristos lvsl 31,0,8 1131*e0ea3921Schristos vspltisb 27,3 1132*e0ea3921Schristos vxor 31,31,27 1133*e0ea3921Schristos 1134*e0ea3921Schristos li 0,10 1135*e0ea3921Schristos mtctr 0 1136*e0ea3921Schristos b .Loop_outer_vsx 1137*e0ea3921Schristos 1138*e0ea3921Schristos.align 5 1139*e0ea3921Schristos.Loop_outer_vsx: 1140*e0ea3921Schristos lvx 0,0,12 1141*e0ea3921Schristos lvx 1,8,12 1142*e0ea3921Schristos lvx 2,9,12 1143*e0ea3921Schristos lvx 3,10,12 1144*e0ea3921Schristos 1145*e0ea3921Schristos vspltw 4,17,0 1146*e0ea3921Schristos vspltw 5,17,1 1147*e0ea3921Schristos vspltw 6,17,2 1148*e0ea3921Schristos vspltw 7,17,3 1149*e0ea3921Schristos 1150*e0ea3921Schristos vspltw 8,18,0 1151*e0ea3921Schristos vspltw 9,18,1 1152*e0ea3921Schristos vspltw 10,18,2 1153*e0ea3921Schristos vspltw 11,18,3 1154*e0ea3921Schristos 1155*e0ea3921Schristos vor 12,26,26 1156*e0ea3921Schristos vspltw 13,19,1 1157*e0ea3921Schristos vspltw 14,19,2 1158*e0ea3921Schristos vspltw 15,19,3 1159*e0ea3921Schristos 1160*e0ea3921Schristos vspltisw 27,-16 1161*e0ea3921Schristos vspltisw 28,12 1162*e0ea3921Schristos vspltisw 29,8 1163*e0ea3921Schristos vspltisw 30,7 1164*e0ea3921Schristos 1165*e0ea3921Schristos.Loop_vsx: 1166*e0ea3921Schristos vadduwm 0,0,4 1167*e0ea3921Schristos vadduwm 1,1,5 1168*e0ea3921Schristos vadduwm 2,2,6 1169*e0ea3921Schristos vadduwm 3,3,7 1170*e0ea3921Schristos vxor 12,12,0 1171*e0ea3921Schristos vxor 13,13,1 1172*e0ea3921Schristos vxor 14,14,2 1173*e0ea3921Schristos vxor 15,15,3 1174*e0ea3921Schristos vrlw 12,12,27 1175*e0ea3921Schristos vrlw 13,13,27 1176*e0ea3921Schristos vrlw 14,14,27 1177*e0ea3921Schristos vrlw 15,15,27 1178*e0ea3921Schristos vadduwm 8,8,12 1179*e0ea3921Schristos vadduwm 9,9,13 1180*e0ea3921Schristos vadduwm 10,10,14 1181*e0ea3921Schristos vadduwm 11,11,15 1182*e0ea3921Schristos vxor 4,4,8 1183*e0ea3921Schristos vxor 5,5,9 1184*e0ea3921Schristos vxor 6,6,10 1185*e0ea3921Schristos vxor 7,7,11 1186*e0ea3921Schristos vrlw 4,4,28 1187*e0ea3921Schristos vrlw 5,5,28 1188*e0ea3921Schristos vrlw 6,6,28 1189*e0ea3921Schristos vrlw 7,7,28 1190*e0ea3921Schristos vadduwm 0,0,4 1191*e0ea3921Schristos vadduwm 1,1,5 1192*e0ea3921Schristos vadduwm 2,2,6 1193*e0ea3921Schristos vadduwm 3,3,7 1194*e0ea3921Schristos vxor 12,12,0 1195*e0ea3921Schristos vxor 13,13,1 1196*e0ea3921Schristos vxor 14,14,2 1197*e0ea3921Schristos vxor 15,15,3 1198*e0ea3921Schristos vrlw 12,12,29 1199*e0ea3921Schristos vrlw 13,13,29 1200*e0ea3921Schristos vrlw 14,14,29 1201*e0ea3921Schristos vrlw 15,15,29 1202*e0ea3921Schristos vadduwm 8,8,12 1203*e0ea3921Schristos vadduwm 9,9,13 1204*e0ea3921Schristos vadduwm 10,10,14 1205*e0ea3921Schristos vadduwm 11,11,15 1206*e0ea3921Schristos vxor 4,4,8 1207*e0ea3921Schristos vxor 5,5,9 1208*e0ea3921Schristos vxor 6,6,10 1209*e0ea3921Schristos vxor 7,7,11 1210*e0ea3921Schristos vrlw 4,4,30 1211*e0ea3921Schristos vrlw 5,5,30 1212*e0ea3921Schristos vrlw 6,6,30 1213*e0ea3921Schristos vrlw 7,7,30 1214*e0ea3921Schristos vadduwm 0,0,5 1215*e0ea3921Schristos vadduwm 1,1,6 1216*e0ea3921Schristos vadduwm 2,2,7 1217*e0ea3921Schristos vadduwm 3,3,4 1218*e0ea3921Schristos vxor 15,15,0 1219*e0ea3921Schristos vxor 12,12,1 1220*e0ea3921Schristos vxor 13,13,2 1221*e0ea3921Schristos vxor 14,14,3 1222*e0ea3921Schristos vrlw 15,15,27 1223*e0ea3921Schristos vrlw 12,12,27 1224*e0ea3921Schristos vrlw 13,13,27 1225*e0ea3921Schristos vrlw 14,14,27 1226*e0ea3921Schristos vadduwm 10,10,15 1227*e0ea3921Schristos vadduwm 11,11,12 1228*e0ea3921Schristos vadduwm 8,8,13 1229*e0ea3921Schristos vadduwm 9,9,14 1230*e0ea3921Schristos vxor 5,5,10 1231*e0ea3921Schristos vxor 6,6,11 1232*e0ea3921Schristos vxor 7,7,8 1233*e0ea3921Schristos vxor 4,4,9 1234*e0ea3921Schristos vrlw 5,5,28 1235*e0ea3921Schristos vrlw 6,6,28 1236*e0ea3921Schristos vrlw 7,7,28 1237*e0ea3921Schristos vrlw 4,4,28 1238*e0ea3921Schristos vadduwm 0,0,5 1239*e0ea3921Schristos vadduwm 1,1,6 1240*e0ea3921Schristos vadduwm 2,2,7 1241*e0ea3921Schristos vadduwm 3,3,4 1242*e0ea3921Schristos vxor 15,15,0 1243*e0ea3921Schristos vxor 12,12,1 1244*e0ea3921Schristos vxor 13,13,2 1245*e0ea3921Schristos vxor 14,14,3 1246*e0ea3921Schristos vrlw 15,15,29 1247*e0ea3921Schristos vrlw 12,12,29 1248*e0ea3921Schristos vrlw 13,13,29 1249*e0ea3921Schristos vrlw 14,14,29 1250*e0ea3921Schristos vadduwm 10,10,15 1251*e0ea3921Schristos vadduwm 11,11,12 1252*e0ea3921Schristos vadduwm 8,8,13 1253*e0ea3921Schristos vadduwm 9,9,14 1254*e0ea3921Schristos vxor 5,5,10 1255*e0ea3921Schristos vxor 6,6,11 1256*e0ea3921Schristos vxor 7,7,8 1257*e0ea3921Schristos vxor 4,4,9 1258*e0ea3921Schristos vrlw 5,5,30 1259*e0ea3921Schristos vrlw 6,6,30 1260*e0ea3921Schristos vrlw 7,7,30 1261*e0ea3921Schristos vrlw 4,4,30 1262*e0ea3921Schristos bc 16,0,.Loop_vsx 1263*e0ea3921Schristos 1264*e0ea3921Schristos vadduwm 12,12,26 1265*e0ea3921Schristos 1266*e0ea3921Schristos.long 0x13600F8C 1267*e0ea3921Schristos.long 0x13821F8C 1268*e0ea3921Schristos.long 0x10000E8C 1269*e0ea3921Schristos.long 0x10421E8C 1270*e0ea3921Schristos.long 0x13A42F8C 1271*e0ea3921Schristos.long 0x13C63F8C 1272*e0ea3921Schristos.long 0xF0201057 1273*e0ea3921Schristos.long 0xF0601357 1274*e0ea3921Schristos.long 0xF01BE057 1275*e0ea3921Schristos.long 0xF05BE357 1276*e0ea3921Schristos 1277*e0ea3921Schristos.long 0x10842E8C 1278*e0ea3921Schristos.long 0x10C63E8C 1279*e0ea3921Schristos.long 0x13684F8C 1280*e0ea3921Schristos.long 0x138A5F8C 1281*e0ea3921Schristos.long 0xF0A43057 1282*e0ea3921Schristos.long 0xF0E43357 1283*e0ea3921Schristos.long 0xF09DF057 1284*e0ea3921Schristos.long 0xF0DDF357 1285*e0ea3921Schristos 1286*e0ea3921Schristos.long 0x11084E8C 1287*e0ea3921Schristos.long 0x114A5E8C 1288*e0ea3921Schristos.long 0x13AC6F8C 1289*e0ea3921Schristos.long 0x13CE7F8C 1290*e0ea3921Schristos.long 0xF1285057 1291*e0ea3921Schristos.long 0xF1685357 1292*e0ea3921Schristos.long 0xF11BE057 1293*e0ea3921Schristos.long 0xF15BE357 1294*e0ea3921Schristos 1295*e0ea3921Schristos.long 0x118C6E8C 1296*e0ea3921Schristos.long 0x11CE7E8C 1297*e0ea3921Schristos vspltisw 27,4 1298*e0ea3921Schristos vadduwm 26,26,27 1299*e0ea3921Schristos.long 0xF1AC7057 1300*e0ea3921Schristos.long 0xF1EC7357 1301*e0ea3921Schristos.long 0xF19DF057 1302*e0ea3921Schristos.long 0xF1DDF357 1303*e0ea3921Schristos 1304*e0ea3921Schristos vadduwm 0,0,16 1305*e0ea3921Schristos vadduwm 4,4,17 1306*e0ea3921Schristos vadduwm 8,8,18 1307*e0ea3921Schristos vadduwm 12,12,19 1308*e0ea3921Schristos 1309*e0ea3921Schristos vperm 0,0,0,31 1310*e0ea3921Schristos vperm 4,4,4,31 1311*e0ea3921Schristos vperm 8,8,8,31 1312*e0ea3921Schristos vperm 12,12,12,31 1313*e0ea3921Schristos 1314*e0ea3921Schristos cmpldi 5,0x40 1315*e0ea3921Schristos blt .Ltail_vsx 1316*e0ea3921Schristos 1317*e0ea3921Schristos.long 0x7F602619 1318*e0ea3921Schristos.long 0x7F882619 1319*e0ea3921Schristos.long 0x7FA92619 1320*e0ea3921Schristos.long 0x7FCA2619 1321*e0ea3921Schristos 1322*e0ea3921Schristos vxor 27,27,0 1323*e0ea3921Schristos vxor 28,28,4 1324*e0ea3921Schristos vxor 29,29,8 1325*e0ea3921Schristos vxor 30,30,12 1326*e0ea3921Schristos 1327*e0ea3921Schristos.long 0x7F601F19 1328*e0ea3921Schristos.long 0x7F881F19 1329*e0ea3921Schristos addi 4,4,0x40 1330*e0ea3921Schristos.long 0x7FA91F19 1331*e0ea3921Schristos subi 5,5,0x40 1332*e0ea3921Schristos.long 0x7FCA1F19 1333*e0ea3921Schristos addi 3,3,0x40 1334*e0ea3921Schristos beq .Ldone_vsx 1335*e0ea3921Schristos 1336*e0ea3921Schristos vadduwm 0,1,16 1337*e0ea3921Schristos vadduwm 4,5,17 1338*e0ea3921Schristos vadduwm 8,9,18 1339*e0ea3921Schristos vadduwm 12,13,19 1340*e0ea3921Schristos 1341*e0ea3921Schristos vperm 0,0,0,31 1342*e0ea3921Schristos vperm 4,4,4,31 1343*e0ea3921Schristos vperm 8,8,8,31 1344*e0ea3921Schristos vperm 12,12,12,31 1345*e0ea3921Schristos 1346*e0ea3921Schristos cmpldi 5,0x40 1347*e0ea3921Schristos blt .Ltail_vsx 1348*e0ea3921Schristos 1349*e0ea3921Schristos.long 0x7F602619 1350*e0ea3921Schristos.long 0x7F882619 1351*e0ea3921Schristos.long 0x7FA92619 1352*e0ea3921Schristos.long 0x7FCA2619 1353*e0ea3921Schristos 1354*e0ea3921Schristos vxor 27,27,0 1355*e0ea3921Schristos vxor 28,28,4 1356*e0ea3921Schristos vxor 29,29,8 1357*e0ea3921Schristos vxor 30,30,12 1358*e0ea3921Schristos 1359*e0ea3921Schristos.long 0x7F601F19 1360*e0ea3921Schristos.long 0x7F881F19 1361*e0ea3921Schristos addi 4,4,0x40 1362*e0ea3921Schristos.long 0x7FA91F19 1363*e0ea3921Schristos subi 5,5,0x40 1364*e0ea3921Schristos.long 0x7FCA1F19 1365*e0ea3921Schristos addi 3,3,0x40 1366*e0ea3921Schristos beq .Ldone_vsx 1367*e0ea3921Schristos 1368*e0ea3921Schristos vadduwm 0,2,16 1369*e0ea3921Schristos vadduwm 4,6,17 1370*e0ea3921Schristos vadduwm 8,10,18 1371*e0ea3921Schristos vadduwm 12,14,19 1372*e0ea3921Schristos 1373*e0ea3921Schristos vperm 0,0,0,31 1374*e0ea3921Schristos vperm 4,4,4,31 1375*e0ea3921Schristos vperm 8,8,8,31 1376*e0ea3921Schristos vperm 12,12,12,31 1377*e0ea3921Schristos 1378*e0ea3921Schristos cmpldi 5,0x40 1379*e0ea3921Schristos blt .Ltail_vsx 1380*e0ea3921Schristos 1381*e0ea3921Schristos.long 0x7F602619 1382*e0ea3921Schristos.long 0x7F882619 1383*e0ea3921Schristos.long 0x7FA92619 1384*e0ea3921Schristos.long 0x7FCA2619 1385*e0ea3921Schristos 1386*e0ea3921Schristos vxor 27,27,0 1387*e0ea3921Schristos vxor 28,28,4 1388*e0ea3921Schristos vxor 29,29,8 1389*e0ea3921Schristos vxor 30,30,12 1390*e0ea3921Schristos 1391*e0ea3921Schristos.long 0x7F601F19 1392*e0ea3921Schristos.long 0x7F881F19 1393*e0ea3921Schristos addi 4,4,0x40 1394*e0ea3921Schristos.long 0x7FA91F19 1395*e0ea3921Schristos subi 5,5,0x40 1396*e0ea3921Schristos.long 0x7FCA1F19 1397*e0ea3921Schristos addi 3,3,0x40 1398*e0ea3921Schristos beq .Ldone_vsx 1399*e0ea3921Schristos 1400*e0ea3921Schristos vadduwm 0,3,16 1401*e0ea3921Schristos vadduwm 4,7,17 1402*e0ea3921Schristos vadduwm 8,11,18 1403*e0ea3921Schristos vadduwm 12,15,19 1404*e0ea3921Schristos 1405*e0ea3921Schristos vperm 0,0,0,31 1406*e0ea3921Schristos vperm 4,4,4,31 1407*e0ea3921Schristos vperm 8,8,8,31 1408*e0ea3921Schristos vperm 12,12,12,31 1409*e0ea3921Schristos 1410*e0ea3921Schristos cmpldi 5,0x40 1411*e0ea3921Schristos blt .Ltail_vsx 1412*e0ea3921Schristos 1413*e0ea3921Schristos.long 0x7F602619 1414*e0ea3921Schristos.long 0x7F882619 1415*e0ea3921Schristos.long 0x7FA92619 1416*e0ea3921Schristos.long 0x7FCA2619 1417*e0ea3921Schristos 1418*e0ea3921Schristos vxor 27,27,0 1419*e0ea3921Schristos vxor 28,28,4 1420*e0ea3921Schristos vxor 29,29,8 1421*e0ea3921Schristos vxor 30,30,12 1422*e0ea3921Schristos 1423*e0ea3921Schristos.long 0x7F601F19 1424*e0ea3921Schristos.long 0x7F881F19 1425*e0ea3921Schristos addi 4,4,0x40 1426*e0ea3921Schristos.long 0x7FA91F19 1427*e0ea3921Schristos subi 5,5,0x40 1428*e0ea3921Schristos.long 0x7FCA1F19 1429*e0ea3921Schristos addi 3,3,0x40 1430*e0ea3921Schristos mtctr 0 1431*e0ea3921Schristos bne .Loop_outer_vsx 1432*e0ea3921Schristos 1433*e0ea3921Schristos.Ldone_vsx: 1434*e0ea3921Schristos lwz 12,220(1) 1435*e0ea3921Schristos li 10,127 1436*e0ea3921Schristos li 11,143 1437*e0ea3921Schristos ld 0, 240(1) 1438*e0ea3921Schristos mtspr 256,12 14392ac7033aSchristos lvx 26,10,1 14402ac7033aSchristos addi 10,10,32 14412ac7033aSchristos lvx 27,11,1 14422ac7033aSchristos addi 11,11,32 14432ac7033aSchristos lvx 28,10,1 14442ac7033aSchristos addi 10,10,32 14452ac7033aSchristos lvx 29,11,1 14462ac7033aSchristos addi 11,11,32 14472ac7033aSchristos lvx 30,10,1 14482ac7033aSchristos lvx 31,11,1 14492ac7033aSchristos mtlr 0 1450*e0ea3921Schristos addi 1,1,224 14512ac7033aSchristos blr 14522ac7033aSchristos 1453*e0ea3921Schristos.align 4 1454*e0ea3921Schristos.Ltail_vsx: 1455*e0ea3921Schristos addi 11,1,48 1456*e0ea3921Schristos mtctr 5 1457*e0ea3921Schristos.long 0x7C005F19 1458*e0ea3921Schristos.long 0x7C885F19 1459*e0ea3921Schristos.long 0x7D095F19 1460*e0ea3921Schristos.long 0x7D8A5F19 1461*e0ea3921Schristos subi 12,11,1 1462*e0ea3921Schristos subi 4,4,1 1463*e0ea3921Schristos subi 3,3,1 1464*e0ea3921Schristos 1465*e0ea3921Schristos.Loop_tail_vsx: 1466*e0ea3921Schristos lbzu 6,1(12) 1467*e0ea3921Schristos lbzu 7,1(4) 1468*e0ea3921Schristos xor 6,6,7 1469*e0ea3921Schristos stbu 6,1(3) 1470*e0ea3921Schristos bc 16,0,.Loop_tail_vsx 1471*e0ea3921Schristos 1472*e0ea3921Schristos.long 0x7E005F19 1473*e0ea3921Schristos.long 0x7E085F19 1474*e0ea3921Schristos.long 0x7E095F19 1475*e0ea3921Schristos.long 0x7E0A5F19 1476*e0ea3921Schristos 1477*e0ea3921Schristos b .Ldone_vsx 1478*e0ea3921Schristos.long 0 1479*e0ea3921Schristos.byte 0,12,0x04,1,0x80,0,5,0 1480*e0ea3921Schristos.long 0 14812ac7033aSchristos 14822ac7033aSchristos.align 5 14832ac7033aSchristos.Lconsts: 14842ac7033aSchristos mflr 0 14852ac7033aSchristos bcl 20,31,$+4 14862ac7033aSchristos mflr 12 14872ac7033aSchristos addi 12,12,56 14882ac7033aSchristos mtlr 0 14892ac7033aSchristos blr 14902ac7033aSchristos.long 0 14912ac7033aSchristos.byte 0,12,0x14,0,0,0,0,0 14922ac7033aSchristos.space 28 14932ac7033aSchristos.Lsigma: 14942ac7033aSchristos.long 0x61707865,0x3320646e,0x79622d32,0x6b206574 14952ac7033aSchristos.long 1,0,0,0 14962ac7033aSchristos.long 4,0,0,0 14972ac7033aSchristos.long 0x02030001,0x06070405,0x0a0b0809,0x0e0f0c0d 14982ac7033aSchristos.long 0x01020300,0x05060704,0x090a0b08,0x0d0e0f0c 1499*e0ea3921Schristos.long 0x61707865,0x61707865,0x61707865,0x61707865 1500*e0ea3921Schristos.long 0x3320646e,0x3320646e,0x3320646e,0x3320646e 1501*e0ea3921Schristos.long 0x79622d32,0x79622d32,0x79622d32,0x79622d32 1502*e0ea3921Schristos.long 0x6b206574,0x6b206574,0x6b206574,0x6b206574 1503*e0ea3921Schristos.long 0,1,2,3 1504*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 15052ac7033aSchristos.align 2 15062ac7033aSchristos.align 2 1507