Path: blob/main/sys/crypto/openssl/powerpc64/chacha-ppc.S
39482 views
/* Do not modify. This file is auto-generated from chacha-ppc.pl. */1.machine "any"2.abiversion 23.text45.globl ChaCha20_ctr32_int6.type ChaCha20_ctr32_int,@function7.align 58ChaCha20_ctr32_int:9.localentry ChaCha20_ctr32_int,01011__ChaCha20_ctr32_int:12cmpldi 5,013.long 0x4DC200201415stdu 1,-256(1)16mflr 01718std 14,112(1)19std 15,120(1)20std 16,128(1)21std 17,136(1)22std 18,144(1)23std 19,152(1)24std 20,160(1)25std 21,168(1)26std 22,176(1)27std 23,184(1)28std 24,192(1)29std 25,200(1)30std 26,208(1)31std 27,216(1)32std 28,224(1)33std 29,232(1)34std 30,240(1)35std 31,248(1)36std 0,272(1)3738lwz 11,0(7)39lwz 12,4(7)40lwz 14,8(7)41lwz 15,12(7)4243bl __ChaCha20_1x4445ld 0,272(1)46ld 14,112(1)47ld 15,120(1)48ld 16,128(1)49ld 17,136(1)50ld 18,144(1)51ld 19,152(1)52ld 20,160(1)53ld 21,168(1)54ld 22,176(1)55ld 23,184(1)56ld 24,192(1)57ld 25,200(1)58ld 26,208(1)59ld 27,216(1)60ld 28,224(1)61ld 29,232(1)62ld 30,240(1)63ld 31,248(1)64mtlr 065addi 1,1,25666blr67.long 068.byte 0,12,4,1,0x80,18,5,069.long 070.size ChaCha20_ctr32_int,.-ChaCha20_ctr32_int7172.align 573__ChaCha20_1x:74.Loop_outer:75lis 16,0x617076lis 17,0x332077lis 18,0x796278lis 19,0x6b2079ori 16,16,0x786580ori 17,17,0x646e81ori 18,18,0x2d3282ori 19,19,0x65748384li 0,1085lwz 20,0(6)86lwz 21,4(6)87lwz 22,8(6)88lwz 23,12(6)89lwz 24,16(6)90mr 28,1191lwz 25,20(6)92mr 29,1293lwz 26,24(6)94mr 30,1495lwz 27,28(6)96mr 31,159798mr 7,2099mr 8,21100mr 9,22101mr 10,23102103mtctr 0104.Loop:105add 16,16,20106add 17,17,21107add 18,18,22108add 19,19,23109xor 28,28,16110xor 29,29,17111xor 30,30,18112xor 31,31,19113rotlwi 28,28,16114rotlwi 29,29,16115rotlwi 30,30,16116rotlwi 31,31,16117add 24,24,28118add 25,25,29119add 26,26,30120add 27,27,31121xor 20,20,24122xor 21,21,25123xor 22,22,26124xor 23,23,27125rotlwi 20,20,12126rotlwi 21,21,12127rotlwi 22,22,12128rotlwi 23,23,12129add 16,16,20130add 17,17,21131add 18,18,22132add 19,19,23133xor 28,28,16134xor 29,29,17135xor 30,30,18136xor 31,31,19137rotlwi 28,28,8138rotlwi 29,29,8139rotlwi 30,30,8140rotlwi 31,31,8141add 24,24,28142add 25,25,29143add 26,26,30144add 27,27,31145xor 20,20,24146xor 21,21,25147xor 22,22,26148xor 23,23,27149rotlwi 20,20,7150rotlwi 21,21,7151rotlwi 22,22,7152rotlwi 23,23,7153add 16,16,21154add 17,17,22155add 18,18,23156add 19,19,20157xor 31,31,16158xor 28,28,17159xor 29,29,18160xor 30,30,19161rotlwi 31,31,16162rotlwi 28,28,16163rotlwi 29,29,16164rotlwi 30,30,16165add 26,26,31166add 27,27,28167add 24,24,29168add 25,25,30169xor 21,21,26170xor 22,22,27171xor 23,23,24172xor 20,20,25173rotlwi 21,21,12174rotlwi 22,22,12175rotlwi 23,23,12176rotlwi 20,20,12177add 16,16,21178add 17,17,22179add 18,18,23180add 19,19,20181xor 31,31,16182xor 28,28,17183xor 29,29,18184xor 30,30,19185rotlwi 31,31,8186rotlwi 28,28,8187rotlwi 29,29,8188rotlwi 30,30,8189add 26,26,31190add 27,27,28191add 24,24,29192add 25,25,30193xor 21,21,26194xor 22,22,27195xor 23,23,24196xor 20,20,25197rotlwi 21,21,7198rotlwi 22,22,7199rotlwi 23,23,7200rotlwi 20,20,7201bdnz .Loop202203subic 5,5,64204addi 16,16,0x7865205addi 17,17,0x646e206addi 18,18,0x2d32207addi 19,19,0x6574208addis 16,16,0x6170209addis 17,17,0x3320210addis 18,18,0x7962211addis 19,19,0x6b20212213subfe. 0,0,0214add 20,20,7215lwz 7,16(6)216add 21,21,8217lwz 8,20(6)218add 22,22,9219lwz 9,24(6)220add 23,23,10221lwz 10,28(6)222add 24,24,7223add 25,25,8224add 26,26,9225add 27,27,10226227add 28,28,11228add 29,29,12229add 30,30,14230add 31,31,15231addi 11,11,1232mr 7,16233rotlwi 16,16,8234rlwimi 16,7,24,0,7235rlwimi 16,7,24,16,23236mr 8,17237rotlwi 17,17,8238rlwimi 17,8,24,0,7239rlwimi 17,8,24,16,23240mr 9,18241rotlwi 18,18,8242rlwimi 18,9,24,0,7243rlwimi 18,9,24,16,23244mr 10,19245rotlwi 19,19,8246rlwimi 19,10,24,0,7247rlwimi 19,10,24,16,23248mr 7,20249rotlwi 20,20,8250rlwimi 20,7,24,0,7251rlwimi 20,7,24,16,23252mr 8,21253rotlwi 21,21,8254rlwimi 21,8,24,0,7255rlwimi 21,8,24,16,23256mr 9,22257rotlwi 22,22,8258rlwimi 22,9,24,0,7259rlwimi 22,9,24,16,23260mr 10,23261rotlwi 23,23,8262rlwimi 23,10,24,0,7263rlwimi 23,10,24,16,23264mr 7,24265rotlwi 24,24,8266rlwimi 24,7,24,0,7267rlwimi 24,7,24,16,23268mr 8,25269rotlwi 25,25,8270rlwimi 25,8,24,0,7271rlwimi 25,8,24,16,23272mr 9,26273rotlwi 26,26,8274rlwimi 26,9,24,0,7275rlwimi 26,9,24,16,23276mr 10,27277rotlwi 27,27,8278rlwimi 27,10,24,0,7279rlwimi 27,10,24,16,23280mr 7,28281rotlwi 28,28,8282rlwimi 28,7,24,0,7283rlwimi 28,7,24,16,23284mr 8,29285rotlwi 29,29,8286rlwimi 29,8,24,0,7287rlwimi 29,8,24,16,23288mr 9,30289rotlwi 30,30,8290rlwimi 30,9,24,0,7291rlwimi 30,9,24,16,23292mr 10,31293rotlwi 31,31,8294rlwimi 31,10,24,0,7295rlwimi 31,10,24,16,23296bne .Ltail297298lwz 7,0(4)299lwz 8,4(4)300cmpldi 5,0301lwz 9,8(4)302lwz 10,12(4)303xor 16,16,7304lwz 7,16(4)305xor 17,17,8306lwz 8,20(4)307xor 18,18,9308lwz 9,24(4)309xor 19,19,10310lwz 10,28(4)311xor 20,20,7312lwz 7,32(4)313xor 21,21,8314lwz 8,36(4)315xor 22,22,9316lwz 9,40(4)317xor 23,23,10318lwz 10,44(4)319xor 24,24,7320lwz 7,48(4)321xor 25,25,8322lwz 8,52(4)323xor 26,26,9324lwz 9,56(4)325xor 27,27,10326lwz 10,60(4)327xor 28,28,7328stw 16,0(3)329xor 29,29,8330stw 17,4(3)331xor 30,30,9332stw 18,8(3)333xor 31,31,10334stw 19,12(3)335stw 20,16(3)336stw 21,20(3)337stw 22,24(3)338stw 23,28(3)339stw 24,32(3)340stw 25,36(3)341stw 26,40(3)342stw 27,44(3)343stw 28,48(3)344stw 29,52(3)345stw 30,56(3)346addi 4,4,64347stw 31,60(3)348addi 3,3,64349350bne .Loop_outer351352blr353354.align 4355.Ltail:356addi 5,5,64357subi 4,4,1358subi 3,3,1359addi 7,1,48-1360mtctr 5361362stw 16,48(1)363stw 17,52(1)364stw 18,56(1)365stw 19,60(1)366stw 20,64(1)367stw 21,68(1)368stw 22,72(1)369stw 23,76(1)370stw 24,80(1)371stw 25,84(1)372stw 26,88(1)373stw 27,92(1)374stw 28,96(1)375stw 29,100(1)376stw 30,104(1)377stw 31,108(1)378379.Loop_tail:380lbzu 11,1(4)381lbzu 16,1(7)382xor 12,11,16383stbu 12,1(3)384bdnz .Loop_tail385386stw 1,48(1)387stw 1,52(1)388stw 1,56(1)389stw 1,60(1)390stw 1,64(1)391stw 1,68(1)392stw 1,72(1)393stw 1,76(1)394stw 1,80(1)395stw 1,84(1)396stw 1,88(1)397stw 1,92(1)398stw 1,96(1)399stw 1,100(1)400stw 1,104(1)401stw 1,108(1)402403blr404.long 0405.byte 0,12,0x14,0,0,0,0,0406407.globl ChaCha20_ctr32_vmx408.type ChaCha20_ctr32_vmx,@function409.align 5410ChaCha20_ctr32_vmx:411.localentry ChaCha20_ctr32_vmx,0412413cmpldi 5,256414blt __ChaCha20_ctr32_int415416stdu 1,-416(1)417mflr 0418li 10,127419li 11,143420li 12,-1421stvx 23,10,1422addi 10,10,32423stvx 24,11,1424addi 11,11,32425stvx 25,10,1426addi 10,10,32427stvx 26,11,1428addi 11,11,32429stvx 27,10,1430addi 10,10,32431stvx 28,11,1432addi 11,11,32433stvx 29,10,1434addi 10,10,32435stvx 30,11,1436stvx 31,10,1437stw 12,268(1)438std 14,272(1)439std 15,280(1)440std 16,288(1)441std 17,296(1)442std 18,304(1)443std 19,312(1)444std 20,320(1)445std 21,328(1)446std 22,336(1)447std 23,344(1)448std 24,352(1)449std 25,360(1)450std 26,368(1)451std 27,376(1)452std 28,384(1)453std 29,392(1)454std 30,400(1)455std 31,408(1)456li 12,-4096+511457std 0, 432(1)458or 12,12,12459460bl .Lconsts461li 16,16462li 17,32463li 18,48464li 19,64465li 20,31466li 21,15467468lvx 13,0,6469lvsl 29,0,6470lvx 14,16,6471lvx 27,20,6472473lvx 15,0,7474lvsl 30,0,7475lvx 28,21,7476477lvx 12,0,12478lvx 17,16,12479lvx 18,17,12480lvx 19,18,12481lvx 23,19,12482483vperm 13,13,14,29484vperm 14,14,27,29485vperm 15,15,28,30486487lwz 11,0(7)488lwz 12,4(7)489vadduwm 15,15,17490lwz 14,8(7)491vadduwm 16,15,17492lwz 15,12(7)493vadduwm 17,16,17494495vxor 29,29,29496vspltisw 26,-1497lvsl 24,0,4498lvsr 25,0,3499vperm 26,29,26,25500501lvsl 29,0,16502vspltisb 30,3503vxor 29,29,30504vxor 25,25,30505vperm 24,24,24,29506507li 0,10508b .Loop_outer_vmx509510.align 4511.Loop_outer_vmx:512lis 16,0x6170513lis 17,0x3320514vor 0,12,12515lis 18,0x7962516lis 19,0x6b20517vor 4,12,12518ori 16,16,0x7865519ori 17,17,0x646e520vor 8,12,12521ori 18,18,0x2d32522ori 19,19,0x6574523vor 1,13,13524525lwz 20,0(6)526vor 5,13,13527lwz 21,4(6)528vor 9,13,13529lwz 22,8(6)530vor 2,14,14531lwz 23,12(6)532vor 6,14,14533lwz 24,16(6)534vor 10,14,14535mr 28,11536lwz 25,20(6)537vor 3,15,15538mr 29,12539lwz 26,24(6)540vor 7,16,16541mr 30,14542lwz 27,28(6)543vor 11,17,17544mr 31,15545546mr 7,20547mr 8,21548mr 9,22549mr 10,23550551vspltisw 27,12552vspltisw 28,7553554mtctr 0555nop556.Loop_vmx:557vadduwm 0,0,1558vadduwm 4,4,5559vadduwm 8,8,9560add 16,16,20561add 17,17,21562add 18,18,22563vxor 3,3,0564vxor 7,7,4565vxor 11,11,8566add 19,19,23567xor 28,28,16568xor 29,29,17569vperm 3,3,3,19570vperm 7,7,7,19571vperm 11,11,11,19572xor 30,30,18573xor 31,31,19574rotlwi 28,28,16575vadduwm 2,2,3576vadduwm 6,6,7577vadduwm 10,10,11578rotlwi 29,29,16579rotlwi 30,30,16580rotlwi 31,31,16581vxor 1,1,2582vxor 5,5,6583vxor 9,9,10584add 24,24,28585add 25,25,29586add 26,26,30587vrlw 1,1,27588vrlw 5,5,27589vrlw 9,9,27590add 27,27,31591xor 20,20,24592xor 21,21,25593vadduwm 0,0,1594vadduwm 4,4,5595vadduwm 8,8,9596xor 22,22,26597xor 23,23,27598rotlwi 20,20,12599vxor 3,3,0600vxor 7,7,4601vxor 11,11,8602rotlwi 21,21,12603rotlwi 22,22,12604rotlwi 23,23,12605vperm 3,3,3,23606vperm 7,7,7,23607vperm 11,11,11,23608add 16,16,20609add 17,17,21610add 18,18,22611vadduwm 2,2,3612vadduwm 6,6,7613vadduwm 10,10,11614add 19,19,23615xor 28,28,16616xor 29,29,17617vxor 1,1,2618vxor 5,5,6619vxor 9,9,10620xor 30,30,18621xor 31,31,19622rotlwi 28,28,8623vrlw 1,1,28624vrlw 5,5,28625vrlw 9,9,28626rotlwi 29,29,8627rotlwi 30,30,8628rotlwi 31,31,8629vsldoi 2,2,2, 16-8630vsldoi 6,6,6, 16-8631vsldoi 10,10,10, 16-8632add 24,24,28633add 25,25,29634add 26,26,30635vsldoi 1,1,1, 16-12636vsldoi 5,5,5, 16-12637vsldoi 9,9,9, 16-12638add 27,27,31639xor 20,20,24640xor 21,21,25641vsldoi 3,3,3, 16-4642vsldoi 7,7,7, 16-4643vsldoi 11,11,11, 16-4644xor 22,22,26645xor 23,23,27646rotlwi 20,20,7647rotlwi 21,21,7648rotlwi 22,22,7649rotlwi 23,23,7650vadduwm 0,0,1651vadduwm 4,4,5652vadduwm 8,8,9653add 16,16,21654add 17,17,22655add 18,18,23656vxor 3,3,0657vxor 7,7,4658vxor 11,11,8659add 19,19,20660xor 31,31,16661xor 28,28,17662vperm 3,3,3,19663vperm 7,7,7,19664vperm 11,11,11,19665xor 29,29,18666xor 30,30,19667rotlwi 31,31,16668vadduwm 2,2,3669vadduwm 6,6,7670vadduwm 10,10,11671rotlwi 28,28,16672rotlwi 29,29,16673rotlwi 30,30,16674vxor 1,1,2675vxor 5,5,6676vxor 9,9,10677add 26,26,31678add 27,27,28679add 24,24,29680vrlw 1,1,27681vrlw 5,5,27682vrlw 9,9,27683add 25,25,30684xor 21,21,26685xor 22,22,27686vadduwm 0,0,1687vadduwm 4,4,5688vadduwm 8,8,9689xor 23,23,24690xor 20,20,25691rotlwi 21,21,12692vxor 3,3,0693vxor 7,7,4694vxor 11,11,8695rotlwi 22,22,12696rotlwi 23,23,12697rotlwi 20,20,12698vperm 3,3,3,23699vperm 7,7,7,23700vperm 11,11,11,23701add 16,16,21702add 17,17,22703add 18,18,23704vadduwm 2,2,3705vadduwm 6,6,7706vadduwm 10,10,11707add 19,19,20708xor 31,31,16709xor 28,28,17710vxor 1,1,2711vxor 5,5,6712vxor 9,9,10713xor 29,29,18714xor 30,30,19715rotlwi 31,31,8716vrlw 1,1,28717vrlw 5,5,28718vrlw 9,9,28719rotlwi 28,28,8720rotlwi 29,29,8721rotlwi 30,30,8722vsldoi 2,2,2, 16-8723vsldoi 6,6,6, 16-8724vsldoi 10,10,10, 16-8725add 26,26,31726add 27,27,28727add 24,24,29728vsldoi 1,1,1, 16-4729vsldoi 5,5,5, 16-4730vsldoi 9,9,9, 16-4731add 25,25,30732xor 21,21,26733xor 22,22,27734vsldoi 3,3,3, 16-12735vsldoi 7,7,7, 16-12736vsldoi 11,11,11, 16-12737xor 23,23,24738xor 20,20,25739rotlwi 21,21,7740rotlwi 22,22,7741rotlwi 23,23,7742rotlwi 20,20,7743bdnz .Loop_vmx744745subi 5,5,256746addi 16,16,0x7865747addi 17,17,0x646e748addi 18,18,0x2d32749addi 19,19,0x6574750addis 16,16,0x6170751addis 17,17,0x3320752addis 18,18,0x7962753addis 19,19,0x6b20754add 20,20,7755lwz 7,16(6)756add 21,21,8757lwz 8,20(6)758add 22,22,9759lwz 9,24(6)760add 23,23,10761lwz 10,28(6)762add 24,24,7763add 25,25,8764add 26,26,9765add 27,27,10766add 28,28,11767add 29,29,12768add 30,30,14769add 31,31,15770771vadduwm 0,0,12772vadduwm 4,4,12773vadduwm 8,8,12774vadduwm 1,1,13775vadduwm 5,5,13776vadduwm 9,9,13777vadduwm 2,2,14778vadduwm 6,6,14779vadduwm 10,10,14780vadduwm 3,3,15781vadduwm 7,7,16782vadduwm 11,11,17783784addi 11,11,4785vadduwm 15,15,18786vadduwm 16,16,18787vadduwm 17,17,18788789mr 7,16790rotlwi 16,16,8791rlwimi 16,7,24,0,7792rlwimi 16,7,24,16,23793mr 8,17794rotlwi 17,17,8795rlwimi 17,8,24,0,7796rlwimi 17,8,24,16,23797mr 9,18798rotlwi 18,18,8799rlwimi 18,9,24,0,7800rlwimi 18,9,24,16,23801mr 10,19802rotlwi 19,19,8803rlwimi 19,10,24,0,7804rlwimi 19,10,24,16,23805mr 7,20806rotlwi 20,20,8807rlwimi 20,7,24,0,7808rlwimi 20,7,24,16,23809mr 8,21810rotlwi 21,21,8811rlwimi 21,8,24,0,7812rlwimi 21,8,24,16,23813mr 9,22814rotlwi 22,22,8815rlwimi 22,9,24,0,7816rlwimi 22,9,24,16,23817mr 10,23818rotlwi 23,23,8819rlwimi 23,10,24,0,7820rlwimi 23,10,24,16,23821mr 7,24822rotlwi 24,24,8823rlwimi 24,7,24,0,7824rlwimi 24,7,24,16,23825mr 8,25826rotlwi 25,25,8827rlwimi 25,8,24,0,7828rlwimi 25,8,24,16,23829mr 9,26830rotlwi 26,26,8831rlwimi 26,9,24,0,7832rlwimi 26,9,24,16,23833mr 10,27834rotlwi 27,27,8835rlwimi 27,10,24,0,7836rlwimi 27,10,24,16,23837mr 7,28838rotlwi 28,28,8839rlwimi 28,7,24,0,7840rlwimi 28,7,24,16,23841mr 8,29842rotlwi 29,29,8843rlwimi 29,8,24,0,7844rlwimi 29,8,24,16,23845mr 9,30846rotlwi 30,30,8847rlwimi 30,9,24,0,7848rlwimi 30,9,24,16,23849mr 10,31850rotlwi 31,31,8851rlwimi 31,10,24,0,7852rlwimi 31,10,24,16,23853lwz 7,0(4)854lwz 8,4(4)855lwz 9,8(4)856lwz 10,12(4)857xor 16,16,7858lwz 7,16(4)859xor 17,17,8860lwz 8,20(4)861xor 18,18,9862lwz 9,24(4)863xor 19,19,10864lwz 10,28(4)865xor 20,20,7866lwz 7,32(4)867xor 21,21,8868lwz 8,36(4)869xor 22,22,9870lwz 9,40(4)871xor 23,23,10872lwz 10,44(4)873xor 24,24,7874lwz 7,48(4)875xor 25,25,8876lwz 8,52(4)877xor 26,26,9878lwz 9,56(4)879xor 27,27,10880lwz 10,60(4)881xor 28,28,7882stw 16,0(3)883xor 29,29,8884stw 17,4(3)885xor 30,30,9886stw 18,8(3)887xor 31,31,10888stw 19,12(3)889addi 4,4,64890stw 20,16(3)891li 7,16892stw 21,20(3)893li 8,32894stw 22,24(3)895li 9,48896stw 23,28(3)897li 10,64898stw 24,32(3)899stw 25,36(3)900stw 26,40(3)901stw 27,44(3)902stw 28,48(3)903stw 29,52(3)904stw 30,56(3)905stw 31,60(3)906addi 3,3,64907908lvx 27,0,4909lvx 28,7,4910lvx 29,8,4911lvx 30,9,4912lvx 31,10,4913addi 4,4,64914915vperm 27,27,28,24916vperm 28,28,29,24917vperm 29,29,30,24918vperm 30,30,31,24919vxor 0,0,27920vxor 1,1,28921lvx 28,7,4922vxor 2,2,29923lvx 29,8,4924vxor 3,3,30925lvx 30,9,4926lvx 27,10,4927addi 4,4,64928li 10,63929vperm 0,0,0,25930vperm 1,1,1,25931vperm 2,2,2,25932vperm 3,3,3,25933934vperm 31,31,28,24935vperm 28,28,29,24936vperm 29,29,30,24937vperm 30,30,27,24938vxor 4,4,31939vxor 5,5,28940lvx 28,7,4941vxor 6,6,29942lvx 29,8,4943vxor 7,7,30944lvx 30,9,4945lvx 31,10,4946addi 4,4,64947vperm 4,4,4,25948vperm 5,5,5,25949vperm 6,6,6,25950vperm 7,7,7,25951952vperm 27,27,28,24953vperm 28,28,29,24954vperm 29,29,30,24955vperm 30,30,31,24956vxor 8,8,27957vxor 9,9,28958vxor 10,10,29959vxor 11,11,30960vperm 8,8,8,25961vperm 9,9,9,25962vperm 10,10,10,25963vperm 11,11,11,25964965andi. 17,3,15966mr 16,3967968vsel 27,0,1,26969vsel 28,1,2,26970vsel 29,2,3,26971vsel 30,3,4,26972vsel 1,4,5,26973vsel 2,5,6,26974vsel 3,6,7,26975vsel 4,7,8,26976vsel 5,8,9,26977vsel 6,9,10,26978vsel 7,10,11,26979980981stvx 27,7,3982stvx 28,8,3983stvx 29,9,3984addi 3,3,64985stvx 30,0,3986stvx 1,7,3987stvx 2,8,3988stvx 3,9,3989addi 3,3,64990stvx 4,0,3991stvx 5,7,3992stvx 6,8,3993stvx 7,9,3994addi 3,3,64995996beq .Laligned_vmx997998sub 18,3,17999li 19,01000.Lunaligned_tail_vmx:1001stvebx 11,19,181002addi 19,19,11003cmpw 19,171004bne .Lunaligned_tail_vmx10051006sub 18,16,171007.Lunaligned_head_vmx:1008stvebx 0,17,181009cmpwi 17,151010addi 17,17,11011bne .Lunaligned_head_vmx10121013cmpldi 5,2551014bgt .Loop_outer_vmx10151016b .Ldone_vmx10171018.align 41019.Laligned_vmx:1020stvx 0,0,1610211022cmpldi 5,2551023bgt .Loop_outer_vmx1024nop10251026.Ldone_vmx:1027cmpldi 5,01028bnel __ChaCha20_1x10291030lwz 12,268(1)1031li 10,1271032li 11,1431033or 12,12,121034lvx 23,10,11035addi 10,10,321036lvx 24,11,11037addi 11,11,321038lvx 25,10,11039addi 10,10,321040lvx 26,11,11041addi 11,11,321042lvx 27,10,11043addi 10,10,321044lvx 28,11,11045addi 11,11,321046lvx 29,10,11047addi 10,10,321048lvx 30,11,11049lvx 31,10,11050ld 0, 432(1)1051ld 14,272(1)1052ld 15,280(1)1053ld 16,288(1)1054ld 17,296(1)1055ld 18,304(1)1056ld 19,312(1)1057ld 20,320(1)1058ld 21,328(1)1059ld 22,336(1)1060ld 23,344(1)1061ld 24,352(1)1062ld 25,360(1)1063ld 26,368(1)1064ld 27,376(1)1065ld 28,384(1)1066ld 29,392(1)1067ld 30,400(1)1068ld 31,408(1)1069mtlr 01070addi 1,1,4161071blr1072.long 01073.byte 0,12,0x04,1,0x80,18,5,01074.long 01075.size ChaCha20_ctr32_vmx,.-ChaCha20_ctr32_vmx10761077.globl ChaCha20_ctr32_vsx1078.type ChaCha20_ctr32_vsx,@function1079.align 51080ChaCha20_ctr32_vsx:1081.localentry ChaCha20_ctr32_vsx,010821083stdu 1,-224(1)1084mflr 01085li 10,1271086li 11,1431087li 12,-11088stvx 26,10,11089addi 10,10,321090stvx 27,11,11091addi 11,11,321092stvx 28,10,11093addi 10,10,321094stvx 29,11,11095addi 11,11,321096stvx 30,10,11097stvx 31,11,11098stw 12,220(1)1099li 12,-4096+631100std 0, 240(1)1101or 12,12,1211021103bl .Lconsts1104.long 0x7E0066191105addi 12,12,0x501106li 8,161107li 9,321108li 10,481109li 11,6411101111.long 0x7E2036191112.long 0x7E4836191113.long 0x7E603E1911141115vxor 27,27,271116.long 0x7F8B66191117vspltw 26,19,01118vsldoi 19,19,27,41119vsldoi 19,27,19,121120vadduwm 26,26,2811211122lvsl 31,0,81123vspltisb 27,31124vxor 31,31,2711251126li 0,101127mtctr 01128b .Loop_outer_vsx11291130.align 51131.Loop_outer_vsx:1132lvx 0,0,121133lvx 1,8,121134lvx 2,9,121135lvx 3,10,1211361137vspltw 4,17,01138vspltw 5,17,11139vspltw 6,17,21140vspltw 7,17,311411142vspltw 8,18,01143vspltw 9,18,11144vspltw 10,18,21145vspltw 11,18,311461147vor 12,26,261148vspltw 13,19,11149vspltw 14,19,21150vspltw 15,19,311511152vspltisw 27,-161153vspltisw 28,121154vspltisw 29,81155vspltisw 30,711561157.Loop_vsx:1158vadduwm 0,0,41159vadduwm 1,1,51160vadduwm 2,2,61161vadduwm 3,3,71162vxor 12,12,01163vxor 13,13,11164vxor 14,14,21165vxor 15,15,31166vrlw 12,12,271167vrlw 13,13,271168vrlw 14,14,271169vrlw 15,15,271170vadduwm 8,8,121171vadduwm 9,9,131172vadduwm 10,10,141173vadduwm 11,11,151174vxor 4,4,81175vxor 5,5,91176vxor 6,6,101177vxor 7,7,111178vrlw 4,4,281179vrlw 5,5,281180vrlw 6,6,281181vrlw 7,7,281182vadduwm 0,0,41183vadduwm 1,1,51184vadduwm 2,2,61185vadduwm 3,3,71186vxor 12,12,01187vxor 13,13,11188vxor 14,14,21189vxor 15,15,31190vrlw 12,12,291191vrlw 13,13,291192vrlw 14,14,291193vrlw 15,15,291194vadduwm 8,8,121195vadduwm 9,9,131196vadduwm 10,10,141197vadduwm 11,11,151198vxor 4,4,81199vxor 5,5,91200vxor 6,6,101201vxor 7,7,111202vrlw 4,4,301203vrlw 5,5,301204vrlw 6,6,301205vrlw 7,7,301206vadduwm 0,0,51207vadduwm 1,1,61208vadduwm 2,2,71209vadduwm 3,3,41210vxor 15,15,01211vxor 12,12,11212vxor 13,13,21213vxor 14,14,31214vrlw 15,15,271215vrlw 12,12,271216vrlw 13,13,271217vrlw 14,14,271218vadduwm 10,10,151219vadduwm 11,11,121220vadduwm 8,8,131221vadduwm 9,9,141222vxor 5,5,101223vxor 6,6,111224vxor 7,7,81225vxor 4,4,91226vrlw 5,5,281227vrlw 6,6,281228vrlw 7,7,281229vrlw 4,4,281230vadduwm 0,0,51231vadduwm 1,1,61232vadduwm 2,2,71233vadduwm 3,3,41234vxor 15,15,01235vxor 12,12,11236vxor 13,13,21237vxor 14,14,31238vrlw 15,15,291239vrlw 12,12,291240vrlw 13,13,291241vrlw 14,14,291242vadduwm 10,10,151243vadduwm 11,11,121244vadduwm 8,8,131245vadduwm 9,9,141246vxor 5,5,101247vxor 6,6,111248vxor 7,7,81249vxor 4,4,91250vrlw 5,5,301251vrlw 6,6,301252vrlw 7,7,301253vrlw 4,4,301254bdnz .Loop_vsx12551256vadduwm 12,12,2612571258.long 0x13600F8C1259.long 0x13821F8C1260.long 0x10000E8C1261.long 0x10421E8C1262.long 0x13A42F8C1263.long 0x13C63F8C1264.long 0xF02010571265.long 0xF06013571266.long 0xF01BE0571267.long 0xF05BE35712681269.long 0x10842E8C1270.long 0x10C63E8C1271.long 0x13684F8C1272.long 0x138A5F8C1273.long 0xF0A430571274.long 0xF0E433571275.long 0xF09DF0571276.long 0xF0DDF35712771278.long 0x11084E8C1279.long 0x114A5E8C1280.long 0x13AC6F8C1281.long 0x13CE7F8C1282.long 0xF12850571283.long 0xF16853571284.long 0xF11BE0571285.long 0xF15BE35712861287.long 0x118C6E8C1288.long 0x11CE7E8C1289vspltisw 27,41290vadduwm 26,26,271291.long 0xF1AC70571292.long 0xF1EC73571293.long 0xF19DF0571294.long 0xF1DDF35712951296vadduwm 0,0,161297vadduwm 4,4,171298vadduwm 8,8,181299vadduwm 12,12,1913001301vperm 0,0,0,311302vperm 4,4,4,311303vperm 8,8,8,311304vperm 12,12,12,3113051306cmpldi 5,0x401307blt .Ltail_vsx13081309.long 0x7F6026191310.long 0x7F8826191311.long 0x7FA926191312.long 0x7FCA261913131314vxor 27,27,01315vxor 28,28,41316vxor 29,29,81317vxor 30,30,1213181319.long 0x7F601F191320.long 0x7F881F191321addi 4,4,0x401322.long 0x7FA91F191323subi 5,5,0x401324.long 0x7FCA1F191325addi 3,3,0x401326beq .Ldone_vsx13271328vadduwm 0,1,161329vadduwm 4,5,171330vadduwm 8,9,181331vadduwm 12,13,1913321333vperm 0,0,0,311334vperm 4,4,4,311335vperm 8,8,8,311336vperm 12,12,12,3113371338cmpldi 5,0x401339blt .Ltail_vsx13401341.long 0x7F6026191342.long 0x7F8826191343.long 0x7FA926191344.long 0x7FCA261913451346vxor 27,27,01347vxor 28,28,41348vxor 29,29,81349vxor 30,30,1213501351.long 0x7F601F191352.long 0x7F881F191353addi 4,4,0x401354.long 0x7FA91F191355subi 5,5,0x401356.long 0x7FCA1F191357addi 3,3,0x401358beq .Ldone_vsx13591360vadduwm 0,2,161361vadduwm 4,6,171362vadduwm 8,10,181363vadduwm 12,14,1913641365vperm 0,0,0,311366vperm 4,4,4,311367vperm 8,8,8,311368vperm 12,12,12,3113691370cmpldi 5,0x401371blt .Ltail_vsx13721373.long 0x7F6026191374.long 0x7F8826191375.long 0x7FA926191376.long 0x7FCA261913771378vxor 27,27,01379vxor 28,28,41380vxor 29,29,81381vxor 30,30,1213821383.long 0x7F601F191384.long 0x7F881F191385addi 4,4,0x401386.long 0x7FA91F191387subi 5,5,0x401388.long 0x7FCA1F191389addi 3,3,0x401390beq .Ldone_vsx13911392vadduwm 0,3,161393vadduwm 4,7,171394vadduwm 8,11,181395vadduwm 12,15,1913961397vperm 0,0,0,311398vperm 4,4,4,311399vperm 8,8,8,311400vperm 12,12,12,3114011402cmpldi 5,0x401403blt .Ltail_vsx14041405.long 0x7F6026191406.long 0x7F8826191407.long 0x7FA926191408.long 0x7FCA261914091410vxor 27,27,01411vxor 28,28,41412vxor 29,29,81413vxor 30,30,1214141415.long 0x7F601F191416.long 0x7F881F191417addi 4,4,0x401418.long 0x7FA91F191419subi 5,5,0x401420.long 0x7FCA1F191421addi 3,3,0x401422mtctr 01423bne .Loop_outer_vsx14241425.Ldone_vsx:1426lwz 12,220(1)1427li 10,1271428li 11,1431429ld 0, 240(1)1430or 12,12,121431lvx 26,10,11432addi 10,10,321433lvx 27,11,11434addi 11,11,321435lvx 28,10,11436addi 10,10,321437lvx 29,11,11438addi 11,11,321439lvx 30,10,11440lvx 31,11,11441mtlr 01442addi 1,1,2241443blr14441445.align 41446.Ltail_vsx:1447addi 11,1,481448mtctr 51449.long 0x7C005F191450.long 0x7C885F191451.long 0x7D095F191452.long 0x7D8A5F191453subi 12,11,11454subi 4,4,11455subi 3,3,114561457.Loop_tail_vsx:1458lbzu 6,1(12)1459lbzu 7,1(4)1460xor 6,6,71461stbu 6,1(3)1462bdnz .Loop_tail_vsx14631464.long 0x7E005F191465.long 0x7E085F191466.long 0x7E095F191467.long 0x7E0A5F1914681469b .Ldone_vsx1470.long 01471.byte 0,12,0x04,1,0x80,0,5,01472.long 01473.size ChaCha20_ctr32_vsx,.-ChaCha20_ctr32_vsx1474.align 51475.Lconsts:1476mflr 01477bcl 20,31,$+41478mflr 121479addi 12,12,561480mtlr 01481blr1482.long 01483.byte 0,12,0x14,0,0,0,0,01484.space 281485.Lsigma:1486.long 0x61707865,0x3320646e,0x79622d32,0x6b2065741487.long 1,0,0,01488.long 4,0,0,01489.long 0x02030001,0x06070405,0x0a0b0809,0x0e0f0c0d1490.long 0x01020300,0x05060704,0x090a0b08,0x0d0e0f0c1491.long 0x61707865,0x61707865,0x61707865,0x617078651492.long 0x3320646e,0x3320646e,0x3320646e,0x3320646e1493.long 0x79622d32,0x79622d32,0x79622d32,0x79622d321494.long 0x6b206574,0x6b206574,0x6b206574,0x6b2065741495.long 0,1,2,31496.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,01497.align 21498.align 2149915001501