Path: blob/main/sys/crypto/openssl/powerpc64/aesp8-ppc.S
39483 views
/* Do not modify. This file is auto-generated from aesp8-ppc.pl. */1.machine "any"23.abiversion 24.text56.align 77rcon:8.byte 0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x009.byte 0x1b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x1b,0x00,0x00,0x0010.byte 0x0d,0x0e,0x0f,0x0c,0x0d,0x0e,0x0f,0x0c,0x0d,0x0e,0x0f,0x0c,0x0d,0x0e,0x0f,0x0c11.byte 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0012.long 0x0f102132, 0x43546576, 0x8798a9ba, 0xcbdcedfe13.Lconsts:14mflr 015bcl 20,31,$+416mflr 617addi 6,6,-0x5818mtlr 019blr20.long 021.byte 0,12,0x14,0,0,0,0,022.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,023.align 22425.globl aes_p8_set_encrypt_key26.type aes_p8_set_encrypt_key,@function27.align 528aes_p8_set_encrypt_key:29.localentry aes_p8_set_encrypt_key,03031.Lset_encrypt_key:32mflr 1133std 11,16(1)3435li 6,-136cmpldi 3,037beq- .Lenc_key_abort38cmpldi 5,039beq- .Lenc_key_abort40li 6,-241cmpwi 4,12842blt- .Lenc_key_abort43cmpwi 4,25644bgt- .Lenc_key_abort45andi. 0,4,0x3f46bne- .Lenc_key_abort4748lis 0,0xfff049li 12,-150or 0,0,05152bl .Lconsts53mtlr 115455neg 9,356lvx 1,0,357addi 3,3,1558lvsr 3,0,959li 8,0x2060cmpwi 4,19261lvx 2,0,36263lvx 4,0,66465lvx 5,8,666addi 6,6,0x1067vperm 1,1,2,368li 7,869vxor 0,0,070mtctr 77172lvsr 8,0,573vspltisb 9,-174lvx 10,0,575vperm 9,0,9,87677blt .Loop12878addi 3,3,879beq .L19280addi 3,3,881b .L2568283.align 484.Loop128:85vperm 3,1,1,586vsldoi 6,0,1,1287vperm 11,1,1,888vsel 7,10,11,989vor 10,11,1190.long 0x1063250991stvx 7,0,592addi 5,5,169394vxor 1,1,695vsldoi 6,0,6,1296vxor 1,1,697vsldoi 6,0,6,1298vxor 1,1,699vadduwm 4,4,4100vxor 1,1,3101bdnz .Loop128102103lvx 4,0,6104105vperm 3,1,1,5106vsldoi 6,0,1,12107vperm 11,1,1,8108vsel 7,10,11,9109vor 10,11,11110.long 0x10632509111stvx 7,0,5112addi 5,5,16113114vxor 1,1,6115vsldoi 6,0,6,12116vxor 1,1,6117vsldoi 6,0,6,12118vxor 1,1,6119vadduwm 4,4,4120vxor 1,1,3121122vperm 3,1,1,5123vsldoi 6,0,1,12124vperm 11,1,1,8125vsel 7,10,11,9126vor 10,11,11127.long 0x10632509128stvx 7,0,5129addi 5,5,16130131vxor 1,1,6132vsldoi 6,0,6,12133vxor 1,1,6134vsldoi 6,0,6,12135vxor 1,1,6136vxor 1,1,3137vperm 11,1,1,8138vsel 7,10,11,9139vor 10,11,11140stvx 7,0,5141142addi 3,5,15143addi 5,5,0x50144145li 8,10146b .Ldone147148.align 4149.L192:150lvx 6,0,3151li 7,4152vperm 11,1,1,8153vsel 7,10,11,9154vor 10,11,11155stvx 7,0,5156addi 5,5,16157vperm 2,2,6,3158vspltisb 3,8159mtctr 7160vsububm 5,5,3161162.Loop192:163vperm 3,2,2,5164vsldoi 6,0,1,12165.long 0x10632509166167vxor 1,1,6168vsldoi 6,0,6,12169vxor 1,1,6170vsldoi 6,0,6,12171vxor 1,1,6172173vsldoi 7,0,2,8174vspltw 6,1,3175vxor 6,6,2176vsldoi 2,0,2,12177vadduwm 4,4,4178vxor 2,2,6179vxor 1,1,3180vxor 2,2,3181vsldoi 7,7,1,8182183vperm 3,2,2,5184vsldoi 6,0,1,12185vperm 11,7,7,8186vsel 7,10,11,9187vor 10,11,11188.long 0x10632509189stvx 7,0,5190addi 5,5,16191192vsldoi 7,1,2,8193vxor 1,1,6194vsldoi 6,0,6,12195vperm 11,7,7,8196vsel 7,10,11,9197vor 10,11,11198vxor 1,1,6199vsldoi 6,0,6,12200vxor 1,1,6201stvx 7,0,5202addi 5,5,16203204vspltw 6,1,3205vxor 6,6,2206vsldoi 2,0,2,12207vadduwm 4,4,4208vxor 2,2,6209vxor 1,1,3210vxor 2,2,3211vperm 11,1,1,8212vsel 7,10,11,9213vor 10,11,11214stvx 7,0,5215addi 3,5,15216addi 5,5,16217bdnz .Loop192218219li 8,12220addi 5,5,0x20221b .Ldone222223.align 4224.L256:225lvx 6,0,3226li 7,7227li 8,14228vperm 11,1,1,8229vsel 7,10,11,9230vor 10,11,11231stvx 7,0,5232addi 5,5,16233vperm 2,2,6,3234mtctr 7235236.Loop256:237vperm 3,2,2,5238vsldoi 6,0,1,12239vperm 11,2,2,8240vsel 7,10,11,9241vor 10,11,11242.long 0x10632509243stvx 7,0,5244addi 5,5,16245246vxor 1,1,6247vsldoi 6,0,6,12248vxor 1,1,6249vsldoi 6,0,6,12250vxor 1,1,6251vadduwm 4,4,4252vxor 1,1,3253vperm 11,1,1,8254vsel 7,10,11,9255vor 10,11,11256stvx 7,0,5257addi 3,5,15258addi 5,5,16259bdz .Ldone260261vspltw 3,1,3262vsldoi 6,0,2,12263.long 0x106305C8264265vxor 2,2,6266vsldoi 6,0,6,12267vxor 2,2,6268vsldoi 6,0,6,12269vxor 2,2,6270271vxor 2,2,3272b .Loop256273274.align 4275.Ldone:276lvx 2,0,3277vsel 2,10,2,9278stvx 2,0,3279li 6,0280or 12,12,12281stw 8,0(5)282283.Lenc_key_abort:284mr 3,6285blr286.long 0287.byte 0,12,0x14,1,0,0,3,0288.long 0289.size aes_p8_set_encrypt_key,.-aes_p8_set_encrypt_key290291.globl aes_p8_set_decrypt_key292.type aes_p8_set_decrypt_key,@function293.align 5294aes_p8_set_decrypt_key:295.localentry aes_p8_set_decrypt_key,0296297stdu 1,-64(1)298mflr 10299std 10,64+16(1)300bl .Lset_encrypt_key301mtlr 10302303cmpwi 3,0304bne- .Ldec_key_abort305306slwi 7,8,4307subi 3,5,240308srwi 8,8,1309add 5,3,7310mtctr 8311312.Ldeckey:313lwz 0, 0(3)314lwz 6, 4(3)315lwz 7, 8(3)316lwz 8, 12(3)317addi 3,3,16318lwz 9, 0(5)319lwz 10,4(5)320lwz 11,8(5)321lwz 12,12(5)322stw 0, 0(5)323stw 6, 4(5)324stw 7, 8(5)325stw 8, 12(5)326subi 5,5,16327stw 9, -16(3)328stw 10,-12(3)329stw 11,-8(3)330stw 12,-4(3)331bdnz .Ldeckey332333xor 3,3,3334.Ldec_key_abort:335addi 1,1,64336blr337.long 0338.byte 0,12,4,1,0x80,0,3,0339.long 0340.size aes_p8_set_decrypt_key,.-aes_p8_set_decrypt_key341.globl aes_p8_encrypt342.type aes_p8_encrypt,@function343.align 5344aes_p8_encrypt:345.localentry aes_p8_encrypt,0346347lwz 6,240(5)348lis 0,0xfc00349li 12,-1350li 7,15351or 0,0,0352353lvx 0,0,3354neg 11,4355lvx 1,7,3356lvsl 2,0,3357358lvsl 3,0,11359360li 7,16361vperm 0,0,1,2362lvx 1,0,5363lvsl 5,0,5364srwi 6,6,1365lvx 2,7,5366addi 7,7,16367subi 6,6,1368vperm 1,1,2,5369370vxor 0,0,1371lvx 1,7,5372addi 7,7,16373mtctr 6374375.Loop_enc:376vperm 2,2,1,5377.long 0x10001508378lvx 2,7,5379addi 7,7,16380vperm 1,1,2,5381.long 0x10000D08382lvx 1,7,5383addi 7,7,16384bdnz .Loop_enc385386vperm 2,2,1,5387.long 0x10001508388lvx 2,7,5389vperm 1,1,2,5390.long 0x10000D09391392vspltisb 2,-1393vxor 1,1,1394li 7,15395vperm 2,1,2,3396397lvx 1,0,4398vperm 0,0,0,3399vsel 1,1,0,2400lvx 4,7,4401stvx 1,0,4402vsel 0,0,4,2403stvx 0,7,4404405or 12,12,12406blr407.long 0408.byte 0,12,0x14,0,0,0,3,0409.long 0410.size aes_p8_encrypt,.-aes_p8_encrypt411.globl aes_p8_decrypt412.type aes_p8_decrypt,@function413.align 5414aes_p8_decrypt:415.localentry aes_p8_decrypt,0416417lwz 6,240(5)418lis 0,0xfc00419li 12,-1420li 7,15421or 0,0,0422423lvx 0,0,3424neg 11,4425lvx 1,7,3426lvsl 2,0,3427428lvsl 3,0,11429430li 7,16431vperm 0,0,1,2432lvx 1,0,5433lvsl 5,0,5434srwi 6,6,1435lvx 2,7,5436addi 7,7,16437subi 6,6,1438vperm 1,1,2,5439440vxor 0,0,1441lvx 1,7,5442addi 7,7,16443mtctr 6444445.Loop_dec:446vperm 2,2,1,5447.long 0x10001548448lvx 2,7,5449addi 7,7,16450vperm 1,1,2,5451.long 0x10000D48452lvx 1,7,5453addi 7,7,16454bdnz .Loop_dec455456vperm 2,2,1,5457.long 0x10001548458lvx 2,7,5459vperm 1,1,2,5460.long 0x10000D49461462vspltisb 2,-1463vxor 1,1,1464li 7,15465vperm 2,1,2,3466467lvx 1,0,4468vperm 0,0,0,3469vsel 1,1,0,2470lvx 4,7,4471stvx 1,0,4472vsel 0,0,4,2473stvx 0,7,4474475or 12,12,12476blr477.long 0478.byte 0,12,0x14,0,0,0,3,0479.long 0480.size aes_p8_decrypt,.-aes_p8_decrypt481.globl aes_p8_cbc_encrypt482.type aes_p8_cbc_encrypt,@function483.align 5484aes_p8_cbc_encrypt:485.localentry aes_p8_cbc_encrypt,0486487cmpldi 5,16488.long 0x4dc00020489490cmpwi 8,0491lis 0,0xffe0492li 12,-1493or 0,0,0494495li 10,15496vxor 0,0,0497498499lvx 4,0,7500lvsl 6,0,7501lvx 5,10,7502503vperm 4,4,5,6504505neg 11,3506lvsl 10,0,6507lwz 9,240(6)508509lvsr 6,0,11510lvx 5,0,3511addi 3,3,15512513514lvsr 8,0,4515vspltisb 9,-1516lvx 7,0,4517vperm 9,0,9,8518519520srwi 9,9,1521li 10,16522subi 9,9,1523beq .Lcbc_dec524525.Lcbc_enc:526vor 2,5,5527lvx 5,0,3528addi 3,3,16529mtctr 9530subi 5,5,16531532lvx 0,0,6533vperm 2,2,5,6534lvx 1,10,6535addi 10,10,16536vperm 0,0,1,10537vxor 2,2,0538lvx 0,10,6539addi 10,10,16540vxor 2,2,4541542.Loop_cbc_enc:543vperm 1,1,0,10544.long 0x10420D08545lvx 1,10,6546addi 10,10,16547vperm 0,0,1,10548.long 0x10420508549lvx 0,10,6550addi 10,10,16551bdnz .Loop_cbc_enc552553vperm 1,1,0,10554.long 0x10420D08555lvx 1,10,6556li 10,16557vperm 0,0,1,10558.long 0x10820509559cmpldi 5,16560561vperm 3,4,4,8562vsel 2,7,3,9563vor 7,3,3564stvx 2,0,4565addi 4,4,16566bge .Lcbc_enc567568b .Lcbc_done569570.align 4571.Lcbc_dec:572cmpldi 5,128573bge _aesp8_cbc_decrypt8x574vor 3,5,5575lvx 5,0,3576addi 3,3,16577mtctr 9578subi 5,5,16579580lvx 0,0,6581vperm 3,3,5,6582lvx 1,10,6583addi 10,10,16584vperm 0,0,1,10585vxor 2,3,0586lvx 0,10,6587addi 10,10,16588589.Loop_cbc_dec:590vperm 1,1,0,10591.long 0x10420D48592lvx 1,10,6593addi 10,10,16594vperm 0,0,1,10595.long 0x10420548596lvx 0,10,6597addi 10,10,16598bdnz .Loop_cbc_dec599600vperm 1,1,0,10601.long 0x10420D48602lvx 1,10,6603li 10,16604vperm 0,0,1,10605.long 0x10420549606cmpldi 5,16607608vxor 2,2,4609vor 4,3,3610vperm 3,2,2,8611vsel 2,7,3,9612vor 7,3,3613stvx 2,0,4614addi 4,4,16615bge .Lcbc_dec616617.Lcbc_done:618addi 4,4,-1619lvx 2,0,4620vsel 2,7,2,9621stvx 2,0,4622623neg 8,7624li 10,15625vxor 0,0,0626vspltisb 9,-1627628lvsl 8,0,8629vperm 9,0,9,8630631lvx 7,0,7632vperm 4,4,4,8633vsel 2,7,4,9634lvx 5,10,7635stvx 2,0,7636vsel 2,4,5,9637stvx 2,10,7638639or 12,12,12640blr641.long 0642.byte 0,12,0x14,0,0,0,6,0643.long 0644.align 5645_aesp8_cbc_decrypt8x:646stdu 1,-448(1)647li 10,207648li 11,223649stvx 20,10,1650addi 10,10,32651stvx 21,11,1652addi 11,11,32653stvx 22,10,1654addi 10,10,32655stvx 23,11,1656addi 11,11,32657stvx 24,10,1658addi 10,10,32659stvx 25,11,1660addi 11,11,32661stvx 26,10,1662addi 10,10,32663stvx 27,11,1664addi 11,11,32665stvx 28,10,1666addi 10,10,32667stvx 29,11,1668addi 11,11,32669stvx 30,10,1670stvx 31,11,1671li 0,-1672stw 12,396(1)673li 8,0x10674std 26,400(1)675li 26,0x20676std 27,408(1)677li 27,0x30678std 28,416(1)679li 28,0x40680std 29,424(1)681li 29,0x50682std 30,432(1)683li 30,0x60684std 31,440(1)685li 31,0x70686or 0,0,0687688subi 9,9,3689subi 5,5,128690691lvx 23,0,6692lvx 30,8,6693addi 6,6,0x20694lvx 31,0,6695vperm 23,23,30,10696addi 11,1,64+15697mtctr 9698699.Load_cbc_dec_key:700vperm 24,30,31,10701lvx 30,8,6702addi 6,6,0x20703stvx 24,0,11704vperm 25,31,30,10705lvx 31,0,6706stvx 25,8,11707addi 11,11,0x20708bdnz .Load_cbc_dec_key709710lvx 26,8,6711vperm 24,30,31,10712lvx 27,26,6713stvx 24,0,11714vperm 25,31,26,10715lvx 28,27,6716stvx 25,8,11717addi 11,1,64+15718vperm 26,26,27,10719lvx 29,28,6720vperm 27,27,28,10721lvx 30,29,6722vperm 28,28,29,10723lvx 31,30,6724vperm 29,29,30,10725lvx 14,31,6726vperm 30,30,31,10727lvx 24,0,11728vperm 31,31,14,10729lvx 25,8,11730731732733subi 3,3,15734735736.long 0x7C001E99737738739.long 0x7C281E99740741.long 0x7C5A1E99742743.long 0x7C7B1E99744745.long 0x7D5C1E99746747vxor 14,0,23748.long 0x7D7D1E99749750vxor 15,1,23751.long 0x7D9E1E99752753vxor 16,2,23754.long 0x7DBF1E99755addi 3,3,0x80756757vxor 17,3,23758759vxor 18,10,23760761vxor 19,11,23762vxor 20,12,23763vxor 21,13,23764765mtctr 9766b .Loop_cbc_dec8x767.align 5768.Loop_cbc_dec8x:769.long 0x11CEC548770.long 0x11EFC548771.long 0x1210C548772.long 0x1231C548773.long 0x1252C548774.long 0x1273C548775.long 0x1294C548776.long 0x12B5C548777lvx 24,26,11778addi 11,11,0x20779780.long 0x11CECD48781.long 0x11EFCD48782.long 0x1210CD48783.long 0x1231CD48784.long 0x1252CD48785.long 0x1273CD48786.long 0x1294CD48787.long 0x12B5CD48788lvx 25,8,11789bdnz .Loop_cbc_dec8x790791subic 5,5,128792.long 0x11CEC548793.long 0x11EFC548794.long 0x1210C548795.long 0x1231C548796.long 0x1252C548797.long 0x1273C548798.long 0x1294C548799.long 0x12B5C548800801subfe. 0,0,0802.long 0x11CECD48803.long 0x11EFCD48804.long 0x1210CD48805.long 0x1231CD48806.long 0x1252CD48807.long 0x1273CD48808.long 0x1294CD48809.long 0x12B5CD48810811and 0,0,5812.long 0x11CED548813.long 0x11EFD548814.long 0x1210D548815.long 0x1231D548816.long 0x1252D548817.long 0x1273D548818.long 0x1294D548819.long 0x12B5D548820821add 3,3,0822823824825.long 0x11CEDD48826.long 0x11EFDD48827.long 0x1210DD48828.long 0x1231DD48829.long 0x1252DD48830.long 0x1273DD48831.long 0x1294DD48832.long 0x12B5DD48833834addi 11,1,64+15835.long 0x11CEE548836.long 0x11EFE548837.long 0x1210E548838.long 0x1231E548839.long 0x1252E548840.long 0x1273E548841.long 0x1294E548842.long 0x12B5E548843lvx 24,0,11844845.long 0x11CEED48846.long 0x11EFED48847.long 0x1210ED48848.long 0x1231ED48849.long 0x1252ED48850.long 0x1273ED48851.long 0x1294ED48852.long 0x12B5ED48853lvx 25,8,11854855.long 0x11CEF548856vxor 4,4,31857.long 0x11EFF548858vxor 0,0,31859.long 0x1210F548860vxor 1,1,31861.long 0x1231F548862vxor 2,2,31863.long 0x1252F548864vxor 3,3,31865.long 0x1273F548866vxor 10,10,31867.long 0x1294F548868vxor 11,11,31869.long 0x12B5F548870vxor 12,12,31871872.long 0x11CE2549873.long 0x11EF0549874.long 0x7C001E99875.long 0x12100D49876.long 0x7C281E99877.long 0x12311549878879.long 0x7C5A1E99880.long 0x12521D49881882.long 0x7C7B1E99883.long 0x12735549884885.long 0x7D5C1E99886.long 0x12945D49887888.long 0x7D7D1E99889.long 0x12B56549890891.long 0x7D9E1E99892vor 4,13,13893894.long 0x7DBF1E99895addi 3,3,0x80896897898899.long 0x7DC02799900901vxor 14,0,23902903.long 0x7DE82799904905vxor 15,1,23906907.long 0x7E1A2799908vxor 16,2,23909910.long 0x7E3B2799911vxor 17,3,23912913.long 0x7E5C2799914vxor 18,10,23915916.long 0x7E7D2799917vxor 19,11,23918919.long 0x7E9E2799920vxor 20,12,23921.long 0x7EBF2799922addi 4,4,0x80923vxor 21,13,23924925mtctr 9926beq .Loop_cbc_dec8x927928addic. 5,5,128929beq .Lcbc_dec8x_done930nop931nop932933.Loop_cbc_dec8x_tail:934.long 0x11EFC548935.long 0x1210C548936.long 0x1231C548937.long 0x1252C548938.long 0x1273C548939.long 0x1294C548940.long 0x12B5C548941lvx 24,26,11942addi 11,11,0x20943944.long 0x11EFCD48945.long 0x1210CD48946.long 0x1231CD48947.long 0x1252CD48948.long 0x1273CD48949.long 0x1294CD48950.long 0x12B5CD48951lvx 25,8,11952bdnz .Loop_cbc_dec8x_tail953954.long 0x11EFC548955.long 0x1210C548956.long 0x1231C548957.long 0x1252C548958.long 0x1273C548959.long 0x1294C548960.long 0x12B5C548961962.long 0x11EFCD48963.long 0x1210CD48964.long 0x1231CD48965.long 0x1252CD48966.long 0x1273CD48967.long 0x1294CD48968.long 0x12B5CD48969970.long 0x11EFD548971.long 0x1210D548972.long 0x1231D548973.long 0x1252D548974.long 0x1273D548975.long 0x1294D548976.long 0x12B5D548977978.long 0x11EFDD48979.long 0x1210DD48980.long 0x1231DD48981.long 0x1252DD48982.long 0x1273DD48983.long 0x1294DD48984.long 0x12B5DD48985986.long 0x11EFE548987.long 0x1210E548988.long 0x1231E548989.long 0x1252E548990.long 0x1273E548991.long 0x1294E548992.long 0x12B5E548993994.long 0x11EFED48995.long 0x1210ED48996.long 0x1231ED48997.long 0x1252ED48998.long 0x1273ED48999.long 0x1294ED481000.long 0x12B5ED4810011002.long 0x11EFF5481003vxor 4,4,311004.long 0x1210F5481005vxor 1,1,311006.long 0x1231F5481007vxor 2,2,311008.long 0x1252F5481009vxor 3,3,311010.long 0x1273F5481011vxor 10,10,311012.long 0x1294F5481013vxor 11,11,311014.long 0x12B5F5481015vxor 12,12,3110161017cmplwi 5,321018blt .Lcbc_dec8x_one1019nop1020beq .Lcbc_dec8x_two1021cmplwi 5,641022blt .Lcbc_dec8x_three1023nop1024beq .Lcbc_dec8x_four1025cmplwi 5,961026blt .Lcbc_dec8x_five1027nop1028beq .Lcbc_dec8x_six10291030.Lcbc_dec8x_seven:1031.long 0x11EF25491032.long 0x12100D491033.long 0x123115491034.long 0x12521D491035.long 0x127355491036.long 0x12945D491037.long 0x12B565491038vor 4,13,131039104010411042.long 0x7DE0279910431044.long 0x7E08279910451046.long 0x7E3A279910471048.long 0x7E5B279910491050.long 0x7E7C279910511052.long 0x7E9D27991053.long 0x7EBE27991054addi 4,4,0x701055b .Lcbc_dec8x_done10561057.align 51058.Lcbc_dec8x_six:1059.long 0x121025491060.long 0x123115491061.long 0x12521D491062.long 0x127355491063.long 0x12945D491064.long 0x12B565491065vor 4,13,131066106710681069.long 0x7E00279910701071.long 0x7E28279910721073.long 0x7E5A279910741075.long 0x7E7B279910761077.long 0x7E9C27991078.long 0x7EBD27991079addi 4,4,0x601080b .Lcbc_dec8x_done10811082.align 51083.Lcbc_dec8x_five:1084.long 0x123125491085.long 0x12521D491086.long 0x127355491087.long 0x12945D491088.long 0x12B565491089vor 4,13,131090109110921093.long 0x7E20279910941095.long 0x7E48279910961097.long 0x7E7A279910981099.long 0x7E9B27991100.long 0x7EBC27991101addi 4,4,0x501102b .Lcbc_dec8x_done11031104.align 51105.Lcbc_dec8x_four:1106.long 0x125225491107.long 0x127355491108.long 0x12945D491109.long 0x12B565491110vor 4,13,131111111211131114.long 0x7E40279911151116.long 0x7E68279911171118.long 0x7E9A27991119.long 0x7EBB27991120addi 4,4,0x401121b .Lcbc_dec8x_done11221123.align 51124.Lcbc_dec8x_three:1125.long 0x127325491126.long 0x12945D491127.long 0x12B565491128vor 4,13,131129113011311132.long 0x7E60279911331134.long 0x7E8827991135.long 0x7EBA27991136addi 4,4,0x301137b .Lcbc_dec8x_done11381139.align 51140.Lcbc_dec8x_two:1141.long 0x129425491142.long 0x12B565491143vor 4,13,131144114511461147.long 0x7E8027991148.long 0x7EA827991149addi 4,4,0x201150b .Lcbc_dec8x_done11511152.align 51153.Lcbc_dec8x_one:1154.long 0x12B525491155vor 4,13,13115611571158.long 0x7EA027991159addi 4,4,0x1011601161.Lcbc_dec8x_done:11621163.long 0x7C803F9911641165li 10,791166li 11,951167stvx 6,10,11168addi 10,10,321169stvx 6,11,11170addi 11,11,321171stvx 6,10,11172addi 10,10,321173stvx 6,11,11174addi 11,11,321175stvx 6,10,11176addi 10,10,321177stvx 6,11,11178addi 11,11,321179stvx 6,10,11180addi 10,10,321181stvx 6,11,11182addi 11,11,3211831184or 12,12,121185lvx 20,10,11186addi 10,10,321187lvx 21,11,11188addi 11,11,321189lvx 22,10,11190addi 10,10,321191lvx 23,11,11192addi 11,11,321193lvx 24,10,11194addi 10,10,321195lvx 25,11,11196addi 11,11,321197lvx 26,10,11198addi 10,10,321199lvx 27,11,11200addi 11,11,321201lvx 28,10,11202addi 10,10,321203lvx 29,11,11204addi 11,11,321205lvx 30,10,11206lvx 31,11,11207ld 26,400(1)1208ld 27,408(1)1209ld 28,416(1)1210ld 29,424(1)1211ld 30,432(1)1212ld 31,440(1)1213addi 1,1,4481214blr1215.long 01216.byte 0,12,0x04,0,0x80,6,6,01217.long 01218.size aes_p8_cbc_encrypt,.-aes_p8_cbc_encrypt1219.globl aes_p8_ctr32_encrypt_blocks1220.type aes_p8_ctr32_encrypt_blocks,@function1221.align 51222aes_p8_ctr32_encrypt_blocks:1223.localentry aes_p8_ctr32_encrypt_blocks,012241225cmpldi 5,11226.long 0x4dc0002012271228lis 0,0xfff01229li 12,-11230or 0,0,012311232li 10,151233vxor 0,0,0123412351236lvx 4,0,71237lvsl 6,0,71238lvx 5,10,71239vspltisb 11,112401241vperm 4,4,5,61242vsldoi 11,0,11,112431244neg 11,31245lvsl 10,0,61246lwz 9,240(6)12471248lvsr 6,0,111249lvx 5,0,31250addi 3,3,15125112521253srwi 9,9,11254li 10,161255subi 9,9,112561257cmpldi 5,81258bge _aesp8_ctr32_encrypt8x12591260lvsr 8,0,41261vspltisb 9,-11262lvx 7,0,41263vperm 9,0,9,8126412651266lvx 0,0,61267mtctr 91268lvx 1,10,61269addi 10,10,161270vperm 0,0,1,101271vxor 2,4,01272lvx 0,10,61273addi 10,10,161274b .Loop_ctr32_enc12751276.align 51277.Loop_ctr32_enc:1278vperm 1,1,0,101279.long 0x10420D081280lvx 1,10,61281addi 10,10,161282vperm 0,0,1,101283.long 0x104205081284lvx 0,10,61285addi 10,10,161286bdnz .Loop_ctr32_enc12871288vadduwm 4,4,111289vor 3,5,51290lvx 5,0,31291addi 3,3,161292subic. 5,5,112931294vperm 1,1,0,101295.long 0x10420D081296lvx 1,10,61297vperm 3,3,5,61298li 10,161299vperm 1,0,1,101300lvx 0,0,61301vxor 3,3,11302.long 0x10421D0913031304lvx 1,10,61305addi 10,10,161306vperm 2,2,2,81307vsel 3,7,2,91308mtctr 91309vperm 0,0,1,101310vor 7,2,21311vxor 2,4,01312lvx 0,10,61313addi 10,10,161314stvx 3,0,41315addi 4,4,161316bne .Loop_ctr32_enc13171318addi 4,4,-11319lvx 2,0,41320vsel 2,7,2,91321stvx 2,0,413221323or 12,12,121324blr1325.long 01326.byte 0,12,0x14,0,0,0,6,01327.long 01328.align 51329_aesp8_ctr32_encrypt8x:1330stdu 1,-448(1)1331li 10,2071332li 11,2231333stvx 20,10,11334addi 10,10,321335stvx 21,11,11336addi 11,11,321337stvx 22,10,11338addi 10,10,321339stvx 23,11,11340addi 11,11,321341stvx 24,10,11342addi 10,10,321343stvx 25,11,11344addi 11,11,321345stvx 26,10,11346addi 10,10,321347stvx 27,11,11348addi 11,11,321349stvx 28,10,11350addi 10,10,321351stvx 29,11,11352addi 11,11,321353stvx 30,10,11354stvx 31,11,11355li 0,-11356stw 12,396(1)1357li 8,0x101358std 26,400(1)1359li 26,0x201360std 27,408(1)1361li 27,0x301362std 28,416(1)1363li 28,0x401364std 29,424(1)1365li 29,0x501366std 30,432(1)1367li 30,0x601368std 31,440(1)1369li 31,0x701370or 0,0,013711372subi 9,9,313731374lvx 23,0,61375lvx 30,8,61376addi 6,6,0x201377lvx 31,0,61378vperm 23,23,30,101379addi 11,1,64+151380mtctr 913811382.Load_ctr32_enc_key:1383vperm 24,30,31,101384lvx 30,8,61385addi 6,6,0x201386stvx 24,0,111387vperm 25,31,30,101388lvx 31,0,61389stvx 25,8,111390addi 11,11,0x201391bdnz .Load_ctr32_enc_key13921393lvx 26,8,61394vperm 24,30,31,101395lvx 27,26,61396stvx 24,0,111397vperm 25,31,26,101398lvx 28,27,61399stvx 25,8,111400addi 11,1,64+151401vperm 26,26,27,101402lvx 29,28,61403vperm 27,27,28,101404lvx 30,29,61405vperm 28,28,29,101406lvx 31,30,61407vperm 29,29,30,101408lvx 15,31,61409vperm 30,30,31,101410lvx 24,0,111411vperm 31,31,15,101412lvx 25,8,1114131414vadduwm 7,11,111415subi 3,3,151416sldi 5,5,414171418vadduwm 16,4,111419vadduwm 17,4,71420vxor 15,4,2314211422vadduwm 18,16,71423vxor 16,16,2314241425vadduwm 19,17,71426vxor 17,17,2314271428vadduwm 20,18,71429vxor 18,18,2314301431vadduwm 21,19,71432vxor 19,19,231433vadduwm 22,20,71434vxor 20,20,231435vadduwm 4,21,71436vxor 21,21,231437vxor 22,22,2314381439mtctr 91440b .Loop_ctr32_enc8x1441.align 51442.Loop_ctr32_enc8x:1443.long 0x11EFC5081444.long 0x1210C5081445.long 0x1231C5081446.long 0x1252C5081447.long 0x1273C5081448.long 0x1294C5081449.long 0x12B5C5081450.long 0x12D6C5081451.Loop_ctr32_enc8x_middle:1452lvx 24,26,111453addi 11,11,0x2014541455.long 0x11EFCD081456.long 0x1210CD081457.long 0x1231CD081458.long 0x1252CD081459.long 0x1273CD081460.long 0x1294CD081461.long 0x12B5CD081462.long 0x12D6CD081463lvx 25,8,111464bdnz .Loop_ctr32_enc8x14651466subic 11,5,2561467.long 0x11EFC5081468.long 0x1210C5081469.long 0x1231C5081470.long 0x1252C5081471.long 0x1273C5081472.long 0x1294C5081473.long 0x12B5C5081474.long 0x12D6C50814751476subfe 0,0,01477.long 0x11EFCD081478.long 0x1210CD081479.long 0x1231CD081480.long 0x1252CD081481.long 0x1273CD081482.long 0x1294CD081483.long 0x12B5CD081484.long 0x12D6CD0814851486and 0,0,111487addi 11,1,64+151488.long 0x11EFD5081489.long 0x1210D5081490.long 0x1231D5081491.long 0x1252D5081492.long 0x1273D5081493.long 0x1294D5081494.long 0x12B5D5081495.long 0x12D6D5081496lvx 24,0,1114971498subic 5,5,1291499.long 0x11EFDD081500addi 5,5,11501.long 0x1210DD081502.long 0x1231DD081503.long 0x1252DD081504.long 0x1273DD081505.long 0x1294DD081506.long 0x12B5DD081507.long 0x12D6DD081508lvx 25,8,1115091510.long 0x11EFE5081511.long 0x7C001E991512.long 0x1210E5081513.long 0x7C281E991514.long 0x1231E5081515.long 0x7C5A1E991516.long 0x1252E5081517.long 0x7C7B1E991518.long 0x1273E5081519.long 0x7D5C1E991520.long 0x1294E5081521.long 0x7D9D1E991522.long 0x12B5E5081523.long 0x7DBE1E991524.long 0x12D6E5081525.long 0x7DDF1E991526addi 3,3,0x8015271528.long 0x11EFED0815291530.long 0x1210ED0815311532.long 0x1231ED0815331534.long 0x1252ED0815351536.long 0x1273ED0815371538.long 0x1294ED0815391540.long 0x12B5ED0815411542.long 0x12D6ED08154315441545add 3,3,01546154715481549subfe. 0,0,01550.long 0x11EFF5081551vxor 0,0,311552.long 0x1210F5081553vxor 1,1,311554.long 0x1231F5081555vxor 2,2,311556.long 0x1252F5081557vxor 3,3,311558.long 0x1273F5081559vxor 10,10,311560.long 0x1294F5081561vxor 12,12,311562.long 0x12B5F5081563vxor 13,13,311564.long 0x12D6F5081565vxor 14,14,3115661567bne .Lctr32_enc8x_break15681569.long 0x100F05091570.long 0x10300D091571vadduwm 16,4,111572.long 0x105115091573vadduwm 17,4,71574vxor 15,4,231575.long 0x10721D091576vadduwm 18,16,71577vxor 16,16,231578.long 0x115355091579vadduwm 19,17,71580vxor 17,17,231581.long 0x119465091582vadduwm 20,18,71583vxor 18,18,231584.long 0x11B56D091585vadduwm 21,19,71586vxor 19,19,231587.long 0x11D675091588vadduwm 22,20,71589vxor 20,20,2315901591vadduwm 4,21,71592vxor 21,21,2315931594vxor 22,22,231595mtctr 915961597.long 0x11EFC5081598.long 0x7C00279915991600.long 0x1210C5081601.long 0x7C28279916021603.long 0x1231C5081604.long 0x7C5A279916051606.long 0x1252C5081607.long 0x7C7B279916081609.long 0x1273C5081610.long 0x7D5C279916111612.long 0x1294C5081613.long 0x7D9D279916141615.long 0x12B5C5081616.long 0x7DBE27991617.long 0x12D6C5081618.long 0x7DDF27991619addi 4,4,0x8016201621b .Loop_ctr32_enc8x_middle16221623.align 51624.Lctr32_enc8x_break:1625cmpwi 5,-0x601626blt .Lctr32_enc8x_one1627nop1628beq .Lctr32_enc8x_two1629cmpwi 5,-0x401630blt .Lctr32_enc8x_three1631nop1632beq .Lctr32_enc8x_four1633cmpwi 5,-0x201634blt .Lctr32_enc8x_five1635nop1636beq .Lctr32_enc8x_six1637cmpwi 5,0x001638blt .Lctr32_enc8x_seven16391640.Lctr32_enc8x_eight:1641.long 0x11EF05091642.long 0x12100D091643.long 0x123115091644.long 0x12521D091645.long 0x127355091646.long 0x129465091647.long 0x12B56D091648.long 0x12D675091649165016511652.long 0x7DE0279916531654.long 0x7E08279916551656.long 0x7E3A279916571658.long 0x7E5B279916591660.long 0x7E7C279916611662.long 0x7E9D279916631664.long 0x7EBE27991665.long 0x7EDF27991666addi 4,4,0x801667b .Lctr32_enc8x_done16681669.align 51670.Lctr32_enc8x_seven:1671.long 0x11EF0D091672.long 0x121015091673.long 0x12311D091674.long 0x125255091675.long 0x127365091676.long 0x12946D091677.long 0x12B575091678167916801681.long 0x7DE0279916821683.long 0x7E08279916841685.long 0x7E3A279916861687.long 0x7E5B279916881689.long 0x7E7C279916901691.long 0x7E9D27991692.long 0x7EBE27991693addi 4,4,0x701694b .Lctr32_enc8x_done16951696.align 51697.Lctr32_enc8x_six:1698.long 0x11EF15091699.long 0x12101D091700.long 0x123155091701.long 0x125265091702.long 0x12736D091703.long 0x129475091704170517061707.long 0x7DE0279917081709.long 0x7E08279917101711.long 0x7E3A279917121713.long 0x7E5B279917141715.long 0x7E7C27991716.long 0x7E9D27991717addi 4,4,0x601718b .Lctr32_enc8x_done17191720.align 51721.Lctr32_enc8x_five:1722.long 0x11EF1D091723.long 0x121055091724.long 0x123165091725.long 0x12526D091726.long 0x127375091727172817291730.long 0x7DE0279917311732.long 0x7E08279917331734.long 0x7E3A279917351736.long 0x7E5B27991737.long 0x7E7C27991738addi 4,4,0x501739b .Lctr32_enc8x_done17401741.align 51742.Lctr32_enc8x_four:1743.long 0x11EF55091744.long 0x121065091745.long 0x12316D091746.long 0x125275091747174817491750.long 0x7DE0279917511752.long 0x7E08279917531754.long 0x7E3A27991755.long 0x7E5B27991756addi 4,4,0x401757b .Lctr32_enc8x_done17581759.align 51760.Lctr32_enc8x_three:1761.long 0x11EF65091762.long 0x12106D091763.long 0x123175091764176517661767.long 0x7DE0279917681769.long 0x7E0827991770.long 0x7E3A27991771addi 4,4,0x301772b .Lctr32_enc8x_done17731774.align 51775.Lctr32_enc8x_two:1776.long 0x11EF6D091777.long 0x121075091778177917801781.long 0x7DE027991782.long 0x7E0827991783addi 4,4,0x201784b .Lctr32_enc8x_done17851786.align 51787.Lctr32_enc8x_one:1788.long 0x11EF7509178917901791.long 0x7DE027991792addi 4,4,0x1017931794.Lctr32_enc8x_done:1795li 10,791796li 11,951797stvx 6,10,11798addi 10,10,321799stvx 6,11,11800addi 11,11,321801stvx 6,10,11802addi 10,10,321803stvx 6,11,11804addi 11,11,321805stvx 6,10,11806addi 10,10,321807stvx 6,11,11808addi 11,11,321809stvx 6,10,11810addi 10,10,321811stvx 6,11,11812addi 11,11,3218131814or 12,12,121815lvx 20,10,11816addi 10,10,321817lvx 21,11,11818addi 11,11,321819lvx 22,10,11820addi 10,10,321821lvx 23,11,11822addi 11,11,321823lvx 24,10,11824addi 10,10,321825lvx 25,11,11826addi 11,11,321827lvx 26,10,11828addi 10,10,321829lvx 27,11,11830addi 11,11,321831lvx 28,10,11832addi 10,10,321833lvx 29,11,11834addi 11,11,321835lvx 30,10,11836lvx 31,11,11837ld 26,400(1)1838ld 27,408(1)1839ld 28,416(1)1840ld 29,424(1)1841ld 30,432(1)1842ld 31,440(1)1843addi 1,1,4481844blr1845.long 01846.byte 0,12,0x04,0,0x80,6,6,01847.long 01848.size aes_p8_ctr32_encrypt_blocks,.-aes_p8_ctr32_encrypt_blocks1849.globl aes_p8_xts_encrypt1850.type aes_p8_xts_encrypt,@function1851.align 51852aes_p8_xts_encrypt:1853.localentry aes_p8_xts_encrypt,018541855mr 10,31856li 3,-11857cmpldi 5,161858.long 0x4dc0002018591860lis 0,0xfff01861li 12,-11862li 11,01863or 0,0,018641865vspltisb 9,0x0718661867186818691870li 3,151871lvx 8,0,81872lvsl 5,0,81873lvx 4,3,818741875vperm 8,8,4,518761877neg 11,101878lvsr 5,0,111879lvx 2,0,101880addi 10,10,15188118821883cmpldi 7,01884beq .Lxts_enc_no_key218851886lvsl 7,0,71887lwz 9,240(7)1888srwi 9,9,11889subi 9,9,11890li 3,1618911892lvx 0,0,71893lvx 1,3,71894addi 3,3,161895vperm 0,0,1,71896vxor 8,8,01897lvx 0,3,71898addi 3,3,161899mtctr 919001901.Ltweak_xts_enc:1902vperm 1,1,0,71903.long 0x11080D081904lvx 1,3,71905addi 3,3,161906vperm 0,0,1,71907.long 0x110805081908lvx 0,3,71909addi 3,3,161910bdnz .Ltweak_xts_enc19111912vperm 1,1,0,71913.long 0x11080D081914lvx 1,3,71915vperm 0,0,1,71916.long 0x1108050919171918li 8,01919b .Lxts_enc19201921.Lxts_enc_no_key2:1922li 3,-161923and 5,5,3192419251926.Lxts_enc:1927lvx 4,0,101928addi 10,10,1619291930lvsl 7,0,61931lwz 9,240(6)1932srwi 9,9,11933subi 9,9,11934li 3,1619351936vslb 10,9,91937vor 10,10,91938vspltisb 11,11939vsldoi 10,10,11,1519401941cmpldi 5,961942bge _aesp8_xts_encrypt6x19431944andi. 7,5,151945subic 0,5,321946subi 7,7,161947subfe 0,0,01948and 0,0,71949add 10,10,019501951lvx 0,0,61952lvx 1,3,61953addi 3,3,161954vperm 2,2,4,51955vperm 0,0,1,71956vxor 2,2,81957vxor 2,2,01958lvx 0,3,61959addi 3,3,161960mtctr 91961b .Loop_xts_enc19621963.align 51964.Loop_xts_enc:1965vperm 1,1,0,71966.long 0x10420D081967lvx 1,3,61968addi 3,3,161969vperm 0,0,1,71970.long 0x104205081971lvx 0,3,61972addi 3,3,161973bdnz .Loop_xts_enc19741975vperm 1,1,0,71976.long 0x10420D081977lvx 1,3,61978li 3,161979vperm 0,0,1,71980vxor 0,0,81981.long 0x10620509198219831984nop19851986.long 0x7C6027991987addi 4,4,1619881989subic. 5,5,161990beq .Lxts_enc_done19911992vor 2,4,41993lvx 4,0,101994addi 10,10,161995lvx 0,0,61996lvx 1,3,61997addi 3,3,1619981999subic 0,5,322000subfe 0,0,02001and 0,0,72002add 10,10,020032004vsrab 11,8,92005vaddubm 8,8,82006vsldoi 11,11,11,152007vand 11,11,102008vxor 8,8,1120092010vperm 2,2,4,52011vperm 0,0,1,72012vxor 2,2,82013vxor 3,3,02014vxor 2,2,02015lvx 0,3,62016addi 3,3,1620172018mtctr 92019cmpldi 5,162020bge .Loop_xts_enc20212022vxor 3,3,82023lvsr 5,0,52024vxor 4,4,42025vspltisb 11,-12026vperm 4,4,11,52027vsel 2,2,3,420282029subi 11,4,172030subi 4,4,162031mtctr 52032li 5,162033.Loop_xts_enc_steal:2034lbzu 0,1(11)2035stb 0,16(11)2036bdnz .Loop_xts_enc_steal20372038mtctr 92039b .Loop_xts_enc20402041.Lxts_enc_done:2042cmpldi 8,02043beq .Lxts_enc_ret20442045vsrab 11,8,92046vaddubm 8,8,82047vsldoi 11,11,11,152048vand 11,11,102049vxor 8,8,11205020512052.long 0x7D00479920532054.Lxts_enc_ret:2055or 12,12,122056li 3,02057blr2058.long 02059.byte 0,12,0x04,0,0x80,6,6,02060.long 02061.size aes_p8_xts_encrypt,.-aes_p8_xts_encrypt20622063.globl aes_p8_xts_decrypt2064.type aes_p8_xts_decrypt,@function2065.align 52066aes_p8_xts_decrypt:2067.localentry aes_p8_xts_decrypt,020682069mr 10,32070li 3,-12071cmpldi 5,162072.long 0x4dc0002020732074lis 0,0xfff82075li 12,-12076li 11,02077or 0,0,020782079andi. 0,5,152080neg 0,02081andi. 0,0,162082sub 5,5,020832084vspltisb 9,0x0720852086208720882089li 3,152090lvx 8,0,82091lvsl 5,0,82092lvx 4,3,820932094vperm 8,8,4,520952096neg 11,102097lvsr 5,0,112098lvx 2,0,102099addi 10,10,15210021012102cmpldi 7,02103beq .Lxts_dec_no_key221042105lvsl 7,0,72106lwz 9,240(7)2107srwi 9,9,12108subi 9,9,12109li 3,1621102111lvx 0,0,72112lvx 1,3,72113addi 3,3,162114vperm 0,0,1,72115vxor 8,8,02116lvx 0,3,72117addi 3,3,162118mtctr 921192120.Ltweak_xts_dec:2121vperm 1,1,0,72122.long 0x11080D082123lvx 1,3,72124addi 3,3,162125vperm 0,0,1,72126.long 0x110805082127lvx 0,3,72128addi 3,3,162129bdnz .Ltweak_xts_dec21302131vperm 1,1,0,72132.long 0x11080D082133lvx 1,3,72134vperm 0,0,1,72135.long 0x1108050921362137li 8,02138b .Lxts_dec21392140.Lxts_dec_no_key2:2141neg 3,52142andi. 3,3,152143add 5,5,3214421452146.Lxts_dec:2147lvx 4,0,102148addi 10,10,1621492150lvsl 7,0,62151lwz 9,240(6)2152srwi 9,9,12153subi 9,9,12154li 3,1621552156vslb 10,9,92157vor 10,10,92158vspltisb 11,12159vsldoi 10,10,11,1521602161cmpldi 5,962162bge _aesp8_xts_decrypt6x21632164lvx 0,0,62165lvx 1,3,62166addi 3,3,162167vperm 2,2,4,52168vperm 0,0,1,72169vxor 2,2,82170vxor 2,2,02171lvx 0,3,62172addi 3,3,162173mtctr 921742175cmpldi 5,162176blt .Ltail_xts_dec2177b .Loop_xts_dec21782179.align 52180.Loop_xts_dec:2181vperm 1,1,0,72182.long 0x10420D482183lvx 1,3,62184addi 3,3,162185vperm 0,0,1,72186.long 0x104205482187lvx 0,3,62188addi 3,3,162189bdnz .Loop_xts_dec21902191vperm 1,1,0,72192.long 0x10420D482193lvx 1,3,62194li 3,162195vperm 0,0,1,72196vxor 0,0,82197.long 0x10620549219821992200nop22012202.long 0x7C6027992203addi 4,4,1622042205subic. 5,5,162206beq .Lxts_dec_done22072208vor 2,4,42209lvx 4,0,102210addi 10,10,162211lvx 0,0,62212lvx 1,3,62213addi 3,3,1622142215vsrab 11,8,92216vaddubm 8,8,82217vsldoi 11,11,11,152218vand 11,11,102219vxor 8,8,1122202221vperm 2,2,4,52222vperm 0,0,1,72223vxor 2,2,82224vxor 2,2,02225lvx 0,3,62226addi 3,3,1622272228mtctr 92229cmpldi 5,162230bge .Loop_xts_dec22312232.Ltail_xts_dec:2233vsrab 11,8,92234vaddubm 12,8,82235vsldoi 11,11,11,152236vand 11,11,102237vxor 12,12,1122382239subi 10,10,162240add 10,10,522412242vxor 2,2,82243vxor 2,2,1222442245.Loop_xts_dec_short:2246vperm 1,1,0,72247.long 0x10420D482248lvx 1,3,62249addi 3,3,162250vperm 0,0,1,72251.long 0x104205482252lvx 0,3,62253addi 3,3,162254bdnz .Loop_xts_dec_short22552256vperm 1,1,0,72257.long 0x10420D482258lvx 1,3,62259li 3,162260vperm 0,0,1,72261vxor 0,0,122262.long 0x10620549226322642265nop22662267.long 0x7C60279922682269vor 2,4,42270lvx 4,0,1022712272lvx 0,0,62273lvx 1,3,62274addi 3,3,162275vperm 2,2,4,52276vperm 0,0,1,722772278lvsr 5,0,52279vxor 4,4,42280vspltisb 11,-12281vperm 4,4,11,52282vsel 2,2,3,422832284vxor 0,0,82285vxor 2,2,02286lvx 0,3,62287addi 3,3,1622882289subi 11,4,12290mtctr 52291li 5,162292.Loop_xts_dec_steal:2293lbzu 0,1(11)2294stb 0,16(11)2295bdnz .Loop_xts_dec_steal22962297mtctr 92298b .Loop_xts_dec22992300.Lxts_dec_done:2301cmpldi 8,02302beq .Lxts_dec_ret23032304vsrab 11,8,92305vaddubm 8,8,82306vsldoi 11,11,11,152307vand 11,11,102308vxor 8,8,11230923102311.long 0x7D00479923122313.Lxts_dec_ret:2314or 12,12,122315li 3,02316blr2317.long 02318.byte 0,12,0x04,0,0x80,6,6,02319.long 02320.size aes_p8_xts_decrypt,.-aes_p8_xts_decrypt2321.align 52322_aesp8_xts_encrypt6x:2323stdu 1,-448(1)2324mflr 112325li 7,2072326li 3,2232327std 11,464(1)2328stvx 20,7,12329addi 7,7,322330stvx 21,3,12331addi 3,3,322332stvx 22,7,12333addi 7,7,322334stvx 23,3,12335addi 3,3,322336stvx 24,7,12337addi 7,7,322338stvx 25,3,12339addi 3,3,322340stvx 26,7,12341addi 7,7,322342stvx 27,3,12343addi 3,3,322344stvx 28,7,12345addi 7,7,322346stvx 29,3,12347addi 3,3,322348stvx 30,7,12349stvx 31,3,12350li 0,-12351stw 12,396(1)2352li 3,0x102353std 26,400(1)2354li 26,0x202355std 27,408(1)2356li 27,0x302357std 28,416(1)2358li 28,0x402359std 29,424(1)2360li 29,0x502361std 30,432(1)2362li 30,0x602363std 31,440(1)2364li 31,0x702365or 0,0,0236623672368xxlor 2, 32+10, 32+102369vsldoi 10,11,10,12370xxlor 1, 32+10, 32+10237123722373mr 31, 62374bl .Lconsts2375lxvw4x 0, 28, 62376mr 6, 312377li 31,0x7023782379subi 9,9,323802381lvx 23,0,62382lvx 30,3,62383addi 6,6,0x202384lvx 31,0,62385vperm 23,23,30,72386addi 7,1,64+152387mtctr 923882389.Load_xts_enc_key:2390vperm 24,30,31,72391lvx 30,3,62392addi 6,6,0x202393stvx 24,0,72394vperm 25,31,30,72395lvx 31,0,62396stvx 25,3,72397addi 7,7,0x202398bdnz .Load_xts_enc_key23992400lvx 26,3,62401vperm 24,30,31,72402lvx 27,26,62403stvx 24,0,72404vperm 25,31,26,72405lvx 28,27,62406stvx 25,3,72407addi 7,1,64+152408vperm 26,26,27,72409lvx 29,28,62410vperm 27,27,28,72411lvx 30,29,62412vperm 28,28,29,72413lvx 31,30,62414vperm 29,29,30,72415lvx 22,31,62416vperm 30,30,31,72417lvx 24,0,72418vperm 31,31,22,72419lvx 25,3,72420242124222423242424252426242724282429vperm 0,2,4,52430subi 10,10,312431vxor 17,8,232432vsrab 11,8,92433vaddubm 8,8,82434vand 11,11,102435vxor 7,0,172436xxlor 32+1, 0, 02437vpermxor 8, 8, 11, 124382439.long 0x7C2356992440vxor 18,8,232441vsrab 11,8,92442vaddubm 8,8,824432444vand 11,11,102445vxor 12,1,182446xxlor 32+2, 0, 02447vpermxor 8, 8, 11, 224482449.long 0x7C5A56992450andi. 31,5,152451vxor 19,8,232452vsrab 11,8,92453vaddubm 8,8,824542455vand 11,11,102456vxor 13,2,192457xxlor 32+3, 0, 02458vpermxor 8, 8, 11, 324592460.long 0x7C7B56992461sub 5,5,312462vxor 20,8,232463vsrab 11,8,92464vaddubm 8,8,824652466vand 11,11,102467vxor 14,3,202468xxlor 32+4, 0, 02469vpermxor 8, 8, 11, 424702471.long 0x7C9C56992472subi 5,5,0x602473vxor 21,8,232474vsrab 11,8,92475vaddubm 8,8,824762477vand 11,11,102478vxor 15,4,212479xxlor 32+5, 0, 02480vpermxor 8, 8, 11, 524812482.long 0x7CBD56992483addi 10,10,0x602484vxor 22,8,232485vsrab 11,8,92486vaddubm 8,8,824872488vand 11,11,102489vxor 16,5,222490xxlor 32+0, 0, 02491vpermxor 8, 8, 11, 024922493vxor 31,31,232494mtctr 92495b .Loop_xts_enc6x24962497.align 52498.Loop_xts_enc6x:2499.long 0x10E7C5082500.long 0x118CC5082501.long 0x11ADC5082502.long 0x11CEC5082503.long 0x11EFC5082504.long 0x1210C5082505lvx 24,26,72506addi 7,7,0x2025072508.long 0x10E7CD082509.long 0x118CCD082510.long 0x11ADCD082511.long 0x11CECD082512.long 0x11EFCD082513.long 0x1210CD082514lvx 25,3,72515bdnz .Loop_xts_enc6x25162517xxlor 32+10, 1, 125182519subic 5,5,962520vxor 0,17,312521.long 0x10E7C5082522.long 0x118CC5082523vsrab 11,8,92524vxor 17,8,232525vaddubm 8,8,82526.long 0x11ADC5082527.long 0x11CEC5082528.long 0x11EFC5082529.long 0x1210C50825302531subfe. 0,0,02532vand 11,11,102533.long 0x10E7CD082534.long 0x118CCD082535xxlor 32+1, 0, 02536vpermxor 8, 8, 11, 12537.long 0x11ADCD082538.long 0x11CECD082539vxor 1,18,312540vsrab 11,8,92541vxor 18,8,232542.long 0x11EFCD082543.long 0x1210CD0825442545and 0,0,52546vaddubm 8,8,82547.long 0x10E7D5082548.long 0x118CD5082549vand 11,11,102550.long 0x11ADD5082551.long 0x11CED5082552xxlor 32+2, 0, 02553vpermxor 8, 8, 11, 22554.long 0x11EFD5082555.long 0x1210D50825562557add 10,10,02558255925602561vxor 2,19,312562vsrab 11,8,92563vxor 19,8,232564vaddubm 8,8,82565.long 0x10E7DD082566.long 0x118CDD082567.long 0x11ADDD082568.long 0x11CEDD082569vand 11,11,102570.long 0x11EFDD082571.long 0x1210DD0825722573addi 7,1,64+152574xxlor 32+3, 0, 02575vpermxor 8, 8, 11, 32576.long 0x10E7E5082577.long 0x118CE5082578vxor 3,20,312579vsrab 11,8,92580vxor 20,8,232581.long 0x11ADE5082582.long 0x11CEE5082583vaddubm 8,8,82584.long 0x11EFE5082585.long 0x1210E5082586lvx 24,0,72587vand 11,11,1025882589.long 0x10E7ED082590.long 0x118CED082591xxlor 32+4, 0, 02592vpermxor 8, 8, 11, 42593.long 0x11ADED082594.long 0x11CEED082595vxor 4,21,312596vsrab 11,8,92597vxor 21,8,232598.long 0x11EFED082599.long 0x1210ED082600lvx 25,3,72601vaddubm 8,8,826022603.long 0x10E7F5082604.long 0x118CF5082605vand 11,11,102606.long 0x11ADF5082607.long 0x11CEF5082608xxlor 32+5, 0, 02609vpermxor 8, 8, 11, 52610.long 0x11EFF5082611.long 0x1210F5082612vxor 5,22,312613vsrab 11,8,92614vxor 22,8,2326152616.long 0x10E705092617.long 0x7C0056992618vaddubm 8,8,82619.long 0x118C0D092620.long 0x7C2356992621.long 0x11AD150926222623.long 0x7C5A56992624vand 11,11,102625.long 0x11CE1D0926262627.long 0x7C7B56992628.long 0x11EF250926292630.long 0x7C9C56992631xxlor 10, 32+0, 32+02632xxlor 32+0, 0, 02633vpermxor 8, 8, 11, 02634xxlor 32+0, 10, 102635.long 0x11702D09263626372638.long 0x7CBD56992639addi 10,10,0x60264026412642264326442645.long 0x7CE027992646vxor 7,0,1726472648.long 0x7D8327992649vxor 12,1,1826502651.long 0x7DBA27992652vxor 13,2,1926532654.long 0x7DDB27992655vxor 14,3,2026562657.long 0x7DFC27992658vxor 15,4,2126592660.long 0x7D7D27992661vxor 16,5,222662addi 4,4,0x6026632664mtctr 92665beq .Loop_xts_enc6x26662667xxlor 32+10, 2, 226682669addic. 5,5,0x602670beq .Lxts_enc6x_zero2671cmpwi 5,0x202672blt .Lxts_enc6x_one2673nop2674beq .Lxts_enc6x_two2675cmpwi 5,0x402676blt .Lxts_enc6x_three2677nop2678beq .Lxts_enc6x_four26792680.Lxts_enc6x_five:2681vxor 7,1,172682vxor 12,2,182683vxor 13,3,192684vxor 14,4,202685vxor 15,5,2126862687bl _aesp8_xts_enc5x268826892690vor 17,22,2226912692.long 0x7CE0279926932694.long 0x7D83279926952696.long 0x7DBA27992697vxor 11,15,2226982699.long 0x7DDB27992700.long 0x7DFC27992701addi 4,4,0x502702bne .Lxts_enc6x_steal2703b .Lxts_enc6x_done27042705.align 42706.Lxts_enc6x_four:2707vxor 7,2,172708vxor 12,3,182709vxor 13,4,192710vxor 14,5,202711vxor 15,15,1527122713bl _aesp8_xts_enc5x271427152716vor 17,21,2127172718.long 0x7CE0279927192720.long 0x7D8327992721vxor 11,14,2127222723.long 0x7DBA27992724.long 0x7DDB27992725addi 4,4,0x402726bne .Lxts_enc6x_steal2727b .Lxts_enc6x_done27282729.align 42730.Lxts_enc6x_three:2731vxor 7,3,172732vxor 12,4,182733vxor 13,5,192734vxor 14,14,142735vxor 15,15,1527362737bl _aesp8_xts_enc5x273827392740vor 17,20,2027412742.long 0x7CE027992743vxor 11,13,2027442745.long 0x7D8327992746.long 0x7DBA27992747addi 4,4,0x302748bne .Lxts_enc6x_steal2749b .Lxts_enc6x_done27502751.align 42752.Lxts_enc6x_two:2753vxor 7,4,172754vxor 12,5,182755vxor 13,13,132756vxor 14,14,142757vxor 15,15,1527582759bl _aesp8_xts_enc5x276027612762vor 17,19,192763vxor 11,12,1927642765.long 0x7CE027992766.long 0x7D8327992767addi 4,4,0x202768bne .Lxts_enc6x_steal2769b .Lxts_enc6x_done27702771.align 42772.Lxts_enc6x_one:2773vxor 7,5,172774nop2775.Loop_xts_enc1x:2776.long 0x10E7C5082777lvx 24,26,72778addi 7,7,0x2027792780.long 0x10E7CD082781lvx 25,3,72782bdnz .Loop_xts_enc1x27832784add 10,10,312785cmpwi 31,02786.long 0x10E7C50827872788subi 10,10,162789.long 0x10E7CD0827902791lvsr 5,0,312792.long 0x10E7D50827932794.long 0x7C0056992795.long 0x10E7DD0827962797addi 7,1,64+152798.long 0x10E7E5082799lvx 24,0,728002801.long 0x10E7ED082802lvx 25,3,72803vxor 17,17,31280428052806.long 0x10E7F50828072808vperm 0,0,0,52809.long 0x10E78D0928102811vor 17,18,182812vxor 11,7,1828132814.long 0x7CE027992815addi 4,4,0x102816bne .Lxts_enc6x_steal2817b .Lxts_enc6x_done28182819.align 42820.Lxts_enc6x_zero:2821cmpwi 31,02822beq .Lxts_enc6x_done28232824add 10,10,312825subi 10,10,162826.long 0x7C0056992827lvsr 5,0,3128282829vperm 0,0,0,52830vxor 11,11,172831.Lxts_enc6x_steal:2832vxor 0,0,172833vxor 7,7,72834vspltisb 12,-12835vperm 7,7,12,52836vsel 7,0,11,728372838subi 30,4,172839subi 4,4,162840mtctr 312841.Loop_xts_enc6x_steal:2842lbzu 0,1(30)2843stb 0,16(30)2844bdnz .Loop_xts_enc6x_steal28452846li 31,02847mtctr 92848b .Loop_xts_enc1x28492850.align 42851.Lxts_enc6x_done:2852cmpldi 8,02853beq .Lxts_enc6x_ret28542855vxor 8,17,2328562857.long 0x7D00479928582859.Lxts_enc6x_ret:2860mtlr 112861li 10,792862li 11,952863stvx 9,10,12864addi 10,10,322865stvx 9,11,12866addi 11,11,322867stvx 9,10,12868addi 10,10,322869stvx 9,11,12870addi 11,11,322871stvx 9,10,12872addi 10,10,322873stvx 9,11,12874addi 11,11,322875stvx 9,10,12876addi 10,10,322877stvx 9,11,12878addi 11,11,3228792880or 12,12,122881lvx 20,10,12882addi 10,10,322883lvx 21,11,12884addi 11,11,322885lvx 22,10,12886addi 10,10,322887lvx 23,11,12888addi 11,11,322889lvx 24,10,12890addi 10,10,322891lvx 25,11,12892addi 11,11,322893lvx 26,10,12894addi 10,10,322895lvx 27,11,12896addi 11,11,322897lvx 28,10,12898addi 10,10,322899lvx 29,11,12900addi 11,11,322901lvx 30,10,12902lvx 31,11,12903ld 26,400(1)2904ld 27,408(1)2905ld 28,416(1)2906ld 29,424(1)2907ld 30,432(1)2908ld 31,440(1)2909addi 1,1,4482910blr2911.long 02912.byte 0,12,0x04,1,0x80,6,6,02913.long 029142915.align 52916_aesp8_xts_enc5x:2917.long 0x10E7C5082918.long 0x118CC5082919.long 0x11ADC5082920.long 0x11CEC5082921.long 0x11EFC5082922lvx 24,26,72923addi 7,7,0x2029242925.long 0x10E7CD082926.long 0x118CCD082927.long 0x11ADCD082928.long 0x11CECD082929.long 0x11EFCD082930lvx 25,3,72931bdnz _aesp8_xts_enc5x29322933add 10,10,312934cmpwi 31,02935.long 0x10E7C5082936.long 0x118CC5082937.long 0x11ADC5082938.long 0x11CEC5082939.long 0x11EFC50829402941subi 10,10,162942.long 0x10E7CD082943.long 0x118CCD082944.long 0x11ADCD082945.long 0x11CECD082946.long 0x11EFCD082947vxor 17,17,3129482949.long 0x10E7D5082950lvsr 5,0,312951.long 0x118CD5082952.long 0x11ADD5082953.long 0x11CED5082954.long 0x11EFD5082955vxor 1,18,3129562957.long 0x10E7DD082958.long 0x7C0056992959.long 0x118CDD082960.long 0x11ADDD082961.long 0x11CEDD082962.long 0x11EFDD082963vxor 2,19,3129642965addi 7,1,64+152966.long 0x10E7E5082967.long 0x118CE5082968.long 0x11ADE5082969.long 0x11CEE5082970.long 0x11EFE5082971lvx 24,0,72972vxor 3,20,3129732974.long 0x10E7ED0829752976.long 0x118CED082977.long 0x11ADED082978.long 0x11CEED082979.long 0x11EFED082980lvx 25,3,72981vxor 4,21,3129822983.long 0x10E7F5082984vperm 0,0,0,52985.long 0x118CF5082986.long 0x11ADF5082987.long 0x11CEF5082988.long 0x11EFF50829892990.long 0x10E78D092991.long 0x118C0D092992.long 0x11AD15092993.long 0x11CE1D092994.long 0x11EF25092995blr2996.long 02997.byte 0,12,0x14,0,0,0,0,029982999.align 53000_aesp8_xts_decrypt6x:3001stdu 1,-448(1)3002mflr 113003li 7,2073004li 3,2233005std 11,464(1)3006stvx 20,7,13007addi 7,7,323008stvx 21,3,13009addi 3,3,323010stvx 22,7,13011addi 7,7,323012stvx 23,3,13013addi 3,3,323014stvx 24,7,13015addi 7,7,323016stvx 25,3,13017addi 3,3,323018stvx 26,7,13019addi 7,7,323020stvx 27,3,13021addi 3,3,323022stvx 28,7,13023addi 7,7,323024stvx 29,3,13025addi 3,3,323026stvx 30,7,13027stvx 31,3,13028li 0,-13029stw 12,396(1)3030li 3,0x103031std 26,400(1)3032li 26,0x203033std 27,408(1)3034li 27,0x303035std 28,416(1)3036li 28,0x403037std 29,424(1)3038li 29,0x503039std 30,432(1)3040li 30,0x603041std 31,440(1)3042li 31,0x703043or 0,0,0304430453046xxlor 2, 32+10, 32+103047vsldoi 10,11,10,13048xxlor 1, 32+10, 32+10304930503051mr 31, 63052bl .Lconsts3053lxvw4x 0, 28, 63054mr 6, 313055li 31,0x7030563057subi 9,9,330583059lvx 23,0,63060lvx 30,3,63061addi 6,6,0x203062lvx 31,0,63063vperm 23,23,30,73064addi 7,1,64+153065mtctr 930663067.Load_xts_dec_key:3068vperm 24,30,31,73069lvx 30,3,63070addi 6,6,0x203071stvx 24,0,73072vperm 25,31,30,73073lvx 31,0,63074stvx 25,3,73075addi 7,7,0x203076bdnz .Load_xts_dec_key30773078lvx 26,3,63079vperm 24,30,31,73080lvx 27,26,63081stvx 24,0,73082vperm 25,31,26,73083lvx 28,27,63084stvx 25,3,73085addi 7,1,64+153086vperm 26,26,27,73087lvx 29,28,63088vperm 27,27,28,73089lvx 30,29,63090vperm 28,28,29,73091lvx 31,30,63092vperm 29,29,30,73093lvx 22,31,63094vperm 30,30,31,73095lvx 24,0,73096vperm 31,31,22,73097lvx 25,3,730983099vperm 0,2,4,53100subi 10,10,313101vxor 17,8,233102vsrab 11,8,93103vaddubm 8,8,83104vand 11,11,103105vxor 7,0,173106xxlor 32+1, 0, 03107vpermxor 8, 8, 11, 131083109.long 0x7C2356993110vxor 18,8,233111vsrab 11,8,93112vaddubm 8,8,831133114vand 11,11,103115vxor 12,1,183116xxlor 32+2, 0, 03117vpermxor 8, 8, 11, 231183119.long 0x7C5A56993120andi. 31,5,153121vxor 19,8,233122vsrab 11,8,93123vaddubm 8,8,831243125vand 11,11,103126vxor 13,2,193127xxlor 32+3, 0, 03128vpermxor 8, 8, 11, 331293130.long 0x7C7B56993131sub 5,5,313132vxor 20,8,233133vsrab 11,8,93134vaddubm 8,8,831353136vand 11,11,103137vxor 14,3,203138xxlor 32+4, 0, 03139vpermxor 8, 8, 11, 431403141.long 0x7C9C56993142subi 5,5,0x603143vxor 21,8,233144vsrab 11,8,93145vaddubm 8,8,831463147vand 11,11,103148vxor 15,4,213149xxlor 32+5, 0, 03150vpermxor 8, 8, 11, 531513152.long 0x7CBD56993153addi 10,10,0x603154vxor 22,8,233155vsrab 11,8,93156vaddubm 8,8,831573158vand 11,11,103159vxor 16,5,223160xxlor 32+0, 0, 03161vpermxor 8, 8, 11, 031623163vxor 31,31,233164mtctr 93165b .Loop_xts_dec6x31663167.align 53168.Loop_xts_dec6x:3169.long 0x10E7C5483170.long 0x118CC5483171.long 0x11ADC5483172.long 0x11CEC5483173.long 0x11EFC5483174.long 0x1210C5483175lvx 24,26,73176addi 7,7,0x2031773178.long 0x10E7CD483179.long 0x118CCD483180.long 0x11ADCD483181.long 0x11CECD483182.long 0x11EFCD483183.long 0x1210CD483184lvx 25,3,73185bdnz .Loop_xts_dec6x31863187xxlor 32+10, 1, 131883189subic 5,5,963190vxor 0,17,313191.long 0x10E7C5483192.long 0x118CC5483193vsrab 11,8,93194vxor 17,8,233195vaddubm 8,8,83196.long 0x11ADC5483197.long 0x11CEC5483198.long 0x11EFC5483199.long 0x1210C54832003201subfe. 0,0,03202vand 11,11,103203.long 0x10E7CD483204.long 0x118CCD483205xxlor 32+1, 0, 03206vpermxor 8, 8, 11, 13207.long 0x11ADCD483208.long 0x11CECD483209vxor 1,18,313210vsrab 11,8,93211vxor 18,8,233212.long 0x11EFCD483213.long 0x1210CD4832143215and 0,0,53216vaddubm 8,8,83217.long 0x10E7D5483218.long 0x118CD5483219vand 11,11,103220.long 0x11ADD5483221.long 0x11CED5483222xxlor 32+2, 0, 03223vpermxor 8, 8, 11, 23224.long 0x11EFD5483225.long 0x1210D54832263227add 10,10,03228322932303231vxor 2,19,313232vsrab 11,8,93233vxor 19,8,233234vaddubm 8,8,83235.long 0x10E7DD483236.long 0x118CDD483237.long 0x11ADDD483238.long 0x11CEDD483239vand 11,11,103240.long 0x11EFDD483241.long 0x1210DD4832423243addi 7,1,64+153244xxlor 32+3, 0, 03245vpermxor 8, 8, 11, 33246.long 0x10E7E5483247.long 0x118CE5483248vxor 3,20,313249vsrab 11,8,93250vxor 20,8,233251.long 0x11ADE5483252.long 0x11CEE5483253vaddubm 8,8,83254.long 0x11EFE5483255.long 0x1210E5483256lvx 24,0,73257vand 11,11,1032583259.long 0x10E7ED483260.long 0x118CED483261xxlor 32+4, 0, 03262vpermxor 8, 8, 11, 43263.long 0x11ADED483264.long 0x11CEED483265vxor 4,21,313266vsrab 11,8,93267vxor 21,8,233268.long 0x11EFED483269.long 0x1210ED483270lvx 25,3,73271vaddubm 8,8,832723273.long 0x10E7F5483274.long 0x118CF5483275vand 11,11,103276.long 0x11ADF5483277.long 0x11CEF5483278xxlor 32+5, 0, 03279vpermxor 8, 8, 11, 53280.long 0x11EFF5483281.long 0x1210F5483282vxor 5,22,313283vsrab 11,8,93284vxor 22,8,2332853286.long 0x10E705493287.long 0x7C0056993288vaddubm 8,8,83289.long 0x118C0D493290.long 0x7C2356993291.long 0x11AD154932923293.long 0x7C5A56993294vand 11,11,103295.long 0x11CE1D4932963297.long 0x7C7B56993298.long 0x11EF254932993300.long 0x7C9C56993301xxlor 10, 32+0, 32+03302xxlor 32+0, 0, 03303vpermxor 8, 8, 11, 03304xxlor 32+0, 10, 103305.long 0x12102D4933063307.long 0x7CBD56993308addi 10,10,0x60330933103311331233133314.long 0x7CE027993315vxor 7,0,1733163317.long 0x7D8327993318vxor 12,1,1833193320.long 0x7DBA27993321vxor 13,2,1933223323.long 0x7DDB27993324vxor 14,3,2033253326.long 0x7DFC27993327vxor 15,4,213328.long 0x7E1D27993329vxor 16,5,223330addi 4,4,0x6033313332mtctr 93333beq .Loop_xts_dec6x33343335xxlor 32+10, 2, 233363337addic. 5,5,0x603338beq .Lxts_dec6x_zero3339cmpwi 5,0x203340blt .Lxts_dec6x_one3341nop3342beq .Lxts_dec6x_two3343cmpwi 5,0x403344blt .Lxts_dec6x_three3345nop3346beq .Lxts_dec6x_four33473348.Lxts_dec6x_five:3349vxor 7,1,173350vxor 12,2,183351vxor 13,3,193352vxor 14,4,203353vxor 15,5,2133543355bl _aesp8_xts_dec5x335633573358vor 17,22,223359vxor 18,8,2333603361.long 0x7CE027993362vxor 7,0,1833633364.long 0x7D83279933653366.long 0x7DBA279933673368.long 0x7DDB27993369.long 0x7DFC27993370addi 4,4,0x503371bne .Lxts_dec6x_steal3372b .Lxts_dec6x_done33733374.align 43375.Lxts_dec6x_four:3376vxor 7,2,173377vxor 12,3,183378vxor 13,4,193379vxor 14,5,203380vxor 15,15,1533813382bl _aesp8_xts_dec5x338333843385vor 17,21,213386vor 18,22,2233873388.long 0x7CE027993389vxor 7,0,2233903391.long 0x7D83279933923393.long 0x7DBA27993394.long 0x7DDB27993395addi 4,4,0x403396bne .Lxts_dec6x_steal3397b .Lxts_dec6x_done33983399.align 43400.Lxts_dec6x_three:3401vxor 7,3,173402vxor 12,4,183403vxor 13,5,193404vxor 14,14,143405vxor 15,15,1534063407bl _aesp8_xts_dec5x340834093410vor 17,20,203411vor 18,21,2134123413.long 0x7CE027993414vxor 7,0,2134153416.long 0x7D8327993417.long 0x7DBA27993418addi 4,4,0x303419bne .Lxts_dec6x_steal3420b .Lxts_dec6x_done34213422.align 43423.Lxts_dec6x_two:3424vxor 7,4,173425vxor 12,5,183426vxor 13,13,133427vxor 14,14,143428vxor 15,15,1534293430bl _aesp8_xts_dec5x343134323433vor 17,19,193434vor 18,20,2034353436.long 0x7CE027993437vxor 7,0,203438.long 0x7D8327993439addi 4,4,0x203440bne .Lxts_dec6x_steal3441b .Lxts_dec6x_done34423443.align 43444.Lxts_dec6x_one:3445vxor 7,5,173446nop3447.Loop_xts_dec1x:3448.long 0x10E7C5483449lvx 24,26,73450addi 7,7,0x2034513452.long 0x10E7CD483453lvx 25,3,73454bdnz .Loop_xts_dec1x34553456subi 0,31,13457.long 0x10E7C54834583459andi. 0,0,163460cmpwi 31,03461.long 0x10E7CD4834623463sub 10,10,03464.long 0x10E7D54834653466.long 0x7C0056993467.long 0x10E7DD4834683469addi 7,1,64+153470.long 0x10E7E5483471lvx 24,0,734723473.long 0x10E7ED483474lvx 25,3,73475vxor 17,17,31347634773478.long 0x10E7F54834793480mtctr 93481.long 0x10E78D4934823483vor 17,18,183484vor 18,19,1934853486.long 0x7CE027993487addi 4,4,0x103488vxor 7,0,193489bne .Lxts_dec6x_steal3490b .Lxts_dec6x_done34913492.align 43493.Lxts_dec6x_zero:3494cmpwi 31,03495beq .Lxts_dec6x_done34963497.long 0x7C00569934983499vxor 7,0,183500.Lxts_dec6x_steal:3501.long 0x10E7C5483502lvx 24,26,73503addi 7,7,0x2035043505.long 0x10E7CD483506lvx 25,3,73507bdnz .Lxts_dec6x_steal35083509add 10,10,313510.long 0x10E7C54835113512cmpwi 31,03513.long 0x10E7CD4835143515.long 0x7C0056993516.long 0x10E7D54835173518lvsr 5,0,313519.long 0x10E7DD4835203521addi 7,1,64+153522.long 0x10E7E5483523lvx 24,0,735243525.long 0x10E7ED483526lvx 25,3,73527vxor 18,18,31352835293530.long 0x10E7F54835313532vperm 0,0,0,53533.long 0x116795493534353535363537.long 0x7D60279935383539vxor 7,7,73540vspltisb 12,-13541vperm 7,7,12,53542vsel 7,0,11,73543vxor 7,7,1735443545subi 30,4,13546mtctr 313547.Loop_xts_dec6x_steal:3548lbzu 0,1(30)3549stb 0,16(30)3550bdnz .Loop_xts_dec6x_steal35513552li 31,03553mtctr 93554b .Loop_xts_dec1x35553556.align 43557.Lxts_dec6x_done:3558cmpldi 8,03559beq .Lxts_dec6x_ret35603561vxor 8,17,2335623563.long 0x7D00479935643565.Lxts_dec6x_ret:3566mtlr 113567li 10,793568li 11,953569stvx 9,10,13570addi 10,10,323571stvx 9,11,13572addi 11,11,323573stvx 9,10,13574addi 10,10,323575stvx 9,11,13576addi 11,11,323577stvx 9,10,13578addi 10,10,323579stvx 9,11,13580addi 11,11,323581stvx 9,10,13582addi 10,10,323583stvx 9,11,13584addi 11,11,3235853586or 12,12,123587lvx 20,10,13588addi 10,10,323589lvx 21,11,13590addi 11,11,323591lvx 22,10,13592addi 10,10,323593lvx 23,11,13594addi 11,11,323595lvx 24,10,13596addi 10,10,323597lvx 25,11,13598addi 11,11,323599lvx 26,10,13600addi 10,10,323601lvx 27,11,13602addi 11,11,323603lvx 28,10,13604addi 10,10,323605lvx 29,11,13606addi 11,11,323607lvx 30,10,13608lvx 31,11,13609ld 26,400(1)3610ld 27,408(1)3611ld 28,416(1)3612ld 29,424(1)3613ld 30,432(1)3614ld 31,440(1)3615addi 1,1,4483616blr3617.long 03618.byte 0,12,0x04,1,0x80,6,6,03619.long 036203621.align 53622_aesp8_xts_dec5x:3623.long 0x10E7C5483624.long 0x118CC5483625.long 0x11ADC5483626.long 0x11CEC5483627.long 0x11EFC5483628lvx 24,26,73629addi 7,7,0x2036303631.long 0x10E7CD483632.long 0x118CCD483633.long 0x11ADCD483634.long 0x11CECD483635.long 0x11EFCD483636lvx 25,3,73637bdnz _aesp8_xts_dec5x36383639subi 0,31,13640.long 0x10E7C5483641.long 0x118CC5483642.long 0x11ADC5483643.long 0x11CEC5483644.long 0x11EFC54836453646andi. 0,0,163647cmpwi 31,03648.long 0x10E7CD483649.long 0x118CCD483650.long 0x11ADCD483651.long 0x11CECD483652.long 0x11EFCD483653vxor 17,17,3136543655sub 10,10,03656.long 0x10E7D5483657.long 0x118CD5483658.long 0x11ADD5483659.long 0x11CED5483660.long 0x11EFD5483661vxor 1,18,3136623663.long 0x10E7DD483664.long 0x7C0056993665.long 0x118CDD483666.long 0x11ADDD483667.long 0x11CEDD483668.long 0x11EFDD483669vxor 2,19,3136703671addi 7,1,64+153672.long 0x10E7E5483673.long 0x118CE5483674.long 0x11ADE5483675.long 0x11CEE5483676.long 0x11EFE5483677lvx 24,0,73678vxor 3,20,3136793680.long 0x10E7ED4836813682.long 0x118CED483683.long 0x11ADED483684.long 0x11CEED483685.long 0x11EFED483686lvx 25,3,73687vxor 4,21,3136883689.long 0x10E7F5483690.long 0x118CF5483691.long 0x11ADF5483692.long 0x11CEF5483693.long 0x11EFF54836943695.long 0x10E78D493696.long 0x118C0D493697.long 0x11AD15493698.long 0x11CE1D493699.long 0x11EF25493700mtctr 93701blr3702.long 03703.byte 0,12,0x14,0,0,0,0,0370437053706