13a608692SPiotr Kubaj/* Do not modify. This file is auto-generated from aesp8-ppc.pl. */ 23a608692SPiotr Kubaj.machine "any" 33a608692SPiotr Kubaj 43a608692SPiotr Kubaj.abiversion 2 53a608692SPiotr Kubaj.text 63a608692SPiotr Kubaj 73a608692SPiotr Kubaj.align 7 83a608692SPiotr Kubajrcon: 93a608692SPiotr Kubaj.byte 0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00 103a608692SPiotr Kubaj.byte 0x1b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00 113a608692SPiotr Kubaj.byte 0x0d,0x0e,0x0f,0x0c,0x0d,0x0e,0x0f,0x0c,0x0d,0x0e,0x0f,0x0c,0x0d,0x0e,0x0f,0x0c 123a608692SPiotr Kubaj.byte 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 13*77864b54SEnji Cooper.long 0x0f102132, 0x43546576, 0x8798a9ba, 0xcbdcedfe 143a608692SPiotr Kubaj.Lconsts: 153a608692SPiotr Kubaj mflr 0 163a608692SPiotr Kubaj bcl 20,31,$+4 173a608692SPiotr Kubaj mflr 6 18*77864b54SEnji Cooper addi 6,6,-0x58 193a608692SPiotr Kubaj mtlr 0 203a608692SPiotr Kubaj blr 213a608692SPiotr Kubaj.long 0 223a608692SPiotr Kubaj.byte 0,12,0x14,0,0,0,0,0 233a608692SPiotr Kubaj.byte 65,69,83,32,102,111,114,32,80,111,119,101,114,73,83,65,32,50,46,48,55,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 243a608692SPiotr Kubaj.align 2 253a608692SPiotr Kubaj 263a608692SPiotr Kubaj.globl aes_p8_set_encrypt_key 273a608692SPiotr Kubaj.type aes_p8_set_encrypt_key,@function 283a608692SPiotr Kubaj.align 5 293a608692SPiotr Kubajaes_p8_set_encrypt_key: 303a608692SPiotr Kubaj.localentry aes_p8_set_encrypt_key,0 313a608692SPiotr Kubaj 323a608692SPiotr Kubaj.Lset_encrypt_key: 333a608692SPiotr Kubaj mflr 11 343a608692SPiotr Kubaj std 11,16(1) 353a608692SPiotr Kubaj 363a608692SPiotr Kubaj li 6,-1 373a608692SPiotr Kubaj cmpldi 3,0 383a608692SPiotr Kubaj beq- .Lenc_key_abort 393a608692SPiotr Kubaj cmpldi 5,0 403a608692SPiotr Kubaj beq- .Lenc_key_abort 413a608692SPiotr Kubaj li 6,-2 423a608692SPiotr Kubaj cmpwi 4,128 433a608692SPiotr Kubaj blt- .Lenc_key_abort 443a608692SPiotr Kubaj cmpwi 4,256 453a608692SPiotr Kubaj bgt- .Lenc_key_abort 463a608692SPiotr Kubaj andi. 0,4,0x3f 473a608692SPiotr Kubaj bne- .Lenc_key_abort 483a608692SPiotr Kubaj 493a608692SPiotr Kubaj lis 0,0xfff0 503a608692SPiotr Kubaj li 12,-1 513a608692SPiotr Kubaj or 0,0,0 523a608692SPiotr Kubaj 533a608692SPiotr Kubaj bl .Lconsts 543a608692SPiotr Kubaj mtlr 11 553a608692SPiotr Kubaj 563a608692SPiotr Kubaj neg 9,3 573a608692SPiotr Kubaj lvx 1,0,3 583a608692SPiotr Kubaj addi 3,3,15 593a608692SPiotr Kubaj lvsr 3,0,9 603a608692SPiotr Kubaj li 8,0x20 613a608692SPiotr Kubaj cmpwi 4,192 623a608692SPiotr Kubaj lvx 2,0,3 633a608692SPiotr Kubaj 643a608692SPiotr Kubaj lvx 4,0,6 653a608692SPiotr Kubaj 663a608692SPiotr Kubaj lvx 5,8,6 673a608692SPiotr Kubaj addi 6,6,0x10 683a608692SPiotr Kubaj vperm 1,1,2,3 693a608692SPiotr Kubaj li 7,8 703a608692SPiotr Kubaj vxor 0,0,0 713a608692SPiotr Kubaj mtctr 7 723a608692SPiotr Kubaj 733a608692SPiotr Kubaj lvsr 8,0,5 743a608692SPiotr Kubaj vspltisb 9,-1 753a608692SPiotr Kubaj lvx 10,0,5 763a608692SPiotr Kubaj vperm 9,0,9,8 773a608692SPiotr Kubaj 783a608692SPiotr Kubaj blt .Loop128 793a608692SPiotr Kubaj addi 3,3,8 803a608692SPiotr Kubaj beq .L192 813a608692SPiotr Kubaj addi 3,3,8 823a608692SPiotr Kubaj b .L256 833a608692SPiotr Kubaj 843a608692SPiotr Kubaj.align 4 853a608692SPiotr Kubaj.Loop128: 863a608692SPiotr Kubaj vperm 3,1,1,5 873a608692SPiotr Kubaj vsldoi 6,0,1,12 883a608692SPiotr Kubaj vperm 11,1,1,8 893a608692SPiotr Kubaj vsel 7,10,11,9 903a608692SPiotr Kubaj vor 10,11,11 913a608692SPiotr Kubaj .long 0x10632509 923a608692SPiotr Kubaj stvx 7,0,5 933a608692SPiotr Kubaj addi 5,5,16 943a608692SPiotr Kubaj 953a608692SPiotr Kubaj vxor 1,1,6 963a608692SPiotr Kubaj vsldoi 6,0,6,12 973a608692SPiotr Kubaj vxor 1,1,6 983a608692SPiotr Kubaj vsldoi 6,0,6,12 993a608692SPiotr Kubaj vxor 1,1,6 1003a608692SPiotr Kubaj vadduwm 4,4,4 1013a608692SPiotr Kubaj vxor 1,1,3 1023a608692SPiotr Kubaj bdnz .Loop128 1033a608692SPiotr Kubaj 1043a608692SPiotr Kubaj lvx 4,0,6 1053a608692SPiotr Kubaj 1063a608692SPiotr Kubaj vperm 3,1,1,5 1073a608692SPiotr Kubaj vsldoi 6,0,1,12 1083a608692SPiotr Kubaj vperm 11,1,1,8 1093a608692SPiotr Kubaj vsel 7,10,11,9 1103a608692SPiotr Kubaj vor 10,11,11 1113a608692SPiotr Kubaj .long 0x10632509 1123a608692SPiotr Kubaj stvx 7,0,5 1133a608692SPiotr Kubaj addi 5,5,16 1143a608692SPiotr Kubaj 1153a608692SPiotr Kubaj vxor 1,1,6 1163a608692SPiotr Kubaj vsldoi 6,0,6,12 1173a608692SPiotr Kubaj vxor 1,1,6 1183a608692SPiotr Kubaj vsldoi 6,0,6,12 1193a608692SPiotr Kubaj vxor 1,1,6 1203a608692SPiotr Kubaj vadduwm 4,4,4 1213a608692SPiotr Kubaj vxor 1,1,3 1223a608692SPiotr Kubaj 1233a608692SPiotr Kubaj vperm 3,1,1,5 1243a608692SPiotr Kubaj vsldoi 6,0,1,12 1253a608692SPiotr Kubaj vperm 11,1,1,8 1263a608692SPiotr Kubaj vsel 7,10,11,9 1273a608692SPiotr Kubaj vor 10,11,11 1283a608692SPiotr Kubaj .long 0x10632509 1293a608692SPiotr Kubaj stvx 7,0,5 1303a608692SPiotr Kubaj addi 5,5,16 1313a608692SPiotr Kubaj 1323a608692SPiotr Kubaj vxor 1,1,6 1333a608692SPiotr Kubaj vsldoi 6,0,6,12 1343a608692SPiotr Kubaj vxor 1,1,6 1353a608692SPiotr Kubaj vsldoi 6,0,6,12 1363a608692SPiotr Kubaj vxor 1,1,6 1373a608692SPiotr Kubaj vxor 1,1,3 1383a608692SPiotr Kubaj vperm 11,1,1,8 1393a608692SPiotr Kubaj vsel 7,10,11,9 1403a608692SPiotr Kubaj vor 10,11,11 1413a608692SPiotr Kubaj stvx 7,0,5 1423a608692SPiotr Kubaj 1433a608692SPiotr Kubaj addi 3,5,15 1443a608692SPiotr Kubaj addi 5,5,0x50 1453a608692SPiotr Kubaj 1463a608692SPiotr Kubaj li 8,10 1473a608692SPiotr Kubaj b .Ldone 1483a608692SPiotr Kubaj 1493a608692SPiotr Kubaj.align 4 1503a608692SPiotr Kubaj.L192: 1513a608692SPiotr Kubaj lvx 6,0,3 1523a608692SPiotr Kubaj li 7,4 1533a608692SPiotr Kubaj vperm 11,1,1,8 1543a608692SPiotr Kubaj vsel 7,10,11,9 1553a608692SPiotr Kubaj vor 10,11,11 1563a608692SPiotr Kubaj stvx 7,0,5 1573a608692SPiotr Kubaj addi 5,5,16 1583a608692SPiotr Kubaj vperm 2,2,6,3 1593a608692SPiotr Kubaj vspltisb 3,8 1603a608692SPiotr Kubaj mtctr 7 1613a608692SPiotr Kubaj vsububm 5,5,3 1623a608692SPiotr Kubaj 1633a608692SPiotr Kubaj.Loop192: 1643a608692SPiotr Kubaj vperm 3,2,2,5 1653a608692SPiotr Kubaj vsldoi 6,0,1,12 1663a608692SPiotr Kubaj .long 0x10632509 1673a608692SPiotr Kubaj 1683a608692SPiotr Kubaj vxor 1,1,6 1693a608692SPiotr Kubaj vsldoi 6,0,6,12 1703a608692SPiotr Kubaj vxor 1,1,6 1713a608692SPiotr Kubaj vsldoi 6,0,6,12 1723a608692SPiotr Kubaj vxor 1,1,6 1733a608692SPiotr Kubaj 1743a608692SPiotr Kubaj vsldoi 7,0,2,8 1753a608692SPiotr Kubaj vspltw 6,1,3 1763a608692SPiotr Kubaj vxor 6,6,2 1773a608692SPiotr Kubaj vsldoi 2,0,2,12 1783a608692SPiotr Kubaj vadduwm 4,4,4 1793a608692SPiotr Kubaj vxor 2,2,6 1803a608692SPiotr Kubaj vxor 1,1,3 1813a608692SPiotr Kubaj vxor 2,2,3 1823a608692SPiotr Kubaj vsldoi 7,7,1,8 1833a608692SPiotr Kubaj 1843a608692SPiotr Kubaj vperm 3,2,2,5 1853a608692SPiotr Kubaj vsldoi 6,0,1,12 1863a608692SPiotr Kubaj vperm 11,7,7,8 1873a608692SPiotr Kubaj vsel 7,10,11,9 1883a608692SPiotr Kubaj vor 10,11,11 1893a608692SPiotr Kubaj .long 0x10632509 1903a608692SPiotr Kubaj stvx 7,0,5 1913a608692SPiotr Kubaj addi 5,5,16 1923a608692SPiotr Kubaj 1933a608692SPiotr Kubaj vsldoi 7,1,2,8 1943a608692SPiotr Kubaj vxor 1,1,6 1953a608692SPiotr Kubaj vsldoi 6,0,6,12 1963a608692SPiotr Kubaj vperm 11,7,7,8 1973a608692SPiotr Kubaj vsel 7,10,11,9 1983a608692SPiotr Kubaj vor 10,11,11 1993a608692SPiotr Kubaj vxor 1,1,6 2003a608692SPiotr Kubaj vsldoi 6,0,6,12 2013a608692SPiotr Kubaj vxor 1,1,6 2023a608692SPiotr Kubaj stvx 7,0,5 2033a608692SPiotr Kubaj addi 5,5,16 2043a608692SPiotr Kubaj 2053a608692SPiotr Kubaj vspltw 6,1,3 2063a608692SPiotr Kubaj vxor 6,6,2 2073a608692SPiotr Kubaj vsldoi 2,0,2,12 2083a608692SPiotr Kubaj vadduwm 4,4,4 2093a608692SPiotr Kubaj vxor 2,2,6 2103a608692SPiotr Kubaj vxor 1,1,3 2113a608692SPiotr Kubaj vxor 2,2,3 2123a608692SPiotr Kubaj vperm 11,1,1,8 2133a608692SPiotr Kubaj vsel 7,10,11,9 2143a608692SPiotr Kubaj vor 10,11,11 2153a608692SPiotr Kubaj stvx 7,0,5 2163a608692SPiotr Kubaj addi 3,5,15 2173a608692SPiotr Kubaj addi 5,5,16 2183a608692SPiotr Kubaj bdnz .Loop192 2193a608692SPiotr Kubaj 2203a608692SPiotr Kubaj li 8,12 2213a608692SPiotr Kubaj addi 5,5,0x20 2223a608692SPiotr Kubaj b .Ldone 2233a608692SPiotr Kubaj 2243a608692SPiotr Kubaj.align 4 2253a608692SPiotr Kubaj.L256: 2263a608692SPiotr Kubaj lvx 6,0,3 2273a608692SPiotr Kubaj li 7,7 2283a608692SPiotr Kubaj li 8,14 2293a608692SPiotr Kubaj vperm 11,1,1,8 2303a608692SPiotr Kubaj vsel 7,10,11,9 2313a608692SPiotr Kubaj vor 10,11,11 2323a608692SPiotr Kubaj stvx 7,0,5 2333a608692SPiotr Kubaj addi 5,5,16 2343a608692SPiotr Kubaj vperm 2,2,6,3 2353a608692SPiotr Kubaj mtctr 7 2363a608692SPiotr Kubaj 2373a608692SPiotr Kubaj.Loop256: 2383a608692SPiotr Kubaj vperm 3,2,2,5 2393a608692SPiotr Kubaj vsldoi 6,0,1,12 2403a608692SPiotr Kubaj vperm 11,2,2,8 2413a608692SPiotr Kubaj vsel 7,10,11,9 2423a608692SPiotr Kubaj vor 10,11,11 2433a608692SPiotr Kubaj .long 0x10632509 2443a608692SPiotr Kubaj stvx 7,0,5 2453a608692SPiotr Kubaj addi 5,5,16 2463a608692SPiotr Kubaj 2473a608692SPiotr Kubaj vxor 1,1,6 2483a608692SPiotr Kubaj vsldoi 6,0,6,12 2493a608692SPiotr Kubaj vxor 1,1,6 2503a608692SPiotr Kubaj vsldoi 6,0,6,12 2513a608692SPiotr Kubaj vxor 1,1,6 2523a608692SPiotr Kubaj vadduwm 4,4,4 2533a608692SPiotr Kubaj vxor 1,1,3 2543a608692SPiotr Kubaj vperm 11,1,1,8 2553a608692SPiotr Kubaj vsel 7,10,11,9 2563a608692SPiotr Kubaj vor 10,11,11 2573a608692SPiotr Kubaj stvx 7,0,5 2583a608692SPiotr Kubaj addi 3,5,15 2593a608692SPiotr Kubaj addi 5,5,16 2603a608692SPiotr Kubaj bdz .Ldone 2613a608692SPiotr Kubaj 2623a608692SPiotr Kubaj vspltw 3,1,3 2633a608692SPiotr Kubaj vsldoi 6,0,2,12 2643a608692SPiotr Kubaj .long 0x106305C8 2653a608692SPiotr Kubaj 2663a608692SPiotr Kubaj vxor 2,2,6 2673a608692SPiotr Kubaj vsldoi 6,0,6,12 2683a608692SPiotr Kubaj vxor 2,2,6 2693a608692SPiotr Kubaj vsldoi 6,0,6,12 2703a608692SPiotr Kubaj vxor 2,2,6 2713a608692SPiotr Kubaj 2723a608692SPiotr Kubaj vxor 2,2,3 2733a608692SPiotr Kubaj b .Loop256 2743a608692SPiotr Kubaj 2753a608692SPiotr Kubaj.align 4 2763a608692SPiotr Kubaj.Ldone: 2773a608692SPiotr Kubaj lvx 2,0,3 2783a608692SPiotr Kubaj vsel 2,10,2,9 2793a608692SPiotr Kubaj stvx 2,0,3 2803a608692SPiotr Kubaj li 6,0 2813a608692SPiotr Kubaj or 12,12,12 2823a608692SPiotr Kubaj stw 8,0(5) 2833a608692SPiotr Kubaj 2843a608692SPiotr Kubaj.Lenc_key_abort: 2853a608692SPiotr Kubaj mr 3,6 2863a608692SPiotr Kubaj blr 2873a608692SPiotr Kubaj.long 0 2883a608692SPiotr Kubaj.byte 0,12,0x14,1,0,0,3,0 2893a608692SPiotr Kubaj.long 0 2903a608692SPiotr Kubaj.size aes_p8_set_encrypt_key,.-aes_p8_set_encrypt_key 2913a608692SPiotr Kubaj 2923a608692SPiotr Kubaj.globl aes_p8_set_decrypt_key 2933a608692SPiotr Kubaj.type aes_p8_set_decrypt_key,@function 2943a608692SPiotr Kubaj.align 5 2953a608692SPiotr Kubajaes_p8_set_decrypt_key: 2963a608692SPiotr Kubaj.localentry aes_p8_set_decrypt_key,0 2973a608692SPiotr Kubaj 2983a608692SPiotr Kubaj stdu 1,-64(1) 2993a608692SPiotr Kubaj mflr 10 3003a608692SPiotr Kubaj std 10,64+16(1) 3013a608692SPiotr Kubaj bl .Lset_encrypt_key 3023a608692SPiotr Kubaj mtlr 10 3033a608692SPiotr Kubaj 3043a608692SPiotr Kubaj cmpwi 3,0 3053a608692SPiotr Kubaj bne- .Ldec_key_abort 3063a608692SPiotr Kubaj 3073a608692SPiotr Kubaj slwi 7,8,4 3083a608692SPiotr Kubaj subi 3,5,240 3093a608692SPiotr Kubaj srwi 8,8,1 3103a608692SPiotr Kubaj add 5,3,7 3113a608692SPiotr Kubaj mtctr 8 3123a608692SPiotr Kubaj 3133a608692SPiotr Kubaj.Ldeckey: 3143a608692SPiotr Kubaj lwz 0, 0(3) 3153a608692SPiotr Kubaj lwz 6, 4(3) 3163a608692SPiotr Kubaj lwz 7, 8(3) 3173a608692SPiotr Kubaj lwz 8, 12(3) 3183a608692SPiotr Kubaj addi 3,3,16 3193a608692SPiotr Kubaj lwz 9, 0(5) 3203a608692SPiotr Kubaj lwz 10,4(5) 3213a608692SPiotr Kubaj lwz 11,8(5) 3223a608692SPiotr Kubaj lwz 12,12(5) 3233a608692SPiotr Kubaj stw 0, 0(5) 3243a608692SPiotr Kubaj stw 6, 4(5) 3253a608692SPiotr Kubaj stw 7, 8(5) 3263a608692SPiotr Kubaj stw 8, 12(5) 3273a608692SPiotr Kubaj subi 5,5,16 3283a608692SPiotr Kubaj stw 9, -16(3) 3293a608692SPiotr Kubaj stw 10,-12(3) 3303a608692SPiotr Kubaj stw 11,-8(3) 3313a608692SPiotr Kubaj stw 12,-4(3) 3323a608692SPiotr Kubaj bdnz .Ldeckey 3333a608692SPiotr Kubaj 3343a608692SPiotr Kubaj xor 3,3,3 3353a608692SPiotr Kubaj.Ldec_key_abort: 3363a608692SPiotr Kubaj addi 1,1,64 3373a608692SPiotr Kubaj blr 3383a608692SPiotr Kubaj.long 0 3393a608692SPiotr Kubaj.byte 0,12,4,1,0x80,0,3,0 3403a608692SPiotr Kubaj.long 0 3413a608692SPiotr Kubaj.size aes_p8_set_decrypt_key,.-aes_p8_set_decrypt_key 3423a608692SPiotr Kubaj.globl aes_p8_encrypt 3433a608692SPiotr Kubaj.type aes_p8_encrypt,@function 3443a608692SPiotr Kubaj.align 5 3453a608692SPiotr Kubajaes_p8_encrypt: 3463a608692SPiotr Kubaj.localentry aes_p8_encrypt,0 3473a608692SPiotr Kubaj 3483a608692SPiotr Kubaj lwz 6,240(5) 3493a608692SPiotr Kubaj lis 0,0xfc00 3503a608692SPiotr Kubaj li 12,-1 3513a608692SPiotr Kubaj li 7,15 3523a608692SPiotr Kubaj or 0,0,0 3533a608692SPiotr Kubaj 3543a608692SPiotr Kubaj lvx 0,0,3 3553a608692SPiotr Kubaj neg 11,4 3563a608692SPiotr Kubaj lvx 1,7,3 3573a608692SPiotr Kubaj lvsl 2,0,3 3583a608692SPiotr Kubaj 3593a608692SPiotr Kubaj lvsl 3,0,11 3603a608692SPiotr Kubaj 3613a608692SPiotr Kubaj li 7,16 3623a608692SPiotr Kubaj vperm 0,0,1,2 3633a608692SPiotr Kubaj lvx 1,0,5 3643a608692SPiotr Kubaj lvsl 5,0,5 3653a608692SPiotr Kubaj srwi 6,6,1 3663a608692SPiotr Kubaj lvx 2,7,5 3673a608692SPiotr Kubaj addi 7,7,16 3683a608692SPiotr Kubaj subi 6,6,1 3693a608692SPiotr Kubaj vperm 1,1,2,5 3703a608692SPiotr Kubaj 3713a608692SPiotr Kubaj vxor 0,0,1 3723a608692SPiotr Kubaj lvx 1,7,5 3733a608692SPiotr Kubaj addi 7,7,16 3743a608692SPiotr Kubaj mtctr 6 3753a608692SPiotr Kubaj 3763a608692SPiotr Kubaj.Loop_enc: 3773a608692SPiotr Kubaj vperm 2,2,1,5 3783a608692SPiotr Kubaj .long 0x10001508 3793a608692SPiotr Kubaj lvx 2,7,5 3803a608692SPiotr Kubaj addi 7,7,16 3813a608692SPiotr Kubaj vperm 1,1,2,5 3823a608692SPiotr Kubaj .long 0x10000D08 3833a608692SPiotr Kubaj lvx 1,7,5 3843a608692SPiotr Kubaj addi 7,7,16 3853a608692SPiotr Kubaj bdnz .Loop_enc 3863a608692SPiotr Kubaj 3873a608692SPiotr Kubaj vperm 2,2,1,5 3883a608692SPiotr Kubaj .long 0x10001508 3893a608692SPiotr Kubaj lvx 2,7,5 3903a608692SPiotr Kubaj vperm 1,1,2,5 3913a608692SPiotr Kubaj .long 0x10000D09 3923a608692SPiotr Kubaj 3933a608692SPiotr Kubaj vspltisb 2,-1 3943a608692SPiotr Kubaj vxor 1,1,1 3953a608692SPiotr Kubaj li 7,15 3963a608692SPiotr Kubaj vperm 2,1,2,3 3973a608692SPiotr Kubaj 3983a608692SPiotr Kubaj lvx 1,0,4 3993a608692SPiotr Kubaj vperm 0,0,0,3 4003a608692SPiotr Kubaj vsel 1,1,0,2 4013a608692SPiotr Kubaj lvx 4,7,4 4023a608692SPiotr Kubaj stvx 1,0,4 4033a608692SPiotr Kubaj vsel 0,0,4,2 4043a608692SPiotr Kubaj stvx 0,7,4 4053a608692SPiotr Kubaj 4063a608692SPiotr Kubaj or 12,12,12 4073a608692SPiotr Kubaj blr 4083a608692SPiotr Kubaj.long 0 4093a608692SPiotr Kubaj.byte 0,12,0x14,0,0,0,3,0 4103a608692SPiotr Kubaj.long 0 4113a608692SPiotr Kubaj.size aes_p8_encrypt,.-aes_p8_encrypt 4123a608692SPiotr Kubaj.globl aes_p8_decrypt 4133a608692SPiotr Kubaj.type aes_p8_decrypt,@function 4143a608692SPiotr Kubaj.align 5 4153a608692SPiotr Kubajaes_p8_decrypt: 4163a608692SPiotr Kubaj.localentry aes_p8_decrypt,0 4173a608692SPiotr Kubaj 4183a608692SPiotr Kubaj lwz 6,240(5) 4193a608692SPiotr Kubaj lis 0,0xfc00 4203a608692SPiotr Kubaj li 12,-1 4213a608692SPiotr Kubaj li 7,15 4223a608692SPiotr Kubaj or 0,0,0 4233a608692SPiotr Kubaj 4243a608692SPiotr Kubaj lvx 0,0,3 4253a608692SPiotr Kubaj neg 11,4 4263a608692SPiotr Kubaj lvx 1,7,3 4273a608692SPiotr Kubaj lvsl 2,0,3 4283a608692SPiotr Kubaj 4293a608692SPiotr Kubaj lvsl 3,0,11 4303a608692SPiotr Kubaj 4313a608692SPiotr Kubaj li 7,16 4323a608692SPiotr Kubaj vperm 0,0,1,2 4333a608692SPiotr Kubaj lvx 1,0,5 4343a608692SPiotr Kubaj lvsl 5,0,5 4353a608692SPiotr Kubaj srwi 6,6,1 4363a608692SPiotr Kubaj lvx 2,7,5 4373a608692SPiotr Kubaj addi 7,7,16 4383a608692SPiotr Kubaj subi 6,6,1 4393a608692SPiotr Kubaj vperm 1,1,2,5 4403a608692SPiotr Kubaj 4413a608692SPiotr Kubaj vxor 0,0,1 4423a608692SPiotr Kubaj lvx 1,7,5 4433a608692SPiotr Kubaj addi 7,7,16 4443a608692SPiotr Kubaj mtctr 6 4453a608692SPiotr Kubaj 4463a608692SPiotr Kubaj.Loop_dec: 4473a608692SPiotr Kubaj vperm 2,2,1,5 4483a608692SPiotr Kubaj .long 0x10001548 4493a608692SPiotr Kubaj lvx 2,7,5 4503a608692SPiotr Kubaj addi 7,7,16 4513a608692SPiotr Kubaj vperm 1,1,2,5 4523a608692SPiotr Kubaj .long 0x10000D48 4533a608692SPiotr Kubaj lvx 1,7,5 4543a608692SPiotr Kubaj addi 7,7,16 4553a608692SPiotr Kubaj bdnz .Loop_dec 4563a608692SPiotr Kubaj 4573a608692SPiotr Kubaj vperm 2,2,1,5 4583a608692SPiotr Kubaj .long 0x10001548 4593a608692SPiotr Kubaj lvx 2,7,5 4603a608692SPiotr Kubaj vperm 1,1,2,5 4613a608692SPiotr Kubaj .long 0x10000D49 4623a608692SPiotr Kubaj 4633a608692SPiotr Kubaj vspltisb 2,-1 4643a608692SPiotr Kubaj vxor 1,1,1 4653a608692SPiotr Kubaj li 7,15 4663a608692SPiotr Kubaj vperm 2,1,2,3 4673a608692SPiotr Kubaj 4683a608692SPiotr Kubaj lvx 1,0,4 4693a608692SPiotr Kubaj vperm 0,0,0,3 4703a608692SPiotr Kubaj vsel 1,1,0,2 4713a608692SPiotr Kubaj lvx 4,7,4 4723a608692SPiotr Kubaj stvx 1,0,4 4733a608692SPiotr Kubaj vsel 0,0,4,2 4743a608692SPiotr Kubaj stvx 0,7,4 4753a608692SPiotr Kubaj 4763a608692SPiotr Kubaj or 12,12,12 4773a608692SPiotr Kubaj blr 4783a608692SPiotr Kubaj.long 0 4793a608692SPiotr Kubaj.byte 0,12,0x14,0,0,0,3,0 4803a608692SPiotr Kubaj.long 0 4813a608692SPiotr Kubaj.size aes_p8_decrypt,.-aes_p8_decrypt 4823a608692SPiotr Kubaj.globl aes_p8_cbc_encrypt 4833a608692SPiotr Kubaj.type aes_p8_cbc_encrypt,@function 4843a608692SPiotr Kubaj.align 5 4853a608692SPiotr Kubajaes_p8_cbc_encrypt: 4863a608692SPiotr Kubaj.localentry aes_p8_cbc_encrypt,0 4873a608692SPiotr Kubaj 4883a608692SPiotr Kubaj cmpldi 5,16 4893a608692SPiotr Kubaj .long 0x4dc00020 4903a608692SPiotr Kubaj 4913a608692SPiotr Kubaj cmpwi 8,0 4923a608692SPiotr Kubaj lis 0,0xffe0 4933a608692SPiotr Kubaj li 12,-1 4943a608692SPiotr Kubaj or 0,0,0 4953a608692SPiotr Kubaj 4963a608692SPiotr Kubaj li 10,15 4973a608692SPiotr Kubaj vxor 0,0,0 4983a608692SPiotr Kubaj 4993a608692SPiotr Kubaj 5003a608692SPiotr Kubaj lvx 4,0,7 5013a608692SPiotr Kubaj lvsl 6,0,7 5023a608692SPiotr Kubaj lvx 5,10,7 5033a608692SPiotr Kubaj 5043a608692SPiotr Kubaj vperm 4,4,5,6 5053a608692SPiotr Kubaj 5063a608692SPiotr Kubaj neg 11,3 5073a608692SPiotr Kubaj lvsl 10,0,6 5083a608692SPiotr Kubaj lwz 9,240(6) 5093a608692SPiotr Kubaj 5103a608692SPiotr Kubaj lvsr 6,0,11 5113a608692SPiotr Kubaj lvx 5,0,3 5123a608692SPiotr Kubaj addi 3,3,15 5133a608692SPiotr Kubaj 5143a608692SPiotr Kubaj 5153a608692SPiotr Kubaj lvsr 8,0,4 5163a608692SPiotr Kubaj vspltisb 9,-1 5173a608692SPiotr Kubaj lvx 7,0,4 5183a608692SPiotr Kubaj vperm 9,0,9,8 5193a608692SPiotr Kubaj 5203a608692SPiotr Kubaj 5213a608692SPiotr Kubaj srwi 9,9,1 5223a608692SPiotr Kubaj li 10,16 5233a608692SPiotr Kubaj subi 9,9,1 5243a608692SPiotr Kubaj beq .Lcbc_dec 5253a608692SPiotr Kubaj 5263a608692SPiotr Kubaj.Lcbc_enc: 5273a608692SPiotr Kubaj vor 2,5,5 5283a608692SPiotr Kubaj lvx 5,0,3 5293a608692SPiotr Kubaj addi 3,3,16 5303a608692SPiotr Kubaj mtctr 9 5313a608692SPiotr Kubaj subi 5,5,16 5323a608692SPiotr Kubaj 5333a608692SPiotr Kubaj lvx 0,0,6 5343a608692SPiotr Kubaj vperm 2,2,5,6 5353a608692SPiotr Kubaj lvx 1,10,6 5363a608692SPiotr Kubaj addi 10,10,16 5373a608692SPiotr Kubaj vperm 0,0,1,10 5383a608692SPiotr Kubaj vxor 2,2,0 5393a608692SPiotr Kubaj lvx 0,10,6 5403a608692SPiotr Kubaj addi 10,10,16 5413a608692SPiotr Kubaj vxor 2,2,4 5423a608692SPiotr Kubaj 5433a608692SPiotr Kubaj.Loop_cbc_enc: 5443a608692SPiotr Kubaj vperm 1,1,0,10 5453a608692SPiotr Kubaj .long 0x10420D08 5463a608692SPiotr Kubaj lvx 1,10,6 5473a608692SPiotr Kubaj addi 10,10,16 5483a608692SPiotr Kubaj vperm 0,0,1,10 5493a608692SPiotr Kubaj .long 0x10420508 5503a608692SPiotr Kubaj lvx 0,10,6 5513a608692SPiotr Kubaj addi 10,10,16 5523a608692SPiotr Kubaj bdnz .Loop_cbc_enc 5533a608692SPiotr Kubaj 5543a608692SPiotr Kubaj vperm 1,1,0,10 5553a608692SPiotr Kubaj .long 0x10420D08 5563a608692SPiotr Kubaj lvx 1,10,6 5573a608692SPiotr Kubaj li 10,16 5583a608692SPiotr Kubaj vperm 0,0,1,10 5593a608692SPiotr Kubaj .long 0x10820509 5603a608692SPiotr Kubaj cmpldi 5,16 5613a608692SPiotr Kubaj 5623a608692SPiotr Kubaj vperm 3,4,4,8 5633a608692SPiotr Kubaj vsel 2,7,3,9 5643a608692SPiotr Kubaj vor 7,3,3 5653a608692SPiotr Kubaj stvx 2,0,4 5663a608692SPiotr Kubaj addi 4,4,16 5673a608692SPiotr Kubaj bge .Lcbc_enc 5683a608692SPiotr Kubaj 5693a608692SPiotr Kubaj b .Lcbc_done 5703a608692SPiotr Kubaj 5713a608692SPiotr Kubaj.align 4 5723a608692SPiotr Kubaj.Lcbc_dec: 5733a608692SPiotr Kubaj cmpldi 5,128 5743a608692SPiotr Kubaj bge _aesp8_cbc_decrypt8x 5753a608692SPiotr Kubaj vor 3,5,5 5763a608692SPiotr Kubaj lvx 5,0,3 5773a608692SPiotr Kubaj addi 3,3,16 5783a608692SPiotr Kubaj mtctr 9 5793a608692SPiotr Kubaj subi 5,5,16 5803a608692SPiotr Kubaj 5813a608692SPiotr Kubaj lvx 0,0,6 5823a608692SPiotr Kubaj vperm 3,3,5,6 5833a608692SPiotr Kubaj lvx 1,10,6 5843a608692SPiotr Kubaj addi 10,10,16 5853a608692SPiotr Kubaj vperm 0,0,1,10 5863a608692SPiotr Kubaj vxor 2,3,0 5873a608692SPiotr Kubaj lvx 0,10,6 5883a608692SPiotr Kubaj addi 10,10,16 5893a608692SPiotr Kubaj 5903a608692SPiotr Kubaj.Loop_cbc_dec: 5913a608692SPiotr Kubaj vperm 1,1,0,10 5923a608692SPiotr Kubaj .long 0x10420D48 5933a608692SPiotr Kubaj lvx 1,10,6 5943a608692SPiotr Kubaj addi 10,10,16 5953a608692SPiotr Kubaj vperm 0,0,1,10 5963a608692SPiotr Kubaj .long 0x10420548 5973a608692SPiotr Kubaj lvx 0,10,6 5983a608692SPiotr Kubaj addi 10,10,16 5993a608692SPiotr Kubaj bdnz .Loop_cbc_dec 6003a608692SPiotr Kubaj 6013a608692SPiotr Kubaj vperm 1,1,0,10 6023a608692SPiotr Kubaj .long 0x10420D48 6033a608692SPiotr Kubaj lvx 1,10,6 6043a608692SPiotr Kubaj li 10,16 6053a608692SPiotr Kubaj vperm 0,0,1,10 6063a608692SPiotr Kubaj .long 0x10420549 6073a608692SPiotr Kubaj cmpldi 5,16 6083a608692SPiotr Kubaj 6093a608692SPiotr Kubaj vxor 2,2,4 6103a608692SPiotr Kubaj vor 4,3,3 6113a608692SPiotr Kubaj vperm 3,2,2,8 6123a608692SPiotr Kubaj vsel 2,7,3,9 6133a608692SPiotr Kubaj vor 7,3,3 6143a608692SPiotr Kubaj stvx 2,0,4 6153a608692SPiotr Kubaj addi 4,4,16 6163a608692SPiotr Kubaj bge .Lcbc_dec 6173a608692SPiotr Kubaj 6183a608692SPiotr Kubaj.Lcbc_done: 6193a608692SPiotr Kubaj addi 4,4,-1 6203a608692SPiotr Kubaj lvx 2,0,4 6213a608692SPiotr Kubaj vsel 2,7,2,9 6223a608692SPiotr Kubaj stvx 2,0,4 6233a608692SPiotr Kubaj 6243a608692SPiotr Kubaj neg 8,7 6253a608692SPiotr Kubaj li 10,15 6263a608692SPiotr Kubaj vxor 0,0,0 6273a608692SPiotr Kubaj vspltisb 9,-1 6283a608692SPiotr Kubaj 6293a608692SPiotr Kubaj lvsl 8,0,8 6303a608692SPiotr Kubaj vperm 9,0,9,8 6313a608692SPiotr Kubaj 6323a608692SPiotr Kubaj lvx 7,0,7 6333a608692SPiotr Kubaj vperm 4,4,4,8 6343a608692SPiotr Kubaj vsel 2,7,4,9 6353a608692SPiotr Kubaj lvx 5,10,7 6363a608692SPiotr Kubaj stvx 2,0,7 6373a608692SPiotr Kubaj vsel 2,4,5,9 6383a608692SPiotr Kubaj stvx 2,10,7 6393a608692SPiotr Kubaj 6403a608692SPiotr Kubaj or 12,12,12 6413a608692SPiotr Kubaj blr 6423a608692SPiotr Kubaj.long 0 6433a608692SPiotr Kubaj.byte 0,12,0x14,0,0,0,6,0 6443a608692SPiotr Kubaj.long 0 6453a608692SPiotr Kubaj.align 5 6463a608692SPiotr Kubaj_aesp8_cbc_decrypt8x: 6473a608692SPiotr Kubaj stdu 1,-448(1) 6483a608692SPiotr Kubaj li 10,207 6493a608692SPiotr Kubaj li 11,223 6503a608692SPiotr Kubaj stvx 20,10,1 6513a608692SPiotr Kubaj addi 10,10,32 6523a608692SPiotr Kubaj stvx 21,11,1 6533a608692SPiotr Kubaj addi 11,11,32 6543a608692SPiotr Kubaj stvx 22,10,1 6553a608692SPiotr Kubaj addi 10,10,32 6563a608692SPiotr Kubaj stvx 23,11,1 6573a608692SPiotr Kubaj addi 11,11,32 6583a608692SPiotr Kubaj stvx 24,10,1 6593a608692SPiotr Kubaj addi 10,10,32 6603a608692SPiotr Kubaj stvx 25,11,1 6613a608692SPiotr Kubaj addi 11,11,32 6623a608692SPiotr Kubaj stvx 26,10,1 6633a608692SPiotr Kubaj addi 10,10,32 6643a608692SPiotr Kubaj stvx 27,11,1 6653a608692SPiotr Kubaj addi 11,11,32 6663a608692SPiotr Kubaj stvx 28,10,1 6673a608692SPiotr Kubaj addi 10,10,32 6683a608692SPiotr Kubaj stvx 29,11,1 6693a608692SPiotr Kubaj addi 11,11,32 6703a608692SPiotr Kubaj stvx 30,10,1 6713a608692SPiotr Kubaj stvx 31,11,1 6723a608692SPiotr Kubaj li 0,-1 6733a608692SPiotr Kubaj stw 12,396(1) 6743a608692SPiotr Kubaj li 8,0x10 6753a608692SPiotr Kubaj std 26,400(1) 6763a608692SPiotr Kubaj li 26,0x20 6773a608692SPiotr Kubaj std 27,408(1) 6783a608692SPiotr Kubaj li 27,0x30 6793a608692SPiotr Kubaj std 28,416(1) 6803a608692SPiotr Kubaj li 28,0x40 6813a608692SPiotr Kubaj std 29,424(1) 6823a608692SPiotr Kubaj li 29,0x50 6833a608692SPiotr Kubaj std 30,432(1) 6843a608692SPiotr Kubaj li 30,0x60 6853a608692SPiotr Kubaj std 31,440(1) 6863a608692SPiotr Kubaj li 31,0x70 6873a608692SPiotr Kubaj or 0,0,0 6883a608692SPiotr Kubaj 6893a608692SPiotr Kubaj subi 9,9,3 6903a608692SPiotr Kubaj subi 5,5,128 6913a608692SPiotr Kubaj 6923a608692SPiotr Kubaj lvx 23,0,6 6933a608692SPiotr Kubaj lvx 30,8,6 6943a608692SPiotr Kubaj addi 6,6,0x20 6953a608692SPiotr Kubaj lvx 31,0,6 6963a608692SPiotr Kubaj vperm 23,23,30,10 6973a608692SPiotr Kubaj addi 11,1,64+15 6983a608692SPiotr Kubaj mtctr 9 6993a608692SPiotr Kubaj 7003a608692SPiotr Kubaj.Load_cbc_dec_key: 7013a608692SPiotr Kubaj vperm 24,30,31,10 7023a608692SPiotr Kubaj lvx 30,8,6 7033a608692SPiotr Kubaj addi 6,6,0x20 7043a608692SPiotr Kubaj stvx 24,0,11 7053a608692SPiotr Kubaj vperm 25,31,30,10 7063a608692SPiotr Kubaj lvx 31,0,6 7073a608692SPiotr Kubaj stvx 25,8,11 7083a608692SPiotr Kubaj addi 11,11,0x20 7093a608692SPiotr Kubaj bdnz .Load_cbc_dec_key 7103a608692SPiotr Kubaj 7113a608692SPiotr Kubaj lvx 26,8,6 7123a608692SPiotr Kubaj vperm 24,30,31,10 7133a608692SPiotr Kubaj lvx 27,26,6 7143a608692SPiotr Kubaj stvx 24,0,11 7153a608692SPiotr Kubaj vperm 25,31,26,10 7163a608692SPiotr Kubaj lvx 28,27,6 7173a608692SPiotr Kubaj stvx 25,8,11 7183a608692SPiotr Kubaj addi 11,1,64+15 7193a608692SPiotr Kubaj vperm 26,26,27,10 7203a608692SPiotr Kubaj lvx 29,28,6 7213a608692SPiotr Kubaj vperm 27,27,28,10 7223a608692SPiotr Kubaj lvx 30,29,6 7233a608692SPiotr Kubaj vperm 28,28,29,10 7243a608692SPiotr Kubaj lvx 31,30,6 7253a608692SPiotr Kubaj vperm 29,29,30,10 7263a608692SPiotr Kubaj lvx 14,31,6 7273a608692SPiotr Kubaj vperm 30,30,31,10 7283a608692SPiotr Kubaj lvx 24,0,11 7293a608692SPiotr Kubaj vperm 31,31,14,10 7303a608692SPiotr Kubaj lvx 25,8,11 7313a608692SPiotr Kubaj 7323a608692SPiotr Kubaj 7333a608692SPiotr Kubaj 7343a608692SPiotr Kubaj subi 3,3,15 7353a608692SPiotr Kubaj 7363a608692SPiotr Kubaj 7373a608692SPiotr Kubaj .long 0x7C001E99 7383a608692SPiotr Kubaj 7393a608692SPiotr Kubaj 7403a608692SPiotr Kubaj .long 0x7C281E99 7413a608692SPiotr Kubaj 7423a608692SPiotr Kubaj .long 0x7C5A1E99 7433a608692SPiotr Kubaj 7443a608692SPiotr Kubaj .long 0x7C7B1E99 7453a608692SPiotr Kubaj 7463a608692SPiotr Kubaj .long 0x7D5C1E99 7473a608692SPiotr Kubaj 7483a608692SPiotr Kubaj vxor 14,0,23 7493a608692SPiotr Kubaj .long 0x7D7D1E99 7503a608692SPiotr Kubaj 7513a608692SPiotr Kubaj vxor 15,1,23 7523a608692SPiotr Kubaj .long 0x7D9E1E99 7533a608692SPiotr Kubaj 7543a608692SPiotr Kubaj vxor 16,2,23 7553a608692SPiotr Kubaj .long 0x7DBF1E99 7563a608692SPiotr Kubaj addi 3,3,0x80 7573a608692SPiotr Kubaj 7583a608692SPiotr Kubaj vxor 17,3,23 7593a608692SPiotr Kubaj 7603a608692SPiotr Kubaj vxor 18,10,23 7613a608692SPiotr Kubaj 7623a608692SPiotr Kubaj vxor 19,11,23 7633a608692SPiotr Kubaj vxor 20,12,23 7643a608692SPiotr Kubaj vxor 21,13,23 7653a608692SPiotr Kubaj 7663a608692SPiotr Kubaj mtctr 9 7673a608692SPiotr Kubaj b .Loop_cbc_dec8x 7683a608692SPiotr Kubaj.align 5 7693a608692SPiotr Kubaj.Loop_cbc_dec8x: 7703a608692SPiotr Kubaj .long 0x11CEC548 7713a608692SPiotr Kubaj .long 0x11EFC548 7723a608692SPiotr Kubaj .long 0x1210C548 7733a608692SPiotr Kubaj .long 0x1231C548 7743a608692SPiotr Kubaj .long 0x1252C548 7753a608692SPiotr Kubaj .long 0x1273C548 7763a608692SPiotr Kubaj .long 0x1294C548 7773a608692SPiotr Kubaj .long 0x12B5C548 7783a608692SPiotr Kubaj lvx 24,26,11 7793a608692SPiotr Kubaj addi 11,11,0x20 7803a608692SPiotr Kubaj 7813a608692SPiotr Kubaj .long 0x11CECD48 7823a608692SPiotr Kubaj .long 0x11EFCD48 7833a608692SPiotr Kubaj .long 0x1210CD48 7843a608692SPiotr Kubaj .long 0x1231CD48 7853a608692SPiotr Kubaj .long 0x1252CD48 7863a608692SPiotr Kubaj .long 0x1273CD48 7873a608692SPiotr Kubaj .long 0x1294CD48 7883a608692SPiotr Kubaj .long 0x12B5CD48 7893a608692SPiotr Kubaj lvx 25,8,11 7903a608692SPiotr Kubaj bdnz .Loop_cbc_dec8x 7913a608692SPiotr Kubaj 7923a608692SPiotr Kubaj subic 5,5,128 7933a608692SPiotr Kubaj .long 0x11CEC548 7943a608692SPiotr Kubaj .long 0x11EFC548 7953a608692SPiotr Kubaj .long 0x1210C548 7963a608692SPiotr Kubaj .long 0x1231C548 7973a608692SPiotr Kubaj .long 0x1252C548 7983a608692SPiotr Kubaj .long 0x1273C548 7993a608692SPiotr Kubaj .long 0x1294C548 8003a608692SPiotr Kubaj .long 0x12B5C548 8013a608692SPiotr Kubaj 8023a608692SPiotr Kubaj subfe. 0,0,0 8033a608692SPiotr Kubaj .long 0x11CECD48 8043a608692SPiotr Kubaj .long 0x11EFCD48 8053a608692SPiotr Kubaj .long 0x1210CD48 8063a608692SPiotr Kubaj .long 0x1231CD48 8073a608692SPiotr Kubaj .long 0x1252CD48 8083a608692SPiotr Kubaj .long 0x1273CD48 8093a608692SPiotr Kubaj .long 0x1294CD48 8103a608692SPiotr Kubaj .long 0x12B5CD48 8113a608692SPiotr Kubaj 8123a608692SPiotr Kubaj and 0,0,5 8133a608692SPiotr Kubaj .long 0x11CED548 8143a608692SPiotr Kubaj .long 0x11EFD548 8153a608692SPiotr Kubaj .long 0x1210D548 8163a608692SPiotr Kubaj .long 0x1231D548 8173a608692SPiotr Kubaj .long 0x1252D548 8183a608692SPiotr Kubaj .long 0x1273D548 8193a608692SPiotr Kubaj .long 0x1294D548 8203a608692SPiotr Kubaj .long 0x12B5D548 8213a608692SPiotr Kubaj 8223a608692SPiotr Kubaj add 3,3,0 8233a608692SPiotr Kubaj 8243a608692SPiotr Kubaj 8253a608692SPiotr Kubaj 8263a608692SPiotr Kubaj .long 0x11CEDD48 8273a608692SPiotr Kubaj .long 0x11EFDD48 8283a608692SPiotr Kubaj .long 0x1210DD48 8293a608692SPiotr Kubaj .long 0x1231DD48 8303a608692SPiotr Kubaj .long 0x1252DD48 8313a608692SPiotr Kubaj .long 0x1273DD48 8323a608692SPiotr Kubaj .long 0x1294DD48 8333a608692SPiotr Kubaj .long 0x12B5DD48 8343a608692SPiotr Kubaj 8353a608692SPiotr Kubaj addi 11,1,64+15 8363a608692SPiotr Kubaj .long 0x11CEE548 8373a608692SPiotr Kubaj .long 0x11EFE548 8383a608692SPiotr Kubaj .long 0x1210E548 8393a608692SPiotr Kubaj .long 0x1231E548 8403a608692SPiotr Kubaj .long 0x1252E548 8413a608692SPiotr Kubaj .long 0x1273E548 8423a608692SPiotr Kubaj .long 0x1294E548 8433a608692SPiotr Kubaj .long 0x12B5E548 8443a608692SPiotr Kubaj lvx 24,0,11 8453a608692SPiotr Kubaj 8463a608692SPiotr Kubaj .long 0x11CEED48 8473a608692SPiotr Kubaj .long 0x11EFED48 8483a608692SPiotr Kubaj .long 0x1210ED48 8493a608692SPiotr Kubaj .long 0x1231ED48 8503a608692SPiotr Kubaj .long 0x1252ED48 8513a608692SPiotr Kubaj .long 0x1273ED48 8523a608692SPiotr Kubaj .long 0x1294ED48 8533a608692SPiotr Kubaj .long 0x12B5ED48 8543a608692SPiotr Kubaj lvx 25,8,11 8553a608692SPiotr Kubaj 8563a608692SPiotr Kubaj .long 0x11CEF548 8573a608692SPiotr Kubaj vxor 4,4,31 8583a608692SPiotr Kubaj .long 0x11EFF548 8593a608692SPiotr Kubaj vxor 0,0,31 8603a608692SPiotr Kubaj .long 0x1210F548 8613a608692SPiotr Kubaj vxor 1,1,31 8623a608692SPiotr Kubaj .long 0x1231F548 8633a608692SPiotr Kubaj vxor 2,2,31 8643a608692SPiotr Kubaj .long 0x1252F548 8653a608692SPiotr Kubaj vxor 3,3,31 8663a608692SPiotr Kubaj .long 0x1273F548 8673a608692SPiotr Kubaj vxor 10,10,31 8683a608692SPiotr Kubaj .long 0x1294F548 8693a608692SPiotr Kubaj vxor 11,11,31 8703a608692SPiotr Kubaj .long 0x12B5F548 8713a608692SPiotr Kubaj vxor 12,12,31 8723a608692SPiotr Kubaj 8733a608692SPiotr Kubaj .long 0x11CE2549 8743a608692SPiotr Kubaj .long 0x11EF0549 8753a608692SPiotr Kubaj .long 0x7C001E99 8763a608692SPiotr Kubaj .long 0x12100D49 8773a608692SPiotr Kubaj .long 0x7C281E99 8783a608692SPiotr Kubaj .long 0x12311549 8793a608692SPiotr Kubaj 8803a608692SPiotr Kubaj .long 0x7C5A1E99 8813a608692SPiotr Kubaj .long 0x12521D49 8823a608692SPiotr Kubaj 8833a608692SPiotr Kubaj .long 0x7C7B1E99 8843a608692SPiotr Kubaj .long 0x12735549 8853a608692SPiotr Kubaj 8863a608692SPiotr Kubaj .long 0x7D5C1E99 8873a608692SPiotr Kubaj .long 0x12945D49 8883a608692SPiotr Kubaj 8893a608692SPiotr Kubaj .long 0x7D7D1E99 8903a608692SPiotr Kubaj .long 0x12B56549 8913a608692SPiotr Kubaj 8923a608692SPiotr Kubaj .long 0x7D9E1E99 8933a608692SPiotr Kubaj vor 4,13,13 8943a608692SPiotr Kubaj 8953a608692SPiotr Kubaj .long 0x7DBF1E99 8963a608692SPiotr Kubaj addi 3,3,0x80 8973a608692SPiotr Kubaj 8983a608692SPiotr Kubaj 8993a608692SPiotr Kubaj 9003a608692SPiotr Kubaj .long 0x7DC02799 9013a608692SPiotr Kubaj 9023a608692SPiotr Kubaj vxor 14,0,23 9033a608692SPiotr Kubaj 9043a608692SPiotr Kubaj .long 0x7DE82799 9053a608692SPiotr Kubaj 9063a608692SPiotr Kubaj vxor 15,1,23 9073a608692SPiotr Kubaj 9083a608692SPiotr Kubaj .long 0x7E1A2799 9093a608692SPiotr Kubaj vxor 16,2,23 9103a608692SPiotr Kubaj 9113a608692SPiotr Kubaj .long 0x7E3B2799 9123a608692SPiotr Kubaj vxor 17,3,23 9133a608692SPiotr Kubaj 9143a608692SPiotr Kubaj .long 0x7E5C2799 9153a608692SPiotr Kubaj vxor 18,10,23 9163a608692SPiotr Kubaj 9173a608692SPiotr Kubaj .long 0x7E7D2799 9183a608692SPiotr Kubaj vxor 19,11,23 9193a608692SPiotr Kubaj 9203a608692SPiotr Kubaj .long 0x7E9E2799 9213a608692SPiotr Kubaj vxor 20,12,23 9223a608692SPiotr Kubaj .long 0x7EBF2799 9233a608692SPiotr Kubaj addi 4,4,0x80 9243a608692SPiotr Kubaj vxor 21,13,23 9253a608692SPiotr Kubaj 9263a608692SPiotr Kubaj mtctr 9 9273a608692SPiotr Kubaj beq .Loop_cbc_dec8x 9283a608692SPiotr Kubaj 9293a608692SPiotr Kubaj addic. 5,5,128 9303a608692SPiotr Kubaj beq .Lcbc_dec8x_done 9313a608692SPiotr Kubaj nop 9323a608692SPiotr Kubaj nop 9333a608692SPiotr Kubaj 9343a608692SPiotr Kubaj.Loop_cbc_dec8x_tail: 9353a608692SPiotr Kubaj .long 0x11EFC548 9363a608692SPiotr Kubaj .long 0x1210C548 9373a608692SPiotr Kubaj .long 0x1231C548 9383a608692SPiotr Kubaj .long 0x1252C548 9393a608692SPiotr Kubaj .long 0x1273C548 9403a608692SPiotr Kubaj .long 0x1294C548 9413a608692SPiotr Kubaj .long 0x12B5C548 9423a608692SPiotr Kubaj lvx 24,26,11 9433a608692SPiotr Kubaj addi 11,11,0x20 9443a608692SPiotr Kubaj 9453a608692SPiotr Kubaj .long 0x11EFCD48 9463a608692SPiotr Kubaj .long 0x1210CD48 9473a608692SPiotr Kubaj .long 0x1231CD48 9483a608692SPiotr Kubaj .long 0x1252CD48 9493a608692SPiotr Kubaj .long 0x1273CD48 9503a608692SPiotr Kubaj .long 0x1294CD48 9513a608692SPiotr Kubaj .long 0x12B5CD48 9523a608692SPiotr Kubaj lvx 25,8,11 9533a608692SPiotr Kubaj bdnz .Loop_cbc_dec8x_tail 9543a608692SPiotr Kubaj 9553a608692SPiotr Kubaj .long 0x11EFC548 9563a608692SPiotr Kubaj .long 0x1210C548 9573a608692SPiotr Kubaj .long 0x1231C548 9583a608692SPiotr Kubaj .long 0x1252C548 9593a608692SPiotr Kubaj .long 0x1273C548 9603a608692SPiotr Kubaj .long 0x1294C548 9613a608692SPiotr Kubaj .long 0x12B5C548 9623a608692SPiotr Kubaj 9633a608692SPiotr Kubaj .long 0x11EFCD48 9643a608692SPiotr Kubaj .long 0x1210CD48 9653a608692SPiotr Kubaj .long 0x1231CD48 9663a608692SPiotr Kubaj .long 0x1252CD48 9673a608692SPiotr Kubaj .long 0x1273CD48 9683a608692SPiotr Kubaj .long 0x1294CD48 9693a608692SPiotr Kubaj .long 0x12B5CD48 9703a608692SPiotr Kubaj 9713a608692SPiotr Kubaj .long 0x11EFD548 9723a608692SPiotr Kubaj .long 0x1210D548 9733a608692SPiotr Kubaj .long 0x1231D548 9743a608692SPiotr Kubaj .long 0x1252D548 9753a608692SPiotr Kubaj .long 0x1273D548 9763a608692SPiotr Kubaj .long 0x1294D548 9773a608692SPiotr Kubaj .long 0x12B5D548 9783a608692SPiotr Kubaj 9793a608692SPiotr Kubaj .long 0x11EFDD48 9803a608692SPiotr Kubaj .long 0x1210DD48 9813a608692SPiotr Kubaj .long 0x1231DD48 9823a608692SPiotr Kubaj .long 0x1252DD48 9833a608692SPiotr Kubaj .long 0x1273DD48 9843a608692SPiotr Kubaj .long 0x1294DD48 9853a608692SPiotr Kubaj .long 0x12B5DD48 9863a608692SPiotr Kubaj 9873a608692SPiotr Kubaj .long 0x11EFE548 9883a608692SPiotr Kubaj .long 0x1210E548 9893a608692SPiotr Kubaj .long 0x1231E548 9903a608692SPiotr Kubaj .long 0x1252E548 9913a608692SPiotr Kubaj .long 0x1273E548 9923a608692SPiotr Kubaj .long 0x1294E548 9933a608692SPiotr Kubaj .long 0x12B5E548 9943a608692SPiotr Kubaj 9953a608692SPiotr Kubaj .long 0x11EFED48 9963a608692SPiotr Kubaj .long 0x1210ED48 9973a608692SPiotr Kubaj .long 0x1231ED48 9983a608692SPiotr Kubaj .long 0x1252ED48 9993a608692SPiotr Kubaj .long 0x1273ED48 10003a608692SPiotr Kubaj .long 0x1294ED48 10013a608692SPiotr Kubaj .long 0x12B5ED48 10023a608692SPiotr Kubaj 10033a608692SPiotr Kubaj .long 0x11EFF548 10043a608692SPiotr Kubaj vxor 4,4,31 10053a608692SPiotr Kubaj .long 0x1210F548 10063a608692SPiotr Kubaj vxor 1,1,31 10073a608692SPiotr Kubaj .long 0x1231F548 10083a608692SPiotr Kubaj vxor 2,2,31 10093a608692SPiotr Kubaj .long 0x1252F548 10103a608692SPiotr Kubaj vxor 3,3,31 10113a608692SPiotr Kubaj .long 0x1273F548 10123a608692SPiotr Kubaj vxor 10,10,31 10133a608692SPiotr Kubaj .long 0x1294F548 10143a608692SPiotr Kubaj vxor 11,11,31 10153a608692SPiotr Kubaj .long 0x12B5F548 10163a608692SPiotr Kubaj vxor 12,12,31 10173a608692SPiotr Kubaj 10183a608692SPiotr Kubaj cmplwi 5,32 10193a608692SPiotr Kubaj blt .Lcbc_dec8x_one 10203a608692SPiotr Kubaj nop 10213a608692SPiotr Kubaj beq .Lcbc_dec8x_two 10223a608692SPiotr Kubaj cmplwi 5,64 10233a608692SPiotr Kubaj blt .Lcbc_dec8x_three 10243a608692SPiotr Kubaj nop 10253a608692SPiotr Kubaj beq .Lcbc_dec8x_four 10263a608692SPiotr Kubaj cmplwi 5,96 10273a608692SPiotr Kubaj blt .Lcbc_dec8x_five 10283a608692SPiotr Kubaj nop 10293a608692SPiotr Kubaj beq .Lcbc_dec8x_six 10303a608692SPiotr Kubaj 10313a608692SPiotr Kubaj.Lcbc_dec8x_seven: 10323a608692SPiotr Kubaj .long 0x11EF2549 10333a608692SPiotr Kubaj .long 0x12100D49 10343a608692SPiotr Kubaj .long 0x12311549 10353a608692SPiotr Kubaj .long 0x12521D49 10363a608692SPiotr Kubaj .long 0x12735549 10373a608692SPiotr Kubaj .long 0x12945D49 10383a608692SPiotr Kubaj .long 0x12B56549 10393a608692SPiotr Kubaj vor 4,13,13 10403a608692SPiotr Kubaj 10413a608692SPiotr Kubaj 10423a608692SPiotr Kubaj 10433a608692SPiotr Kubaj .long 0x7DE02799 10443a608692SPiotr Kubaj 10453a608692SPiotr Kubaj .long 0x7E082799 10463a608692SPiotr Kubaj 10473a608692SPiotr Kubaj .long 0x7E3A2799 10483a608692SPiotr Kubaj 10493a608692SPiotr Kubaj .long 0x7E5B2799 10503a608692SPiotr Kubaj 10513a608692SPiotr Kubaj .long 0x7E7C2799 10523a608692SPiotr Kubaj 10533a608692SPiotr Kubaj .long 0x7E9D2799 10543a608692SPiotr Kubaj .long 0x7EBE2799 10553a608692SPiotr Kubaj addi 4,4,0x70 10563a608692SPiotr Kubaj b .Lcbc_dec8x_done 10573a608692SPiotr Kubaj 10583a608692SPiotr Kubaj.align 5 10593a608692SPiotr Kubaj.Lcbc_dec8x_six: 10603a608692SPiotr Kubaj .long 0x12102549 10613a608692SPiotr Kubaj .long 0x12311549 10623a608692SPiotr Kubaj .long 0x12521D49 10633a608692SPiotr Kubaj .long 0x12735549 10643a608692SPiotr Kubaj .long 0x12945D49 10653a608692SPiotr Kubaj .long 0x12B56549 10663a608692SPiotr Kubaj vor 4,13,13 10673a608692SPiotr Kubaj 10683a608692SPiotr Kubaj 10693a608692SPiotr Kubaj 10703a608692SPiotr Kubaj .long 0x7E002799 10713a608692SPiotr Kubaj 10723a608692SPiotr Kubaj .long 0x7E282799 10733a608692SPiotr Kubaj 10743a608692SPiotr Kubaj .long 0x7E5A2799 10753a608692SPiotr Kubaj 10763a608692SPiotr Kubaj .long 0x7E7B2799 10773a608692SPiotr Kubaj 10783a608692SPiotr Kubaj .long 0x7E9C2799 10793a608692SPiotr Kubaj .long 0x7EBD2799 10803a608692SPiotr Kubaj addi 4,4,0x60 10813a608692SPiotr Kubaj b .Lcbc_dec8x_done 10823a608692SPiotr Kubaj 10833a608692SPiotr Kubaj.align 5 10843a608692SPiotr Kubaj.Lcbc_dec8x_five: 10853a608692SPiotr Kubaj .long 0x12312549 10863a608692SPiotr Kubaj .long 0x12521D49 10873a608692SPiotr Kubaj .long 0x12735549 10883a608692SPiotr Kubaj .long 0x12945D49 10893a608692SPiotr Kubaj .long 0x12B56549 10903a608692SPiotr Kubaj vor 4,13,13 10913a608692SPiotr Kubaj 10923a608692SPiotr Kubaj 10933a608692SPiotr Kubaj 10943a608692SPiotr Kubaj .long 0x7E202799 10953a608692SPiotr Kubaj 10963a608692SPiotr Kubaj .long 0x7E482799 10973a608692SPiotr Kubaj 10983a608692SPiotr Kubaj .long 0x7E7A2799 10993a608692SPiotr Kubaj 11003a608692SPiotr Kubaj .long 0x7E9B2799 11013a608692SPiotr Kubaj .long 0x7EBC2799 11023a608692SPiotr Kubaj addi 4,4,0x50 11033a608692SPiotr Kubaj b .Lcbc_dec8x_done 11043a608692SPiotr Kubaj 11053a608692SPiotr Kubaj.align 5 11063a608692SPiotr Kubaj.Lcbc_dec8x_four: 11073a608692SPiotr Kubaj .long 0x12522549 11083a608692SPiotr Kubaj .long 0x12735549 11093a608692SPiotr Kubaj .long 0x12945D49 11103a608692SPiotr Kubaj .long 0x12B56549 11113a608692SPiotr Kubaj vor 4,13,13 11123a608692SPiotr Kubaj 11133a608692SPiotr Kubaj 11143a608692SPiotr Kubaj 11153a608692SPiotr Kubaj .long 0x7E402799 11163a608692SPiotr Kubaj 11173a608692SPiotr Kubaj .long 0x7E682799 11183a608692SPiotr Kubaj 11193a608692SPiotr Kubaj .long 0x7E9A2799 11203a608692SPiotr Kubaj .long 0x7EBB2799 11213a608692SPiotr Kubaj addi 4,4,0x40 11223a608692SPiotr Kubaj b .Lcbc_dec8x_done 11233a608692SPiotr Kubaj 11243a608692SPiotr Kubaj.align 5 11253a608692SPiotr Kubaj.Lcbc_dec8x_three: 11263a608692SPiotr Kubaj .long 0x12732549 11273a608692SPiotr Kubaj .long 0x12945D49 11283a608692SPiotr Kubaj .long 0x12B56549 11293a608692SPiotr Kubaj vor 4,13,13 11303a608692SPiotr Kubaj 11313a608692SPiotr Kubaj 11323a608692SPiotr Kubaj 11333a608692SPiotr Kubaj .long 0x7E602799 11343a608692SPiotr Kubaj 11353a608692SPiotr Kubaj .long 0x7E882799 11363a608692SPiotr Kubaj .long 0x7EBA2799 11373a608692SPiotr Kubaj addi 4,4,0x30 11383a608692SPiotr Kubaj b .Lcbc_dec8x_done 11393a608692SPiotr Kubaj 11403a608692SPiotr Kubaj.align 5 11413a608692SPiotr Kubaj.Lcbc_dec8x_two: 11423a608692SPiotr Kubaj .long 0x12942549 11433a608692SPiotr Kubaj .long 0x12B56549 11443a608692SPiotr Kubaj vor 4,13,13 11453a608692SPiotr Kubaj 11463a608692SPiotr Kubaj 11473a608692SPiotr Kubaj 11483a608692SPiotr Kubaj .long 0x7E802799 11493a608692SPiotr Kubaj .long 0x7EA82799 11503a608692SPiotr Kubaj addi 4,4,0x20 11513a608692SPiotr Kubaj b .Lcbc_dec8x_done 11523a608692SPiotr Kubaj 11533a608692SPiotr Kubaj.align 5 11543a608692SPiotr Kubaj.Lcbc_dec8x_one: 11553a608692SPiotr Kubaj .long 0x12B52549 11563a608692SPiotr Kubaj vor 4,13,13 11573a608692SPiotr Kubaj 11583a608692SPiotr Kubaj 11593a608692SPiotr Kubaj .long 0x7EA02799 11603a608692SPiotr Kubaj addi 4,4,0x10 11613a608692SPiotr Kubaj 11623a608692SPiotr Kubaj.Lcbc_dec8x_done: 11633a608692SPiotr Kubaj 11643a608692SPiotr Kubaj .long 0x7C803F99 11653a608692SPiotr Kubaj 11663a608692SPiotr Kubaj li 10,79 11673a608692SPiotr Kubaj li 11,95 11683a608692SPiotr Kubaj stvx 6,10,1 11693a608692SPiotr Kubaj addi 10,10,32 11703a608692SPiotr Kubaj stvx 6,11,1 11713a608692SPiotr Kubaj addi 11,11,32 11723a608692SPiotr Kubaj stvx 6,10,1 11733a608692SPiotr Kubaj addi 10,10,32 11743a608692SPiotr Kubaj stvx 6,11,1 11753a608692SPiotr Kubaj addi 11,11,32 11763a608692SPiotr Kubaj stvx 6,10,1 11773a608692SPiotr Kubaj addi 10,10,32 11783a608692SPiotr Kubaj stvx 6,11,1 11793a608692SPiotr Kubaj addi 11,11,32 11803a608692SPiotr Kubaj stvx 6,10,1 11813a608692SPiotr Kubaj addi 10,10,32 11823a608692SPiotr Kubaj stvx 6,11,1 11833a608692SPiotr Kubaj addi 11,11,32 11843a608692SPiotr Kubaj 11853a608692SPiotr Kubaj or 12,12,12 11863a608692SPiotr Kubaj lvx 20,10,1 11873a608692SPiotr Kubaj addi 10,10,32 11883a608692SPiotr Kubaj lvx 21,11,1 11893a608692SPiotr Kubaj addi 11,11,32 11903a608692SPiotr Kubaj lvx 22,10,1 11913a608692SPiotr Kubaj addi 10,10,32 11923a608692SPiotr Kubaj lvx 23,11,1 11933a608692SPiotr Kubaj addi 11,11,32 11943a608692SPiotr Kubaj lvx 24,10,1 11953a608692SPiotr Kubaj addi 10,10,32 11963a608692SPiotr Kubaj lvx 25,11,1 11973a608692SPiotr Kubaj addi 11,11,32 11983a608692SPiotr Kubaj lvx 26,10,1 11993a608692SPiotr Kubaj addi 10,10,32 12003a608692SPiotr Kubaj lvx 27,11,1 12013a608692SPiotr Kubaj addi 11,11,32 12023a608692SPiotr Kubaj lvx 28,10,1 12033a608692SPiotr Kubaj addi 10,10,32 12043a608692SPiotr Kubaj lvx 29,11,1 12053a608692SPiotr Kubaj addi 11,11,32 12063a608692SPiotr Kubaj lvx 30,10,1 12073a608692SPiotr Kubaj lvx 31,11,1 12083a608692SPiotr Kubaj ld 26,400(1) 12093a608692SPiotr Kubaj ld 27,408(1) 12103a608692SPiotr Kubaj ld 28,416(1) 12113a608692SPiotr Kubaj ld 29,424(1) 12123a608692SPiotr Kubaj ld 30,432(1) 12133a608692SPiotr Kubaj ld 31,440(1) 12143a608692SPiotr Kubaj addi 1,1,448 12153a608692SPiotr Kubaj blr 12163a608692SPiotr Kubaj.long 0 12173a608692SPiotr Kubaj.byte 0,12,0x04,0,0x80,6,6,0 12183a608692SPiotr Kubaj.long 0 12193a608692SPiotr Kubaj.size aes_p8_cbc_encrypt,.-aes_p8_cbc_encrypt 12203a608692SPiotr Kubaj.globl aes_p8_ctr32_encrypt_blocks 12213a608692SPiotr Kubaj.type aes_p8_ctr32_encrypt_blocks,@function 12223a608692SPiotr Kubaj.align 5 12233a608692SPiotr Kubajaes_p8_ctr32_encrypt_blocks: 12243a608692SPiotr Kubaj.localentry aes_p8_ctr32_encrypt_blocks,0 12253a608692SPiotr Kubaj 12263a608692SPiotr Kubaj cmpldi 5,1 12273a608692SPiotr Kubaj .long 0x4dc00020 12283a608692SPiotr Kubaj 12293a608692SPiotr Kubaj lis 0,0xfff0 12303a608692SPiotr Kubaj li 12,-1 12313a608692SPiotr Kubaj or 0,0,0 12323a608692SPiotr Kubaj 12333a608692SPiotr Kubaj li 10,15 12343a608692SPiotr Kubaj vxor 0,0,0 12353a608692SPiotr Kubaj 12363a608692SPiotr Kubaj 12373a608692SPiotr Kubaj lvx 4,0,7 12383a608692SPiotr Kubaj lvsl 6,0,7 12393a608692SPiotr Kubaj lvx 5,10,7 12403a608692SPiotr Kubaj vspltisb 11,1 12413a608692SPiotr Kubaj 12423a608692SPiotr Kubaj vperm 4,4,5,6 12433a608692SPiotr Kubaj vsldoi 11,0,11,1 12443a608692SPiotr Kubaj 12453a608692SPiotr Kubaj neg 11,3 12463a608692SPiotr Kubaj lvsl 10,0,6 12473a608692SPiotr Kubaj lwz 9,240(6) 12483a608692SPiotr Kubaj 12493a608692SPiotr Kubaj lvsr 6,0,11 12503a608692SPiotr Kubaj lvx 5,0,3 12513a608692SPiotr Kubaj addi 3,3,15 12523a608692SPiotr Kubaj 12533a608692SPiotr Kubaj 12543a608692SPiotr Kubaj srwi 9,9,1 12553a608692SPiotr Kubaj li 10,16 12563a608692SPiotr Kubaj subi 9,9,1 12573a608692SPiotr Kubaj 12583a608692SPiotr Kubaj cmpldi 5,8 12593a608692SPiotr Kubaj bge _aesp8_ctr32_encrypt8x 12603a608692SPiotr Kubaj 12613a608692SPiotr Kubaj lvsr 8,0,4 12623a608692SPiotr Kubaj vspltisb 9,-1 12633a608692SPiotr Kubaj lvx 7,0,4 12643a608692SPiotr Kubaj vperm 9,0,9,8 12653a608692SPiotr Kubaj 12663a608692SPiotr Kubaj 12673a608692SPiotr Kubaj lvx 0,0,6 12683a608692SPiotr Kubaj mtctr 9 12693a608692SPiotr Kubaj lvx 1,10,6 12703a608692SPiotr Kubaj addi 10,10,16 12713a608692SPiotr Kubaj vperm 0,0,1,10 12723a608692SPiotr Kubaj vxor 2,4,0 12733a608692SPiotr Kubaj lvx 0,10,6 12743a608692SPiotr Kubaj addi 10,10,16 12753a608692SPiotr Kubaj b .Loop_ctr32_enc 12763a608692SPiotr Kubaj 12773a608692SPiotr Kubaj.align 5 12783a608692SPiotr Kubaj.Loop_ctr32_enc: 12793a608692SPiotr Kubaj vperm 1,1,0,10 12803a608692SPiotr Kubaj .long 0x10420D08 12813a608692SPiotr Kubaj lvx 1,10,6 12823a608692SPiotr Kubaj addi 10,10,16 12833a608692SPiotr Kubaj vperm 0,0,1,10 12843a608692SPiotr Kubaj .long 0x10420508 12853a608692SPiotr Kubaj lvx 0,10,6 12863a608692SPiotr Kubaj addi 10,10,16 12873a608692SPiotr Kubaj bdnz .Loop_ctr32_enc 12883a608692SPiotr Kubaj 12893a608692SPiotr Kubaj vadduwm 4,4,11 12903a608692SPiotr Kubaj vor 3,5,5 12913a608692SPiotr Kubaj lvx 5,0,3 12923a608692SPiotr Kubaj addi 3,3,16 12933a608692SPiotr Kubaj subic. 5,5,1 12943a608692SPiotr Kubaj 12953a608692SPiotr Kubaj vperm 1,1,0,10 12963a608692SPiotr Kubaj .long 0x10420D08 12973a608692SPiotr Kubaj lvx 1,10,6 12983a608692SPiotr Kubaj vperm 3,3,5,6 12993a608692SPiotr Kubaj li 10,16 13003a608692SPiotr Kubaj vperm 1,0,1,10 13013a608692SPiotr Kubaj lvx 0,0,6 13023a608692SPiotr Kubaj vxor 3,3,1 13033a608692SPiotr Kubaj .long 0x10421D09 13043a608692SPiotr Kubaj 13053a608692SPiotr Kubaj lvx 1,10,6 13063a608692SPiotr Kubaj addi 10,10,16 13073a608692SPiotr Kubaj vperm 2,2,2,8 13083a608692SPiotr Kubaj vsel 3,7,2,9 13093a608692SPiotr Kubaj mtctr 9 13103a608692SPiotr Kubaj vperm 0,0,1,10 13113a608692SPiotr Kubaj vor 7,2,2 13123a608692SPiotr Kubaj vxor 2,4,0 13133a608692SPiotr Kubaj lvx 0,10,6 13143a608692SPiotr Kubaj addi 10,10,16 13153a608692SPiotr Kubaj stvx 3,0,4 13163a608692SPiotr Kubaj addi 4,4,16 13173a608692SPiotr Kubaj bne .Loop_ctr32_enc 13183a608692SPiotr Kubaj 13193a608692SPiotr Kubaj addi 4,4,-1 13203a608692SPiotr Kubaj lvx 2,0,4 13213a608692SPiotr Kubaj vsel 2,7,2,9 13223a608692SPiotr Kubaj stvx 2,0,4 13233a608692SPiotr Kubaj 13243a608692SPiotr Kubaj or 12,12,12 13253a608692SPiotr Kubaj blr 13263a608692SPiotr Kubaj.long 0 13273a608692SPiotr Kubaj.byte 0,12,0x14,0,0,0,6,0 13283a608692SPiotr Kubaj.long 0 13293a608692SPiotr Kubaj.align 5 13303a608692SPiotr Kubaj_aesp8_ctr32_encrypt8x: 13313a608692SPiotr Kubaj stdu 1,-448(1) 13323a608692SPiotr Kubaj li 10,207 13333a608692SPiotr Kubaj li 11,223 13343a608692SPiotr Kubaj stvx 20,10,1 13353a608692SPiotr Kubaj addi 10,10,32 13363a608692SPiotr Kubaj stvx 21,11,1 13373a608692SPiotr Kubaj addi 11,11,32 13383a608692SPiotr Kubaj stvx 22,10,1 13393a608692SPiotr Kubaj addi 10,10,32 13403a608692SPiotr Kubaj stvx 23,11,1 13413a608692SPiotr Kubaj addi 11,11,32 13423a608692SPiotr Kubaj stvx 24,10,1 13433a608692SPiotr Kubaj addi 10,10,32 13443a608692SPiotr Kubaj stvx 25,11,1 13453a608692SPiotr Kubaj addi 11,11,32 13463a608692SPiotr Kubaj stvx 26,10,1 13473a608692SPiotr Kubaj addi 10,10,32 13483a608692SPiotr Kubaj stvx 27,11,1 13493a608692SPiotr Kubaj addi 11,11,32 13503a608692SPiotr Kubaj stvx 28,10,1 13513a608692SPiotr Kubaj addi 10,10,32 13523a608692SPiotr Kubaj stvx 29,11,1 13533a608692SPiotr Kubaj addi 11,11,32 13543a608692SPiotr Kubaj stvx 30,10,1 13553a608692SPiotr Kubaj stvx 31,11,1 13563a608692SPiotr Kubaj li 0,-1 13573a608692SPiotr Kubaj stw 12,396(1) 13583a608692SPiotr Kubaj li 8,0x10 13593a608692SPiotr Kubaj std 26,400(1) 13603a608692SPiotr Kubaj li 26,0x20 13613a608692SPiotr Kubaj std 27,408(1) 13623a608692SPiotr Kubaj li 27,0x30 13633a608692SPiotr Kubaj std 28,416(1) 13643a608692SPiotr Kubaj li 28,0x40 13653a608692SPiotr Kubaj std 29,424(1) 13663a608692SPiotr Kubaj li 29,0x50 13673a608692SPiotr Kubaj std 30,432(1) 13683a608692SPiotr Kubaj li 30,0x60 13693a608692SPiotr Kubaj std 31,440(1) 13703a608692SPiotr Kubaj li 31,0x70 13713a608692SPiotr Kubaj or 0,0,0 13723a608692SPiotr Kubaj 13733a608692SPiotr Kubaj subi 9,9,3 13743a608692SPiotr Kubaj 13753a608692SPiotr Kubaj lvx 23,0,6 13763a608692SPiotr Kubaj lvx 30,8,6 13773a608692SPiotr Kubaj addi 6,6,0x20 13783a608692SPiotr Kubaj lvx 31,0,6 13793a608692SPiotr Kubaj vperm 23,23,30,10 13803a608692SPiotr Kubaj addi 11,1,64+15 13813a608692SPiotr Kubaj mtctr 9 13823a608692SPiotr Kubaj 13833a608692SPiotr Kubaj.Load_ctr32_enc_key: 13843a608692SPiotr Kubaj vperm 24,30,31,10 13853a608692SPiotr Kubaj lvx 30,8,6 13863a608692SPiotr Kubaj addi 6,6,0x20 13873a608692SPiotr Kubaj stvx 24,0,11 13883a608692SPiotr Kubaj vperm 25,31,30,10 13893a608692SPiotr Kubaj lvx 31,0,6 13903a608692SPiotr Kubaj stvx 25,8,11 13913a608692SPiotr Kubaj addi 11,11,0x20 13923a608692SPiotr Kubaj bdnz .Load_ctr32_enc_key 13933a608692SPiotr Kubaj 13943a608692SPiotr Kubaj lvx 26,8,6 13953a608692SPiotr Kubaj vperm 24,30,31,10 13963a608692SPiotr Kubaj lvx 27,26,6 13973a608692SPiotr Kubaj stvx 24,0,11 13983a608692SPiotr Kubaj vperm 25,31,26,10 13993a608692SPiotr Kubaj lvx 28,27,6 14003a608692SPiotr Kubaj stvx 25,8,11 14013a608692SPiotr Kubaj addi 11,1,64+15 14023a608692SPiotr Kubaj vperm 26,26,27,10 14033a608692SPiotr Kubaj lvx 29,28,6 14043a608692SPiotr Kubaj vperm 27,27,28,10 14053a608692SPiotr Kubaj lvx 30,29,6 14063a608692SPiotr Kubaj vperm 28,28,29,10 14073a608692SPiotr Kubaj lvx 31,30,6 14083a608692SPiotr Kubaj vperm 29,29,30,10 14093a608692SPiotr Kubaj lvx 15,31,6 14103a608692SPiotr Kubaj vperm 30,30,31,10 14113a608692SPiotr Kubaj lvx 24,0,11 14123a608692SPiotr Kubaj vperm 31,31,15,10 14133a608692SPiotr Kubaj lvx 25,8,11 14143a608692SPiotr Kubaj 14153a608692SPiotr Kubaj vadduwm 7,11,11 14163a608692SPiotr Kubaj subi 3,3,15 14173a608692SPiotr Kubaj sldi 5,5,4 14183a608692SPiotr Kubaj 14193a608692SPiotr Kubaj vadduwm 16,4,11 14203a608692SPiotr Kubaj vadduwm 17,4,7 14213a608692SPiotr Kubaj vxor 15,4,23 14223a608692SPiotr Kubaj 14233a608692SPiotr Kubaj vadduwm 18,16,7 14243a608692SPiotr Kubaj vxor 16,16,23 14253a608692SPiotr Kubaj 14263a608692SPiotr Kubaj vadduwm 19,17,7 14273a608692SPiotr Kubaj vxor 17,17,23 14283a608692SPiotr Kubaj 14293a608692SPiotr Kubaj vadduwm 20,18,7 14303a608692SPiotr Kubaj vxor 18,18,23 14313a608692SPiotr Kubaj 14323a608692SPiotr Kubaj vadduwm 21,19,7 14333a608692SPiotr Kubaj vxor 19,19,23 14343a608692SPiotr Kubaj vadduwm 22,20,7 14353a608692SPiotr Kubaj vxor 20,20,23 14363a608692SPiotr Kubaj vadduwm 4,21,7 14373a608692SPiotr Kubaj vxor 21,21,23 14383a608692SPiotr Kubaj vxor 22,22,23 14393a608692SPiotr Kubaj 14403a608692SPiotr Kubaj mtctr 9 14413a608692SPiotr Kubaj b .Loop_ctr32_enc8x 14423a608692SPiotr Kubaj.align 5 14433a608692SPiotr Kubaj.Loop_ctr32_enc8x: 14443a608692SPiotr Kubaj .long 0x11EFC508 14453a608692SPiotr Kubaj .long 0x1210C508 14463a608692SPiotr Kubaj .long 0x1231C508 14473a608692SPiotr Kubaj .long 0x1252C508 14483a608692SPiotr Kubaj .long 0x1273C508 14493a608692SPiotr Kubaj .long 0x1294C508 14503a608692SPiotr Kubaj .long 0x12B5C508 14513a608692SPiotr Kubaj .long 0x12D6C508 14523a608692SPiotr Kubaj.Loop_ctr32_enc8x_middle: 14533a608692SPiotr Kubaj lvx 24,26,11 14543a608692SPiotr Kubaj addi 11,11,0x20 14553a608692SPiotr Kubaj 14563a608692SPiotr Kubaj .long 0x11EFCD08 14573a608692SPiotr Kubaj .long 0x1210CD08 14583a608692SPiotr Kubaj .long 0x1231CD08 14593a608692SPiotr Kubaj .long 0x1252CD08 14603a608692SPiotr Kubaj .long 0x1273CD08 14613a608692SPiotr Kubaj .long 0x1294CD08 14623a608692SPiotr Kubaj .long 0x12B5CD08 14633a608692SPiotr Kubaj .long 0x12D6CD08 14643a608692SPiotr Kubaj lvx 25,8,11 14653a608692SPiotr Kubaj bdnz .Loop_ctr32_enc8x 14663a608692SPiotr Kubaj 14673a608692SPiotr Kubaj subic 11,5,256 14683a608692SPiotr Kubaj .long 0x11EFC508 14693a608692SPiotr Kubaj .long 0x1210C508 14703a608692SPiotr Kubaj .long 0x1231C508 14713a608692SPiotr Kubaj .long 0x1252C508 14723a608692SPiotr Kubaj .long 0x1273C508 14733a608692SPiotr Kubaj .long 0x1294C508 14743a608692SPiotr Kubaj .long 0x12B5C508 14753a608692SPiotr Kubaj .long 0x12D6C508 14763a608692SPiotr Kubaj 14773a608692SPiotr Kubaj subfe 0,0,0 14783a608692SPiotr Kubaj .long 0x11EFCD08 14793a608692SPiotr Kubaj .long 0x1210CD08 14803a608692SPiotr Kubaj .long 0x1231CD08 14813a608692SPiotr Kubaj .long 0x1252CD08 14823a608692SPiotr Kubaj .long 0x1273CD08 14833a608692SPiotr Kubaj .long 0x1294CD08 14843a608692SPiotr Kubaj .long 0x12B5CD08 14853a608692SPiotr Kubaj .long 0x12D6CD08 14863a608692SPiotr Kubaj 14873a608692SPiotr Kubaj and 0,0,11 14883a608692SPiotr Kubaj addi 11,1,64+15 14893a608692SPiotr Kubaj .long 0x11EFD508 14903a608692SPiotr Kubaj .long 0x1210D508 14913a608692SPiotr Kubaj .long 0x1231D508 14923a608692SPiotr Kubaj .long 0x1252D508 14933a608692SPiotr Kubaj .long 0x1273D508 14943a608692SPiotr Kubaj .long 0x1294D508 14953a608692SPiotr Kubaj .long 0x12B5D508 14963a608692SPiotr Kubaj .long 0x12D6D508 14973a608692SPiotr Kubaj lvx 24,0,11 14983a608692SPiotr Kubaj 14993a608692SPiotr Kubaj subic 5,5,129 15003a608692SPiotr Kubaj .long 0x11EFDD08 15013a608692SPiotr Kubaj addi 5,5,1 15023a608692SPiotr Kubaj .long 0x1210DD08 15033a608692SPiotr Kubaj .long 0x1231DD08 15043a608692SPiotr Kubaj .long 0x1252DD08 15053a608692SPiotr Kubaj .long 0x1273DD08 15063a608692SPiotr Kubaj .long 0x1294DD08 15073a608692SPiotr Kubaj .long 0x12B5DD08 15083a608692SPiotr Kubaj .long 0x12D6DD08 15093a608692SPiotr Kubaj lvx 25,8,11 15103a608692SPiotr Kubaj 15113a608692SPiotr Kubaj .long 0x11EFE508 15123a608692SPiotr Kubaj .long 0x7C001E99 15133a608692SPiotr Kubaj .long 0x1210E508 15143a608692SPiotr Kubaj .long 0x7C281E99 15153a608692SPiotr Kubaj .long 0x1231E508 15163a608692SPiotr Kubaj .long 0x7C5A1E99 15173a608692SPiotr Kubaj .long 0x1252E508 15183a608692SPiotr Kubaj .long 0x7C7B1E99 15193a608692SPiotr Kubaj .long 0x1273E508 15203a608692SPiotr Kubaj .long 0x7D5C1E99 15213a608692SPiotr Kubaj .long 0x1294E508 15223a608692SPiotr Kubaj .long 0x7D9D1E99 15233a608692SPiotr Kubaj .long 0x12B5E508 15243a608692SPiotr Kubaj .long 0x7DBE1E99 15253a608692SPiotr Kubaj .long 0x12D6E508 15263a608692SPiotr Kubaj .long 0x7DDF1E99 15273a608692SPiotr Kubaj addi 3,3,0x80 15283a608692SPiotr Kubaj 15293a608692SPiotr Kubaj .long 0x11EFED08 15303a608692SPiotr Kubaj 15313a608692SPiotr Kubaj .long 0x1210ED08 15323a608692SPiotr Kubaj 15333a608692SPiotr Kubaj .long 0x1231ED08 15343a608692SPiotr Kubaj 15353a608692SPiotr Kubaj .long 0x1252ED08 15363a608692SPiotr Kubaj 15373a608692SPiotr Kubaj .long 0x1273ED08 15383a608692SPiotr Kubaj 15393a608692SPiotr Kubaj .long 0x1294ED08 15403a608692SPiotr Kubaj 15413a608692SPiotr Kubaj .long 0x12B5ED08 15423a608692SPiotr Kubaj 15433a608692SPiotr Kubaj .long 0x12D6ED08 15443a608692SPiotr Kubaj 15453a608692SPiotr Kubaj 15463a608692SPiotr Kubaj add 3,3,0 15473a608692SPiotr Kubaj 15483a608692SPiotr Kubaj 15493a608692SPiotr Kubaj 15503a608692SPiotr Kubaj subfe. 0,0,0 15513a608692SPiotr Kubaj .long 0x11EFF508 15523a608692SPiotr Kubaj vxor 0,0,31 15533a608692SPiotr Kubaj .long 0x1210F508 15543a608692SPiotr Kubaj vxor 1,1,31 15553a608692SPiotr Kubaj .long 0x1231F508 15563a608692SPiotr Kubaj vxor 2,2,31 15573a608692SPiotr Kubaj .long 0x1252F508 15583a608692SPiotr Kubaj vxor 3,3,31 15593a608692SPiotr Kubaj .long 0x1273F508 15603a608692SPiotr Kubaj vxor 10,10,31 15613a608692SPiotr Kubaj .long 0x1294F508 15623a608692SPiotr Kubaj vxor 12,12,31 15633a608692SPiotr Kubaj .long 0x12B5F508 15643a608692SPiotr Kubaj vxor 13,13,31 15653a608692SPiotr Kubaj .long 0x12D6F508 15663a608692SPiotr Kubaj vxor 14,14,31 15673a608692SPiotr Kubaj 15683a608692SPiotr Kubaj bne .Lctr32_enc8x_break 15693a608692SPiotr Kubaj 15703a608692SPiotr Kubaj .long 0x100F0509 15713a608692SPiotr Kubaj .long 0x10300D09 15723a608692SPiotr Kubaj vadduwm 16,4,11 15733a608692SPiotr Kubaj .long 0x10511509 15743a608692SPiotr Kubaj vadduwm 17,4,7 15753a608692SPiotr Kubaj vxor 15,4,23 15763a608692SPiotr Kubaj .long 0x10721D09 15773a608692SPiotr Kubaj vadduwm 18,16,7 15783a608692SPiotr Kubaj vxor 16,16,23 15793a608692SPiotr Kubaj .long 0x11535509 15803a608692SPiotr Kubaj vadduwm 19,17,7 15813a608692SPiotr Kubaj vxor 17,17,23 15823a608692SPiotr Kubaj .long 0x11946509 15833a608692SPiotr Kubaj vadduwm 20,18,7 15843a608692SPiotr Kubaj vxor 18,18,23 15853a608692SPiotr Kubaj .long 0x11B56D09 15863a608692SPiotr Kubaj vadduwm 21,19,7 15873a608692SPiotr Kubaj vxor 19,19,23 15883a608692SPiotr Kubaj .long 0x11D67509 15893a608692SPiotr Kubaj vadduwm 22,20,7 15903a608692SPiotr Kubaj vxor 20,20,23 15913a608692SPiotr Kubaj 15923a608692SPiotr Kubaj vadduwm 4,21,7 15933a608692SPiotr Kubaj vxor 21,21,23 15943a608692SPiotr Kubaj 15953a608692SPiotr Kubaj vxor 22,22,23 15963a608692SPiotr Kubaj mtctr 9 15973a608692SPiotr Kubaj 15983a608692SPiotr Kubaj .long 0x11EFC508 15993a608692SPiotr Kubaj .long 0x7C002799 16003a608692SPiotr Kubaj 16013a608692SPiotr Kubaj .long 0x1210C508 16023a608692SPiotr Kubaj .long 0x7C282799 16033a608692SPiotr Kubaj 16043a608692SPiotr Kubaj .long 0x1231C508 16053a608692SPiotr Kubaj .long 0x7C5A2799 16063a608692SPiotr Kubaj 16073a608692SPiotr Kubaj .long 0x1252C508 16083a608692SPiotr Kubaj .long 0x7C7B2799 16093a608692SPiotr Kubaj 16103a608692SPiotr Kubaj .long 0x1273C508 16113a608692SPiotr Kubaj .long 0x7D5C2799 16123a608692SPiotr Kubaj 16133a608692SPiotr Kubaj .long 0x1294C508 16143a608692SPiotr Kubaj .long 0x7D9D2799 16153a608692SPiotr Kubaj 16163a608692SPiotr Kubaj .long 0x12B5C508 16173a608692SPiotr Kubaj .long 0x7DBE2799 16183a608692SPiotr Kubaj .long 0x12D6C508 16193a608692SPiotr Kubaj .long 0x7DDF2799 16203a608692SPiotr Kubaj addi 4,4,0x80 16213a608692SPiotr Kubaj 16223a608692SPiotr Kubaj b .Loop_ctr32_enc8x_middle 16233a608692SPiotr Kubaj 16243a608692SPiotr Kubaj.align 5 16253a608692SPiotr Kubaj.Lctr32_enc8x_break: 16263a608692SPiotr Kubaj cmpwi 5,-0x60 16273a608692SPiotr Kubaj blt .Lctr32_enc8x_one 16283a608692SPiotr Kubaj nop 16293a608692SPiotr Kubaj beq .Lctr32_enc8x_two 16303a608692SPiotr Kubaj cmpwi 5,-0x40 16313a608692SPiotr Kubaj blt .Lctr32_enc8x_three 16323a608692SPiotr Kubaj nop 16333a608692SPiotr Kubaj beq .Lctr32_enc8x_four 16343a608692SPiotr Kubaj cmpwi 5,-0x20 16353a608692SPiotr Kubaj blt .Lctr32_enc8x_five 16363a608692SPiotr Kubaj nop 16373a608692SPiotr Kubaj beq .Lctr32_enc8x_six 16383a608692SPiotr Kubaj cmpwi 5,0x00 16393a608692SPiotr Kubaj blt .Lctr32_enc8x_seven 16403a608692SPiotr Kubaj 16413a608692SPiotr Kubaj.Lctr32_enc8x_eight: 16423a608692SPiotr Kubaj .long 0x11EF0509 16433a608692SPiotr Kubaj .long 0x12100D09 16443a608692SPiotr Kubaj .long 0x12311509 16453a608692SPiotr Kubaj .long 0x12521D09 16463a608692SPiotr Kubaj .long 0x12735509 16473a608692SPiotr Kubaj .long 0x12946509 16483a608692SPiotr Kubaj .long 0x12B56D09 16493a608692SPiotr Kubaj .long 0x12D67509 16503a608692SPiotr Kubaj 16513a608692SPiotr Kubaj 16523a608692SPiotr Kubaj 16533a608692SPiotr Kubaj .long 0x7DE02799 16543a608692SPiotr Kubaj 16553a608692SPiotr Kubaj .long 0x7E082799 16563a608692SPiotr Kubaj 16573a608692SPiotr Kubaj .long 0x7E3A2799 16583a608692SPiotr Kubaj 16593a608692SPiotr Kubaj .long 0x7E5B2799 16603a608692SPiotr Kubaj 16613a608692SPiotr Kubaj .long 0x7E7C2799 16623a608692SPiotr Kubaj 16633a608692SPiotr Kubaj .long 0x7E9D2799 16643a608692SPiotr Kubaj 16653a608692SPiotr Kubaj .long 0x7EBE2799 16663a608692SPiotr Kubaj .long 0x7EDF2799 16673a608692SPiotr Kubaj addi 4,4,0x80 16683a608692SPiotr Kubaj b .Lctr32_enc8x_done 16693a608692SPiotr Kubaj 16703a608692SPiotr Kubaj.align 5 16713a608692SPiotr Kubaj.Lctr32_enc8x_seven: 16723a608692SPiotr Kubaj .long 0x11EF0D09 16733a608692SPiotr Kubaj .long 0x12101509 16743a608692SPiotr Kubaj .long 0x12311D09 16753a608692SPiotr Kubaj .long 0x12525509 16763a608692SPiotr Kubaj .long 0x12736509 16773a608692SPiotr Kubaj .long 0x12946D09 16783a608692SPiotr Kubaj .long 0x12B57509 16793a608692SPiotr Kubaj 16803a608692SPiotr Kubaj 16813a608692SPiotr Kubaj 16823a608692SPiotr Kubaj .long 0x7DE02799 16833a608692SPiotr Kubaj 16843a608692SPiotr Kubaj .long 0x7E082799 16853a608692SPiotr Kubaj 16863a608692SPiotr Kubaj .long 0x7E3A2799 16873a608692SPiotr Kubaj 16883a608692SPiotr Kubaj .long 0x7E5B2799 16893a608692SPiotr Kubaj 16903a608692SPiotr Kubaj .long 0x7E7C2799 16913a608692SPiotr Kubaj 16923a608692SPiotr Kubaj .long 0x7E9D2799 16933a608692SPiotr Kubaj .long 0x7EBE2799 16943a608692SPiotr Kubaj addi 4,4,0x70 16953a608692SPiotr Kubaj b .Lctr32_enc8x_done 16963a608692SPiotr Kubaj 16973a608692SPiotr Kubaj.align 5 16983a608692SPiotr Kubaj.Lctr32_enc8x_six: 16993a608692SPiotr Kubaj .long 0x11EF1509 17003a608692SPiotr Kubaj .long 0x12101D09 17013a608692SPiotr Kubaj .long 0x12315509 17023a608692SPiotr Kubaj .long 0x12526509 17033a608692SPiotr Kubaj .long 0x12736D09 17043a608692SPiotr Kubaj .long 0x12947509 17053a608692SPiotr Kubaj 17063a608692SPiotr Kubaj 17073a608692SPiotr Kubaj 17083a608692SPiotr Kubaj .long 0x7DE02799 17093a608692SPiotr Kubaj 17103a608692SPiotr Kubaj .long 0x7E082799 17113a608692SPiotr Kubaj 17123a608692SPiotr Kubaj .long 0x7E3A2799 17133a608692SPiotr Kubaj 17143a608692SPiotr Kubaj .long 0x7E5B2799 17153a608692SPiotr Kubaj 17163a608692SPiotr Kubaj .long 0x7E7C2799 17173a608692SPiotr Kubaj .long 0x7E9D2799 17183a608692SPiotr Kubaj addi 4,4,0x60 17193a608692SPiotr Kubaj b .Lctr32_enc8x_done 17203a608692SPiotr Kubaj 17213a608692SPiotr Kubaj.align 5 17223a608692SPiotr Kubaj.Lctr32_enc8x_five: 17233a608692SPiotr Kubaj .long 0x11EF1D09 17243a608692SPiotr Kubaj .long 0x12105509 17253a608692SPiotr Kubaj .long 0x12316509 17263a608692SPiotr Kubaj .long 0x12526D09 17273a608692SPiotr Kubaj .long 0x12737509 17283a608692SPiotr Kubaj 17293a608692SPiotr Kubaj 17303a608692SPiotr Kubaj 17313a608692SPiotr Kubaj .long 0x7DE02799 17323a608692SPiotr Kubaj 17333a608692SPiotr Kubaj .long 0x7E082799 17343a608692SPiotr Kubaj 17353a608692SPiotr Kubaj .long 0x7E3A2799 17363a608692SPiotr Kubaj 17373a608692SPiotr Kubaj .long 0x7E5B2799 17383a608692SPiotr Kubaj .long 0x7E7C2799 17393a608692SPiotr Kubaj addi 4,4,0x50 17403a608692SPiotr Kubaj b .Lctr32_enc8x_done 17413a608692SPiotr Kubaj 17423a608692SPiotr Kubaj.align 5 17433a608692SPiotr Kubaj.Lctr32_enc8x_four: 17443a608692SPiotr Kubaj .long 0x11EF5509 17453a608692SPiotr Kubaj .long 0x12106509 17463a608692SPiotr Kubaj .long 0x12316D09 17473a608692SPiotr Kubaj .long 0x12527509 17483a608692SPiotr Kubaj 17493a608692SPiotr Kubaj 17503a608692SPiotr Kubaj 17513a608692SPiotr Kubaj .long 0x7DE02799 17523a608692SPiotr Kubaj 17533a608692SPiotr Kubaj .long 0x7E082799 17543a608692SPiotr Kubaj 17553a608692SPiotr Kubaj .long 0x7E3A2799 17563a608692SPiotr Kubaj .long 0x7E5B2799 17573a608692SPiotr Kubaj addi 4,4,0x40 17583a608692SPiotr Kubaj b .Lctr32_enc8x_done 17593a608692SPiotr Kubaj 17603a608692SPiotr Kubaj.align 5 17613a608692SPiotr Kubaj.Lctr32_enc8x_three: 17623a608692SPiotr Kubaj .long 0x11EF6509 17633a608692SPiotr Kubaj .long 0x12106D09 17643a608692SPiotr Kubaj .long 0x12317509 17653a608692SPiotr Kubaj 17663a608692SPiotr Kubaj 17673a608692SPiotr Kubaj 17683a608692SPiotr Kubaj .long 0x7DE02799 17693a608692SPiotr Kubaj 17703a608692SPiotr Kubaj .long 0x7E082799 17713a608692SPiotr Kubaj .long 0x7E3A2799 17723a608692SPiotr Kubaj addi 4,4,0x30 17733a608692SPiotr Kubaj b .Lctr32_enc8x_done 17743a608692SPiotr Kubaj 17753a608692SPiotr Kubaj.align 5 17763a608692SPiotr Kubaj.Lctr32_enc8x_two: 17773a608692SPiotr Kubaj .long 0x11EF6D09 17783a608692SPiotr Kubaj .long 0x12107509 17793a608692SPiotr Kubaj 17803a608692SPiotr Kubaj 17813a608692SPiotr Kubaj 17823a608692SPiotr Kubaj .long 0x7DE02799 17833a608692SPiotr Kubaj .long 0x7E082799 17843a608692SPiotr Kubaj addi 4,4,0x20 17853a608692SPiotr Kubaj b .Lctr32_enc8x_done 17863a608692SPiotr Kubaj 17873a608692SPiotr Kubaj.align 5 17883a608692SPiotr Kubaj.Lctr32_enc8x_one: 17893a608692SPiotr Kubaj .long 0x11EF7509 17903a608692SPiotr Kubaj 17913a608692SPiotr Kubaj 17923a608692SPiotr Kubaj .long 0x7DE02799 17933a608692SPiotr Kubaj addi 4,4,0x10 17943a608692SPiotr Kubaj 17953a608692SPiotr Kubaj.Lctr32_enc8x_done: 17963a608692SPiotr Kubaj li 10,79 17973a608692SPiotr Kubaj li 11,95 17983a608692SPiotr Kubaj stvx 6,10,1 17993a608692SPiotr Kubaj addi 10,10,32 18003a608692SPiotr Kubaj stvx 6,11,1 18013a608692SPiotr Kubaj addi 11,11,32 18023a608692SPiotr Kubaj stvx 6,10,1 18033a608692SPiotr Kubaj addi 10,10,32 18043a608692SPiotr Kubaj stvx 6,11,1 18053a608692SPiotr Kubaj addi 11,11,32 18063a608692SPiotr Kubaj stvx 6,10,1 18073a608692SPiotr Kubaj addi 10,10,32 18083a608692SPiotr Kubaj stvx 6,11,1 18093a608692SPiotr Kubaj addi 11,11,32 18103a608692SPiotr Kubaj stvx 6,10,1 18113a608692SPiotr Kubaj addi 10,10,32 18123a608692SPiotr Kubaj stvx 6,11,1 18133a608692SPiotr Kubaj addi 11,11,32 18143a608692SPiotr Kubaj 18153a608692SPiotr Kubaj or 12,12,12 18163a608692SPiotr Kubaj lvx 20,10,1 18173a608692SPiotr Kubaj addi 10,10,32 18183a608692SPiotr Kubaj lvx 21,11,1 18193a608692SPiotr Kubaj addi 11,11,32 18203a608692SPiotr Kubaj lvx 22,10,1 18213a608692SPiotr Kubaj addi 10,10,32 18223a608692SPiotr Kubaj lvx 23,11,1 18233a608692SPiotr Kubaj addi 11,11,32 18243a608692SPiotr Kubaj lvx 24,10,1 18253a608692SPiotr Kubaj addi 10,10,32 18263a608692SPiotr Kubaj lvx 25,11,1 18273a608692SPiotr Kubaj addi 11,11,32 18283a608692SPiotr Kubaj lvx 26,10,1 18293a608692SPiotr Kubaj addi 10,10,32 18303a608692SPiotr Kubaj lvx 27,11,1 18313a608692SPiotr Kubaj addi 11,11,32 18323a608692SPiotr Kubaj lvx 28,10,1 18333a608692SPiotr Kubaj addi 10,10,32 18343a608692SPiotr Kubaj lvx 29,11,1 18353a608692SPiotr Kubaj addi 11,11,32 18363a608692SPiotr Kubaj lvx 30,10,1 18373a608692SPiotr Kubaj lvx 31,11,1 18383a608692SPiotr Kubaj ld 26,400(1) 18393a608692SPiotr Kubaj ld 27,408(1) 18403a608692SPiotr Kubaj ld 28,416(1) 18413a608692SPiotr Kubaj ld 29,424(1) 18423a608692SPiotr Kubaj ld 30,432(1) 18433a608692SPiotr Kubaj ld 31,440(1) 18443a608692SPiotr Kubaj addi 1,1,448 18453a608692SPiotr Kubaj blr 18463a608692SPiotr Kubaj.long 0 18473a608692SPiotr Kubaj.byte 0,12,0x04,0,0x80,6,6,0 18483a608692SPiotr Kubaj.long 0 18493a608692SPiotr Kubaj.size aes_p8_ctr32_encrypt_blocks,.-aes_p8_ctr32_encrypt_blocks 18503a608692SPiotr Kubaj.globl aes_p8_xts_encrypt 18513a608692SPiotr Kubaj.type aes_p8_xts_encrypt,@function 18523a608692SPiotr Kubaj.align 5 18533a608692SPiotr Kubajaes_p8_xts_encrypt: 18543a608692SPiotr Kubaj.localentry aes_p8_xts_encrypt,0 18553a608692SPiotr Kubaj 18563a608692SPiotr Kubaj mr 10,3 18573a608692SPiotr Kubaj li 3,-1 18583a608692SPiotr Kubaj cmpldi 5,16 18593a608692SPiotr Kubaj .long 0x4dc00020 18603a608692SPiotr Kubaj 18613a608692SPiotr Kubaj lis 0,0xfff0 18623a608692SPiotr Kubaj li 12,-1 18633a608692SPiotr Kubaj li 11,0 18643a608692SPiotr Kubaj or 0,0,0 18653a608692SPiotr Kubaj 18663a608692SPiotr Kubaj vspltisb 9,0x07 18673a608692SPiotr Kubaj 18683a608692SPiotr Kubaj 18693a608692SPiotr Kubaj 18703a608692SPiotr Kubaj 18713a608692SPiotr Kubaj li 3,15 18723a608692SPiotr Kubaj lvx 8,0,8 18733a608692SPiotr Kubaj lvsl 5,0,8 18743a608692SPiotr Kubaj lvx 4,3,8 18753a608692SPiotr Kubaj 18763a608692SPiotr Kubaj vperm 8,8,4,5 18773a608692SPiotr Kubaj 18783a608692SPiotr Kubaj neg 11,10 18793a608692SPiotr Kubaj lvsr 5,0,11 18803a608692SPiotr Kubaj lvx 2,0,10 18813a608692SPiotr Kubaj addi 10,10,15 18823a608692SPiotr Kubaj 18833a608692SPiotr Kubaj 18843a608692SPiotr Kubaj cmpldi 7,0 18853a608692SPiotr Kubaj beq .Lxts_enc_no_key2 18863a608692SPiotr Kubaj 18873a608692SPiotr Kubaj lvsl 7,0,7 18883a608692SPiotr Kubaj lwz 9,240(7) 18893a608692SPiotr Kubaj srwi 9,9,1 18903a608692SPiotr Kubaj subi 9,9,1 18913a608692SPiotr Kubaj li 3,16 18923a608692SPiotr Kubaj 18933a608692SPiotr Kubaj lvx 0,0,7 18943a608692SPiotr Kubaj lvx 1,3,7 18953a608692SPiotr Kubaj addi 3,3,16 18963a608692SPiotr Kubaj vperm 0,0,1,7 18973a608692SPiotr Kubaj vxor 8,8,0 18983a608692SPiotr Kubaj lvx 0,3,7 18993a608692SPiotr Kubaj addi 3,3,16 19003a608692SPiotr Kubaj mtctr 9 19013a608692SPiotr Kubaj 19023a608692SPiotr Kubaj.Ltweak_xts_enc: 19033a608692SPiotr Kubaj vperm 1,1,0,7 19043a608692SPiotr Kubaj .long 0x11080D08 19053a608692SPiotr Kubaj lvx 1,3,7 19063a608692SPiotr Kubaj addi 3,3,16 19073a608692SPiotr Kubaj vperm 0,0,1,7 19083a608692SPiotr Kubaj .long 0x11080508 19093a608692SPiotr Kubaj lvx 0,3,7 19103a608692SPiotr Kubaj addi 3,3,16 19113a608692SPiotr Kubaj bdnz .Ltweak_xts_enc 19123a608692SPiotr Kubaj 19133a608692SPiotr Kubaj vperm 1,1,0,7 19143a608692SPiotr Kubaj .long 0x11080D08 19153a608692SPiotr Kubaj lvx 1,3,7 19163a608692SPiotr Kubaj vperm 0,0,1,7 19173a608692SPiotr Kubaj .long 0x11080509 19183a608692SPiotr Kubaj 19193a608692SPiotr Kubaj li 8,0 19203a608692SPiotr Kubaj b .Lxts_enc 19213a608692SPiotr Kubaj 19223a608692SPiotr Kubaj.Lxts_enc_no_key2: 19233a608692SPiotr Kubaj li 3,-16 19243a608692SPiotr Kubaj and 5,5,3 19253a608692SPiotr Kubaj 19263a608692SPiotr Kubaj 19273a608692SPiotr Kubaj.Lxts_enc: 19283a608692SPiotr Kubaj lvx 4,0,10 19293a608692SPiotr Kubaj addi 10,10,16 19303a608692SPiotr Kubaj 19313a608692SPiotr Kubaj lvsl 7,0,6 19323a608692SPiotr Kubaj lwz 9,240(6) 19333a608692SPiotr Kubaj srwi 9,9,1 19343a608692SPiotr Kubaj subi 9,9,1 19353a608692SPiotr Kubaj li 3,16 19363a608692SPiotr Kubaj 19373a608692SPiotr Kubaj vslb 10,9,9 19383a608692SPiotr Kubaj vor 10,10,9 19393a608692SPiotr Kubaj vspltisb 11,1 19403a608692SPiotr Kubaj vsldoi 10,10,11,15 19413a608692SPiotr Kubaj 19423a608692SPiotr Kubaj cmpldi 5,96 19433a608692SPiotr Kubaj bge _aesp8_xts_encrypt6x 19443a608692SPiotr Kubaj 19453a608692SPiotr Kubaj andi. 7,5,15 19463a608692SPiotr Kubaj subic 0,5,32 19473a608692SPiotr Kubaj subi 7,7,16 19483a608692SPiotr Kubaj subfe 0,0,0 19493a608692SPiotr Kubaj and 0,0,7 19503a608692SPiotr Kubaj add 10,10,0 19513a608692SPiotr Kubaj 19523a608692SPiotr Kubaj lvx 0,0,6 19533a608692SPiotr Kubaj lvx 1,3,6 19543a608692SPiotr Kubaj addi 3,3,16 19553a608692SPiotr Kubaj vperm 2,2,4,5 19563a608692SPiotr Kubaj vperm 0,0,1,7 19573a608692SPiotr Kubaj vxor 2,2,8 19583a608692SPiotr Kubaj vxor 2,2,0 19593a608692SPiotr Kubaj lvx 0,3,6 19603a608692SPiotr Kubaj addi 3,3,16 19613a608692SPiotr Kubaj mtctr 9 19623a608692SPiotr Kubaj b .Loop_xts_enc 19633a608692SPiotr Kubaj 19643a608692SPiotr Kubaj.align 5 19653a608692SPiotr Kubaj.Loop_xts_enc: 19663a608692SPiotr Kubaj vperm 1,1,0,7 19673a608692SPiotr Kubaj .long 0x10420D08 19683a608692SPiotr Kubaj lvx 1,3,6 19693a608692SPiotr Kubaj addi 3,3,16 19703a608692SPiotr Kubaj vperm 0,0,1,7 19713a608692SPiotr Kubaj .long 0x10420508 19723a608692SPiotr Kubaj lvx 0,3,6 19733a608692SPiotr Kubaj addi 3,3,16 19743a608692SPiotr Kubaj bdnz .Loop_xts_enc 19753a608692SPiotr Kubaj 19763a608692SPiotr Kubaj vperm 1,1,0,7 19773a608692SPiotr Kubaj .long 0x10420D08 19783a608692SPiotr Kubaj lvx 1,3,6 19793a608692SPiotr Kubaj li 3,16 19803a608692SPiotr Kubaj vperm 0,0,1,7 19813a608692SPiotr Kubaj vxor 0,0,8 19823a608692SPiotr Kubaj .long 0x10620509 19833a608692SPiotr Kubaj 19843a608692SPiotr Kubaj 19853a608692SPiotr Kubaj nop 19863a608692SPiotr Kubaj 19873a608692SPiotr Kubaj .long 0x7C602799 19883a608692SPiotr Kubaj addi 4,4,16 19893a608692SPiotr Kubaj 19903a608692SPiotr Kubaj subic. 5,5,16 19913a608692SPiotr Kubaj beq .Lxts_enc_done 19923a608692SPiotr Kubaj 19933a608692SPiotr Kubaj vor 2,4,4 19943a608692SPiotr Kubaj lvx 4,0,10 19953a608692SPiotr Kubaj addi 10,10,16 19963a608692SPiotr Kubaj lvx 0,0,6 19973a608692SPiotr Kubaj lvx 1,3,6 19983a608692SPiotr Kubaj addi 3,3,16 19993a608692SPiotr Kubaj 20003a608692SPiotr Kubaj subic 0,5,32 20013a608692SPiotr Kubaj subfe 0,0,0 20023a608692SPiotr Kubaj and 0,0,7 20033a608692SPiotr Kubaj add 10,10,0 20043a608692SPiotr Kubaj 20053a608692SPiotr Kubaj vsrab 11,8,9 20063a608692SPiotr Kubaj vaddubm 8,8,8 20073a608692SPiotr Kubaj vsldoi 11,11,11,15 20083a608692SPiotr Kubaj vand 11,11,10 20093a608692SPiotr Kubaj vxor 8,8,11 20103a608692SPiotr Kubaj 20113a608692SPiotr Kubaj vperm 2,2,4,5 20123a608692SPiotr Kubaj vperm 0,0,1,7 20133a608692SPiotr Kubaj vxor 2,2,8 20143a608692SPiotr Kubaj vxor 3,3,0 20153a608692SPiotr Kubaj vxor 2,2,0 20163a608692SPiotr Kubaj lvx 0,3,6 20173a608692SPiotr Kubaj addi 3,3,16 20183a608692SPiotr Kubaj 20193a608692SPiotr Kubaj mtctr 9 20203a608692SPiotr Kubaj cmpldi 5,16 20213a608692SPiotr Kubaj bge .Loop_xts_enc 20223a608692SPiotr Kubaj 20233a608692SPiotr Kubaj vxor 3,3,8 20243a608692SPiotr Kubaj lvsr 5,0,5 20253a608692SPiotr Kubaj vxor 4,4,4 20263a608692SPiotr Kubaj vspltisb 11,-1 20273a608692SPiotr Kubaj vperm 4,4,11,5 20283a608692SPiotr Kubaj vsel 2,2,3,4 20293a608692SPiotr Kubaj 20303a608692SPiotr Kubaj subi 11,4,17 20313a608692SPiotr Kubaj subi 4,4,16 20323a608692SPiotr Kubaj mtctr 5 20333a608692SPiotr Kubaj li 5,16 20343a608692SPiotr Kubaj.Loop_xts_enc_steal: 20353a608692SPiotr Kubaj lbzu 0,1(11) 20363a608692SPiotr Kubaj stb 0,16(11) 20373a608692SPiotr Kubaj bdnz .Loop_xts_enc_steal 20383a608692SPiotr Kubaj 20393a608692SPiotr Kubaj mtctr 9 20403a608692SPiotr Kubaj b .Loop_xts_enc 20413a608692SPiotr Kubaj 20423a608692SPiotr Kubaj.Lxts_enc_done: 20433a608692SPiotr Kubaj cmpldi 8,0 20443a608692SPiotr Kubaj beq .Lxts_enc_ret 20453a608692SPiotr Kubaj 20463a608692SPiotr Kubaj vsrab 11,8,9 20473a608692SPiotr Kubaj vaddubm 8,8,8 20483a608692SPiotr Kubaj vsldoi 11,11,11,15 20493a608692SPiotr Kubaj vand 11,11,10 20503a608692SPiotr Kubaj vxor 8,8,11 20513a608692SPiotr Kubaj 20523a608692SPiotr Kubaj 20533a608692SPiotr Kubaj .long 0x7D004799 20543a608692SPiotr Kubaj 20553a608692SPiotr Kubaj.Lxts_enc_ret: 20563a608692SPiotr Kubaj or 12,12,12 20573a608692SPiotr Kubaj li 3,0 20583a608692SPiotr Kubaj blr 20593a608692SPiotr Kubaj.long 0 20603a608692SPiotr Kubaj.byte 0,12,0x04,0,0x80,6,6,0 20613a608692SPiotr Kubaj.long 0 20623a608692SPiotr Kubaj.size aes_p8_xts_encrypt,.-aes_p8_xts_encrypt 20633a608692SPiotr Kubaj 20643a608692SPiotr Kubaj.globl aes_p8_xts_decrypt 20653a608692SPiotr Kubaj.type aes_p8_xts_decrypt,@function 20663a608692SPiotr Kubaj.align 5 20673a608692SPiotr Kubajaes_p8_xts_decrypt: 20683a608692SPiotr Kubaj.localentry aes_p8_xts_decrypt,0 20693a608692SPiotr Kubaj 20703a608692SPiotr Kubaj mr 10,3 20713a608692SPiotr Kubaj li 3,-1 20723a608692SPiotr Kubaj cmpldi 5,16 20733a608692SPiotr Kubaj .long 0x4dc00020 20743a608692SPiotr Kubaj 20753a608692SPiotr Kubaj lis 0,0xfff8 20763a608692SPiotr Kubaj li 12,-1 20773a608692SPiotr Kubaj li 11,0 20783a608692SPiotr Kubaj or 0,0,0 20793a608692SPiotr Kubaj 20803a608692SPiotr Kubaj andi. 0,5,15 20813a608692SPiotr Kubaj neg 0,0 20823a608692SPiotr Kubaj andi. 0,0,16 20833a608692SPiotr Kubaj sub 5,5,0 20843a608692SPiotr Kubaj 20853a608692SPiotr Kubaj vspltisb 9,0x07 20863a608692SPiotr Kubaj 20873a608692SPiotr Kubaj 20883a608692SPiotr Kubaj 20893a608692SPiotr Kubaj 20903a608692SPiotr Kubaj li 3,15 20913a608692SPiotr Kubaj lvx 8,0,8 20923a608692SPiotr Kubaj lvsl 5,0,8 20933a608692SPiotr Kubaj lvx 4,3,8 20943a608692SPiotr Kubaj 20953a608692SPiotr Kubaj vperm 8,8,4,5 20963a608692SPiotr Kubaj 20973a608692SPiotr Kubaj neg 11,10 20983a608692SPiotr Kubaj lvsr 5,0,11 20993a608692SPiotr Kubaj lvx 2,0,10 21003a608692SPiotr Kubaj addi 10,10,15 21013a608692SPiotr Kubaj 21023a608692SPiotr Kubaj 21033a608692SPiotr Kubaj cmpldi 7,0 21043a608692SPiotr Kubaj beq .Lxts_dec_no_key2 21053a608692SPiotr Kubaj 21063a608692SPiotr Kubaj lvsl 7,0,7 21073a608692SPiotr Kubaj lwz 9,240(7) 21083a608692SPiotr Kubaj srwi 9,9,1 21093a608692SPiotr Kubaj subi 9,9,1 21103a608692SPiotr Kubaj li 3,16 21113a608692SPiotr Kubaj 21123a608692SPiotr Kubaj lvx 0,0,7 21133a608692SPiotr Kubaj lvx 1,3,7 21143a608692SPiotr Kubaj addi 3,3,16 21153a608692SPiotr Kubaj vperm 0,0,1,7 21163a608692SPiotr Kubaj vxor 8,8,0 21173a608692SPiotr Kubaj lvx 0,3,7 21183a608692SPiotr Kubaj addi 3,3,16 21193a608692SPiotr Kubaj mtctr 9 21203a608692SPiotr Kubaj 21213a608692SPiotr Kubaj.Ltweak_xts_dec: 21223a608692SPiotr Kubaj vperm 1,1,0,7 21233a608692SPiotr Kubaj .long 0x11080D08 21243a608692SPiotr Kubaj lvx 1,3,7 21253a608692SPiotr Kubaj addi 3,3,16 21263a608692SPiotr Kubaj vperm 0,0,1,7 21273a608692SPiotr Kubaj .long 0x11080508 21283a608692SPiotr Kubaj lvx 0,3,7 21293a608692SPiotr Kubaj addi 3,3,16 21303a608692SPiotr Kubaj bdnz .Ltweak_xts_dec 21313a608692SPiotr Kubaj 21323a608692SPiotr Kubaj vperm 1,1,0,7 21333a608692SPiotr Kubaj .long 0x11080D08 21343a608692SPiotr Kubaj lvx 1,3,7 21353a608692SPiotr Kubaj vperm 0,0,1,7 21363a608692SPiotr Kubaj .long 0x11080509 21373a608692SPiotr Kubaj 21383a608692SPiotr Kubaj li 8,0 21393a608692SPiotr Kubaj b .Lxts_dec 21403a608692SPiotr Kubaj 21413a608692SPiotr Kubaj.Lxts_dec_no_key2: 21423a608692SPiotr Kubaj neg 3,5 21433a608692SPiotr Kubaj andi. 3,3,15 21443a608692SPiotr Kubaj add 5,5,3 21453a608692SPiotr Kubaj 21463a608692SPiotr Kubaj 21473a608692SPiotr Kubaj.Lxts_dec: 21483a608692SPiotr Kubaj lvx 4,0,10 21493a608692SPiotr Kubaj addi 10,10,16 21503a608692SPiotr Kubaj 21513a608692SPiotr Kubaj lvsl 7,0,6 21523a608692SPiotr Kubaj lwz 9,240(6) 21533a608692SPiotr Kubaj srwi 9,9,1 21543a608692SPiotr Kubaj subi 9,9,1 21553a608692SPiotr Kubaj li 3,16 21563a608692SPiotr Kubaj 21573a608692SPiotr Kubaj vslb 10,9,9 21583a608692SPiotr Kubaj vor 10,10,9 21593a608692SPiotr Kubaj vspltisb 11,1 21603a608692SPiotr Kubaj vsldoi 10,10,11,15 21613a608692SPiotr Kubaj 21623a608692SPiotr Kubaj cmpldi 5,96 21633a608692SPiotr Kubaj bge _aesp8_xts_decrypt6x 21643a608692SPiotr Kubaj 21653a608692SPiotr Kubaj lvx 0,0,6 21663a608692SPiotr Kubaj lvx 1,3,6 21673a608692SPiotr Kubaj addi 3,3,16 21683a608692SPiotr Kubaj vperm 2,2,4,5 21693a608692SPiotr Kubaj vperm 0,0,1,7 21703a608692SPiotr Kubaj vxor 2,2,8 21713a608692SPiotr Kubaj vxor 2,2,0 21723a608692SPiotr Kubaj lvx 0,3,6 21733a608692SPiotr Kubaj addi 3,3,16 21743a608692SPiotr Kubaj mtctr 9 21753a608692SPiotr Kubaj 21763a608692SPiotr Kubaj cmpldi 5,16 21773a608692SPiotr Kubaj blt .Ltail_xts_dec 21783a608692SPiotr Kubaj b .Loop_xts_dec 21793a608692SPiotr Kubaj 21803a608692SPiotr Kubaj.align 5 21813a608692SPiotr Kubaj.Loop_xts_dec: 21823a608692SPiotr Kubaj vperm 1,1,0,7 21833a608692SPiotr Kubaj .long 0x10420D48 21843a608692SPiotr Kubaj lvx 1,3,6 21853a608692SPiotr Kubaj addi 3,3,16 21863a608692SPiotr Kubaj vperm 0,0,1,7 21873a608692SPiotr Kubaj .long 0x10420548 21883a608692SPiotr Kubaj lvx 0,3,6 21893a608692SPiotr Kubaj addi 3,3,16 21903a608692SPiotr Kubaj bdnz .Loop_xts_dec 21913a608692SPiotr Kubaj 21923a608692SPiotr Kubaj vperm 1,1,0,7 21933a608692SPiotr Kubaj .long 0x10420D48 21943a608692SPiotr Kubaj lvx 1,3,6 21953a608692SPiotr Kubaj li 3,16 21963a608692SPiotr Kubaj vperm 0,0,1,7 21973a608692SPiotr Kubaj vxor 0,0,8 21983a608692SPiotr Kubaj .long 0x10620549 21993a608692SPiotr Kubaj 22003a608692SPiotr Kubaj 22013a608692SPiotr Kubaj nop 22023a608692SPiotr Kubaj 22033a608692SPiotr Kubaj .long 0x7C602799 22043a608692SPiotr Kubaj addi 4,4,16 22053a608692SPiotr Kubaj 22063a608692SPiotr Kubaj subic. 5,5,16 22073a608692SPiotr Kubaj beq .Lxts_dec_done 22083a608692SPiotr Kubaj 22093a608692SPiotr Kubaj vor 2,4,4 22103a608692SPiotr Kubaj lvx 4,0,10 22113a608692SPiotr Kubaj addi 10,10,16 22123a608692SPiotr Kubaj lvx 0,0,6 22133a608692SPiotr Kubaj lvx 1,3,6 22143a608692SPiotr Kubaj addi 3,3,16 22153a608692SPiotr Kubaj 22163a608692SPiotr Kubaj vsrab 11,8,9 22173a608692SPiotr Kubaj vaddubm 8,8,8 22183a608692SPiotr Kubaj vsldoi 11,11,11,15 22193a608692SPiotr Kubaj vand 11,11,10 22203a608692SPiotr Kubaj vxor 8,8,11 22213a608692SPiotr Kubaj 22223a608692SPiotr Kubaj vperm 2,2,4,5 22233a608692SPiotr Kubaj vperm 0,0,1,7 22243a608692SPiotr Kubaj vxor 2,2,8 22253a608692SPiotr Kubaj vxor 2,2,0 22263a608692SPiotr Kubaj lvx 0,3,6 22273a608692SPiotr Kubaj addi 3,3,16 22283a608692SPiotr Kubaj 22293a608692SPiotr Kubaj mtctr 9 22303a608692SPiotr Kubaj cmpldi 5,16 22313a608692SPiotr Kubaj bge .Loop_xts_dec 22323a608692SPiotr Kubaj 22333a608692SPiotr Kubaj.Ltail_xts_dec: 22343a608692SPiotr Kubaj vsrab 11,8,9 22353a608692SPiotr Kubaj vaddubm 12,8,8 22363a608692SPiotr Kubaj vsldoi 11,11,11,15 22373a608692SPiotr Kubaj vand 11,11,10 22383a608692SPiotr Kubaj vxor 12,12,11 22393a608692SPiotr Kubaj 22403a608692SPiotr Kubaj subi 10,10,16 22413a608692SPiotr Kubaj add 10,10,5 22423a608692SPiotr Kubaj 22433a608692SPiotr Kubaj vxor 2,2,8 22443a608692SPiotr Kubaj vxor 2,2,12 22453a608692SPiotr Kubaj 22463a608692SPiotr Kubaj.Loop_xts_dec_short: 22473a608692SPiotr Kubaj vperm 1,1,0,7 22483a608692SPiotr Kubaj .long 0x10420D48 22493a608692SPiotr Kubaj lvx 1,3,6 22503a608692SPiotr Kubaj addi 3,3,16 22513a608692SPiotr Kubaj vperm 0,0,1,7 22523a608692SPiotr Kubaj .long 0x10420548 22533a608692SPiotr Kubaj lvx 0,3,6 22543a608692SPiotr Kubaj addi 3,3,16 22553a608692SPiotr Kubaj bdnz .Loop_xts_dec_short 22563a608692SPiotr Kubaj 22573a608692SPiotr Kubaj vperm 1,1,0,7 22583a608692SPiotr Kubaj .long 0x10420D48 22593a608692SPiotr Kubaj lvx 1,3,6 22603a608692SPiotr Kubaj li 3,16 22613a608692SPiotr Kubaj vperm 0,0,1,7 22623a608692SPiotr Kubaj vxor 0,0,12 22633a608692SPiotr Kubaj .long 0x10620549 22643a608692SPiotr Kubaj 22653a608692SPiotr Kubaj 22663a608692SPiotr Kubaj nop 22673a608692SPiotr Kubaj 22683a608692SPiotr Kubaj .long 0x7C602799 22693a608692SPiotr Kubaj 22703a608692SPiotr Kubaj vor 2,4,4 22713a608692SPiotr Kubaj lvx 4,0,10 22723a608692SPiotr Kubaj 22733a608692SPiotr Kubaj lvx 0,0,6 22743a608692SPiotr Kubaj lvx 1,3,6 22753a608692SPiotr Kubaj addi 3,3,16 22763a608692SPiotr Kubaj vperm 2,2,4,5 22773a608692SPiotr Kubaj vperm 0,0,1,7 22783a608692SPiotr Kubaj 22793a608692SPiotr Kubaj lvsr 5,0,5 22803a608692SPiotr Kubaj vxor 4,4,4 22813a608692SPiotr Kubaj vspltisb 11,-1 22823a608692SPiotr Kubaj vperm 4,4,11,5 22833a608692SPiotr Kubaj vsel 2,2,3,4 22843a608692SPiotr Kubaj 22853a608692SPiotr Kubaj vxor 0,0,8 22863a608692SPiotr Kubaj vxor 2,2,0 22873a608692SPiotr Kubaj lvx 0,3,6 22883a608692SPiotr Kubaj addi 3,3,16 22893a608692SPiotr Kubaj 22903a608692SPiotr Kubaj subi 11,4,1 22913a608692SPiotr Kubaj mtctr 5 22923a608692SPiotr Kubaj li 5,16 22933a608692SPiotr Kubaj.Loop_xts_dec_steal: 22943a608692SPiotr Kubaj lbzu 0,1(11) 22953a608692SPiotr Kubaj stb 0,16(11) 22963a608692SPiotr Kubaj bdnz .Loop_xts_dec_steal 22973a608692SPiotr Kubaj 22983a608692SPiotr Kubaj mtctr 9 22993a608692SPiotr Kubaj b .Loop_xts_dec 23003a608692SPiotr Kubaj 23013a608692SPiotr Kubaj.Lxts_dec_done: 23023a608692SPiotr Kubaj cmpldi 8,0 23033a608692SPiotr Kubaj beq .Lxts_dec_ret 23043a608692SPiotr Kubaj 23053a608692SPiotr Kubaj vsrab 11,8,9 23063a608692SPiotr Kubaj vaddubm 8,8,8 23073a608692SPiotr Kubaj vsldoi 11,11,11,15 23083a608692SPiotr Kubaj vand 11,11,10 23093a608692SPiotr Kubaj vxor 8,8,11 23103a608692SPiotr Kubaj 23113a608692SPiotr Kubaj 23123a608692SPiotr Kubaj .long 0x7D004799 23133a608692SPiotr Kubaj 23143a608692SPiotr Kubaj.Lxts_dec_ret: 23153a608692SPiotr Kubaj or 12,12,12 23163a608692SPiotr Kubaj li 3,0 23173a608692SPiotr Kubaj blr 23183a608692SPiotr Kubaj.long 0 23193a608692SPiotr Kubaj.byte 0,12,0x04,0,0x80,6,6,0 23203a608692SPiotr Kubaj.long 0 23213a608692SPiotr Kubaj.size aes_p8_xts_decrypt,.-aes_p8_xts_decrypt 23223a608692SPiotr Kubaj.align 5 23233a608692SPiotr Kubaj_aesp8_xts_encrypt6x: 23243a608692SPiotr Kubaj stdu 1,-448(1) 23253a608692SPiotr Kubaj mflr 11 23263a608692SPiotr Kubaj li 7,207 23273a608692SPiotr Kubaj li 3,223 23283a608692SPiotr Kubaj std 11,464(1) 23293a608692SPiotr Kubaj stvx 20,7,1 23303a608692SPiotr Kubaj addi 7,7,32 23313a608692SPiotr Kubaj stvx 21,3,1 23323a608692SPiotr Kubaj addi 3,3,32 23333a608692SPiotr Kubaj stvx 22,7,1 23343a608692SPiotr Kubaj addi 7,7,32 23353a608692SPiotr Kubaj stvx 23,3,1 23363a608692SPiotr Kubaj addi 3,3,32 23373a608692SPiotr Kubaj stvx 24,7,1 23383a608692SPiotr Kubaj addi 7,7,32 23393a608692SPiotr Kubaj stvx 25,3,1 23403a608692SPiotr Kubaj addi 3,3,32 23413a608692SPiotr Kubaj stvx 26,7,1 23423a608692SPiotr Kubaj addi 7,7,32 23433a608692SPiotr Kubaj stvx 27,3,1 23443a608692SPiotr Kubaj addi 3,3,32 23453a608692SPiotr Kubaj stvx 28,7,1 23463a608692SPiotr Kubaj addi 7,7,32 23473a608692SPiotr Kubaj stvx 29,3,1 23483a608692SPiotr Kubaj addi 3,3,32 23493a608692SPiotr Kubaj stvx 30,7,1 23503a608692SPiotr Kubaj stvx 31,3,1 23513a608692SPiotr Kubaj li 0,-1 23523a608692SPiotr Kubaj stw 12,396(1) 23533a608692SPiotr Kubaj li 3,0x10 23543a608692SPiotr Kubaj std 26,400(1) 23553a608692SPiotr Kubaj li 26,0x20 23563a608692SPiotr Kubaj std 27,408(1) 23573a608692SPiotr Kubaj li 27,0x30 23583a608692SPiotr Kubaj std 28,416(1) 23593a608692SPiotr Kubaj li 28,0x40 23603a608692SPiotr Kubaj std 29,424(1) 23613a608692SPiotr Kubaj li 29,0x50 23623a608692SPiotr Kubaj std 30,432(1) 23633a608692SPiotr Kubaj li 30,0x60 23643a608692SPiotr Kubaj std 31,440(1) 23653a608692SPiotr Kubaj li 31,0x70 23663a608692SPiotr Kubaj or 0,0,0 23673a608692SPiotr Kubaj 2368*77864b54SEnji Cooper 2369*77864b54SEnji Cooper xxlor 2, 32+10, 32+10 2370*77864b54SEnji Cooper vsldoi 10,11,10,1 2371*77864b54SEnji Cooper xxlor 1, 32+10, 32+10 2372*77864b54SEnji Cooper 2373*77864b54SEnji Cooper 2374*77864b54SEnji Cooper mr 31, 6 2375*77864b54SEnji Cooper bl .Lconsts 2376*77864b54SEnji Cooper lxvw4x 0, 28, 6 2377*77864b54SEnji Cooper mr 6, 31 2378*77864b54SEnji Cooper li 31,0x70 2379*77864b54SEnji Cooper 23803a608692SPiotr Kubaj subi 9,9,3 23813a608692SPiotr Kubaj 23823a608692SPiotr Kubaj lvx 23,0,6 23833a608692SPiotr Kubaj lvx 30,3,6 23843a608692SPiotr Kubaj addi 6,6,0x20 23853a608692SPiotr Kubaj lvx 31,0,6 23863a608692SPiotr Kubaj vperm 23,23,30,7 23873a608692SPiotr Kubaj addi 7,1,64+15 23883a608692SPiotr Kubaj mtctr 9 23893a608692SPiotr Kubaj 23903a608692SPiotr Kubaj.Load_xts_enc_key: 23913a608692SPiotr Kubaj vperm 24,30,31,7 23923a608692SPiotr Kubaj lvx 30,3,6 23933a608692SPiotr Kubaj addi 6,6,0x20 23943a608692SPiotr Kubaj stvx 24,0,7 23953a608692SPiotr Kubaj vperm 25,31,30,7 23963a608692SPiotr Kubaj lvx 31,0,6 23973a608692SPiotr Kubaj stvx 25,3,7 23983a608692SPiotr Kubaj addi 7,7,0x20 23993a608692SPiotr Kubaj bdnz .Load_xts_enc_key 24003a608692SPiotr Kubaj 24013a608692SPiotr Kubaj lvx 26,3,6 24023a608692SPiotr Kubaj vperm 24,30,31,7 24033a608692SPiotr Kubaj lvx 27,26,6 24043a608692SPiotr Kubaj stvx 24,0,7 24053a608692SPiotr Kubaj vperm 25,31,26,7 24063a608692SPiotr Kubaj lvx 28,27,6 24073a608692SPiotr Kubaj stvx 25,3,7 24083a608692SPiotr Kubaj addi 7,1,64+15 24093a608692SPiotr Kubaj vperm 26,26,27,7 24103a608692SPiotr Kubaj lvx 29,28,6 24113a608692SPiotr Kubaj vperm 27,27,28,7 24123a608692SPiotr Kubaj lvx 30,29,6 24133a608692SPiotr Kubaj vperm 28,28,29,7 24143a608692SPiotr Kubaj lvx 31,30,6 24153a608692SPiotr Kubaj vperm 29,29,30,7 24163a608692SPiotr Kubaj lvx 22,31,6 24173a608692SPiotr Kubaj vperm 30,30,31,7 24183a608692SPiotr Kubaj lvx 24,0,7 24193a608692SPiotr Kubaj vperm 31,31,22,7 24203a608692SPiotr Kubaj lvx 25,3,7 24213a608692SPiotr Kubaj 2422*77864b54SEnji Cooper 2423*77864b54SEnji Cooper 2424*77864b54SEnji Cooper 2425*77864b54SEnji Cooper 2426*77864b54SEnji Cooper 2427*77864b54SEnji Cooper 2428*77864b54SEnji Cooper 2429*77864b54SEnji Cooper 24303a608692SPiotr Kubaj vperm 0,2,4,5 24313a608692SPiotr Kubaj subi 10,10,31 24323a608692SPiotr Kubaj vxor 17,8,23 24333a608692SPiotr Kubaj vsrab 11,8,9 24343a608692SPiotr Kubaj vaddubm 8,8,8 24353a608692SPiotr Kubaj vand 11,11,10 24363a608692SPiotr Kubaj vxor 7,0,17 2437*77864b54SEnji Cooper xxlor 32+1, 0, 0 2438*77864b54SEnji Cooper vpermxor 8, 8, 11, 1 24393a608692SPiotr Kubaj 24403a608692SPiotr Kubaj .long 0x7C235699 24413a608692SPiotr Kubaj vxor 18,8,23 24423a608692SPiotr Kubaj vsrab 11,8,9 24433a608692SPiotr Kubaj vaddubm 8,8,8 24443a608692SPiotr Kubaj 24453a608692SPiotr Kubaj vand 11,11,10 24463a608692SPiotr Kubaj vxor 12,1,18 2447*77864b54SEnji Cooper xxlor 32+2, 0, 0 2448*77864b54SEnji Cooper vpermxor 8, 8, 11, 2 24493a608692SPiotr Kubaj 24503a608692SPiotr Kubaj .long 0x7C5A5699 24513a608692SPiotr Kubaj andi. 31,5,15 24523a608692SPiotr Kubaj vxor 19,8,23 24533a608692SPiotr Kubaj vsrab 11,8,9 24543a608692SPiotr Kubaj vaddubm 8,8,8 24553a608692SPiotr Kubaj 24563a608692SPiotr Kubaj vand 11,11,10 24573a608692SPiotr Kubaj vxor 13,2,19 2458*77864b54SEnji Cooper xxlor 32+3, 0, 0 2459*77864b54SEnji Cooper vpermxor 8, 8, 11, 3 24603a608692SPiotr Kubaj 24613a608692SPiotr Kubaj .long 0x7C7B5699 24623a608692SPiotr Kubaj sub 5,5,31 24633a608692SPiotr Kubaj vxor 20,8,23 24643a608692SPiotr Kubaj vsrab 11,8,9 24653a608692SPiotr Kubaj vaddubm 8,8,8 24663a608692SPiotr Kubaj 24673a608692SPiotr Kubaj vand 11,11,10 24683a608692SPiotr Kubaj vxor 14,3,20 2469*77864b54SEnji Cooper xxlor 32+4, 0, 0 2470*77864b54SEnji Cooper vpermxor 8, 8, 11, 4 24713a608692SPiotr Kubaj 24723a608692SPiotr Kubaj .long 0x7C9C5699 24733a608692SPiotr Kubaj subi 5,5,0x60 24743a608692SPiotr Kubaj vxor 21,8,23 24753a608692SPiotr Kubaj vsrab 11,8,9 24763a608692SPiotr Kubaj vaddubm 8,8,8 24773a608692SPiotr Kubaj 24783a608692SPiotr Kubaj vand 11,11,10 24793a608692SPiotr Kubaj vxor 15,4,21 2480*77864b54SEnji Cooper xxlor 32+5, 0, 0 2481*77864b54SEnji Cooper vpermxor 8, 8, 11, 5 24823a608692SPiotr Kubaj 24833a608692SPiotr Kubaj .long 0x7CBD5699 24843a608692SPiotr Kubaj addi 10,10,0x60 24853a608692SPiotr Kubaj vxor 22,8,23 24863a608692SPiotr Kubaj vsrab 11,8,9 24873a608692SPiotr Kubaj vaddubm 8,8,8 24883a608692SPiotr Kubaj 24893a608692SPiotr Kubaj vand 11,11,10 24903a608692SPiotr Kubaj vxor 16,5,22 2491*77864b54SEnji Cooper xxlor 32+0, 0, 0 2492*77864b54SEnji Cooper vpermxor 8, 8, 11, 0 24933a608692SPiotr Kubaj 24943a608692SPiotr Kubaj vxor 31,31,23 24953a608692SPiotr Kubaj mtctr 9 24963a608692SPiotr Kubaj b .Loop_xts_enc6x 24973a608692SPiotr Kubaj 24983a608692SPiotr Kubaj.align 5 24993a608692SPiotr Kubaj.Loop_xts_enc6x: 25003a608692SPiotr Kubaj .long 0x10E7C508 25013a608692SPiotr Kubaj .long 0x118CC508 25023a608692SPiotr Kubaj .long 0x11ADC508 25033a608692SPiotr Kubaj .long 0x11CEC508 25043a608692SPiotr Kubaj .long 0x11EFC508 25053a608692SPiotr Kubaj .long 0x1210C508 25063a608692SPiotr Kubaj lvx 24,26,7 25073a608692SPiotr Kubaj addi 7,7,0x20 25083a608692SPiotr Kubaj 25093a608692SPiotr Kubaj .long 0x10E7CD08 25103a608692SPiotr Kubaj .long 0x118CCD08 25113a608692SPiotr Kubaj .long 0x11ADCD08 25123a608692SPiotr Kubaj .long 0x11CECD08 25133a608692SPiotr Kubaj .long 0x11EFCD08 25143a608692SPiotr Kubaj .long 0x1210CD08 25153a608692SPiotr Kubaj lvx 25,3,7 25163a608692SPiotr Kubaj bdnz .Loop_xts_enc6x 25173a608692SPiotr Kubaj 2518*77864b54SEnji Cooper xxlor 32+10, 1, 1 2519*77864b54SEnji Cooper 25203a608692SPiotr Kubaj subic 5,5,96 25213a608692SPiotr Kubaj vxor 0,17,31 25223a608692SPiotr Kubaj .long 0x10E7C508 25233a608692SPiotr Kubaj .long 0x118CC508 25243a608692SPiotr Kubaj vsrab 11,8,9 25253a608692SPiotr Kubaj vxor 17,8,23 25263a608692SPiotr Kubaj vaddubm 8,8,8 25273a608692SPiotr Kubaj .long 0x11ADC508 25283a608692SPiotr Kubaj .long 0x11CEC508 25293a608692SPiotr Kubaj .long 0x11EFC508 25303a608692SPiotr Kubaj .long 0x1210C508 25313a608692SPiotr Kubaj 25323a608692SPiotr Kubaj subfe. 0,0,0 25333a608692SPiotr Kubaj vand 11,11,10 25343a608692SPiotr Kubaj .long 0x10E7CD08 25353a608692SPiotr Kubaj .long 0x118CCD08 2536*77864b54SEnji Cooper xxlor 32+1, 0, 0 2537*77864b54SEnji Cooper vpermxor 8, 8, 11, 1 25383a608692SPiotr Kubaj .long 0x11ADCD08 25393a608692SPiotr Kubaj .long 0x11CECD08 25403a608692SPiotr Kubaj vxor 1,18,31 25413a608692SPiotr Kubaj vsrab 11,8,9 25423a608692SPiotr Kubaj vxor 18,8,23 25433a608692SPiotr Kubaj .long 0x11EFCD08 25443a608692SPiotr Kubaj .long 0x1210CD08 25453a608692SPiotr Kubaj 25463a608692SPiotr Kubaj and 0,0,5 25473a608692SPiotr Kubaj vaddubm 8,8,8 25483a608692SPiotr Kubaj .long 0x10E7D508 25493a608692SPiotr Kubaj .long 0x118CD508 25503a608692SPiotr Kubaj vand 11,11,10 25513a608692SPiotr Kubaj .long 0x11ADD508 25523a608692SPiotr Kubaj .long 0x11CED508 2553*77864b54SEnji Cooper xxlor 32+2, 0, 0 2554*77864b54SEnji Cooper vpermxor 8, 8, 11, 2 25553a608692SPiotr Kubaj .long 0x11EFD508 25563a608692SPiotr Kubaj .long 0x1210D508 25573a608692SPiotr Kubaj 25583a608692SPiotr Kubaj add 10,10,0 25593a608692SPiotr Kubaj 25603a608692SPiotr Kubaj 25613a608692SPiotr Kubaj 25623a608692SPiotr Kubaj vxor 2,19,31 25633a608692SPiotr Kubaj vsrab 11,8,9 25643a608692SPiotr Kubaj vxor 19,8,23 25653a608692SPiotr Kubaj vaddubm 8,8,8 25663a608692SPiotr Kubaj .long 0x10E7DD08 25673a608692SPiotr Kubaj .long 0x118CDD08 25683a608692SPiotr Kubaj .long 0x11ADDD08 25693a608692SPiotr Kubaj .long 0x11CEDD08 25703a608692SPiotr Kubaj vand 11,11,10 25713a608692SPiotr Kubaj .long 0x11EFDD08 25723a608692SPiotr Kubaj .long 0x1210DD08 25733a608692SPiotr Kubaj 25743a608692SPiotr Kubaj addi 7,1,64+15 2575*77864b54SEnji Cooper xxlor 32+3, 0, 0 2576*77864b54SEnji Cooper vpermxor 8, 8, 11, 3 25773a608692SPiotr Kubaj .long 0x10E7E508 25783a608692SPiotr Kubaj .long 0x118CE508 25793a608692SPiotr Kubaj vxor 3,20,31 25803a608692SPiotr Kubaj vsrab 11,8,9 25813a608692SPiotr Kubaj vxor 20,8,23 25823a608692SPiotr Kubaj .long 0x11ADE508 25833a608692SPiotr Kubaj .long 0x11CEE508 25843a608692SPiotr Kubaj vaddubm 8,8,8 25853a608692SPiotr Kubaj .long 0x11EFE508 25863a608692SPiotr Kubaj .long 0x1210E508 25873a608692SPiotr Kubaj lvx 24,0,7 25883a608692SPiotr Kubaj vand 11,11,10 25893a608692SPiotr Kubaj 25903a608692SPiotr Kubaj .long 0x10E7ED08 25913a608692SPiotr Kubaj .long 0x118CED08 2592*77864b54SEnji Cooper xxlor 32+4, 0, 0 2593*77864b54SEnji Cooper vpermxor 8, 8, 11, 4 25943a608692SPiotr Kubaj .long 0x11ADED08 25953a608692SPiotr Kubaj .long 0x11CEED08 25963a608692SPiotr Kubaj vxor 4,21,31 25973a608692SPiotr Kubaj vsrab 11,8,9 25983a608692SPiotr Kubaj vxor 21,8,23 25993a608692SPiotr Kubaj .long 0x11EFED08 26003a608692SPiotr Kubaj .long 0x1210ED08 26013a608692SPiotr Kubaj lvx 25,3,7 26023a608692SPiotr Kubaj vaddubm 8,8,8 26033a608692SPiotr Kubaj 26043a608692SPiotr Kubaj .long 0x10E7F508 26053a608692SPiotr Kubaj .long 0x118CF508 26063a608692SPiotr Kubaj vand 11,11,10 26073a608692SPiotr Kubaj .long 0x11ADF508 26083a608692SPiotr Kubaj .long 0x11CEF508 2609*77864b54SEnji Cooper xxlor 32+5, 0, 0 2610*77864b54SEnji Cooper vpermxor 8, 8, 11, 5 26113a608692SPiotr Kubaj .long 0x11EFF508 26123a608692SPiotr Kubaj .long 0x1210F508 26133a608692SPiotr Kubaj vxor 5,22,31 26143a608692SPiotr Kubaj vsrab 11,8,9 26153a608692SPiotr Kubaj vxor 22,8,23 26163a608692SPiotr Kubaj 26173a608692SPiotr Kubaj .long 0x10E70509 26183a608692SPiotr Kubaj .long 0x7C005699 26193a608692SPiotr Kubaj vaddubm 8,8,8 26203a608692SPiotr Kubaj .long 0x118C0D09 26213a608692SPiotr Kubaj .long 0x7C235699 26223a608692SPiotr Kubaj .long 0x11AD1509 26233a608692SPiotr Kubaj 26243a608692SPiotr Kubaj .long 0x7C5A5699 26253a608692SPiotr Kubaj vand 11,11,10 26263a608692SPiotr Kubaj .long 0x11CE1D09 26273a608692SPiotr Kubaj 26283a608692SPiotr Kubaj .long 0x7C7B5699 26293a608692SPiotr Kubaj .long 0x11EF2509 26303a608692SPiotr Kubaj 26313a608692SPiotr Kubaj .long 0x7C9C5699 2632*77864b54SEnji Cooper xxlor 10, 32+0, 32+0 2633*77864b54SEnji Cooper xxlor 32+0, 0, 0 2634*77864b54SEnji Cooper vpermxor 8, 8, 11, 0 2635*77864b54SEnji Cooper xxlor 32+0, 10, 10 26363a608692SPiotr Kubaj .long 0x11702D09 26373a608692SPiotr Kubaj 26383a608692SPiotr Kubaj 26393a608692SPiotr Kubaj .long 0x7CBD5699 26403a608692SPiotr Kubaj addi 10,10,0x60 26413a608692SPiotr Kubaj 26423a608692SPiotr Kubaj 26433a608692SPiotr Kubaj 26443a608692SPiotr Kubaj 26453a608692SPiotr Kubaj 26463a608692SPiotr Kubaj .long 0x7CE02799 26473a608692SPiotr Kubaj vxor 7,0,17 26483a608692SPiotr Kubaj 26493a608692SPiotr Kubaj .long 0x7D832799 26503a608692SPiotr Kubaj vxor 12,1,18 26513a608692SPiotr Kubaj 26523a608692SPiotr Kubaj .long 0x7DBA2799 26533a608692SPiotr Kubaj vxor 13,2,19 26543a608692SPiotr Kubaj 26553a608692SPiotr Kubaj .long 0x7DDB2799 26563a608692SPiotr Kubaj vxor 14,3,20 26573a608692SPiotr Kubaj 26583a608692SPiotr Kubaj .long 0x7DFC2799 26593a608692SPiotr Kubaj vxor 15,4,21 26603a608692SPiotr Kubaj 26613a608692SPiotr Kubaj .long 0x7D7D2799 26623a608692SPiotr Kubaj vxor 16,5,22 26633a608692SPiotr Kubaj addi 4,4,0x60 26643a608692SPiotr Kubaj 26653a608692SPiotr Kubaj mtctr 9 26663a608692SPiotr Kubaj beq .Loop_xts_enc6x 26673a608692SPiotr Kubaj 2668*77864b54SEnji Cooper xxlor 32+10, 2, 2 2669*77864b54SEnji Cooper 26703a608692SPiotr Kubaj addic. 5,5,0x60 26713a608692SPiotr Kubaj beq .Lxts_enc6x_zero 26723a608692SPiotr Kubaj cmpwi 5,0x20 26733a608692SPiotr Kubaj blt .Lxts_enc6x_one 26743a608692SPiotr Kubaj nop 26753a608692SPiotr Kubaj beq .Lxts_enc6x_two 26763a608692SPiotr Kubaj cmpwi 5,0x40 26773a608692SPiotr Kubaj blt .Lxts_enc6x_three 26783a608692SPiotr Kubaj nop 26793a608692SPiotr Kubaj beq .Lxts_enc6x_four 26803a608692SPiotr Kubaj 26813a608692SPiotr Kubaj.Lxts_enc6x_five: 26823a608692SPiotr Kubaj vxor 7,1,17 26833a608692SPiotr Kubaj vxor 12,2,18 26843a608692SPiotr Kubaj vxor 13,3,19 26853a608692SPiotr Kubaj vxor 14,4,20 26863a608692SPiotr Kubaj vxor 15,5,21 26873a608692SPiotr Kubaj 26883a608692SPiotr Kubaj bl _aesp8_xts_enc5x 26893a608692SPiotr Kubaj 26903a608692SPiotr Kubaj 26913a608692SPiotr Kubaj vor 17,22,22 26923a608692SPiotr Kubaj 26933a608692SPiotr Kubaj .long 0x7CE02799 26943a608692SPiotr Kubaj 26953a608692SPiotr Kubaj .long 0x7D832799 26963a608692SPiotr Kubaj 26973a608692SPiotr Kubaj .long 0x7DBA2799 26983a608692SPiotr Kubaj vxor 11,15,22 26993a608692SPiotr Kubaj 27003a608692SPiotr Kubaj .long 0x7DDB2799 27013a608692SPiotr Kubaj .long 0x7DFC2799 27023a608692SPiotr Kubaj addi 4,4,0x50 27033a608692SPiotr Kubaj bne .Lxts_enc6x_steal 27043a608692SPiotr Kubaj b .Lxts_enc6x_done 27053a608692SPiotr Kubaj 27063a608692SPiotr Kubaj.align 4 27073a608692SPiotr Kubaj.Lxts_enc6x_four: 27083a608692SPiotr Kubaj vxor 7,2,17 27093a608692SPiotr Kubaj vxor 12,3,18 27103a608692SPiotr Kubaj vxor 13,4,19 27113a608692SPiotr Kubaj vxor 14,5,20 27123a608692SPiotr Kubaj vxor 15,15,15 27133a608692SPiotr Kubaj 27143a608692SPiotr Kubaj bl _aesp8_xts_enc5x 27153a608692SPiotr Kubaj 27163a608692SPiotr Kubaj 27173a608692SPiotr Kubaj vor 17,21,21 27183a608692SPiotr Kubaj 27193a608692SPiotr Kubaj .long 0x7CE02799 27203a608692SPiotr Kubaj 27213a608692SPiotr Kubaj .long 0x7D832799 27223a608692SPiotr Kubaj vxor 11,14,21 27233a608692SPiotr Kubaj 27243a608692SPiotr Kubaj .long 0x7DBA2799 27253a608692SPiotr Kubaj .long 0x7DDB2799 27263a608692SPiotr Kubaj addi 4,4,0x40 27273a608692SPiotr Kubaj bne .Lxts_enc6x_steal 27283a608692SPiotr Kubaj b .Lxts_enc6x_done 27293a608692SPiotr Kubaj 27303a608692SPiotr Kubaj.align 4 27313a608692SPiotr Kubaj.Lxts_enc6x_three: 27323a608692SPiotr Kubaj vxor 7,3,17 27333a608692SPiotr Kubaj vxor 12,4,18 27343a608692SPiotr Kubaj vxor 13,5,19 27353a608692SPiotr Kubaj vxor 14,14,14 27363a608692SPiotr Kubaj vxor 15,15,15 27373a608692SPiotr Kubaj 27383a608692SPiotr Kubaj bl _aesp8_xts_enc5x 27393a608692SPiotr Kubaj 27403a608692SPiotr Kubaj 27413a608692SPiotr Kubaj vor 17,20,20 27423a608692SPiotr Kubaj 27433a608692SPiotr Kubaj .long 0x7CE02799 27443a608692SPiotr Kubaj vxor 11,13,20 27453a608692SPiotr Kubaj 27463a608692SPiotr Kubaj .long 0x7D832799 27473a608692SPiotr Kubaj .long 0x7DBA2799 27483a608692SPiotr Kubaj addi 4,4,0x30 27493a608692SPiotr Kubaj bne .Lxts_enc6x_steal 27503a608692SPiotr Kubaj b .Lxts_enc6x_done 27513a608692SPiotr Kubaj 27523a608692SPiotr Kubaj.align 4 27533a608692SPiotr Kubaj.Lxts_enc6x_two: 27543a608692SPiotr Kubaj vxor 7,4,17 27553a608692SPiotr Kubaj vxor 12,5,18 27563a608692SPiotr Kubaj vxor 13,13,13 27573a608692SPiotr Kubaj vxor 14,14,14 27583a608692SPiotr Kubaj vxor 15,15,15 27593a608692SPiotr Kubaj 27603a608692SPiotr Kubaj bl _aesp8_xts_enc5x 27613a608692SPiotr Kubaj 27623a608692SPiotr Kubaj 27633a608692SPiotr Kubaj vor 17,19,19 27643a608692SPiotr Kubaj vxor 11,12,19 27653a608692SPiotr Kubaj 27663a608692SPiotr Kubaj .long 0x7CE02799 27673a608692SPiotr Kubaj .long 0x7D832799 27683a608692SPiotr Kubaj addi 4,4,0x20 27693a608692SPiotr Kubaj bne .Lxts_enc6x_steal 27703a608692SPiotr Kubaj b .Lxts_enc6x_done 27713a608692SPiotr Kubaj 27723a608692SPiotr Kubaj.align 4 27733a608692SPiotr Kubaj.Lxts_enc6x_one: 27743a608692SPiotr Kubaj vxor 7,5,17 27753a608692SPiotr Kubaj nop 27763a608692SPiotr Kubaj.Loop_xts_enc1x: 27773a608692SPiotr Kubaj .long 0x10E7C508 27783a608692SPiotr Kubaj lvx 24,26,7 27793a608692SPiotr Kubaj addi 7,7,0x20 27803a608692SPiotr Kubaj 27813a608692SPiotr Kubaj .long 0x10E7CD08 27823a608692SPiotr Kubaj lvx 25,3,7 27833a608692SPiotr Kubaj bdnz .Loop_xts_enc1x 27843a608692SPiotr Kubaj 27853a608692SPiotr Kubaj add 10,10,31 27863a608692SPiotr Kubaj cmpwi 31,0 27873a608692SPiotr Kubaj .long 0x10E7C508 27883a608692SPiotr Kubaj 27893a608692SPiotr Kubaj subi 10,10,16 27903a608692SPiotr Kubaj .long 0x10E7CD08 27913a608692SPiotr Kubaj 27923a608692SPiotr Kubaj lvsr 5,0,31 27933a608692SPiotr Kubaj .long 0x10E7D508 27943a608692SPiotr Kubaj 27953a608692SPiotr Kubaj .long 0x7C005699 27963a608692SPiotr Kubaj .long 0x10E7DD08 27973a608692SPiotr Kubaj 27983a608692SPiotr Kubaj addi 7,1,64+15 27993a608692SPiotr Kubaj .long 0x10E7E508 28003a608692SPiotr Kubaj lvx 24,0,7 28013a608692SPiotr Kubaj 28023a608692SPiotr Kubaj .long 0x10E7ED08 28033a608692SPiotr Kubaj lvx 25,3,7 28043a608692SPiotr Kubaj vxor 17,17,31 28053a608692SPiotr Kubaj 28063a608692SPiotr Kubaj 28073a608692SPiotr Kubaj .long 0x10E7F508 28083a608692SPiotr Kubaj 28093a608692SPiotr Kubaj vperm 0,0,0,5 28103a608692SPiotr Kubaj .long 0x10E78D09 28113a608692SPiotr Kubaj 28123a608692SPiotr Kubaj vor 17,18,18 28133a608692SPiotr Kubaj vxor 11,7,18 28143a608692SPiotr Kubaj 28153a608692SPiotr Kubaj .long 0x7CE02799 28163a608692SPiotr Kubaj addi 4,4,0x10 28173a608692SPiotr Kubaj bne .Lxts_enc6x_steal 28183a608692SPiotr Kubaj b .Lxts_enc6x_done 28193a608692SPiotr Kubaj 28203a608692SPiotr Kubaj.align 4 28213a608692SPiotr Kubaj.Lxts_enc6x_zero: 28223a608692SPiotr Kubaj cmpwi 31,0 28233a608692SPiotr Kubaj beq .Lxts_enc6x_done 28243a608692SPiotr Kubaj 28253a608692SPiotr Kubaj add 10,10,31 28263a608692SPiotr Kubaj subi 10,10,16 28273a608692SPiotr Kubaj .long 0x7C005699 28283a608692SPiotr Kubaj lvsr 5,0,31 28293a608692SPiotr Kubaj 28303a608692SPiotr Kubaj vperm 0,0,0,5 28313a608692SPiotr Kubaj vxor 11,11,17 28323a608692SPiotr Kubaj.Lxts_enc6x_steal: 28333a608692SPiotr Kubaj vxor 0,0,17 28343a608692SPiotr Kubaj vxor 7,7,7 28353a608692SPiotr Kubaj vspltisb 12,-1 28363a608692SPiotr Kubaj vperm 7,7,12,5 28373a608692SPiotr Kubaj vsel 7,0,11,7 28383a608692SPiotr Kubaj 28393a608692SPiotr Kubaj subi 30,4,17 28403a608692SPiotr Kubaj subi 4,4,16 28413a608692SPiotr Kubaj mtctr 31 28423a608692SPiotr Kubaj.Loop_xts_enc6x_steal: 28433a608692SPiotr Kubaj lbzu 0,1(30) 28443a608692SPiotr Kubaj stb 0,16(30) 28453a608692SPiotr Kubaj bdnz .Loop_xts_enc6x_steal 28463a608692SPiotr Kubaj 28473a608692SPiotr Kubaj li 31,0 28483a608692SPiotr Kubaj mtctr 9 28493a608692SPiotr Kubaj b .Loop_xts_enc1x 28503a608692SPiotr Kubaj 28513a608692SPiotr Kubaj.align 4 28523a608692SPiotr Kubaj.Lxts_enc6x_done: 28533a608692SPiotr Kubaj cmpldi 8,0 28543a608692SPiotr Kubaj beq .Lxts_enc6x_ret 28553a608692SPiotr Kubaj 28563a608692SPiotr Kubaj vxor 8,17,23 28573a608692SPiotr Kubaj 28583a608692SPiotr Kubaj .long 0x7D004799 28593a608692SPiotr Kubaj 28603a608692SPiotr Kubaj.Lxts_enc6x_ret: 28613a608692SPiotr Kubaj mtlr 11 28623a608692SPiotr Kubaj li 10,79 28633a608692SPiotr Kubaj li 11,95 28643a608692SPiotr Kubaj stvx 9,10,1 28653a608692SPiotr Kubaj addi 10,10,32 28663a608692SPiotr Kubaj stvx 9,11,1 28673a608692SPiotr Kubaj addi 11,11,32 28683a608692SPiotr Kubaj stvx 9,10,1 28693a608692SPiotr Kubaj addi 10,10,32 28703a608692SPiotr Kubaj stvx 9,11,1 28713a608692SPiotr Kubaj addi 11,11,32 28723a608692SPiotr Kubaj stvx 9,10,1 28733a608692SPiotr Kubaj addi 10,10,32 28743a608692SPiotr Kubaj stvx 9,11,1 28753a608692SPiotr Kubaj addi 11,11,32 28763a608692SPiotr Kubaj stvx 9,10,1 28773a608692SPiotr Kubaj addi 10,10,32 28783a608692SPiotr Kubaj stvx 9,11,1 28793a608692SPiotr Kubaj addi 11,11,32 28803a608692SPiotr Kubaj 28813a608692SPiotr Kubaj or 12,12,12 28823a608692SPiotr Kubaj lvx 20,10,1 28833a608692SPiotr Kubaj addi 10,10,32 28843a608692SPiotr Kubaj lvx 21,11,1 28853a608692SPiotr Kubaj addi 11,11,32 28863a608692SPiotr Kubaj lvx 22,10,1 28873a608692SPiotr Kubaj addi 10,10,32 28883a608692SPiotr Kubaj lvx 23,11,1 28893a608692SPiotr Kubaj addi 11,11,32 28903a608692SPiotr Kubaj lvx 24,10,1 28913a608692SPiotr Kubaj addi 10,10,32 28923a608692SPiotr Kubaj lvx 25,11,1 28933a608692SPiotr Kubaj addi 11,11,32 28943a608692SPiotr Kubaj lvx 26,10,1 28953a608692SPiotr Kubaj addi 10,10,32 28963a608692SPiotr Kubaj lvx 27,11,1 28973a608692SPiotr Kubaj addi 11,11,32 28983a608692SPiotr Kubaj lvx 28,10,1 28993a608692SPiotr Kubaj addi 10,10,32 29003a608692SPiotr Kubaj lvx 29,11,1 29013a608692SPiotr Kubaj addi 11,11,32 29023a608692SPiotr Kubaj lvx 30,10,1 29033a608692SPiotr Kubaj lvx 31,11,1 29043a608692SPiotr Kubaj ld 26,400(1) 29053a608692SPiotr Kubaj ld 27,408(1) 29063a608692SPiotr Kubaj ld 28,416(1) 29073a608692SPiotr Kubaj ld 29,424(1) 29083a608692SPiotr Kubaj ld 30,432(1) 29093a608692SPiotr Kubaj ld 31,440(1) 29103a608692SPiotr Kubaj addi 1,1,448 29113a608692SPiotr Kubaj blr 29123a608692SPiotr Kubaj.long 0 29133a608692SPiotr Kubaj.byte 0,12,0x04,1,0x80,6,6,0 29143a608692SPiotr Kubaj.long 0 29153a608692SPiotr Kubaj 29163a608692SPiotr Kubaj.align 5 29173a608692SPiotr Kubaj_aesp8_xts_enc5x: 29183a608692SPiotr Kubaj .long 0x10E7C508 29193a608692SPiotr Kubaj .long 0x118CC508 29203a608692SPiotr Kubaj .long 0x11ADC508 29213a608692SPiotr Kubaj .long 0x11CEC508 29223a608692SPiotr Kubaj .long 0x11EFC508 29233a608692SPiotr Kubaj lvx 24,26,7 29243a608692SPiotr Kubaj addi 7,7,0x20 29253a608692SPiotr Kubaj 29263a608692SPiotr Kubaj .long 0x10E7CD08 29273a608692SPiotr Kubaj .long 0x118CCD08 29283a608692SPiotr Kubaj .long 0x11ADCD08 29293a608692SPiotr Kubaj .long 0x11CECD08 29303a608692SPiotr Kubaj .long 0x11EFCD08 29313a608692SPiotr Kubaj lvx 25,3,7 29323a608692SPiotr Kubaj bdnz _aesp8_xts_enc5x 29333a608692SPiotr Kubaj 29343a608692SPiotr Kubaj add 10,10,31 29353a608692SPiotr Kubaj cmpwi 31,0 29363a608692SPiotr Kubaj .long 0x10E7C508 29373a608692SPiotr Kubaj .long 0x118CC508 29383a608692SPiotr Kubaj .long 0x11ADC508 29393a608692SPiotr Kubaj .long 0x11CEC508 29403a608692SPiotr Kubaj .long 0x11EFC508 29413a608692SPiotr Kubaj 29423a608692SPiotr Kubaj subi 10,10,16 29433a608692SPiotr Kubaj .long 0x10E7CD08 29443a608692SPiotr Kubaj .long 0x118CCD08 29453a608692SPiotr Kubaj .long 0x11ADCD08 29463a608692SPiotr Kubaj .long 0x11CECD08 29473a608692SPiotr Kubaj .long 0x11EFCD08 29483a608692SPiotr Kubaj vxor 17,17,31 29493a608692SPiotr Kubaj 29503a608692SPiotr Kubaj .long 0x10E7D508 29513a608692SPiotr Kubaj lvsr 5,0,31 29523a608692SPiotr Kubaj .long 0x118CD508 29533a608692SPiotr Kubaj .long 0x11ADD508 29543a608692SPiotr Kubaj .long 0x11CED508 29553a608692SPiotr Kubaj .long 0x11EFD508 29563a608692SPiotr Kubaj vxor 1,18,31 29573a608692SPiotr Kubaj 29583a608692SPiotr Kubaj .long 0x10E7DD08 29593a608692SPiotr Kubaj .long 0x7C005699 29603a608692SPiotr Kubaj .long 0x118CDD08 29613a608692SPiotr Kubaj .long 0x11ADDD08 29623a608692SPiotr Kubaj .long 0x11CEDD08 29633a608692SPiotr Kubaj .long 0x11EFDD08 29643a608692SPiotr Kubaj vxor 2,19,31 29653a608692SPiotr Kubaj 29663a608692SPiotr Kubaj addi 7,1,64+15 29673a608692SPiotr Kubaj .long 0x10E7E508 29683a608692SPiotr Kubaj .long 0x118CE508 29693a608692SPiotr Kubaj .long 0x11ADE508 29703a608692SPiotr Kubaj .long 0x11CEE508 29713a608692SPiotr Kubaj .long 0x11EFE508 29723a608692SPiotr Kubaj lvx 24,0,7 29733a608692SPiotr Kubaj vxor 3,20,31 29743a608692SPiotr Kubaj 29753a608692SPiotr Kubaj .long 0x10E7ED08 29763a608692SPiotr Kubaj 29773a608692SPiotr Kubaj .long 0x118CED08 29783a608692SPiotr Kubaj .long 0x11ADED08 29793a608692SPiotr Kubaj .long 0x11CEED08 29803a608692SPiotr Kubaj .long 0x11EFED08 29813a608692SPiotr Kubaj lvx 25,3,7 29823a608692SPiotr Kubaj vxor 4,21,31 29833a608692SPiotr Kubaj 29843a608692SPiotr Kubaj .long 0x10E7F508 29853a608692SPiotr Kubaj vperm 0,0,0,5 29863a608692SPiotr Kubaj .long 0x118CF508 29873a608692SPiotr Kubaj .long 0x11ADF508 29883a608692SPiotr Kubaj .long 0x11CEF508 29893a608692SPiotr Kubaj .long 0x11EFF508 29903a608692SPiotr Kubaj 29913a608692SPiotr Kubaj .long 0x10E78D09 29923a608692SPiotr Kubaj .long 0x118C0D09 29933a608692SPiotr Kubaj .long 0x11AD1509 29943a608692SPiotr Kubaj .long 0x11CE1D09 29953a608692SPiotr Kubaj .long 0x11EF2509 29963a608692SPiotr Kubaj blr 29973a608692SPiotr Kubaj.long 0 29983a608692SPiotr Kubaj.byte 0,12,0x14,0,0,0,0,0 29993a608692SPiotr Kubaj 30003a608692SPiotr Kubaj.align 5 30013a608692SPiotr Kubaj_aesp8_xts_decrypt6x: 30023a608692SPiotr Kubaj stdu 1,-448(1) 30033a608692SPiotr Kubaj mflr 11 30043a608692SPiotr Kubaj li 7,207 30053a608692SPiotr Kubaj li 3,223 30063a608692SPiotr Kubaj std 11,464(1) 30073a608692SPiotr Kubaj stvx 20,7,1 30083a608692SPiotr Kubaj addi 7,7,32 30093a608692SPiotr Kubaj stvx 21,3,1 30103a608692SPiotr Kubaj addi 3,3,32 30113a608692SPiotr Kubaj stvx 22,7,1 30123a608692SPiotr Kubaj addi 7,7,32 30133a608692SPiotr Kubaj stvx 23,3,1 30143a608692SPiotr Kubaj addi 3,3,32 30153a608692SPiotr Kubaj stvx 24,7,1 30163a608692SPiotr Kubaj addi 7,7,32 30173a608692SPiotr Kubaj stvx 25,3,1 30183a608692SPiotr Kubaj addi 3,3,32 30193a608692SPiotr Kubaj stvx 26,7,1 30203a608692SPiotr Kubaj addi 7,7,32 30213a608692SPiotr Kubaj stvx 27,3,1 30223a608692SPiotr Kubaj addi 3,3,32 30233a608692SPiotr Kubaj stvx 28,7,1 30243a608692SPiotr Kubaj addi 7,7,32 30253a608692SPiotr Kubaj stvx 29,3,1 30263a608692SPiotr Kubaj addi 3,3,32 30273a608692SPiotr Kubaj stvx 30,7,1 30283a608692SPiotr Kubaj stvx 31,3,1 30293a608692SPiotr Kubaj li 0,-1 30303a608692SPiotr Kubaj stw 12,396(1) 30313a608692SPiotr Kubaj li 3,0x10 30323a608692SPiotr Kubaj std 26,400(1) 30333a608692SPiotr Kubaj li 26,0x20 30343a608692SPiotr Kubaj std 27,408(1) 30353a608692SPiotr Kubaj li 27,0x30 30363a608692SPiotr Kubaj std 28,416(1) 30373a608692SPiotr Kubaj li 28,0x40 30383a608692SPiotr Kubaj std 29,424(1) 30393a608692SPiotr Kubaj li 29,0x50 30403a608692SPiotr Kubaj std 30,432(1) 30413a608692SPiotr Kubaj li 30,0x60 30423a608692SPiotr Kubaj std 31,440(1) 30433a608692SPiotr Kubaj li 31,0x70 30443a608692SPiotr Kubaj or 0,0,0 30453a608692SPiotr Kubaj 3046*77864b54SEnji Cooper 3047*77864b54SEnji Cooper xxlor 2, 32+10, 32+10 3048*77864b54SEnji Cooper vsldoi 10,11,10,1 3049*77864b54SEnji Cooper xxlor 1, 32+10, 32+10 3050*77864b54SEnji Cooper 3051*77864b54SEnji Cooper 3052*77864b54SEnji Cooper mr 31, 6 3053*77864b54SEnji Cooper bl .Lconsts 3054*77864b54SEnji Cooper lxvw4x 0, 28, 6 3055*77864b54SEnji Cooper mr 6, 31 3056*77864b54SEnji Cooper li 31,0x70 3057*77864b54SEnji Cooper 30583a608692SPiotr Kubaj subi 9,9,3 30593a608692SPiotr Kubaj 30603a608692SPiotr Kubaj lvx 23,0,6 30613a608692SPiotr Kubaj lvx 30,3,6 30623a608692SPiotr Kubaj addi 6,6,0x20 30633a608692SPiotr Kubaj lvx 31,0,6 30643a608692SPiotr Kubaj vperm 23,23,30,7 30653a608692SPiotr Kubaj addi 7,1,64+15 30663a608692SPiotr Kubaj mtctr 9 30673a608692SPiotr Kubaj 30683a608692SPiotr Kubaj.Load_xts_dec_key: 30693a608692SPiotr Kubaj vperm 24,30,31,7 30703a608692SPiotr Kubaj lvx 30,3,6 30713a608692SPiotr Kubaj addi 6,6,0x20 30723a608692SPiotr Kubaj stvx 24,0,7 30733a608692SPiotr Kubaj vperm 25,31,30,7 30743a608692SPiotr Kubaj lvx 31,0,6 30753a608692SPiotr Kubaj stvx 25,3,7 30763a608692SPiotr Kubaj addi 7,7,0x20 30773a608692SPiotr Kubaj bdnz .Load_xts_dec_key 30783a608692SPiotr Kubaj 30793a608692SPiotr Kubaj lvx 26,3,6 30803a608692SPiotr Kubaj vperm 24,30,31,7 30813a608692SPiotr Kubaj lvx 27,26,6 30823a608692SPiotr Kubaj stvx 24,0,7 30833a608692SPiotr Kubaj vperm 25,31,26,7 30843a608692SPiotr Kubaj lvx 28,27,6 30853a608692SPiotr Kubaj stvx 25,3,7 30863a608692SPiotr Kubaj addi 7,1,64+15 30873a608692SPiotr Kubaj vperm 26,26,27,7 30883a608692SPiotr Kubaj lvx 29,28,6 30893a608692SPiotr Kubaj vperm 27,27,28,7 30903a608692SPiotr Kubaj lvx 30,29,6 30913a608692SPiotr Kubaj vperm 28,28,29,7 30923a608692SPiotr Kubaj lvx 31,30,6 30933a608692SPiotr Kubaj vperm 29,29,30,7 30943a608692SPiotr Kubaj lvx 22,31,6 30953a608692SPiotr Kubaj vperm 30,30,31,7 30963a608692SPiotr Kubaj lvx 24,0,7 30973a608692SPiotr Kubaj vperm 31,31,22,7 30983a608692SPiotr Kubaj lvx 25,3,7 30993a608692SPiotr Kubaj 31003a608692SPiotr Kubaj vperm 0,2,4,5 31013a608692SPiotr Kubaj subi 10,10,31 31023a608692SPiotr Kubaj vxor 17,8,23 31033a608692SPiotr Kubaj vsrab 11,8,9 31043a608692SPiotr Kubaj vaddubm 8,8,8 31053a608692SPiotr Kubaj vand 11,11,10 31063a608692SPiotr Kubaj vxor 7,0,17 3107*77864b54SEnji Cooper xxlor 32+1, 0, 0 3108*77864b54SEnji Cooper vpermxor 8, 8, 11, 1 31093a608692SPiotr Kubaj 31103a608692SPiotr Kubaj .long 0x7C235699 31113a608692SPiotr Kubaj vxor 18,8,23 31123a608692SPiotr Kubaj vsrab 11,8,9 31133a608692SPiotr Kubaj vaddubm 8,8,8 31143a608692SPiotr Kubaj 31153a608692SPiotr Kubaj vand 11,11,10 31163a608692SPiotr Kubaj vxor 12,1,18 3117*77864b54SEnji Cooper xxlor 32+2, 0, 0 3118*77864b54SEnji Cooper vpermxor 8, 8, 11, 2 31193a608692SPiotr Kubaj 31203a608692SPiotr Kubaj .long 0x7C5A5699 31213a608692SPiotr Kubaj andi. 31,5,15 31223a608692SPiotr Kubaj vxor 19,8,23 31233a608692SPiotr Kubaj vsrab 11,8,9 31243a608692SPiotr Kubaj vaddubm 8,8,8 31253a608692SPiotr Kubaj 31263a608692SPiotr Kubaj vand 11,11,10 31273a608692SPiotr Kubaj vxor 13,2,19 3128*77864b54SEnji Cooper xxlor 32+3, 0, 0 3129*77864b54SEnji Cooper vpermxor 8, 8, 11, 3 31303a608692SPiotr Kubaj 31313a608692SPiotr Kubaj .long 0x7C7B5699 31323a608692SPiotr Kubaj sub 5,5,31 31333a608692SPiotr Kubaj vxor 20,8,23 31343a608692SPiotr Kubaj vsrab 11,8,9 31353a608692SPiotr Kubaj vaddubm 8,8,8 31363a608692SPiotr Kubaj 31373a608692SPiotr Kubaj vand 11,11,10 31383a608692SPiotr Kubaj vxor 14,3,20 3139*77864b54SEnji Cooper xxlor 32+4, 0, 0 3140*77864b54SEnji Cooper vpermxor 8, 8, 11, 4 31413a608692SPiotr Kubaj 31423a608692SPiotr Kubaj .long 0x7C9C5699 31433a608692SPiotr Kubaj subi 5,5,0x60 31443a608692SPiotr Kubaj vxor 21,8,23 31453a608692SPiotr Kubaj vsrab 11,8,9 31463a608692SPiotr Kubaj vaddubm 8,8,8 31473a608692SPiotr Kubaj 31483a608692SPiotr Kubaj vand 11,11,10 31493a608692SPiotr Kubaj vxor 15,4,21 3150*77864b54SEnji Cooper xxlor 32+5, 0, 0 3151*77864b54SEnji Cooper vpermxor 8, 8, 11, 5 31523a608692SPiotr Kubaj 31533a608692SPiotr Kubaj .long 0x7CBD5699 31543a608692SPiotr Kubaj addi 10,10,0x60 31553a608692SPiotr Kubaj vxor 22,8,23 31563a608692SPiotr Kubaj vsrab 11,8,9 31573a608692SPiotr Kubaj vaddubm 8,8,8 31583a608692SPiotr Kubaj 31593a608692SPiotr Kubaj vand 11,11,10 31603a608692SPiotr Kubaj vxor 16,5,22 3161*77864b54SEnji Cooper xxlor 32+0, 0, 0 3162*77864b54SEnji Cooper vpermxor 8, 8, 11, 0 31633a608692SPiotr Kubaj 31643a608692SPiotr Kubaj vxor 31,31,23 31653a608692SPiotr Kubaj mtctr 9 31663a608692SPiotr Kubaj b .Loop_xts_dec6x 31673a608692SPiotr Kubaj 31683a608692SPiotr Kubaj.align 5 31693a608692SPiotr Kubaj.Loop_xts_dec6x: 31703a608692SPiotr Kubaj .long 0x10E7C548 31713a608692SPiotr Kubaj .long 0x118CC548 31723a608692SPiotr Kubaj .long 0x11ADC548 31733a608692SPiotr Kubaj .long 0x11CEC548 31743a608692SPiotr Kubaj .long 0x11EFC548 31753a608692SPiotr Kubaj .long 0x1210C548 31763a608692SPiotr Kubaj lvx 24,26,7 31773a608692SPiotr Kubaj addi 7,7,0x20 31783a608692SPiotr Kubaj 31793a608692SPiotr Kubaj .long 0x10E7CD48 31803a608692SPiotr Kubaj .long 0x118CCD48 31813a608692SPiotr Kubaj .long 0x11ADCD48 31823a608692SPiotr Kubaj .long 0x11CECD48 31833a608692SPiotr Kubaj .long 0x11EFCD48 31843a608692SPiotr Kubaj .long 0x1210CD48 31853a608692SPiotr Kubaj lvx 25,3,7 31863a608692SPiotr Kubaj bdnz .Loop_xts_dec6x 31873a608692SPiotr Kubaj 3188*77864b54SEnji Cooper xxlor 32+10, 1, 1 3189*77864b54SEnji Cooper 31903a608692SPiotr Kubaj subic 5,5,96 31913a608692SPiotr Kubaj vxor 0,17,31 31923a608692SPiotr Kubaj .long 0x10E7C548 31933a608692SPiotr Kubaj .long 0x118CC548 31943a608692SPiotr Kubaj vsrab 11,8,9 31953a608692SPiotr Kubaj vxor 17,8,23 31963a608692SPiotr Kubaj vaddubm 8,8,8 31973a608692SPiotr Kubaj .long 0x11ADC548 31983a608692SPiotr Kubaj .long 0x11CEC548 31993a608692SPiotr Kubaj .long 0x11EFC548 32003a608692SPiotr Kubaj .long 0x1210C548 32013a608692SPiotr Kubaj 32023a608692SPiotr Kubaj subfe. 0,0,0 32033a608692SPiotr Kubaj vand 11,11,10 32043a608692SPiotr Kubaj .long 0x10E7CD48 32053a608692SPiotr Kubaj .long 0x118CCD48 3206*77864b54SEnji Cooper xxlor 32+1, 0, 0 3207*77864b54SEnji Cooper vpermxor 8, 8, 11, 1 32083a608692SPiotr Kubaj .long 0x11ADCD48 32093a608692SPiotr Kubaj .long 0x11CECD48 32103a608692SPiotr Kubaj vxor 1,18,31 32113a608692SPiotr Kubaj vsrab 11,8,9 32123a608692SPiotr Kubaj vxor 18,8,23 32133a608692SPiotr Kubaj .long 0x11EFCD48 32143a608692SPiotr Kubaj .long 0x1210CD48 32153a608692SPiotr Kubaj 32163a608692SPiotr Kubaj and 0,0,5 32173a608692SPiotr Kubaj vaddubm 8,8,8 32183a608692SPiotr Kubaj .long 0x10E7D548 32193a608692SPiotr Kubaj .long 0x118CD548 32203a608692SPiotr Kubaj vand 11,11,10 32213a608692SPiotr Kubaj .long 0x11ADD548 32223a608692SPiotr Kubaj .long 0x11CED548 3223*77864b54SEnji Cooper xxlor 32+2, 0, 0 3224*77864b54SEnji Cooper vpermxor 8, 8, 11, 2 32253a608692SPiotr Kubaj .long 0x11EFD548 32263a608692SPiotr Kubaj .long 0x1210D548 32273a608692SPiotr Kubaj 32283a608692SPiotr Kubaj add 10,10,0 32293a608692SPiotr Kubaj 32303a608692SPiotr Kubaj 32313a608692SPiotr Kubaj 32323a608692SPiotr Kubaj vxor 2,19,31 32333a608692SPiotr Kubaj vsrab 11,8,9 32343a608692SPiotr Kubaj vxor 19,8,23 32353a608692SPiotr Kubaj vaddubm 8,8,8 32363a608692SPiotr Kubaj .long 0x10E7DD48 32373a608692SPiotr Kubaj .long 0x118CDD48 32383a608692SPiotr Kubaj .long 0x11ADDD48 32393a608692SPiotr Kubaj .long 0x11CEDD48 32403a608692SPiotr Kubaj vand 11,11,10 32413a608692SPiotr Kubaj .long 0x11EFDD48 32423a608692SPiotr Kubaj .long 0x1210DD48 32433a608692SPiotr Kubaj 32443a608692SPiotr Kubaj addi 7,1,64+15 3245*77864b54SEnji Cooper xxlor 32+3, 0, 0 3246*77864b54SEnji Cooper vpermxor 8, 8, 11, 3 32473a608692SPiotr Kubaj .long 0x10E7E548 32483a608692SPiotr Kubaj .long 0x118CE548 32493a608692SPiotr Kubaj vxor 3,20,31 32503a608692SPiotr Kubaj vsrab 11,8,9 32513a608692SPiotr Kubaj vxor 20,8,23 32523a608692SPiotr Kubaj .long 0x11ADE548 32533a608692SPiotr Kubaj .long 0x11CEE548 32543a608692SPiotr Kubaj vaddubm 8,8,8 32553a608692SPiotr Kubaj .long 0x11EFE548 32563a608692SPiotr Kubaj .long 0x1210E548 32573a608692SPiotr Kubaj lvx 24,0,7 32583a608692SPiotr Kubaj vand 11,11,10 32593a608692SPiotr Kubaj 32603a608692SPiotr Kubaj .long 0x10E7ED48 32613a608692SPiotr Kubaj .long 0x118CED48 3262*77864b54SEnji Cooper xxlor 32+4, 0, 0 3263*77864b54SEnji Cooper vpermxor 8, 8, 11, 4 32643a608692SPiotr Kubaj .long 0x11ADED48 32653a608692SPiotr Kubaj .long 0x11CEED48 32663a608692SPiotr Kubaj vxor 4,21,31 32673a608692SPiotr Kubaj vsrab 11,8,9 32683a608692SPiotr Kubaj vxor 21,8,23 32693a608692SPiotr Kubaj .long 0x11EFED48 32703a608692SPiotr Kubaj .long 0x1210ED48 32713a608692SPiotr Kubaj lvx 25,3,7 32723a608692SPiotr Kubaj vaddubm 8,8,8 32733a608692SPiotr Kubaj 32743a608692SPiotr Kubaj .long 0x10E7F548 32753a608692SPiotr Kubaj .long 0x118CF548 32763a608692SPiotr Kubaj vand 11,11,10 32773a608692SPiotr Kubaj .long 0x11ADF548 32783a608692SPiotr Kubaj .long 0x11CEF548 3279*77864b54SEnji Cooper xxlor 32+5, 0, 0 3280*77864b54SEnji Cooper vpermxor 8, 8, 11, 5 32813a608692SPiotr Kubaj .long 0x11EFF548 32823a608692SPiotr Kubaj .long 0x1210F548 32833a608692SPiotr Kubaj vxor 5,22,31 32843a608692SPiotr Kubaj vsrab 11,8,9 32853a608692SPiotr Kubaj vxor 22,8,23 32863a608692SPiotr Kubaj 32873a608692SPiotr Kubaj .long 0x10E70549 32883a608692SPiotr Kubaj .long 0x7C005699 32893a608692SPiotr Kubaj vaddubm 8,8,8 32903a608692SPiotr Kubaj .long 0x118C0D49 32913a608692SPiotr Kubaj .long 0x7C235699 32923a608692SPiotr Kubaj .long 0x11AD1549 32933a608692SPiotr Kubaj 32943a608692SPiotr Kubaj .long 0x7C5A5699 32953a608692SPiotr Kubaj vand 11,11,10 32963a608692SPiotr Kubaj .long 0x11CE1D49 32973a608692SPiotr Kubaj 32983a608692SPiotr Kubaj .long 0x7C7B5699 32993a608692SPiotr Kubaj .long 0x11EF2549 33003a608692SPiotr Kubaj 33013a608692SPiotr Kubaj .long 0x7C9C5699 3302*77864b54SEnji Cooper xxlor 10, 32+0, 32+0 3303*77864b54SEnji Cooper xxlor 32+0, 0, 0 3304*77864b54SEnji Cooper vpermxor 8, 8, 11, 0 3305*77864b54SEnji Cooper xxlor 32+0, 10, 10 33063a608692SPiotr Kubaj .long 0x12102D49 33073a608692SPiotr Kubaj 33083a608692SPiotr Kubaj .long 0x7CBD5699 33093a608692SPiotr Kubaj addi 10,10,0x60 33103a608692SPiotr Kubaj 33113a608692SPiotr Kubaj 33123a608692SPiotr Kubaj 33133a608692SPiotr Kubaj 33143a608692SPiotr Kubaj 33153a608692SPiotr Kubaj .long 0x7CE02799 33163a608692SPiotr Kubaj vxor 7,0,17 33173a608692SPiotr Kubaj 33183a608692SPiotr Kubaj .long 0x7D832799 33193a608692SPiotr Kubaj vxor 12,1,18 33203a608692SPiotr Kubaj 33213a608692SPiotr Kubaj .long 0x7DBA2799 33223a608692SPiotr Kubaj vxor 13,2,19 33233a608692SPiotr Kubaj 33243a608692SPiotr Kubaj .long 0x7DDB2799 33253a608692SPiotr Kubaj vxor 14,3,20 33263a608692SPiotr Kubaj 33273a608692SPiotr Kubaj .long 0x7DFC2799 33283a608692SPiotr Kubaj vxor 15,4,21 33293a608692SPiotr Kubaj .long 0x7E1D2799 33303a608692SPiotr Kubaj vxor 16,5,22 33313a608692SPiotr Kubaj addi 4,4,0x60 33323a608692SPiotr Kubaj 33333a608692SPiotr Kubaj mtctr 9 33343a608692SPiotr Kubaj beq .Loop_xts_dec6x 33353a608692SPiotr Kubaj 3336*77864b54SEnji Cooper xxlor 32+10, 2, 2 3337*77864b54SEnji Cooper 33383a608692SPiotr Kubaj addic. 5,5,0x60 33393a608692SPiotr Kubaj beq .Lxts_dec6x_zero 33403a608692SPiotr Kubaj cmpwi 5,0x20 33413a608692SPiotr Kubaj blt .Lxts_dec6x_one 33423a608692SPiotr Kubaj nop 33433a608692SPiotr Kubaj beq .Lxts_dec6x_two 33443a608692SPiotr Kubaj cmpwi 5,0x40 33453a608692SPiotr Kubaj blt .Lxts_dec6x_three 33463a608692SPiotr Kubaj nop 33473a608692SPiotr Kubaj beq .Lxts_dec6x_four 33483a608692SPiotr Kubaj 33493a608692SPiotr Kubaj.Lxts_dec6x_five: 33503a608692SPiotr Kubaj vxor 7,1,17 33513a608692SPiotr Kubaj vxor 12,2,18 33523a608692SPiotr Kubaj vxor 13,3,19 33533a608692SPiotr Kubaj vxor 14,4,20 33543a608692SPiotr Kubaj vxor 15,5,21 33553a608692SPiotr Kubaj 33563a608692SPiotr Kubaj bl _aesp8_xts_dec5x 33573a608692SPiotr Kubaj 33583a608692SPiotr Kubaj 33593a608692SPiotr Kubaj vor 17,22,22 33603a608692SPiotr Kubaj vxor 18,8,23 33613a608692SPiotr Kubaj 33623a608692SPiotr Kubaj .long 0x7CE02799 33633a608692SPiotr Kubaj vxor 7,0,18 33643a608692SPiotr Kubaj 33653a608692SPiotr Kubaj .long 0x7D832799 33663a608692SPiotr Kubaj 33673a608692SPiotr Kubaj .long 0x7DBA2799 33683a608692SPiotr Kubaj 33693a608692SPiotr Kubaj .long 0x7DDB2799 33703a608692SPiotr Kubaj .long 0x7DFC2799 33713a608692SPiotr Kubaj addi 4,4,0x50 33723a608692SPiotr Kubaj bne .Lxts_dec6x_steal 33733a608692SPiotr Kubaj b .Lxts_dec6x_done 33743a608692SPiotr Kubaj 33753a608692SPiotr Kubaj.align 4 33763a608692SPiotr Kubaj.Lxts_dec6x_four: 33773a608692SPiotr Kubaj vxor 7,2,17 33783a608692SPiotr Kubaj vxor 12,3,18 33793a608692SPiotr Kubaj vxor 13,4,19 33803a608692SPiotr Kubaj vxor 14,5,20 33813a608692SPiotr Kubaj vxor 15,15,15 33823a608692SPiotr Kubaj 33833a608692SPiotr Kubaj bl _aesp8_xts_dec5x 33843a608692SPiotr Kubaj 33853a608692SPiotr Kubaj 33863a608692SPiotr Kubaj vor 17,21,21 33873a608692SPiotr Kubaj vor 18,22,22 33883a608692SPiotr Kubaj 33893a608692SPiotr Kubaj .long 0x7CE02799 33903a608692SPiotr Kubaj vxor 7,0,22 33913a608692SPiotr Kubaj 33923a608692SPiotr Kubaj .long 0x7D832799 33933a608692SPiotr Kubaj 33943a608692SPiotr Kubaj .long 0x7DBA2799 33953a608692SPiotr Kubaj .long 0x7DDB2799 33963a608692SPiotr Kubaj addi 4,4,0x40 33973a608692SPiotr Kubaj bne .Lxts_dec6x_steal 33983a608692SPiotr Kubaj b .Lxts_dec6x_done 33993a608692SPiotr Kubaj 34003a608692SPiotr Kubaj.align 4 34013a608692SPiotr Kubaj.Lxts_dec6x_three: 34023a608692SPiotr Kubaj vxor 7,3,17 34033a608692SPiotr Kubaj vxor 12,4,18 34043a608692SPiotr Kubaj vxor 13,5,19 34053a608692SPiotr Kubaj vxor 14,14,14 34063a608692SPiotr Kubaj vxor 15,15,15 34073a608692SPiotr Kubaj 34083a608692SPiotr Kubaj bl _aesp8_xts_dec5x 34093a608692SPiotr Kubaj 34103a608692SPiotr Kubaj 34113a608692SPiotr Kubaj vor 17,20,20 34123a608692SPiotr Kubaj vor 18,21,21 34133a608692SPiotr Kubaj 34143a608692SPiotr Kubaj .long 0x7CE02799 34153a608692SPiotr Kubaj vxor 7,0,21 34163a608692SPiotr Kubaj 34173a608692SPiotr Kubaj .long 0x7D832799 34183a608692SPiotr Kubaj .long 0x7DBA2799 34193a608692SPiotr Kubaj addi 4,4,0x30 34203a608692SPiotr Kubaj bne .Lxts_dec6x_steal 34213a608692SPiotr Kubaj b .Lxts_dec6x_done 34223a608692SPiotr Kubaj 34233a608692SPiotr Kubaj.align 4 34243a608692SPiotr Kubaj.Lxts_dec6x_two: 34253a608692SPiotr Kubaj vxor 7,4,17 34263a608692SPiotr Kubaj vxor 12,5,18 34273a608692SPiotr Kubaj vxor 13,13,13 34283a608692SPiotr Kubaj vxor 14,14,14 34293a608692SPiotr Kubaj vxor 15,15,15 34303a608692SPiotr Kubaj 34313a608692SPiotr Kubaj bl _aesp8_xts_dec5x 34323a608692SPiotr Kubaj 34333a608692SPiotr Kubaj 34343a608692SPiotr Kubaj vor 17,19,19 34353a608692SPiotr Kubaj vor 18,20,20 34363a608692SPiotr Kubaj 34373a608692SPiotr Kubaj .long 0x7CE02799 34383a608692SPiotr Kubaj vxor 7,0,20 34393a608692SPiotr Kubaj .long 0x7D832799 34403a608692SPiotr Kubaj addi 4,4,0x20 34413a608692SPiotr Kubaj bne .Lxts_dec6x_steal 34423a608692SPiotr Kubaj b .Lxts_dec6x_done 34433a608692SPiotr Kubaj 34443a608692SPiotr Kubaj.align 4 34453a608692SPiotr Kubaj.Lxts_dec6x_one: 34463a608692SPiotr Kubaj vxor 7,5,17 34473a608692SPiotr Kubaj nop 34483a608692SPiotr Kubaj.Loop_xts_dec1x: 34493a608692SPiotr Kubaj .long 0x10E7C548 34503a608692SPiotr Kubaj lvx 24,26,7 34513a608692SPiotr Kubaj addi 7,7,0x20 34523a608692SPiotr Kubaj 34533a608692SPiotr Kubaj .long 0x10E7CD48 34543a608692SPiotr Kubaj lvx 25,3,7 34553a608692SPiotr Kubaj bdnz .Loop_xts_dec1x 34563a608692SPiotr Kubaj 34573a608692SPiotr Kubaj subi 0,31,1 34583a608692SPiotr Kubaj .long 0x10E7C548 34593a608692SPiotr Kubaj 34603a608692SPiotr Kubaj andi. 0,0,16 34613a608692SPiotr Kubaj cmpwi 31,0 34623a608692SPiotr Kubaj .long 0x10E7CD48 34633a608692SPiotr Kubaj 34643a608692SPiotr Kubaj sub 10,10,0 34653a608692SPiotr Kubaj .long 0x10E7D548 34663a608692SPiotr Kubaj 34673a608692SPiotr Kubaj .long 0x7C005699 34683a608692SPiotr Kubaj .long 0x10E7DD48 34693a608692SPiotr Kubaj 34703a608692SPiotr Kubaj addi 7,1,64+15 34713a608692SPiotr Kubaj .long 0x10E7E548 34723a608692SPiotr Kubaj lvx 24,0,7 34733a608692SPiotr Kubaj 34743a608692SPiotr Kubaj .long 0x10E7ED48 34753a608692SPiotr Kubaj lvx 25,3,7 34763a608692SPiotr Kubaj vxor 17,17,31 34773a608692SPiotr Kubaj 34783a608692SPiotr Kubaj 34793a608692SPiotr Kubaj .long 0x10E7F548 34803a608692SPiotr Kubaj 34813a608692SPiotr Kubaj mtctr 9 34823a608692SPiotr Kubaj .long 0x10E78D49 34833a608692SPiotr Kubaj 34843a608692SPiotr Kubaj vor 17,18,18 34853a608692SPiotr Kubaj vor 18,19,19 34863a608692SPiotr Kubaj 34873a608692SPiotr Kubaj .long 0x7CE02799 34883a608692SPiotr Kubaj addi 4,4,0x10 34893a608692SPiotr Kubaj vxor 7,0,19 34903a608692SPiotr Kubaj bne .Lxts_dec6x_steal 34913a608692SPiotr Kubaj b .Lxts_dec6x_done 34923a608692SPiotr Kubaj 34933a608692SPiotr Kubaj.align 4 34943a608692SPiotr Kubaj.Lxts_dec6x_zero: 34953a608692SPiotr Kubaj cmpwi 31,0 34963a608692SPiotr Kubaj beq .Lxts_dec6x_done 34973a608692SPiotr Kubaj 34983a608692SPiotr Kubaj .long 0x7C005699 34993a608692SPiotr Kubaj 35003a608692SPiotr Kubaj vxor 7,0,18 35013a608692SPiotr Kubaj.Lxts_dec6x_steal: 35023a608692SPiotr Kubaj .long 0x10E7C548 35033a608692SPiotr Kubaj lvx 24,26,7 35043a608692SPiotr Kubaj addi 7,7,0x20 35053a608692SPiotr Kubaj 35063a608692SPiotr Kubaj .long 0x10E7CD48 35073a608692SPiotr Kubaj lvx 25,3,7 35083a608692SPiotr Kubaj bdnz .Lxts_dec6x_steal 35093a608692SPiotr Kubaj 35103a608692SPiotr Kubaj add 10,10,31 35113a608692SPiotr Kubaj .long 0x10E7C548 35123a608692SPiotr Kubaj 35133a608692SPiotr Kubaj cmpwi 31,0 35143a608692SPiotr Kubaj .long 0x10E7CD48 35153a608692SPiotr Kubaj 35163a608692SPiotr Kubaj .long 0x7C005699 35173a608692SPiotr Kubaj .long 0x10E7D548 35183a608692SPiotr Kubaj 35193a608692SPiotr Kubaj lvsr 5,0,31 35203a608692SPiotr Kubaj .long 0x10E7DD48 35213a608692SPiotr Kubaj 35223a608692SPiotr Kubaj addi 7,1,64+15 35233a608692SPiotr Kubaj .long 0x10E7E548 35243a608692SPiotr Kubaj lvx 24,0,7 35253a608692SPiotr Kubaj 35263a608692SPiotr Kubaj .long 0x10E7ED48 35273a608692SPiotr Kubaj lvx 25,3,7 35283a608692SPiotr Kubaj vxor 18,18,31 35293a608692SPiotr Kubaj 35303a608692SPiotr Kubaj 35313a608692SPiotr Kubaj .long 0x10E7F548 35323a608692SPiotr Kubaj 35333a608692SPiotr Kubaj vperm 0,0,0,5 35343a608692SPiotr Kubaj .long 0x11679549 35353a608692SPiotr Kubaj 35363a608692SPiotr Kubaj 35373a608692SPiotr Kubaj 35383a608692SPiotr Kubaj .long 0x7D602799 35393a608692SPiotr Kubaj 35403a608692SPiotr Kubaj vxor 7,7,7 35413a608692SPiotr Kubaj vspltisb 12,-1 35423a608692SPiotr Kubaj vperm 7,7,12,5 35433a608692SPiotr Kubaj vsel 7,0,11,7 35443a608692SPiotr Kubaj vxor 7,7,17 35453a608692SPiotr Kubaj 35463a608692SPiotr Kubaj subi 30,4,1 35473a608692SPiotr Kubaj mtctr 31 35483a608692SPiotr Kubaj.Loop_xts_dec6x_steal: 35493a608692SPiotr Kubaj lbzu 0,1(30) 35503a608692SPiotr Kubaj stb 0,16(30) 35513a608692SPiotr Kubaj bdnz .Loop_xts_dec6x_steal 35523a608692SPiotr Kubaj 35533a608692SPiotr Kubaj li 31,0 35543a608692SPiotr Kubaj mtctr 9 35553a608692SPiotr Kubaj b .Loop_xts_dec1x 35563a608692SPiotr Kubaj 35573a608692SPiotr Kubaj.align 4 35583a608692SPiotr Kubaj.Lxts_dec6x_done: 35593a608692SPiotr Kubaj cmpldi 8,0 35603a608692SPiotr Kubaj beq .Lxts_dec6x_ret 35613a608692SPiotr Kubaj 35623a608692SPiotr Kubaj vxor 8,17,23 35633a608692SPiotr Kubaj 35643a608692SPiotr Kubaj .long 0x7D004799 35653a608692SPiotr Kubaj 35663a608692SPiotr Kubaj.Lxts_dec6x_ret: 35673a608692SPiotr Kubaj mtlr 11 35683a608692SPiotr Kubaj li 10,79 35693a608692SPiotr Kubaj li 11,95 35703a608692SPiotr Kubaj stvx 9,10,1 35713a608692SPiotr Kubaj addi 10,10,32 35723a608692SPiotr Kubaj stvx 9,11,1 35733a608692SPiotr Kubaj addi 11,11,32 35743a608692SPiotr Kubaj stvx 9,10,1 35753a608692SPiotr Kubaj addi 10,10,32 35763a608692SPiotr Kubaj stvx 9,11,1 35773a608692SPiotr Kubaj addi 11,11,32 35783a608692SPiotr Kubaj stvx 9,10,1 35793a608692SPiotr Kubaj addi 10,10,32 35803a608692SPiotr Kubaj stvx 9,11,1 35813a608692SPiotr Kubaj addi 11,11,32 35823a608692SPiotr Kubaj stvx 9,10,1 35833a608692SPiotr Kubaj addi 10,10,32 35843a608692SPiotr Kubaj stvx 9,11,1 35853a608692SPiotr Kubaj addi 11,11,32 35863a608692SPiotr Kubaj 35873a608692SPiotr Kubaj or 12,12,12 35883a608692SPiotr Kubaj lvx 20,10,1 35893a608692SPiotr Kubaj addi 10,10,32 35903a608692SPiotr Kubaj lvx 21,11,1 35913a608692SPiotr Kubaj addi 11,11,32 35923a608692SPiotr Kubaj lvx 22,10,1 35933a608692SPiotr Kubaj addi 10,10,32 35943a608692SPiotr Kubaj lvx 23,11,1 35953a608692SPiotr Kubaj addi 11,11,32 35963a608692SPiotr Kubaj lvx 24,10,1 35973a608692SPiotr Kubaj addi 10,10,32 35983a608692SPiotr Kubaj lvx 25,11,1 35993a608692SPiotr Kubaj addi 11,11,32 36003a608692SPiotr Kubaj lvx 26,10,1 36013a608692SPiotr Kubaj addi 10,10,32 36023a608692SPiotr Kubaj lvx 27,11,1 36033a608692SPiotr Kubaj addi 11,11,32 36043a608692SPiotr Kubaj lvx 28,10,1 36053a608692SPiotr Kubaj addi 10,10,32 36063a608692SPiotr Kubaj lvx 29,11,1 36073a608692SPiotr Kubaj addi 11,11,32 36083a608692SPiotr Kubaj lvx 30,10,1 36093a608692SPiotr Kubaj lvx 31,11,1 36103a608692SPiotr Kubaj ld 26,400(1) 36113a608692SPiotr Kubaj ld 27,408(1) 36123a608692SPiotr Kubaj ld 28,416(1) 36133a608692SPiotr Kubaj ld 29,424(1) 36143a608692SPiotr Kubaj ld 30,432(1) 36153a608692SPiotr Kubaj ld 31,440(1) 36163a608692SPiotr Kubaj addi 1,1,448 36173a608692SPiotr Kubaj blr 36183a608692SPiotr Kubaj.long 0 36193a608692SPiotr Kubaj.byte 0,12,0x04,1,0x80,6,6,0 36203a608692SPiotr Kubaj.long 0 36213a608692SPiotr Kubaj 36223a608692SPiotr Kubaj.align 5 36233a608692SPiotr Kubaj_aesp8_xts_dec5x: 36243a608692SPiotr Kubaj .long 0x10E7C548 36253a608692SPiotr Kubaj .long 0x118CC548 36263a608692SPiotr Kubaj .long 0x11ADC548 36273a608692SPiotr Kubaj .long 0x11CEC548 36283a608692SPiotr Kubaj .long 0x11EFC548 36293a608692SPiotr Kubaj lvx 24,26,7 36303a608692SPiotr Kubaj addi 7,7,0x20 36313a608692SPiotr Kubaj 36323a608692SPiotr Kubaj .long 0x10E7CD48 36333a608692SPiotr Kubaj .long 0x118CCD48 36343a608692SPiotr Kubaj .long 0x11ADCD48 36353a608692SPiotr Kubaj .long 0x11CECD48 36363a608692SPiotr Kubaj .long 0x11EFCD48 36373a608692SPiotr Kubaj lvx 25,3,7 36383a608692SPiotr Kubaj bdnz _aesp8_xts_dec5x 36393a608692SPiotr Kubaj 36403a608692SPiotr Kubaj subi 0,31,1 36413a608692SPiotr Kubaj .long 0x10E7C548 36423a608692SPiotr Kubaj .long 0x118CC548 36433a608692SPiotr Kubaj .long 0x11ADC548 36443a608692SPiotr Kubaj .long 0x11CEC548 36453a608692SPiotr Kubaj .long 0x11EFC548 36463a608692SPiotr Kubaj 36473a608692SPiotr Kubaj andi. 0,0,16 36483a608692SPiotr Kubaj cmpwi 31,0 36493a608692SPiotr Kubaj .long 0x10E7CD48 36503a608692SPiotr Kubaj .long 0x118CCD48 36513a608692SPiotr Kubaj .long 0x11ADCD48 36523a608692SPiotr Kubaj .long 0x11CECD48 36533a608692SPiotr Kubaj .long 0x11EFCD48 36543a608692SPiotr Kubaj vxor 17,17,31 36553a608692SPiotr Kubaj 36563a608692SPiotr Kubaj sub 10,10,0 36573a608692SPiotr Kubaj .long 0x10E7D548 36583a608692SPiotr Kubaj .long 0x118CD548 36593a608692SPiotr Kubaj .long 0x11ADD548 36603a608692SPiotr Kubaj .long 0x11CED548 36613a608692SPiotr Kubaj .long 0x11EFD548 36623a608692SPiotr Kubaj vxor 1,18,31 36633a608692SPiotr Kubaj 36643a608692SPiotr Kubaj .long 0x10E7DD48 36653a608692SPiotr Kubaj .long 0x7C005699 36663a608692SPiotr Kubaj .long 0x118CDD48 36673a608692SPiotr Kubaj .long 0x11ADDD48 36683a608692SPiotr Kubaj .long 0x11CEDD48 36693a608692SPiotr Kubaj .long 0x11EFDD48 36703a608692SPiotr Kubaj vxor 2,19,31 36713a608692SPiotr Kubaj 36723a608692SPiotr Kubaj addi 7,1,64+15 36733a608692SPiotr Kubaj .long 0x10E7E548 36743a608692SPiotr Kubaj .long 0x118CE548 36753a608692SPiotr Kubaj .long 0x11ADE548 36763a608692SPiotr Kubaj .long 0x11CEE548 36773a608692SPiotr Kubaj .long 0x11EFE548 36783a608692SPiotr Kubaj lvx 24,0,7 36793a608692SPiotr Kubaj vxor 3,20,31 36803a608692SPiotr Kubaj 36813a608692SPiotr Kubaj .long 0x10E7ED48 36823a608692SPiotr Kubaj 36833a608692SPiotr Kubaj .long 0x118CED48 36843a608692SPiotr Kubaj .long 0x11ADED48 36853a608692SPiotr Kubaj .long 0x11CEED48 36863a608692SPiotr Kubaj .long 0x11EFED48 36873a608692SPiotr Kubaj lvx 25,3,7 36883a608692SPiotr Kubaj vxor 4,21,31 36893a608692SPiotr Kubaj 36903a608692SPiotr Kubaj .long 0x10E7F548 36913a608692SPiotr Kubaj .long 0x118CF548 36923a608692SPiotr Kubaj .long 0x11ADF548 36933a608692SPiotr Kubaj .long 0x11CEF548 36943a608692SPiotr Kubaj .long 0x11EFF548 36953a608692SPiotr Kubaj 36963a608692SPiotr Kubaj .long 0x10E78D49 36973a608692SPiotr Kubaj .long 0x118C0D49 36983a608692SPiotr Kubaj .long 0x11AD1549 36993a608692SPiotr Kubaj .long 0x11CE1D49 37003a608692SPiotr Kubaj .long 0x11EF2549 37013a608692SPiotr Kubaj mtctr 9 37023a608692SPiotr Kubaj blr 37033a608692SPiotr Kubaj.long 0 37043a608692SPiotr Kubaj.byte 0,12,0x14,0,0,0,0,0 3705