1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658 |
- .machine "any"
- .abiversion 2
- .text
- .align 7
- rcon:
- .byte 0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01
- .byte 0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x1b
- .byte 0x0c,0x0f,0x0e,0x0d,0x0c,0x0f,0x0e,0x0d,0x0c,0x0f,0x0e,0x0d,0x0c,0x0f,0x0e,0x0d
- .byte 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
- .Lconsts:
- mflr 0
- bcl 20,31,$+4
- mflr 6
- addi 6,6,-0x48
- mtlr 0
- blr
- .long 0
- .byte 0,12,0x14,0,0,0,0,0
- .byte 65,69,83,32,102,111,114,32,80,111,119,101,114,73,83,65,32,50,46,48,55,44,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
- .align 2
- .globl aes_p8_set_encrypt_key
- .type aes_p8_set_encrypt_key,@function
- .align 5
- aes_p8_set_encrypt_key:
- .localentry aes_p8_set_encrypt_key,0
- .Lset_encrypt_key:
- mflr 11
- std 11,16(1)
- li 6,-1
- cmpldi 3,0
- beq- .Lenc_key_abort
- cmpldi 5,0
- beq- .Lenc_key_abort
- li 6,-2
- cmpwi 4,128
- blt- .Lenc_key_abort
- cmpwi 4,256
- bgt- .Lenc_key_abort
- andi. 0,4,0x3f
- bne- .Lenc_key_abort
- lis 0,0xfff0
- li 12,-1
- or 0,0,0
- bl .Lconsts
- mtlr 11
- neg 9,3
- lvx 1,0,3
- addi 3,3,15
- lvsr 3,0,9
- li 8,0x20
- cmpwi 4,192
- lvx 2,0,3
- vspltisb 5,0x0f
- lvx 4,0,6
- vxor 3,3,5
- lvx 5,8,6
- addi 6,6,0x10
- vperm 1,1,2,3
- li 7,8
- vxor 0,0,0
- mtctr 7
- lvsl 8,0,5
- vspltisb 9,-1
- lvx 10,0,5
- vperm 9,9,0,8
- blt .Loop128
- addi 3,3,8
- beq .L192
- addi 3,3,8
- b .L256
- .align 4
- .Loop128:
- vperm 3,1,1,5
- vsldoi 6,0,1,12
- vperm 11,1,1,8
- vsel 7,10,11,9
- vor 10,11,11
- .long 0x10632509
- stvx 7,0,5
- addi 5,5,16
- vxor 1,1,6
- vsldoi 6,0,6,12
- vxor 1,1,6
- vsldoi 6,0,6,12
- vxor 1,1,6
- vadduwm 4,4,4
- vxor 1,1,3
- bdnz .Loop128
- lvx 4,0,6
- vperm 3,1,1,5
- vsldoi 6,0,1,12
- vperm 11,1,1,8
- vsel 7,10,11,9
- vor 10,11,11
- .long 0x10632509
- stvx 7,0,5
- addi 5,5,16
- vxor 1,1,6
- vsldoi 6,0,6,12
- vxor 1,1,6
- vsldoi 6,0,6,12
- vxor 1,1,6
- vadduwm 4,4,4
- vxor 1,1,3
- vperm 3,1,1,5
- vsldoi 6,0,1,12
- vperm 11,1,1,8
- vsel 7,10,11,9
- vor 10,11,11
- .long 0x10632509
- stvx 7,0,5
- addi 5,5,16
- vxor 1,1,6
- vsldoi 6,0,6,12
- vxor 1,1,6
- vsldoi 6,0,6,12
- vxor 1,1,6
- vxor 1,1,3
- vperm 11,1,1,8
- vsel 7,10,11,9
- vor 10,11,11
- stvx 7,0,5
- addi 3,5,15
- addi 5,5,0x50
- li 8,10
- b .Ldone
- .align 4
- .L192:
- lvx 6,0,3
- li 7,4
- vperm 11,1,1,8
- vsel 7,10,11,9
- vor 10,11,11
- stvx 7,0,5
- addi 5,5,16
- vperm 2,2,6,3
- vspltisb 3,8
- mtctr 7
- vsububm 5,5,3
- .Loop192:
- vperm 3,2,2,5
- vsldoi 6,0,1,12
- .long 0x10632509
- vxor 1,1,6
- vsldoi 6,0,6,12
- vxor 1,1,6
- vsldoi 6,0,6,12
- vxor 1,1,6
- vsldoi 7,0,2,8
- vspltw 6,1,3
- vxor 6,6,2
- vsldoi 2,0,2,12
- vadduwm 4,4,4
- vxor 2,2,6
- vxor 1,1,3
- vxor 2,2,3
- vsldoi 7,7,1,8
- vperm 3,2,2,5
- vsldoi 6,0,1,12
- vperm 11,7,7,8
- vsel 7,10,11,9
- vor 10,11,11
- .long 0x10632509
- stvx 7,0,5
- addi 5,5,16
- vsldoi 7,1,2,8
- vxor 1,1,6
- vsldoi 6,0,6,12
- vperm 11,7,7,8
- vsel 7,10,11,9
- vor 10,11,11
- vxor 1,1,6
- vsldoi 6,0,6,12
- vxor 1,1,6
- stvx 7,0,5
- addi 5,5,16
- vspltw 6,1,3
- vxor 6,6,2
- vsldoi 2,0,2,12
- vadduwm 4,4,4
- vxor 2,2,6
- vxor 1,1,3
- vxor 2,2,3
- vperm 11,1,1,8
- vsel 7,10,11,9
- vor 10,11,11
- stvx 7,0,5
- addi 3,5,15
- addi 5,5,16
- bdnz .Loop192
- li 8,12
- addi 5,5,0x20
- b .Ldone
- .align 4
- .L256:
- lvx 6,0,3
- li 7,7
- li 8,14
- vperm 11,1,1,8
- vsel 7,10,11,9
- vor 10,11,11
- stvx 7,0,5
- addi 5,5,16
- vperm 2,2,6,3
- mtctr 7
- .Loop256:
- vperm 3,2,2,5
- vsldoi 6,0,1,12
- vperm 11,2,2,8
- vsel 7,10,11,9
- vor 10,11,11
- .long 0x10632509
- stvx 7,0,5
- addi 5,5,16
- vxor 1,1,6
- vsldoi 6,0,6,12
- vxor 1,1,6
- vsldoi 6,0,6,12
- vxor 1,1,6
- vadduwm 4,4,4
- vxor 1,1,3
- vperm 11,1,1,8
- vsel 7,10,11,9
- vor 10,11,11
- stvx 7,0,5
- addi 3,5,15
- addi 5,5,16
- bdz .Ldone
- vspltw 3,1,3
- vsldoi 6,0,2,12
- .long 0x106305C8
- vxor 2,2,6
- vsldoi 6,0,6,12
- vxor 2,2,6
- vsldoi 6,0,6,12
- vxor 2,2,6
- vxor 2,2,3
- b .Loop256
- .align 4
- .Ldone:
- lvx 2,0,3
- vsel 2,10,2,9
- stvx 2,0,3
- li 6,0
- or 12,12,12
- stw 8,0(5)
- .Lenc_key_abort:
- mr 3,6
- blr
- .long 0
- .byte 0,12,0x14,1,0,0,3,0
- .long 0
- .size aes_p8_set_encrypt_key,.-aes_p8_set_encrypt_key
- .globl aes_p8_set_decrypt_key
- .type aes_p8_set_decrypt_key,@function
- .align 5
- aes_p8_set_decrypt_key:
- .localentry aes_p8_set_decrypt_key,0
- stdu 1,-64(1)
- mflr 10
- std 10,64+16(1)
- bl .Lset_encrypt_key
- mtlr 10
- cmpwi 3,0
- bne- .Ldec_key_abort
- slwi 7,8,4
- subi 3,5,240
- srwi 8,8,1
- add 5,3,7
- mtctr 8
- .Ldeckey:
- lwz 0, 0(3)
- lwz 6, 4(3)
- lwz 7, 8(3)
- lwz 8, 12(3)
- addi 3,3,16
- lwz 9, 0(5)
- lwz 10,4(5)
- lwz 11,8(5)
- lwz 12,12(5)
- stw 0, 0(5)
- stw 6, 4(5)
- stw 7, 8(5)
- stw 8, 12(5)
- subi 5,5,16
- stw 9, -16(3)
- stw 10,-12(3)
- stw 11,-8(3)
- stw 12,-4(3)
- bdnz .Ldeckey
- xor 3,3,3
- .Ldec_key_abort:
- addi 1,1,64
- blr
- .long 0
- .byte 0,12,4,1,0x80,0,3,0
- .long 0
- .size aes_p8_set_decrypt_key,.-aes_p8_set_decrypt_key
- .globl aes_p8_encrypt
- .type aes_p8_encrypt,@function
- .align 5
- aes_p8_encrypt:
- .localentry aes_p8_encrypt,0
- lwz 6,240(5)
- lis 0,0xfc00
- li 12,-1
- li 7,15
- or 0,0,0
- lvx 0,0,3
- neg 11,4
- lvx 1,7,3
- lvsl 2,0,3
- vspltisb 4,0x0f
- lvsr 3,0,11
- vxor 2,2,4
- li 7,16
- vperm 0,0,1,2
- lvx 1,0,5
- lvsr 5,0,5
- srwi 6,6,1
- lvx 2,7,5
- addi 7,7,16
- subi 6,6,1
- vperm 1,2,1,5
- vxor 0,0,1
- lvx 1,7,5
- addi 7,7,16
- mtctr 6
- .Loop_enc:
- vperm 2,1,2,5
- .long 0x10001508
- lvx 2,7,5
- addi 7,7,16
- vperm 1,2,1,5
- .long 0x10000D08
- lvx 1,7,5
- addi 7,7,16
- bdnz .Loop_enc
- vperm 2,1,2,5
- .long 0x10001508
- lvx 2,7,5
- vperm 1,2,1,5
- .long 0x10000D09
- vspltisb 2,-1
- vxor 1,1,1
- li 7,15
- vperm 2,2,1,3
- vxor 3,3,4
- lvx 1,0,4
- vperm 0,0,0,3
- vsel 1,1,0,2
- lvx 4,7,4
- stvx 1,0,4
- vsel 0,0,4,2
- stvx 0,7,4
- or 12,12,12
- blr
- .long 0
- .byte 0,12,0x14,0,0,0,3,0
- .long 0
- .size aes_p8_encrypt,.-aes_p8_encrypt
- .globl aes_p8_decrypt
- .type aes_p8_decrypt,@function
- .align 5
- aes_p8_decrypt:
- .localentry aes_p8_decrypt,0
- lwz 6,240(5)
- lis 0,0xfc00
- li 12,-1
- li 7,15
- or 0,0,0
- lvx 0,0,3
- neg 11,4
- lvx 1,7,3
- lvsl 2,0,3
- vspltisb 4,0x0f
- lvsr 3,0,11
- vxor 2,2,4
- li 7,16
- vperm 0,0,1,2
- lvx 1,0,5
- lvsr 5,0,5
- srwi 6,6,1
- lvx 2,7,5
- addi 7,7,16
- subi 6,6,1
- vperm 1,2,1,5
- vxor 0,0,1
- lvx 1,7,5
- addi 7,7,16
- mtctr 6
- .Loop_dec:
- vperm 2,1,2,5
- .long 0x10001548
- lvx 2,7,5
- addi 7,7,16
- vperm 1,2,1,5
- .long 0x10000D48
- lvx 1,7,5
- addi 7,7,16
- bdnz .Loop_dec
- vperm 2,1,2,5
- .long 0x10001548
- lvx 2,7,5
- vperm 1,2,1,5
- .long 0x10000D49
- vspltisb 2,-1
- vxor 1,1,1
- li 7,15
- vperm 2,2,1,3
- vxor 3,3,4
- lvx 1,0,4
- vperm 0,0,0,3
- vsel 1,1,0,2
- lvx 4,7,4
- stvx 1,0,4
- vsel 0,0,4,2
- stvx 0,7,4
- or 12,12,12
- blr
- .long 0
- .byte 0,12,0x14,0,0,0,3,0
- .long 0
- .size aes_p8_decrypt,.-aes_p8_decrypt
- .globl aes_p8_cbc_encrypt
- .type aes_p8_cbc_encrypt,@function
- .align 5
- aes_p8_cbc_encrypt:
- .localentry aes_p8_cbc_encrypt,0
- cmpldi 5,16
- .long 0x4dc00020
- cmpwi 8,0
- lis 0,0xffe0
- li 12,-1
- or 0,0,0
- li 10,15
- vxor 0,0,0
- vspltisb 3,0x0f
- lvx 4,0,7
- lvsl 6,0,7
- lvx 5,10,7
- vxor 6,6,3
- vperm 4,4,5,6
- neg 11,3
- lvsr 10,0,6
- lwz 9,240(6)
- lvsr 6,0,11
- lvx 5,0,3
- addi 3,3,15
- vxor 6,6,3
- lvsl 8,0,4
- vspltisb 9,-1
- lvx 7,0,4
- vperm 9,9,0,8
- vxor 8,8,3
- srwi 9,9,1
- li 10,16
- subi 9,9,1
- beq .Lcbc_dec
- .Lcbc_enc:
- vor 2,5,5
- lvx 5,0,3
- addi 3,3,16
- mtctr 9
- subi 5,5,16
- lvx 0,0,6
- vperm 2,2,5,6
- lvx 1,10,6
- addi 10,10,16
- vperm 0,1,0,10
- vxor 2,2,0
- lvx 0,10,6
- addi 10,10,16
- vxor 2,2,4
- .Loop_cbc_enc:
- vperm 1,0,1,10
- .long 0x10420D08
- lvx 1,10,6
- addi 10,10,16
- vperm 0,1,0,10
- .long 0x10420508
- lvx 0,10,6
- addi 10,10,16
- bdnz .Loop_cbc_enc
- vperm 1,0,1,10
- .long 0x10420D08
- lvx 1,10,6
- li 10,16
- vperm 0,1,0,10
- .long 0x10820509
- cmpldi 5,16
- vperm 3,4,4,8
- vsel 2,7,3,9
- vor 7,3,3
- stvx 2,0,4
- addi 4,4,16
- bge .Lcbc_enc
- b .Lcbc_done
- .align 4
- .Lcbc_dec:
- cmpldi 5,128
- bge _aesp8_cbc_decrypt8x
- vor 3,5,5
- lvx 5,0,3
- addi 3,3,16
- mtctr 9
- subi 5,5,16
- lvx 0,0,6
- vperm 3,3,5,6
- lvx 1,10,6
- addi 10,10,16
- vperm 0,1,0,10
- vxor 2,3,0
- lvx 0,10,6
- addi 10,10,16
- .Loop_cbc_dec:
- vperm 1,0,1,10
- .long 0x10420D48
- lvx 1,10,6
- addi 10,10,16
- vperm 0,1,0,10
- .long 0x10420548
- lvx 0,10,6
- addi 10,10,16
- bdnz .Loop_cbc_dec
- vperm 1,0,1,10
- .long 0x10420D48
- lvx 1,10,6
- li 10,16
- vperm 0,1,0,10
- .long 0x10420549
- cmpldi 5,16
- vxor 2,2,4
- vor 4,3,3
- vperm 3,2,2,8
- vsel 2,7,3,9
- vor 7,3,3
- stvx 2,0,4
- addi 4,4,16
- bge .Lcbc_dec
- .Lcbc_done:
- addi 4,4,-1
- lvx 2,0,4
- vsel 2,7,2,9
- stvx 2,0,4
- neg 8,7
- li 10,15
- vxor 0,0,0
- vspltisb 9,-1
- vspltisb 3,0x0f
- lvsr 8,0,8
- vperm 9,9,0,8
- vxor 8,8,3
- lvx 7,0,7
- vperm 4,4,4,8
- vsel 2,7,4,9
- lvx 5,10,7
- stvx 2,0,7
- vsel 2,4,5,9
- stvx 2,10,7
- or 12,12,12
- blr
- .long 0
- .byte 0,12,0x14,0,0,0,6,0
- .long 0
- .align 5
- _aesp8_cbc_decrypt8x:
- stdu 1,-448(1)
- li 10,207
- li 11,223
- stvx 20,10,1
- addi 10,10,32
- stvx 21,11,1
- addi 11,11,32
- stvx 22,10,1
- addi 10,10,32
- stvx 23,11,1
- addi 11,11,32
- stvx 24,10,1
- addi 10,10,32
- stvx 25,11,1
- addi 11,11,32
- stvx 26,10,1
- addi 10,10,32
- stvx 27,11,1
- addi 11,11,32
- stvx 28,10,1
- addi 10,10,32
- stvx 29,11,1
- addi 11,11,32
- stvx 30,10,1
- stvx 31,11,1
- li 0,-1
- stw 12,396(1)
- li 8,0x10
- std 26,400(1)
- li 26,0x20
- std 27,408(1)
- li 27,0x30
- std 28,416(1)
- li 28,0x40
- std 29,424(1)
- li 29,0x50
- std 30,432(1)
- li 30,0x60
- std 31,440(1)
- li 31,0x70
- or 0,0,0
- subi 9,9,3
- subi 5,5,128
- lvx 23,0,6
- lvx 30,8,6
- addi 6,6,0x20
- lvx 31,0,6
- vperm 23,30,23,10
- addi 11,1,64+15
- mtctr 9
- .Load_cbc_dec_key:
- vperm 24,31,30,10
- lvx 30,8,6
- addi 6,6,0x20
- stvx 24,0,11
- vperm 25,30,31,10
- lvx 31,0,6
- stvx 25,8,11
- addi 11,11,0x20
- bdnz .Load_cbc_dec_key
- lvx 26,8,6
- vperm 24,31,30,10
- lvx 27,26,6
- stvx 24,0,11
- vperm 25,26,31,10
- lvx 28,27,6
- stvx 25,8,11
- addi 11,1,64+15
- vperm 26,27,26,10
- lvx 29,28,6
- vperm 27,28,27,10
- lvx 30,29,6
- vperm 28,29,28,10
- lvx 31,30,6
- vperm 29,30,29,10
- lvx 14,31,6
- vperm 30,31,30,10
- lvx 24,0,11
- vperm 31,14,31,10
- lvx 25,8,11
- subi 3,3,15
- li 10,8
- .long 0x7C001E99
- lvsl 6,0,10
- vspltisb 3,0x0f
- .long 0x7C281E99
- vxor 6,6,3
- .long 0x7C5A1E99
- vperm 0,0,0,6
- .long 0x7C7B1E99
- vperm 1,1,1,6
- .long 0x7D5C1E99
- vperm 2,2,2,6
- vxor 14,0,23
- .long 0x7D7D1E99
- vperm 3,3,3,6
- vxor 15,1,23
- .long 0x7D9E1E99
- vperm 10,10,10,6
- vxor 16,2,23
- .long 0x7DBF1E99
- addi 3,3,0x80
- vperm 11,11,11,6
- vxor 17,3,23
- vperm 12,12,12,6
- vxor 18,10,23
- vperm 13,13,13,6
- vxor 19,11,23
- vxor 20,12,23
- vxor 21,13,23
- mtctr 9
- b .Loop_cbc_dec8x
- .align 5
- .Loop_cbc_dec8x:
- .long 0x11CEC548
- .long 0x11EFC548
- .long 0x1210C548
- .long 0x1231C548
- .long 0x1252C548
- .long 0x1273C548
- .long 0x1294C548
- .long 0x12B5C548
- lvx 24,26,11
- addi 11,11,0x20
- .long 0x11CECD48
- .long 0x11EFCD48
- .long 0x1210CD48
- .long 0x1231CD48
- .long 0x1252CD48
- .long 0x1273CD48
- .long 0x1294CD48
- .long 0x12B5CD48
- lvx 25,8,11
- bdnz .Loop_cbc_dec8x
- subic 5,5,128
- .long 0x11CEC548
- .long 0x11EFC548
- .long 0x1210C548
- .long 0x1231C548
- .long 0x1252C548
- .long 0x1273C548
- .long 0x1294C548
- .long 0x12B5C548
- subfe. 0,0,0
- .long 0x11CECD48
- .long 0x11EFCD48
- .long 0x1210CD48
- .long 0x1231CD48
- .long 0x1252CD48
- .long 0x1273CD48
- .long 0x1294CD48
- .long 0x12B5CD48
- and 0,0,5
- .long 0x11CED548
- .long 0x11EFD548
- .long 0x1210D548
- .long 0x1231D548
- .long 0x1252D548
- .long 0x1273D548
- .long 0x1294D548
- .long 0x12B5D548
- add 3,3,0
- .long 0x11CEDD48
- .long 0x11EFDD48
- .long 0x1210DD48
- .long 0x1231DD48
- .long 0x1252DD48
- .long 0x1273DD48
- .long 0x1294DD48
- .long 0x12B5DD48
- addi 11,1,64+15
- .long 0x11CEE548
- .long 0x11EFE548
- .long 0x1210E548
- .long 0x1231E548
- .long 0x1252E548
- .long 0x1273E548
- .long 0x1294E548
- .long 0x12B5E548
- lvx 24,0,11
- .long 0x11CEED48
- .long 0x11EFED48
- .long 0x1210ED48
- .long 0x1231ED48
- .long 0x1252ED48
- .long 0x1273ED48
- .long 0x1294ED48
- .long 0x12B5ED48
- lvx 25,8,11
- .long 0x11CEF548
- vxor 4,4,31
- .long 0x11EFF548
- vxor 0,0,31
- .long 0x1210F548
- vxor 1,1,31
- .long 0x1231F548
- vxor 2,2,31
- .long 0x1252F548
- vxor 3,3,31
- .long 0x1273F548
- vxor 10,10,31
- .long 0x1294F548
- vxor 11,11,31
- .long 0x12B5F548
- vxor 12,12,31
- .long 0x11CE2549
- .long 0x11EF0549
- .long 0x7C001E99
- .long 0x12100D49
- .long 0x7C281E99
- .long 0x12311549
- vperm 0,0,0,6
- .long 0x7C5A1E99
- .long 0x12521D49
- vperm 1,1,1,6
- .long 0x7C7B1E99
- .long 0x12735549
- vperm 2,2,2,6
- .long 0x7D5C1E99
- .long 0x12945D49
- vperm 3,3,3,6
- .long 0x7D7D1E99
- .long 0x12B56549
- vperm 10,10,10,6
- .long 0x7D9E1E99
- vor 4,13,13
- vperm 11,11,11,6
- .long 0x7DBF1E99
- addi 3,3,0x80
- vperm 14,14,14,6
- vperm 15,15,15,6
- .long 0x7DC02799
- vperm 12,12,12,6
- vxor 14,0,23
- vperm 16,16,16,6
- .long 0x7DE82799
- vperm 13,13,13,6
- vxor 15,1,23
- vperm 17,17,17,6
- .long 0x7E1A2799
- vxor 16,2,23
- vperm 18,18,18,6
- .long 0x7E3B2799
- vxor 17,3,23
- vperm 19,19,19,6
- .long 0x7E5C2799
- vxor 18,10,23
- vperm 20,20,20,6
- .long 0x7E7D2799
- vxor 19,11,23
- vperm 21,21,21,6
- .long 0x7E9E2799
- vxor 20,12,23
- .long 0x7EBF2799
- addi 4,4,0x80
- vxor 21,13,23
- mtctr 9
- beq .Loop_cbc_dec8x
- addic. 5,5,128
- beq .Lcbc_dec8x_done
- nop
- nop
- .Loop_cbc_dec8x_tail:
- .long 0x11EFC548
- .long 0x1210C548
- .long 0x1231C548
- .long 0x1252C548
- .long 0x1273C548
- .long 0x1294C548
- .long 0x12B5C548
- lvx 24,26,11
- addi 11,11,0x20
- .long 0x11EFCD48
- .long 0x1210CD48
- .long 0x1231CD48
- .long 0x1252CD48
- .long 0x1273CD48
- .long 0x1294CD48
- .long 0x12B5CD48
- lvx 25,8,11
- bdnz .Loop_cbc_dec8x_tail
- .long 0x11EFC548
- .long 0x1210C548
- .long 0x1231C548
- .long 0x1252C548
- .long 0x1273C548
- .long 0x1294C548
- .long 0x12B5C548
- .long 0x11EFCD48
- .long 0x1210CD48
- .long 0x1231CD48
- .long 0x1252CD48
- .long 0x1273CD48
- .long 0x1294CD48
- .long 0x12B5CD48
- .long 0x11EFD548
- .long 0x1210D548
- .long 0x1231D548
- .long 0x1252D548
- .long 0x1273D548
- .long 0x1294D548
- .long 0x12B5D548
- .long 0x11EFDD48
- .long 0x1210DD48
- .long 0x1231DD48
- .long 0x1252DD48
- .long 0x1273DD48
- .long 0x1294DD48
- .long 0x12B5DD48
- .long 0x11EFE548
- .long 0x1210E548
- .long 0x1231E548
- .long 0x1252E548
- .long 0x1273E548
- .long 0x1294E548
- .long 0x12B5E548
- .long 0x11EFED48
- .long 0x1210ED48
- .long 0x1231ED48
- .long 0x1252ED48
- .long 0x1273ED48
- .long 0x1294ED48
- .long 0x12B5ED48
- .long 0x11EFF548
- vxor 4,4,31
- .long 0x1210F548
- vxor 1,1,31
- .long 0x1231F548
- vxor 2,2,31
- .long 0x1252F548
- vxor 3,3,31
- .long 0x1273F548
- vxor 10,10,31
- .long 0x1294F548
- vxor 11,11,31
- .long 0x12B5F548
- vxor 12,12,31
- cmplwi 5,32
- blt .Lcbc_dec8x_one
- nop
- beq .Lcbc_dec8x_two
- cmplwi 5,64
- blt .Lcbc_dec8x_three
- nop
- beq .Lcbc_dec8x_four
- cmplwi 5,96
- blt .Lcbc_dec8x_five
- nop
- beq .Lcbc_dec8x_six
- .Lcbc_dec8x_seven:
- .long 0x11EF2549
- .long 0x12100D49
- .long 0x12311549
- .long 0x12521D49
- .long 0x12735549
- .long 0x12945D49
- .long 0x12B56549
- vor 4,13,13
- vperm 15,15,15,6
- vperm 16,16,16,6
- .long 0x7DE02799
- vperm 17,17,17,6
- .long 0x7E082799
- vperm 18,18,18,6
- .long 0x7E3A2799
- vperm 19,19,19,6
- .long 0x7E5B2799
- vperm 20,20,20,6
- .long 0x7E7C2799
- vperm 21,21,21,6
- .long 0x7E9D2799
- .long 0x7EBE2799
- addi 4,4,0x70
- b .Lcbc_dec8x_done
- .align 5
- .Lcbc_dec8x_six:
- .long 0x12102549
- .long 0x12311549
- .long 0x12521D49
- .long 0x12735549
- .long 0x12945D49
- .long 0x12B56549
- vor 4,13,13
- vperm 16,16,16,6
- vperm 17,17,17,6
- .long 0x7E002799
- vperm 18,18,18,6
- .long 0x7E282799
- vperm 19,19,19,6
- .long 0x7E5A2799
- vperm 20,20,20,6
- .long 0x7E7B2799
- vperm 21,21,21,6
- .long 0x7E9C2799
- .long 0x7EBD2799
- addi 4,4,0x60
- b .Lcbc_dec8x_done
- .align 5
- .Lcbc_dec8x_five:
- .long 0x12312549
- .long 0x12521D49
- .long 0x12735549
- .long 0x12945D49
- .long 0x12B56549
- vor 4,13,13
- vperm 17,17,17,6
- vperm 18,18,18,6
- .long 0x7E202799
- vperm 19,19,19,6
- .long 0x7E482799
- vperm 20,20,20,6
- .long 0x7E7A2799
- vperm 21,21,21,6
- .long 0x7E9B2799
- .long 0x7EBC2799
- addi 4,4,0x50
- b .Lcbc_dec8x_done
- .align 5
- .Lcbc_dec8x_four:
- .long 0x12522549
- .long 0x12735549
- .long 0x12945D49
- .long 0x12B56549
- vor 4,13,13
- vperm 18,18,18,6
- vperm 19,19,19,6
- .long 0x7E402799
- vperm 20,20,20,6
- .long 0x7E682799
- vperm 21,21,21,6
- .long 0x7E9A2799
- .long 0x7EBB2799
- addi 4,4,0x40
- b .Lcbc_dec8x_done
- .align 5
- .Lcbc_dec8x_three:
- .long 0x12732549
- .long 0x12945D49
- .long 0x12B56549
- vor 4,13,13
- vperm 19,19,19,6
- vperm 20,20,20,6
- .long 0x7E602799
- vperm 21,21,21,6
- .long 0x7E882799
- .long 0x7EBA2799
- addi 4,4,0x30
- b .Lcbc_dec8x_done
- .align 5
- .Lcbc_dec8x_two:
- .long 0x12942549
- .long 0x12B56549
- vor 4,13,13
- vperm 20,20,20,6
- vperm 21,21,21,6
- .long 0x7E802799
- .long 0x7EA82799
- addi 4,4,0x20
- b .Lcbc_dec8x_done
- .align 5
- .Lcbc_dec8x_one:
- .long 0x12B52549
- vor 4,13,13
- vperm 21,21,21,6
- .long 0x7EA02799
- addi 4,4,0x10
- .Lcbc_dec8x_done:
- vperm 4,4,4,6
- .long 0x7C803F99
- li 10,79
- li 11,95
- stvx 6,10,1
- addi 10,10,32
- stvx 6,11,1
- addi 11,11,32
- stvx 6,10,1
- addi 10,10,32
- stvx 6,11,1
- addi 11,11,32
- stvx 6,10,1
- addi 10,10,32
- stvx 6,11,1
- addi 11,11,32
- stvx 6,10,1
- addi 10,10,32
- stvx 6,11,1
- addi 11,11,32
- or 12,12,12
- lvx 20,10,1
- addi 10,10,32
- lvx 21,11,1
- addi 11,11,32
- lvx 22,10,1
- addi 10,10,32
- lvx 23,11,1
- addi 11,11,32
- lvx 24,10,1
- addi 10,10,32
- lvx 25,11,1
- addi 11,11,32
- lvx 26,10,1
- addi 10,10,32
- lvx 27,11,1
- addi 11,11,32
- lvx 28,10,1
- addi 10,10,32
- lvx 29,11,1
- addi 11,11,32
- lvx 30,10,1
- lvx 31,11,1
- ld 26,400(1)
- ld 27,408(1)
- ld 28,416(1)
- ld 29,424(1)
- ld 30,432(1)
- ld 31,440(1)
- addi 1,1,448
- blr
- .long 0
- .byte 0,12,0x04,0,0x80,6,6,0
- .long 0
- .size aes_p8_cbc_encrypt,.-aes_p8_cbc_encrypt
- .globl aes_p8_ctr32_encrypt_blocks
- .type aes_p8_ctr32_encrypt_blocks,@function
- .align 5
- aes_p8_ctr32_encrypt_blocks:
- .localentry aes_p8_ctr32_encrypt_blocks,0
- cmpldi 5,1
- .long 0x4dc00020
- lis 0,0xfff0
- li 12,-1
- or 0,0,0
- li 10,15
- vxor 0,0,0
- vspltisb 3,0x0f
- lvx 4,0,7
- lvsl 6,0,7
- lvx 5,10,7
- vspltisb 11,1
- vxor 6,6,3
- vperm 4,4,5,6
- vsldoi 11,0,11,1
- neg 11,3
- lvsr 10,0,6
- lwz 9,240(6)
- lvsr 6,0,11
- lvx 5,0,3
- addi 3,3,15
- vxor 6,6,3
- srwi 9,9,1
- li 10,16
- subi 9,9,1
- cmpldi 5,8
- bge _aesp8_ctr32_encrypt8x
- lvsl 8,0,4
- vspltisb 9,-1
- lvx 7,0,4
- vperm 9,9,0,8
- vxor 8,8,3
- lvx 0,0,6
- mtctr 9
- lvx 1,10,6
- addi 10,10,16
- vperm 0,1,0,10
- vxor 2,4,0
- lvx 0,10,6
- addi 10,10,16
- b .Loop_ctr32_enc
- .align 5
- .Loop_ctr32_enc:
- vperm 1,0,1,10
- .long 0x10420D08
- lvx 1,10,6
- addi 10,10,16
- vperm 0,1,0,10
- .long 0x10420508
- lvx 0,10,6
- addi 10,10,16
- bdnz .Loop_ctr32_enc
- vadduwm 4,4,11
- vor 3,5,5
- lvx 5,0,3
- addi 3,3,16
- subic. 5,5,1
- vperm 1,0,1,10
- .long 0x10420D08
- lvx 1,10,6
- vperm 3,3,5,6
- li 10,16
- vperm 1,1,0,10
- lvx 0,0,6
- vxor 3,3,1
- .long 0x10421D09
- lvx 1,10,6
- addi 10,10,16
- vperm 2,2,2,8
- vsel 3,7,2,9
- mtctr 9
- vperm 0,1,0,10
- vor 7,2,2
- vxor 2,4,0
- lvx 0,10,6
- addi 10,10,16
- stvx 3,0,4
- addi 4,4,16
- bne .Loop_ctr32_enc
- addi 4,4,-1
- lvx 2,0,4
- vsel 2,7,2,9
- stvx 2,0,4
- or 12,12,12
- blr
- .long 0
- .byte 0,12,0x14,0,0,0,6,0
- .long 0
- .align 5
- _aesp8_ctr32_encrypt8x:
- stdu 1,-448(1)
- li 10,207
- li 11,223
- stvx 20,10,1
- addi 10,10,32
- stvx 21,11,1
- addi 11,11,32
- stvx 22,10,1
- addi 10,10,32
- stvx 23,11,1
- addi 11,11,32
- stvx 24,10,1
- addi 10,10,32
- stvx 25,11,1
- addi 11,11,32
- stvx 26,10,1
- addi 10,10,32
- stvx 27,11,1
- addi 11,11,32
- stvx 28,10,1
- addi 10,10,32
- stvx 29,11,1
- addi 11,11,32
- stvx 30,10,1
- stvx 31,11,1
- li 0,-1
- stw 12,396(1)
- li 8,0x10
- std 26,400(1)
- li 26,0x20
- std 27,408(1)
- li 27,0x30
- std 28,416(1)
- li 28,0x40
- std 29,424(1)
- li 29,0x50
- std 30,432(1)
- li 30,0x60
- std 31,440(1)
- li 31,0x70
- or 0,0,0
- subi 9,9,3
- lvx 23,0,6
- lvx 30,8,6
- addi 6,6,0x20
- lvx 31,0,6
- vperm 23,30,23,10
- addi 11,1,64+15
- mtctr 9
- .Load_ctr32_enc_key:
- vperm 24,31,30,10
- lvx 30,8,6
- addi 6,6,0x20
- stvx 24,0,11
- vperm 25,30,31,10
- lvx 31,0,6
- stvx 25,8,11
- addi 11,11,0x20
- bdnz .Load_ctr32_enc_key
- lvx 26,8,6
- vperm 24,31,30,10
- lvx 27,26,6
- stvx 24,0,11
- vperm 25,26,31,10
- lvx 28,27,6
- stvx 25,8,11
- addi 11,1,64+15
- vperm 26,27,26,10
- lvx 29,28,6
- vperm 27,28,27,10
- lvx 30,29,6
- vperm 28,29,28,10
- lvx 31,30,6
- vperm 29,30,29,10
- lvx 15,31,6
- vperm 30,31,30,10
- lvx 24,0,11
- vperm 31,15,31,10
- lvx 25,8,11
- vadduwm 7,11,11
- subi 3,3,15
- sldi 5,5,4
- vadduwm 16,4,11
- vadduwm 17,4,7
- vxor 15,4,23
- li 10,8
- vadduwm 18,16,7
- vxor 16,16,23
- lvsl 6,0,10
- vadduwm 19,17,7
- vxor 17,17,23
- vspltisb 3,0x0f
- vadduwm 20,18,7
- vxor 18,18,23
- vxor 6,6,3
- vadduwm 21,19,7
- vxor 19,19,23
- vadduwm 22,20,7
- vxor 20,20,23
- vadduwm 4,21,7
- vxor 21,21,23
- vxor 22,22,23
- mtctr 9
- b .Loop_ctr32_enc8x
- .align 5
- .Loop_ctr32_enc8x:
- .long 0x11EFC508
- .long 0x1210C508
- .long 0x1231C508
- .long 0x1252C508
- .long 0x1273C508
- .long 0x1294C508
- .long 0x12B5C508
- .long 0x12D6C508
- .Loop_ctr32_enc8x_middle:
- lvx 24,26,11
- addi 11,11,0x20
- .long 0x11EFCD08
- .long 0x1210CD08
- .long 0x1231CD08
- .long 0x1252CD08
- .long 0x1273CD08
- .long 0x1294CD08
- .long 0x12B5CD08
- .long 0x12D6CD08
- lvx 25,8,11
- bdnz .Loop_ctr32_enc8x
- subic 11,5,256
- .long 0x11EFC508
- .long 0x1210C508
- .long 0x1231C508
- .long 0x1252C508
- .long 0x1273C508
- .long 0x1294C508
- .long 0x12B5C508
- .long 0x12D6C508
- subfe 0,0,0
- .long 0x11EFCD08
- .long 0x1210CD08
- .long 0x1231CD08
- .long 0x1252CD08
- .long 0x1273CD08
- .long 0x1294CD08
- .long 0x12B5CD08
- .long 0x12D6CD08
- and 0,0,11
- addi 11,1,64+15
- .long 0x11EFD508
- .long 0x1210D508
- .long 0x1231D508
- .long 0x1252D508
- .long 0x1273D508
- .long 0x1294D508
- .long 0x12B5D508
- .long 0x12D6D508
- lvx 24,0,11
- subic 5,5,129
- .long 0x11EFDD08
- addi 5,5,1
- .long 0x1210DD08
- .long 0x1231DD08
- .long 0x1252DD08
- .long 0x1273DD08
- .long 0x1294DD08
- .long 0x12B5DD08
- .long 0x12D6DD08
- lvx 25,8,11
- .long 0x11EFE508
- .long 0x7C001E99
- .long 0x1210E508
- .long 0x7C281E99
- .long 0x1231E508
- .long 0x7C5A1E99
- .long 0x1252E508
- .long 0x7C7B1E99
- .long 0x1273E508
- .long 0x7D5C1E99
- .long 0x1294E508
- .long 0x7D9D1E99
- .long 0x12B5E508
- .long 0x7DBE1E99
- .long 0x12D6E508
- .long 0x7DDF1E99
- addi 3,3,0x80
- .long 0x11EFED08
- vperm 0,0,0,6
- .long 0x1210ED08
- vperm 1,1,1,6
- .long 0x1231ED08
- vperm 2,2,2,6
- .long 0x1252ED08
- vperm 3,3,3,6
- .long 0x1273ED08
- vperm 10,10,10,6
- .long 0x1294ED08
- vperm 12,12,12,6
- .long 0x12B5ED08
- vperm 13,13,13,6
- .long 0x12D6ED08
- vperm 14,14,14,6
- add 3,3,0
- subfe. 0,0,0
- .long 0x11EFF508
- vxor 0,0,31
- .long 0x1210F508
- vxor 1,1,31
- .long 0x1231F508
- vxor 2,2,31
- .long 0x1252F508
- vxor 3,3,31
- .long 0x1273F508
- vxor 10,10,31
- .long 0x1294F508
- vxor 12,12,31
- .long 0x12B5F508
- vxor 13,13,31
- .long 0x12D6F508
- vxor 14,14,31
- bne .Lctr32_enc8x_break
- .long 0x100F0509
- .long 0x10300D09
- vadduwm 16,4,11
- .long 0x10511509
- vadduwm 17,4,7
- vxor 15,4,23
- .long 0x10721D09
- vadduwm 18,16,7
- vxor 16,16,23
- .long 0x11535509
- vadduwm 19,17,7
- vxor 17,17,23
- .long 0x11946509
- vadduwm 20,18,7
- vxor 18,18,23
- .long 0x11B56D09
- vadduwm 21,19,7
- vxor 19,19,23
- .long 0x11D67509
- vadduwm 22,20,7
- vxor 20,20,23
- vperm 0,0,0,6
- vadduwm 4,21,7
- vxor 21,21,23
- vperm 1,1,1,6
- vxor 22,22,23
- mtctr 9
- .long 0x11EFC508
- .long 0x7C002799
- vperm 2,2,2,6
- .long 0x1210C508
- .long 0x7C282799
- vperm 3,3,3,6
- .long 0x1231C508
- .long 0x7C5A2799
- vperm 10,10,10,6
- .long 0x1252C508
- .long 0x7C7B2799
- vperm 12,12,12,6
- .long 0x1273C508
- .long 0x7D5C2799
- vperm 13,13,13,6
- .long 0x1294C508
- .long 0x7D9D2799
- vperm 14,14,14,6
- .long 0x12B5C508
- .long 0x7DBE2799
- .long 0x12D6C508
- .long 0x7DDF2799
- addi 4,4,0x80
- b .Loop_ctr32_enc8x_middle
- .align 5
- .Lctr32_enc8x_break:
- cmpwi 5,-0x60
- blt .Lctr32_enc8x_one
- nop
- beq .Lctr32_enc8x_two
- cmpwi 5,-0x40
- blt .Lctr32_enc8x_three
- nop
- beq .Lctr32_enc8x_four
- cmpwi 5,-0x20
- blt .Lctr32_enc8x_five
- nop
- beq .Lctr32_enc8x_six
- cmpwi 5,0x00
- blt .Lctr32_enc8x_seven
- .Lctr32_enc8x_eight:
- .long 0x11EF0509
- .long 0x12100D09
- .long 0x12311509
- .long 0x12521D09
- .long 0x12735509
- .long 0x12946509
- .long 0x12B56D09
- .long 0x12D67509
- vperm 15,15,15,6
- vperm 16,16,16,6
- .long 0x7DE02799
- vperm 17,17,17,6
- .long 0x7E082799
- vperm 18,18,18,6
- .long 0x7E3A2799
- vperm 19,19,19,6
- .long 0x7E5B2799
- vperm 20,20,20,6
- .long 0x7E7C2799
- vperm 21,21,21,6
- .long 0x7E9D2799
- vperm 22,22,22,6
- .long 0x7EBE2799
- .long 0x7EDF2799
- addi 4,4,0x80
- b .Lctr32_enc8x_done
- .align 5
- .Lctr32_enc8x_seven:
- .long 0x11EF0D09
- .long 0x12101509
- .long 0x12311D09
- .long 0x12525509
- .long 0x12736509
- .long 0x12946D09
- .long 0x12B57509
- vperm 15,15,15,6
- vperm 16,16,16,6
- .long 0x7DE02799
- vperm 17,17,17,6
- .long 0x7E082799
- vperm 18,18,18,6
- .long 0x7E3A2799
- vperm 19,19,19,6
- .long 0x7E5B2799
- vperm 20,20,20,6
- .long 0x7E7C2799
- vperm 21,21,21,6
- .long 0x7E9D2799
- .long 0x7EBE2799
- addi 4,4,0x70
- b .Lctr32_enc8x_done
- .align 5
- .Lctr32_enc8x_six:
- .long 0x11EF1509
- .long 0x12101D09
- .long 0x12315509
- .long 0x12526509
- .long 0x12736D09
- .long 0x12947509
- vperm 15,15,15,6
- vperm 16,16,16,6
- .long 0x7DE02799
- vperm 17,17,17,6
- .long 0x7E082799
- vperm 18,18,18,6
- .long 0x7E3A2799
- vperm 19,19,19,6
- .long 0x7E5B2799
- vperm 20,20,20,6
- .long 0x7E7C2799
- .long 0x7E9D2799
- addi 4,4,0x60
- b .Lctr32_enc8x_done
- .align 5
- .Lctr32_enc8x_five:
- .long 0x11EF1D09
- .long 0x12105509
- .long 0x12316509
- .long 0x12526D09
- .long 0x12737509
- vperm 15,15,15,6
- vperm 16,16,16,6
- .long 0x7DE02799
- vperm 17,17,17,6
- .long 0x7E082799
- vperm 18,18,18,6
- .long 0x7E3A2799
- vperm 19,19,19,6
- .long 0x7E5B2799
- .long 0x7E7C2799
- addi 4,4,0x50
- b .Lctr32_enc8x_done
- .align 5
- .Lctr32_enc8x_four:
- .long 0x11EF5509
- .long 0x12106509
- .long 0x12316D09
- .long 0x12527509
- vperm 15,15,15,6
- vperm 16,16,16,6
- .long 0x7DE02799
- vperm 17,17,17,6
- .long 0x7E082799
- vperm 18,18,18,6
- .long 0x7E3A2799
- .long 0x7E5B2799
- addi 4,4,0x40
- b .Lctr32_enc8x_done
- .align 5
- .Lctr32_enc8x_three:
- .long 0x11EF6509
- .long 0x12106D09
- .long 0x12317509
- vperm 15,15,15,6
- vperm 16,16,16,6
- .long 0x7DE02799
- vperm 17,17,17,6
- .long 0x7E082799
- .long 0x7E3A2799
- addi 4,4,0x30
- b .Lctr32_enc8x_done
- .align 5
- .Lctr32_enc8x_two:
- .long 0x11EF6D09
- .long 0x12107509
- vperm 15,15,15,6
- vperm 16,16,16,6
- .long 0x7DE02799
- .long 0x7E082799
- addi 4,4,0x20
- b .Lctr32_enc8x_done
- .align 5
- .Lctr32_enc8x_one:
- .long 0x11EF7509
- vperm 15,15,15,6
- .long 0x7DE02799
- addi 4,4,0x10
- .Lctr32_enc8x_done:
- li 10,79
- li 11,95
- stvx 6,10,1
- addi 10,10,32
- stvx 6,11,1
- addi 11,11,32
- stvx 6,10,1
- addi 10,10,32
- stvx 6,11,1
- addi 11,11,32
- stvx 6,10,1
- addi 10,10,32
- stvx 6,11,1
- addi 11,11,32
- stvx 6,10,1
- addi 10,10,32
- stvx 6,11,1
- addi 11,11,32
- or 12,12,12
- lvx 20,10,1
- addi 10,10,32
- lvx 21,11,1
- addi 11,11,32
- lvx 22,10,1
- addi 10,10,32
- lvx 23,11,1
- addi 11,11,32
- lvx 24,10,1
- addi 10,10,32
- lvx 25,11,1
- addi 11,11,32
- lvx 26,10,1
- addi 10,10,32
- lvx 27,11,1
- addi 11,11,32
- lvx 28,10,1
- addi 10,10,32
- lvx 29,11,1
- addi 11,11,32
- lvx 30,10,1
- lvx 31,11,1
- ld 26,400(1)
- ld 27,408(1)
- ld 28,416(1)
- ld 29,424(1)
- ld 30,432(1)
- ld 31,440(1)
- addi 1,1,448
- blr
- .long 0
- .byte 0,12,0x04,0,0x80,6,6,0
- .long 0
- .size aes_p8_ctr32_encrypt_blocks,.-aes_p8_ctr32_encrypt_blocks
- .globl aes_p8_xts_encrypt
- .type aes_p8_xts_encrypt,@function
- .align 5
- aes_p8_xts_encrypt:
- .localentry aes_p8_xts_encrypt,0
- mr 10,3
- li 3,-1
- cmpldi 5,16
- .long 0x4dc00020
- lis 0,0xfff0
- li 12,-1
- li 11,0
- or 0,0,0
- vspltisb 9,0x07
- lvsl 6,11,11
- vspltisb 11,0x0f
- vxor 6,6,9
- li 3,15
- lvx 8,0,8
- lvsl 5,0,8
- lvx 4,3,8
- vxor 5,5,11
- vperm 8,8,4,5
- neg 11,10
- lvsr 5,0,11
- lvx 2,0,10
- addi 10,10,15
- vxor 5,5,11
- cmpldi 7,0
- beq .Lxts_enc_no_key2
- lvsr 7,0,7
- lwz 9,240(7)
- srwi 9,9,1
- subi 9,9,1
- li 3,16
- lvx 0,0,7
- lvx 1,3,7
- addi 3,3,16
- vperm 0,1,0,7
- vxor 8,8,0
- lvx 0,3,7
- addi 3,3,16
- mtctr 9
- .Ltweak_xts_enc:
- vperm 1,0,1,7
- .long 0x11080D08
- lvx 1,3,7
- addi 3,3,16
- vperm 0,1,0,7
- .long 0x11080508
- lvx 0,3,7
- addi 3,3,16
- bdnz .Ltweak_xts_enc
- vperm 1,0,1,7
- .long 0x11080D08
- lvx 1,3,7
- vperm 0,1,0,7
- .long 0x11080509
- li 8,0
- b .Lxts_enc
- .Lxts_enc_no_key2:
- li 3,-16
- and 5,5,3
- .Lxts_enc:
- lvx 4,0,10
- addi 10,10,16
- lvsr 7,0,6
- lwz 9,240(6)
- srwi 9,9,1
- subi 9,9,1
- li 3,16
- vslb 10,9,9
- vor 10,10,9
- vspltisb 11,1
- vsldoi 10,10,11,15
- cmpldi 5,96
- bge _aesp8_xts_encrypt6x
- andi. 7,5,15
- subic 0,5,32
- subi 7,7,16
- subfe 0,0,0
- and 0,0,7
- add 10,10,0
- lvx 0,0,6
- lvx 1,3,6
- addi 3,3,16
- vperm 2,2,4,5
- vperm 0,1,0,7
- vxor 2,2,8
- vxor 2,2,0
- lvx 0,3,6
- addi 3,3,16
- mtctr 9
- b .Loop_xts_enc
- .align 5
- .Loop_xts_enc:
- vperm 1,0,1,7
- .long 0x10420D08
- lvx 1,3,6
- addi 3,3,16
- vperm 0,1,0,7
- .long 0x10420508
- lvx 0,3,6
- addi 3,3,16
- bdnz .Loop_xts_enc
- vperm 1,0,1,7
- .long 0x10420D08
- lvx 1,3,6
- li 3,16
- vperm 0,1,0,7
- vxor 0,0,8
- .long 0x10620509
- vperm 11,3,3,6
- .long 0x7D602799
- addi 4,4,16
- subic. 5,5,16
- beq .Lxts_enc_done
- vor 2,4,4
- lvx 4,0,10
- addi 10,10,16
- lvx 0,0,6
- lvx 1,3,6
- addi 3,3,16
- subic 0,5,32
- subfe 0,0,0
- and 0,0,7
- add 10,10,0
- vsrab 11,8,9
- vaddubm 8,8,8
- vsldoi 11,11,11,15
- vand 11,11,10
- vxor 8,8,11
- vperm 2,2,4,5
- vperm 0,1,0,7
- vxor 2,2,8
- vxor 3,3,0
- vxor 2,2,0
- lvx 0,3,6
- addi 3,3,16
- mtctr 9
- cmpldi 5,16
- bge .Loop_xts_enc
- vxor 3,3,8
- lvsr 5,0,5
- vxor 4,4,4
- vspltisb 11,-1
- vperm 4,4,11,5
- vsel 2,2,3,4
- subi 11,4,17
- subi 4,4,16
- mtctr 5
- li 5,16
- .Loop_xts_enc_steal:
- lbzu 0,1(11)
- stb 0,16(11)
- bdnz .Loop_xts_enc_steal
- mtctr 9
- b .Loop_xts_enc
- .Lxts_enc_done:
- cmpldi 8,0
- beq .Lxts_enc_ret
- vsrab 11,8,9
- vaddubm 8,8,8
- vsldoi 11,11,11,15
- vand 11,11,10
- vxor 8,8,11
- vperm 8,8,8,6
- .long 0x7D004799
- .Lxts_enc_ret:
- or 12,12,12
- li 3,0
- blr
- .long 0
- .byte 0,12,0x04,0,0x80,6,6,0
- .long 0
- .size aes_p8_xts_encrypt,.-aes_p8_xts_encrypt
- .globl aes_p8_xts_decrypt
- .type aes_p8_xts_decrypt,@function
- .align 5
- aes_p8_xts_decrypt:
- .localentry aes_p8_xts_decrypt,0
- mr 10,3
- li 3,-1
- cmpldi 5,16
- .long 0x4dc00020
- lis 0,0xfff8
- li 12,-1
- li 11,0
- or 0,0,0
- andi. 0,5,15
- neg 0,0
- andi. 0,0,16
- sub 5,5,0
- vspltisb 9,0x07
- lvsl 6,11,11
- vspltisb 11,0x0f
- vxor 6,6,9
- li 3,15
- lvx 8,0,8
- lvsl 5,0,8
- lvx 4,3,8
- vxor 5,5,11
- vperm 8,8,4,5
- neg 11,10
- lvsr 5,0,11
- lvx 2,0,10
- addi 10,10,15
- vxor 5,5,11
- cmpldi 7,0
- beq .Lxts_dec_no_key2
- lvsr 7,0,7
- lwz 9,240(7)
- srwi 9,9,1
- subi 9,9,1
- li 3,16
- lvx 0,0,7
- lvx 1,3,7
- addi 3,3,16
- vperm 0,1,0,7
- vxor 8,8,0
- lvx 0,3,7
- addi 3,3,16
- mtctr 9
- .Ltweak_xts_dec:
- vperm 1,0,1,7
- .long 0x11080D08
- lvx 1,3,7
- addi 3,3,16
- vperm 0,1,0,7
- .long 0x11080508
- lvx 0,3,7
- addi 3,3,16
- bdnz .Ltweak_xts_dec
- vperm 1,0,1,7
- .long 0x11080D08
- lvx 1,3,7
- vperm 0,1,0,7
- .long 0x11080509
- li 8,0
- b .Lxts_dec
- .Lxts_dec_no_key2:
- neg 3,5
- andi. 3,3,15
- add 5,5,3
- .Lxts_dec:
- lvx 4,0,10
- addi 10,10,16
- lvsr 7,0,6
- lwz 9,240(6)
- srwi 9,9,1
- subi 9,9,1
- li 3,16
- vslb 10,9,9
- vor 10,10,9
- vspltisb 11,1
- vsldoi 10,10,11,15
- cmpldi 5,96
- bge _aesp8_xts_decrypt6x
- lvx 0,0,6
- lvx 1,3,6
- addi 3,3,16
- vperm 2,2,4,5
- vperm 0,1,0,7
- vxor 2,2,8
- vxor 2,2,0
- lvx 0,3,6
- addi 3,3,16
- mtctr 9
- cmpldi 5,16
- blt .Ltail_xts_dec
- .align 5
- .Loop_xts_dec:
- vperm 1,0,1,7
- .long 0x10420D48
- lvx 1,3,6
- addi 3,3,16
- vperm 0,1,0,7
- .long 0x10420548
- lvx 0,3,6
- addi 3,3,16
- bdnz .Loop_xts_dec
- vperm 1,0,1,7
- .long 0x10420D48
- lvx 1,3,6
- li 3,16
- vperm 0,1,0,7
- vxor 0,0,8
- .long 0x10620549
- vperm 11,3,3,6
- .long 0x7D602799
- addi 4,4,16
- subic. 5,5,16
- beq .Lxts_dec_done
- vor 2,4,4
- lvx 4,0,10
- addi 10,10,16
- lvx 0,0,6
- lvx 1,3,6
- addi 3,3,16
- vsrab 11,8,9
- vaddubm 8,8,8
- vsldoi 11,11,11,15
- vand 11,11,10
- vxor 8,8,11
- vperm 2,2,4,5
- vperm 0,1,0,7
- vxor 2,2,8
- vxor 2,2,0
- lvx 0,3,6
- addi 3,3,16
- mtctr 9
- cmpldi 5,16
- bge .Loop_xts_dec
- .Ltail_xts_dec:
- vsrab 11,8,9
- vaddubm 12,8,8
- vsldoi 11,11,11,15
- vand 11,11,10
- vxor 12,12,11
- subi 10,10,16
- add 10,10,5
- vxor 2,2,8
- vxor 2,2,12
- .Loop_xts_dec_short:
- vperm 1,0,1,7
- .long 0x10420D48
- lvx 1,3,6
- addi 3,3,16
- vperm 0,1,0,7
- .long 0x10420548
- lvx 0,3,6
- addi 3,3,16
- bdnz .Loop_xts_dec_short
- vperm 1,0,1,7
- .long 0x10420D48
- lvx 1,3,6
- li 3,16
- vperm 0,1,0,7
- vxor 0,0,12
- .long 0x10620549
- vperm 11,3,3,6
- .long 0x7D602799
- vor 2,4,4
- lvx 4,0,10
- lvx 0,0,6
- lvx 1,3,6
- addi 3,3,16
- vperm 2,2,4,5
- vperm 0,1,0,7
- lvsr 5,0,5
- vxor 4,4,4
- vspltisb 11,-1
- vperm 4,4,11,5
- vsel 2,2,3,4
- vxor 0,0,8
- vxor 2,2,0
- lvx 0,3,6
- addi 3,3,16
- subi 11,4,1
- mtctr 5
- li 5,16
- .Loop_xts_dec_steal:
- lbzu 0,1(11)
- stb 0,16(11)
- bdnz .Loop_xts_dec_steal
- mtctr 9
- b .Loop_xts_dec
- .Lxts_dec_done:
- cmpldi 8,0
- beq .Lxts_dec_ret
- vsrab 11,8,9
- vaddubm 8,8,8
- vsldoi 11,11,11,15
- vand 11,11,10
- vxor 8,8,11
- vperm 8,8,8,6
- .long 0x7D004799
- .Lxts_dec_ret:
- or 12,12,12
- li 3,0
- blr
- .long 0
- .byte 0,12,0x04,0,0x80,6,6,0
- .long 0
- .size aes_p8_xts_decrypt,.-aes_p8_xts_decrypt
- .align 5
- _aesp8_xts_encrypt6x:
- stdu 1,-448(1)
- mflr 11
- li 7,207
- li 3,223
- std 11,464(1)
- stvx 20,7,1
- addi 7,7,32
- stvx 21,3,1
- addi 3,3,32
- stvx 22,7,1
- addi 7,7,32
- stvx 23,3,1
- addi 3,3,32
- stvx 24,7,1
- addi 7,7,32
- stvx 25,3,1
- addi 3,3,32
- stvx 26,7,1
- addi 7,7,32
- stvx 27,3,1
- addi 3,3,32
- stvx 28,7,1
- addi 7,7,32
- stvx 29,3,1
- addi 3,3,32
- stvx 30,7,1
- stvx 31,3,1
- li 0,-1
- stw 12,396(1)
- li 3,0x10
- std 26,400(1)
- li 26,0x20
- std 27,408(1)
- li 27,0x30
- std 28,416(1)
- li 28,0x40
- std 29,424(1)
- li 29,0x50
- std 30,432(1)
- li 30,0x60
- std 31,440(1)
- li 31,0x70
- or 0,0,0
- subi 9,9,3
- lvx 23,0,6
- lvx 30,3,6
- addi 6,6,0x20
- lvx 31,0,6
- vperm 23,30,23,7
- addi 7,1,64+15
- mtctr 9
- .Load_xts_enc_key:
- vperm 24,31,30,7
- lvx 30,3,6
- addi 6,6,0x20
- stvx 24,0,7
- vperm 25,30,31,7
- lvx 31,0,6
- stvx 25,3,7
- addi 7,7,0x20
- bdnz .Load_xts_enc_key
- lvx 26,3,6
- vperm 24,31,30,7
- lvx 27,26,6
- stvx 24,0,7
- vperm 25,26,31,7
- lvx 28,27,6
- stvx 25,3,7
- addi 7,1,64+15
- vperm 26,27,26,7
- lvx 29,28,6
- vperm 27,28,27,7
- lvx 30,29,6
- vperm 28,29,28,7
- lvx 31,30,6
- vperm 29,30,29,7
- lvx 22,31,6
- vperm 30,31,30,7
- lvx 24,0,7
- vperm 31,22,31,7
- lvx 25,3,7
- vperm 0,2,4,5
- subi 10,10,31
- vxor 17,8,23
- vsrab 11,8,9
- vaddubm 8,8,8
- vsldoi 11,11,11,15
- vand 11,11,10
- vxor 7,0,17
- vxor 8,8,11
- .long 0x7C235699
- vxor 18,8,23
- vsrab 11,8,9
- vaddubm 8,8,8
- vsldoi 11,11,11,15
- vperm 1,1,1,6
- vand 11,11,10
- vxor 12,1,18
- vxor 8,8,11
- .long 0x7C5A5699
- andi. 31,5,15
- vxor 19,8,23
- vsrab 11,8,9
- vaddubm 8,8,8
- vsldoi 11,11,11,15
- vperm 2,2,2,6
- vand 11,11,10
- vxor 13,2,19
- vxor 8,8,11
- .long 0x7C7B5699
- sub 5,5,31
- vxor 20,8,23
- vsrab 11,8,9
- vaddubm 8,8,8
- vsldoi 11,11,11,15
- vperm 3,3,3,6
- vand 11,11,10
- vxor 14,3,20
- vxor 8,8,11
- .long 0x7C9C5699
- subi 5,5,0x60
- vxor 21,8,23
- vsrab 11,8,9
- vaddubm 8,8,8
- vsldoi 11,11,11,15
- vperm 4,4,4,6
- vand 11,11,10
- vxor 15,4,21
- vxor 8,8,11
- .long 0x7CBD5699
- addi 10,10,0x60
- vxor 22,8,23
- vsrab 11,8,9
- vaddubm 8,8,8
- vsldoi 11,11,11,15
- vperm 5,5,5,6
- vand 11,11,10
- vxor 16,5,22
- vxor 8,8,11
- vxor 31,31,23
- mtctr 9
- b .Loop_xts_enc6x
- .align 5
- .Loop_xts_enc6x:
- .long 0x10E7C508
- .long 0x118CC508
- .long 0x11ADC508
- .long 0x11CEC508
- .long 0x11EFC508
- .long 0x1210C508
- lvx 24,26,7
- addi 7,7,0x20
- .long 0x10E7CD08
- .long 0x118CCD08
- .long 0x11ADCD08
- .long 0x11CECD08
- .long 0x11EFCD08
- .long 0x1210CD08
- lvx 25,3,7
- bdnz .Loop_xts_enc6x
- subic 5,5,96
- vxor 0,17,31
- .long 0x10E7C508
- .long 0x118CC508
- vsrab 11,8,9
- vxor 17,8,23
- vaddubm 8,8,8
- .long 0x11ADC508
- .long 0x11CEC508
- vsldoi 11,11,11,15
- .long 0x11EFC508
- .long 0x1210C508
- subfe. 0,0,0
- vand 11,11,10
- .long 0x10E7CD08
- .long 0x118CCD08
- vxor 8,8,11
- .long 0x11ADCD08
- .long 0x11CECD08
- vxor 1,18,31
- vsrab 11,8,9
- vxor 18,8,23
- .long 0x11EFCD08
- .long 0x1210CD08
- and 0,0,5
- vaddubm 8,8,8
- vsldoi 11,11,11,15
- .long 0x10E7D508
- .long 0x118CD508
- vand 11,11,10
- .long 0x11ADD508
- .long 0x11CED508
- vxor 8,8,11
- .long 0x11EFD508
- .long 0x1210D508
- add 10,10,0
- vxor 2,19,31
- vsrab 11,8,9
- vxor 19,8,23
- vaddubm 8,8,8
- .long 0x10E7DD08
- .long 0x118CDD08
- vsldoi 11,11,11,15
- .long 0x11ADDD08
- .long 0x11CEDD08
- vand 11,11,10
- .long 0x11EFDD08
- .long 0x1210DD08
- addi 7,1,64+15
- vxor 8,8,11
- .long 0x10E7E508
- .long 0x118CE508
- vxor 3,20,31
- vsrab 11,8,9
- vxor 20,8,23
- .long 0x11ADE508
- .long 0x11CEE508
- vaddubm 8,8,8
- vsldoi 11,11,11,15
- .long 0x11EFE508
- .long 0x1210E508
- lvx 24,0,7
- vand 11,11,10
- .long 0x10E7ED08
- .long 0x118CED08
- vxor 8,8,11
- .long 0x11ADED08
- .long 0x11CEED08
- vxor 4,21,31
- vsrab 11,8,9
- vxor 21,8,23
- .long 0x11EFED08
- .long 0x1210ED08
- lvx 25,3,7
- vaddubm 8,8,8
- vsldoi 11,11,11,15
- .long 0x10E7F508
- .long 0x118CF508
- vand 11,11,10
- .long 0x11ADF508
- .long 0x11CEF508
- vxor 8,8,11
- .long 0x11EFF508
- .long 0x1210F508
- vxor 5,22,31
- vsrab 11,8,9
- vxor 22,8,23
- .long 0x10E70509
- .long 0x7C005699
- vaddubm 8,8,8
- vsldoi 11,11,11,15
- .long 0x118C0D09
- .long 0x7C235699
- .long 0x11AD1509
- vperm 0,0,0,6
- .long 0x7C5A5699
- vand 11,11,10
- .long 0x11CE1D09
- vperm 1,1,1,6
- .long 0x7C7B5699
- .long 0x11EF2509
- vperm 2,2,2,6
- .long 0x7C9C5699
- vxor 8,8,11
- .long 0x11702D09
- vperm 3,3,3,6
- .long 0x7CBD5699
- addi 10,10,0x60
- vperm 4,4,4,6
- vperm 5,5,5,6
- vperm 7,7,7,6
- vperm 12,12,12,6
- .long 0x7CE02799
- vxor 7,0,17
- vperm 13,13,13,6
- .long 0x7D832799
- vxor 12,1,18
- vperm 14,14,14,6
- .long 0x7DBA2799
- vxor 13,2,19
- vperm 15,15,15,6
- .long 0x7DDB2799
- vxor 14,3,20
- vperm 16,11,11,6
- .long 0x7DFC2799
- vxor 15,4,21
- .long 0x7E1D2799
- vxor 16,5,22
- addi 4,4,0x60
- mtctr 9
- beq .Loop_xts_enc6x
- addic. 5,5,0x60
- beq .Lxts_enc6x_zero
- cmpwi 5,0x20
- blt .Lxts_enc6x_one
- nop
- beq .Lxts_enc6x_two
- cmpwi 5,0x40
- blt .Lxts_enc6x_three
- nop
- beq .Lxts_enc6x_four
- .Lxts_enc6x_five:
- vxor 7,1,17
- vxor 12,2,18
- vxor 13,3,19
- vxor 14,4,20
- vxor 15,5,21
- bl _aesp8_xts_enc5x
- vperm 7,7,7,6
- vor 17,22,22
- vperm 12,12,12,6
- .long 0x7CE02799
- vperm 13,13,13,6
- .long 0x7D832799
- vperm 14,14,14,6
- .long 0x7DBA2799
- vxor 11,15,22
- vperm 15,15,15,6
- .long 0x7DDB2799
- .long 0x7DFC2799
- addi 4,4,0x50
- bne .Lxts_enc6x_steal
- b .Lxts_enc6x_done
- .align 4
- .Lxts_enc6x_four:
- vxor 7,2,17
- vxor 12,3,18
- vxor 13,4,19
- vxor 14,5,20
- vxor 15,15,15
- bl _aesp8_xts_enc5x
- vperm 7,7,7,6
- vor 17,21,21
- vperm 12,12,12,6
- .long 0x7CE02799
- vperm 13,13,13,6
- .long 0x7D832799
- vxor 11,14,21
- vperm 14,14,14,6
- .long 0x7DBA2799
- .long 0x7DDB2799
- addi 4,4,0x40
- bne .Lxts_enc6x_steal
- b .Lxts_enc6x_done
- .align 4
- .Lxts_enc6x_three:
- vxor 7,3,17
- vxor 12,4,18
- vxor 13,5,19
- vxor 14,14,14
- vxor 15,15,15
- bl _aesp8_xts_enc5x
- vperm 7,7,7,6
- vor 17,20,20
- vperm 12,12,12,6
- .long 0x7CE02799
- vxor 11,13,20
- vperm 13,13,13,6
- .long 0x7D832799
- .long 0x7DBA2799
- addi 4,4,0x30
- bne .Lxts_enc6x_steal
- b .Lxts_enc6x_done
- .align 4
- .Lxts_enc6x_two:
- vxor 7,4,17
- vxor 12,5,18
- vxor 13,13,13
- vxor 14,14,14
- vxor 15,15,15
- bl _aesp8_xts_enc5x
- vperm 7,7,7,6
- vor 17,19,19
- vxor 11,12,19
- vperm 12,12,12,6
- .long 0x7CE02799
- .long 0x7D832799
- addi 4,4,0x20
- bne .Lxts_enc6x_steal
- b .Lxts_enc6x_done
- .align 4
- .Lxts_enc6x_one:
- vxor 7,5,17
- nop
- .Loop_xts_enc1x:
- .long 0x10E7C508
- lvx 24,26,7
- addi 7,7,0x20
- .long 0x10E7CD08
- lvx 25,3,7
- bdnz .Loop_xts_enc1x
- add 10,10,31
- cmpwi 31,0
- .long 0x10E7C508
- subi 10,10,16
- .long 0x10E7CD08
- lvsr 5,0,31
- .long 0x10E7D508
- .long 0x7C005699
- .long 0x10E7DD08
- addi 7,1,64+15
- .long 0x10E7E508
- lvx 24,0,7
- .long 0x10E7ED08
- lvx 25,3,7
- vxor 17,17,31
- vperm 0,0,0,6
- .long 0x10E7F508
- vperm 0,0,0,5
- .long 0x10E78D09
- vor 17,18,18
- vxor 11,7,18
- vperm 7,7,7,6
- .long 0x7CE02799
- addi 4,4,0x10
- bne .Lxts_enc6x_steal
- b .Lxts_enc6x_done
- .align 4
- .Lxts_enc6x_zero:
- cmpwi 31,0
- beq .Lxts_enc6x_done
- add 10,10,31
- subi 10,10,16
- .long 0x7C005699
- lvsr 5,0,31
- vperm 0,0,0,6
- vperm 0,0,0,5
- vxor 11,11,17
- .Lxts_enc6x_steal:
- vxor 0,0,17
- vxor 7,7,7
- vspltisb 12,-1
- vperm 7,7,12,5
- vsel 7,0,11,7
- subi 30,4,17
- subi 4,4,16
- mtctr 31
- .Loop_xts_enc6x_steal:
- lbzu 0,1(30)
- stb 0,16(30)
- bdnz .Loop_xts_enc6x_steal
- li 31,0
- mtctr 9
- b .Loop_xts_enc1x
- .align 4
- .Lxts_enc6x_done:
- cmpldi 8,0
- beq .Lxts_enc6x_ret
- vxor 8,17,23
- vperm 8,8,8,6
- .long 0x7D004799
- .Lxts_enc6x_ret:
- mtlr 11
- li 10,79
- li 11,95
- stvx 9,10,1
- addi 10,10,32
- stvx 9,11,1
- addi 11,11,32
- stvx 9,10,1
- addi 10,10,32
- stvx 9,11,1
- addi 11,11,32
- stvx 9,10,1
- addi 10,10,32
- stvx 9,11,1
- addi 11,11,32
- stvx 9,10,1
- addi 10,10,32
- stvx 9,11,1
- addi 11,11,32
- or 12,12,12
- lvx 20,10,1
- addi 10,10,32
- lvx 21,11,1
- addi 11,11,32
- lvx 22,10,1
- addi 10,10,32
- lvx 23,11,1
- addi 11,11,32
- lvx 24,10,1
- addi 10,10,32
- lvx 25,11,1
- addi 11,11,32
- lvx 26,10,1
- addi 10,10,32
- lvx 27,11,1
- addi 11,11,32
- lvx 28,10,1
- addi 10,10,32
- lvx 29,11,1
- addi 11,11,32
- lvx 30,10,1
- lvx 31,11,1
- ld 26,400(1)
- ld 27,408(1)
- ld 28,416(1)
- ld 29,424(1)
- ld 30,432(1)
- ld 31,440(1)
- addi 1,1,448
- blr
- .long 0
- .byte 0,12,0x04,1,0x80,6,6,0
- .long 0
- .align 5
- _aesp8_xts_enc5x:
- .long 0x10E7C508
- .long 0x118CC508
- .long 0x11ADC508
- .long 0x11CEC508
- .long 0x11EFC508
- lvx 24,26,7
- addi 7,7,0x20
- .long 0x10E7CD08
- .long 0x118CCD08
- .long 0x11ADCD08
- .long 0x11CECD08
- .long 0x11EFCD08
- lvx 25,3,7
- bdnz _aesp8_xts_enc5x
- add 10,10,31
- cmpwi 31,0
- .long 0x10E7C508
- .long 0x118CC508
- .long 0x11ADC508
- .long 0x11CEC508
- .long 0x11EFC508
- subi 10,10,16
- .long 0x10E7CD08
- .long 0x118CCD08
- .long 0x11ADCD08
- .long 0x11CECD08
- .long 0x11EFCD08
- vxor 17,17,31
- .long 0x10E7D508
- lvsr 5,0,31
- .long 0x118CD508
- .long 0x11ADD508
- .long 0x11CED508
- .long 0x11EFD508
- vxor 1,18,31
- .long 0x10E7DD08
- .long 0x7C005699
- .long 0x118CDD08
- .long 0x11ADDD08
- .long 0x11CEDD08
- .long 0x11EFDD08
- vxor 2,19,31
- addi 7,1,64+15
- .long 0x10E7E508
- .long 0x118CE508
- .long 0x11ADE508
- .long 0x11CEE508
- .long 0x11EFE508
- lvx 24,0,7
- vxor 3,20,31
- .long 0x10E7ED08
- vperm 0,0,0,6
- .long 0x118CED08
- .long 0x11ADED08
- .long 0x11CEED08
- .long 0x11EFED08
- lvx 25,3,7
- vxor 4,21,31
- .long 0x10E7F508
- vperm 0,0,0,5
- .long 0x118CF508
- .long 0x11ADF508
- .long 0x11CEF508
- .long 0x11EFF508
- .long 0x10E78D09
- .long 0x118C0D09
- .long 0x11AD1509
- .long 0x11CE1D09
- .long 0x11EF2509
- blr
- .long 0
- .byte 0,12,0x14,0,0,0,0,0
- .align 5
- _aesp8_xts_decrypt6x:
- stdu 1,-448(1)
- mflr 11
- li 7,207
- li 3,223
- std 11,464(1)
- stvx 20,7,1
- addi 7,7,32
- stvx 21,3,1
- addi 3,3,32
- stvx 22,7,1
- addi 7,7,32
- stvx 23,3,1
- addi 3,3,32
- stvx 24,7,1
- addi 7,7,32
- stvx 25,3,1
- addi 3,3,32
- stvx 26,7,1
- addi 7,7,32
- stvx 27,3,1
- addi 3,3,32
- stvx 28,7,1
- addi 7,7,32
- stvx 29,3,1
- addi 3,3,32
- stvx 30,7,1
- stvx 31,3,1
- li 0,-1
- stw 12,396(1)
- li 3,0x10
- std 26,400(1)
- li 26,0x20
- std 27,408(1)
- li 27,0x30
- std 28,416(1)
- li 28,0x40
- std 29,424(1)
- li 29,0x50
- std 30,432(1)
- li 30,0x60
- std 31,440(1)
- li 31,0x70
- or 0,0,0
- subi 9,9,3
- lvx 23,0,6
- lvx 30,3,6
- addi 6,6,0x20
- lvx 31,0,6
- vperm 23,30,23,7
- addi 7,1,64+15
- mtctr 9
- .Load_xts_dec_key:
- vperm 24,31,30,7
- lvx 30,3,6
- addi 6,6,0x20
- stvx 24,0,7
- vperm 25,30,31,7
- lvx 31,0,6
- stvx 25,3,7
- addi 7,7,0x20
- bdnz .Load_xts_dec_key
- lvx 26,3,6
- vperm 24,31,30,7
- lvx 27,26,6
- stvx 24,0,7
- vperm 25,26,31,7
- lvx 28,27,6
- stvx 25,3,7
- addi 7,1,64+15
- vperm 26,27,26,7
- lvx 29,28,6
- vperm 27,28,27,7
- lvx 30,29,6
- vperm 28,29,28,7
- lvx 31,30,6
- vperm 29,30,29,7
- lvx 22,31,6
- vperm 30,31,30,7
- lvx 24,0,7
- vperm 31,22,31,7
- lvx 25,3,7
- vperm 0,2,4,5
- subi 10,10,31
- vxor 17,8,23
- vsrab 11,8,9
- vaddubm 8,8,8
- vsldoi 11,11,11,15
- vand 11,11,10
- vxor 7,0,17
- vxor 8,8,11
- .long 0x7C235699
- vxor 18,8,23
- vsrab 11,8,9
- vaddubm 8,8,8
- vsldoi 11,11,11,15
- vperm 1,1,1,6
- vand 11,11,10
- vxor 12,1,18
- vxor 8,8,11
- .long 0x7C5A5699
- andi. 31,5,15
- vxor 19,8,23
- vsrab 11,8,9
- vaddubm 8,8,8
- vsldoi 11,11,11,15
- vperm 2,2,2,6
- vand 11,11,10
- vxor 13,2,19
- vxor 8,8,11
- .long 0x7C7B5699
- sub 5,5,31
- vxor 20,8,23
- vsrab 11,8,9
- vaddubm 8,8,8
- vsldoi 11,11,11,15
- vperm 3,3,3,6
- vand 11,11,10
- vxor 14,3,20
- vxor 8,8,11
- .long 0x7C9C5699
- subi 5,5,0x60
- vxor 21,8,23
- vsrab 11,8,9
- vaddubm 8,8,8
- vsldoi 11,11,11,15
- vperm 4,4,4,6
- vand 11,11,10
- vxor 15,4,21
- vxor 8,8,11
- .long 0x7CBD5699
- addi 10,10,0x60
- vxor 22,8,23
- vsrab 11,8,9
- vaddubm 8,8,8
- vsldoi 11,11,11,15
- vperm 5,5,5,6
- vand 11,11,10
- vxor 16,5,22
- vxor 8,8,11
- vxor 31,31,23
- mtctr 9
- b .Loop_xts_dec6x
- .align 5
- .Loop_xts_dec6x:
- .long 0x10E7C548
- .long 0x118CC548
- .long 0x11ADC548
- .long 0x11CEC548
- .long 0x11EFC548
- .long 0x1210C548
- lvx 24,26,7
- addi 7,7,0x20
- .long 0x10E7CD48
- .long 0x118CCD48
- .long 0x11ADCD48
- .long 0x11CECD48
- .long 0x11EFCD48
- .long 0x1210CD48
- lvx 25,3,7
- bdnz .Loop_xts_dec6x
- subic 5,5,96
- vxor 0,17,31
- .long 0x10E7C548
- .long 0x118CC548
- vsrab 11,8,9
- vxor 17,8,23
- vaddubm 8,8,8
- .long 0x11ADC548
- .long 0x11CEC548
- vsldoi 11,11,11,15
- .long 0x11EFC548
- .long 0x1210C548
- subfe. 0,0,0
- vand 11,11,10
- .long 0x10E7CD48
- .long 0x118CCD48
- vxor 8,8,11
- .long 0x11ADCD48
- .long 0x11CECD48
- vxor 1,18,31
- vsrab 11,8,9
- vxor 18,8,23
- .long 0x11EFCD48
- .long 0x1210CD48
- and 0,0,5
- vaddubm 8,8,8
- vsldoi 11,11,11,15
- .long 0x10E7D548
- .long 0x118CD548
- vand 11,11,10
- .long 0x11ADD548
- .long 0x11CED548
- vxor 8,8,11
- .long 0x11EFD548
- .long 0x1210D548
- add 10,10,0
- vxor 2,19,31
- vsrab 11,8,9
- vxor 19,8,23
- vaddubm 8,8,8
- .long 0x10E7DD48
- .long 0x118CDD48
- vsldoi 11,11,11,15
- .long 0x11ADDD48
- .long 0x11CEDD48
- vand 11,11,10
- .long 0x11EFDD48
- .long 0x1210DD48
- addi 7,1,64+15
- vxor 8,8,11
- .long 0x10E7E548
- .long 0x118CE548
- vxor 3,20,31
- vsrab 11,8,9
- vxor 20,8,23
- .long 0x11ADE548
- .long 0x11CEE548
- vaddubm 8,8,8
- vsldoi 11,11,11,15
- .long 0x11EFE548
- .long 0x1210E548
- lvx 24,0,7
- vand 11,11,10
- .long 0x10E7ED48
- .long 0x118CED48
- vxor 8,8,11
- .long 0x11ADED48
- .long 0x11CEED48
- vxor 4,21,31
- vsrab 11,8,9
- vxor 21,8,23
- .long 0x11EFED48
- .long 0x1210ED48
- lvx 25,3,7
- vaddubm 8,8,8
- vsldoi 11,11,11,15
- .long 0x10E7F548
- .long 0x118CF548
- vand 11,11,10
- .long 0x11ADF548
- .long 0x11CEF548
- vxor 8,8,11
- .long 0x11EFF548
- .long 0x1210F548
- vxor 5,22,31
- vsrab 11,8,9
- vxor 22,8,23
- .long 0x10E70549
- .long 0x7C005699
- vaddubm 8,8,8
- vsldoi 11,11,11,15
- .long 0x118C0D49
- .long 0x7C235699
- .long 0x11AD1549
- vperm 0,0,0,6
- .long 0x7C5A5699
- vand 11,11,10
- .long 0x11CE1D49
- vperm 1,1,1,6
- .long 0x7C7B5699
- .long 0x11EF2549
- vperm 2,2,2,6
- .long 0x7C9C5699
- vxor 8,8,11
- .long 0x12102D49
- vperm 3,3,3,6
- .long 0x7CBD5699
- addi 10,10,0x60
- vperm 4,4,4,6
- vperm 5,5,5,6
- vperm 7,7,7,6
- vperm 12,12,12,6
- .long 0x7CE02799
- vxor 7,0,17
- vperm 13,13,13,6
- .long 0x7D832799
- vxor 12,1,18
- vperm 14,14,14,6
- .long 0x7DBA2799
- vxor 13,2,19
- vperm 15,15,15,6
- .long 0x7DDB2799
- vxor 14,3,20
- vperm 16,16,16,6
- .long 0x7DFC2799
- vxor 15,4,21
- .long 0x7E1D2799
- vxor 16,5,22
- addi 4,4,0x60
- mtctr 9
- beq .Loop_xts_dec6x
- addic. 5,5,0x60
- beq .Lxts_dec6x_zero
- cmpwi 5,0x20
- blt .Lxts_dec6x_one
- nop
- beq .Lxts_dec6x_two
- cmpwi 5,0x40
- blt .Lxts_dec6x_three
- nop
- beq .Lxts_dec6x_four
- .Lxts_dec6x_five:
- vxor 7,1,17
- vxor 12,2,18
- vxor 13,3,19
- vxor 14,4,20
- vxor 15,5,21
- bl _aesp8_xts_dec5x
- vperm 7,7,7,6
- vor 17,22,22
- vxor 18,8,23
- vperm 12,12,12,6
- .long 0x7CE02799
- vxor 7,0,18
- vperm 13,13,13,6
- .long 0x7D832799
- vperm 14,14,14,6
- .long 0x7DBA2799
- vperm 15,15,15,6
- .long 0x7DDB2799
- .long 0x7DFC2799
- addi 4,4,0x50
- bne .Lxts_dec6x_steal
- b .Lxts_dec6x_done
- .align 4
- .Lxts_dec6x_four:
- vxor 7,2,17
- vxor 12,3,18
- vxor 13,4,19
- vxor 14,5,20
- vxor 15,15,15
- bl _aesp8_xts_dec5x
- vperm 7,7,7,6
- vor 17,21,21
- vor 18,22,22
- vperm 12,12,12,6
- .long 0x7CE02799
- vxor 7,0,22
- vperm 13,13,13,6
- .long 0x7D832799
- vperm 14,14,14,6
- .long 0x7DBA2799
- .long 0x7DDB2799
- addi 4,4,0x40
- bne .Lxts_dec6x_steal
- b .Lxts_dec6x_done
- .align 4
- .Lxts_dec6x_three:
- vxor 7,3,17
- vxor 12,4,18
- vxor 13,5,19
- vxor 14,14,14
- vxor 15,15,15
- bl _aesp8_xts_dec5x
- vperm 7,7,7,6
- vor 17,20,20
- vor 18,21,21
- vperm 12,12,12,6
- .long 0x7CE02799
- vxor 7,0,21
- vperm 13,13,13,6
- .long 0x7D832799
- .long 0x7DBA2799
- addi 4,4,0x30
- bne .Lxts_dec6x_steal
- b .Lxts_dec6x_done
- .align 4
- .Lxts_dec6x_two:
- vxor 7,4,17
- vxor 12,5,18
- vxor 13,13,13
- vxor 14,14,14
- vxor 15,15,15
- bl _aesp8_xts_dec5x
- vperm 7,7,7,6
- vor 17,19,19
- vor 18,20,20
- vperm 12,12,12,6
- .long 0x7CE02799
- vxor 7,0,20
- .long 0x7D832799
- addi 4,4,0x20
- bne .Lxts_dec6x_steal
- b .Lxts_dec6x_done
- .align 4
- .Lxts_dec6x_one:
- vxor 7,5,17
- nop
- .Loop_xts_dec1x:
- .long 0x10E7C548
- lvx 24,26,7
- addi 7,7,0x20
- .long 0x10E7CD48
- lvx 25,3,7
- bdnz .Loop_xts_dec1x
- subi 0,31,1
- .long 0x10E7C548
- andi. 0,0,16
- cmpwi 31,0
- .long 0x10E7CD48
- sub 10,10,0
- .long 0x10E7D548
- .long 0x7C005699
- .long 0x10E7DD48
- addi 7,1,64+15
- .long 0x10E7E548
- lvx 24,0,7
- .long 0x10E7ED48
- lvx 25,3,7
- vxor 17,17,31
- vperm 0,0,0,6
- .long 0x10E7F548
- mtctr 9
- .long 0x10E78D49
- vor 17,18,18
- vor 18,19,19
- vperm 7,7,7,6
- .long 0x7CE02799
- addi 4,4,0x10
- vxor 7,0,19
- bne .Lxts_dec6x_steal
- b .Lxts_dec6x_done
- .align 4
- .Lxts_dec6x_zero:
- cmpwi 31,0
- beq .Lxts_dec6x_done
- .long 0x7C005699
- vperm 0,0,0,6
- vxor 7,0,18
- .Lxts_dec6x_steal:
- .long 0x10E7C548
- lvx 24,26,7
- addi 7,7,0x20
- .long 0x10E7CD48
- lvx 25,3,7
- bdnz .Lxts_dec6x_steal
- add 10,10,31
- .long 0x10E7C548
- cmpwi 31,0
- .long 0x10E7CD48
- .long 0x7C005699
- .long 0x10E7D548
- lvsr 5,0,31
- .long 0x10E7DD48
- addi 7,1,64+15
- .long 0x10E7E548
- lvx 24,0,7
- .long 0x10E7ED48
- lvx 25,3,7
- vxor 18,18,31
- vperm 0,0,0,6
- .long 0x10E7F548
- vperm 0,0,0,5
- .long 0x11679549
- vperm 7,11,11,6
- .long 0x7CE02799
- vxor 7,7,7
- vspltisb 12,-1
- vperm 7,7,12,5
- vsel 7,0,11,7
- vxor 7,7,17
- subi 30,4,1
- mtctr 31
- .Loop_xts_dec6x_steal:
- lbzu 0,1(30)
- stb 0,16(30)
- bdnz .Loop_xts_dec6x_steal
- li 31,0
- mtctr 9
- b .Loop_xts_dec1x
- .align 4
- .Lxts_dec6x_done:
- cmpldi 8,0
- beq .Lxts_dec6x_ret
- vxor 8,17,23
- vperm 8,8,8,6
- .long 0x7D004799
- .Lxts_dec6x_ret:
- mtlr 11
- li 10,79
- li 11,95
- stvx 9,10,1
- addi 10,10,32
- stvx 9,11,1
- addi 11,11,32
- stvx 9,10,1
- addi 10,10,32
- stvx 9,11,1
- addi 11,11,32
- stvx 9,10,1
- addi 10,10,32
- stvx 9,11,1
- addi 11,11,32
- stvx 9,10,1
- addi 10,10,32
- stvx 9,11,1
- addi 11,11,32
- or 12,12,12
- lvx 20,10,1
- addi 10,10,32
- lvx 21,11,1
- addi 11,11,32
- lvx 22,10,1
- addi 10,10,32
- lvx 23,11,1
- addi 11,11,32
- lvx 24,10,1
- addi 10,10,32
- lvx 25,11,1
- addi 11,11,32
- lvx 26,10,1
- addi 10,10,32
- lvx 27,11,1
- addi 11,11,32
- lvx 28,10,1
- addi 10,10,32
- lvx 29,11,1
- addi 11,11,32
- lvx 30,10,1
- lvx 31,11,1
- ld 26,400(1)
- ld 27,408(1)
- ld 28,416(1)
- ld 29,424(1)
- ld 30,432(1)
- ld 31,440(1)
- addi 1,1,448
- blr
- .long 0
- .byte 0,12,0x04,1,0x80,6,6,0
- .long 0
- .align 5
- _aesp8_xts_dec5x:
- .long 0x10E7C548
- .long 0x118CC548
- .long 0x11ADC548
- .long 0x11CEC548
- .long 0x11EFC548
- lvx 24,26,7
- addi 7,7,0x20
- .long 0x10E7CD48
- .long 0x118CCD48
- .long 0x11ADCD48
- .long 0x11CECD48
- .long 0x11EFCD48
- lvx 25,3,7
- bdnz _aesp8_xts_dec5x
- subi 0,31,1
- .long 0x10E7C548
- .long 0x118CC548
- .long 0x11ADC548
- .long 0x11CEC548
- .long 0x11EFC548
- andi. 0,0,16
- cmpwi 31,0
- .long 0x10E7CD48
- .long 0x118CCD48
- .long 0x11ADCD48
- .long 0x11CECD48
- .long 0x11EFCD48
- vxor 17,17,31
- sub 10,10,0
- .long 0x10E7D548
- .long 0x118CD548
- .long 0x11ADD548
- .long 0x11CED548
- .long 0x11EFD548
- vxor 1,18,31
- .long 0x10E7DD48
- .long 0x7C005699
- .long 0x118CDD48
- .long 0x11ADDD48
- .long 0x11CEDD48
- .long 0x11EFDD48
- vxor 2,19,31
- addi 7,1,64+15
- .long 0x10E7E548
- .long 0x118CE548
- .long 0x11ADE548
- .long 0x11CEE548
- .long 0x11EFE548
- lvx 24,0,7
- vxor 3,20,31
- .long 0x10E7ED48
- vperm 0,0,0,6
- .long 0x118CED48
- .long 0x11ADED48
- .long 0x11CEED48
- .long 0x11EFED48
- lvx 25,3,7
- vxor 4,21,31
- .long 0x10E7F548
- .long 0x118CF548
- .long 0x11ADF548
- .long 0x11CEF548
- .long 0x11EFF548
- .long 0x10E78D49
- .long 0x118C0D49
- .long 0x11AD1549
- .long 0x11CE1D49
- .long 0x11EF2549
- mtctr 9
- blr
- .long 0
- .byte 0,12,0x14,0,0,0,0,0
|