Path: blob/main/sys/crypto/openssl/powerpc/chacha-ppc.S
39482 views
/* Do not modify. This file is auto-generated from chacha-ppc.pl. */1.machine "any"2.text34.globl ChaCha20_ctr32_int5.type ChaCha20_ctr32_int,@function6.align 57ChaCha20_ctr32_int:8__ChaCha20_ctr32_int:9cmplwi 5,010.long 0x4DC200201112stwu 1,-160(1)13mflr 01415stw 14,88(1)16stw 15,92(1)17stw 16,96(1)18stw 17,100(1)19stw 18,104(1)20stw 19,108(1)21stw 20,112(1)22stw 21,116(1)23stw 22,120(1)24stw 23,124(1)25stw 24,128(1)26stw 25,132(1)27stw 26,136(1)28stw 27,140(1)29stw 28,144(1)30stw 29,148(1)31stw 30,152(1)32stw 31,156(1)33stw 0,164(1)3435lwz 11,0(7)36lwz 12,4(7)37lwz 14,8(7)38lwz 15,12(7)3940bl __ChaCha20_1x4142lwz 0,164(1)43lwz 14,88(1)44lwz 15,92(1)45lwz 16,96(1)46lwz 17,100(1)47lwz 18,104(1)48lwz 19,108(1)49lwz 20,112(1)50lwz 21,116(1)51lwz 22,120(1)52lwz 23,124(1)53lwz 24,128(1)54lwz 25,132(1)55lwz 26,136(1)56lwz 27,140(1)57lwz 28,144(1)58lwz 29,148(1)59lwz 30,152(1)60lwz 31,156(1)61mtlr 062addi 1,1,16063blr64.long 065.byte 0,12,4,1,0x80,18,5,066.long 067.size ChaCha20_ctr32_int,.-ChaCha20_ctr32_int6869.align 570__ChaCha20_1x:71.Loop_outer:72lis 16,0x617073lis 17,0x332074lis 18,0x796275lis 19,0x6b2076ori 16,16,0x786577ori 17,17,0x646e78ori 18,18,0x2d3279ori 19,19,0x65748081li 0,1082lwz 20,0(6)83lwz 21,4(6)84lwz 22,8(6)85lwz 23,12(6)86lwz 24,16(6)87mr 28,1188lwz 25,20(6)89mr 29,1290lwz 26,24(6)91mr 30,1492lwz 27,28(6)93mr 31,159495mr 7,2096mr 8,2197mr 9,2298mr 10,2399100mtctr 0101.Loop:102add 16,16,20103add 17,17,21104add 18,18,22105add 19,19,23106xor 28,28,16107xor 29,29,17108xor 30,30,18109xor 31,31,19110rotlwi 28,28,16111rotlwi 29,29,16112rotlwi 30,30,16113rotlwi 31,31,16114add 24,24,28115add 25,25,29116add 26,26,30117add 27,27,31118xor 20,20,24119xor 21,21,25120xor 22,22,26121xor 23,23,27122rotlwi 20,20,12123rotlwi 21,21,12124rotlwi 22,22,12125rotlwi 23,23,12126add 16,16,20127add 17,17,21128add 18,18,22129add 19,19,23130xor 28,28,16131xor 29,29,17132xor 30,30,18133xor 31,31,19134rotlwi 28,28,8135rotlwi 29,29,8136rotlwi 30,30,8137rotlwi 31,31,8138add 24,24,28139add 25,25,29140add 26,26,30141add 27,27,31142xor 20,20,24143xor 21,21,25144xor 22,22,26145xor 23,23,27146rotlwi 20,20,7147rotlwi 21,21,7148rotlwi 22,22,7149rotlwi 23,23,7150add 16,16,21151add 17,17,22152add 18,18,23153add 19,19,20154xor 31,31,16155xor 28,28,17156xor 29,29,18157xor 30,30,19158rotlwi 31,31,16159rotlwi 28,28,16160rotlwi 29,29,16161rotlwi 30,30,16162add 26,26,31163add 27,27,28164add 24,24,29165add 25,25,30166xor 21,21,26167xor 22,22,27168xor 23,23,24169xor 20,20,25170rotlwi 21,21,12171rotlwi 22,22,12172rotlwi 23,23,12173rotlwi 20,20,12174add 16,16,21175add 17,17,22176add 18,18,23177add 19,19,20178xor 31,31,16179xor 28,28,17180xor 29,29,18181xor 30,30,19182rotlwi 31,31,8183rotlwi 28,28,8184rotlwi 29,29,8185rotlwi 30,30,8186add 26,26,31187add 27,27,28188add 24,24,29189add 25,25,30190xor 21,21,26191xor 22,22,27192xor 23,23,24193xor 20,20,25194rotlwi 21,21,7195rotlwi 22,22,7196rotlwi 23,23,7197rotlwi 20,20,7198bdnz .Loop199200subic 5,5,64201addi 16,16,0x7865202addi 17,17,0x646e203addi 18,18,0x2d32204addi 19,19,0x6574205addis 16,16,0x6170206addis 17,17,0x3320207addis 18,18,0x7962208addis 19,19,0x6b20209210subfe. 0,0,0211add 20,20,7212lwz 7,16(6)213add 21,21,8214lwz 8,20(6)215add 22,22,9216lwz 9,24(6)217add 23,23,10218lwz 10,28(6)219add 24,24,7220add 25,25,8221add 26,26,9222add 27,27,10223224add 28,28,11225add 29,29,12226add 30,30,14227add 31,31,15228addi 11,11,1229mr 7,16230rotlwi 16,16,8231rlwimi 16,7,24,0,7232rlwimi 16,7,24,16,23233mr 8,17234rotlwi 17,17,8235rlwimi 17,8,24,0,7236rlwimi 17,8,24,16,23237mr 9,18238rotlwi 18,18,8239rlwimi 18,9,24,0,7240rlwimi 18,9,24,16,23241mr 10,19242rotlwi 19,19,8243rlwimi 19,10,24,0,7244rlwimi 19,10,24,16,23245mr 7,20246rotlwi 20,20,8247rlwimi 20,7,24,0,7248rlwimi 20,7,24,16,23249mr 8,21250rotlwi 21,21,8251rlwimi 21,8,24,0,7252rlwimi 21,8,24,16,23253mr 9,22254rotlwi 22,22,8255rlwimi 22,9,24,0,7256rlwimi 22,9,24,16,23257mr 10,23258rotlwi 23,23,8259rlwimi 23,10,24,0,7260rlwimi 23,10,24,16,23261mr 7,24262rotlwi 24,24,8263rlwimi 24,7,24,0,7264rlwimi 24,7,24,16,23265mr 8,25266rotlwi 25,25,8267rlwimi 25,8,24,0,7268rlwimi 25,8,24,16,23269mr 9,26270rotlwi 26,26,8271rlwimi 26,9,24,0,7272rlwimi 26,9,24,16,23273mr 10,27274rotlwi 27,27,8275rlwimi 27,10,24,0,7276rlwimi 27,10,24,16,23277mr 7,28278rotlwi 28,28,8279rlwimi 28,7,24,0,7280rlwimi 28,7,24,16,23281mr 8,29282rotlwi 29,29,8283rlwimi 29,8,24,0,7284rlwimi 29,8,24,16,23285mr 9,30286rotlwi 30,30,8287rlwimi 30,9,24,0,7288rlwimi 30,9,24,16,23289mr 10,31290rotlwi 31,31,8291rlwimi 31,10,24,0,7292rlwimi 31,10,24,16,23293bne .Ltail294295lwz 7,0(4)296lwz 8,4(4)297cmplwi 5,0298lwz 9,8(4)299lwz 10,12(4)300xor 16,16,7301lwz 7,16(4)302xor 17,17,8303lwz 8,20(4)304xor 18,18,9305lwz 9,24(4)306xor 19,19,10307lwz 10,28(4)308xor 20,20,7309lwz 7,32(4)310xor 21,21,8311lwz 8,36(4)312xor 22,22,9313lwz 9,40(4)314xor 23,23,10315lwz 10,44(4)316xor 24,24,7317lwz 7,48(4)318xor 25,25,8319lwz 8,52(4)320xor 26,26,9321lwz 9,56(4)322xor 27,27,10323lwz 10,60(4)324xor 28,28,7325stw 16,0(3)326xor 29,29,8327stw 17,4(3)328xor 30,30,9329stw 18,8(3)330xor 31,31,10331stw 19,12(3)332stw 20,16(3)333stw 21,20(3)334stw 22,24(3)335stw 23,28(3)336stw 24,32(3)337stw 25,36(3)338stw 26,40(3)339stw 27,44(3)340stw 28,48(3)341stw 29,52(3)342stw 30,56(3)343addi 4,4,64344stw 31,60(3)345addi 3,3,64346347bne .Loop_outer348349blr350351.align 4352.Ltail:353addi 5,5,64354subi 4,4,1355subi 3,3,1356addi 7,1,24-1357mtctr 5358359stw 16,24(1)360stw 17,28(1)361stw 18,32(1)362stw 19,36(1)363stw 20,40(1)364stw 21,44(1)365stw 22,48(1)366stw 23,52(1)367stw 24,56(1)368stw 25,60(1)369stw 26,64(1)370stw 27,68(1)371stw 28,72(1)372stw 29,76(1)373stw 30,80(1)374stw 31,84(1)375376.Loop_tail:377lbzu 11,1(4)378lbzu 16,1(7)379xor 12,11,16380stbu 12,1(3)381bdnz .Loop_tail382383stw 1,24(1)384stw 1,28(1)385stw 1,32(1)386stw 1,36(1)387stw 1,40(1)388stw 1,44(1)389stw 1,48(1)390stw 1,52(1)391stw 1,56(1)392stw 1,60(1)393stw 1,64(1)394stw 1,68(1)395stw 1,72(1)396stw 1,76(1)397stw 1,80(1)398stw 1,84(1)399400blr401.long 0402.byte 0,12,0x14,0,0,0,0,0403404.globl ChaCha20_ctr32_vmx405.type ChaCha20_ctr32_vmx,@function406.align 5407ChaCha20_ctr32_vmx:408cmplwi 5,256409blt __ChaCha20_ctr32_int410411stwu 1,-320(1)412mflr 0413li 10,103414li 11,119415mfspr 12,256416stvx 23,10,1417addi 10,10,32418stvx 24,11,1419addi 11,11,32420stvx 25,10,1421addi 10,10,32422stvx 26,11,1423addi 11,11,32424stvx 27,10,1425addi 10,10,32426stvx 28,11,1427addi 11,11,32428stvx 29,10,1429addi 10,10,32430stvx 30,11,1431stvx 31,10,1432stw 12,244(1)433stw 14,248(1)434stw 15,252(1)435stw 16,256(1)436stw 17,260(1)437stw 18,264(1)438stw 19,268(1)439stw 20,272(1)440stw 21,276(1)441stw 22,280(1)442stw 23,284(1)443stw 24,288(1)444stw 25,292(1)445stw 26,296(1)446stw 27,300(1)447stw 28,304(1)448stw 29,308(1)449stw 30,312(1)450stw 31,316(1)451li 12,-4096+511452stw 0, 324(1)453mtspr 256,12454455bl .Lconsts456li 16,16457li 17,32458li 18,48459li 19,64460li 20,31461li 21,15462463lvx 13,0,6464lvsl 29,0,6465lvx 14,16,6466lvx 27,20,6467468lvx 15,0,7469lvsl 30,0,7470lvx 28,21,7471472lvx 12,0,12473lvx 17,16,12474lvx 18,17,12475lvx 19,18,12476lvx 23,19,12477478vperm 13,13,14,29479vperm 14,14,27,29480vperm 15,15,28,30481482lwz 11,0(7)483lwz 12,4(7)484vadduwm 15,15,17485lwz 14,8(7)486vadduwm 16,15,17487lwz 15,12(7)488vadduwm 17,16,17489490vxor 29,29,29491vspltisw 26,-1492lvsl 24,0,4493lvsr 25,0,3494vperm 26,29,26,25495496lvsl 29,0,16497vspltisb 30,3498vxor 29,29,30499vxor 25,25,30500vperm 24,24,24,29501502li 0,10503b .Loop_outer_vmx504505.align 4506.Loop_outer_vmx:507lis 16,0x6170508lis 17,0x3320509vor 0,12,12510lis 18,0x7962511lis 19,0x6b20512vor 4,12,12513ori 16,16,0x7865514ori 17,17,0x646e515vor 8,12,12516ori 18,18,0x2d32517ori 19,19,0x6574518vor 1,13,13519520lwz 20,0(6)521vor 5,13,13522lwz 21,4(6)523vor 9,13,13524lwz 22,8(6)525vor 2,14,14526lwz 23,12(6)527vor 6,14,14528lwz 24,16(6)529vor 10,14,14530mr 28,11531lwz 25,20(6)532vor 3,15,15533mr 29,12534lwz 26,24(6)535vor 7,16,16536mr 30,14537lwz 27,28(6)538vor 11,17,17539mr 31,15540541mr 7,20542mr 8,21543mr 9,22544mr 10,23545546vspltisw 27,12547vspltisw 28,7548549mtctr 0550nop551.Loop_vmx:552vadduwm 0,0,1553vadduwm 4,4,5554vadduwm 8,8,9555add 16,16,20556add 17,17,21557add 18,18,22558vxor 3,3,0559vxor 7,7,4560vxor 11,11,8561add 19,19,23562xor 28,28,16563xor 29,29,17564vperm 3,3,3,19565vperm 7,7,7,19566vperm 11,11,11,19567xor 30,30,18568xor 31,31,19569rotlwi 28,28,16570vadduwm 2,2,3571vadduwm 6,6,7572vadduwm 10,10,11573rotlwi 29,29,16574rotlwi 30,30,16575rotlwi 31,31,16576vxor 1,1,2577vxor 5,5,6578vxor 9,9,10579add 24,24,28580add 25,25,29581add 26,26,30582vrlw 1,1,27583vrlw 5,5,27584vrlw 9,9,27585add 27,27,31586xor 20,20,24587xor 21,21,25588vadduwm 0,0,1589vadduwm 4,4,5590vadduwm 8,8,9591xor 22,22,26592xor 23,23,27593rotlwi 20,20,12594vxor 3,3,0595vxor 7,7,4596vxor 11,11,8597rotlwi 21,21,12598rotlwi 22,22,12599rotlwi 23,23,12600vperm 3,3,3,23601vperm 7,7,7,23602vperm 11,11,11,23603add 16,16,20604add 17,17,21605add 18,18,22606vadduwm 2,2,3607vadduwm 6,6,7608vadduwm 10,10,11609add 19,19,23610xor 28,28,16611xor 29,29,17612vxor 1,1,2613vxor 5,5,6614vxor 9,9,10615xor 30,30,18616xor 31,31,19617rotlwi 28,28,8618vrlw 1,1,28619vrlw 5,5,28620vrlw 9,9,28621rotlwi 29,29,8622rotlwi 30,30,8623rotlwi 31,31,8624vsldoi 2,2,2, 16-8625vsldoi 6,6,6, 16-8626vsldoi 10,10,10, 16-8627add 24,24,28628add 25,25,29629add 26,26,30630vsldoi 1,1,1, 16-12631vsldoi 5,5,5, 16-12632vsldoi 9,9,9, 16-12633add 27,27,31634xor 20,20,24635xor 21,21,25636vsldoi 3,3,3, 16-4637vsldoi 7,7,7, 16-4638vsldoi 11,11,11, 16-4639xor 22,22,26640xor 23,23,27641rotlwi 20,20,7642rotlwi 21,21,7643rotlwi 22,22,7644rotlwi 23,23,7645vadduwm 0,0,1646vadduwm 4,4,5647vadduwm 8,8,9648add 16,16,21649add 17,17,22650add 18,18,23651vxor 3,3,0652vxor 7,7,4653vxor 11,11,8654add 19,19,20655xor 31,31,16656xor 28,28,17657vperm 3,3,3,19658vperm 7,7,7,19659vperm 11,11,11,19660xor 29,29,18661xor 30,30,19662rotlwi 31,31,16663vadduwm 2,2,3664vadduwm 6,6,7665vadduwm 10,10,11666rotlwi 28,28,16667rotlwi 29,29,16668rotlwi 30,30,16669vxor 1,1,2670vxor 5,5,6671vxor 9,9,10672add 26,26,31673add 27,27,28674add 24,24,29675vrlw 1,1,27676vrlw 5,5,27677vrlw 9,9,27678add 25,25,30679xor 21,21,26680xor 22,22,27681vadduwm 0,0,1682vadduwm 4,4,5683vadduwm 8,8,9684xor 23,23,24685xor 20,20,25686rotlwi 21,21,12687vxor 3,3,0688vxor 7,7,4689vxor 11,11,8690rotlwi 22,22,12691rotlwi 23,23,12692rotlwi 20,20,12693vperm 3,3,3,23694vperm 7,7,7,23695vperm 11,11,11,23696add 16,16,21697add 17,17,22698add 18,18,23699vadduwm 2,2,3700vadduwm 6,6,7701vadduwm 10,10,11702add 19,19,20703xor 31,31,16704xor 28,28,17705vxor 1,1,2706vxor 5,5,6707vxor 9,9,10708xor 29,29,18709xor 30,30,19710rotlwi 31,31,8711vrlw 1,1,28712vrlw 5,5,28713vrlw 9,9,28714rotlwi 28,28,8715rotlwi 29,29,8716rotlwi 30,30,8717vsldoi 2,2,2, 16-8718vsldoi 6,6,6, 16-8719vsldoi 10,10,10, 16-8720add 26,26,31721add 27,27,28722add 24,24,29723vsldoi 1,1,1, 16-4724vsldoi 5,5,5, 16-4725vsldoi 9,9,9, 16-4726add 25,25,30727xor 21,21,26728xor 22,22,27729vsldoi 3,3,3, 16-12730vsldoi 7,7,7, 16-12731vsldoi 11,11,11, 16-12732xor 23,23,24733xor 20,20,25734rotlwi 21,21,7735rotlwi 22,22,7736rotlwi 23,23,7737rotlwi 20,20,7738bdnz .Loop_vmx739740subi 5,5,256741addi 16,16,0x7865742addi 17,17,0x646e743addi 18,18,0x2d32744addi 19,19,0x6574745addis 16,16,0x6170746addis 17,17,0x3320747addis 18,18,0x7962748addis 19,19,0x6b20749add 20,20,7750lwz 7,16(6)751add 21,21,8752lwz 8,20(6)753add 22,22,9754lwz 9,24(6)755add 23,23,10756lwz 10,28(6)757add 24,24,7758add 25,25,8759add 26,26,9760add 27,27,10761add 28,28,11762add 29,29,12763add 30,30,14764add 31,31,15765766vadduwm 0,0,12767vadduwm 4,4,12768vadduwm 8,8,12769vadduwm 1,1,13770vadduwm 5,5,13771vadduwm 9,9,13772vadduwm 2,2,14773vadduwm 6,6,14774vadduwm 10,10,14775vadduwm 3,3,15776vadduwm 7,7,16777vadduwm 11,11,17778779addi 11,11,4780vadduwm 15,15,18781vadduwm 16,16,18782vadduwm 17,17,18783784mr 7,16785rotlwi 16,16,8786rlwimi 16,7,24,0,7787rlwimi 16,7,24,16,23788mr 8,17789rotlwi 17,17,8790rlwimi 17,8,24,0,7791rlwimi 17,8,24,16,23792mr 9,18793rotlwi 18,18,8794rlwimi 18,9,24,0,7795rlwimi 18,9,24,16,23796mr 10,19797rotlwi 19,19,8798rlwimi 19,10,24,0,7799rlwimi 19,10,24,16,23800mr 7,20801rotlwi 20,20,8802rlwimi 20,7,24,0,7803rlwimi 20,7,24,16,23804mr 8,21805rotlwi 21,21,8806rlwimi 21,8,24,0,7807rlwimi 21,8,24,16,23808mr 9,22809rotlwi 22,22,8810rlwimi 22,9,24,0,7811rlwimi 22,9,24,16,23812mr 10,23813rotlwi 23,23,8814rlwimi 23,10,24,0,7815rlwimi 23,10,24,16,23816mr 7,24817rotlwi 24,24,8818rlwimi 24,7,24,0,7819rlwimi 24,7,24,16,23820mr 8,25821rotlwi 25,25,8822rlwimi 25,8,24,0,7823rlwimi 25,8,24,16,23824mr 9,26825rotlwi 26,26,8826rlwimi 26,9,24,0,7827rlwimi 26,9,24,16,23828mr 10,27829rotlwi 27,27,8830rlwimi 27,10,24,0,7831rlwimi 27,10,24,16,23832mr 7,28833rotlwi 28,28,8834rlwimi 28,7,24,0,7835rlwimi 28,7,24,16,23836mr 8,29837rotlwi 29,29,8838rlwimi 29,8,24,0,7839rlwimi 29,8,24,16,23840mr 9,30841rotlwi 30,30,8842rlwimi 30,9,24,0,7843rlwimi 30,9,24,16,23844mr 10,31845rotlwi 31,31,8846rlwimi 31,10,24,0,7847rlwimi 31,10,24,16,23848lwz 7,0(4)849lwz 8,4(4)850lwz 9,8(4)851lwz 10,12(4)852xor 16,16,7853lwz 7,16(4)854xor 17,17,8855lwz 8,20(4)856xor 18,18,9857lwz 9,24(4)858xor 19,19,10859lwz 10,28(4)860xor 20,20,7861lwz 7,32(4)862xor 21,21,8863lwz 8,36(4)864xor 22,22,9865lwz 9,40(4)866xor 23,23,10867lwz 10,44(4)868xor 24,24,7869lwz 7,48(4)870xor 25,25,8871lwz 8,52(4)872xor 26,26,9873lwz 9,56(4)874xor 27,27,10875lwz 10,60(4)876xor 28,28,7877stw 16,0(3)878xor 29,29,8879stw 17,4(3)880xor 30,30,9881stw 18,8(3)882xor 31,31,10883stw 19,12(3)884addi 4,4,64885stw 20,16(3)886li 7,16887stw 21,20(3)888li 8,32889stw 22,24(3)890li 9,48891stw 23,28(3)892li 10,64893stw 24,32(3)894stw 25,36(3)895stw 26,40(3)896stw 27,44(3)897stw 28,48(3)898stw 29,52(3)899stw 30,56(3)900stw 31,60(3)901addi 3,3,64902903lvx 27,0,4904lvx 28,7,4905lvx 29,8,4906lvx 30,9,4907lvx 31,10,4908addi 4,4,64909910vperm 27,27,28,24911vperm 28,28,29,24912vperm 29,29,30,24913vperm 30,30,31,24914vxor 0,0,27915vxor 1,1,28916lvx 28,7,4917vxor 2,2,29918lvx 29,8,4919vxor 3,3,30920lvx 30,9,4921lvx 27,10,4922addi 4,4,64923li 10,63924vperm 0,0,0,25925vperm 1,1,1,25926vperm 2,2,2,25927vperm 3,3,3,25928929vperm 31,31,28,24930vperm 28,28,29,24931vperm 29,29,30,24932vperm 30,30,27,24933vxor 4,4,31934vxor 5,5,28935lvx 28,7,4936vxor 6,6,29937lvx 29,8,4938vxor 7,7,30939lvx 30,9,4940lvx 31,10,4941addi 4,4,64942vperm 4,4,4,25943vperm 5,5,5,25944vperm 6,6,6,25945vperm 7,7,7,25946947vperm 27,27,28,24948vperm 28,28,29,24949vperm 29,29,30,24950vperm 30,30,31,24951vxor 8,8,27952vxor 9,9,28953vxor 10,10,29954vxor 11,11,30955vperm 8,8,8,25956vperm 9,9,9,25957vperm 10,10,10,25958vperm 11,11,11,25959960andi. 17,3,15961mr 16,3962963vsel 27,0,1,26964vsel 28,1,2,26965vsel 29,2,3,26966vsel 30,3,4,26967vsel 1,4,5,26968vsel 2,5,6,26969vsel 3,6,7,26970vsel 4,7,8,26971vsel 5,8,9,26972vsel 6,9,10,26973vsel 7,10,11,26974975976stvx 27,7,3977stvx 28,8,3978stvx 29,9,3979addi 3,3,64980stvx 30,0,3981stvx 1,7,3982stvx 2,8,3983stvx 3,9,3984addi 3,3,64985stvx 4,0,3986stvx 5,7,3987stvx 6,8,3988stvx 7,9,3989addi 3,3,64990991beq .Laligned_vmx992993sub 18,3,17994li 19,0995.Lunaligned_tail_vmx:996stvebx 11,19,18997addi 19,19,1998cmpw 19,17999bne .Lunaligned_tail_vmx10001001sub 18,16,171002.Lunaligned_head_vmx:1003stvebx 0,17,181004cmpwi 17,151005addi 17,17,11006bne .Lunaligned_head_vmx10071008cmplwi 5,2551009bgt .Loop_outer_vmx10101011b .Ldone_vmx10121013.align 41014.Laligned_vmx:1015stvx 0,0,1610161017cmplwi 5,2551018bgt .Loop_outer_vmx1019nop10201021.Ldone_vmx:1022cmplwi 5,01023bnel __ChaCha20_1x10241025lwz 12,244(1)1026li 10,1031027li 11,1191028mtspr 256,121029lvx 23,10,11030addi 10,10,321031lvx 24,11,11032addi 11,11,321033lvx 25,10,11034addi 10,10,321035lvx 26,11,11036addi 11,11,321037lvx 27,10,11038addi 10,10,321039lvx 28,11,11040addi 11,11,321041lvx 29,10,11042addi 10,10,321043lvx 30,11,11044lvx 31,10,11045lwz 0, 324(1)1046lwz 14,248(1)1047lwz 15,252(1)1048lwz 16,256(1)1049lwz 17,260(1)1050lwz 18,264(1)1051lwz 19,268(1)1052lwz 20,272(1)1053lwz 21,276(1)1054lwz 22,280(1)1055lwz 23,284(1)1056lwz 24,288(1)1057lwz 25,292(1)1058lwz 26,296(1)1059lwz 27,300(1)1060lwz 28,304(1)1061lwz 29,308(1)1062lwz 30,312(1)1063lwz 31,316(1)1064mtlr 01065addi 1,1,3201066blr1067.long 01068.byte 0,12,0x04,1,0x80,18,5,01069.long 01070.size ChaCha20_ctr32_vmx,.-ChaCha20_ctr32_vmx10711072.globl ChaCha20_ctr32_vsx1073.type ChaCha20_ctr32_vsx,@function1074.align 51075ChaCha20_ctr32_vsx:1076stwu 1,-200(1)1077mflr 01078li 10,1031079li 11,1191080mfspr 12,2561081stvx 26,10,11082addi 10,10,321083stvx 27,11,11084addi 11,11,321085stvx 28,10,11086addi 10,10,321087stvx 29,11,11088addi 11,11,321089stvx 30,10,11090stvx 31,11,11091stw 12,196(1)1092li 12,-4096+631093stw 0, 204(1)1094mtspr 256,1210951096bl .Lconsts1097.long 0x7E0066191098addi 12,12,0x501099li 8,161100li 9,321101li 10,481102li 11,6411031104.long 0x7E2036191105.long 0x7E4836191106.long 0x7E603E1911071108vxor 27,27,271109.long 0x7F8B66191110vspltw 26,19,01111vsldoi 19,19,27,41112vsldoi 19,27,19,121113vadduwm 26,26,2811141115lvsl 31,0,81116vspltisb 27,31117vxor 31,31,2711181119li 0,101120mtctr 01121b .Loop_outer_vsx11221123.align 51124.Loop_outer_vsx:1125lvx 0,0,121126lvx 1,8,121127lvx 2,9,121128lvx 3,10,1211291130vspltw 4,17,01131vspltw 5,17,11132vspltw 6,17,21133vspltw 7,17,311341135vspltw 8,18,01136vspltw 9,18,11137vspltw 10,18,21138vspltw 11,18,311391140vor 12,26,261141vspltw 13,19,11142vspltw 14,19,21143vspltw 15,19,311441145vspltisw 27,-161146vspltisw 28,121147vspltisw 29,81148vspltisw 30,711491150.Loop_vsx:1151vadduwm 0,0,41152vadduwm 1,1,51153vadduwm 2,2,61154vadduwm 3,3,71155vxor 12,12,01156vxor 13,13,11157vxor 14,14,21158vxor 15,15,31159vrlw 12,12,271160vrlw 13,13,271161vrlw 14,14,271162vrlw 15,15,271163vadduwm 8,8,121164vadduwm 9,9,131165vadduwm 10,10,141166vadduwm 11,11,151167vxor 4,4,81168vxor 5,5,91169vxor 6,6,101170vxor 7,7,111171vrlw 4,4,281172vrlw 5,5,281173vrlw 6,6,281174vrlw 7,7,281175vadduwm 0,0,41176vadduwm 1,1,51177vadduwm 2,2,61178vadduwm 3,3,71179vxor 12,12,01180vxor 13,13,11181vxor 14,14,21182vxor 15,15,31183vrlw 12,12,291184vrlw 13,13,291185vrlw 14,14,291186vrlw 15,15,291187vadduwm 8,8,121188vadduwm 9,9,131189vadduwm 10,10,141190vadduwm 11,11,151191vxor 4,4,81192vxor 5,5,91193vxor 6,6,101194vxor 7,7,111195vrlw 4,4,301196vrlw 5,5,301197vrlw 6,6,301198vrlw 7,7,301199vadduwm 0,0,51200vadduwm 1,1,61201vadduwm 2,2,71202vadduwm 3,3,41203vxor 15,15,01204vxor 12,12,11205vxor 13,13,21206vxor 14,14,31207vrlw 15,15,271208vrlw 12,12,271209vrlw 13,13,271210vrlw 14,14,271211vadduwm 10,10,151212vadduwm 11,11,121213vadduwm 8,8,131214vadduwm 9,9,141215vxor 5,5,101216vxor 6,6,111217vxor 7,7,81218vxor 4,4,91219vrlw 5,5,281220vrlw 6,6,281221vrlw 7,7,281222vrlw 4,4,281223vadduwm 0,0,51224vadduwm 1,1,61225vadduwm 2,2,71226vadduwm 3,3,41227vxor 15,15,01228vxor 12,12,11229vxor 13,13,21230vxor 14,14,31231vrlw 15,15,291232vrlw 12,12,291233vrlw 13,13,291234vrlw 14,14,291235vadduwm 10,10,151236vadduwm 11,11,121237vadduwm 8,8,131238vadduwm 9,9,141239vxor 5,5,101240vxor 6,6,111241vxor 7,7,81242vxor 4,4,91243vrlw 5,5,301244vrlw 6,6,301245vrlw 7,7,301246vrlw 4,4,301247bdnz .Loop_vsx12481249vadduwm 12,12,2612501251.long 0x13600F8C1252.long 0x13821F8C1253.long 0x10000E8C1254.long 0x10421E8C1255.long 0x13A42F8C1256.long 0x13C63F8C1257.long 0xF02010571258.long 0xF06013571259.long 0xF01BE0571260.long 0xF05BE35712611262.long 0x10842E8C1263.long 0x10C63E8C1264.long 0x13684F8C1265.long 0x138A5F8C1266.long 0xF0A430571267.long 0xF0E433571268.long 0xF09DF0571269.long 0xF0DDF35712701271.long 0x11084E8C1272.long 0x114A5E8C1273.long 0x13AC6F8C1274.long 0x13CE7F8C1275.long 0xF12850571276.long 0xF16853571277.long 0xF11BE0571278.long 0xF15BE35712791280.long 0x118C6E8C1281.long 0x11CE7E8C1282vspltisw 27,41283vadduwm 26,26,271284.long 0xF1AC70571285.long 0xF1EC73571286.long 0xF19DF0571287.long 0xF1DDF35712881289vadduwm 0,0,161290vadduwm 4,4,171291vadduwm 8,8,181292vadduwm 12,12,1912931294vperm 0,0,0,311295vperm 4,4,4,311296vperm 8,8,8,311297vperm 12,12,12,3112981299cmplwi 5,0x401300blt .Ltail_vsx13011302.long 0x7F6026191303.long 0x7F8826191304.long 0x7FA926191305.long 0x7FCA261913061307vxor 27,27,01308vxor 28,28,41309vxor 29,29,81310vxor 30,30,1213111312.long 0x7F601F191313.long 0x7F881F191314addi 4,4,0x401315.long 0x7FA91F191316subi 5,5,0x401317.long 0x7FCA1F191318addi 3,3,0x401319beq .Ldone_vsx13201321vadduwm 0,1,161322vadduwm 4,5,171323vadduwm 8,9,181324vadduwm 12,13,1913251326vperm 0,0,0,311327vperm 4,4,4,311328vperm 8,8,8,311329vperm 12,12,12,3113301331cmplwi 5,0x401332blt .Ltail_vsx13331334.long 0x7F6026191335.long 0x7F8826191336.long 0x7FA926191337.long 0x7FCA261913381339vxor 27,27,01340vxor 28,28,41341vxor 29,29,81342vxor 30,30,1213431344.long 0x7F601F191345.long 0x7F881F191346addi 4,4,0x401347.long 0x7FA91F191348subi 5,5,0x401349.long 0x7FCA1F191350addi 3,3,0x401351beq .Ldone_vsx13521353vadduwm 0,2,161354vadduwm 4,6,171355vadduwm 8,10,181356vadduwm 12,14,1913571358vperm 0,0,0,311359vperm 4,4,4,311360vperm 8,8,8,311361vperm 12,12,12,3113621363cmplwi 5,0x401364blt .Ltail_vsx13651366.long 0x7F6026191367.long 0x7F8826191368.long 0x7FA926191369.long 0x7FCA261913701371vxor 27,27,01372vxor 28,28,41373vxor 29,29,81374vxor 30,30,1213751376.long 0x7F601F191377.long 0x7F881F191378addi 4,4,0x401379.long 0x7FA91F191380subi 5,5,0x401381.long 0x7FCA1F191382addi 3,3,0x401383beq .Ldone_vsx13841385vadduwm 0,3,161386vadduwm 4,7,171387vadduwm 8,11,181388vadduwm 12,15,1913891390vperm 0,0,0,311391vperm 4,4,4,311392vperm 8,8,8,311393vperm 12,12,12,3113941395cmplwi 5,0x401396blt .Ltail_vsx13971398.long 0x7F6026191399.long 0x7F8826191400.long 0x7FA926191401.long 0x7FCA261914021403vxor 27,27,01404vxor 28,28,41405vxor 29,29,81406vxor 30,30,1214071408.long 0x7F601F191409.long 0x7F881F191410addi 4,4,0x401411.long 0x7FA91F191412subi 5,5,0x401413.long 0x7FCA1F191414addi 3,3,0x401415mtctr 01416bne .Loop_outer_vsx14171418.Ldone_vsx:1419lwz 12,196(1)1420li 10,1031421li 11,1191422lwz 0, 204(1)1423mtspr 256,121424lvx 26,10,11425addi 10,10,321426lvx 27,11,11427addi 11,11,321428lvx 28,10,11429addi 10,10,321430lvx 29,11,11431addi 11,11,321432lvx 30,10,11433lvx 31,11,11434mtlr 01435addi 1,1,2001436blr14371438.align 41439.Ltail_vsx:1440addi 11,1,241441mtctr 51442.long 0x7C005F191443.long 0x7C885F191444.long 0x7D095F191445.long 0x7D8A5F191446subi 12,11,11447subi 4,4,11448subi 3,3,114491450.Loop_tail_vsx:1451lbzu 6,1(12)1452lbzu 7,1(4)1453xor 6,6,71454stbu 6,1(3)1455bdnz .Loop_tail_vsx14561457.long 0x7E005F191458.long 0x7E085F191459.long 0x7E095F191460.long 0x7E0A5F1914611462b .Ldone_vsx1463.long 01464.byte 0,12,0x04,1,0x80,0,5,01465.long 01466.size ChaCha20_ctr32_vsx,.-ChaCha20_ctr32_vsx1467.align 51468.Lconsts:1469mflr 01470bcl 20,31,$+41471mflr 121472addi 12,12,561473mtlr 01474blr1475.long 01476.byte 0,12,0x14,0,0,0,0,01477.space 281478.Lsigma:1479.long 0x61707865,0x3320646e,0x79622d32,0x6b2065741480.long 1,0,0,01481.long 4,0,0,01482.long 0x02030001,0x06070405,0x0a0b0809,0x0e0f0c0d1483.long 0x01020300,0x05060704,0x090a0b08,0x0d0e0f0c1484.long 0x61707865,0x61707865,0x61707865,0x617078651485.long 0x3320646e,0x3320646e,0x3320646e,0x3320646e1486.long 0x79622d32,0x79622d32,0x79622d32,0x79622d321487.long 0x6b206574,0x6b206574,0x6b206574,0x6b2065741488.long 0,1,2,31489.byte 67,104,97,67,104,97,50,48,32,102,111,114,32,80,111,119,101,114,80,67,47,65,108,116,105,86,101,99,44,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,01490.align 21491.align 2149214931494