sha1-x86_64.S 98 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466
  1. // This file is generated from a similarly-named Perl script in the BoringSSL
  2. // source tree. Do not edit by hand.
  3. #if defined(__has_feature)
  4. #if __has_feature(memory_sanitizer) && !defined(OPENSSL_NO_ASM)
  5. #define OPENSSL_NO_ASM
  6. #endif
  7. #endif
  8. #if defined(__x86_64__) && !defined(OPENSSL_NO_ASM)
  9. #if defined(BORINGSSL_PREFIX)
  10. #include <boringssl_prefix_symbols_asm.h>
  11. #endif
  12. .text
  13. .globl _sha1_block_data_order
  14. .private_extern _sha1_block_data_order
  15. .p2align 4
  16. _sha1_block_data_order:
  17. leaq _OPENSSL_ia32cap_P(%rip),%r10
  18. movl 0(%r10),%r9d
  19. movl 4(%r10),%r8d
  20. movl 8(%r10),%r10d
  21. testl $512,%r8d
  22. jz L$ialu
  23. testl $536870912,%r10d
  24. jnz _shaext_shortcut
  25. andl $296,%r10d
  26. cmpl $296,%r10d
  27. je _avx2_shortcut
  28. andl $268435456,%r8d
  29. andl $1073741824,%r9d
  30. orl %r9d,%r8d
  31. cmpl $1342177280,%r8d
  32. je _avx_shortcut
  33. jmp _ssse3_shortcut
  34. .p2align 4
  35. L$ialu:
  36. movq %rsp,%rax
  37. pushq %rbx
  38. pushq %rbp
  39. pushq %r12
  40. pushq %r13
  41. pushq %r14
  42. movq %rdi,%r8
  43. subq $72,%rsp
  44. movq %rsi,%r9
  45. andq $-64,%rsp
  46. movq %rdx,%r10
  47. movq %rax,64(%rsp)
  48. L$prologue:
  49. movl 0(%r8),%esi
  50. movl 4(%r8),%edi
  51. movl 8(%r8),%r11d
  52. movl 12(%r8),%r12d
  53. movl 16(%r8),%r13d
  54. jmp L$loop
  55. .p2align 4
  56. L$loop:
  57. movl 0(%r9),%edx
  58. bswapl %edx
  59. movl 4(%r9),%ebp
  60. movl %r12d,%eax
  61. movl %edx,0(%rsp)
  62. movl %esi,%ecx
  63. bswapl %ebp
  64. xorl %r11d,%eax
  65. roll $5,%ecx
  66. andl %edi,%eax
  67. leal 1518500249(%rdx,%r13,1),%r13d
  68. addl %ecx,%r13d
  69. xorl %r12d,%eax
  70. roll $30,%edi
  71. addl %eax,%r13d
  72. movl 8(%r9),%r14d
  73. movl %r11d,%eax
  74. movl %ebp,4(%rsp)
  75. movl %r13d,%ecx
  76. bswapl %r14d
  77. xorl %edi,%eax
  78. roll $5,%ecx
  79. andl %esi,%eax
  80. leal 1518500249(%rbp,%r12,1),%r12d
  81. addl %ecx,%r12d
  82. xorl %r11d,%eax
  83. roll $30,%esi
  84. addl %eax,%r12d
  85. movl 12(%r9),%edx
  86. movl %edi,%eax
  87. movl %r14d,8(%rsp)
  88. movl %r12d,%ecx
  89. bswapl %edx
  90. xorl %esi,%eax
  91. roll $5,%ecx
  92. andl %r13d,%eax
  93. leal 1518500249(%r14,%r11,1),%r11d
  94. addl %ecx,%r11d
  95. xorl %edi,%eax
  96. roll $30,%r13d
  97. addl %eax,%r11d
  98. movl 16(%r9),%ebp
  99. movl %esi,%eax
  100. movl %edx,12(%rsp)
  101. movl %r11d,%ecx
  102. bswapl %ebp
  103. xorl %r13d,%eax
  104. roll $5,%ecx
  105. andl %r12d,%eax
  106. leal 1518500249(%rdx,%rdi,1),%edi
  107. addl %ecx,%edi
  108. xorl %esi,%eax
  109. roll $30,%r12d
  110. addl %eax,%edi
  111. movl 20(%r9),%r14d
  112. movl %r13d,%eax
  113. movl %ebp,16(%rsp)
  114. movl %edi,%ecx
  115. bswapl %r14d
  116. xorl %r12d,%eax
  117. roll $5,%ecx
  118. andl %r11d,%eax
  119. leal 1518500249(%rbp,%rsi,1),%esi
  120. addl %ecx,%esi
  121. xorl %r13d,%eax
  122. roll $30,%r11d
  123. addl %eax,%esi
  124. movl 24(%r9),%edx
  125. movl %r12d,%eax
  126. movl %r14d,20(%rsp)
  127. movl %esi,%ecx
  128. bswapl %edx
  129. xorl %r11d,%eax
  130. roll $5,%ecx
  131. andl %edi,%eax
  132. leal 1518500249(%r14,%r13,1),%r13d
  133. addl %ecx,%r13d
  134. xorl %r12d,%eax
  135. roll $30,%edi
  136. addl %eax,%r13d
  137. movl 28(%r9),%ebp
  138. movl %r11d,%eax
  139. movl %edx,24(%rsp)
  140. movl %r13d,%ecx
  141. bswapl %ebp
  142. xorl %edi,%eax
  143. roll $5,%ecx
  144. andl %esi,%eax
  145. leal 1518500249(%rdx,%r12,1),%r12d
  146. addl %ecx,%r12d
  147. xorl %r11d,%eax
  148. roll $30,%esi
  149. addl %eax,%r12d
  150. movl 32(%r9),%r14d
  151. movl %edi,%eax
  152. movl %ebp,28(%rsp)
  153. movl %r12d,%ecx
  154. bswapl %r14d
  155. xorl %esi,%eax
  156. roll $5,%ecx
  157. andl %r13d,%eax
  158. leal 1518500249(%rbp,%r11,1),%r11d
  159. addl %ecx,%r11d
  160. xorl %edi,%eax
  161. roll $30,%r13d
  162. addl %eax,%r11d
  163. movl 36(%r9),%edx
  164. movl %esi,%eax
  165. movl %r14d,32(%rsp)
  166. movl %r11d,%ecx
  167. bswapl %edx
  168. xorl %r13d,%eax
  169. roll $5,%ecx
  170. andl %r12d,%eax
  171. leal 1518500249(%r14,%rdi,1),%edi
  172. addl %ecx,%edi
  173. xorl %esi,%eax
  174. roll $30,%r12d
  175. addl %eax,%edi
  176. movl 40(%r9),%ebp
  177. movl %r13d,%eax
  178. movl %edx,36(%rsp)
  179. movl %edi,%ecx
  180. bswapl %ebp
  181. xorl %r12d,%eax
  182. roll $5,%ecx
  183. andl %r11d,%eax
  184. leal 1518500249(%rdx,%rsi,1),%esi
  185. addl %ecx,%esi
  186. xorl %r13d,%eax
  187. roll $30,%r11d
  188. addl %eax,%esi
  189. movl 44(%r9),%r14d
  190. movl %r12d,%eax
  191. movl %ebp,40(%rsp)
  192. movl %esi,%ecx
  193. bswapl %r14d
  194. xorl %r11d,%eax
  195. roll $5,%ecx
  196. andl %edi,%eax
  197. leal 1518500249(%rbp,%r13,1),%r13d
  198. addl %ecx,%r13d
  199. xorl %r12d,%eax
  200. roll $30,%edi
  201. addl %eax,%r13d
  202. movl 48(%r9),%edx
  203. movl %r11d,%eax
  204. movl %r14d,44(%rsp)
  205. movl %r13d,%ecx
  206. bswapl %edx
  207. xorl %edi,%eax
  208. roll $5,%ecx
  209. andl %esi,%eax
  210. leal 1518500249(%r14,%r12,1),%r12d
  211. addl %ecx,%r12d
  212. xorl %r11d,%eax
  213. roll $30,%esi
  214. addl %eax,%r12d
  215. movl 52(%r9),%ebp
  216. movl %edi,%eax
  217. movl %edx,48(%rsp)
  218. movl %r12d,%ecx
  219. bswapl %ebp
  220. xorl %esi,%eax
  221. roll $5,%ecx
  222. andl %r13d,%eax
  223. leal 1518500249(%rdx,%r11,1),%r11d
  224. addl %ecx,%r11d
  225. xorl %edi,%eax
  226. roll $30,%r13d
  227. addl %eax,%r11d
  228. movl 56(%r9),%r14d
  229. movl %esi,%eax
  230. movl %ebp,52(%rsp)
  231. movl %r11d,%ecx
  232. bswapl %r14d
  233. xorl %r13d,%eax
  234. roll $5,%ecx
  235. andl %r12d,%eax
  236. leal 1518500249(%rbp,%rdi,1),%edi
  237. addl %ecx,%edi
  238. xorl %esi,%eax
  239. roll $30,%r12d
  240. addl %eax,%edi
  241. movl 60(%r9),%edx
  242. movl %r13d,%eax
  243. movl %r14d,56(%rsp)
  244. movl %edi,%ecx
  245. bswapl %edx
  246. xorl %r12d,%eax
  247. roll $5,%ecx
  248. andl %r11d,%eax
  249. leal 1518500249(%r14,%rsi,1),%esi
  250. addl %ecx,%esi
  251. xorl %r13d,%eax
  252. roll $30,%r11d
  253. addl %eax,%esi
  254. xorl 0(%rsp),%ebp
  255. movl %r12d,%eax
  256. movl %edx,60(%rsp)
  257. movl %esi,%ecx
  258. xorl 8(%rsp),%ebp
  259. xorl %r11d,%eax
  260. roll $5,%ecx
  261. xorl 32(%rsp),%ebp
  262. andl %edi,%eax
  263. leal 1518500249(%rdx,%r13,1),%r13d
  264. roll $30,%edi
  265. xorl %r12d,%eax
  266. addl %ecx,%r13d
  267. roll $1,%ebp
  268. addl %eax,%r13d
  269. xorl 4(%rsp),%r14d
  270. movl %r11d,%eax
  271. movl %ebp,0(%rsp)
  272. movl %r13d,%ecx
  273. xorl 12(%rsp),%r14d
  274. xorl %edi,%eax
  275. roll $5,%ecx
  276. xorl 36(%rsp),%r14d
  277. andl %esi,%eax
  278. leal 1518500249(%rbp,%r12,1),%r12d
  279. roll $30,%esi
  280. xorl %r11d,%eax
  281. addl %ecx,%r12d
  282. roll $1,%r14d
  283. addl %eax,%r12d
  284. xorl 8(%rsp),%edx
  285. movl %edi,%eax
  286. movl %r14d,4(%rsp)
  287. movl %r12d,%ecx
  288. xorl 16(%rsp),%edx
  289. xorl %esi,%eax
  290. roll $5,%ecx
  291. xorl 40(%rsp),%edx
  292. andl %r13d,%eax
  293. leal 1518500249(%r14,%r11,1),%r11d
  294. roll $30,%r13d
  295. xorl %edi,%eax
  296. addl %ecx,%r11d
  297. roll $1,%edx
  298. addl %eax,%r11d
  299. xorl 12(%rsp),%ebp
  300. movl %esi,%eax
  301. movl %edx,8(%rsp)
  302. movl %r11d,%ecx
  303. xorl 20(%rsp),%ebp
  304. xorl %r13d,%eax
  305. roll $5,%ecx
  306. xorl 44(%rsp),%ebp
  307. andl %r12d,%eax
  308. leal 1518500249(%rdx,%rdi,1),%edi
  309. roll $30,%r12d
  310. xorl %esi,%eax
  311. addl %ecx,%edi
  312. roll $1,%ebp
  313. addl %eax,%edi
  314. xorl 16(%rsp),%r14d
  315. movl %r13d,%eax
  316. movl %ebp,12(%rsp)
  317. movl %edi,%ecx
  318. xorl 24(%rsp),%r14d
  319. xorl %r12d,%eax
  320. roll $5,%ecx
  321. xorl 48(%rsp),%r14d
  322. andl %r11d,%eax
  323. leal 1518500249(%rbp,%rsi,1),%esi
  324. roll $30,%r11d
  325. xorl %r13d,%eax
  326. addl %ecx,%esi
  327. roll $1,%r14d
  328. addl %eax,%esi
  329. xorl 20(%rsp),%edx
  330. movl %edi,%eax
  331. movl %r14d,16(%rsp)
  332. movl %esi,%ecx
  333. xorl 28(%rsp),%edx
  334. xorl %r12d,%eax
  335. roll $5,%ecx
  336. xorl 52(%rsp),%edx
  337. leal 1859775393(%r14,%r13,1),%r13d
  338. xorl %r11d,%eax
  339. addl %ecx,%r13d
  340. roll $30,%edi
  341. addl %eax,%r13d
  342. roll $1,%edx
  343. xorl 24(%rsp),%ebp
  344. movl %esi,%eax
  345. movl %edx,20(%rsp)
  346. movl %r13d,%ecx
  347. xorl 32(%rsp),%ebp
  348. xorl %r11d,%eax
  349. roll $5,%ecx
  350. xorl 56(%rsp),%ebp
  351. leal 1859775393(%rdx,%r12,1),%r12d
  352. xorl %edi,%eax
  353. addl %ecx,%r12d
  354. roll $30,%esi
  355. addl %eax,%r12d
  356. roll $1,%ebp
  357. xorl 28(%rsp),%r14d
  358. movl %r13d,%eax
  359. movl %ebp,24(%rsp)
  360. movl %r12d,%ecx
  361. xorl 36(%rsp),%r14d
  362. xorl %edi,%eax
  363. roll $5,%ecx
  364. xorl 60(%rsp),%r14d
  365. leal 1859775393(%rbp,%r11,1),%r11d
  366. xorl %esi,%eax
  367. addl %ecx,%r11d
  368. roll $30,%r13d
  369. addl %eax,%r11d
  370. roll $1,%r14d
  371. xorl 32(%rsp),%edx
  372. movl %r12d,%eax
  373. movl %r14d,28(%rsp)
  374. movl %r11d,%ecx
  375. xorl 40(%rsp),%edx
  376. xorl %esi,%eax
  377. roll $5,%ecx
  378. xorl 0(%rsp),%edx
  379. leal 1859775393(%r14,%rdi,1),%edi
  380. xorl %r13d,%eax
  381. addl %ecx,%edi
  382. roll $30,%r12d
  383. addl %eax,%edi
  384. roll $1,%edx
  385. xorl 36(%rsp),%ebp
  386. movl %r11d,%eax
  387. movl %edx,32(%rsp)
  388. movl %edi,%ecx
  389. xorl 44(%rsp),%ebp
  390. xorl %r13d,%eax
  391. roll $5,%ecx
  392. xorl 4(%rsp),%ebp
  393. leal 1859775393(%rdx,%rsi,1),%esi
  394. xorl %r12d,%eax
  395. addl %ecx,%esi
  396. roll $30,%r11d
  397. addl %eax,%esi
  398. roll $1,%ebp
  399. xorl 40(%rsp),%r14d
  400. movl %edi,%eax
  401. movl %ebp,36(%rsp)
  402. movl %esi,%ecx
  403. xorl 48(%rsp),%r14d
  404. xorl %r12d,%eax
  405. roll $5,%ecx
  406. xorl 8(%rsp),%r14d
  407. leal 1859775393(%rbp,%r13,1),%r13d
  408. xorl %r11d,%eax
  409. addl %ecx,%r13d
  410. roll $30,%edi
  411. addl %eax,%r13d
  412. roll $1,%r14d
  413. xorl 44(%rsp),%edx
  414. movl %esi,%eax
  415. movl %r14d,40(%rsp)
  416. movl %r13d,%ecx
  417. xorl 52(%rsp),%edx
  418. xorl %r11d,%eax
  419. roll $5,%ecx
  420. xorl 12(%rsp),%edx
  421. leal 1859775393(%r14,%r12,1),%r12d
  422. xorl %edi,%eax
  423. addl %ecx,%r12d
  424. roll $30,%esi
  425. addl %eax,%r12d
  426. roll $1,%edx
  427. xorl 48(%rsp),%ebp
  428. movl %r13d,%eax
  429. movl %edx,44(%rsp)
  430. movl %r12d,%ecx
  431. xorl 56(%rsp),%ebp
  432. xorl %edi,%eax
  433. roll $5,%ecx
  434. xorl 16(%rsp),%ebp
  435. leal 1859775393(%rdx,%r11,1),%r11d
  436. xorl %esi,%eax
  437. addl %ecx,%r11d
  438. roll $30,%r13d
  439. addl %eax,%r11d
  440. roll $1,%ebp
  441. xorl 52(%rsp),%r14d
  442. movl %r12d,%eax
  443. movl %ebp,48(%rsp)
  444. movl %r11d,%ecx
  445. xorl 60(%rsp),%r14d
  446. xorl %esi,%eax
  447. roll $5,%ecx
  448. xorl 20(%rsp),%r14d
  449. leal 1859775393(%rbp,%rdi,1),%edi
  450. xorl %r13d,%eax
  451. addl %ecx,%edi
  452. roll $30,%r12d
  453. addl %eax,%edi
  454. roll $1,%r14d
  455. xorl 56(%rsp),%edx
  456. movl %r11d,%eax
  457. movl %r14d,52(%rsp)
  458. movl %edi,%ecx
  459. xorl 0(%rsp),%edx
  460. xorl %r13d,%eax
  461. roll $5,%ecx
  462. xorl 24(%rsp),%edx
  463. leal 1859775393(%r14,%rsi,1),%esi
  464. xorl %r12d,%eax
  465. addl %ecx,%esi
  466. roll $30,%r11d
  467. addl %eax,%esi
  468. roll $1,%edx
  469. xorl 60(%rsp),%ebp
  470. movl %edi,%eax
  471. movl %edx,56(%rsp)
  472. movl %esi,%ecx
  473. xorl 4(%rsp),%ebp
  474. xorl %r12d,%eax
  475. roll $5,%ecx
  476. xorl 28(%rsp),%ebp
  477. leal 1859775393(%rdx,%r13,1),%r13d
  478. xorl %r11d,%eax
  479. addl %ecx,%r13d
  480. roll $30,%edi
  481. addl %eax,%r13d
  482. roll $1,%ebp
  483. xorl 0(%rsp),%r14d
  484. movl %esi,%eax
  485. movl %ebp,60(%rsp)
  486. movl %r13d,%ecx
  487. xorl 8(%rsp),%r14d
  488. xorl %r11d,%eax
  489. roll $5,%ecx
  490. xorl 32(%rsp),%r14d
  491. leal 1859775393(%rbp,%r12,1),%r12d
  492. xorl %edi,%eax
  493. addl %ecx,%r12d
  494. roll $30,%esi
  495. addl %eax,%r12d
  496. roll $1,%r14d
  497. xorl 4(%rsp),%edx
  498. movl %r13d,%eax
  499. movl %r14d,0(%rsp)
  500. movl %r12d,%ecx
  501. xorl 12(%rsp),%edx
  502. xorl %edi,%eax
  503. roll $5,%ecx
  504. xorl 36(%rsp),%edx
  505. leal 1859775393(%r14,%r11,1),%r11d
  506. xorl %esi,%eax
  507. addl %ecx,%r11d
  508. roll $30,%r13d
  509. addl %eax,%r11d
  510. roll $1,%edx
  511. xorl 8(%rsp),%ebp
  512. movl %r12d,%eax
  513. movl %edx,4(%rsp)
  514. movl %r11d,%ecx
  515. xorl 16(%rsp),%ebp
  516. xorl %esi,%eax
  517. roll $5,%ecx
  518. xorl 40(%rsp),%ebp
  519. leal 1859775393(%rdx,%rdi,1),%edi
  520. xorl %r13d,%eax
  521. addl %ecx,%edi
  522. roll $30,%r12d
  523. addl %eax,%edi
  524. roll $1,%ebp
  525. xorl 12(%rsp),%r14d
  526. movl %r11d,%eax
  527. movl %ebp,8(%rsp)
  528. movl %edi,%ecx
  529. xorl 20(%rsp),%r14d
  530. xorl %r13d,%eax
  531. roll $5,%ecx
  532. xorl 44(%rsp),%r14d
  533. leal 1859775393(%rbp,%rsi,1),%esi
  534. xorl %r12d,%eax
  535. addl %ecx,%esi
  536. roll $30,%r11d
  537. addl %eax,%esi
  538. roll $1,%r14d
  539. xorl 16(%rsp),%edx
  540. movl %edi,%eax
  541. movl %r14d,12(%rsp)
  542. movl %esi,%ecx
  543. xorl 24(%rsp),%edx
  544. xorl %r12d,%eax
  545. roll $5,%ecx
  546. xorl 48(%rsp),%edx
  547. leal 1859775393(%r14,%r13,1),%r13d
  548. xorl %r11d,%eax
  549. addl %ecx,%r13d
  550. roll $30,%edi
  551. addl %eax,%r13d
  552. roll $1,%edx
  553. xorl 20(%rsp),%ebp
  554. movl %esi,%eax
  555. movl %edx,16(%rsp)
  556. movl %r13d,%ecx
  557. xorl 28(%rsp),%ebp
  558. xorl %r11d,%eax
  559. roll $5,%ecx
  560. xorl 52(%rsp),%ebp
  561. leal 1859775393(%rdx,%r12,1),%r12d
  562. xorl %edi,%eax
  563. addl %ecx,%r12d
  564. roll $30,%esi
  565. addl %eax,%r12d
  566. roll $1,%ebp
  567. xorl 24(%rsp),%r14d
  568. movl %r13d,%eax
  569. movl %ebp,20(%rsp)
  570. movl %r12d,%ecx
  571. xorl 32(%rsp),%r14d
  572. xorl %edi,%eax
  573. roll $5,%ecx
  574. xorl 56(%rsp),%r14d
  575. leal 1859775393(%rbp,%r11,1),%r11d
  576. xorl %esi,%eax
  577. addl %ecx,%r11d
  578. roll $30,%r13d
  579. addl %eax,%r11d
  580. roll $1,%r14d
  581. xorl 28(%rsp),%edx
  582. movl %r12d,%eax
  583. movl %r14d,24(%rsp)
  584. movl %r11d,%ecx
  585. xorl 36(%rsp),%edx
  586. xorl %esi,%eax
  587. roll $5,%ecx
  588. xorl 60(%rsp),%edx
  589. leal 1859775393(%r14,%rdi,1),%edi
  590. xorl %r13d,%eax
  591. addl %ecx,%edi
  592. roll $30,%r12d
  593. addl %eax,%edi
  594. roll $1,%edx
  595. xorl 32(%rsp),%ebp
  596. movl %r11d,%eax
  597. movl %edx,28(%rsp)
  598. movl %edi,%ecx
  599. xorl 40(%rsp),%ebp
  600. xorl %r13d,%eax
  601. roll $5,%ecx
  602. xorl 0(%rsp),%ebp
  603. leal 1859775393(%rdx,%rsi,1),%esi
  604. xorl %r12d,%eax
  605. addl %ecx,%esi
  606. roll $30,%r11d
  607. addl %eax,%esi
  608. roll $1,%ebp
  609. xorl 36(%rsp),%r14d
  610. movl %r12d,%eax
  611. movl %ebp,32(%rsp)
  612. movl %r12d,%ebx
  613. xorl 44(%rsp),%r14d
  614. andl %r11d,%eax
  615. movl %esi,%ecx
  616. xorl 4(%rsp),%r14d
  617. leal -1894007588(%rbp,%r13,1),%r13d
  618. xorl %r11d,%ebx
  619. roll $5,%ecx
  620. addl %eax,%r13d
  621. roll $1,%r14d
  622. andl %edi,%ebx
  623. addl %ecx,%r13d
  624. roll $30,%edi
  625. addl %ebx,%r13d
  626. xorl 40(%rsp),%edx
  627. movl %r11d,%eax
  628. movl %r14d,36(%rsp)
  629. movl %r11d,%ebx
  630. xorl 48(%rsp),%edx
  631. andl %edi,%eax
  632. movl %r13d,%ecx
  633. xorl 8(%rsp),%edx
  634. leal -1894007588(%r14,%r12,1),%r12d
  635. xorl %edi,%ebx
  636. roll $5,%ecx
  637. addl %eax,%r12d
  638. roll $1,%edx
  639. andl %esi,%ebx
  640. addl %ecx,%r12d
  641. roll $30,%esi
  642. addl %ebx,%r12d
  643. xorl 44(%rsp),%ebp
  644. movl %edi,%eax
  645. movl %edx,40(%rsp)
  646. movl %edi,%ebx
  647. xorl 52(%rsp),%ebp
  648. andl %esi,%eax
  649. movl %r12d,%ecx
  650. xorl 12(%rsp),%ebp
  651. leal -1894007588(%rdx,%r11,1),%r11d
  652. xorl %esi,%ebx
  653. roll $5,%ecx
  654. addl %eax,%r11d
  655. roll $1,%ebp
  656. andl %r13d,%ebx
  657. addl %ecx,%r11d
  658. roll $30,%r13d
  659. addl %ebx,%r11d
  660. xorl 48(%rsp),%r14d
  661. movl %esi,%eax
  662. movl %ebp,44(%rsp)
  663. movl %esi,%ebx
  664. xorl 56(%rsp),%r14d
  665. andl %r13d,%eax
  666. movl %r11d,%ecx
  667. xorl 16(%rsp),%r14d
  668. leal -1894007588(%rbp,%rdi,1),%edi
  669. xorl %r13d,%ebx
  670. roll $5,%ecx
  671. addl %eax,%edi
  672. roll $1,%r14d
  673. andl %r12d,%ebx
  674. addl %ecx,%edi
  675. roll $30,%r12d
  676. addl %ebx,%edi
  677. xorl 52(%rsp),%edx
  678. movl %r13d,%eax
  679. movl %r14d,48(%rsp)
  680. movl %r13d,%ebx
  681. xorl 60(%rsp),%edx
  682. andl %r12d,%eax
  683. movl %edi,%ecx
  684. xorl 20(%rsp),%edx
  685. leal -1894007588(%r14,%rsi,1),%esi
  686. xorl %r12d,%ebx
  687. roll $5,%ecx
  688. addl %eax,%esi
  689. roll $1,%edx
  690. andl %r11d,%ebx
  691. addl %ecx,%esi
  692. roll $30,%r11d
  693. addl %ebx,%esi
  694. xorl 56(%rsp),%ebp
  695. movl %r12d,%eax
  696. movl %edx,52(%rsp)
  697. movl %r12d,%ebx
  698. xorl 0(%rsp),%ebp
  699. andl %r11d,%eax
  700. movl %esi,%ecx
  701. xorl 24(%rsp),%ebp
  702. leal -1894007588(%rdx,%r13,1),%r13d
  703. xorl %r11d,%ebx
  704. roll $5,%ecx
  705. addl %eax,%r13d
  706. roll $1,%ebp
  707. andl %edi,%ebx
  708. addl %ecx,%r13d
  709. roll $30,%edi
  710. addl %ebx,%r13d
  711. xorl 60(%rsp),%r14d
  712. movl %r11d,%eax
  713. movl %ebp,56(%rsp)
  714. movl %r11d,%ebx
  715. xorl 4(%rsp),%r14d
  716. andl %edi,%eax
  717. movl %r13d,%ecx
  718. xorl 28(%rsp),%r14d
  719. leal -1894007588(%rbp,%r12,1),%r12d
  720. xorl %edi,%ebx
  721. roll $5,%ecx
  722. addl %eax,%r12d
  723. roll $1,%r14d
  724. andl %esi,%ebx
  725. addl %ecx,%r12d
  726. roll $30,%esi
  727. addl %ebx,%r12d
  728. xorl 0(%rsp),%edx
  729. movl %edi,%eax
  730. movl %r14d,60(%rsp)
  731. movl %edi,%ebx
  732. xorl 8(%rsp),%edx
  733. andl %esi,%eax
  734. movl %r12d,%ecx
  735. xorl 32(%rsp),%edx
  736. leal -1894007588(%r14,%r11,1),%r11d
  737. xorl %esi,%ebx
  738. roll $5,%ecx
  739. addl %eax,%r11d
  740. roll $1,%edx
  741. andl %r13d,%ebx
  742. addl %ecx,%r11d
  743. roll $30,%r13d
  744. addl %ebx,%r11d
  745. xorl 4(%rsp),%ebp
  746. movl %esi,%eax
  747. movl %edx,0(%rsp)
  748. movl %esi,%ebx
  749. xorl 12(%rsp),%ebp
  750. andl %r13d,%eax
  751. movl %r11d,%ecx
  752. xorl 36(%rsp),%ebp
  753. leal -1894007588(%rdx,%rdi,1),%edi
  754. xorl %r13d,%ebx
  755. roll $5,%ecx
  756. addl %eax,%edi
  757. roll $1,%ebp
  758. andl %r12d,%ebx
  759. addl %ecx,%edi
  760. roll $30,%r12d
  761. addl %ebx,%edi
  762. xorl 8(%rsp),%r14d
  763. movl %r13d,%eax
  764. movl %ebp,4(%rsp)
  765. movl %r13d,%ebx
  766. xorl 16(%rsp),%r14d
  767. andl %r12d,%eax
  768. movl %edi,%ecx
  769. xorl 40(%rsp),%r14d
  770. leal -1894007588(%rbp,%rsi,1),%esi
  771. xorl %r12d,%ebx
  772. roll $5,%ecx
  773. addl %eax,%esi
  774. roll $1,%r14d
  775. andl %r11d,%ebx
  776. addl %ecx,%esi
  777. roll $30,%r11d
  778. addl %ebx,%esi
  779. xorl 12(%rsp),%edx
  780. movl %r12d,%eax
  781. movl %r14d,8(%rsp)
  782. movl %r12d,%ebx
  783. xorl 20(%rsp),%edx
  784. andl %r11d,%eax
  785. movl %esi,%ecx
  786. xorl 44(%rsp),%edx
  787. leal -1894007588(%r14,%r13,1),%r13d
  788. xorl %r11d,%ebx
  789. roll $5,%ecx
  790. addl %eax,%r13d
  791. roll $1,%edx
  792. andl %edi,%ebx
  793. addl %ecx,%r13d
  794. roll $30,%edi
  795. addl %ebx,%r13d
  796. xorl 16(%rsp),%ebp
  797. movl %r11d,%eax
  798. movl %edx,12(%rsp)
  799. movl %r11d,%ebx
  800. xorl 24(%rsp),%ebp
  801. andl %edi,%eax
  802. movl %r13d,%ecx
  803. xorl 48(%rsp),%ebp
  804. leal -1894007588(%rdx,%r12,1),%r12d
  805. xorl %edi,%ebx
  806. roll $5,%ecx
  807. addl %eax,%r12d
  808. roll $1,%ebp
  809. andl %esi,%ebx
  810. addl %ecx,%r12d
  811. roll $30,%esi
  812. addl %ebx,%r12d
  813. xorl 20(%rsp),%r14d
  814. movl %edi,%eax
  815. movl %ebp,16(%rsp)
  816. movl %edi,%ebx
  817. xorl 28(%rsp),%r14d
  818. andl %esi,%eax
  819. movl %r12d,%ecx
  820. xorl 52(%rsp),%r14d
  821. leal -1894007588(%rbp,%r11,1),%r11d
  822. xorl %esi,%ebx
  823. roll $5,%ecx
  824. addl %eax,%r11d
  825. roll $1,%r14d
  826. andl %r13d,%ebx
  827. addl %ecx,%r11d
  828. roll $30,%r13d
  829. addl %ebx,%r11d
  830. xorl 24(%rsp),%edx
  831. movl %esi,%eax
  832. movl %r14d,20(%rsp)
  833. movl %esi,%ebx
  834. xorl 32(%rsp),%edx
  835. andl %r13d,%eax
  836. movl %r11d,%ecx
  837. xorl 56(%rsp),%edx
  838. leal -1894007588(%r14,%rdi,1),%edi
  839. xorl %r13d,%ebx
  840. roll $5,%ecx
  841. addl %eax,%edi
  842. roll $1,%edx
  843. andl %r12d,%ebx
  844. addl %ecx,%edi
  845. roll $30,%r12d
  846. addl %ebx,%edi
  847. xorl 28(%rsp),%ebp
  848. movl %r13d,%eax
  849. movl %edx,24(%rsp)
  850. movl %r13d,%ebx
  851. xorl 36(%rsp),%ebp
  852. andl %r12d,%eax
  853. movl %edi,%ecx
  854. xorl 60(%rsp),%ebp
  855. leal -1894007588(%rdx,%rsi,1),%esi
  856. xorl %r12d,%ebx
  857. roll $5,%ecx
  858. addl %eax,%esi
  859. roll $1,%ebp
  860. andl %r11d,%ebx
  861. addl %ecx,%esi
  862. roll $30,%r11d
  863. addl %ebx,%esi
  864. xorl 32(%rsp),%r14d
  865. movl %r12d,%eax
  866. movl %ebp,28(%rsp)
  867. movl %r12d,%ebx
  868. xorl 40(%rsp),%r14d
  869. andl %r11d,%eax
  870. movl %esi,%ecx
  871. xorl 0(%rsp),%r14d
  872. leal -1894007588(%rbp,%r13,1),%r13d
  873. xorl %r11d,%ebx
  874. roll $5,%ecx
  875. addl %eax,%r13d
  876. roll $1,%r14d
  877. andl %edi,%ebx
  878. addl %ecx,%r13d
  879. roll $30,%edi
  880. addl %ebx,%r13d
  881. xorl 36(%rsp),%edx
  882. movl %r11d,%eax
  883. movl %r14d,32(%rsp)
  884. movl %r11d,%ebx
  885. xorl 44(%rsp),%edx
  886. andl %edi,%eax
  887. movl %r13d,%ecx
  888. xorl 4(%rsp),%edx
  889. leal -1894007588(%r14,%r12,1),%r12d
  890. xorl %edi,%ebx
  891. roll $5,%ecx
  892. addl %eax,%r12d
  893. roll $1,%edx
  894. andl %esi,%ebx
  895. addl %ecx,%r12d
  896. roll $30,%esi
  897. addl %ebx,%r12d
  898. xorl 40(%rsp),%ebp
  899. movl %edi,%eax
  900. movl %edx,36(%rsp)
  901. movl %edi,%ebx
  902. xorl 48(%rsp),%ebp
  903. andl %esi,%eax
  904. movl %r12d,%ecx
  905. xorl 8(%rsp),%ebp
  906. leal -1894007588(%rdx,%r11,1),%r11d
  907. xorl %esi,%ebx
  908. roll $5,%ecx
  909. addl %eax,%r11d
  910. roll $1,%ebp
  911. andl %r13d,%ebx
  912. addl %ecx,%r11d
  913. roll $30,%r13d
  914. addl %ebx,%r11d
  915. xorl 44(%rsp),%r14d
  916. movl %esi,%eax
  917. movl %ebp,40(%rsp)
  918. movl %esi,%ebx
  919. xorl 52(%rsp),%r14d
  920. andl %r13d,%eax
  921. movl %r11d,%ecx
  922. xorl 12(%rsp),%r14d
  923. leal -1894007588(%rbp,%rdi,1),%edi
  924. xorl %r13d,%ebx
  925. roll $5,%ecx
  926. addl %eax,%edi
  927. roll $1,%r14d
  928. andl %r12d,%ebx
  929. addl %ecx,%edi
  930. roll $30,%r12d
  931. addl %ebx,%edi
  932. xorl 48(%rsp),%edx
  933. movl %r13d,%eax
  934. movl %r14d,44(%rsp)
  935. movl %r13d,%ebx
  936. xorl 56(%rsp),%edx
  937. andl %r12d,%eax
  938. movl %edi,%ecx
  939. xorl 16(%rsp),%edx
  940. leal -1894007588(%r14,%rsi,1),%esi
  941. xorl %r12d,%ebx
  942. roll $5,%ecx
  943. addl %eax,%esi
  944. roll $1,%edx
  945. andl %r11d,%ebx
  946. addl %ecx,%esi
  947. roll $30,%r11d
  948. addl %ebx,%esi
  949. xorl 52(%rsp),%ebp
  950. movl %edi,%eax
  951. movl %edx,48(%rsp)
  952. movl %esi,%ecx
  953. xorl 60(%rsp),%ebp
  954. xorl %r12d,%eax
  955. roll $5,%ecx
  956. xorl 20(%rsp),%ebp
  957. leal -899497514(%rdx,%r13,1),%r13d
  958. xorl %r11d,%eax
  959. addl %ecx,%r13d
  960. roll $30,%edi
  961. addl %eax,%r13d
  962. roll $1,%ebp
  963. xorl 56(%rsp),%r14d
  964. movl %esi,%eax
  965. movl %ebp,52(%rsp)
  966. movl %r13d,%ecx
  967. xorl 0(%rsp),%r14d
  968. xorl %r11d,%eax
  969. roll $5,%ecx
  970. xorl 24(%rsp),%r14d
  971. leal -899497514(%rbp,%r12,1),%r12d
  972. xorl %edi,%eax
  973. addl %ecx,%r12d
  974. roll $30,%esi
  975. addl %eax,%r12d
  976. roll $1,%r14d
  977. xorl 60(%rsp),%edx
  978. movl %r13d,%eax
  979. movl %r14d,56(%rsp)
  980. movl %r12d,%ecx
  981. xorl 4(%rsp),%edx
  982. xorl %edi,%eax
  983. roll $5,%ecx
  984. xorl 28(%rsp),%edx
  985. leal -899497514(%r14,%r11,1),%r11d
  986. xorl %esi,%eax
  987. addl %ecx,%r11d
  988. roll $30,%r13d
  989. addl %eax,%r11d
  990. roll $1,%edx
  991. xorl 0(%rsp),%ebp
  992. movl %r12d,%eax
  993. movl %edx,60(%rsp)
  994. movl %r11d,%ecx
  995. xorl 8(%rsp),%ebp
  996. xorl %esi,%eax
  997. roll $5,%ecx
  998. xorl 32(%rsp),%ebp
  999. leal -899497514(%rdx,%rdi,1),%edi
  1000. xorl %r13d,%eax
  1001. addl %ecx,%edi
  1002. roll $30,%r12d
  1003. addl %eax,%edi
  1004. roll $1,%ebp
  1005. xorl 4(%rsp),%r14d
  1006. movl %r11d,%eax
  1007. movl %ebp,0(%rsp)
  1008. movl %edi,%ecx
  1009. xorl 12(%rsp),%r14d
  1010. xorl %r13d,%eax
  1011. roll $5,%ecx
  1012. xorl 36(%rsp),%r14d
  1013. leal -899497514(%rbp,%rsi,1),%esi
  1014. xorl %r12d,%eax
  1015. addl %ecx,%esi
  1016. roll $30,%r11d
  1017. addl %eax,%esi
  1018. roll $1,%r14d
  1019. xorl 8(%rsp),%edx
  1020. movl %edi,%eax
  1021. movl %r14d,4(%rsp)
  1022. movl %esi,%ecx
  1023. xorl 16(%rsp),%edx
  1024. xorl %r12d,%eax
  1025. roll $5,%ecx
  1026. xorl 40(%rsp),%edx
  1027. leal -899497514(%r14,%r13,1),%r13d
  1028. xorl %r11d,%eax
  1029. addl %ecx,%r13d
  1030. roll $30,%edi
  1031. addl %eax,%r13d
  1032. roll $1,%edx
  1033. xorl 12(%rsp),%ebp
  1034. movl %esi,%eax
  1035. movl %edx,8(%rsp)
  1036. movl %r13d,%ecx
  1037. xorl 20(%rsp),%ebp
  1038. xorl %r11d,%eax
  1039. roll $5,%ecx
  1040. xorl 44(%rsp),%ebp
  1041. leal -899497514(%rdx,%r12,1),%r12d
  1042. xorl %edi,%eax
  1043. addl %ecx,%r12d
  1044. roll $30,%esi
  1045. addl %eax,%r12d
  1046. roll $1,%ebp
  1047. xorl 16(%rsp),%r14d
  1048. movl %r13d,%eax
  1049. movl %ebp,12(%rsp)
  1050. movl %r12d,%ecx
  1051. xorl 24(%rsp),%r14d
  1052. xorl %edi,%eax
  1053. roll $5,%ecx
  1054. xorl 48(%rsp),%r14d
  1055. leal -899497514(%rbp,%r11,1),%r11d
  1056. xorl %esi,%eax
  1057. addl %ecx,%r11d
  1058. roll $30,%r13d
  1059. addl %eax,%r11d
  1060. roll $1,%r14d
  1061. xorl 20(%rsp),%edx
  1062. movl %r12d,%eax
  1063. movl %r14d,16(%rsp)
  1064. movl %r11d,%ecx
  1065. xorl 28(%rsp),%edx
  1066. xorl %esi,%eax
  1067. roll $5,%ecx
  1068. xorl 52(%rsp),%edx
  1069. leal -899497514(%r14,%rdi,1),%edi
  1070. xorl %r13d,%eax
  1071. addl %ecx,%edi
  1072. roll $30,%r12d
  1073. addl %eax,%edi
  1074. roll $1,%edx
  1075. xorl 24(%rsp),%ebp
  1076. movl %r11d,%eax
  1077. movl %edx,20(%rsp)
  1078. movl %edi,%ecx
  1079. xorl 32(%rsp),%ebp
  1080. xorl %r13d,%eax
  1081. roll $5,%ecx
  1082. xorl 56(%rsp),%ebp
  1083. leal -899497514(%rdx,%rsi,1),%esi
  1084. xorl %r12d,%eax
  1085. addl %ecx,%esi
  1086. roll $30,%r11d
  1087. addl %eax,%esi
  1088. roll $1,%ebp
  1089. xorl 28(%rsp),%r14d
  1090. movl %edi,%eax
  1091. movl %ebp,24(%rsp)
  1092. movl %esi,%ecx
  1093. xorl 36(%rsp),%r14d
  1094. xorl %r12d,%eax
  1095. roll $5,%ecx
  1096. xorl 60(%rsp),%r14d
  1097. leal -899497514(%rbp,%r13,1),%r13d
  1098. xorl %r11d,%eax
  1099. addl %ecx,%r13d
  1100. roll $30,%edi
  1101. addl %eax,%r13d
  1102. roll $1,%r14d
  1103. xorl 32(%rsp),%edx
  1104. movl %esi,%eax
  1105. movl %r14d,28(%rsp)
  1106. movl %r13d,%ecx
  1107. xorl 40(%rsp),%edx
  1108. xorl %r11d,%eax
  1109. roll $5,%ecx
  1110. xorl 0(%rsp),%edx
  1111. leal -899497514(%r14,%r12,1),%r12d
  1112. xorl %edi,%eax
  1113. addl %ecx,%r12d
  1114. roll $30,%esi
  1115. addl %eax,%r12d
  1116. roll $1,%edx
  1117. xorl 36(%rsp),%ebp
  1118. movl %r13d,%eax
  1119. movl %r12d,%ecx
  1120. xorl 44(%rsp),%ebp
  1121. xorl %edi,%eax
  1122. roll $5,%ecx
  1123. xorl 4(%rsp),%ebp
  1124. leal -899497514(%rdx,%r11,1),%r11d
  1125. xorl %esi,%eax
  1126. addl %ecx,%r11d
  1127. roll $30,%r13d
  1128. addl %eax,%r11d
  1129. roll $1,%ebp
  1130. xorl 40(%rsp),%r14d
  1131. movl %r12d,%eax
  1132. movl %r11d,%ecx
  1133. xorl 48(%rsp),%r14d
  1134. xorl %esi,%eax
  1135. roll $5,%ecx
  1136. xorl 8(%rsp),%r14d
  1137. leal -899497514(%rbp,%rdi,1),%edi
  1138. xorl %r13d,%eax
  1139. addl %ecx,%edi
  1140. roll $30,%r12d
  1141. addl %eax,%edi
  1142. roll $1,%r14d
  1143. xorl 44(%rsp),%edx
  1144. movl %r11d,%eax
  1145. movl %edi,%ecx
  1146. xorl 52(%rsp),%edx
  1147. xorl %r13d,%eax
  1148. roll $5,%ecx
  1149. xorl 12(%rsp),%edx
  1150. leal -899497514(%r14,%rsi,1),%esi
  1151. xorl %r12d,%eax
  1152. addl %ecx,%esi
  1153. roll $30,%r11d
  1154. addl %eax,%esi
  1155. roll $1,%edx
  1156. xorl 48(%rsp),%ebp
  1157. movl %edi,%eax
  1158. movl %esi,%ecx
  1159. xorl 56(%rsp),%ebp
  1160. xorl %r12d,%eax
  1161. roll $5,%ecx
  1162. xorl 16(%rsp),%ebp
  1163. leal -899497514(%rdx,%r13,1),%r13d
  1164. xorl %r11d,%eax
  1165. addl %ecx,%r13d
  1166. roll $30,%edi
  1167. addl %eax,%r13d
  1168. roll $1,%ebp
  1169. xorl 52(%rsp),%r14d
  1170. movl %esi,%eax
  1171. movl %r13d,%ecx
  1172. xorl 60(%rsp),%r14d
  1173. xorl %r11d,%eax
  1174. roll $5,%ecx
  1175. xorl 20(%rsp),%r14d
  1176. leal -899497514(%rbp,%r12,1),%r12d
  1177. xorl %edi,%eax
  1178. addl %ecx,%r12d
  1179. roll $30,%esi
  1180. addl %eax,%r12d
  1181. roll $1,%r14d
  1182. xorl 56(%rsp),%edx
  1183. movl %r13d,%eax
  1184. movl %r12d,%ecx
  1185. xorl 0(%rsp),%edx
  1186. xorl %edi,%eax
  1187. roll $5,%ecx
  1188. xorl 24(%rsp),%edx
  1189. leal -899497514(%r14,%r11,1),%r11d
  1190. xorl %esi,%eax
  1191. addl %ecx,%r11d
  1192. roll $30,%r13d
  1193. addl %eax,%r11d
  1194. roll $1,%edx
  1195. xorl 60(%rsp),%ebp
  1196. movl %r12d,%eax
  1197. movl %r11d,%ecx
  1198. xorl 4(%rsp),%ebp
  1199. xorl %esi,%eax
  1200. roll $5,%ecx
  1201. xorl 28(%rsp),%ebp
  1202. leal -899497514(%rdx,%rdi,1),%edi
  1203. xorl %r13d,%eax
  1204. addl %ecx,%edi
  1205. roll $30,%r12d
  1206. addl %eax,%edi
  1207. roll $1,%ebp
  1208. movl %r11d,%eax
  1209. movl %edi,%ecx
  1210. xorl %r13d,%eax
  1211. leal -899497514(%rbp,%rsi,1),%esi
  1212. roll $5,%ecx
  1213. xorl %r12d,%eax
  1214. addl %ecx,%esi
  1215. roll $30,%r11d
  1216. addl %eax,%esi
  1217. addl 0(%r8),%esi
  1218. addl 4(%r8),%edi
  1219. addl 8(%r8),%r11d
  1220. addl 12(%r8),%r12d
  1221. addl 16(%r8),%r13d
  1222. movl %esi,0(%r8)
  1223. movl %edi,4(%r8)
  1224. movl %r11d,8(%r8)
  1225. movl %r12d,12(%r8)
  1226. movl %r13d,16(%r8)
  1227. subq $1,%r10
  1228. leaq 64(%r9),%r9
  1229. jnz L$loop
  1230. movq 64(%rsp),%rsi
  1231. movq -40(%rsi),%r14
  1232. movq -32(%rsi),%r13
  1233. movq -24(%rsi),%r12
  1234. movq -16(%rsi),%rbp
  1235. movq -8(%rsi),%rbx
  1236. leaq (%rsi),%rsp
  1237. L$epilogue:
  1238. .byte 0xf3,0xc3
  1239. .p2align 5
  1240. sha1_block_data_order_shaext:
  1241. _shaext_shortcut:
  1242. movdqu (%rdi),%xmm0
  1243. movd 16(%rdi),%xmm1
  1244. movdqa K_XX_XX+160(%rip),%xmm3
  1245. movdqu (%rsi),%xmm4
  1246. pshufd $27,%xmm0,%xmm0
  1247. movdqu 16(%rsi),%xmm5
  1248. pshufd $27,%xmm1,%xmm1
  1249. movdqu 32(%rsi),%xmm6
  1250. .byte 102,15,56,0,227
  1251. movdqu 48(%rsi),%xmm7
  1252. .byte 102,15,56,0,235
  1253. .byte 102,15,56,0,243
  1254. movdqa %xmm1,%xmm9
  1255. .byte 102,15,56,0,251
  1256. jmp L$oop_shaext
  1257. .p2align 4
  1258. L$oop_shaext:
  1259. decq %rdx
  1260. leaq 64(%rsi),%r8
  1261. paddd %xmm4,%xmm1
  1262. cmovneq %r8,%rsi
  1263. movdqa %xmm0,%xmm8
  1264. .byte 15,56,201,229
  1265. movdqa %xmm0,%xmm2
  1266. .byte 15,58,204,193,0
  1267. .byte 15,56,200,213
  1268. pxor %xmm6,%xmm4
  1269. .byte 15,56,201,238
  1270. .byte 15,56,202,231
  1271. movdqa %xmm0,%xmm1
  1272. .byte 15,58,204,194,0
  1273. .byte 15,56,200,206
  1274. pxor %xmm7,%xmm5
  1275. .byte 15,56,202,236
  1276. .byte 15,56,201,247
  1277. movdqa %xmm0,%xmm2
  1278. .byte 15,58,204,193,0
  1279. .byte 15,56,200,215
  1280. pxor %xmm4,%xmm6
  1281. .byte 15,56,201,252
  1282. .byte 15,56,202,245
  1283. movdqa %xmm0,%xmm1
  1284. .byte 15,58,204,194,0
  1285. .byte 15,56,200,204
  1286. pxor %xmm5,%xmm7
  1287. .byte 15,56,202,254
  1288. .byte 15,56,201,229
  1289. movdqa %xmm0,%xmm2
  1290. .byte 15,58,204,193,0
  1291. .byte 15,56,200,213
  1292. pxor %xmm6,%xmm4
  1293. .byte 15,56,201,238
  1294. .byte 15,56,202,231
  1295. movdqa %xmm0,%xmm1
  1296. .byte 15,58,204,194,1
  1297. .byte 15,56,200,206
  1298. pxor %xmm7,%xmm5
  1299. .byte 15,56,202,236
  1300. .byte 15,56,201,247
  1301. movdqa %xmm0,%xmm2
  1302. .byte 15,58,204,193,1
  1303. .byte 15,56,200,215
  1304. pxor %xmm4,%xmm6
  1305. .byte 15,56,201,252
  1306. .byte 15,56,202,245
  1307. movdqa %xmm0,%xmm1
  1308. .byte 15,58,204,194,1
  1309. .byte 15,56,200,204
  1310. pxor %xmm5,%xmm7
  1311. .byte 15,56,202,254
  1312. .byte 15,56,201,229
  1313. movdqa %xmm0,%xmm2
  1314. .byte 15,58,204,193,1
  1315. .byte 15,56,200,213
  1316. pxor %xmm6,%xmm4
  1317. .byte 15,56,201,238
  1318. .byte 15,56,202,231
  1319. movdqa %xmm0,%xmm1
  1320. .byte 15,58,204,194,1
  1321. .byte 15,56,200,206
  1322. pxor %xmm7,%xmm5
  1323. .byte 15,56,202,236
  1324. .byte 15,56,201,247
  1325. movdqa %xmm0,%xmm2
  1326. .byte 15,58,204,193,2
  1327. .byte 15,56,200,215
  1328. pxor %xmm4,%xmm6
  1329. .byte 15,56,201,252
  1330. .byte 15,56,202,245
  1331. movdqa %xmm0,%xmm1
  1332. .byte 15,58,204,194,2
  1333. .byte 15,56,200,204
  1334. pxor %xmm5,%xmm7
  1335. .byte 15,56,202,254
  1336. .byte 15,56,201,229
  1337. movdqa %xmm0,%xmm2
  1338. .byte 15,58,204,193,2
  1339. .byte 15,56,200,213
  1340. pxor %xmm6,%xmm4
  1341. .byte 15,56,201,238
  1342. .byte 15,56,202,231
  1343. movdqa %xmm0,%xmm1
  1344. .byte 15,58,204,194,2
  1345. .byte 15,56,200,206
  1346. pxor %xmm7,%xmm5
  1347. .byte 15,56,202,236
  1348. .byte 15,56,201,247
  1349. movdqa %xmm0,%xmm2
  1350. .byte 15,58,204,193,2
  1351. .byte 15,56,200,215
  1352. pxor %xmm4,%xmm6
  1353. .byte 15,56,201,252
  1354. .byte 15,56,202,245
  1355. movdqa %xmm0,%xmm1
  1356. .byte 15,58,204,194,3
  1357. .byte 15,56,200,204
  1358. pxor %xmm5,%xmm7
  1359. .byte 15,56,202,254
  1360. movdqu (%rsi),%xmm4
  1361. movdqa %xmm0,%xmm2
  1362. .byte 15,58,204,193,3
  1363. .byte 15,56,200,213
  1364. movdqu 16(%rsi),%xmm5
  1365. .byte 102,15,56,0,227
  1366. movdqa %xmm0,%xmm1
  1367. .byte 15,58,204,194,3
  1368. .byte 15,56,200,206
  1369. movdqu 32(%rsi),%xmm6
  1370. .byte 102,15,56,0,235
  1371. movdqa %xmm0,%xmm2
  1372. .byte 15,58,204,193,3
  1373. .byte 15,56,200,215
  1374. movdqu 48(%rsi),%xmm7
  1375. .byte 102,15,56,0,243
  1376. movdqa %xmm0,%xmm1
  1377. .byte 15,58,204,194,3
  1378. .byte 65,15,56,200,201
  1379. .byte 102,15,56,0,251
  1380. paddd %xmm8,%xmm0
  1381. movdqa %xmm1,%xmm9
  1382. jnz L$oop_shaext
  1383. pshufd $27,%xmm0,%xmm0
  1384. pshufd $27,%xmm1,%xmm1
  1385. movdqu %xmm0,(%rdi)
  1386. movd %xmm1,16(%rdi)
  1387. .byte 0xf3,0xc3
  1388. .p2align 4
  1389. sha1_block_data_order_ssse3:
  1390. _ssse3_shortcut:
  1391. movq %rsp,%r11
  1392. pushq %rbx
  1393. pushq %rbp
  1394. pushq %r12
  1395. pushq %r13
  1396. pushq %r14
  1397. leaq -64(%rsp),%rsp
  1398. andq $-64,%rsp
  1399. movq %rdi,%r8
  1400. movq %rsi,%r9
  1401. movq %rdx,%r10
  1402. shlq $6,%r10
  1403. addq %r9,%r10
  1404. leaq K_XX_XX+64(%rip),%r14
  1405. movl 0(%r8),%eax
  1406. movl 4(%r8),%ebx
  1407. movl 8(%r8),%ecx
  1408. movl 12(%r8),%edx
  1409. movl %ebx,%esi
  1410. movl 16(%r8),%ebp
  1411. movl %ecx,%edi
  1412. xorl %edx,%edi
  1413. andl %edi,%esi
  1414. movdqa 64(%r14),%xmm6
  1415. movdqa -64(%r14),%xmm9
  1416. movdqu 0(%r9),%xmm0
  1417. movdqu 16(%r9),%xmm1
  1418. movdqu 32(%r9),%xmm2
  1419. movdqu 48(%r9),%xmm3
  1420. .byte 102,15,56,0,198
  1421. .byte 102,15,56,0,206
  1422. .byte 102,15,56,0,214
  1423. addq $64,%r9
  1424. paddd %xmm9,%xmm0
  1425. .byte 102,15,56,0,222
  1426. paddd %xmm9,%xmm1
  1427. paddd %xmm9,%xmm2
  1428. movdqa %xmm0,0(%rsp)
  1429. psubd %xmm9,%xmm0
  1430. movdqa %xmm1,16(%rsp)
  1431. psubd %xmm9,%xmm1
  1432. movdqa %xmm2,32(%rsp)
  1433. psubd %xmm9,%xmm2
  1434. jmp L$oop_ssse3
  1435. .p2align 4
  1436. L$oop_ssse3:
  1437. rorl $2,%ebx
  1438. pshufd $238,%xmm0,%xmm4
  1439. xorl %edx,%esi
  1440. movdqa %xmm3,%xmm8
  1441. paddd %xmm3,%xmm9
  1442. movl %eax,%edi
  1443. addl 0(%rsp),%ebp
  1444. punpcklqdq %xmm1,%xmm4
  1445. xorl %ecx,%ebx
  1446. roll $5,%eax
  1447. addl %esi,%ebp
  1448. psrldq $4,%xmm8
  1449. andl %ebx,%edi
  1450. xorl %ecx,%ebx
  1451. pxor %xmm0,%xmm4
  1452. addl %eax,%ebp
  1453. rorl $7,%eax
  1454. pxor %xmm2,%xmm8
  1455. xorl %ecx,%edi
  1456. movl %ebp,%esi
  1457. addl 4(%rsp),%edx
  1458. pxor %xmm8,%xmm4
  1459. xorl %ebx,%eax
  1460. roll $5,%ebp
  1461. movdqa %xmm9,48(%rsp)
  1462. addl %edi,%edx
  1463. andl %eax,%esi
  1464. movdqa %xmm4,%xmm10
  1465. xorl %ebx,%eax
  1466. addl %ebp,%edx
  1467. rorl $7,%ebp
  1468. movdqa %xmm4,%xmm8
  1469. xorl %ebx,%esi
  1470. pslldq $12,%xmm10
  1471. paddd %xmm4,%xmm4
  1472. movl %edx,%edi
  1473. addl 8(%rsp),%ecx
  1474. psrld $31,%xmm8
  1475. xorl %eax,%ebp
  1476. roll $5,%edx
  1477. addl %esi,%ecx
  1478. movdqa %xmm10,%xmm9
  1479. andl %ebp,%edi
  1480. xorl %eax,%ebp
  1481. psrld $30,%xmm10
  1482. addl %edx,%ecx
  1483. rorl $7,%edx
  1484. por %xmm8,%xmm4
  1485. xorl %eax,%edi
  1486. movl %ecx,%esi
  1487. addl 12(%rsp),%ebx
  1488. pslld $2,%xmm9
  1489. pxor %xmm10,%xmm4
  1490. xorl %ebp,%edx
  1491. movdqa -64(%r14),%xmm10
  1492. roll $5,%ecx
  1493. addl %edi,%ebx
  1494. andl %edx,%esi
  1495. pxor %xmm9,%xmm4
  1496. xorl %ebp,%edx
  1497. addl %ecx,%ebx
  1498. rorl $7,%ecx
  1499. pshufd $238,%xmm1,%xmm5
  1500. xorl %ebp,%esi
  1501. movdqa %xmm4,%xmm9
  1502. paddd %xmm4,%xmm10
  1503. movl %ebx,%edi
  1504. addl 16(%rsp),%eax
  1505. punpcklqdq %xmm2,%xmm5
  1506. xorl %edx,%ecx
  1507. roll $5,%ebx
  1508. addl %esi,%eax
  1509. psrldq $4,%xmm9
  1510. andl %ecx,%edi
  1511. xorl %edx,%ecx
  1512. pxor %xmm1,%xmm5
  1513. addl %ebx,%eax
  1514. rorl $7,%ebx
  1515. pxor %xmm3,%xmm9
  1516. xorl %edx,%edi
  1517. movl %eax,%esi
  1518. addl 20(%rsp),%ebp
  1519. pxor %xmm9,%xmm5
  1520. xorl %ecx,%ebx
  1521. roll $5,%eax
  1522. movdqa %xmm10,0(%rsp)
  1523. addl %edi,%ebp
  1524. andl %ebx,%esi
  1525. movdqa %xmm5,%xmm8
  1526. xorl %ecx,%ebx
  1527. addl %eax,%ebp
  1528. rorl $7,%eax
  1529. movdqa %xmm5,%xmm9
  1530. xorl %ecx,%esi
  1531. pslldq $12,%xmm8
  1532. paddd %xmm5,%xmm5
  1533. movl %ebp,%edi
  1534. addl 24(%rsp),%edx
  1535. psrld $31,%xmm9
  1536. xorl %ebx,%eax
  1537. roll $5,%ebp
  1538. addl %esi,%edx
  1539. movdqa %xmm8,%xmm10
  1540. andl %eax,%edi
  1541. xorl %ebx,%eax
  1542. psrld $30,%xmm8
  1543. addl %ebp,%edx
  1544. rorl $7,%ebp
  1545. por %xmm9,%xmm5
  1546. xorl %ebx,%edi
  1547. movl %edx,%esi
  1548. addl 28(%rsp),%ecx
  1549. pslld $2,%xmm10
  1550. pxor %xmm8,%xmm5
  1551. xorl %eax,%ebp
  1552. movdqa -32(%r14),%xmm8
  1553. roll $5,%edx
  1554. addl %edi,%ecx
  1555. andl %ebp,%esi
  1556. pxor %xmm10,%xmm5
  1557. xorl %eax,%ebp
  1558. addl %edx,%ecx
  1559. rorl $7,%edx
  1560. pshufd $238,%xmm2,%xmm6
  1561. xorl %eax,%esi
  1562. movdqa %xmm5,%xmm10
  1563. paddd %xmm5,%xmm8
  1564. movl %ecx,%edi
  1565. addl 32(%rsp),%ebx
  1566. punpcklqdq %xmm3,%xmm6
  1567. xorl %ebp,%edx
  1568. roll $5,%ecx
  1569. addl %esi,%ebx
  1570. psrldq $4,%xmm10
  1571. andl %edx,%edi
  1572. xorl %ebp,%edx
  1573. pxor %xmm2,%xmm6
  1574. addl %ecx,%ebx
  1575. rorl $7,%ecx
  1576. pxor %xmm4,%xmm10
  1577. xorl %ebp,%edi
  1578. movl %ebx,%esi
  1579. addl 36(%rsp),%eax
  1580. pxor %xmm10,%xmm6
  1581. xorl %edx,%ecx
  1582. roll $5,%ebx
  1583. movdqa %xmm8,16(%rsp)
  1584. addl %edi,%eax
  1585. andl %ecx,%esi
  1586. movdqa %xmm6,%xmm9
  1587. xorl %edx,%ecx
  1588. addl %ebx,%eax
  1589. rorl $7,%ebx
  1590. movdqa %xmm6,%xmm10
  1591. xorl %edx,%esi
  1592. pslldq $12,%xmm9
  1593. paddd %xmm6,%xmm6
  1594. movl %eax,%edi
  1595. addl 40(%rsp),%ebp
  1596. psrld $31,%xmm10
  1597. xorl %ecx,%ebx
  1598. roll $5,%eax
  1599. addl %esi,%ebp
  1600. movdqa %xmm9,%xmm8
  1601. andl %ebx,%edi
  1602. xorl %ecx,%ebx
  1603. psrld $30,%xmm9
  1604. addl %eax,%ebp
  1605. rorl $7,%eax
  1606. por %xmm10,%xmm6
  1607. xorl %ecx,%edi
  1608. movl %ebp,%esi
  1609. addl 44(%rsp),%edx
  1610. pslld $2,%xmm8
  1611. pxor %xmm9,%xmm6
  1612. xorl %ebx,%eax
  1613. movdqa -32(%r14),%xmm9
  1614. roll $5,%ebp
  1615. addl %edi,%edx
  1616. andl %eax,%esi
  1617. pxor %xmm8,%xmm6
  1618. xorl %ebx,%eax
  1619. addl %ebp,%edx
  1620. rorl $7,%ebp
  1621. pshufd $238,%xmm3,%xmm7
  1622. xorl %ebx,%esi
  1623. movdqa %xmm6,%xmm8
  1624. paddd %xmm6,%xmm9
  1625. movl %edx,%edi
  1626. addl 48(%rsp),%ecx
  1627. punpcklqdq %xmm4,%xmm7
  1628. xorl %eax,%ebp
  1629. roll $5,%edx
  1630. addl %esi,%ecx
  1631. psrldq $4,%xmm8
  1632. andl %ebp,%edi
  1633. xorl %eax,%ebp
  1634. pxor %xmm3,%xmm7
  1635. addl %edx,%ecx
  1636. rorl $7,%edx
  1637. pxor %xmm5,%xmm8
  1638. xorl %eax,%edi
  1639. movl %ecx,%esi
  1640. addl 52(%rsp),%ebx
  1641. pxor %xmm8,%xmm7
  1642. xorl %ebp,%edx
  1643. roll $5,%ecx
  1644. movdqa %xmm9,32(%rsp)
  1645. addl %edi,%ebx
  1646. andl %edx,%esi
  1647. movdqa %xmm7,%xmm10
  1648. xorl %ebp,%edx
  1649. addl %ecx,%ebx
  1650. rorl $7,%ecx
  1651. movdqa %xmm7,%xmm8
  1652. xorl %ebp,%esi
  1653. pslldq $12,%xmm10
  1654. paddd %xmm7,%xmm7
  1655. movl %ebx,%edi
  1656. addl 56(%rsp),%eax
  1657. psrld $31,%xmm8
  1658. xorl %edx,%ecx
  1659. roll $5,%ebx
  1660. addl %esi,%eax
  1661. movdqa %xmm10,%xmm9
  1662. andl %ecx,%edi
  1663. xorl %edx,%ecx
  1664. psrld $30,%xmm10
  1665. addl %ebx,%eax
  1666. rorl $7,%ebx
  1667. por %xmm8,%xmm7
  1668. xorl %edx,%edi
  1669. movl %eax,%esi
  1670. addl 60(%rsp),%ebp
  1671. pslld $2,%xmm9
  1672. pxor %xmm10,%xmm7
  1673. xorl %ecx,%ebx
  1674. movdqa -32(%r14),%xmm10
  1675. roll $5,%eax
  1676. addl %edi,%ebp
  1677. andl %ebx,%esi
  1678. pxor %xmm9,%xmm7
  1679. pshufd $238,%xmm6,%xmm9
  1680. xorl %ecx,%ebx
  1681. addl %eax,%ebp
  1682. rorl $7,%eax
  1683. pxor %xmm4,%xmm0
  1684. xorl %ecx,%esi
  1685. movl %ebp,%edi
  1686. addl 0(%rsp),%edx
  1687. punpcklqdq %xmm7,%xmm9
  1688. xorl %ebx,%eax
  1689. roll $5,%ebp
  1690. pxor %xmm1,%xmm0
  1691. addl %esi,%edx
  1692. andl %eax,%edi
  1693. movdqa %xmm10,%xmm8
  1694. xorl %ebx,%eax
  1695. paddd %xmm7,%xmm10
  1696. addl %ebp,%edx
  1697. pxor %xmm9,%xmm0
  1698. rorl $7,%ebp
  1699. xorl %ebx,%edi
  1700. movl %edx,%esi
  1701. addl 4(%rsp),%ecx
  1702. movdqa %xmm0,%xmm9
  1703. xorl %eax,%ebp
  1704. roll $5,%edx
  1705. movdqa %xmm10,48(%rsp)
  1706. addl %edi,%ecx
  1707. andl %ebp,%esi
  1708. xorl %eax,%ebp
  1709. pslld $2,%xmm0
  1710. addl %edx,%ecx
  1711. rorl $7,%edx
  1712. psrld $30,%xmm9
  1713. xorl %eax,%esi
  1714. movl %ecx,%edi
  1715. addl 8(%rsp),%ebx
  1716. por %xmm9,%xmm0
  1717. xorl %ebp,%edx
  1718. roll $5,%ecx
  1719. pshufd $238,%xmm7,%xmm10
  1720. addl %esi,%ebx
  1721. andl %edx,%edi
  1722. xorl %ebp,%edx
  1723. addl %ecx,%ebx
  1724. addl 12(%rsp),%eax
  1725. xorl %ebp,%edi
  1726. movl %ebx,%esi
  1727. roll $5,%ebx
  1728. addl %edi,%eax
  1729. xorl %edx,%esi
  1730. rorl $7,%ecx
  1731. addl %ebx,%eax
  1732. pxor %xmm5,%xmm1
  1733. addl 16(%rsp),%ebp
  1734. xorl %ecx,%esi
  1735. punpcklqdq %xmm0,%xmm10
  1736. movl %eax,%edi
  1737. roll $5,%eax
  1738. pxor %xmm2,%xmm1
  1739. addl %esi,%ebp
  1740. xorl %ecx,%edi
  1741. movdqa %xmm8,%xmm9
  1742. rorl $7,%ebx
  1743. paddd %xmm0,%xmm8
  1744. addl %eax,%ebp
  1745. pxor %xmm10,%xmm1
  1746. addl 20(%rsp),%edx
  1747. xorl %ebx,%edi
  1748. movl %ebp,%esi
  1749. roll $5,%ebp
  1750. movdqa %xmm1,%xmm10
  1751. addl %edi,%edx
  1752. xorl %ebx,%esi
  1753. movdqa %xmm8,0(%rsp)
  1754. rorl $7,%eax
  1755. addl %ebp,%edx
  1756. addl 24(%rsp),%ecx
  1757. pslld $2,%xmm1
  1758. xorl %eax,%esi
  1759. movl %edx,%edi
  1760. psrld $30,%xmm10
  1761. roll $5,%edx
  1762. addl %esi,%ecx
  1763. xorl %eax,%edi
  1764. rorl $7,%ebp
  1765. por %xmm10,%xmm1
  1766. addl %edx,%ecx
  1767. addl 28(%rsp),%ebx
  1768. pshufd $238,%xmm0,%xmm8
  1769. xorl %ebp,%edi
  1770. movl %ecx,%esi
  1771. roll $5,%ecx
  1772. addl %edi,%ebx
  1773. xorl %ebp,%esi
  1774. rorl $7,%edx
  1775. addl %ecx,%ebx
  1776. pxor %xmm6,%xmm2
  1777. addl 32(%rsp),%eax
  1778. xorl %edx,%esi
  1779. punpcklqdq %xmm1,%xmm8
  1780. movl %ebx,%edi
  1781. roll $5,%ebx
  1782. pxor %xmm3,%xmm2
  1783. addl %esi,%eax
  1784. xorl %edx,%edi
  1785. movdqa 0(%r14),%xmm10
  1786. rorl $7,%ecx
  1787. paddd %xmm1,%xmm9
  1788. addl %ebx,%eax
  1789. pxor %xmm8,%xmm2
  1790. addl 36(%rsp),%ebp
  1791. xorl %ecx,%edi
  1792. movl %eax,%esi
  1793. roll $5,%eax
  1794. movdqa %xmm2,%xmm8
  1795. addl %edi,%ebp
  1796. xorl %ecx,%esi
  1797. movdqa %xmm9,16(%rsp)
  1798. rorl $7,%ebx
  1799. addl %eax,%ebp
  1800. addl 40(%rsp),%edx
  1801. pslld $2,%xmm2
  1802. xorl %ebx,%esi
  1803. movl %ebp,%edi
  1804. psrld $30,%xmm8
  1805. roll $5,%ebp
  1806. addl %esi,%edx
  1807. xorl %ebx,%edi
  1808. rorl $7,%eax
  1809. por %xmm8,%xmm2
  1810. addl %ebp,%edx
  1811. addl 44(%rsp),%ecx
  1812. pshufd $238,%xmm1,%xmm9
  1813. xorl %eax,%edi
  1814. movl %edx,%esi
  1815. roll $5,%edx
  1816. addl %edi,%ecx
  1817. xorl %eax,%esi
  1818. rorl $7,%ebp
  1819. addl %edx,%ecx
  1820. pxor %xmm7,%xmm3
  1821. addl 48(%rsp),%ebx
  1822. xorl %ebp,%esi
  1823. punpcklqdq %xmm2,%xmm9
  1824. movl %ecx,%edi
  1825. roll $5,%ecx
  1826. pxor %xmm4,%xmm3
  1827. addl %esi,%ebx
  1828. xorl %ebp,%edi
  1829. movdqa %xmm10,%xmm8
  1830. rorl $7,%edx
  1831. paddd %xmm2,%xmm10
  1832. addl %ecx,%ebx
  1833. pxor %xmm9,%xmm3
  1834. addl 52(%rsp),%eax
  1835. xorl %edx,%edi
  1836. movl %ebx,%esi
  1837. roll $5,%ebx
  1838. movdqa %xmm3,%xmm9
  1839. addl %edi,%eax
  1840. xorl %edx,%esi
  1841. movdqa %xmm10,32(%rsp)
  1842. rorl $7,%ecx
  1843. addl %ebx,%eax
  1844. addl 56(%rsp),%ebp
  1845. pslld $2,%xmm3
  1846. xorl %ecx,%esi
  1847. movl %eax,%edi
  1848. psrld $30,%xmm9
  1849. roll $5,%eax
  1850. addl %esi,%ebp
  1851. xorl %ecx,%edi
  1852. rorl $7,%ebx
  1853. por %xmm9,%xmm3
  1854. addl %eax,%ebp
  1855. addl 60(%rsp),%edx
  1856. pshufd $238,%xmm2,%xmm10
  1857. xorl %ebx,%edi
  1858. movl %ebp,%esi
  1859. roll $5,%ebp
  1860. addl %edi,%edx
  1861. xorl %ebx,%esi
  1862. rorl $7,%eax
  1863. addl %ebp,%edx
  1864. pxor %xmm0,%xmm4
  1865. addl 0(%rsp),%ecx
  1866. xorl %eax,%esi
  1867. punpcklqdq %xmm3,%xmm10
  1868. movl %edx,%edi
  1869. roll $5,%edx
  1870. pxor %xmm5,%xmm4
  1871. addl %esi,%ecx
  1872. xorl %eax,%edi
  1873. movdqa %xmm8,%xmm9
  1874. rorl $7,%ebp
  1875. paddd %xmm3,%xmm8
  1876. addl %edx,%ecx
  1877. pxor %xmm10,%xmm4
  1878. addl 4(%rsp),%ebx
  1879. xorl %ebp,%edi
  1880. movl %ecx,%esi
  1881. roll $5,%ecx
  1882. movdqa %xmm4,%xmm10
  1883. addl %edi,%ebx
  1884. xorl %ebp,%esi
  1885. movdqa %xmm8,48(%rsp)
  1886. rorl $7,%edx
  1887. addl %ecx,%ebx
  1888. addl 8(%rsp),%eax
  1889. pslld $2,%xmm4
  1890. xorl %edx,%esi
  1891. movl %ebx,%edi
  1892. psrld $30,%xmm10
  1893. roll $5,%ebx
  1894. addl %esi,%eax
  1895. xorl %edx,%edi
  1896. rorl $7,%ecx
  1897. por %xmm10,%xmm4
  1898. addl %ebx,%eax
  1899. addl 12(%rsp),%ebp
  1900. pshufd $238,%xmm3,%xmm8
  1901. xorl %ecx,%edi
  1902. movl %eax,%esi
  1903. roll $5,%eax
  1904. addl %edi,%ebp
  1905. xorl %ecx,%esi
  1906. rorl $7,%ebx
  1907. addl %eax,%ebp
  1908. pxor %xmm1,%xmm5
  1909. addl 16(%rsp),%edx
  1910. xorl %ebx,%esi
  1911. punpcklqdq %xmm4,%xmm8
  1912. movl %ebp,%edi
  1913. roll $5,%ebp
  1914. pxor %xmm6,%xmm5
  1915. addl %esi,%edx
  1916. xorl %ebx,%edi
  1917. movdqa %xmm9,%xmm10
  1918. rorl $7,%eax
  1919. paddd %xmm4,%xmm9
  1920. addl %ebp,%edx
  1921. pxor %xmm8,%xmm5
  1922. addl 20(%rsp),%ecx
  1923. xorl %eax,%edi
  1924. movl %edx,%esi
  1925. roll $5,%edx
  1926. movdqa %xmm5,%xmm8
  1927. addl %edi,%ecx
  1928. xorl %eax,%esi
  1929. movdqa %xmm9,0(%rsp)
  1930. rorl $7,%ebp
  1931. addl %edx,%ecx
  1932. addl 24(%rsp),%ebx
  1933. pslld $2,%xmm5
  1934. xorl %ebp,%esi
  1935. movl %ecx,%edi
  1936. psrld $30,%xmm8
  1937. roll $5,%ecx
  1938. addl %esi,%ebx
  1939. xorl %ebp,%edi
  1940. rorl $7,%edx
  1941. por %xmm8,%xmm5
  1942. addl %ecx,%ebx
  1943. addl 28(%rsp),%eax
  1944. pshufd $238,%xmm4,%xmm9
  1945. rorl $7,%ecx
  1946. movl %ebx,%esi
  1947. xorl %edx,%edi
  1948. roll $5,%ebx
  1949. addl %edi,%eax
  1950. xorl %ecx,%esi
  1951. xorl %edx,%ecx
  1952. addl %ebx,%eax
  1953. pxor %xmm2,%xmm6
  1954. addl 32(%rsp),%ebp
  1955. andl %ecx,%esi
  1956. xorl %edx,%ecx
  1957. rorl $7,%ebx
  1958. punpcklqdq %xmm5,%xmm9
  1959. movl %eax,%edi
  1960. xorl %ecx,%esi
  1961. pxor %xmm7,%xmm6
  1962. roll $5,%eax
  1963. addl %esi,%ebp
  1964. movdqa %xmm10,%xmm8
  1965. xorl %ebx,%edi
  1966. paddd %xmm5,%xmm10
  1967. xorl %ecx,%ebx
  1968. pxor %xmm9,%xmm6
  1969. addl %eax,%ebp
  1970. addl 36(%rsp),%edx
  1971. andl %ebx,%edi
  1972. xorl %ecx,%ebx
  1973. rorl $7,%eax
  1974. movdqa %xmm6,%xmm9
  1975. movl %ebp,%esi
  1976. xorl %ebx,%edi
  1977. movdqa %xmm10,16(%rsp)
  1978. roll $5,%ebp
  1979. addl %edi,%edx
  1980. xorl %eax,%esi
  1981. pslld $2,%xmm6
  1982. xorl %ebx,%eax
  1983. addl %ebp,%edx
  1984. psrld $30,%xmm9
  1985. addl 40(%rsp),%ecx
  1986. andl %eax,%esi
  1987. xorl %ebx,%eax
  1988. por %xmm9,%xmm6
  1989. rorl $7,%ebp
  1990. movl %edx,%edi
  1991. xorl %eax,%esi
  1992. roll $5,%edx
  1993. pshufd $238,%xmm5,%xmm10
  1994. addl %esi,%ecx
  1995. xorl %ebp,%edi
  1996. xorl %eax,%ebp
  1997. addl %edx,%ecx
  1998. addl 44(%rsp),%ebx
  1999. andl %ebp,%edi
  2000. xorl %eax,%ebp
  2001. rorl $7,%edx
  2002. movl %ecx,%esi
  2003. xorl %ebp,%edi
  2004. roll $5,%ecx
  2005. addl %edi,%ebx
  2006. xorl %edx,%esi
  2007. xorl %ebp,%edx
  2008. addl %ecx,%ebx
  2009. pxor %xmm3,%xmm7
  2010. addl 48(%rsp),%eax
  2011. andl %edx,%esi
  2012. xorl %ebp,%edx
  2013. rorl $7,%ecx
  2014. punpcklqdq %xmm6,%xmm10
  2015. movl %ebx,%edi
  2016. xorl %edx,%esi
  2017. pxor %xmm0,%xmm7
  2018. roll $5,%ebx
  2019. addl %esi,%eax
  2020. movdqa 32(%r14),%xmm9
  2021. xorl %ecx,%edi
  2022. paddd %xmm6,%xmm8
  2023. xorl %edx,%ecx
  2024. pxor %xmm10,%xmm7
  2025. addl %ebx,%eax
  2026. addl 52(%rsp),%ebp
  2027. andl %ecx,%edi
  2028. xorl %edx,%ecx
  2029. rorl $7,%ebx
  2030. movdqa %xmm7,%xmm10
  2031. movl %eax,%esi
  2032. xorl %ecx,%edi
  2033. movdqa %xmm8,32(%rsp)
  2034. roll $5,%eax
  2035. addl %edi,%ebp
  2036. xorl %ebx,%esi
  2037. pslld $2,%xmm7
  2038. xorl %ecx,%ebx
  2039. addl %eax,%ebp
  2040. psrld $30,%xmm10
  2041. addl 56(%rsp),%edx
  2042. andl %ebx,%esi
  2043. xorl %ecx,%ebx
  2044. por %xmm10,%xmm7
  2045. rorl $7,%eax
  2046. movl %ebp,%edi
  2047. xorl %ebx,%esi
  2048. roll $5,%ebp
  2049. pshufd $238,%xmm6,%xmm8
  2050. addl %esi,%edx
  2051. xorl %eax,%edi
  2052. xorl %ebx,%eax
  2053. addl %ebp,%edx
  2054. addl 60(%rsp),%ecx
  2055. andl %eax,%edi
  2056. xorl %ebx,%eax
  2057. rorl $7,%ebp
  2058. movl %edx,%esi
  2059. xorl %eax,%edi
  2060. roll $5,%edx
  2061. addl %edi,%ecx
  2062. xorl %ebp,%esi
  2063. xorl %eax,%ebp
  2064. addl %edx,%ecx
  2065. pxor %xmm4,%xmm0
  2066. addl 0(%rsp),%ebx
  2067. andl %ebp,%esi
  2068. xorl %eax,%ebp
  2069. rorl $7,%edx
  2070. punpcklqdq %xmm7,%xmm8
  2071. movl %ecx,%edi
  2072. xorl %ebp,%esi
  2073. pxor %xmm1,%xmm0
  2074. roll $5,%ecx
  2075. addl %esi,%ebx
  2076. movdqa %xmm9,%xmm10
  2077. xorl %edx,%edi
  2078. paddd %xmm7,%xmm9
  2079. xorl %ebp,%edx
  2080. pxor %xmm8,%xmm0
  2081. addl %ecx,%ebx
  2082. addl 4(%rsp),%eax
  2083. andl %edx,%edi
  2084. xorl %ebp,%edx
  2085. rorl $7,%ecx
  2086. movdqa %xmm0,%xmm8
  2087. movl %ebx,%esi
  2088. xorl %edx,%edi
  2089. movdqa %xmm9,48(%rsp)
  2090. roll $5,%ebx
  2091. addl %edi,%eax
  2092. xorl %ecx,%esi
  2093. pslld $2,%xmm0
  2094. xorl %edx,%ecx
  2095. addl %ebx,%eax
  2096. psrld $30,%xmm8
  2097. addl 8(%rsp),%ebp
  2098. andl %ecx,%esi
  2099. xorl %edx,%ecx
  2100. por %xmm8,%xmm0
  2101. rorl $7,%ebx
  2102. movl %eax,%edi
  2103. xorl %ecx,%esi
  2104. roll $5,%eax
  2105. pshufd $238,%xmm7,%xmm9
  2106. addl %esi,%ebp
  2107. xorl %ebx,%edi
  2108. xorl %ecx,%ebx
  2109. addl %eax,%ebp
  2110. addl 12(%rsp),%edx
  2111. andl %ebx,%edi
  2112. xorl %ecx,%ebx
  2113. rorl $7,%eax
  2114. movl %ebp,%esi
  2115. xorl %ebx,%edi
  2116. roll $5,%ebp
  2117. addl %edi,%edx
  2118. xorl %eax,%esi
  2119. xorl %ebx,%eax
  2120. addl %ebp,%edx
  2121. pxor %xmm5,%xmm1
  2122. addl 16(%rsp),%ecx
  2123. andl %eax,%esi
  2124. xorl %ebx,%eax
  2125. rorl $7,%ebp
  2126. punpcklqdq %xmm0,%xmm9
  2127. movl %edx,%edi
  2128. xorl %eax,%esi
  2129. pxor %xmm2,%xmm1
  2130. roll $5,%edx
  2131. addl %esi,%ecx
  2132. movdqa %xmm10,%xmm8
  2133. xorl %ebp,%edi
  2134. paddd %xmm0,%xmm10
  2135. xorl %eax,%ebp
  2136. pxor %xmm9,%xmm1
  2137. addl %edx,%ecx
  2138. addl 20(%rsp),%ebx
  2139. andl %ebp,%edi
  2140. xorl %eax,%ebp
  2141. rorl $7,%edx
  2142. movdqa %xmm1,%xmm9
  2143. movl %ecx,%esi
  2144. xorl %ebp,%edi
  2145. movdqa %xmm10,0(%rsp)
  2146. roll $5,%ecx
  2147. addl %edi,%ebx
  2148. xorl %edx,%esi
  2149. pslld $2,%xmm1
  2150. xorl %ebp,%edx
  2151. addl %ecx,%ebx
  2152. psrld $30,%xmm9
  2153. addl 24(%rsp),%eax
  2154. andl %edx,%esi
  2155. xorl %ebp,%edx
  2156. por %xmm9,%xmm1
  2157. rorl $7,%ecx
  2158. movl %ebx,%edi
  2159. xorl %edx,%esi
  2160. roll $5,%ebx
  2161. pshufd $238,%xmm0,%xmm10
  2162. addl %esi,%eax
  2163. xorl %ecx,%edi
  2164. xorl %edx,%ecx
  2165. addl %ebx,%eax
  2166. addl 28(%rsp),%ebp
  2167. andl %ecx,%edi
  2168. xorl %edx,%ecx
  2169. rorl $7,%ebx
  2170. movl %eax,%esi
  2171. xorl %ecx,%edi
  2172. roll $5,%eax
  2173. addl %edi,%ebp
  2174. xorl %ebx,%esi
  2175. xorl %ecx,%ebx
  2176. addl %eax,%ebp
  2177. pxor %xmm6,%xmm2
  2178. addl 32(%rsp),%edx
  2179. andl %ebx,%esi
  2180. xorl %ecx,%ebx
  2181. rorl $7,%eax
  2182. punpcklqdq %xmm1,%xmm10
  2183. movl %ebp,%edi
  2184. xorl %ebx,%esi
  2185. pxor %xmm3,%xmm2
  2186. roll $5,%ebp
  2187. addl %esi,%edx
  2188. movdqa %xmm8,%xmm9
  2189. xorl %eax,%edi
  2190. paddd %xmm1,%xmm8
  2191. xorl %ebx,%eax
  2192. pxor %xmm10,%xmm2
  2193. addl %ebp,%edx
  2194. addl 36(%rsp),%ecx
  2195. andl %eax,%edi
  2196. xorl %ebx,%eax
  2197. rorl $7,%ebp
  2198. movdqa %xmm2,%xmm10
  2199. movl %edx,%esi
  2200. xorl %eax,%edi
  2201. movdqa %xmm8,16(%rsp)
  2202. roll $5,%edx
  2203. addl %edi,%ecx
  2204. xorl %ebp,%esi
  2205. pslld $2,%xmm2
  2206. xorl %eax,%ebp
  2207. addl %edx,%ecx
  2208. psrld $30,%xmm10
  2209. addl 40(%rsp),%ebx
  2210. andl %ebp,%esi
  2211. xorl %eax,%ebp
  2212. por %xmm10,%xmm2
  2213. rorl $7,%edx
  2214. movl %ecx,%edi
  2215. xorl %ebp,%esi
  2216. roll $5,%ecx
  2217. pshufd $238,%xmm1,%xmm8
  2218. addl %esi,%ebx
  2219. xorl %edx,%edi
  2220. xorl %ebp,%edx
  2221. addl %ecx,%ebx
  2222. addl 44(%rsp),%eax
  2223. andl %edx,%edi
  2224. xorl %ebp,%edx
  2225. rorl $7,%ecx
  2226. movl %ebx,%esi
  2227. xorl %edx,%edi
  2228. roll $5,%ebx
  2229. addl %edi,%eax
  2230. xorl %edx,%esi
  2231. addl %ebx,%eax
  2232. pxor %xmm7,%xmm3
  2233. addl 48(%rsp),%ebp
  2234. xorl %ecx,%esi
  2235. punpcklqdq %xmm2,%xmm8
  2236. movl %eax,%edi
  2237. roll $5,%eax
  2238. pxor %xmm4,%xmm3
  2239. addl %esi,%ebp
  2240. xorl %ecx,%edi
  2241. movdqa %xmm9,%xmm10
  2242. rorl $7,%ebx
  2243. paddd %xmm2,%xmm9
  2244. addl %eax,%ebp
  2245. pxor %xmm8,%xmm3
  2246. addl 52(%rsp),%edx
  2247. xorl %ebx,%edi
  2248. movl %ebp,%esi
  2249. roll $5,%ebp
  2250. movdqa %xmm3,%xmm8
  2251. addl %edi,%edx
  2252. xorl %ebx,%esi
  2253. movdqa %xmm9,32(%rsp)
  2254. rorl $7,%eax
  2255. addl %ebp,%edx
  2256. addl 56(%rsp),%ecx
  2257. pslld $2,%xmm3
  2258. xorl %eax,%esi
  2259. movl %edx,%edi
  2260. psrld $30,%xmm8
  2261. roll $5,%edx
  2262. addl %esi,%ecx
  2263. xorl %eax,%edi
  2264. rorl $7,%ebp
  2265. por %xmm8,%xmm3
  2266. addl %edx,%ecx
  2267. addl 60(%rsp),%ebx
  2268. xorl %ebp,%edi
  2269. movl %ecx,%esi
  2270. roll $5,%ecx
  2271. addl %edi,%ebx
  2272. xorl %ebp,%esi
  2273. rorl $7,%edx
  2274. addl %ecx,%ebx
  2275. addl 0(%rsp),%eax
  2276. xorl %edx,%esi
  2277. movl %ebx,%edi
  2278. roll $5,%ebx
  2279. paddd %xmm3,%xmm10
  2280. addl %esi,%eax
  2281. xorl %edx,%edi
  2282. movdqa %xmm10,48(%rsp)
  2283. rorl $7,%ecx
  2284. addl %ebx,%eax
  2285. addl 4(%rsp),%ebp
  2286. xorl %ecx,%edi
  2287. movl %eax,%esi
  2288. roll $5,%eax
  2289. addl %edi,%ebp
  2290. xorl %ecx,%esi
  2291. rorl $7,%ebx
  2292. addl %eax,%ebp
  2293. addl 8(%rsp),%edx
  2294. xorl %ebx,%esi
  2295. movl %ebp,%edi
  2296. roll $5,%ebp
  2297. addl %esi,%edx
  2298. xorl %ebx,%edi
  2299. rorl $7,%eax
  2300. addl %ebp,%edx
  2301. addl 12(%rsp),%ecx
  2302. xorl %eax,%edi
  2303. movl %edx,%esi
  2304. roll $5,%edx
  2305. addl %edi,%ecx
  2306. xorl %eax,%esi
  2307. rorl $7,%ebp
  2308. addl %edx,%ecx
  2309. cmpq %r10,%r9
  2310. je L$done_ssse3
  2311. movdqa 64(%r14),%xmm6
  2312. movdqa -64(%r14),%xmm9
  2313. movdqu 0(%r9),%xmm0
  2314. movdqu 16(%r9),%xmm1
  2315. movdqu 32(%r9),%xmm2
  2316. movdqu 48(%r9),%xmm3
  2317. .byte 102,15,56,0,198
  2318. addq $64,%r9
  2319. addl 16(%rsp),%ebx
  2320. xorl %ebp,%esi
  2321. movl %ecx,%edi
  2322. .byte 102,15,56,0,206
  2323. roll $5,%ecx
  2324. addl %esi,%ebx
  2325. xorl %ebp,%edi
  2326. rorl $7,%edx
  2327. paddd %xmm9,%xmm0
  2328. addl %ecx,%ebx
  2329. addl 20(%rsp),%eax
  2330. xorl %edx,%edi
  2331. movl %ebx,%esi
  2332. movdqa %xmm0,0(%rsp)
  2333. roll $5,%ebx
  2334. addl %edi,%eax
  2335. xorl %edx,%esi
  2336. rorl $7,%ecx
  2337. psubd %xmm9,%xmm0
  2338. addl %ebx,%eax
  2339. addl 24(%rsp),%ebp
  2340. xorl %ecx,%esi
  2341. movl %eax,%edi
  2342. roll $5,%eax
  2343. addl %esi,%ebp
  2344. xorl %ecx,%edi
  2345. rorl $7,%ebx
  2346. addl %eax,%ebp
  2347. addl 28(%rsp),%edx
  2348. xorl %ebx,%edi
  2349. movl %ebp,%esi
  2350. roll $5,%ebp
  2351. addl %edi,%edx
  2352. xorl %ebx,%esi
  2353. rorl $7,%eax
  2354. addl %ebp,%edx
  2355. addl 32(%rsp),%ecx
  2356. xorl %eax,%esi
  2357. movl %edx,%edi
  2358. .byte 102,15,56,0,214
  2359. roll $5,%edx
  2360. addl %esi,%ecx
  2361. xorl %eax,%edi
  2362. rorl $7,%ebp
  2363. paddd %xmm9,%xmm1
  2364. addl %edx,%ecx
  2365. addl 36(%rsp),%ebx
  2366. xorl %ebp,%edi
  2367. movl %ecx,%esi
  2368. movdqa %xmm1,16(%rsp)
  2369. roll $5,%ecx
  2370. addl %edi,%ebx
  2371. xorl %ebp,%esi
  2372. rorl $7,%edx
  2373. psubd %xmm9,%xmm1
  2374. addl %ecx,%ebx
  2375. addl 40(%rsp),%eax
  2376. xorl %edx,%esi
  2377. movl %ebx,%edi
  2378. roll $5,%ebx
  2379. addl %esi,%eax
  2380. xorl %edx,%edi
  2381. rorl $7,%ecx
  2382. addl %ebx,%eax
  2383. addl 44(%rsp),%ebp
  2384. xorl %ecx,%edi
  2385. movl %eax,%esi
  2386. roll $5,%eax
  2387. addl %edi,%ebp
  2388. xorl %ecx,%esi
  2389. rorl $7,%ebx
  2390. addl %eax,%ebp
  2391. addl 48(%rsp),%edx
  2392. xorl %ebx,%esi
  2393. movl %ebp,%edi
  2394. .byte 102,15,56,0,222
  2395. roll $5,%ebp
  2396. addl %esi,%edx
  2397. xorl %ebx,%edi
  2398. rorl $7,%eax
  2399. paddd %xmm9,%xmm2
  2400. addl %ebp,%edx
  2401. addl 52(%rsp),%ecx
  2402. xorl %eax,%edi
  2403. movl %edx,%esi
  2404. movdqa %xmm2,32(%rsp)
  2405. roll $5,%edx
  2406. addl %edi,%ecx
  2407. xorl %eax,%esi
  2408. rorl $7,%ebp
  2409. psubd %xmm9,%xmm2
  2410. addl %edx,%ecx
  2411. addl 56(%rsp),%ebx
  2412. xorl %ebp,%esi
  2413. movl %ecx,%edi
  2414. roll $5,%ecx
  2415. addl %esi,%ebx
  2416. xorl %ebp,%edi
  2417. rorl $7,%edx
  2418. addl %ecx,%ebx
  2419. addl 60(%rsp),%eax
  2420. xorl %edx,%edi
  2421. movl %ebx,%esi
  2422. roll $5,%ebx
  2423. addl %edi,%eax
  2424. rorl $7,%ecx
  2425. addl %ebx,%eax
  2426. addl 0(%r8),%eax
  2427. addl 4(%r8),%esi
  2428. addl 8(%r8),%ecx
  2429. addl 12(%r8),%edx
  2430. movl %eax,0(%r8)
  2431. addl 16(%r8),%ebp
  2432. movl %esi,4(%r8)
  2433. movl %esi,%ebx
  2434. movl %ecx,8(%r8)
  2435. movl %ecx,%edi
  2436. movl %edx,12(%r8)
  2437. xorl %edx,%edi
  2438. movl %ebp,16(%r8)
  2439. andl %edi,%esi
  2440. jmp L$oop_ssse3
  2441. .p2align 4
  2442. L$done_ssse3:
  2443. addl 16(%rsp),%ebx
  2444. xorl %ebp,%esi
  2445. movl %ecx,%edi
  2446. roll $5,%ecx
  2447. addl %esi,%ebx
  2448. xorl %ebp,%edi
  2449. rorl $7,%edx
  2450. addl %ecx,%ebx
  2451. addl 20(%rsp),%eax
  2452. xorl %edx,%edi
  2453. movl %ebx,%esi
  2454. roll $5,%ebx
  2455. addl %edi,%eax
  2456. xorl %edx,%esi
  2457. rorl $7,%ecx
  2458. addl %ebx,%eax
  2459. addl 24(%rsp),%ebp
  2460. xorl %ecx,%esi
  2461. movl %eax,%edi
  2462. roll $5,%eax
  2463. addl %esi,%ebp
  2464. xorl %ecx,%edi
  2465. rorl $7,%ebx
  2466. addl %eax,%ebp
  2467. addl 28(%rsp),%edx
  2468. xorl %ebx,%edi
  2469. movl %ebp,%esi
  2470. roll $5,%ebp
  2471. addl %edi,%edx
  2472. xorl %ebx,%esi
  2473. rorl $7,%eax
  2474. addl %ebp,%edx
  2475. addl 32(%rsp),%ecx
  2476. xorl %eax,%esi
  2477. movl %edx,%edi
  2478. roll $5,%edx
  2479. addl %esi,%ecx
  2480. xorl %eax,%edi
  2481. rorl $7,%ebp
  2482. addl %edx,%ecx
  2483. addl 36(%rsp),%ebx
  2484. xorl %ebp,%edi
  2485. movl %ecx,%esi
  2486. roll $5,%ecx
  2487. addl %edi,%ebx
  2488. xorl %ebp,%esi
  2489. rorl $7,%edx
  2490. addl %ecx,%ebx
  2491. addl 40(%rsp),%eax
  2492. xorl %edx,%esi
  2493. movl %ebx,%edi
  2494. roll $5,%ebx
  2495. addl %esi,%eax
  2496. xorl %edx,%edi
  2497. rorl $7,%ecx
  2498. addl %ebx,%eax
  2499. addl 44(%rsp),%ebp
  2500. xorl %ecx,%edi
  2501. movl %eax,%esi
  2502. roll $5,%eax
  2503. addl %edi,%ebp
  2504. xorl %ecx,%esi
  2505. rorl $7,%ebx
  2506. addl %eax,%ebp
  2507. addl 48(%rsp),%edx
  2508. xorl %ebx,%esi
  2509. movl %ebp,%edi
  2510. roll $5,%ebp
  2511. addl %esi,%edx
  2512. xorl %ebx,%edi
  2513. rorl $7,%eax
  2514. addl %ebp,%edx
  2515. addl 52(%rsp),%ecx
  2516. xorl %eax,%edi
  2517. movl %edx,%esi
  2518. roll $5,%edx
  2519. addl %edi,%ecx
  2520. xorl %eax,%esi
  2521. rorl $7,%ebp
  2522. addl %edx,%ecx
  2523. addl 56(%rsp),%ebx
  2524. xorl %ebp,%esi
  2525. movl %ecx,%edi
  2526. roll $5,%ecx
  2527. addl %esi,%ebx
  2528. xorl %ebp,%edi
  2529. rorl $7,%edx
  2530. addl %ecx,%ebx
  2531. addl 60(%rsp),%eax
  2532. xorl %edx,%edi
  2533. movl %ebx,%esi
  2534. roll $5,%ebx
  2535. addl %edi,%eax
  2536. rorl $7,%ecx
  2537. addl %ebx,%eax
  2538. addl 0(%r8),%eax
  2539. addl 4(%r8),%esi
  2540. addl 8(%r8),%ecx
  2541. movl %eax,0(%r8)
  2542. addl 12(%r8),%edx
  2543. movl %esi,4(%r8)
  2544. addl 16(%r8),%ebp
  2545. movl %ecx,8(%r8)
  2546. movl %edx,12(%r8)
  2547. movl %ebp,16(%r8)
  2548. movq -40(%r11),%r14
  2549. movq -32(%r11),%r13
  2550. movq -24(%r11),%r12
  2551. movq -16(%r11),%rbp
  2552. movq -8(%r11),%rbx
  2553. leaq (%r11),%rsp
  2554. L$epilogue_ssse3:
  2555. .byte 0xf3,0xc3
  2556. .p2align 4
  2557. sha1_block_data_order_avx:
  2558. _avx_shortcut:
  2559. movq %rsp,%r11
  2560. pushq %rbx
  2561. pushq %rbp
  2562. pushq %r12
  2563. pushq %r13
  2564. pushq %r14
  2565. leaq -64(%rsp),%rsp
  2566. vzeroupper
  2567. andq $-64,%rsp
  2568. movq %rdi,%r8
  2569. movq %rsi,%r9
  2570. movq %rdx,%r10
  2571. shlq $6,%r10
  2572. addq %r9,%r10
  2573. leaq K_XX_XX+64(%rip),%r14
  2574. movl 0(%r8),%eax
  2575. movl 4(%r8),%ebx
  2576. movl 8(%r8),%ecx
  2577. movl 12(%r8),%edx
  2578. movl %ebx,%esi
  2579. movl 16(%r8),%ebp
  2580. movl %ecx,%edi
  2581. xorl %edx,%edi
  2582. andl %edi,%esi
  2583. vmovdqa 64(%r14),%xmm6
  2584. vmovdqa -64(%r14),%xmm11
  2585. vmovdqu 0(%r9),%xmm0
  2586. vmovdqu 16(%r9),%xmm1
  2587. vmovdqu 32(%r9),%xmm2
  2588. vmovdqu 48(%r9),%xmm3
  2589. vpshufb %xmm6,%xmm0,%xmm0
  2590. addq $64,%r9
  2591. vpshufb %xmm6,%xmm1,%xmm1
  2592. vpshufb %xmm6,%xmm2,%xmm2
  2593. vpshufb %xmm6,%xmm3,%xmm3
  2594. vpaddd %xmm11,%xmm0,%xmm4
  2595. vpaddd %xmm11,%xmm1,%xmm5
  2596. vpaddd %xmm11,%xmm2,%xmm6
  2597. vmovdqa %xmm4,0(%rsp)
  2598. vmovdqa %xmm5,16(%rsp)
  2599. vmovdqa %xmm6,32(%rsp)
  2600. jmp L$oop_avx
  2601. .p2align 4
  2602. L$oop_avx:
  2603. shrdl $2,%ebx,%ebx
  2604. xorl %edx,%esi
  2605. vpalignr $8,%xmm0,%xmm1,%xmm4
  2606. movl %eax,%edi
  2607. addl 0(%rsp),%ebp
  2608. vpaddd %xmm3,%xmm11,%xmm9
  2609. xorl %ecx,%ebx
  2610. shldl $5,%eax,%eax
  2611. vpsrldq $4,%xmm3,%xmm8
  2612. addl %esi,%ebp
  2613. andl %ebx,%edi
  2614. vpxor %xmm0,%xmm4,%xmm4
  2615. xorl %ecx,%ebx
  2616. addl %eax,%ebp
  2617. vpxor %xmm2,%xmm8,%xmm8
  2618. shrdl $7,%eax,%eax
  2619. xorl %ecx,%edi
  2620. movl %ebp,%esi
  2621. addl 4(%rsp),%edx
  2622. vpxor %xmm8,%xmm4,%xmm4
  2623. xorl %ebx,%eax
  2624. shldl $5,%ebp,%ebp
  2625. vmovdqa %xmm9,48(%rsp)
  2626. addl %edi,%edx
  2627. andl %eax,%esi
  2628. vpsrld $31,%xmm4,%xmm8
  2629. xorl %ebx,%eax
  2630. addl %ebp,%edx
  2631. shrdl $7,%ebp,%ebp
  2632. xorl %ebx,%esi
  2633. vpslldq $12,%xmm4,%xmm10
  2634. vpaddd %xmm4,%xmm4,%xmm4
  2635. movl %edx,%edi
  2636. addl 8(%rsp),%ecx
  2637. xorl %eax,%ebp
  2638. shldl $5,%edx,%edx
  2639. vpsrld $30,%xmm10,%xmm9
  2640. vpor %xmm8,%xmm4,%xmm4
  2641. addl %esi,%ecx
  2642. andl %ebp,%edi
  2643. xorl %eax,%ebp
  2644. addl %edx,%ecx
  2645. vpslld $2,%xmm10,%xmm10
  2646. vpxor %xmm9,%xmm4,%xmm4
  2647. shrdl $7,%edx,%edx
  2648. xorl %eax,%edi
  2649. movl %ecx,%esi
  2650. addl 12(%rsp),%ebx
  2651. vpxor %xmm10,%xmm4,%xmm4
  2652. xorl %ebp,%edx
  2653. shldl $5,%ecx,%ecx
  2654. addl %edi,%ebx
  2655. andl %edx,%esi
  2656. xorl %ebp,%edx
  2657. addl %ecx,%ebx
  2658. shrdl $7,%ecx,%ecx
  2659. xorl %ebp,%esi
  2660. vpalignr $8,%xmm1,%xmm2,%xmm5
  2661. movl %ebx,%edi
  2662. addl 16(%rsp),%eax
  2663. vpaddd %xmm4,%xmm11,%xmm9
  2664. xorl %edx,%ecx
  2665. shldl $5,%ebx,%ebx
  2666. vpsrldq $4,%xmm4,%xmm8
  2667. addl %esi,%eax
  2668. andl %ecx,%edi
  2669. vpxor %xmm1,%xmm5,%xmm5
  2670. xorl %edx,%ecx
  2671. addl %ebx,%eax
  2672. vpxor %xmm3,%xmm8,%xmm8
  2673. shrdl $7,%ebx,%ebx
  2674. xorl %edx,%edi
  2675. movl %eax,%esi
  2676. addl 20(%rsp),%ebp
  2677. vpxor %xmm8,%xmm5,%xmm5
  2678. xorl %ecx,%ebx
  2679. shldl $5,%eax,%eax
  2680. vmovdqa %xmm9,0(%rsp)
  2681. addl %edi,%ebp
  2682. andl %ebx,%esi
  2683. vpsrld $31,%xmm5,%xmm8
  2684. xorl %ecx,%ebx
  2685. addl %eax,%ebp
  2686. shrdl $7,%eax,%eax
  2687. xorl %ecx,%esi
  2688. vpslldq $12,%xmm5,%xmm10
  2689. vpaddd %xmm5,%xmm5,%xmm5
  2690. movl %ebp,%edi
  2691. addl 24(%rsp),%edx
  2692. xorl %ebx,%eax
  2693. shldl $5,%ebp,%ebp
  2694. vpsrld $30,%xmm10,%xmm9
  2695. vpor %xmm8,%xmm5,%xmm5
  2696. addl %esi,%edx
  2697. andl %eax,%edi
  2698. xorl %ebx,%eax
  2699. addl %ebp,%edx
  2700. vpslld $2,%xmm10,%xmm10
  2701. vpxor %xmm9,%xmm5,%xmm5
  2702. shrdl $7,%ebp,%ebp
  2703. xorl %ebx,%edi
  2704. movl %edx,%esi
  2705. addl 28(%rsp),%ecx
  2706. vpxor %xmm10,%xmm5,%xmm5
  2707. xorl %eax,%ebp
  2708. shldl $5,%edx,%edx
  2709. vmovdqa -32(%r14),%xmm11
  2710. addl %edi,%ecx
  2711. andl %ebp,%esi
  2712. xorl %eax,%ebp
  2713. addl %edx,%ecx
  2714. shrdl $7,%edx,%edx
  2715. xorl %eax,%esi
  2716. vpalignr $8,%xmm2,%xmm3,%xmm6
  2717. movl %ecx,%edi
  2718. addl 32(%rsp),%ebx
  2719. vpaddd %xmm5,%xmm11,%xmm9
  2720. xorl %ebp,%edx
  2721. shldl $5,%ecx,%ecx
  2722. vpsrldq $4,%xmm5,%xmm8
  2723. addl %esi,%ebx
  2724. andl %edx,%edi
  2725. vpxor %xmm2,%xmm6,%xmm6
  2726. xorl %ebp,%edx
  2727. addl %ecx,%ebx
  2728. vpxor %xmm4,%xmm8,%xmm8
  2729. shrdl $7,%ecx,%ecx
  2730. xorl %ebp,%edi
  2731. movl %ebx,%esi
  2732. addl 36(%rsp),%eax
  2733. vpxor %xmm8,%xmm6,%xmm6
  2734. xorl %edx,%ecx
  2735. shldl $5,%ebx,%ebx
  2736. vmovdqa %xmm9,16(%rsp)
  2737. addl %edi,%eax
  2738. andl %ecx,%esi
  2739. vpsrld $31,%xmm6,%xmm8
  2740. xorl %edx,%ecx
  2741. addl %ebx,%eax
  2742. shrdl $7,%ebx,%ebx
  2743. xorl %edx,%esi
  2744. vpslldq $12,%xmm6,%xmm10
  2745. vpaddd %xmm6,%xmm6,%xmm6
  2746. movl %eax,%edi
  2747. addl 40(%rsp),%ebp
  2748. xorl %ecx,%ebx
  2749. shldl $5,%eax,%eax
  2750. vpsrld $30,%xmm10,%xmm9
  2751. vpor %xmm8,%xmm6,%xmm6
  2752. addl %esi,%ebp
  2753. andl %ebx,%edi
  2754. xorl %ecx,%ebx
  2755. addl %eax,%ebp
  2756. vpslld $2,%xmm10,%xmm10
  2757. vpxor %xmm9,%xmm6,%xmm6
  2758. shrdl $7,%eax,%eax
  2759. xorl %ecx,%edi
  2760. movl %ebp,%esi
  2761. addl 44(%rsp),%edx
  2762. vpxor %xmm10,%xmm6,%xmm6
  2763. xorl %ebx,%eax
  2764. shldl $5,%ebp,%ebp
  2765. addl %edi,%edx
  2766. andl %eax,%esi
  2767. xorl %ebx,%eax
  2768. addl %ebp,%edx
  2769. shrdl $7,%ebp,%ebp
  2770. xorl %ebx,%esi
  2771. vpalignr $8,%xmm3,%xmm4,%xmm7
  2772. movl %edx,%edi
  2773. addl 48(%rsp),%ecx
  2774. vpaddd %xmm6,%xmm11,%xmm9
  2775. xorl %eax,%ebp
  2776. shldl $5,%edx,%edx
  2777. vpsrldq $4,%xmm6,%xmm8
  2778. addl %esi,%ecx
  2779. andl %ebp,%edi
  2780. vpxor %xmm3,%xmm7,%xmm7
  2781. xorl %eax,%ebp
  2782. addl %edx,%ecx
  2783. vpxor %xmm5,%xmm8,%xmm8
  2784. shrdl $7,%edx,%edx
  2785. xorl %eax,%edi
  2786. movl %ecx,%esi
  2787. addl 52(%rsp),%ebx
  2788. vpxor %xmm8,%xmm7,%xmm7
  2789. xorl %ebp,%edx
  2790. shldl $5,%ecx,%ecx
  2791. vmovdqa %xmm9,32(%rsp)
  2792. addl %edi,%ebx
  2793. andl %edx,%esi
  2794. vpsrld $31,%xmm7,%xmm8
  2795. xorl %ebp,%edx
  2796. addl %ecx,%ebx
  2797. shrdl $7,%ecx,%ecx
  2798. xorl %ebp,%esi
  2799. vpslldq $12,%xmm7,%xmm10
  2800. vpaddd %xmm7,%xmm7,%xmm7
  2801. movl %ebx,%edi
  2802. addl 56(%rsp),%eax
  2803. xorl %edx,%ecx
  2804. shldl $5,%ebx,%ebx
  2805. vpsrld $30,%xmm10,%xmm9
  2806. vpor %xmm8,%xmm7,%xmm7
  2807. addl %esi,%eax
  2808. andl %ecx,%edi
  2809. xorl %edx,%ecx
  2810. addl %ebx,%eax
  2811. vpslld $2,%xmm10,%xmm10
  2812. vpxor %xmm9,%xmm7,%xmm7
  2813. shrdl $7,%ebx,%ebx
  2814. xorl %edx,%edi
  2815. movl %eax,%esi
  2816. addl 60(%rsp),%ebp
  2817. vpxor %xmm10,%xmm7,%xmm7
  2818. xorl %ecx,%ebx
  2819. shldl $5,%eax,%eax
  2820. addl %edi,%ebp
  2821. andl %ebx,%esi
  2822. xorl %ecx,%ebx
  2823. addl %eax,%ebp
  2824. vpalignr $8,%xmm6,%xmm7,%xmm8
  2825. vpxor %xmm4,%xmm0,%xmm0
  2826. shrdl $7,%eax,%eax
  2827. xorl %ecx,%esi
  2828. movl %ebp,%edi
  2829. addl 0(%rsp),%edx
  2830. vpxor %xmm1,%xmm0,%xmm0
  2831. xorl %ebx,%eax
  2832. shldl $5,%ebp,%ebp
  2833. vpaddd %xmm7,%xmm11,%xmm9
  2834. addl %esi,%edx
  2835. andl %eax,%edi
  2836. vpxor %xmm8,%xmm0,%xmm0
  2837. xorl %ebx,%eax
  2838. addl %ebp,%edx
  2839. shrdl $7,%ebp,%ebp
  2840. xorl %ebx,%edi
  2841. vpsrld $30,%xmm0,%xmm8
  2842. vmovdqa %xmm9,48(%rsp)
  2843. movl %edx,%esi
  2844. addl 4(%rsp),%ecx
  2845. xorl %eax,%ebp
  2846. shldl $5,%edx,%edx
  2847. vpslld $2,%xmm0,%xmm0
  2848. addl %edi,%ecx
  2849. andl %ebp,%esi
  2850. xorl %eax,%ebp
  2851. addl %edx,%ecx
  2852. shrdl $7,%edx,%edx
  2853. xorl %eax,%esi
  2854. movl %ecx,%edi
  2855. addl 8(%rsp),%ebx
  2856. vpor %xmm8,%xmm0,%xmm0
  2857. xorl %ebp,%edx
  2858. shldl $5,%ecx,%ecx
  2859. addl %esi,%ebx
  2860. andl %edx,%edi
  2861. xorl %ebp,%edx
  2862. addl %ecx,%ebx
  2863. addl 12(%rsp),%eax
  2864. xorl %ebp,%edi
  2865. movl %ebx,%esi
  2866. shldl $5,%ebx,%ebx
  2867. addl %edi,%eax
  2868. xorl %edx,%esi
  2869. shrdl $7,%ecx,%ecx
  2870. addl %ebx,%eax
  2871. vpalignr $8,%xmm7,%xmm0,%xmm8
  2872. vpxor %xmm5,%xmm1,%xmm1
  2873. addl 16(%rsp),%ebp
  2874. xorl %ecx,%esi
  2875. movl %eax,%edi
  2876. shldl $5,%eax,%eax
  2877. vpxor %xmm2,%xmm1,%xmm1
  2878. addl %esi,%ebp
  2879. xorl %ecx,%edi
  2880. vpaddd %xmm0,%xmm11,%xmm9
  2881. shrdl $7,%ebx,%ebx
  2882. addl %eax,%ebp
  2883. vpxor %xmm8,%xmm1,%xmm1
  2884. addl 20(%rsp),%edx
  2885. xorl %ebx,%edi
  2886. movl %ebp,%esi
  2887. shldl $5,%ebp,%ebp
  2888. vpsrld $30,%xmm1,%xmm8
  2889. vmovdqa %xmm9,0(%rsp)
  2890. addl %edi,%edx
  2891. xorl %ebx,%esi
  2892. shrdl $7,%eax,%eax
  2893. addl %ebp,%edx
  2894. vpslld $2,%xmm1,%xmm1
  2895. addl 24(%rsp),%ecx
  2896. xorl %eax,%esi
  2897. movl %edx,%edi
  2898. shldl $5,%edx,%edx
  2899. addl %esi,%ecx
  2900. xorl %eax,%edi
  2901. shrdl $7,%ebp,%ebp
  2902. addl %edx,%ecx
  2903. vpor %xmm8,%xmm1,%xmm1
  2904. addl 28(%rsp),%ebx
  2905. xorl %ebp,%edi
  2906. movl %ecx,%esi
  2907. shldl $5,%ecx,%ecx
  2908. addl %edi,%ebx
  2909. xorl %ebp,%esi
  2910. shrdl $7,%edx,%edx
  2911. addl %ecx,%ebx
  2912. vpalignr $8,%xmm0,%xmm1,%xmm8
  2913. vpxor %xmm6,%xmm2,%xmm2
  2914. addl 32(%rsp),%eax
  2915. xorl %edx,%esi
  2916. movl %ebx,%edi
  2917. shldl $5,%ebx,%ebx
  2918. vpxor %xmm3,%xmm2,%xmm2
  2919. addl %esi,%eax
  2920. xorl %edx,%edi
  2921. vpaddd %xmm1,%xmm11,%xmm9
  2922. vmovdqa 0(%r14),%xmm11
  2923. shrdl $7,%ecx,%ecx
  2924. addl %ebx,%eax
  2925. vpxor %xmm8,%xmm2,%xmm2
  2926. addl 36(%rsp),%ebp
  2927. xorl %ecx,%edi
  2928. movl %eax,%esi
  2929. shldl $5,%eax,%eax
  2930. vpsrld $30,%xmm2,%xmm8
  2931. vmovdqa %xmm9,16(%rsp)
  2932. addl %edi,%ebp
  2933. xorl %ecx,%esi
  2934. shrdl $7,%ebx,%ebx
  2935. addl %eax,%ebp
  2936. vpslld $2,%xmm2,%xmm2
  2937. addl 40(%rsp),%edx
  2938. xorl %ebx,%esi
  2939. movl %ebp,%edi
  2940. shldl $5,%ebp,%ebp
  2941. addl %esi,%edx
  2942. xorl %ebx,%edi
  2943. shrdl $7,%eax,%eax
  2944. addl %ebp,%edx
  2945. vpor %xmm8,%xmm2,%xmm2
  2946. addl 44(%rsp),%ecx
  2947. xorl %eax,%edi
  2948. movl %edx,%esi
  2949. shldl $5,%edx,%edx
  2950. addl %edi,%ecx
  2951. xorl %eax,%esi
  2952. shrdl $7,%ebp,%ebp
  2953. addl %edx,%ecx
  2954. vpalignr $8,%xmm1,%xmm2,%xmm8
  2955. vpxor %xmm7,%xmm3,%xmm3
  2956. addl 48(%rsp),%ebx
  2957. xorl %ebp,%esi
  2958. movl %ecx,%edi
  2959. shldl $5,%ecx,%ecx
  2960. vpxor %xmm4,%xmm3,%xmm3
  2961. addl %esi,%ebx
  2962. xorl %ebp,%edi
  2963. vpaddd %xmm2,%xmm11,%xmm9
  2964. shrdl $7,%edx,%edx
  2965. addl %ecx,%ebx
  2966. vpxor %xmm8,%xmm3,%xmm3
  2967. addl 52(%rsp),%eax
  2968. xorl %edx,%edi
  2969. movl %ebx,%esi
  2970. shldl $5,%ebx,%ebx
  2971. vpsrld $30,%xmm3,%xmm8
  2972. vmovdqa %xmm9,32(%rsp)
  2973. addl %edi,%eax
  2974. xorl %edx,%esi
  2975. shrdl $7,%ecx,%ecx
  2976. addl %ebx,%eax
  2977. vpslld $2,%xmm3,%xmm3
  2978. addl 56(%rsp),%ebp
  2979. xorl %ecx,%esi
  2980. movl %eax,%edi
  2981. shldl $5,%eax,%eax
  2982. addl %esi,%ebp
  2983. xorl %ecx,%edi
  2984. shrdl $7,%ebx,%ebx
  2985. addl %eax,%ebp
  2986. vpor %xmm8,%xmm3,%xmm3
  2987. addl 60(%rsp),%edx
  2988. xorl %ebx,%edi
  2989. movl %ebp,%esi
  2990. shldl $5,%ebp,%ebp
  2991. addl %edi,%edx
  2992. xorl %ebx,%esi
  2993. shrdl $7,%eax,%eax
  2994. addl %ebp,%edx
  2995. vpalignr $8,%xmm2,%xmm3,%xmm8
  2996. vpxor %xmm0,%xmm4,%xmm4
  2997. addl 0(%rsp),%ecx
  2998. xorl %eax,%esi
  2999. movl %edx,%edi
  3000. shldl $5,%edx,%edx
  3001. vpxor %xmm5,%xmm4,%xmm4
  3002. addl %esi,%ecx
  3003. xorl %eax,%edi
  3004. vpaddd %xmm3,%xmm11,%xmm9
  3005. shrdl $7,%ebp,%ebp
  3006. addl %edx,%ecx
  3007. vpxor %xmm8,%xmm4,%xmm4
  3008. addl 4(%rsp),%ebx
  3009. xorl %ebp,%edi
  3010. movl %ecx,%esi
  3011. shldl $5,%ecx,%ecx
  3012. vpsrld $30,%xmm4,%xmm8
  3013. vmovdqa %xmm9,48(%rsp)
  3014. addl %edi,%ebx
  3015. xorl %ebp,%esi
  3016. shrdl $7,%edx,%edx
  3017. addl %ecx,%ebx
  3018. vpslld $2,%xmm4,%xmm4
  3019. addl 8(%rsp),%eax
  3020. xorl %edx,%esi
  3021. movl %ebx,%edi
  3022. shldl $5,%ebx,%ebx
  3023. addl %esi,%eax
  3024. xorl %edx,%edi
  3025. shrdl $7,%ecx,%ecx
  3026. addl %ebx,%eax
  3027. vpor %xmm8,%xmm4,%xmm4
  3028. addl 12(%rsp),%ebp
  3029. xorl %ecx,%edi
  3030. movl %eax,%esi
  3031. shldl $5,%eax,%eax
  3032. addl %edi,%ebp
  3033. xorl %ecx,%esi
  3034. shrdl $7,%ebx,%ebx
  3035. addl %eax,%ebp
  3036. vpalignr $8,%xmm3,%xmm4,%xmm8
  3037. vpxor %xmm1,%xmm5,%xmm5
  3038. addl 16(%rsp),%edx
  3039. xorl %ebx,%esi
  3040. movl %ebp,%edi
  3041. shldl $5,%ebp,%ebp
  3042. vpxor %xmm6,%xmm5,%xmm5
  3043. addl %esi,%edx
  3044. xorl %ebx,%edi
  3045. vpaddd %xmm4,%xmm11,%xmm9
  3046. shrdl $7,%eax,%eax
  3047. addl %ebp,%edx
  3048. vpxor %xmm8,%xmm5,%xmm5
  3049. addl 20(%rsp),%ecx
  3050. xorl %eax,%edi
  3051. movl %edx,%esi
  3052. shldl $5,%edx,%edx
  3053. vpsrld $30,%xmm5,%xmm8
  3054. vmovdqa %xmm9,0(%rsp)
  3055. addl %edi,%ecx
  3056. xorl %eax,%esi
  3057. shrdl $7,%ebp,%ebp
  3058. addl %edx,%ecx
  3059. vpslld $2,%xmm5,%xmm5
  3060. addl 24(%rsp),%ebx
  3061. xorl %ebp,%esi
  3062. movl %ecx,%edi
  3063. shldl $5,%ecx,%ecx
  3064. addl %esi,%ebx
  3065. xorl %ebp,%edi
  3066. shrdl $7,%edx,%edx
  3067. addl %ecx,%ebx
  3068. vpor %xmm8,%xmm5,%xmm5
  3069. addl 28(%rsp),%eax
  3070. shrdl $7,%ecx,%ecx
  3071. movl %ebx,%esi
  3072. xorl %edx,%edi
  3073. shldl $5,%ebx,%ebx
  3074. addl %edi,%eax
  3075. xorl %ecx,%esi
  3076. xorl %edx,%ecx
  3077. addl %ebx,%eax
  3078. vpalignr $8,%xmm4,%xmm5,%xmm8
  3079. vpxor %xmm2,%xmm6,%xmm6
  3080. addl 32(%rsp),%ebp
  3081. andl %ecx,%esi
  3082. xorl %edx,%ecx
  3083. shrdl $7,%ebx,%ebx
  3084. vpxor %xmm7,%xmm6,%xmm6
  3085. movl %eax,%edi
  3086. xorl %ecx,%esi
  3087. vpaddd %xmm5,%xmm11,%xmm9
  3088. shldl $5,%eax,%eax
  3089. addl %esi,%ebp
  3090. vpxor %xmm8,%xmm6,%xmm6
  3091. xorl %ebx,%edi
  3092. xorl %ecx,%ebx
  3093. addl %eax,%ebp
  3094. addl 36(%rsp),%edx
  3095. vpsrld $30,%xmm6,%xmm8
  3096. vmovdqa %xmm9,16(%rsp)
  3097. andl %ebx,%edi
  3098. xorl %ecx,%ebx
  3099. shrdl $7,%eax,%eax
  3100. movl %ebp,%esi
  3101. vpslld $2,%xmm6,%xmm6
  3102. xorl %ebx,%edi
  3103. shldl $5,%ebp,%ebp
  3104. addl %edi,%edx
  3105. xorl %eax,%esi
  3106. xorl %ebx,%eax
  3107. addl %ebp,%edx
  3108. addl 40(%rsp),%ecx
  3109. andl %eax,%esi
  3110. vpor %xmm8,%xmm6,%xmm6
  3111. xorl %ebx,%eax
  3112. shrdl $7,%ebp,%ebp
  3113. movl %edx,%edi
  3114. xorl %eax,%esi
  3115. shldl $5,%edx,%edx
  3116. addl %esi,%ecx
  3117. xorl %ebp,%edi
  3118. xorl %eax,%ebp
  3119. addl %edx,%ecx
  3120. addl 44(%rsp),%ebx
  3121. andl %ebp,%edi
  3122. xorl %eax,%ebp
  3123. shrdl $7,%edx,%edx
  3124. movl %ecx,%esi
  3125. xorl %ebp,%edi
  3126. shldl $5,%ecx,%ecx
  3127. addl %edi,%ebx
  3128. xorl %edx,%esi
  3129. xorl %ebp,%edx
  3130. addl %ecx,%ebx
  3131. vpalignr $8,%xmm5,%xmm6,%xmm8
  3132. vpxor %xmm3,%xmm7,%xmm7
  3133. addl 48(%rsp),%eax
  3134. andl %edx,%esi
  3135. xorl %ebp,%edx
  3136. shrdl $7,%ecx,%ecx
  3137. vpxor %xmm0,%xmm7,%xmm7
  3138. movl %ebx,%edi
  3139. xorl %edx,%esi
  3140. vpaddd %xmm6,%xmm11,%xmm9
  3141. vmovdqa 32(%r14),%xmm11
  3142. shldl $5,%ebx,%ebx
  3143. addl %esi,%eax
  3144. vpxor %xmm8,%xmm7,%xmm7
  3145. xorl %ecx,%edi
  3146. xorl %edx,%ecx
  3147. addl %ebx,%eax
  3148. addl 52(%rsp),%ebp
  3149. vpsrld $30,%xmm7,%xmm8
  3150. vmovdqa %xmm9,32(%rsp)
  3151. andl %ecx,%edi
  3152. xorl %edx,%ecx
  3153. shrdl $7,%ebx,%ebx
  3154. movl %eax,%esi
  3155. vpslld $2,%xmm7,%xmm7
  3156. xorl %ecx,%edi
  3157. shldl $5,%eax,%eax
  3158. addl %edi,%ebp
  3159. xorl %ebx,%esi
  3160. xorl %ecx,%ebx
  3161. addl %eax,%ebp
  3162. addl 56(%rsp),%edx
  3163. andl %ebx,%esi
  3164. vpor %xmm8,%xmm7,%xmm7
  3165. xorl %ecx,%ebx
  3166. shrdl $7,%eax,%eax
  3167. movl %ebp,%edi
  3168. xorl %ebx,%esi
  3169. shldl $5,%ebp,%ebp
  3170. addl %esi,%edx
  3171. xorl %eax,%edi
  3172. xorl %ebx,%eax
  3173. addl %ebp,%edx
  3174. addl 60(%rsp),%ecx
  3175. andl %eax,%edi
  3176. xorl %ebx,%eax
  3177. shrdl $7,%ebp,%ebp
  3178. movl %edx,%esi
  3179. xorl %eax,%edi
  3180. shldl $5,%edx,%edx
  3181. addl %edi,%ecx
  3182. xorl %ebp,%esi
  3183. xorl %eax,%ebp
  3184. addl %edx,%ecx
  3185. vpalignr $8,%xmm6,%xmm7,%xmm8
  3186. vpxor %xmm4,%xmm0,%xmm0
  3187. addl 0(%rsp),%ebx
  3188. andl %ebp,%esi
  3189. xorl %eax,%ebp
  3190. shrdl $7,%edx,%edx
  3191. vpxor %xmm1,%xmm0,%xmm0
  3192. movl %ecx,%edi
  3193. xorl %ebp,%esi
  3194. vpaddd %xmm7,%xmm11,%xmm9
  3195. shldl $5,%ecx,%ecx
  3196. addl %esi,%ebx
  3197. vpxor %xmm8,%xmm0,%xmm0
  3198. xorl %edx,%edi
  3199. xorl %ebp,%edx
  3200. addl %ecx,%ebx
  3201. addl 4(%rsp),%eax
  3202. vpsrld $30,%xmm0,%xmm8
  3203. vmovdqa %xmm9,48(%rsp)
  3204. andl %edx,%edi
  3205. xorl %ebp,%edx
  3206. shrdl $7,%ecx,%ecx
  3207. movl %ebx,%esi
  3208. vpslld $2,%xmm0,%xmm0
  3209. xorl %edx,%edi
  3210. shldl $5,%ebx,%ebx
  3211. addl %edi,%eax
  3212. xorl %ecx,%esi
  3213. xorl %edx,%ecx
  3214. addl %ebx,%eax
  3215. addl 8(%rsp),%ebp
  3216. andl %ecx,%esi
  3217. vpor %xmm8,%xmm0,%xmm0
  3218. xorl %edx,%ecx
  3219. shrdl $7,%ebx,%ebx
  3220. movl %eax,%edi
  3221. xorl %ecx,%esi
  3222. shldl $5,%eax,%eax
  3223. addl %esi,%ebp
  3224. xorl %ebx,%edi
  3225. xorl %ecx,%ebx
  3226. addl %eax,%ebp
  3227. addl 12(%rsp),%edx
  3228. andl %ebx,%edi
  3229. xorl %ecx,%ebx
  3230. shrdl $7,%eax,%eax
  3231. movl %ebp,%esi
  3232. xorl %ebx,%edi
  3233. shldl $5,%ebp,%ebp
  3234. addl %edi,%edx
  3235. xorl %eax,%esi
  3236. xorl %ebx,%eax
  3237. addl %ebp,%edx
  3238. vpalignr $8,%xmm7,%xmm0,%xmm8
  3239. vpxor %xmm5,%xmm1,%xmm1
  3240. addl 16(%rsp),%ecx
  3241. andl %eax,%esi
  3242. xorl %ebx,%eax
  3243. shrdl $7,%ebp,%ebp
  3244. vpxor %xmm2,%xmm1,%xmm1
  3245. movl %edx,%edi
  3246. xorl %eax,%esi
  3247. vpaddd %xmm0,%xmm11,%xmm9
  3248. shldl $5,%edx,%edx
  3249. addl %esi,%ecx
  3250. vpxor %xmm8,%xmm1,%xmm1
  3251. xorl %ebp,%edi
  3252. xorl %eax,%ebp
  3253. addl %edx,%ecx
  3254. addl 20(%rsp),%ebx
  3255. vpsrld $30,%xmm1,%xmm8
  3256. vmovdqa %xmm9,0(%rsp)
  3257. andl %ebp,%edi
  3258. xorl %eax,%ebp
  3259. shrdl $7,%edx,%edx
  3260. movl %ecx,%esi
  3261. vpslld $2,%xmm1,%xmm1
  3262. xorl %ebp,%edi
  3263. shldl $5,%ecx,%ecx
  3264. addl %edi,%ebx
  3265. xorl %edx,%esi
  3266. xorl %ebp,%edx
  3267. addl %ecx,%ebx
  3268. addl 24(%rsp),%eax
  3269. andl %edx,%esi
  3270. vpor %xmm8,%xmm1,%xmm1
  3271. xorl %ebp,%edx
  3272. shrdl $7,%ecx,%ecx
  3273. movl %ebx,%edi
  3274. xorl %edx,%esi
  3275. shldl $5,%ebx,%ebx
  3276. addl %esi,%eax
  3277. xorl %ecx,%edi
  3278. xorl %edx,%ecx
  3279. addl %ebx,%eax
  3280. addl 28(%rsp),%ebp
  3281. andl %ecx,%edi
  3282. xorl %edx,%ecx
  3283. shrdl $7,%ebx,%ebx
  3284. movl %eax,%esi
  3285. xorl %ecx,%edi
  3286. shldl $5,%eax,%eax
  3287. addl %edi,%ebp
  3288. xorl %ebx,%esi
  3289. xorl %ecx,%ebx
  3290. addl %eax,%ebp
  3291. vpalignr $8,%xmm0,%xmm1,%xmm8
  3292. vpxor %xmm6,%xmm2,%xmm2
  3293. addl 32(%rsp),%edx
  3294. andl %ebx,%esi
  3295. xorl %ecx,%ebx
  3296. shrdl $7,%eax,%eax
  3297. vpxor %xmm3,%xmm2,%xmm2
  3298. movl %ebp,%edi
  3299. xorl %ebx,%esi
  3300. vpaddd %xmm1,%xmm11,%xmm9
  3301. shldl $5,%ebp,%ebp
  3302. addl %esi,%edx
  3303. vpxor %xmm8,%xmm2,%xmm2
  3304. xorl %eax,%edi
  3305. xorl %ebx,%eax
  3306. addl %ebp,%edx
  3307. addl 36(%rsp),%ecx
  3308. vpsrld $30,%xmm2,%xmm8
  3309. vmovdqa %xmm9,16(%rsp)
  3310. andl %eax,%edi
  3311. xorl %ebx,%eax
  3312. shrdl $7,%ebp,%ebp
  3313. movl %edx,%esi
  3314. vpslld $2,%xmm2,%xmm2
  3315. xorl %eax,%edi
  3316. shldl $5,%edx,%edx
  3317. addl %edi,%ecx
  3318. xorl %ebp,%esi
  3319. xorl %eax,%ebp
  3320. addl %edx,%ecx
  3321. addl 40(%rsp),%ebx
  3322. andl %ebp,%esi
  3323. vpor %xmm8,%xmm2,%xmm2
  3324. xorl %eax,%ebp
  3325. shrdl $7,%edx,%edx
  3326. movl %ecx,%edi
  3327. xorl %ebp,%esi
  3328. shldl $5,%ecx,%ecx
  3329. addl %esi,%ebx
  3330. xorl %edx,%edi
  3331. xorl %ebp,%edx
  3332. addl %ecx,%ebx
  3333. addl 44(%rsp),%eax
  3334. andl %edx,%edi
  3335. xorl %ebp,%edx
  3336. shrdl $7,%ecx,%ecx
  3337. movl %ebx,%esi
  3338. xorl %edx,%edi
  3339. shldl $5,%ebx,%ebx
  3340. addl %edi,%eax
  3341. xorl %edx,%esi
  3342. addl %ebx,%eax
  3343. vpalignr $8,%xmm1,%xmm2,%xmm8
  3344. vpxor %xmm7,%xmm3,%xmm3
  3345. addl 48(%rsp),%ebp
  3346. xorl %ecx,%esi
  3347. movl %eax,%edi
  3348. shldl $5,%eax,%eax
  3349. vpxor %xmm4,%xmm3,%xmm3
  3350. addl %esi,%ebp
  3351. xorl %ecx,%edi
  3352. vpaddd %xmm2,%xmm11,%xmm9
  3353. shrdl $7,%ebx,%ebx
  3354. addl %eax,%ebp
  3355. vpxor %xmm8,%xmm3,%xmm3
  3356. addl 52(%rsp),%edx
  3357. xorl %ebx,%edi
  3358. movl %ebp,%esi
  3359. shldl $5,%ebp,%ebp
  3360. vpsrld $30,%xmm3,%xmm8
  3361. vmovdqa %xmm9,32(%rsp)
  3362. addl %edi,%edx
  3363. xorl %ebx,%esi
  3364. shrdl $7,%eax,%eax
  3365. addl %ebp,%edx
  3366. vpslld $2,%xmm3,%xmm3
  3367. addl 56(%rsp),%ecx
  3368. xorl %eax,%esi
  3369. movl %edx,%edi
  3370. shldl $5,%edx,%edx
  3371. addl %esi,%ecx
  3372. xorl %eax,%edi
  3373. shrdl $7,%ebp,%ebp
  3374. addl %edx,%ecx
  3375. vpor %xmm8,%xmm3,%xmm3
  3376. addl 60(%rsp),%ebx
  3377. xorl %ebp,%edi
  3378. movl %ecx,%esi
  3379. shldl $5,%ecx,%ecx
  3380. addl %edi,%ebx
  3381. xorl %ebp,%esi
  3382. shrdl $7,%edx,%edx
  3383. addl %ecx,%ebx
  3384. addl 0(%rsp),%eax
  3385. vpaddd %xmm3,%xmm11,%xmm9
  3386. xorl %edx,%esi
  3387. movl %ebx,%edi
  3388. shldl $5,%ebx,%ebx
  3389. addl %esi,%eax
  3390. vmovdqa %xmm9,48(%rsp)
  3391. xorl %edx,%edi
  3392. shrdl $7,%ecx,%ecx
  3393. addl %ebx,%eax
  3394. addl 4(%rsp),%ebp
  3395. xorl %ecx,%edi
  3396. movl %eax,%esi
  3397. shldl $5,%eax,%eax
  3398. addl %edi,%ebp
  3399. xorl %ecx,%esi
  3400. shrdl $7,%ebx,%ebx
  3401. addl %eax,%ebp
  3402. addl 8(%rsp),%edx
  3403. xorl %ebx,%esi
  3404. movl %ebp,%edi
  3405. shldl $5,%ebp,%ebp
  3406. addl %esi,%edx
  3407. xorl %ebx,%edi
  3408. shrdl $7,%eax,%eax
  3409. addl %ebp,%edx
  3410. addl 12(%rsp),%ecx
  3411. xorl %eax,%edi
  3412. movl %edx,%esi
  3413. shldl $5,%edx,%edx
  3414. addl %edi,%ecx
  3415. xorl %eax,%esi
  3416. shrdl $7,%ebp,%ebp
  3417. addl %edx,%ecx
  3418. cmpq %r10,%r9
  3419. je L$done_avx
  3420. vmovdqa 64(%r14),%xmm6
  3421. vmovdqa -64(%r14),%xmm11
  3422. vmovdqu 0(%r9),%xmm0
  3423. vmovdqu 16(%r9),%xmm1
  3424. vmovdqu 32(%r9),%xmm2
  3425. vmovdqu 48(%r9),%xmm3
  3426. vpshufb %xmm6,%xmm0,%xmm0
  3427. addq $64,%r9
  3428. addl 16(%rsp),%ebx
  3429. xorl %ebp,%esi
  3430. vpshufb %xmm6,%xmm1,%xmm1
  3431. movl %ecx,%edi
  3432. shldl $5,%ecx,%ecx
  3433. vpaddd %xmm11,%xmm0,%xmm4
  3434. addl %esi,%ebx
  3435. xorl %ebp,%edi
  3436. shrdl $7,%edx,%edx
  3437. addl %ecx,%ebx
  3438. vmovdqa %xmm4,0(%rsp)
  3439. addl 20(%rsp),%eax
  3440. xorl %edx,%edi
  3441. movl %ebx,%esi
  3442. shldl $5,%ebx,%ebx
  3443. addl %edi,%eax
  3444. xorl %edx,%esi
  3445. shrdl $7,%ecx,%ecx
  3446. addl %ebx,%eax
  3447. addl 24(%rsp),%ebp
  3448. xorl %ecx,%esi
  3449. movl %eax,%edi
  3450. shldl $5,%eax,%eax
  3451. addl %esi,%ebp
  3452. xorl %ecx,%edi
  3453. shrdl $7,%ebx,%ebx
  3454. addl %eax,%ebp
  3455. addl 28(%rsp),%edx
  3456. xorl %ebx,%edi
  3457. movl %ebp,%esi
  3458. shldl $5,%ebp,%ebp
  3459. addl %edi,%edx
  3460. xorl %ebx,%esi
  3461. shrdl $7,%eax,%eax
  3462. addl %ebp,%edx
  3463. addl 32(%rsp),%ecx
  3464. xorl %eax,%esi
  3465. vpshufb %xmm6,%xmm2,%xmm2
  3466. movl %edx,%edi
  3467. shldl $5,%edx,%edx
  3468. vpaddd %xmm11,%xmm1,%xmm5
  3469. addl %esi,%ecx
  3470. xorl %eax,%edi
  3471. shrdl $7,%ebp,%ebp
  3472. addl %edx,%ecx
  3473. vmovdqa %xmm5,16(%rsp)
  3474. addl 36(%rsp),%ebx
  3475. xorl %ebp,%edi
  3476. movl %ecx,%esi
  3477. shldl $5,%ecx,%ecx
  3478. addl %edi,%ebx
  3479. xorl %ebp,%esi
  3480. shrdl $7,%edx,%edx
  3481. addl %ecx,%ebx
  3482. addl 40(%rsp),%eax
  3483. xorl %edx,%esi
  3484. movl %ebx,%edi
  3485. shldl $5,%ebx,%ebx
  3486. addl %esi,%eax
  3487. xorl %edx,%edi
  3488. shrdl $7,%ecx,%ecx
  3489. addl %ebx,%eax
  3490. addl 44(%rsp),%ebp
  3491. xorl %ecx,%edi
  3492. movl %eax,%esi
  3493. shldl $5,%eax,%eax
  3494. addl %edi,%ebp
  3495. xorl %ecx,%esi
  3496. shrdl $7,%ebx,%ebx
  3497. addl %eax,%ebp
  3498. addl 48(%rsp),%edx
  3499. xorl %ebx,%esi
  3500. vpshufb %xmm6,%xmm3,%xmm3
  3501. movl %ebp,%edi
  3502. shldl $5,%ebp,%ebp
  3503. vpaddd %xmm11,%xmm2,%xmm6
  3504. addl %esi,%edx
  3505. xorl %ebx,%edi
  3506. shrdl $7,%eax,%eax
  3507. addl %ebp,%edx
  3508. vmovdqa %xmm6,32(%rsp)
  3509. addl 52(%rsp),%ecx
  3510. xorl %eax,%edi
  3511. movl %edx,%esi
  3512. shldl $5,%edx,%edx
  3513. addl %edi,%ecx
  3514. xorl %eax,%esi
  3515. shrdl $7,%ebp,%ebp
  3516. addl %edx,%ecx
  3517. addl 56(%rsp),%ebx
  3518. xorl %ebp,%esi
  3519. movl %ecx,%edi
  3520. shldl $5,%ecx,%ecx
  3521. addl %esi,%ebx
  3522. xorl %ebp,%edi
  3523. shrdl $7,%edx,%edx
  3524. addl %ecx,%ebx
  3525. addl 60(%rsp),%eax
  3526. xorl %edx,%edi
  3527. movl %ebx,%esi
  3528. shldl $5,%ebx,%ebx
  3529. addl %edi,%eax
  3530. shrdl $7,%ecx,%ecx
  3531. addl %ebx,%eax
  3532. addl 0(%r8),%eax
  3533. addl 4(%r8),%esi
  3534. addl 8(%r8),%ecx
  3535. addl 12(%r8),%edx
  3536. movl %eax,0(%r8)
  3537. addl 16(%r8),%ebp
  3538. movl %esi,4(%r8)
  3539. movl %esi,%ebx
  3540. movl %ecx,8(%r8)
  3541. movl %ecx,%edi
  3542. movl %edx,12(%r8)
  3543. xorl %edx,%edi
  3544. movl %ebp,16(%r8)
  3545. andl %edi,%esi
  3546. jmp L$oop_avx
  3547. .p2align 4
  3548. L$done_avx:
  3549. addl 16(%rsp),%ebx
  3550. xorl %ebp,%esi
  3551. movl %ecx,%edi
  3552. shldl $5,%ecx,%ecx
  3553. addl %esi,%ebx
  3554. xorl %ebp,%edi
  3555. shrdl $7,%edx,%edx
  3556. addl %ecx,%ebx
  3557. addl 20(%rsp),%eax
  3558. xorl %edx,%edi
  3559. movl %ebx,%esi
  3560. shldl $5,%ebx,%ebx
  3561. addl %edi,%eax
  3562. xorl %edx,%esi
  3563. shrdl $7,%ecx,%ecx
  3564. addl %ebx,%eax
  3565. addl 24(%rsp),%ebp
  3566. xorl %ecx,%esi
  3567. movl %eax,%edi
  3568. shldl $5,%eax,%eax
  3569. addl %esi,%ebp
  3570. xorl %ecx,%edi
  3571. shrdl $7,%ebx,%ebx
  3572. addl %eax,%ebp
  3573. addl 28(%rsp),%edx
  3574. xorl %ebx,%edi
  3575. movl %ebp,%esi
  3576. shldl $5,%ebp,%ebp
  3577. addl %edi,%edx
  3578. xorl %ebx,%esi
  3579. shrdl $7,%eax,%eax
  3580. addl %ebp,%edx
  3581. addl 32(%rsp),%ecx
  3582. xorl %eax,%esi
  3583. movl %edx,%edi
  3584. shldl $5,%edx,%edx
  3585. addl %esi,%ecx
  3586. xorl %eax,%edi
  3587. shrdl $7,%ebp,%ebp
  3588. addl %edx,%ecx
  3589. addl 36(%rsp),%ebx
  3590. xorl %ebp,%edi
  3591. movl %ecx,%esi
  3592. shldl $5,%ecx,%ecx
  3593. addl %edi,%ebx
  3594. xorl %ebp,%esi
  3595. shrdl $7,%edx,%edx
  3596. addl %ecx,%ebx
  3597. addl 40(%rsp),%eax
  3598. xorl %edx,%esi
  3599. movl %ebx,%edi
  3600. shldl $5,%ebx,%ebx
  3601. addl %esi,%eax
  3602. xorl %edx,%edi
  3603. shrdl $7,%ecx,%ecx
  3604. addl %ebx,%eax
  3605. addl 44(%rsp),%ebp
  3606. xorl %ecx,%edi
  3607. movl %eax,%esi
  3608. shldl $5,%eax,%eax
  3609. addl %edi,%ebp
  3610. xorl %ecx,%esi
  3611. shrdl $7,%ebx,%ebx
  3612. addl %eax,%ebp
  3613. addl 48(%rsp),%edx
  3614. xorl %ebx,%esi
  3615. movl %ebp,%edi
  3616. shldl $5,%ebp,%ebp
  3617. addl %esi,%edx
  3618. xorl %ebx,%edi
  3619. shrdl $7,%eax,%eax
  3620. addl %ebp,%edx
  3621. addl 52(%rsp),%ecx
  3622. xorl %eax,%edi
  3623. movl %edx,%esi
  3624. shldl $5,%edx,%edx
  3625. addl %edi,%ecx
  3626. xorl %eax,%esi
  3627. shrdl $7,%ebp,%ebp
  3628. addl %edx,%ecx
  3629. addl 56(%rsp),%ebx
  3630. xorl %ebp,%esi
  3631. movl %ecx,%edi
  3632. shldl $5,%ecx,%ecx
  3633. addl %esi,%ebx
  3634. xorl %ebp,%edi
  3635. shrdl $7,%edx,%edx
  3636. addl %ecx,%ebx
  3637. addl 60(%rsp),%eax
  3638. xorl %edx,%edi
  3639. movl %ebx,%esi
  3640. shldl $5,%ebx,%ebx
  3641. addl %edi,%eax
  3642. shrdl $7,%ecx,%ecx
  3643. addl %ebx,%eax
  3644. vzeroupper
  3645. addl 0(%r8),%eax
  3646. addl 4(%r8),%esi
  3647. addl 8(%r8),%ecx
  3648. movl %eax,0(%r8)
  3649. addl 12(%r8),%edx
  3650. movl %esi,4(%r8)
  3651. addl 16(%r8),%ebp
  3652. movl %ecx,8(%r8)
  3653. movl %edx,12(%r8)
  3654. movl %ebp,16(%r8)
  3655. movq -40(%r11),%r14
  3656. movq -32(%r11),%r13
  3657. movq -24(%r11),%r12
  3658. movq -16(%r11),%rbp
  3659. movq -8(%r11),%rbx
  3660. leaq (%r11),%rsp
  3661. L$epilogue_avx:
  3662. .byte 0xf3,0xc3
  3663. .p2align 4
  3664. sha1_block_data_order_avx2:
  3665. _avx2_shortcut:
  3666. movq %rsp,%r11
  3667. pushq %rbx
  3668. pushq %rbp
  3669. pushq %r12
  3670. pushq %r13
  3671. pushq %r14
  3672. vzeroupper
  3673. movq %rdi,%r8
  3674. movq %rsi,%r9
  3675. movq %rdx,%r10
  3676. leaq -640(%rsp),%rsp
  3677. shlq $6,%r10
  3678. leaq 64(%r9),%r13
  3679. andq $-128,%rsp
  3680. addq %r9,%r10
  3681. leaq K_XX_XX+64(%rip),%r14
  3682. movl 0(%r8),%eax
  3683. cmpq %r10,%r13
  3684. cmovaeq %r9,%r13
  3685. movl 4(%r8),%ebp
  3686. movl 8(%r8),%ecx
  3687. movl 12(%r8),%edx
  3688. movl 16(%r8),%esi
  3689. vmovdqu 64(%r14),%ymm6
  3690. vmovdqu (%r9),%xmm0
  3691. vmovdqu 16(%r9),%xmm1
  3692. vmovdqu 32(%r9),%xmm2
  3693. vmovdqu 48(%r9),%xmm3
  3694. leaq 64(%r9),%r9
  3695. vinserti128 $1,(%r13),%ymm0,%ymm0
  3696. vinserti128 $1,16(%r13),%ymm1,%ymm1
  3697. vpshufb %ymm6,%ymm0,%ymm0
  3698. vinserti128 $1,32(%r13),%ymm2,%ymm2
  3699. vpshufb %ymm6,%ymm1,%ymm1
  3700. vinserti128 $1,48(%r13),%ymm3,%ymm3
  3701. vpshufb %ymm6,%ymm2,%ymm2
  3702. vmovdqu -64(%r14),%ymm11
  3703. vpshufb %ymm6,%ymm3,%ymm3
  3704. vpaddd %ymm11,%ymm0,%ymm4
  3705. vpaddd %ymm11,%ymm1,%ymm5
  3706. vmovdqu %ymm4,0(%rsp)
  3707. vpaddd %ymm11,%ymm2,%ymm6
  3708. vmovdqu %ymm5,32(%rsp)
  3709. vpaddd %ymm11,%ymm3,%ymm7
  3710. vmovdqu %ymm6,64(%rsp)
  3711. vmovdqu %ymm7,96(%rsp)
  3712. vpalignr $8,%ymm0,%ymm1,%ymm4
  3713. vpsrldq $4,%ymm3,%ymm8
  3714. vpxor %ymm0,%ymm4,%ymm4
  3715. vpxor %ymm2,%ymm8,%ymm8
  3716. vpxor %ymm8,%ymm4,%ymm4
  3717. vpsrld $31,%ymm4,%ymm8
  3718. vpslldq $12,%ymm4,%ymm10
  3719. vpaddd %ymm4,%ymm4,%ymm4
  3720. vpsrld $30,%ymm10,%ymm9
  3721. vpor %ymm8,%ymm4,%ymm4
  3722. vpslld $2,%ymm10,%ymm10
  3723. vpxor %ymm9,%ymm4,%ymm4
  3724. vpxor %ymm10,%ymm4,%ymm4
  3725. vpaddd %ymm11,%ymm4,%ymm9
  3726. vmovdqu %ymm9,128(%rsp)
  3727. vpalignr $8,%ymm1,%ymm2,%ymm5
  3728. vpsrldq $4,%ymm4,%ymm8
  3729. vpxor %ymm1,%ymm5,%ymm5
  3730. vpxor %ymm3,%ymm8,%ymm8
  3731. vpxor %ymm8,%ymm5,%ymm5
  3732. vpsrld $31,%ymm5,%ymm8
  3733. vmovdqu -32(%r14),%ymm11
  3734. vpslldq $12,%ymm5,%ymm10
  3735. vpaddd %ymm5,%ymm5,%ymm5
  3736. vpsrld $30,%ymm10,%ymm9
  3737. vpor %ymm8,%ymm5,%ymm5
  3738. vpslld $2,%ymm10,%ymm10
  3739. vpxor %ymm9,%ymm5,%ymm5
  3740. vpxor %ymm10,%ymm5,%ymm5
  3741. vpaddd %ymm11,%ymm5,%ymm9
  3742. vmovdqu %ymm9,160(%rsp)
  3743. vpalignr $8,%ymm2,%ymm3,%ymm6
  3744. vpsrldq $4,%ymm5,%ymm8
  3745. vpxor %ymm2,%ymm6,%ymm6
  3746. vpxor %ymm4,%ymm8,%ymm8
  3747. vpxor %ymm8,%ymm6,%ymm6
  3748. vpsrld $31,%ymm6,%ymm8
  3749. vpslldq $12,%ymm6,%ymm10
  3750. vpaddd %ymm6,%ymm6,%ymm6
  3751. vpsrld $30,%ymm10,%ymm9
  3752. vpor %ymm8,%ymm6,%ymm6
  3753. vpslld $2,%ymm10,%ymm10
  3754. vpxor %ymm9,%ymm6,%ymm6
  3755. vpxor %ymm10,%ymm6,%ymm6
  3756. vpaddd %ymm11,%ymm6,%ymm9
  3757. vmovdqu %ymm9,192(%rsp)
  3758. vpalignr $8,%ymm3,%ymm4,%ymm7
  3759. vpsrldq $4,%ymm6,%ymm8
  3760. vpxor %ymm3,%ymm7,%ymm7
  3761. vpxor %ymm5,%ymm8,%ymm8
  3762. vpxor %ymm8,%ymm7,%ymm7
  3763. vpsrld $31,%ymm7,%ymm8
  3764. vpslldq $12,%ymm7,%ymm10
  3765. vpaddd %ymm7,%ymm7,%ymm7
  3766. vpsrld $30,%ymm10,%ymm9
  3767. vpor %ymm8,%ymm7,%ymm7
  3768. vpslld $2,%ymm10,%ymm10
  3769. vpxor %ymm9,%ymm7,%ymm7
  3770. vpxor %ymm10,%ymm7,%ymm7
  3771. vpaddd %ymm11,%ymm7,%ymm9
  3772. vmovdqu %ymm9,224(%rsp)
  3773. leaq 128(%rsp),%r13
  3774. jmp L$oop_avx2
  3775. .p2align 5
  3776. L$oop_avx2:
  3777. rorxl $2,%ebp,%ebx
  3778. andnl %edx,%ebp,%edi
  3779. andl %ecx,%ebp
  3780. xorl %edi,%ebp
  3781. jmp L$align32_1
  3782. .p2align 5
  3783. L$align32_1:
  3784. vpalignr $8,%ymm6,%ymm7,%ymm8
  3785. vpxor %ymm4,%ymm0,%ymm0
  3786. addl -128(%r13),%esi
  3787. andnl %ecx,%eax,%edi
  3788. vpxor %ymm1,%ymm0,%ymm0
  3789. addl %ebp,%esi
  3790. rorxl $27,%eax,%r12d
  3791. rorxl $2,%eax,%ebp
  3792. vpxor %ymm8,%ymm0,%ymm0
  3793. andl %ebx,%eax
  3794. addl %r12d,%esi
  3795. xorl %edi,%eax
  3796. vpsrld $30,%ymm0,%ymm8
  3797. vpslld $2,%ymm0,%ymm0
  3798. addl -124(%r13),%edx
  3799. andnl %ebx,%esi,%edi
  3800. addl %eax,%edx
  3801. rorxl $27,%esi,%r12d
  3802. rorxl $2,%esi,%eax
  3803. andl %ebp,%esi
  3804. vpor %ymm8,%ymm0,%ymm0
  3805. addl %r12d,%edx
  3806. xorl %edi,%esi
  3807. addl -120(%r13),%ecx
  3808. andnl %ebp,%edx,%edi
  3809. vpaddd %ymm11,%ymm0,%ymm9
  3810. addl %esi,%ecx
  3811. rorxl $27,%edx,%r12d
  3812. rorxl $2,%edx,%esi
  3813. andl %eax,%edx
  3814. vmovdqu %ymm9,256(%rsp)
  3815. addl %r12d,%ecx
  3816. xorl %edi,%edx
  3817. addl -116(%r13),%ebx
  3818. andnl %eax,%ecx,%edi
  3819. addl %edx,%ebx
  3820. rorxl $27,%ecx,%r12d
  3821. rorxl $2,%ecx,%edx
  3822. andl %esi,%ecx
  3823. addl %r12d,%ebx
  3824. xorl %edi,%ecx
  3825. addl -96(%r13),%ebp
  3826. andnl %esi,%ebx,%edi
  3827. addl %ecx,%ebp
  3828. rorxl $27,%ebx,%r12d
  3829. rorxl $2,%ebx,%ecx
  3830. andl %edx,%ebx
  3831. addl %r12d,%ebp
  3832. xorl %edi,%ebx
  3833. vpalignr $8,%ymm7,%ymm0,%ymm8
  3834. vpxor %ymm5,%ymm1,%ymm1
  3835. addl -92(%r13),%eax
  3836. andnl %edx,%ebp,%edi
  3837. vpxor %ymm2,%ymm1,%ymm1
  3838. addl %ebx,%eax
  3839. rorxl $27,%ebp,%r12d
  3840. rorxl $2,%ebp,%ebx
  3841. vpxor %ymm8,%ymm1,%ymm1
  3842. andl %ecx,%ebp
  3843. addl %r12d,%eax
  3844. xorl %edi,%ebp
  3845. vpsrld $30,%ymm1,%ymm8
  3846. vpslld $2,%ymm1,%ymm1
  3847. addl -88(%r13),%esi
  3848. andnl %ecx,%eax,%edi
  3849. addl %ebp,%esi
  3850. rorxl $27,%eax,%r12d
  3851. rorxl $2,%eax,%ebp
  3852. andl %ebx,%eax
  3853. vpor %ymm8,%ymm1,%ymm1
  3854. addl %r12d,%esi
  3855. xorl %edi,%eax
  3856. addl -84(%r13),%edx
  3857. andnl %ebx,%esi,%edi
  3858. vpaddd %ymm11,%ymm1,%ymm9
  3859. addl %eax,%edx
  3860. rorxl $27,%esi,%r12d
  3861. rorxl $2,%esi,%eax
  3862. andl %ebp,%esi
  3863. vmovdqu %ymm9,288(%rsp)
  3864. addl %r12d,%edx
  3865. xorl %edi,%esi
  3866. addl -64(%r13),%ecx
  3867. andnl %ebp,%edx,%edi
  3868. addl %esi,%ecx
  3869. rorxl $27,%edx,%r12d
  3870. rorxl $2,%edx,%esi
  3871. andl %eax,%edx
  3872. addl %r12d,%ecx
  3873. xorl %edi,%edx
  3874. addl -60(%r13),%ebx
  3875. andnl %eax,%ecx,%edi
  3876. addl %edx,%ebx
  3877. rorxl $27,%ecx,%r12d
  3878. rorxl $2,%ecx,%edx
  3879. andl %esi,%ecx
  3880. addl %r12d,%ebx
  3881. xorl %edi,%ecx
  3882. vpalignr $8,%ymm0,%ymm1,%ymm8
  3883. vpxor %ymm6,%ymm2,%ymm2
  3884. addl -56(%r13),%ebp
  3885. andnl %esi,%ebx,%edi
  3886. vpxor %ymm3,%ymm2,%ymm2
  3887. vmovdqu 0(%r14),%ymm11
  3888. addl %ecx,%ebp
  3889. rorxl $27,%ebx,%r12d
  3890. rorxl $2,%ebx,%ecx
  3891. vpxor %ymm8,%ymm2,%ymm2
  3892. andl %edx,%ebx
  3893. addl %r12d,%ebp
  3894. xorl %edi,%ebx
  3895. vpsrld $30,%ymm2,%ymm8
  3896. vpslld $2,%ymm2,%ymm2
  3897. addl -52(%r13),%eax
  3898. andnl %edx,%ebp,%edi
  3899. addl %ebx,%eax
  3900. rorxl $27,%ebp,%r12d
  3901. rorxl $2,%ebp,%ebx
  3902. andl %ecx,%ebp
  3903. vpor %ymm8,%ymm2,%ymm2
  3904. addl %r12d,%eax
  3905. xorl %edi,%ebp
  3906. addl -32(%r13),%esi
  3907. andnl %ecx,%eax,%edi
  3908. vpaddd %ymm11,%ymm2,%ymm9
  3909. addl %ebp,%esi
  3910. rorxl $27,%eax,%r12d
  3911. rorxl $2,%eax,%ebp
  3912. andl %ebx,%eax
  3913. vmovdqu %ymm9,320(%rsp)
  3914. addl %r12d,%esi
  3915. xorl %edi,%eax
  3916. addl -28(%r13),%edx
  3917. andnl %ebx,%esi,%edi
  3918. addl %eax,%edx
  3919. rorxl $27,%esi,%r12d
  3920. rorxl $2,%esi,%eax
  3921. andl %ebp,%esi
  3922. addl %r12d,%edx
  3923. xorl %edi,%esi
  3924. addl -24(%r13),%ecx
  3925. andnl %ebp,%edx,%edi
  3926. addl %esi,%ecx
  3927. rorxl $27,%edx,%r12d
  3928. rorxl $2,%edx,%esi
  3929. andl %eax,%edx
  3930. addl %r12d,%ecx
  3931. xorl %edi,%edx
  3932. vpalignr $8,%ymm1,%ymm2,%ymm8
  3933. vpxor %ymm7,%ymm3,%ymm3
  3934. addl -20(%r13),%ebx
  3935. andnl %eax,%ecx,%edi
  3936. vpxor %ymm4,%ymm3,%ymm3
  3937. addl %edx,%ebx
  3938. rorxl $27,%ecx,%r12d
  3939. rorxl $2,%ecx,%edx
  3940. vpxor %ymm8,%ymm3,%ymm3
  3941. andl %esi,%ecx
  3942. addl %r12d,%ebx
  3943. xorl %edi,%ecx
  3944. vpsrld $30,%ymm3,%ymm8
  3945. vpslld $2,%ymm3,%ymm3
  3946. addl 0(%r13),%ebp
  3947. andnl %esi,%ebx,%edi
  3948. addl %ecx,%ebp
  3949. rorxl $27,%ebx,%r12d
  3950. rorxl $2,%ebx,%ecx
  3951. andl %edx,%ebx
  3952. vpor %ymm8,%ymm3,%ymm3
  3953. addl %r12d,%ebp
  3954. xorl %edi,%ebx
  3955. addl 4(%r13),%eax
  3956. andnl %edx,%ebp,%edi
  3957. vpaddd %ymm11,%ymm3,%ymm9
  3958. addl %ebx,%eax
  3959. rorxl $27,%ebp,%r12d
  3960. rorxl $2,%ebp,%ebx
  3961. andl %ecx,%ebp
  3962. vmovdqu %ymm9,352(%rsp)
  3963. addl %r12d,%eax
  3964. xorl %edi,%ebp
  3965. addl 8(%r13),%esi
  3966. andnl %ecx,%eax,%edi
  3967. addl %ebp,%esi
  3968. rorxl $27,%eax,%r12d
  3969. rorxl $2,%eax,%ebp
  3970. andl %ebx,%eax
  3971. addl %r12d,%esi
  3972. xorl %edi,%eax
  3973. addl 12(%r13),%edx
  3974. leal (%rdx,%rax,1),%edx
  3975. rorxl $27,%esi,%r12d
  3976. rorxl $2,%esi,%eax
  3977. xorl %ebp,%esi
  3978. addl %r12d,%edx
  3979. xorl %ebx,%esi
  3980. vpalignr $8,%ymm2,%ymm3,%ymm8
  3981. vpxor %ymm0,%ymm4,%ymm4
  3982. addl 32(%r13),%ecx
  3983. leal (%rcx,%rsi,1),%ecx
  3984. vpxor %ymm5,%ymm4,%ymm4
  3985. rorxl $27,%edx,%r12d
  3986. rorxl $2,%edx,%esi
  3987. xorl %eax,%edx
  3988. vpxor %ymm8,%ymm4,%ymm4
  3989. addl %r12d,%ecx
  3990. xorl %ebp,%edx
  3991. addl 36(%r13),%ebx
  3992. vpsrld $30,%ymm4,%ymm8
  3993. vpslld $2,%ymm4,%ymm4
  3994. leal (%rbx,%rdx,1),%ebx
  3995. rorxl $27,%ecx,%r12d
  3996. rorxl $2,%ecx,%edx
  3997. xorl %esi,%ecx
  3998. addl %r12d,%ebx
  3999. xorl %eax,%ecx
  4000. vpor %ymm8,%ymm4,%ymm4
  4001. addl 40(%r13),%ebp
  4002. leal (%rcx,%rbp,1),%ebp
  4003. rorxl $27,%ebx,%r12d
  4004. rorxl $2,%ebx,%ecx
  4005. vpaddd %ymm11,%ymm4,%ymm9
  4006. xorl %edx,%ebx
  4007. addl %r12d,%ebp
  4008. xorl %esi,%ebx
  4009. addl 44(%r13),%eax
  4010. vmovdqu %ymm9,384(%rsp)
  4011. leal (%rax,%rbx,1),%eax
  4012. rorxl $27,%ebp,%r12d
  4013. rorxl $2,%ebp,%ebx
  4014. xorl %ecx,%ebp
  4015. addl %r12d,%eax
  4016. xorl %edx,%ebp
  4017. addl 64(%r13),%esi
  4018. leal (%rsi,%rbp,1),%esi
  4019. rorxl $27,%eax,%r12d
  4020. rorxl $2,%eax,%ebp
  4021. xorl %ebx,%eax
  4022. addl %r12d,%esi
  4023. xorl %ecx,%eax
  4024. vpalignr $8,%ymm3,%ymm4,%ymm8
  4025. vpxor %ymm1,%ymm5,%ymm5
  4026. addl 68(%r13),%edx
  4027. leal (%rdx,%rax,1),%edx
  4028. vpxor %ymm6,%ymm5,%ymm5
  4029. rorxl $27,%esi,%r12d
  4030. rorxl $2,%esi,%eax
  4031. xorl %ebp,%esi
  4032. vpxor %ymm8,%ymm5,%ymm5
  4033. addl %r12d,%edx
  4034. xorl %ebx,%esi
  4035. addl 72(%r13),%ecx
  4036. vpsrld $30,%ymm5,%ymm8
  4037. vpslld $2,%ymm5,%ymm5
  4038. leal (%rcx,%rsi,1),%ecx
  4039. rorxl $27,%edx,%r12d
  4040. rorxl $2,%edx,%esi
  4041. xorl %eax,%edx
  4042. addl %r12d,%ecx
  4043. xorl %ebp,%edx
  4044. vpor %ymm8,%ymm5,%ymm5
  4045. addl 76(%r13),%ebx
  4046. leal (%rbx,%rdx,1),%ebx
  4047. rorxl $27,%ecx,%r12d
  4048. rorxl $2,%ecx,%edx
  4049. vpaddd %ymm11,%ymm5,%ymm9
  4050. xorl %esi,%ecx
  4051. addl %r12d,%ebx
  4052. xorl %eax,%ecx
  4053. addl 96(%r13),%ebp
  4054. vmovdqu %ymm9,416(%rsp)
  4055. leal (%rcx,%rbp,1),%ebp
  4056. rorxl $27,%ebx,%r12d
  4057. rorxl $2,%ebx,%ecx
  4058. xorl %edx,%ebx
  4059. addl %r12d,%ebp
  4060. xorl %esi,%ebx
  4061. addl 100(%r13),%eax
  4062. leal (%rax,%rbx,1),%eax
  4063. rorxl $27,%ebp,%r12d
  4064. rorxl $2,%ebp,%ebx
  4065. xorl %ecx,%ebp
  4066. addl %r12d,%eax
  4067. xorl %edx,%ebp
  4068. vpalignr $8,%ymm4,%ymm5,%ymm8
  4069. vpxor %ymm2,%ymm6,%ymm6
  4070. addl 104(%r13),%esi
  4071. leal (%rsi,%rbp,1),%esi
  4072. vpxor %ymm7,%ymm6,%ymm6
  4073. rorxl $27,%eax,%r12d
  4074. rorxl $2,%eax,%ebp
  4075. xorl %ebx,%eax
  4076. vpxor %ymm8,%ymm6,%ymm6
  4077. addl %r12d,%esi
  4078. xorl %ecx,%eax
  4079. addl 108(%r13),%edx
  4080. leaq 256(%r13),%r13
  4081. vpsrld $30,%ymm6,%ymm8
  4082. vpslld $2,%ymm6,%ymm6
  4083. leal (%rdx,%rax,1),%edx
  4084. rorxl $27,%esi,%r12d
  4085. rorxl $2,%esi,%eax
  4086. xorl %ebp,%esi
  4087. addl %r12d,%edx
  4088. xorl %ebx,%esi
  4089. vpor %ymm8,%ymm6,%ymm6
  4090. addl -128(%r13),%ecx
  4091. leal (%rcx,%rsi,1),%ecx
  4092. rorxl $27,%edx,%r12d
  4093. rorxl $2,%edx,%esi
  4094. vpaddd %ymm11,%ymm6,%ymm9
  4095. xorl %eax,%edx
  4096. addl %r12d,%ecx
  4097. xorl %ebp,%edx
  4098. addl -124(%r13),%ebx
  4099. vmovdqu %ymm9,448(%rsp)
  4100. leal (%rbx,%rdx,1),%ebx
  4101. rorxl $27,%ecx,%r12d
  4102. rorxl $2,%ecx,%edx
  4103. xorl %esi,%ecx
  4104. addl %r12d,%ebx
  4105. xorl %eax,%ecx
  4106. addl -120(%r13),%ebp
  4107. leal (%rcx,%rbp,1),%ebp
  4108. rorxl $27,%ebx,%r12d
  4109. rorxl $2,%ebx,%ecx
  4110. xorl %edx,%ebx
  4111. addl %r12d,%ebp
  4112. xorl %esi,%ebx
  4113. vpalignr $8,%ymm5,%ymm6,%ymm8
  4114. vpxor %ymm3,%ymm7,%ymm7
  4115. addl -116(%r13),%eax
  4116. leal (%rax,%rbx,1),%eax
  4117. vpxor %ymm0,%ymm7,%ymm7
  4118. vmovdqu 32(%r14),%ymm11
  4119. rorxl $27,%ebp,%r12d
  4120. rorxl $2,%ebp,%ebx
  4121. xorl %ecx,%ebp
  4122. vpxor %ymm8,%ymm7,%ymm7
  4123. addl %r12d,%eax
  4124. xorl %edx,%ebp
  4125. addl -96(%r13),%esi
  4126. vpsrld $30,%ymm7,%ymm8
  4127. vpslld $2,%ymm7,%ymm7
  4128. leal (%rsi,%rbp,1),%esi
  4129. rorxl $27,%eax,%r12d
  4130. rorxl $2,%eax,%ebp
  4131. xorl %ebx,%eax
  4132. addl %r12d,%esi
  4133. xorl %ecx,%eax
  4134. vpor %ymm8,%ymm7,%ymm7
  4135. addl -92(%r13),%edx
  4136. leal (%rdx,%rax,1),%edx
  4137. rorxl $27,%esi,%r12d
  4138. rorxl $2,%esi,%eax
  4139. vpaddd %ymm11,%ymm7,%ymm9
  4140. xorl %ebp,%esi
  4141. addl %r12d,%edx
  4142. xorl %ebx,%esi
  4143. addl -88(%r13),%ecx
  4144. vmovdqu %ymm9,480(%rsp)
  4145. leal (%rcx,%rsi,1),%ecx
  4146. rorxl $27,%edx,%r12d
  4147. rorxl $2,%edx,%esi
  4148. xorl %eax,%edx
  4149. addl %r12d,%ecx
  4150. xorl %ebp,%edx
  4151. addl -84(%r13),%ebx
  4152. movl %esi,%edi
  4153. xorl %eax,%edi
  4154. leal (%rbx,%rdx,1),%ebx
  4155. rorxl $27,%ecx,%r12d
  4156. rorxl $2,%ecx,%edx
  4157. xorl %esi,%ecx
  4158. addl %r12d,%ebx
  4159. andl %edi,%ecx
  4160. jmp L$align32_2
  4161. .p2align 5
  4162. L$align32_2:
  4163. vpalignr $8,%ymm6,%ymm7,%ymm8
  4164. vpxor %ymm4,%ymm0,%ymm0
  4165. addl -64(%r13),%ebp
  4166. xorl %esi,%ecx
  4167. vpxor %ymm1,%ymm0,%ymm0
  4168. movl %edx,%edi
  4169. xorl %esi,%edi
  4170. leal (%rcx,%rbp,1),%ebp
  4171. vpxor %ymm8,%ymm0,%ymm0
  4172. rorxl $27,%ebx,%r12d
  4173. rorxl $2,%ebx,%ecx
  4174. xorl %edx,%ebx
  4175. vpsrld $30,%ymm0,%ymm8
  4176. vpslld $2,%ymm0,%ymm0
  4177. addl %r12d,%ebp
  4178. andl %edi,%ebx
  4179. addl -60(%r13),%eax
  4180. xorl %edx,%ebx
  4181. movl %ecx,%edi
  4182. xorl %edx,%edi
  4183. vpor %ymm8,%ymm0,%ymm0
  4184. leal (%rax,%rbx,1),%eax
  4185. rorxl $27,%ebp,%r12d
  4186. rorxl $2,%ebp,%ebx
  4187. xorl %ecx,%ebp
  4188. vpaddd %ymm11,%ymm0,%ymm9
  4189. addl %r12d,%eax
  4190. andl %edi,%ebp
  4191. addl -56(%r13),%esi
  4192. xorl %ecx,%ebp
  4193. vmovdqu %ymm9,512(%rsp)
  4194. movl %ebx,%edi
  4195. xorl %ecx,%edi
  4196. leal (%rsi,%rbp,1),%esi
  4197. rorxl $27,%eax,%r12d
  4198. rorxl $2,%eax,%ebp
  4199. xorl %ebx,%eax
  4200. addl %r12d,%esi
  4201. andl %edi,%eax
  4202. addl -52(%r13),%edx
  4203. xorl %ebx,%eax
  4204. movl %ebp,%edi
  4205. xorl %ebx,%edi
  4206. leal (%rdx,%rax,1),%edx
  4207. rorxl $27,%esi,%r12d
  4208. rorxl $2,%esi,%eax
  4209. xorl %ebp,%esi
  4210. addl %r12d,%edx
  4211. andl %edi,%esi
  4212. addl -32(%r13),%ecx
  4213. xorl %ebp,%esi
  4214. movl %eax,%edi
  4215. xorl %ebp,%edi
  4216. leal (%rcx,%rsi,1),%ecx
  4217. rorxl $27,%edx,%r12d
  4218. rorxl $2,%edx,%esi
  4219. xorl %eax,%edx
  4220. addl %r12d,%ecx
  4221. andl %edi,%edx
  4222. vpalignr $8,%ymm7,%ymm0,%ymm8
  4223. vpxor %ymm5,%ymm1,%ymm1
  4224. addl -28(%r13),%ebx
  4225. xorl %eax,%edx
  4226. vpxor %ymm2,%ymm1,%ymm1
  4227. movl %esi,%edi
  4228. xorl %eax,%edi
  4229. leal (%rbx,%rdx,1),%ebx
  4230. vpxor %ymm8,%ymm1,%ymm1
  4231. rorxl $27,%ecx,%r12d
  4232. rorxl $2,%ecx,%edx
  4233. xorl %esi,%ecx
  4234. vpsrld $30,%ymm1,%ymm8
  4235. vpslld $2,%ymm1,%ymm1
  4236. addl %r12d,%ebx
  4237. andl %edi,%ecx
  4238. addl -24(%r13),%ebp
  4239. xorl %esi,%ecx
  4240. movl %edx,%edi
  4241. xorl %esi,%edi
  4242. vpor %ymm8,%ymm1,%ymm1
  4243. leal (%rcx,%rbp,1),%ebp
  4244. rorxl $27,%ebx,%r12d
  4245. rorxl $2,%ebx,%ecx
  4246. xorl %edx,%ebx
  4247. vpaddd %ymm11,%ymm1,%ymm9
  4248. addl %r12d,%ebp
  4249. andl %edi,%ebx
  4250. addl -20(%r13),%eax
  4251. xorl %edx,%ebx
  4252. vmovdqu %ymm9,544(%rsp)
  4253. movl %ecx,%edi
  4254. xorl %edx,%edi
  4255. leal (%rax,%rbx,1),%eax
  4256. rorxl $27,%ebp,%r12d
  4257. rorxl $2,%ebp,%ebx
  4258. xorl %ecx,%ebp
  4259. addl %r12d,%eax
  4260. andl %edi,%ebp
  4261. addl 0(%r13),%esi
  4262. xorl %ecx,%ebp
  4263. movl %ebx,%edi
  4264. xorl %ecx,%edi
  4265. leal (%rsi,%rbp,1),%esi
  4266. rorxl $27,%eax,%r12d
  4267. rorxl $2,%eax,%ebp
  4268. xorl %ebx,%eax
  4269. addl %r12d,%esi
  4270. andl %edi,%eax
  4271. addl 4(%r13),%edx
  4272. xorl %ebx,%eax
  4273. movl %ebp,%edi
  4274. xorl %ebx,%edi
  4275. leal (%rdx,%rax,1),%edx
  4276. rorxl $27,%esi,%r12d
  4277. rorxl $2,%esi,%eax
  4278. xorl %ebp,%esi
  4279. addl %r12d,%edx
  4280. andl %edi,%esi
  4281. vpalignr $8,%ymm0,%ymm1,%ymm8
  4282. vpxor %ymm6,%ymm2,%ymm2
  4283. addl 8(%r13),%ecx
  4284. xorl %ebp,%esi
  4285. vpxor %ymm3,%ymm2,%ymm2
  4286. movl %eax,%edi
  4287. xorl %ebp,%edi
  4288. leal (%rcx,%rsi,1),%ecx
  4289. vpxor %ymm8,%ymm2,%ymm2
  4290. rorxl $27,%edx,%r12d
  4291. rorxl $2,%edx,%esi
  4292. xorl %eax,%edx
  4293. vpsrld $30,%ymm2,%ymm8
  4294. vpslld $2,%ymm2,%ymm2
  4295. addl %r12d,%ecx
  4296. andl %edi,%edx
  4297. addl 12(%r13),%ebx
  4298. xorl %eax,%edx
  4299. movl %esi,%edi
  4300. xorl %eax,%edi
  4301. vpor %ymm8,%ymm2,%ymm2
  4302. leal (%rbx,%rdx,1),%ebx
  4303. rorxl $27,%ecx,%r12d
  4304. rorxl $2,%ecx,%edx
  4305. xorl %esi,%ecx
  4306. vpaddd %ymm11,%ymm2,%ymm9
  4307. addl %r12d,%ebx
  4308. andl %edi,%ecx
  4309. addl 32(%r13),%ebp
  4310. xorl %esi,%ecx
  4311. vmovdqu %ymm9,576(%rsp)
  4312. movl %edx,%edi
  4313. xorl %esi,%edi
  4314. leal (%rcx,%rbp,1),%ebp
  4315. rorxl $27,%ebx,%r12d
  4316. rorxl $2,%ebx,%ecx
  4317. xorl %edx,%ebx
  4318. addl %r12d,%ebp
  4319. andl %edi,%ebx
  4320. addl 36(%r13),%eax
  4321. xorl %edx,%ebx
  4322. movl %ecx,%edi
  4323. xorl %edx,%edi
  4324. leal (%rax,%rbx,1),%eax
  4325. rorxl $27,%ebp,%r12d
  4326. rorxl $2,%ebp,%ebx
  4327. xorl %ecx,%ebp
  4328. addl %r12d,%eax
  4329. andl %edi,%ebp
  4330. addl 40(%r13),%esi
  4331. xorl %ecx,%ebp
  4332. movl %ebx,%edi
  4333. xorl %ecx,%edi
  4334. leal (%rsi,%rbp,1),%esi
  4335. rorxl $27,%eax,%r12d
  4336. rorxl $2,%eax,%ebp
  4337. xorl %ebx,%eax
  4338. addl %r12d,%esi
  4339. andl %edi,%eax
  4340. vpalignr $8,%ymm1,%ymm2,%ymm8
  4341. vpxor %ymm7,%ymm3,%ymm3
  4342. addl 44(%r13),%edx
  4343. xorl %ebx,%eax
  4344. vpxor %ymm4,%ymm3,%ymm3
  4345. movl %ebp,%edi
  4346. xorl %ebx,%edi
  4347. leal (%rdx,%rax,1),%edx
  4348. vpxor %ymm8,%ymm3,%ymm3
  4349. rorxl $27,%esi,%r12d
  4350. rorxl $2,%esi,%eax
  4351. xorl %ebp,%esi
  4352. vpsrld $30,%ymm3,%ymm8
  4353. vpslld $2,%ymm3,%ymm3
  4354. addl %r12d,%edx
  4355. andl %edi,%esi
  4356. addl 64(%r13),%ecx
  4357. xorl %ebp,%esi
  4358. movl %eax,%edi
  4359. xorl %ebp,%edi
  4360. vpor %ymm8,%ymm3,%ymm3
  4361. leal (%rcx,%rsi,1),%ecx
  4362. rorxl $27,%edx,%r12d
  4363. rorxl $2,%edx,%esi
  4364. xorl %eax,%edx
  4365. vpaddd %ymm11,%ymm3,%ymm9
  4366. addl %r12d,%ecx
  4367. andl %edi,%edx
  4368. addl 68(%r13),%ebx
  4369. xorl %eax,%edx
  4370. vmovdqu %ymm9,608(%rsp)
  4371. movl %esi,%edi
  4372. xorl %eax,%edi
  4373. leal (%rbx,%rdx,1),%ebx
  4374. rorxl $27,%ecx,%r12d
  4375. rorxl $2,%ecx,%edx
  4376. xorl %esi,%ecx
  4377. addl %r12d,%ebx
  4378. andl %edi,%ecx
  4379. addl 72(%r13),%ebp
  4380. xorl %esi,%ecx
  4381. movl %edx,%edi
  4382. xorl %esi,%edi
  4383. leal (%rcx,%rbp,1),%ebp
  4384. rorxl $27,%ebx,%r12d
  4385. rorxl $2,%ebx,%ecx
  4386. xorl %edx,%ebx
  4387. addl %r12d,%ebp
  4388. andl %edi,%ebx
  4389. addl 76(%r13),%eax
  4390. xorl %edx,%ebx
  4391. leal (%rax,%rbx,1),%eax
  4392. rorxl $27,%ebp,%r12d
  4393. rorxl $2,%ebp,%ebx
  4394. xorl %ecx,%ebp
  4395. addl %r12d,%eax
  4396. xorl %edx,%ebp
  4397. addl 96(%r13),%esi
  4398. leal (%rsi,%rbp,1),%esi
  4399. rorxl $27,%eax,%r12d
  4400. rorxl $2,%eax,%ebp
  4401. xorl %ebx,%eax
  4402. addl %r12d,%esi
  4403. xorl %ecx,%eax
  4404. addl 100(%r13),%edx
  4405. leal (%rdx,%rax,1),%edx
  4406. rorxl $27,%esi,%r12d
  4407. rorxl $2,%esi,%eax
  4408. xorl %ebp,%esi
  4409. addl %r12d,%edx
  4410. xorl %ebx,%esi
  4411. addl 104(%r13),%ecx
  4412. leal (%rcx,%rsi,1),%ecx
  4413. rorxl $27,%edx,%r12d
  4414. rorxl $2,%edx,%esi
  4415. xorl %eax,%edx
  4416. addl %r12d,%ecx
  4417. xorl %ebp,%edx
  4418. addl 108(%r13),%ebx
  4419. leaq 256(%r13),%r13
  4420. leal (%rbx,%rdx,1),%ebx
  4421. rorxl $27,%ecx,%r12d
  4422. rorxl $2,%ecx,%edx
  4423. xorl %esi,%ecx
  4424. addl %r12d,%ebx
  4425. xorl %eax,%ecx
  4426. addl -128(%r13),%ebp
  4427. leal (%rcx,%rbp,1),%ebp
  4428. rorxl $27,%ebx,%r12d
  4429. rorxl $2,%ebx,%ecx
  4430. xorl %edx,%ebx
  4431. addl %r12d,%ebp
  4432. xorl %esi,%ebx
  4433. addl -124(%r13),%eax
  4434. leal (%rax,%rbx,1),%eax
  4435. rorxl $27,%ebp,%r12d
  4436. rorxl $2,%ebp,%ebx
  4437. xorl %ecx,%ebp
  4438. addl %r12d,%eax
  4439. xorl %edx,%ebp
  4440. addl -120(%r13),%esi
  4441. leal (%rsi,%rbp,1),%esi
  4442. rorxl $27,%eax,%r12d
  4443. rorxl $2,%eax,%ebp
  4444. xorl %ebx,%eax
  4445. addl %r12d,%esi
  4446. xorl %ecx,%eax
  4447. addl -116(%r13),%edx
  4448. leal (%rdx,%rax,1),%edx
  4449. rorxl $27,%esi,%r12d
  4450. rorxl $2,%esi,%eax
  4451. xorl %ebp,%esi
  4452. addl %r12d,%edx
  4453. xorl %ebx,%esi
  4454. addl -96(%r13),%ecx
  4455. leal (%rcx,%rsi,1),%ecx
  4456. rorxl $27,%edx,%r12d
  4457. rorxl $2,%edx,%esi
  4458. xorl %eax,%edx
  4459. addl %r12d,%ecx
  4460. xorl %ebp,%edx
  4461. addl -92(%r13),%ebx
  4462. leal (%rbx,%rdx,1),%ebx
  4463. rorxl $27,%ecx,%r12d
  4464. rorxl $2,%ecx,%edx
  4465. xorl %esi,%ecx
  4466. addl %r12d,%ebx
  4467. xorl %eax,%ecx
  4468. addl -88(%r13),%ebp
  4469. leal (%rcx,%rbp,1),%ebp
  4470. rorxl $27,%ebx,%r12d
  4471. rorxl $2,%ebx,%ecx
  4472. xorl %edx,%ebx
  4473. addl %r12d,%ebp
  4474. xorl %esi,%ebx
  4475. addl -84(%r13),%eax
  4476. leal (%rax,%rbx,1),%eax
  4477. rorxl $27,%ebp,%r12d
  4478. rorxl $2,%ebp,%ebx
  4479. xorl %ecx,%ebp
  4480. addl %r12d,%eax
  4481. xorl %edx,%ebp
  4482. addl -64(%r13),%esi
  4483. leal (%rsi,%rbp,1),%esi
  4484. rorxl $27,%eax,%r12d
  4485. rorxl $2,%eax,%ebp
  4486. xorl %ebx,%eax
  4487. addl %r12d,%esi
  4488. xorl %ecx,%eax
  4489. addl -60(%r13),%edx
  4490. leal (%rdx,%rax,1),%edx
  4491. rorxl $27,%esi,%r12d
  4492. rorxl $2,%esi,%eax
  4493. xorl %ebp,%esi
  4494. addl %r12d,%edx
  4495. xorl %ebx,%esi
  4496. addl -56(%r13),%ecx
  4497. leal (%rcx,%rsi,1),%ecx
  4498. rorxl $27,%edx,%r12d
  4499. rorxl $2,%edx,%esi
  4500. xorl %eax,%edx
  4501. addl %r12d,%ecx
  4502. xorl %ebp,%edx
  4503. addl -52(%r13),%ebx
  4504. leal (%rbx,%rdx,1),%ebx
  4505. rorxl $27,%ecx,%r12d
  4506. rorxl $2,%ecx,%edx
  4507. xorl %esi,%ecx
  4508. addl %r12d,%ebx
  4509. xorl %eax,%ecx
  4510. addl -32(%r13),%ebp
  4511. leal (%rcx,%rbp,1),%ebp
  4512. rorxl $27,%ebx,%r12d
  4513. rorxl $2,%ebx,%ecx
  4514. xorl %edx,%ebx
  4515. addl %r12d,%ebp
  4516. xorl %esi,%ebx
  4517. addl -28(%r13),%eax
  4518. leal (%rax,%rbx,1),%eax
  4519. rorxl $27,%ebp,%r12d
  4520. rorxl $2,%ebp,%ebx
  4521. xorl %ecx,%ebp
  4522. addl %r12d,%eax
  4523. xorl %edx,%ebp
  4524. addl -24(%r13),%esi
  4525. leal (%rsi,%rbp,1),%esi
  4526. rorxl $27,%eax,%r12d
  4527. rorxl $2,%eax,%ebp
  4528. xorl %ebx,%eax
  4529. addl %r12d,%esi
  4530. xorl %ecx,%eax
  4531. addl -20(%r13),%edx
  4532. leal (%rdx,%rax,1),%edx
  4533. rorxl $27,%esi,%r12d
  4534. addl %r12d,%edx
  4535. leaq 128(%r9),%r13
  4536. leaq 128(%r9),%rdi
  4537. cmpq %r10,%r13
  4538. cmovaeq %r9,%r13
  4539. addl 0(%r8),%edx
  4540. addl 4(%r8),%esi
  4541. addl 8(%r8),%ebp
  4542. movl %edx,0(%r8)
  4543. addl 12(%r8),%ebx
  4544. movl %esi,4(%r8)
  4545. movl %edx,%eax
  4546. addl 16(%r8),%ecx
  4547. movl %ebp,%r12d
  4548. movl %ebp,8(%r8)
  4549. movl %ebx,%edx
  4550. movl %ebx,12(%r8)
  4551. movl %esi,%ebp
  4552. movl %ecx,16(%r8)
  4553. movl %ecx,%esi
  4554. movl %r12d,%ecx
  4555. cmpq %r10,%r9
  4556. je L$done_avx2
  4557. vmovdqu 64(%r14),%ymm6
  4558. cmpq %r10,%rdi
  4559. ja L$ast_avx2
  4560. vmovdqu -64(%rdi),%xmm0
  4561. vmovdqu -48(%rdi),%xmm1
  4562. vmovdqu -32(%rdi),%xmm2
  4563. vmovdqu -16(%rdi),%xmm3
  4564. vinserti128 $1,0(%r13),%ymm0,%ymm0
  4565. vinserti128 $1,16(%r13),%ymm1,%ymm1
  4566. vinserti128 $1,32(%r13),%ymm2,%ymm2
  4567. vinserti128 $1,48(%r13),%ymm3,%ymm3
  4568. jmp L$ast_avx2
  4569. .p2align 5
  4570. L$ast_avx2:
  4571. leaq 128+16(%rsp),%r13
  4572. rorxl $2,%ebp,%ebx
  4573. andnl %edx,%ebp,%edi
  4574. andl %ecx,%ebp
  4575. xorl %edi,%ebp
  4576. subq $-128,%r9
  4577. addl -128(%r13),%esi
  4578. andnl %ecx,%eax,%edi
  4579. addl %ebp,%esi
  4580. rorxl $27,%eax,%r12d
  4581. rorxl $2,%eax,%ebp
  4582. andl %ebx,%eax
  4583. addl %r12d,%esi
  4584. xorl %edi,%eax
  4585. addl -124(%r13),%edx
  4586. andnl %ebx,%esi,%edi
  4587. addl %eax,%edx
  4588. rorxl $27,%esi,%r12d
  4589. rorxl $2,%esi,%eax
  4590. andl %ebp,%esi
  4591. addl %r12d,%edx
  4592. xorl %edi,%esi
  4593. addl -120(%r13),%ecx
  4594. andnl %ebp,%edx,%edi
  4595. addl %esi,%ecx
  4596. rorxl $27,%edx,%r12d
  4597. rorxl $2,%edx,%esi
  4598. andl %eax,%edx
  4599. addl %r12d,%ecx
  4600. xorl %edi,%edx
  4601. addl -116(%r13),%ebx
  4602. andnl %eax,%ecx,%edi
  4603. addl %edx,%ebx
  4604. rorxl $27,%ecx,%r12d
  4605. rorxl $2,%ecx,%edx
  4606. andl %esi,%ecx
  4607. addl %r12d,%ebx
  4608. xorl %edi,%ecx
  4609. addl -96(%r13),%ebp
  4610. andnl %esi,%ebx,%edi
  4611. addl %ecx,%ebp
  4612. rorxl $27,%ebx,%r12d
  4613. rorxl $2,%ebx,%ecx
  4614. andl %edx,%ebx
  4615. addl %r12d,%ebp
  4616. xorl %edi,%ebx
  4617. addl -92(%r13),%eax
  4618. andnl %edx,%ebp,%edi
  4619. addl %ebx,%eax
  4620. rorxl $27,%ebp,%r12d
  4621. rorxl $2,%ebp,%ebx
  4622. andl %ecx,%ebp
  4623. addl %r12d,%eax
  4624. xorl %edi,%ebp
  4625. addl -88(%r13),%esi
  4626. andnl %ecx,%eax,%edi
  4627. addl %ebp,%esi
  4628. rorxl $27,%eax,%r12d
  4629. rorxl $2,%eax,%ebp
  4630. andl %ebx,%eax
  4631. addl %r12d,%esi
  4632. xorl %edi,%eax
  4633. addl -84(%r13),%edx
  4634. andnl %ebx,%esi,%edi
  4635. addl %eax,%edx
  4636. rorxl $27,%esi,%r12d
  4637. rorxl $2,%esi,%eax
  4638. andl %ebp,%esi
  4639. addl %r12d,%edx
  4640. xorl %edi,%esi
  4641. addl -64(%r13),%ecx
  4642. andnl %ebp,%edx,%edi
  4643. addl %esi,%ecx
  4644. rorxl $27,%edx,%r12d
  4645. rorxl $2,%edx,%esi
  4646. andl %eax,%edx
  4647. addl %r12d,%ecx
  4648. xorl %edi,%edx
  4649. addl -60(%r13),%ebx
  4650. andnl %eax,%ecx,%edi
  4651. addl %edx,%ebx
  4652. rorxl $27,%ecx,%r12d
  4653. rorxl $2,%ecx,%edx
  4654. andl %esi,%ecx
  4655. addl %r12d,%ebx
  4656. xorl %edi,%ecx
  4657. addl -56(%r13),%ebp
  4658. andnl %esi,%ebx,%edi
  4659. addl %ecx,%ebp
  4660. rorxl $27,%ebx,%r12d
  4661. rorxl $2,%ebx,%ecx
  4662. andl %edx,%ebx
  4663. addl %r12d,%ebp
  4664. xorl %edi,%ebx
  4665. addl -52(%r13),%eax
  4666. andnl %edx,%ebp,%edi
  4667. addl %ebx,%eax
  4668. rorxl $27,%ebp,%r12d
  4669. rorxl $2,%ebp,%ebx
  4670. andl %ecx,%ebp
  4671. addl %r12d,%eax
  4672. xorl %edi,%ebp
  4673. addl -32(%r13),%esi
  4674. andnl %ecx,%eax,%edi
  4675. addl %ebp,%esi
  4676. rorxl $27,%eax,%r12d
  4677. rorxl $2,%eax,%ebp
  4678. andl %ebx,%eax
  4679. addl %r12d,%esi
  4680. xorl %edi,%eax
  4681. addl -28(%r13),%edx
  4682. andnl %ebx,%esi,%edi
  4683. addl %eax,%edx
  4684. rorxl $27,%esi,%r12d
  4685. rorxl $2,%esi,%eax
  4686. andl %ebp,%esi
  4687. addl %r12d,%edx
  4688. xorl %edi,%esi
  4689. addl -24(%r13),%ecx
  4690. andnl %ebp,%edx,%edi
  4691. addl %esi,%ecx
  4692. rorxl $27,%edx,%r12d
  4693. rorxl $2,%edx,%esi
  4694. andl %eax,%edx
  4695. addl %r12d,%ecx
  4696. xorl %edi,%edx
  4697. addl -20(%r13),%ebx
  4698. andnl %eax,%ecx,%edi
  4699. addl %edx,%ebx
  4700. rorxl $27,%ecx,%r12d
  4701. rorxl $2,%ecx,%edx
  4702. andl %esi,%ecx
  4703. addl %r12d,%ebx
  4704. xorl %edi,%ecx
  4705. addl 0(%r13),%ebp
  4706. andnl %esi,%ebx,%edi
  4707. addl %ecx,%ebp
  4708. rorxl $27,%ebx,%r12d
  4709. rorxl $2,%ebx,%ecx
  4710. andl %edx,%ebx
  4711. addl %r12d,%ebp
  4712. xorl %edi,%ebx
  4713. addl 4(%r13),%eax
  4714. andnl %edx,%ebp,%edi
  4715. addl %ebx,%eax
  4716. rorxl $27,%ebp,%r12d
  4717. rorxl $2,%ebp,%ebx
  4718. andl %ecx,%ebp
  4719. addl %r12d,%eax
  4720. xorl %edi,%ebp
  4721. addl 8(%r13),%esi
  4722. andnl %ecx,%eax,%edi
  4723. addl %ebp,%esi
  4724. rorxl $27,%eax,%r12d
  4725. rorxl $2,%eax,%ebp
  4726. andl %ebx,%eax
  4727. addl %r12d,%esi
  4728. xorl %edi,%eax
  4729. addl 12(%r13),%edx
  4730. leal (%rdx,%rax,1),%edx
  4731. rorxl $27,%esi,%r12d
  4732. rorxl $2,%esi,%eax
  4733. xorl %ebp,%esi
  4734. addl %r12d,%edx
  4735. xorl %ebx,%esi
  4736. addl 32(%r13),%ecx
  4737. leal (%rcx,%rsi,1),%ecx
  4738. rorxl $27,%edx,%r12d
  4739. rorxl $2,%edx,%esi
  4740. xorl %eax,%edx
  4741. addl %r12d,%ecx
  4742. xorl %ebp,%edx
  4743. addl 36(%r13),%ebx
  4744. leal (%rbx,%rdx,1),%ebx
  4745. rorxl $27,%ecx,%r12d
  4746. rorxl $2,%ecx,%edx
  4747. xorl %esi,%ecx
  4748. addl %r12d,%ebx
  4749. xorl %eax,%ecx
  4750. addl 40(%r13),%ebp
  4751. leal (%rcx,%rbp,1),%ebp
  4752. rorxl $27,%ebx,%r12d
  4753. rorxl $2,%ebx,%ecx
  4754. xorl %edx,%ebx
  4755. addl %r12d,%ebp
  4756. xorl %esi,%ebx
  4757. addl 44(%r13),%eax
  4758. leal (%rax,%rbx,1),%eax
  4759. rorxl $27,%ebp,%r12d
  4760. rorxl $2,%ebp,%ebx
  4761. xorl %ecx,%ebp
  4762. addl %r12d,%eax
  4763. xorl %edx,%ebp
  4764. addl 64(%r13),%esi
  4765. leal (%rsi,%rbp,1),%esi
  4766. rorxl $27,%eax,%r12d
  4767. rorxl $2,%eax,%ebp
  4768. xorl %ebx,%eax
  4769. addl %r12d,%esi
  4770. xorl %ecx,%eax
  4771. vmovdqu -64(%r14),%ymm11
  4772. vpshufb %ymm6,%ymm0,%ymm0
  4773. addl 68(%r13),%edx
  4774. leal (%rdx,%rax,1),%edx
  4775. rorxl $27,%esi,%r12d
  4776. rorxl $2,%esi,%eax
  4777. xorl %ebp,%esi
  4778. addl %r12d,%edx
  4779. xorl %ebx,%esi
  4780. addl 72(%r13),%ecx
  4781. leal (%rcx,%rsi,1),%ecx
  4782. rorxl $27,%edx,%r12d
  4783. rorxl $2,%edx,%esi
  4784. xorl %eax,%edx
  4785. addl %r12d,%ecx
  4786. xorl %ebp,%edx
  4787. addl 76(%r13),%ebx
  4788. leal (%rbx,%rdx,1),%ebx
  4789. rorxl $27,%ecx,%r12d
  4790. rorxl $2,%ecx,%edx
  4791. xorl %esi,%ecx
  4792. addl %r12d,%ebx
  4793. xorl %eax,%ecx
  4794. addl 96(%r13),%ebp
  4795. leal (%rcx,%rbp,1),%ebp
  4796. rorxl $27,%ebx,%r12d
  4797. rorxl $2,%ebx,%ecx
  4798. xorl %edx,%ebx
  4799. addl %r12d,%ebp
  4800. xorl %esi,%ebx
  4801. addl 100(%r13),%eax
  4802. leal (%rax,%rbx,1),%eax
  4803. rorxl $27,%ebp,%r12d
  4804. rorxl $2,%ebp,%ebx
  4805. xorl %ecx,%ebp
  4806. addl %r12d,%eax
  4807. xorl %edx,%ebp
  4808. vpshufb %ymm6,%ymm1,%ymm1
  4809. vpaddd %ymm11,%ymm0,%ymm8
  4810. addl 104(%r13),%esi
  4811. leal (%rsi,%rbp,1),%esi
  4812. rorxl $27,%eax,%r12d
  4813. rorxl $2,%eax,%ebp
  4814. xorl %ebx,%eax
  4815. addl %r12d,%esi
  4816. xorl %ecx,%eax
  4817. addl 108(%r13),%edx
  4818. leaq 256(%r13),%r13
  4819. leal (%rdx,%rax,1),%edx
  4820. rorxl $27,%esi,%r12d
  4821. rorxl $2,%esi,%eax
  4822. xorl %ebp,%esi
  4823. addl %r12d,%edx
  4824. xorl %ebx,%esi
  4825. addl -128(%r13),%ecx
  4826. leal (%rcx,%rsi,1),%ecx
  4827. rorxl $27,%edx,%r12d
  4828. rorxl $2,%edx,%esi
  4829. xorl %eax,%edx
  4830. addl %r12d,%ecx
  4831. xorl %ebp,%edx
  4832. addl -124(%r13),%ebx
  4833. leal (%rbx,%rdx,1),%ebx
  4834. rorxl $27,%ecx,%r12d
  4835. rorxl $2,%ecx,%edx
  4836. xorl %esi,%ecx
  4837. addl %r12d,%ebx
  4838. xorl %eax,%ecx
  4839. addl -120(%r13),%ebp
  4840. leal (%rcx,%rbp,1),%ebp
  4841. rorxl $27,%ebx,%r12d
  4842. rorxl $2,%ebx,%ecx
  4843. xorl %edx,%ebx
  4844. addl %r12d,%ebp
  4845. xorl %esi,%ebx
  4846. vmovdqu %ymm8,0(%rsp)
  4847. vpshufb %ymm6,%ymm2,%ymm2
  4848. vpaddd %ymm11,%ymm1,%ymm9
  4849. addl -116(%r13),%eax
  4850. leal (%rax,%rbx,1),%eax
  4851. rorxl $27,%ebp,%r12d
  4852. rorxl $2,%ebp,%ebx
  4853. xorl %ecx,%ebp
  4854. addl %r12d,%eax
  4855. xorl %edx,%ebp
  4856. addl -96(%r13),%esi
  4857. leal (%rsi,%rbp,1),%esi
  4858. rorxl $27,%eax,%r12d
  4859. rorxl $2,%eax,%ebp
  4860. xorl %ebx,%eax
  4861. addl %r12d,%esi
  4862. xorl %ecx,%eax
  4863. addl -92(%r13),%edx
  4864. leal (%rdx,%rax,1),%edx
  4865. rorxl $27,%esi,%r12d
  4866. rorxl $2,%esi,%eax
  4867. xorl %ebp,%esi
  4868. addl %r12d,%edx
  4869. xorl %ebx,%esi
  4870. addl -88(%r13),%ecx
  4871. leal (%rcx,%rsi,1),%ecx
  4872. rorxl $27,%edx,%r12d
  4873. rorxl $2,%edx,%esi
  4874. xorl %eax,%edx
  4875. addl %r12d,%ecx
  4876. xorl %ebp,%edx
  4877. addl -84(%r13),%ebx
  4878. movl %esi,%edi
  4879. xorl %eax,%edi
  4880. leal (%rbx,%rdx,1),%ebx
  4881. rorxl $27,%ecx,%r12d
  4882. rorxl $2,%ecx,%edx
  4883. xorl %esi,%ecx
  4884. addl %r12d,%ebx
  4885. andl %edi,%ecx
  4886. vmovdqu %ymm9,32(%rsp)
  4887. vpshufb %ymm6,%ymm3,%ymm3
  4888. vpaddd %ymm11,%ymm2,%ymm6
  4889. addl -64(%r13),%ebp
  4890. xorl %esi,%ecx
  4891. movl %edx,%edi
  4892. xorl %esi,%edi
  4893. leal (%rcx,%rbp,1),%ebp
  4894. rorxl $27,%ebx,%r12d
  4895. rorxl $2,%ebx,%ecx
  4896. xorl %edx,%ebx
  4897. addl %r12d,%ebp
  4898. andl %edi,%ebx
  4899. addl -60(%r13),%eax
  4900. xorl %edx,%ebx
  4901. movl %ecx,%edi
  4902. xorl %edx,%edi
  4903. leal (%rax,%rbx,1),%eax
  4904. rorxl $27,%ebp,%r12d
  4905. rorxl $2,%ebp,%ebx
  4906. xorl %ecx,%ebp
  4907. addl %r12d,%eax
  4908. andl %edi,%ebp
  4909. addl -56(%r13),%esi
  4910. xorl %ecx,%ebp
  4911. movl %ebx,%edi
  4912. xorl %ecx,%edi
  4913. leal (%rsi,%rbp,1),%esi
  4914. rorxl $27,%eax,%r12d
  4915. rorxl $2,%eax,%ebp
  4916. xorl %ebx,%eax
  4917. addl %r12d,%esi
  4918. andl %edi,%eax
  4919. addl -52(%r13),%edx
  4920. xorl %ebx,%eax
  4921. movl %ebp,%edi
  4922. xorl %ebx,%edi
  4923. leal (%rdx,%rax,1),%edx
  4924. rorxl $27,%esi,%r12d
  4925. rorxl $2,%esi,%eax
  4926. xorl %ebp,%esi
  4927. addl %r12d,%edx
  4928. andl %edi,%esi
  4929. addl -32(%r13),%ecx
  4930. xorl %ebp,%esi
  4931. movl %eax,%edi
  4932. xorl %ebp,%edi
  4933. leal (%rcx,%rsi,1),%ecx
  4934. rorxl $27,%edx,%r12d
  4935. rorxl $2,%edx,%esi
  4936. xorl %eax,%edx
  4937. addl %r12d,%ecx
  4938. andl %edi,%edx
  4939. jmp L$align32_3
  4940. .p2align 5
  4941. L$align32_3:
  4942. vmovdqu %ymm6,64(%rsp)
  4943. vpaddd %ymm11,%ymm3,%ymm7
  4944. addl -28(%r13),%ebx
  4945. xorl %eax,%edx
  4946. movl %esi,%edi
  4947. xorl %eax,%edi
  4948. leal (%rbx,%rdx,1),%ebx
  4949. rorxl $27,%ecx,%r12d
  4950. rorxl $2,%ecx,%edx
  4951. xorl %esi,%ecx
  4952. addl %r12d,%ebx
  4953. andl %edi,%ecx
  4954. addl -24(%r13),%ebp
  4955. xorl %esi,%ecx
  4956. movl %edx,%edi
  4957. xorl %esi,%edi
  4958. leal (%rcx,%rbp,1),%ebp
  4959. rorxl $27,%ebx,%r12d
  4960. rorxl $2,%ebx,%ecx
  4961. xorl %edx,%ebx
  4962. addl %r12d,%ebp
  4963. andl %edi,%ebx
  4964. addl -20(%r13),%eax
  4965. xorl %edx,%ebx
  4966. movl %ecx,%edi
  4967. xorl %edx,%edi
  4968. leal (%rax,%rbx,1),%eax
  4969. rorxl $27,%ebp,%r12d
  4970. rorxl $2,%ebp,%ebx
  4971. xorl %ecx,%ebp
  4972. addl %r12d,%eax
  4973. andl %edi,%ebp
  4974. addl 0(%r13),%esi
  4975. xorl %ecx,%ebp
  4976. movl %ebx,%edi
  4977. xorl %ecx,%edi
  4978. leal (%rsi,%rbp,1),%esi
  4979. rorxl $27,%eax,%r12d
  4980. rorxl $2,%eax,%ebp
  4981. xorl %ebx,%eax
  4982. addl %r12d,%esi
  4983. andl %edi,%eax
  4984. addl 4(%r13),%edx
  4985. xorl %ebx,%eax
  4986. movl %ebp,%edi
  4987. xorl %ebx,%edi
  4988. leal (%rdx,%rax,1),%edx
  4989. rorxl $27,%esi,%r12d
  4990. rorxl $2,%esi,%eax
  4991. xorl %ebp,%esi
  4992. addl %r12d,%edx
  4993. andl %edi,%esi
  4994. vmovdqu %ymm7,96(%rsp)
  4995. addl 8(%r13),%ecx
  4996. xorl %ebp,%esi
  4997. movl %eax,%edi
  4998. xorl %ebp,%edi
  4999. leal (%rcx,%rsi,1),%ecx
  5000. rorxl $27,%edx,%r12d
  5001. rorxl $2,%edx,%esi
  5002. xorl %eax,%edx
  5003. addl %r12d,%ecx
  5004. andl %edi,%edx
  5005. addl 12(%r13),%ebx
  5006. xorl %eax,%edx
  5007. movl %esi,%edi
  5008. xorl %eax,%edi
  5009. leal (%rbx,%rdx,1),%ebx
  5010. rorxl $27,%ecx,%r12d
  5011. rorxl $2,%ecx,%edx
  5012. xorl %esi,%ecx
  5013. addl %r12d,%ebx
  5014. andl %edi,%ecx
  5015. addl 32(%r13),%ebp
  5016. xorl %esi,%ecx
  5017. movl %edx,%edi
  5018. xorl %esi,%edi
  5019. leal (%rcx,%rbp,1),%ebp
  5020. rorxl $27,%ebx,%r12d
  5021. rorxl $2,%ebx,%ecx
  5022. xorl %edx,%ebx
  5023. addl %r12d,%ebp
  5024. andl %edi,%ebx
  5025. addl 36(%r13),%eax
  5026. xorl %edx,%ebx
  5027. movl %ecx,%edi
  5028. xorl %edx,%edi
  5029. leal (%rax,%rbx,1),%eax
  5030. rorxl $27,%ebp,%r12d
  5031. rorxl $2,%ebp,%ebx
  5032. xorl %ecx,%ebp
  5033. addl %r12d,%eax
  5034. andl %edi,%ebp
  5035. addl 40(%r13),%esi
  5036. xorl %ecx,%ebp
  5037. movl %ebx,%edi
  5038. xorl %ecx,%edi
  5039. leal (%rsi,%rbp,1),%esi
  5040. rorxl $27,%eax,%r12d
  5041. rorxl $2,%eax,%ebp
  5042. xorl %ebx,%eax
  5043. addl %r12d,%esi
  5044. andl %edi,%eax
  5045. vpalignr $8,%ymm0,%ymm1,%ymm4
  5046. addl 44(%r13),%edx
  5047. xorl %ebx,%eax
  5048. movl %ebp,%edi
  5049. xorl %ebx,%edi
  5050. vpsrldq $4,%ymm3,%ymm8
  5051. leal (%rdx,%rax,1),%edx
  5052. rorxl $27,%esi,%r12d
  5053. rorxl $2,%esi,%eax
  5054. vpxor %ymm0,%ymm4,%ymm4
  5055. vpxor %ymm2,%ymm8,%ymm8
  5056. xorl %ebp,%esi
  5057. addl %r12d,%edx
  5058. vpxor %ymm8,%ymm4,%ymm4
  5059. andl %edi,%esi
  5060. addl 64(%r13),%ecx
  5061. xorl %ebp,%esi
  5062. movl %eax,%edi
  5063. vpsrld $31,%ymm4,%ymm8
  5064. xorl %ebp,%edi
  5065. leal (%rcx,%rsi,1),%ecx
  5066. rorxl $27,%edx,%r12d
  5067. vpslldq $12,%ymm4,%ymm10
  5068. vpaddd %ymm4,%ymm4,%ymm4
  5069. rorxl $2,%edx,%esi
  5070. xorl %eax,%edx
  5071. vpsrld $30,%ymm10,%ymm9
  5072. vpor %ymm8,%ymm4,%ymm4
  5073. addl %r12d,%ecx
  5074. andl %edi,%edx
  5075. vpslld $2,%ymm10,%ymm10
  5076. vpxor %ymm9,%ymm4,%ymm4
  5077. addl 68(%r13),%ebx
  5078. xorl %eax,%edx
  5079. vpxor %ymm10,%ymm4,%ymm4
  5080. movl %esi,%edi
  5081. xorl %eax,%edi
  5082. leal (%rbx,%rdx,1),%ebx
  5083. vpaddd %ymm11,%ymm4,%ymm9
  5084. rorxl $27,%ecx,%r12d
  5085. rorxl $2,%ecx,%edx
  5086. xorl %esi,%ecx
  5087. vmovdqu %ymm9,128(%rsp)
  5088. addl %r12d,%ebx
  5089. andl %edi,%ecx
  5090. addl 72(%r13),%ebp
  5091. xorl %esi,%ecx
  5092. movl %edx,%edi
  5093. xorl %esi,%edi
  5094. leal (%rcx,%rbp,1),%ebp
  5095. rorxl $27,%ebx,%r12d
  5096. rorxl $2,%ebx,%ecx
  5097. xorl %edx,%ebx
  5098. addl %r12d,%ebp
  5099. andl %edi,%ebx
  5100. addl 76(%r13),%eax
  5101. xorl %edx,%ebx
  5102. leal (%rax,%rbx,1),%eax
  5103. rorxl $27,%ebp,%r12d
  5104. rorxl $2,%ebp,%ebx
  5105. xorl %ecx,%ebp
  5106. addl %r12d,%eax
  5107. xorl %edx,%ebp
  5108. vpalignr $8,%ymm1,%ymm2,%ymm5
  5109. addl 96(%r13),%esi
  5110. leal (%rsi,%rbp,1),%esi
  5111. rorxl $27,%eax,%r12d
  5112. rorxl $2,%eax,%ebp
  5113. vpsrldq $4,%ymm4,%ymm8
  5114. xorl %ebx,%eax
  5115. addl %r12d,%esi
  5116. xorl %ecx,%eax
  5117. vpxor %ymm1,%ymm5,%ymm5
  5118. vpxor %ymm3,%ymm8,%ymm8
  5119. addl 100(%r13),%edx
  5120. leal (%rdx,%rax,1),%edx
  5121. vpxor %ymm8,%ymm5,%ymm5
  5122. rorxl $27,%esi,%r12d
  5123. rorxl $2,%esi,%eax
  5124. xorl %ebp,%esi
  5125. addl %r12d,%edx
  5126. vpsrld $31,%ymm5,%ymm8
  5127. vmovdqu -32(%r14),%ymm11
  5128. xorl %ebx,%esi
  5129. addl 104(%r13),%ecx
  5130. leal (%rcx,%rsi,1),%ecx
  5131. vpslldq $12,%ymm5,%ymm10
  5132. vpaddd %ymm5,%ymm5,%ymm5
  5133. rorxl $27,%edx,%r12d
  5134. rorxl $2,%edx,%esi
  5135. vpsrld $30,%ymm10,%ymm9
  5136. vpor %ymm8,%ymm5,%ymm5
  5137. xorl %eax,%edx
  5138. addl %r12d,%ecx
  5139. vpslld $2,%ymm10,%ymm10
  5140. vpxor %ymm9,%ymm5,%ymm5
  5141. xorl %ebp,%edx
  5142. addl 108(%r13),%ebx
  5143. leaq 256(%r13),%r13
  5144. vpxor %ymm10,%ymm5,%ymm5
  5145. leal (%rbx,%rdx,1),%ebx
  5146. rorxl $27,%ecx,%r12d
  5147. rorxl $2,%ecx,%edx
  5148. vpaddd %ymm11,%ymm5,%ymm9
  5149. xorl %esi,%ecx
  5150. addl %r12d,%ebx
  5151. xorl %eax,%ecx
  5152. vmovdqu %ymm9,160(%rsp)
  5153. addl -128(%r13),%ebp
  5154. leal (%rcx,%rbp,1),%ebp
  5155. rorxl $27,%ebx,%r12d
  5156. rorxl $2,%ebx,%ecx
  5157. xorl %edx,%ebx
  5158. addl %r12d,%ebp
  5159. xorl %esi,%ebx
  5160. vpalignr $8,%ymm2,%ymm3,%ymm6
  5161. addl -124(%r13),%eax
  5162. leal (%rax,%rbx,1),%eax
  5163. rorxl $27,%ebp,%r12d
  5164. rorxl $2,%ebp,%ebx
  5165. vpsrldq $4,%ymm5,%ymm8
  5166. xorl %ecx,%ebp
  5167. addl %r12d,%eax
  5168. xorl %edx,%ebp
  5169. vpxor %ymm2,%ymm6,%ymm6
  5170. vpxor %ymm4,%ymm8,%ymm8
  5171. addl -120(%r13),%esi
  5172. leal (%rsi,%rbp,1),%esi
  5173. vpxor %ymm8,%ymm6,%ymm6
  5174. rorxl $27,%eax,%r12d
  5175. rorxl $2,%eax,%ebp
  5176. xorl %ebx,%eax
  5177. addl %r12d,%esi
  5178. vpsrld $31,%ymm6,%ymm8
  5179. xorl %ecx,%eax
  5180. addl -116(%r13),%edx
  5181. leal (%rdx,%rax,1),%edx
  5182. vpslldq $12,%ymm6,%ymm10
  5183. vpaddd %ymm6,%ymm6,%ymm6
  5184. rorxl $27,%esi,%r12d
  5185. rorxl $2,%esi,%eax
  5186. vpsrld $30,%ymm10,%ymm9
  5187. vpor %ymm8,%ymm6,%ymm6
  5188. xorl %ebp,%esi
  5189. addl %r12d,%edx
  5190. vpslld $2,%ymm10,%ymm10
  5191. vpxor %ymm9,%ymm6,%ymm6
  5192. xorl %ebx,%esi
  5193. addl -96(%r13),%ecx
  5194. vpxor %ymm10,%ymm6,%ymm6
  5195. leal (%rcx,%rsi,1),%ecx
  5196. rorxl $27,%edx,%r12d
  5197. rorxl $2,%edx,%esi
  5198. vpaddd %ymm11,%ymm6,%ymm9
  5199. xorl %eax,%edx
  5200. addl %r12d,%ecx
  5201. xorl %ebp,%edx
  5202. vmovdqu %ymm9,192(%rsp)
  5203. addl -92(%r13),%ebx
  5204. leal (%rbx,%rdx,1),%ebx
  5205. rorxl $27,%ecx,%r12d
  5206. rorxl $2,%ecx,%edx
  5207. xorl %esi,%ecx
  5208. addl %r12d,%ebx
  5209. xorl %eax,%ecx
  5210. vpalignr $8,%ymm3,%ymm4,%ymm7
  5211. addl -88(%r13),%ebp
  5212. leal (%rcx,%rbp,1),%ebp
  5213. rorxl $27,%ebx,%r12d
  5214. rorxl $2,%ebx,%ecx
  5215. vpsrldq $4,%ymm6,%ymm8
  5216. xorl %edx,%ebx
  5217. addl %r12d,%ebp
  5218. xorl %esi,%ebx
  5219. vpxor %ymm3,%ymm7,%ymm7
  5220. vpxor %ymm5,%ymm8,%ymm8
  5221. addl -84(%r13),%eax
  5222. leal (%rax,%rbx,1),%eax
  5223. vpxor %ymm8,%ymm7,%ymm7
  5224. rorxl $27,%ebp,%r12d
  5225. rorxl $2,%ebp,%ebx
  5226. xorl %ecx,%ebp
  5227. addl %r12d,%eax
  5228. vpsrld $31,%ymm7,%ymm8
  5229. xorl %edx,%ebp
  5230. addl -64(%r13),%esi
  5231. leal (%rsi,%rbp,1),%esi
  5232. vpslldq $12,%ymm7,%ymm10
  5233. vpaddd %ymm7,%ymm7,%ymm7
  5234. rorxl $27,%eax,%r12d
  5235. rorxl $2,%eax,%ebp
  5236. vpsrld $30,%ymm10,%ymm9
  5237. vpor %ymm8,%ymm7,%ymm7
  5238. xorl %ebx,%eax
  5239. addl %r12d,%esi
  5240. vpslld $2,%ymm10,%ymm10
  5241. vpxor %ymm9,%ymm7,%ymm7
  5242. xorl %ecx,%eax
  5243. addl -60(%r13),%edx
  5244. vpxor %ymm10,%ymm7,%ymm7
  5245. leal (%rdx,%rax,1),%edx
  5246. rorxl $27,%esi,%r12d
  5247. rorxl $2,%esi,%eax
  5248. vpaddd %ymm11,%ymm7,%ymm9
  5249. xorl %ebp,%esi
  5250. addl %r12d,%edx
  5251. xorl %ebx,%esi
  5252. vmovdqu %ymm9,224(%rsp)
  5253. addl -56(%r13),%ecx
  5254. leal (%rcx,%rsi,1),%ecx
  5255. rorxl $27,%edx,%r12d
  5256. rorxl $2,%edx,%esi
  5257. xorl %eax,%edx
  5258. addl %r12d,%ecx
  5259. xorl %ebp,%edx
  5260. addl -52(%r13),%ebx
  5261. leal (%rbx,%rdx,1),%ebx
  5262. rorxl $27,%ecx,%r12d
  5263. rorxl $2,%ecx,%edx
  5264. xorl %esi,%ecx
  5265. addl %r12d,%ebx
  5266. xorl %eax,%ecx
  5267. addl -32(%r13),%ebp
  5268. leal (%rcx,%rbp,1),%ebp
  5269. rorxl $27,%ebx,%r12d
  5270. rorxl $2,%ebx,%ecx
  5271. xorl %edx,%ebx
  5272. addl %r12d,%ebp
  5273. xorl %esi,%ebx
  5274. addl -28(%r13),%eax
  5275. leal (%rax,%rbx,1),%eax
  5276. rorxl $27,%ebp,%r12d
  5277. rorxl $2,%ebp,%ebx
  5278. xorl %ecx,%ebp
  5279. addl %r12d,%eax
  5280. xorl %edx,%ebp
  5281. addl -24(%r13),%esi
  5282. leal (%rsi,%rbp,1),%esi
  5283. rorxl $27,%eax,%r12d
  5284. rorxl $2,%eax,%ebp
  5285. xorl %ebx,%eax
  5286. addl %r12d,%esi
  5287. xorl %ecx,%eax
  5288. addl -20(%r13),%edx
  5289. leal (%rdx,%rax,1),%edx
  5290. rorxl $27,%esi,%r12d
  5291. addl %r12d,%edx
  5292. leaq 128(%rsp),%r13
  5293. addl 0(%r8),%edx
  5294. addl 4(%r8),%esi
  5295. addl 8(%r8),%ebp
  5296. movl %edx,0(%r8)
  5297. addl 12(%r8),%ebx
  5298. movl %esi,4(%r8)
  5299. movl %edx,%eax
  5300. addl 16(%r8),%ecx
  5301. movl %ebp,%r12d
  5302. movl %ebp,8(%r8)
  5303. movl %ebx,%edx
  5304. movl %ebx,12(%r8)
  5305. movl %esi,%ebp
  5306. movl %ecx,16(%r8)
  5307. movl %ecx,%esi
  5308. movl %r12d,%ecx
  5309. cmpq %r10,%r9
  5310. jbe L$oop_avx2
  5311. L$done_avx2:
  5312. vzeroupper
  5313. movq -40(%r11),%r14
  5314. movq -32(%r11),%r13
  5315. movq -24(%r11),%r12
  5316. movq -16(%r11),%rbp
  5317. movq -8(%r11),%rbx
  5318. leaq (%r11),%rsp
  5319. L$epilogue_avx2:
  5320. .byte 0xf3,0xc3
  5321. .p2align 6
  5322. K_XX_XX:
  5323. .long 0x5a827999,0x5a827999,0x5a827999,0x5a827999
  5324. .long 0x5a827999,0x5a827999,0x5a827999,0x5a827999
  5325. .long 0x6ed9eba1,0x6ed9eba1,0x6ed9eba1,0x6ed9eba1
  5326. .long 0x6ed9eba1,0x6ed9eba1,0x6ed9eba1,0x6ed9eba1
  5327. .long 0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc
  5328. .long 0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc
  5329. .long 0xca62c1d6,0xca62c1d6,0xca62c1d6,0xca62c1d6
  5330. .long 0xca62c1d6,0xca62c1d6,0xca62c1d6,0xca62c1d6
  5331. .long 0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f
  5332. .long 0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f
  5333. .byte 0xf,0xe,0xd,0xc,0xb,0xa,0x9,0x8,0x7,0x6,0x5,0x4,0x3,0x2,0x1,0x0
  5334. .byte 83,72,65,49,32,98,108,111,99,107,32,116,114,97,110,115,102,111,114,109,32,102,111,114,32,120,56,54,95,54,52,44,32,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
  5335. .p2align 6
  5336. #endif