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