crypto_stream_salsa20_amd64_xmm6.s 124 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827
  1. #
  2. #D. J. Bernstein
  3. #Public domain.
  4. #
  5. # qhasm: int64 r11_caller
  6. # qhasm: int64 r12_caller
  7. # qhasm: int64 r13_caller
  8. # qhasm: int64 r14_caller
  9. # qhasm: int64 r15_caller
  10. # qhasm: int64 rbx_caller
  11. # qhasm: int64 rbp_caller
  12. # qhasm: caller r11_caller
  13. # qhasm: caller r12_caller
  14. # qhasm: caller r13_caller
  15. # qhasm: caller r14_caller
  16. # qhasm: caller r15_caller
  17. # qhasm: caller rbx_caller
  18. # qhasm: caller rbp_caller
  19. # qhasm: stack64 r11_stack
  20. # qhasm: stack64 r12_stack
  21. # qhasm: stack64 r13_stack
  22. # qhasm: stack64 r14_stack
  23. # qhasm: stack64 r15_stack
  24. # qhasm: stack64 rbx_stack
  25. # qhasm: stack64 rbp_stack
  26. # qhasm: int64 a
  27. # qhasm: int64 arg1
  28. # qhasm: int64 arg2
  29. # qhasm: int64 arg3
  30. # qhasm: int64 arg4
  31. # qhasm: int64 arg5
  32. # qhasm: input arg1
  33. # qhasm: input arg2
  34. # qhasm: input arg3
  35. # qhasm: input arg4
  36. # qhasm: input arg5
  37. # qhasm: int64 k
  38. # qhasm: int64 kbits
  39. # qhasm: int64 iv
  40. # qhasm: int64 i
  41. # qhasm: stack128 x0
  42. # qhasm: stack128 x1
  43. # qhasm: stack128 x2
  44. # qhasm: stack128 x3
  45. # qhasm: int64 m
  46. # qhasm: int64 out
  47. # qhasm: int64 bytes
  48. # qhasm: stack32 eax_stack
  49. # qhasm: stack32 ebx_stack
  50. # qhasm: stack32 esi_stack
  51. # qhasm: stack32 edi_stack
  52. # qhasm: stack32 ebp_stack
  53. # qhasm: int6464 diag0
  54. # qhasm: int6464 diag1
  55. # qhasm: int6464 diag2
  56. # qhasm: int6464 diag3
  57. # qhasm: int6464 a0
  58. # qhasm: int6464 a1
  59. # qhasm: int6464 a2
  60. # qhasm: int6464 a3
  61. # qhasm: int6464 a4
  62. # qhasm: int6464 a5
  63. # qhasm: int6464 a6
  64. # qhasm: int6464 a7
  65. # qhasm: int6464 b0
  66. # qhasm: int6464 b1
  67. # qhasm: int6464 b2
  68. # qhasm: int6464 b3
  69. # qhasm: int6464 b4
  70. # qhasm: int6464 b5
  71. # qhasm: int6464 b6
  72. # qhasm: int6464 b7
  73. # qhasm: int6464 z0
  74. # qhasm: int6464 z1
  75. # qhasm: int6464 z2
  76. # qhasm: int6464 z3
  77. # qhasm: int6464 z4
  78. # qhasm: int6464 z5
  79. # qhasm: int6464 z6
  80. # qhasm: int6464 z7
  81. # qhasm: int6464 z8
  82. # qhasm: int6464 z9
  83. # qhasm: int6464 z10
  84. # qhasm: int6464 z11
  85. # qhasm: int6464 z12
  86. # qhasm: int6464 z13
  87. # qhasm: int6464 z14
  88. # qhasm: int6464 z15
  89. # qhasm: stack128 z0_stack
  90. # qhasm: stack128 z1_stack
  91. # qhasm: stack128 z2_stack
  92. # qhasm: stack128 z3_stack
  93. # qhasm: stack128 z4_stack
  94. # qhasm: stack128 z5_stack
  95. # qhasm: stack128 z6_stack
  96. # qhasm: stack128 z7_stack
  97. # qhasm: stack128 z8_stack
  98. # qhasm: stack128 z9_stack
  99. # qhasm: stack128 z10_stack
  100. # qhasm: stack128 z11_stack
  101. # qhasm: stack128 z12_stack
  102. # qhasm: stack128 z13_stack
  103. # qhasm: stack128 z14_stack
  104. # qhasm: stack128 z15_stack
  105. # qhasm: int6464 y0
  106. # qhasm: int6464 y1
  107. # qhasm: int6464 y2
  108. # qhasm: int6464 y3
  109. # qhasm: int6464 y4
  110. # qhasm: int6464 y5
  111. # qhasm: int6464 y6
  112. # qhasm: int6464 y7
  113. # qhasm: int6464 y8
  114. # qhasm: int6464 y9
  115. # qhasm: int6464 y10
  116. # qhasm: int6464 y11
  117. # qhasm: int6464 y12
  118. # qhasm: int6464 y13
  119. # qhasm: int6464 y14
  120. # qhasm: int6464 y15
  121. # qhasm: int6464 r0
  122. # qhasm: int6464 r1
  123. # qhasm: int6464 r2
  124. # qhasm: int6464 r3
  125. # qhasm: int6464 r4
  126. # qhasm: int6464 r5
  127. # qhasm: int6464 r6
  128. # qhasm: int6464 r7
  129. # qhasm: int6464 r8
  130. # qhasm: int6464 r9
  131. # qhasm: int6464 r10
  132. # qhasm: int6464 r11
  133. # qhasm: int6464 r12
  134. # qhasm: int6464 r13
  135. # qhasm: int6464 r14
  136. # qhasm: int6464 r15
  137. # qhasm: stack128 orig0
  138. # qhasm: stack128 orig1
  139. # qhasm: stack128 orig2
  140. # qhasm: stack128 orig3
  141. # qhasm: stack128 orig4
  142. # qhasm: stack128 orig5
  143. # qhasm: stack128 orig6
  144. # qhasm: stack128 orig7
  145. # qhasm: stack128 orig8
  146. # qhasm: stack128 orig9
  147. # qhasm: stack128 orig10
  148. # qhasm: stack128 orig11
  149. # qhasm: stack128 orig12
  150. # qhasm: stack128 orig13
  151. # qhasm: stack128 orig14
  152. # qhasm: stack128 orig15
  153. # qhasm: int64 in0
  154. # qhasm: int64 in1
  155. # qhasm: int64 in2
  156. # qhasm: int64 in3
  157. # qhasm: int64 in4
  158. # qhasm: int64 in5
  159. # qhasm: int64 in6
  160. # qhasm: int64 in7
  161. # qhasm: int64 in8
  162. # qhasm: int64 in9
  163. # qhasm: int64 in10
  164. # qhasm: int64 in11
  165. # qhasm: int64 in12
  166. # qhasm: int64 in13
  167. # qhasm: int64 in14
  168. # qhasm: int64 in15
  169. # qhasm: stack512 tmp
  170. # qhasm: int64 ctarget
  171. # qhasm: stack64 bytes_backup
  172. # qhasm: enter crypto_stream_salsa20_amd64_xmm6
  173. .text
  174. .p2align 5
  175. .globl _crypto_stream_salsa20_amd64_xmm6
  176. .globl crypto_stream_salsa20_amd64_xmm6
  177. _crypto_stream_salsa20_amd64_xmm6:
  178. crypto_stream_salsa20_amd64_xmm6:
  179. mov %rsp,%r11
  180. and $31,%r11
  181. add $480,%r11
  182. sub %r11,%rsp
  183. # qhasm: r11_stack = r11_caller
  184. # asm 1: movq <r11_caller=int64#9,>r11_stack=stack64#1
  185. # asm 2: movq <r11_caller=%r11,>r11_stack=352(%rsp)
  186. movq %r11,352(%rsp)
  187. # qhasm: r12_stack = r12_caller
  188. # asm 1: movq <r12_caller=int64#10,>r12_stack=stack64#2
  189. # asm 2: movq <r12_caller=%r12,>r12_stack=360(%rsp)
  190. movq %r12,360(%rsp)
  191. # qhasm: r13_stack = r13_caller
  192. # asm 1: movq <r13_caller=int64#11,>r13_stack=stack64#3
  193. # asm 2: movq <r13_caller=%r13,>r13_stack=368(%rsp)
  194. movq %r13,368(%rsp)
  195. # qhasm: r14_stack = r14_caller
  196. # asm 1: movq <r14_caller=int64#12,>r14_stack=stack64#4
  197. # asm 2: movq <r14_caller=%r14,>r14_stack=376(%rsp)
  198. movq %r14,376(%rsp)
  199. # qhasm: r15_stack = r15_caller
  200. # asm 1: movq <r15_caller=int64#13,>r15_stack=stack64#5
  201. # asm 2: movq <r15_caller=%r15,>r15_stack=384(%rsp)
  202. movq %r15,384(%rsp)
  203. # qhasm: rbx_stack = rbx_caller
  204. # asm 1: movq <rbx_caller=int64#14,>rbx_stack=stack64#6
  205. # asm 2: movq <rbx_caller=%rbx,>rbx_stack=392(%rsp)
  206. movq %rbx,392(%rsp)
  207. # qhasm: rbp_stack = rbp_caller
  208. # asm 1: movq <rbp_caller=int64#15,>rbp_stack=stack64#7
  209. # asm 2: movq <rbp_caller=%rbp,>rbp_stack=400(%rsp)
  210. movq %rbp,400(%rsp)
  211. # qhasm: bytes = arg2
  212. # asm 1: mov <arg2=int64#2,>bytes=int64#6
  213. # asm 2: mov <arg2=%rsi,>bytes=%r9
  214. mov %rsi,%r9
  215. # qhasm: out = arg1
  216. # asm 1: mov <arg1=int64#1,>out=int64#1
  217. # asm 2: mov <arg1=%rdi,>out=%rdi
  218. mov %rdi,%rdi
  219. # qhasm: m = out
  220. # asm 1: mov <out=int64#1,>m=int64#2
  221. # asm 2: mov <out=%rdi,>m=%rsi
  222. mov %rdi,%rsi
  223. # qhasm: iv = arg3
  224. # asm 1: mov <arg3=int64#3,>iv=int64#3
  225. # asm 2: mov <arg3=%rdx,>iv=%rdx
  226. mov %rdx,%rdx
  227. # qhasm: k = arg4
  228. # asm 1: mov <arg4=int64#4,>k=int64#8
  229. # asm 2: mov <arg4=%rcx,>k=%r10
  230. mov %rcx,%r10
  231. # qhasm: unsigned>? bytes - 0
  232. # asm 1: cmp $0,<bytes=int64#6
  233. # asm 2: cmp $0,<bytes=%r9
  234. cmp $0,%r9
  235. # comment:fp stack unchanged by jump
  236. # qhasm: goto done if !unsigned>
  237. jbe ._done
  238. # qhasm: a = 0
  239. # asm 1: mov $0,>a=int64#7
  240. # asm 2: mov $0,>a=%rax
  241. mov $0,%rax
  242. # qhasm: i = bytes
  243. # asm 1: mov <bytes=int64#6,>i=int64#4
  244. # asm 2: mov <bytes=%r9,>i=%rcx
  245. mov %r9,%rcx
  246. # qhasm: while (i) { *out++ = a; --i }
  247. rep stosb
  248. # qhasm: out -= bytes
  249. # asm 1: sub <bytes=int64#6,<out=int64#1
  250. # asm 2: sub <bytes=%r9,<out=%rdi
  251. sub %r9,%rdi
  252. # comment:fp stack unchanged by jump
  253. # qhasm: goto start
  254. jmp ._start
  255. # qhasm: enter crypto_stream_salsa20_amd64_xmm6_xor
  256. .text
  257. .p2align 5
  258. .globl _crypto_stream_salsa20_amd64_xmm6_xor
  259. .globl crypto_stream_salsa20_amd64_xmm6_xor
  260. _crypto_stream_salsa20_amd64_xmm6_xor:
  261. crypto_stream_salsa20_amd64_xmm6_xor:
  262. mov %rsp,%r11
  263. and $31,%r11
  264. add $480,%r11
  265. sub %r11,%rsp
  266. # qhasm: r11_stack = r11_caller
  267. # asm 1: movq <r11_caller=int64#9,>r11_stack=stack64#1
  268. # asm 2: movq <r11_caller=%r11,>r11_stack=352(%rsp)
  269. movq %r11,352(%rsp)
  270. # qhasm: r12_stack = r12_caller
  271. # asm 1: movq <r12_caller=int64#10,>r12_stack=stack64#2
  272. # asm 2: movq <r12_caller=%r12,>r12_stack=360(%rsp)
  273. movq %r12,360(%rsp)
  274. # qhasm: r13_stack = r13_caller
  275. # asm 1: movq <r13_caller=int64#11,>r13_stack=stack64#3
  276. # asm 2: movq <r13_caller=%r13,>r13_stack=368(%rsp)
  277. movq %r13,368(%rsp)
  278. # qhasm: r14_stack = r14_caller
  279. # asm 1: movq <r14_caller=int64#12,>r14_stack=stack64#4
  280. # asm 2: movq <r14_caller=%r14,>r14_stack=376(%rsp)
  281. movq %r14,376(%rsp)
  282. # qhasm: r15_stack = r15_caller
  283. # asm 1: movq <r15_caller=int64#13,>r15_stack=stack64#5
  284. # asm 2: movq <r15_caller=%r15,>r15_stack=384(%rsp)
  285. movq %r15,384(%rsp)
  286. # qhasm: rbx_stack = rbx_caller
  287. # asm 1: movq <rbx_caller=int64#14,>rbx_stack=stack64#6
  288. # asm 2: movq <rbx_caller=%rbx,>rbx_stack=392(%rsp)
  289. movq %rbx,392(%rsp)
  290. # qhasm: rbp_stack = rbp_caller
  291. # asm 1: movq <rbp_caller=int64#15,>rbp_stack=stack64#7
  292. # asm 2: movq <rbp_caller=%rbp,>rbp_stack=400(%rsp)
  293. movq %rbp,400(%rsp)
  294. # qhasm: out = arg1
  295. # asm 1: mov <arg1=int64#1,>out=int64#1
  296. # asm 2: mov <arg1=%rdi,>out=%rdi
  297. mov %rdi,%rdi
  298. # qhasm: m = arg2
  299. # asm 1: mov <arg2=int64#2,>m=int64#2
  300. # asm 2: mov <arg2=%rsi,>m=%rsi
  301. mov %rsi,%rsi
  302. # qhasm: bytes = arg3
  303. # asm 1: mov <arg3=int64#3,>bytes=int64#6
  304. # asm 2: mov <arg3=%rdx,>bytes=%r9
  305. mov %rdx,%r9
  306. # qhasm: iv = arg4
  307. # asm 1: mov <arg4=int64#4,>iv=int64#3
  308. # asm 2: mov <arg4=%rcx,>iv=%rdx
  309. mov %rcx,%rdx
  310. # qhasm: k = arg5
  311. # asm 1: mov <arg5=int64#5,>k=int64#8
  312. # asm 2: mov <arg5=%r8,>k=%r10
  313. mov %r8,%r10
  314. # qhasm: unsigned>? bytes - 0
  315. # asm 1: cmp $0,<bytes=int64#6
  316. # asm 2: cmp $0,<bytes=%r9
  317. cmp $0,%r9
  318. # comment:fp stack unchanged by jump
  319. # qhasm: goto done if !unsigned>
  320. jbe ._done
  321. # comment:fp stack unchanged by fallthrough
  322. # qhasm: start:
  323. ._start:
  324. # qhasm: in12 = *(uint32 *) (k + 20)
  325. # asm 1: movl 20(<k=int64#8),>in12=int64#4d
  326. # asm 2: movl 20(<k=%r10),>in12=%ecx
  327. movl 20(%r10),%ecx
  328. # qhasm: in1 = *(uint32 *) (k + 0)
  329. # asm 1: movl 0(<k=int64#8),>in1=int64#5d
  330. # asm 2: movl 0(<k=%r10),>in1=%r8d
  331. movl 0(%r10),%r8d
  332. # qhasm: in6 = *(uint32 *) (iv + 0)
  333. # asm 1: movl 0(<iv=int64#3),>in6=int64#7d
  334. # asm 2: movl 0(<iv=%rdx),>in6=%eax
  335. movl 0(%rdx),%eax
  336. # qhasm: in11 = *(uint32 *) (k + 16)
  337. # asm 1: movl 16(<k=int64#8),>in11=int64#9d
  338. # asm 2: movl 16(<k=%r10),>in11=%r11d
  339. movl 16(%r10),%r11d
  340. # qhasm: ((uint32 *)&x1)[0] = in12
  341. # asm 1: movl <in12=int64#4d,>x1=stack128#1
  342. # asm 2: movl <in12=%ecx,>x1=0(%rsp)
  343. movl %ecx,0(%rsp)
  344. # qhasm: ((uint32 *)&x1)[1] = in1
  345. # asm 1: movl <in1=int64#5d,4+<x1=stack128#1
  346. # asm 2: movl <in1=%r8d,4+<x1=0(%rsp)
  347. movl %r8d,4+0(%rsp)
  348. # qhasm: ((uint32 *)&x1)[2] = in6
  349. # asm 1: movl <in6=int64#7d,8+<x1=stack128#1
  350. # asm 2: movl <in6=%eax,8+<x1=0(%rsp)
  351. movl %eax,8+0(%rsp)
  352. # qhasm: ((uint32 *)&x1)[3] = in11
  353. # asm 1: movl <in11=int64#9d,12+<x1=stack128#1
  354. # asm 2: movl <in11=%r11d,12+<x1=0(%rsp)
  355. movl %r11d,12+0(%rsp)
  356. # qhasm: in8 = 0
  357. # asm 1: mov $0,>in8=int64#4
  358. # asm 2: mov $0,>in8=%rcx
  359. mov $0,%rcx
  360. # qhasm: in13 = *(uint32 *) (k + 24)
  361. # asm 1: movl 24(<k=int64#8),>in13=int64#5d
  362. # asm 2: movl 24(<k=%r10),>in13=%r8d
  363. movl 24(%r10),%r8d
  364. # qhasm: in2 = *(uint32 *) (k + 4)
  365. # asm 1: movl 4(<k=int64#8),>in2=int64#7d
  366. # asm 2: movl 4(<k=%r10),>in2=%eax
  367. movl 4(%r10),%eax
  368. # qhasm: in7 = *(uint32 *) (iv + 4)
  369. # asm 1: movl 4(<iv=int64#3),>in7=int64#3d
  370. # asm 2: movl 4(<iv=%rdx),>in7=%edx
  371. movl 4(%rdx),%edx
  372. # qhasm: ((uint32 *)&x2)[0] = in8
  373. # asm 1: movl <in8=int64#4d,>x2=stack128#2
  374. # asm 2: movl <in8=%ecx,>x2=16(%rsp)
  375. movl %ecx,16(%rsp)
  376. # qhasm: ((uint32 *)&x2)[1] = in13
  377. # asm 1: movl <in13=int64#5d,4+<x2=stack128#2
  378. # asm 2: movl <in13=%r8d,4+<x2=16(%rsp)
  379. movl %r8d,4+16(%rsp)
  380. # qhasm: ((uint32 *)&x2)[2] = in2
  381. # asm 1: movl <in2=int64#7d,8+<x2=stack128#2
  382. # asm 2: movl <in2=%eax,8+<x2=16(%rsp)
  383. movl %eax,8+16(%rsp)
  384. # qhasm: ((uint32 *)&x2)[3] = in7
  385. # asm 1: movl <in7=int64#3d,12+<x2=stack128#2
  386. # asm 2: movl <in7=%edx,12+<x2=16(%rsp)
  387. movl %edx,12+16(%rsp)
  388. # qhasm: in4 = *(uint32 *) (k + 12)
  389. # asm 1: movl 12(<k=int64#8),>in4=int64#3d
  390. # asm 2: movl 12(<k=%r10),>in4=%edx
  391. movl 12(%r10),%edx
  392. # qhasm: in9 = 0
  393. # asm 1: mov $0,>in9=int64#4
  394. # asm 2: mov $0,>in9=%rcx
  395. mov $0,%rcx
  396. # qhasm: in14 = *(uint32 *) (k + 28)
  397. # asm 1: movl 28(<k=int64#8),>in14=int64#5d
  398. # asm 2: movl 28(<k=%r10),>in14=%r8d
  399. movl 28(%r10),%r8d
  400. # qhasm: in3 = *(uint32 *) (k + 8)
  401. # asm 1: movl 8(<k=int64#8),>in3=int64#7d
  402. # asm 2: movl 8(<k=%r10),>in3=%eax
  403. movl 8(%r10),%eax
  404. # qhasm: ((uint32 *)&x3)[0] = in4
  405. # asm 1: movl <in4=int64#3d,>x3=stack128#3
  406. # asm 2: movl <in4=%edx,>x3=32(%rsp)
  407. movl %edx,32(%rsp)
  408. # qhasm: ((uint32 *)&x3)[1] = in9
  409. # asm 1: movl <in9=int64#4d,4+<x3=stack128#3
  410. # asm 2: movl <in9=%ecx,4+<x3=32(%rsp)
  411. movl %ecx,4+32(%rsp)
  412. # qhasm: ((uint32 *)&x3)[2] = in14
  413. # asm 1: movl <in14=int64#5d,8+<x3=stack128#3
  414. # asm 2: movl <in14=%r8d,8+<x3=32(%rsp)
  415. movl %r8d,8+32(%rsp)
  416. # qhasm: ((uint32 *)&x3)[3] = in3
  417. # asm 1: movl <in3=int64#7d,12+<x3=stack128#3
  418. # asm 2: movl <in3=%eax,12+<x3=32(%rsp)
  419. movl %eax,12+32(%rsp)
  420. # qhasm: in0 = 1634760805
  421. # asm 1: mov $1634760805,>in0=int64#3
  422. # asm 2: mov $1634760805,>in0=%rdx
  423. mov $1634760805,%rdx
  424. # qhasm: in5 = 857760878
  425. # asm 1: mov $857760878,>in5=int64#4
  426. # asm 2: mov $857760878,>in5=%rcx
  427. mov $857760878,%rcx
  428. # qhasm: in10 = 2036477234
  429. # asm 1: mov $2036477234,>in10=int64#5
  430. # asm 2: mov $2036477234,>in10=%r8
  431. mov $2036477234,%r8
  432. # qhasm: in15 = 1797285236
  433. # asm 1: mov $1797285236,>in15=int64#7
  434. # asm 2: mov $1797285236,>in15=%rax
  435. mov $1797285236,%rax
  436. # qhasm: ((uint32 *)&x0)[0] = in0
  437. # asm 1: movl <in0=int64#3d,>x0=stack128#4
  438. # asm 2: movl <in0=%edx,>x0=48(%rsp)
  439. movl %edx,48(%rsp)
  440. # qhasm: ((uint32 *)&x0)[1] = in5
  441. # asm 1: movl <in5=int64#4d,4+<x0=stack128#4
  442. # asm 2: movl <in5=%ecx,4+<x0=48(%rsp)
  443. movl %ecx,4+48(%rsp)
  444. # qhasm: ((uint32 *)&x0)[2] = in10
  445. # asm 1: movl <in10=int64#5d,8+<x0=stack128#4
  446. # asm 2: movl <in10=%r8d,8+<x0=48(%rsp)
  447. movl %r8d,8+48(%rsp)
  448. # qhasm: ((uint32 *)&x0)[3] = in15
  449. # asm 1: movl <in15=int64#7d,12+<x0=stack128#4
  450. # asm 2: movl <in15=%eax,12+<x0=48(%rsp)
  451. movl %eax,12+48(%rsp)
  452. # qhasm: unsigned<? bytes - 256
  453. # asm 1: cmp $256,<bytes=int64#6
  454. # asm 2: cmp $256,<bytes=%r9
  455. cmp $256,%r9
  456. # comment:fp stack unchanged by jump
  457. # qhasm: goto bytesbetween1and255 if unsigned<
  458. jb ._bytesbetween1and255
  459. # qhasm: z0 = x0
  460. # asm 1: movdqa <x0=stack128#4,>z0=int6464#1
  461. # asm 2: movdqa <x0=48(%rsp),>z0=%xmm0
  462. movdqa 48(%rsp),%xmm0
  463. # qhasm: z5 = z0[1,1,1,1]
  464. # asm 1: pshufd $0x55,<z0=int6464#1,>z5=int6464#2
  465. # asm 2: pshufd $0x55,<z0=%xmm0,>z5=%xmm1
  466. pshufd $0x55,%xmm0,%xmm1
  467. # qhasm: z10 = z0[2,2,2,2]
  468. # asm 1: pshufd $0xaa,<z0=int6464#1,>z10=int6464#3
  469. # asm 2: pshufd $0xaa,<z0=%xmm0,>z10=%xmm2
  470. pshufd $0xaa,%xmm0,%xmm2
  471. # qhasm: z15 = z0[3,3,3,3]
  472. # asm 1: pshufd $0xff,<z0=int6464#1,>z15=int6464#4
  473. # asm 2: pshufd $0xff,<z0=%xmm0,>z15=%xmm3
  474. pshufd $0xff,%xmm0,%xmm3
  475. # qhasm: z0 = z0[0,0,0,0]
  476. # asm 1: pshufd $0x00,<z0=int6464#1,>z0=int6464#1
  477. # asm 2: pshufd $0x00,<z0=%xmm0,>z0=%xmm0
  478. pshufd $0x00,%xmm0,%xmm0
  479. # qhasm: orig5 = z5
  480. # asm 1: movdqa <z5=int6464#2,>orig5=stack128#5
  481. # asm 2: movdqa <z5=%xmm1,>orig5=64(%rsp)
  482. movdqa %xmm1,64(%rsp)
  483. # qhasm: orig10 = z10
  484. # asm 1: movdqa <z10=int6464#3,>orig10=stack128#6
  485. # asm 2: movdqa <z10=%xmm2,>orig10=80(%rsp)
  486. movdqa %xmm2,80(%rsp)
  487. # qhasm: orig15 = z15
  488. # asm 1: movdqa <z15=int6464#4,>orig15=stack128#7
  489. # asm 2: movdqa <z15=%xmm3,>orig15=96(%rsp)
  490. movdqa %xmm3,96(%rsp)
  491. # qhasm: orig0 = z0
  492. # asm 1: movdqa <z0=int6464#1,>orig0=stack128#8
  493. # asm 2: movdqa <z0=%xmm0,>orig0=112(%rsp)
  494. movdqa %xmm0,112(%rsp)
  495. # qhasm: z1 = x1
  496. # asm 1: movdqa <x1=stack128#1,>z1=int6464#1
  497. # asm 2: movdqa <x1=0(%rsp),>z1=%xmm0
  498. movdqa 0(%rsp),%xmm0
  499. # qhasm: z6 = z1[2,2,2,2]
  500. # asm 1: pshufd $0xaa,<z1=int6464#1,>z6=int6464#2
  501. # asm 2: pshufd $0xaa,<z1=%xmm0,>z6=%xmm1
  502. pshufd $0xaa,%xmm0,%xmm1
  503. # qhasm: z11 = z1[3,3,3,3]
  504. # asm 1: pshufd $0xff,<z1=int6464#1,>z11=int6464#3
  505. # asm 2: pshufd $0xff,<z1=%xmm0,>z11=%xmm2
  506. pshufd $0xff,%xmm0,%xmm2
  507. # qhasm: z12 = z1[0,0,0,0]
  508. # asm 1: pshufd $0x00,<z1=int6464#1,>z12=int6464#4
  509. # asm 2: pshufd $0x00,<z1=%xmm0,>z12=%xmm3
  510. pshufd $0x00,%xmm0,%xmm3
  511. # qhasm: z1 = z1[1,1,1,1]
  512. # asm 1: pshufd $0x55,<z1=int6464#1,>z1=int6464#1
  513. # asm 2: pshufd $0x55,<z1=%xmm0,>z1=%xmm0
  514. pshufd $0x55,%xmm0,%xmm0
  515. # qhasm: orig6 = z6
  516. # asm 1: movdqa <z6=int6464#2,>orig6=stack128#9
  517. # asm 2: movdqa <z6=%xmm1,>orig6=128(%rsp)
  518. movdqa %xmm1,128(%rsp)
  519. # qhasm: orig11 = z11
  520. # asm 1: movdqa <z11=int6464#3,>orig11=stack128#10
  521. # asm 2: movdqa <z11=%xmm2,>orig11=144(%rsp)
  522. movdqa %xmm2,144(%rsp)
  523. # qhasm: orig12 = z12
  524. # asm 1: movdqa <z12=int6464#4,>orig12=stack128#11
  525. # asm 2: movdqa <z12=%xmm3,>orig12=160(%rsp)
  526. movdqa %xmm3,160(%rsp)
  527. # qhasm: orig1 = z1
  528. # asm 1: movdqa <z1=int6464#1,>orig1=stack128#12
  529. # asm 2: movdqa <z1=%xmm0,>orig1=176(%rsp)
  530. movdqa %xmm0,176(%rsp)
  531. # qhasm: z2 = x2
  532. # asm 1: movdqa <x2=stack128#2,>z2=int6464#1
  533. # asm 2: movdqa <x2=16(%rsp),>z2=%xmm0
  534. movdqa 16(%rsp),%xmm0
  535. # qhasm: z7 = z2[3,3,3,3]
  536. # asm 1: pshufd $0xff,<z2=int6464#1,>z7=int6464#2
  537. # asm 2: pshufd $0xff,<z2=%xmm0,>z7=%xmm1
  538. pshufd $0xff,%xmm0,%xmm1
  539. # qhasm: z13 = z2[1,1,1,1]
  540. # asm 1: pshufd $0x55,<z2=int6464#1,>z13=int6464#3
  541. # asm 2: pshufd $0x55,<z2=%xmm0,>z13=%xmm2
  542. pshufd $0x55,%xmm0,%xmm2
  543. # qhasm: z2 = z2[2,2,2,2]
  544. # asm 1: pshufd $0xaa,<z2=int6464#1,>z2=int6464#1
  545. # asm 2: pshufd $0xaa,<z2=%xmm0,>z2=%xmm0
  546. pshufd $0xaa,%xmm0,%xmm0
  547. # qhasm: orig7 = z7
  548. # asm 1: movdqa <z7=int6464#2,>orig7=stack128#13
  549. # asm 2: movdqa <z7=%xmm1,>orig7=192(%rsp)
  550. movdqa %xmm1,192(%rsp)
  551. # qhasm: orig13 = z13
  552. # asm 1: movdqa <z13=int6464#3,>orig13=stack128#14
  553. # asm 2: movdqa <z13=%xmm2,>orig13=208(%rsp)
  554. movdqa %xmm2,208(%rsp)
  555. # qhasm: orig2 = z2
  556. # asm 1: movdqa <z2=int6464#1,>orig2=stack128#15
  557. # asm 2: movdqa <z2=%xmm0,>orig2=224(%rsp)
  558. movdqa %xmm0,224(%rsp)
  559. # qhasm: z3 = x3
  560. # asm 1: movdqa <x3=stack128#3,>z3=int6464#1
  561. # asm 2: movdqa <x3=32(%rsp),>z3=%xmm0
  562. movdqa 32(%rsp),%xmm0
  563. # qhasm: z4 = z3[0,0,0,0]
  564. # asm 1: pshufd $0x00,<z3=int6464#1,>z4=int6464#2
  565. # asm 2: pshufd $0x00,<z3=%xmm0,>z4=%xmm1
  566. pshufd $0x00,%xmm0,%xmm1
  567. # qhasm: z14 = z3[2,2,2,2]
  568. # asm 1: pshufd $0xaa,<z3=int6464#1,>z14=int6464#3
  569. # asm 2: pshufd $0xaa,<z3=%xmm0,>z14=%xmm2
  570. pshufd $0xaa,%xmm0,%xmm2
  571. # qhasm: z3 = z3[3,3,3,3]
  572. # asm 1: pshufd $0xff,<z3=int6464#1,>z3=int6464#1
  573. # asm 2: pshufd $0xff,<z3=%xmm0,>z3=%xmm0
  574. pshufd $0xff,%xmm0,%xmm0
  575. # qhasm: orig4 = z4
  576. # asm 1: movdqa <z4=int6464#2,>orig4=stack128#16
  577. # asm 2: movdqa <z4=%xmm1,>orig4=240(%rsp)
  578. movdqa %xmm1,240(%rsp)
  579. # qhasm: orig14 = z14
  580. # asm 1: movdqa <z14=int6464#3,>orig14=stack128#17
  581. # asm 2: movdqa <z14=%xmm2,>orig14=256(%rsp)
  582. movdqa %xmm2,256(%rsp)
  583. # qhasm: orig3 = z3
  584. # asm 1: movdqa <z3=int6464#1,>orig3=stack128#18
  585. # asm 2: movdqa <z3=%xmm0,>orig3=272(%rsp)
  586. movdqa %xmm0,272(%rsp)
  587. # qhasm: bytesatleast256:
  588. ._bytesatleast256:
  589. # qhasm: in8 = ((uint32 *)&x2)[0]
  590. # asm 1: movl <x2=stack128#2,>in8=int64#3d
  591. # asm 2: movl <x2=16(%rsp),>in8=%edx
  592. movl 16(%rsp),%edx
  593. # qhasm: in9 = ((uint32 *)&x3)[1]
  594. # asm 1: movl 4+<x3=stack128#3,>in9=int64#4d
  595. # asm 2: movl 4+<x3=32(%rsp),>in9=%ecx
  596. movl 4+32(%rsp),%ecx
  597. # qhasm: ((uint32 *) &orig8)[0] = in8
  598. # asm 1: movl <in8=int64#3d,>orig8=stack128#19
  599. # asm 2: movl <in8=%edx,>orig8=288(%rsp)
  600. movl %edx,288(%rsp)
  601. # qhasm: ((uint32 *) &orig9)[0] = in9
  602. # asm 1: movl <in9=int64#4d,>orig9=stack128#20
  603. # asm 2: movl <in9=%ecx,>orig9=304(%rsp)
  604. movl %ecx,304(%rsp)
  605. # qhasm: in8 += 1
  606. # asm 1: add $1,<in8=int64#3
  607. # asm 2: add $1,<in8=%rdx
  608. add $1,%rdx
  609. # qhasm: in9 <<= 32
  610. # asm 1: shl $32,<in9=int64#4
  611. # asm 2: shl $32,<in9=%rcx
  612. shl $32,%rcx
  613. # qhasm: in8 += in9
  614. # asm 1: add <in9=int64#4,<in8=int64#3
  615. # asm 2: add <in9=%rcx,<in8=%rdx
  616. add %rcx,%rdx
  617. # qhasm: in9 = in8
  618. # asm 1: mov <in8=int64#3,>in9=int64#4
  619. # asm 2: mov <in8=%rdx,>in9=%rcx
  620. mov %rdx,%rcx
  621. # qhasm: (uint64) in9 >>= 32
  622. # asm 1: shr $32,<in9=int64#4
  623. # asm 2: shr $32,<in9=%rcx
  624. shr $32,%rcx
  625. # qhasm: ((uint32 *) &orig8)[1] = in8
  626. # asm 1: movl <in8=int64#3d,4+<orig8=stack128#19
  627. # asm 2: movl <in8=%edx,4+<orig8=288(%rsp)
  628. movl %edx,4+288(%rsp)
  629. # qhasm: ((uint32 *) &orig9)[1] = in9
  630. # asm 1: movl <in9=int64#4d,4+<orig9=stack128#20
  631. # asm 2: movl <in9=%ecx,4+<orig9=304(%rsp)
  632. movl %ecx,4+304(%rsp)
  633. # qhasm: in8 += 1
  634. # asm 1: add $1,<in8=int64#3
  635. # asm 2: add $1,<in8=%rdx
  636. add $1,%rdx
  637. # qhasm: in9 <<= 32
  638. # asm 1: shl $32,<in9=int64#4
  639. # asm 2: shl $32,<in9=%rcx
  640. shl $32,%rcx
  641. # qhasm: in8 += in9
  642. # asm 1: add <in9=int64#4,<in8=int64#3
  643. # asm 2: add <in9=%rcx,<in8=%rdx
  644. add %rcx,%rdx
  645. # qhasm: in9 = in8
  646. # asm 1: mov <in8=int64#3,>in9=int64#4
  647. # asm 2: mov <in8=%rdx,>in9=%rcx
  648. mov %rdx,%rcx
  649. # qhasm: (uint64) in9 >>= 32
  650. # asm 1: shr $32,<in9=int64#4
  651. # asm 2: shr $32,<in9=%rcx
  652. shr $32,%rcx
  653. # qhasm: ((uint32 *) &orig8)[2] = in8
  654. # asm 1: movl <in8=int64#3d,8+<orig8=stack128#19
  655. # asm 2: movl <in8=%edx,8+<orig8=288(%rsp)
  656. movl %edx,8+288(%rsp)
  657. # qhasm: ((uint32 *) &orig9)[2] = in9
  658. # asm 1: movl <in9=int64#4d,8+<orig9=stack128#20
  659. # asm 2: movl <in9=%ecx,8+<orig9=304(%rsp)
  660. movl %ecx,8+304(%rsp)
  661. # qhasm: in8 += 1
  662. # asm 1: add $1,<in8=int64#3
  663. # asm 2: add $1,<in8=%rdx
  664. add $1,%rdx
  665. # qhasm: in9 <<= 32
  666. # asm 1: shl $32,<in9=int64#4
  667. # asm 2: shl $32,<in9=%rcx
  668. shl $32,%rcx
  669. # qhasm: in8 += in9
  670. # asm 1: add <in9=int64#4,<in8=int64#3
  671. # asm 2: add <in9=%rcx,<in8=%rdx
  672. add %rcx,%rdx
  673. # qhasm: in9 = in8
  674. # asm 1: mov <in8=int64#3,>in9=int64#4
  675. # asm 2: mov <in8=%rdx,>in9=%rcx
  676. mov %rdx,%rcx
  677. # qhasm: (uint64) in9 >>= 32
  678. # asm 1: shr $32,<in9=int64#4
  679. # asm 2: shr $32,<in9=%rcx
  680. shr $32,%rcx
  681. # qhasm: ((uint32 *) &orig8)[3] = in8
  682. # asm 1: movl <in8=int64#3d,12+<orig8=stack128#19
  683. # asm 2: movl <in8=%edx,12+<orig8=288(%rsp)
  684. movl %edx,12+288(%rsp)
  685. # qhasm: ((uint32 *) &orig9)[3] = in9
  686. # asm 1: movl <in9=int64#4d,12+<orig9=stack128#20
  687. # asm 2: movl <in9=%ecx,12+<orig9=304(%rsp)
  688. movl %ecx,12+304(%rsp)
  689. # qhasm: in8 += 1
  690. # asm 1: add $1,<in8=int64#3
  691. # asm 2: add $1,<in8=%rdx
  692. add $1,%rdx
  693. # qhasm: in9 <<= 32
  694. # asm 1: shl $32,<in9=int64#4
  695. # asm 2: shl $32,<in9=%rcx
  696. shl $32,%rcx
  697. # qhasm: in8 += in9
  698. # asm 1: add <in9=int64#4,<in8=int64#3
  699. # asm 2: add <in9=%rcx,<in8=%rdx
  700. add %rcx,%rdx
  701. # qhasm: in9 = in8
  702. # asm 1: mov <in8=int64#3,>in9=int64#4
  703. # asm 2: mov <in8=%rdx,>in9=%rcx
  704. mov %rdx,%rcx
  705. # qhasm: (uint64) in9 >>= 32
  706. # asm 1: shr $32,<in9=int64#4
  707. # asm 2: shr $32,<in9=%rcx
  708. shr $32,%rcx
  709. # qhasm: ((uint32 *)&x2)[0] = in8
  710. # asm 1: movl <in8=int64#3d,>x2=stack128#2
  711. # asm 2: movl <in8=%edx,>x2=16(%rsp)
  712. movl %edx,16(%rsp)
  713. # qhasm: ((uint32 *)&x3)[1] = in9
  714. # asm 1: movl <in9=int64#4d,4+<x3=stack128#3
  715. # asm 2: movl <in9=%ecx,4+<x3=32(%rsp)
  716. movl %ecx,4+32(%rsp)
  717. # qhasm: bytes_backup = bytes
  718. # asm 1: movq <bytes=int64#6,>bytes_backup=stack64#8
  719. # asm 2: movq <bytes=%r9,>bytes_backup=408(%rsp)
  720. movq %r9,408(%rsp)
  721. # qhasm: i = 20
  722. # asm 1: mov $20,>i=int64#3
  723. # asm 2: mov $20,>i=%rdx
  724. mov $20,%rdx
  725. # qhasm: z5 = orig5
  726. # asm 1: movdqa <orig5=stack128#5,>z5=int6464#1
  727. # asm 2: movdqa <orig5=64(%rsp),>z5=%xmm0
  728. movdqa 64(%rsp),%xmm0
  729. # qhasm: z10 = orig10
  730. # asm 1: movdqa <orig10=stack128#6,>z10=int6464#2
  731. # asm 2: movdqa <orig10=80(%rsp),>z10=%xmm1
  732. movdqa 80(%rsp),%xmm1
  733. # qhasm: z15 = orig15
  734. # asm 1: movdqa <orig15=stack128#7,>z15=int6464#3
  735. # asm 2: movdqa <orig15=96(%rsp),>z15=%xmm2
  736. movdqa 96(%rsp),%xmm2
  737. # qhasm: z14 = orig14
  738. # asm 1: movdqa <orig14=stack128#17,>z14=int6464#4
  739. # asm 2: movdqa <orig14=256(%rsp),>z14=%xmm3
  740. movdqa 256(%rsp),%xmm3
  741. # qhasm: z3 = orig3
  742. # asm 1: movdqa <orig3=stack128#18,>z3=int6464#5
  743. # asm 2: movdqa <orig3=272(%rsp),>z3=%xmm4
  744. movdqa 272(%rsp),%xmm4
  745. # qhasm: z6 = orig6
  746. # asm 1: movdqa <orig6=stack128#9,>z6=int6464#6
  747. # asm 2: movdqa <orig6=128(%rsp),>z6=%xmm5
  748. movdqa 128(%rsp),%xmm5
  749. # qhasm: z11 = orig11
  750. # asm 1: movdqa <orig11=stack128#10,>z11=int6464#7
  751. # asm 2: movdqa <orig11=144(%rsp),>z11=%xmm6
  752. movdqa 144(%rsp),%xmm6
  753. # qhasm: z1 = orig1
  754. # asm 1: movdqa <orig1=stack128#12,>z1=int6464#8
  755. # asm 2: movdqa <orig1=176(%rsp),>z1=%xmm7
  756. movdqa 176(%rsp),%xmm7
  757. # qhasm: z7 = orig7
  758. # asm 1: movdqa <orig7=stack128#13,>z7=int6464#9
  759. # asm 2: movdqa <orig7=192(%rsp),>z7=%xmm8
  760. movdqa 192(%rsp),%xmm8
  761. # qhasm: z13 = orig13
  762. # asm 1: movdqa <orig13=stack128#14,>z13=int6464#10
  763. # asm 2: movdqa <orig13=208(%rsp),>z13=%xmm9
  764. movdqa 208(%rsp),%xmm9
  765. # qhasm: z2 = orig2
  766. # asm 1: movdqa <orig2=stack128#15,>z2=int6464#11
  767. # asm 2: movdqa <orig2=224(%rsp),>z2=%xmm10
  768. movdqa 224(%rsp),%xmm10
  769. # qhasm: z9 = orig9
  770. # asm 1: movdqa <orig9=stack128#20,>z9=int6464#12
  771. # asm 2: movdqa <orig9=304(%rsp),>z9=%xmm11
  772. movdqa 304(%rsp),%xmm11
  773. # qhasm: z0 = orig0
  774. # asm 1: movdqa <orig0=stack128#8,>z0=int6464#13
  775. # asm 2: movdqa <orig0=112(%rsp),>z0=%xmm12
  776. movdqa 112(%rsp),%xmm12
  777. # qhasm: z12 = orig12
  778. # asm 1: movdqa <orig12=stack128#11,>z12=int6464#14
  779. # asm 2: movdqa <orig12=160(%rsp),>z12=%xmm13
  780. movdqa 160(%rsp),%xmm13
  781. # qhasm: z4 = orig4
  782. # asm 1: movdqa <orig4=stack128#16,>z4=int6464#15
  783. # asm 2: movdqa <orig4=240(%rsp),>z4=%xmm14
  784. movdqa 240(%rsp),%xmm14
  785. # qhasm: z8 = orig8
  786. # asm 1: movdqa <orig8=stack128#19,>z8=int6464#16
  787. # asm 2: movdqa <orig8=288(%rsp),>z8=%xmm15
  788. movdqa 288(%rsp),%xmm15
  789. # qhasm: mainloop1:
  790. ._mainloop1:
  791. # qhasm: z10_stack = z10
  792. # asm 1: movdqa <z10=int6464#2,>z10_stack=stack128#21
  793. # asm 2: movdqa <z10=%xmm1,>z10_stack=320(%rsp)
  794. movdqa %xmm1,320(%rsp)
  795. # qhasm: z15_stack = z15
  796. # asm 1: movdqa <z15=int6464#3,>z15_stack=stack128#22
  797. # asm 2: movdqa <z15=%xmm2,>z15_stack=336(%rsp)
  798. movdqa %xmm2,336(%rsp)
  799. # qhasm: y4 = z12
  800. # asm 1: movdqa <z12=int6464#14,>y4=int6464#2
  801. # asm 2: movdqa <z12=%xmm13,>y4=%xmm1
  802. movdqa %xmm13,%xmm1
  803. # qhasm: uint32323232 y4 += z0
  804. # asm 1: paddd <z0=int6464#13,<y4=int6464#2
  805. # asm 2: paddd <z0=%xmm12,<y4=%xmm1
  806. paddd %xmm12,%xmm1
  807. # qhasm: r4 = y4
  808. # asm 1: movdqa <y4=int6464#2,>r4=int6464#3
  809. # asm 2: movdqa <y4=%xmm1,>r4=%xmm2
  810. movdqa %xmm1,%xmm2
  811. # qhasm: uint32323232 y4 <<= 7
  812. # asm 1: pslld $7,<y4=int6464#2
  813. # asm 2: pslld $7,<y4=%xmm1
  814. pslld $7,%xmm1
  815. # qhasm: z4 ^= y4
  816. # asm 1: pxor <y4=int6464#2,<z4=int6464#15
  817. # asm 2: pxor <y4=%xmm1,<z4=%xmm14
  818. pxor %xmm1,%xmm14
  819. # qhasm: uint32323232 r4 >>= 25
  820. # asm 1: psrld $25,<r4=int6464#3
  821. # asm 2: psrld $25,<r4=%xmm2
  822. psrld $25,%xmm2
  823. # qhasm: z4 ^= r4
  824. # asm 1: pxor <r4=int6464#3,<z4=int6464#15
  825. # asm 2: pxor <r4=%xmm2,<z4=%xmm14
  826. pxor %xmm2,%xmm14
  827. # qhasm: y9 = z1
  828. # asm 1: movdqa <z1=int6464#8,>y9=int6464#2
  829. # asm 2: movdqa <z1=%xmm7,>y9=%xmm1
  830. movdqa %xmm7,%xmm1
  831. # qhasm: uint32323232 y9 += z5
  832. # asm 1: paddd <z5=int6464#1,<y9=int6464#2
  833. # asm 2: paddd <z5=%xmm0,<y9=%xmm1
  834. paddd %xmm0,%xmm1
  835. # qhasm: r9 = y9
  836. # asm 1: movdqa <y9=int6464#2,>r9=int6464#3
  837. # asm 2: movdqa <y9=%xmm1,>r9=%xmm2
  838. movdqa %xmm1,%xmm2
  839. # qhasm: uint32323232 y9 <<= 7
  840. # asm 1: pslld $7,<y9=int6464#2
  841. # asm 2: pslld $7,<y9=%xmm1
  842. pslld $7,%xmm1
  843. # qhasm: z9 ^= y9
  844. # asm 1: pxor <y9=int6464#2,<z9=int6464#12
  845. # asm 2: pxor <y9=%xmm1,<z9=%xmm11
  846. pxor %xmm1,%xmm11
  847. # qhasm: uint32323232 r9 >>= 25
  848. # asm 1: psrld $25,<r9=int6464#3
  849. # asm 2: psrld $25,<r9=%xmm2
  850. psrld $25,%xmm2
  851. # qhasm: z9 ^= r9
  852. # asm 1: pxor <r9=int6464#3,<z9=int6464#12
  853. # asm 2: pxor <r9=%xmm2,<z9=%xmm11
  854. pxor %xmm2,%xmm11
  855. # qhasm: y8 = z0
  856. # asm 1: movdqa <z0=int6464#13,>y8=int6464#2
  857. # asm 2: movdqa <z0=%xmm12,>y8=%xmm1
  858. movdqa %xmm12,%xmm1
  859. # qhasm: uint32323232 y8 += z4
  860. # asm 1: paddd <z4=int6464#15,<y8=int6464#2
  861. # asm 2: paddd <z4=%xmm14,<y8=%xmm1
  862. paddd %xmm14,%xmm1
  863. # qhasm: r8 = y8
  864. # asm 1: movdqa <y8=int6464#2,>r8=int6464#3
  865. # asm 2: movdqa <y8=%xmm1,>r8=%xmm2
  866. movdqa %xmm1,%xmm2
  867. # qhasm: uint32323232 y8 <<= 9
  868. # asm 1: pslld $9,<y8=int6464#2
  869. # asm 2: pslld $9,<y8=%xmm1
  870. pslld $9,%xmm1
  871. # qhasm: z8 ^= y8
  872. # asm 1: pxor <y8=int6464#2,<z8=int6464#16
  873. # asm 2: pxor <y8=%xmm1,<z8=%xmm15
  874. pxor %xmm1,%xmm15
  875. # qhasm: uint32323232 r8 >>= 23
  876. # asm 1: psrld $23,<r8=int6464#3
  877. # asm 2: psrld $23,<r8=%xmm2
  878. psrld $23,%xmm2
  879. # qhasm: z8 ^= r8
  880. # asm 1: pxor <r8=int6464#3,<z8=int6464#16
  881. # asm 2: pxor <r8=%xmm2,<z8=%xmm15
  882. pxor %xmm2,%xmm15
  883. # qhasm: y13 = z5
  884. # asm 1: movdqa <z5=int6464#1,>y13=int6464#2
  885. # asm 2: movdqa <z5=%xmm0,>y13=%xmm1
  886. movdqa %xmm0,%xmm1
  887. # qhasm: uint32323232 y13 += z9
  888. # asm 1: paddd <z9=int6464#12,<y13=int6464#2
  889. # asm 2: paddd <z9=%xmm11,<y13=%xmm1
  890. paddd %xmm11,%xmm1
  891. # qhasm: r13 = y13
  892. # asm 1: movdqa <y13=int6464#2,>r13=int6464#3
  893. # asm 2: movdqa <y13=%xmm1,>r13=%xmm2
  894. movdqa %xmm1,%xmm2
  895. # qhasm: uint32323232 y13 <<= 9
  896. # asm 1: pslld $9,<y13=int6464#2
  897. # asm 2: pslld $9,<y13=%xmm1
  898. pslld $9,%xmm1
  899. # qhasm: z13 ^= y13
  900. # asm 1: pxor <y13=int6464#2,<z13=int6464#10
  901. # asm 2: pxor <y13=%xmm1,<z13=%xmm9
  902. pxor %xmm1,%xmm9
  903. # qhasm: uint32323232 r13 >>= 23
  904. # asm 1: psrld $23,<r13=int6464#3
  905. # asm 2: psrld $23,<r13=%xmm2
  906. psrld $23,%xmm2
  907. # qhasm: z13 ^= r13
  908. # asm 1: pxor <r13=int6464#3,<z13=int6464#10
  909. # asm 2: pxor <r13=%xmm2,<z13=%xmm9
  910. pxor %xmm2,%xmm9
  911. # qhasm: y12 = z4
  912. # asm 1: movdqa <z4=int6464#15,>y12=int6464#2
  913. # asm 2: movdqa <z4=%xmm14,>y12=%xmm1
  914. movdqa %xmm14,%xmm1
  915. # qhasm: uint32323232 y12 += z8
  916. # asm 1: paddd <z8=int6464#16,<y12=int6464#2
  917. # asm 2: paddd <z8=%xmm15,<y12=%xmm1
  918. paddd %xmm15,%xmm1
  919. # qhasm: r12 = y12
  920. # asm 1: movdqa <y12=int6464#2,>r12=int6464#3
  921. # asm 2: movdqa <y12=%xmm1,>r12=%xmm2
  922. movdqa %xmm1,%xmm2
  923. # qhasm: uint32323232 y12 <<= 13
  924. # asm 1: pslld $13,<y12=int6464#2
  925. # asm 2: pslld $13,<y12=%xmm1
  926. pslld $13,%xmm1
  927. # qhasm: z12 ^= y12
  928. # asm 1: pxor <y12=int6464#2,<z12=int6464#14
  929. # asm 2: pxor <y12=%xmm1,<z12=%xmm13
  930. pxor %xmm1,%xmm13
  931. # qhasm: uint32323232 r12 >>= 19
  932. # asm 1: psrld $19,<r12=int6464#3
  933. # asm 2: psrld $19,<r12=%xmm2
  934. psrld $19,%xmm2
  935. # qhasm: z12 ^= r12
  936. # asm 1: pxor <r12=int6464#3,<z12=int6464#14
  937. # asm 2: pxor <r12=%xmm2,<z12=%xmm13
  938. pxor %xmm2,%xmm13
  939. # qhasm: y1 = z9
  940. # asm 1: movdqa <z9=int6464#12,>y1=int6464#2
  941. # asm 2: movdqa <z9=%xmm11,>y1=%xmm1
  942. movdqa %xmm11,%xmm1
  943. # qhasm: uint32323232 y1 += z13
  944. # asm 1: paddd <z13=int6464#10,<y1=int6464#2
  945. # asm 2: paddd <z13=%xmm9,<y1=%xmm1
  946. paddd %xmm9,%xmm1
  947. # qhasm: r1 = y1
  948. # asm 1: movdqa <y1=int6464#2,>r1=int6464#3
  949. # asm 2: movdqa <y1=%xmm1,>r1=%xmm2
  950. movdqa %xmm1,%xmm2
  951. # qhasm: uint32323232 y1 <<= 13
  952. # asm 1: pslld $13,<y1=int6464#2
  953. # asm 2: pslld $13,<y1=%xmm1
  954. pslld $13,%xmm1
  955. # qhasm: z1 ^= y1
  956. # asm 1: pxor <y1=int6464#2,<z1=int6464#8
  957. # asm 2: pxor <y1=%xmm1,<z1=%xmm7
  958. pxor %xmm1,%xmm7
  959. # qhasm: uint32323232 r1 >>= 19
  960. # asm 1: psrld $19,<r1=int6464#3
  961. # asm 2: psrld $19,<r1=%xmm2
  962. psrld $19,%xmm2
  963. # qhasm: z1 ^= r1
  964. # asm 1: pxor <r1=int6464#3,<z1=int6464#8
  965. # asm 2: pxor <r1=%xmm2,<z1=%xmm7
  966. pxor %xmm2,%xmm7
  967. # qhasm: y0 = z8
  968. # asm 1: movdqa <z8=int6464#16,>y0=int6464#2
  969. # asm 2: movdqa <z8=%xmm15,>y0=%xmm1
  970. movdqa %xmm15,%xmm1
  971. # qhasm: uint32323232 y0 += z12
  972. # asm 1: paddd <z12=int6464#14,<y0=int6464#2
  973. # asm 2: paddd <z12=%xmm13,<y0=%xmm1
  974. paddd %xmm13,%xmm1
  975. # qhasm: r0 = y0
  976. # asm 1: movdqa <y0=int6464#2,>r0=int6464#3
  977. # asm 2: movdqa <y0=%xmm1,>r0=%xmm2
  978. movdqa %xmm1,%xmm2
  979. # qhasm: uint32323232 y0 <<= 18
  980. # asm 1: pslld $18,<y0=int6464#2
  981. # asm 2: pslld $18,<y0=%xmm1
  982. pslld $18,%xmm1
  983. # qhasm: z0 ^= y0
  984. # asm 1: pxor <y0=int6464#2,<z0=int6464#13
  985. # asm 2: pxor <y0=%xmm1,<z0=%xmm12
  986. pxor %xmm1,%xmm12
  987. # qhasm: uint32323232 r0 >>= 14
  988. # asm 1: psrld $14,<r0=int6464#3
  989. # asm 2: psrld $14,<r0=%xmm2
  990. psrld $14,%xmm2
  991. # qhasm: z0 ^= r0
  992. # asm 1: pxor <r0=int6464#3,<z0=int6464#13
  993. # asm 2: pxor <r0=%xmm2,<z0=%xmm12
  994. pxor %xmm2,%xmm12
  995. # qhasm: z10 = z10_stack
  996. # asm 1: movdqa <z10_stack=stack128#21,>z10=int6464#2
  997. # asm 2: movdqa <z10_stack=320(%rsp),>z10=%xmm1
  998. movdqa 320(%rsp),%xmm1
  999. # qhasm: z0_stack = z0
  1000. # asm 1: movdqa <z0=int6464#13,>z0_stack=stack128#21
  1001. # asm 2: movdqa <z0=%xmm12,>z0_stack=320(%rsp)
  1002. movdqa %xmm12,320(%rsp)
  1003. # qhasm: y5 = z13
  1004. # asm 1: movdqa <z13=int6464#10,>y5=int6464#3
  1005. # asm 2: movdqa <z13=%xmm9,>y5=%xmm2
  1006. movdqa %xmm9,%xmm2
  1007. # qhasm: uint32323232 y5 += z1
  1008. # asm 1: paddd <z1=int6464#8,<y5=int6464#3
  1009. # asm 2: paddd <z1=%xmm7,<y5=%xmm2
  1010. paddd %xmm7,%xmm2
  1011. # qhasm: r5 = y5
  1012. # asm 1: movdqa <y5=int6464#3,>r5=int6464#13
  1013. # asm 2: movdqa <y5=%xmm2,>r5=%xmm12
  1014. movdqa %xmm2,%xmm12
  1015. # qhasm: uint32323232 y5 <<= 18
  1016. # asm 1: pslld $18,<y5=int6464#3
  1017. # asm 2: pslld $18,<y5=%xmm2
  1018. pslld $18,%xmm2
  1019. # qhasm: z5 ^= y5
  1020. # asm 1: pxor <y5=int6464#3,<z5=int6464#1
  1021. # asm 2: pxor <y5=%xmm2,<z5=%xmm0
  1022. pxor %xmm2,%xmm0
  1023. # qhasm: uint32323232 r5 >>= 14
  1024. # asm 1: psrld $14,<r5=int6464#13
  1025. # asm 2: psrld $14,<r5=%xmm12
  1026. psrld $14,%xmm12
  1027. # qhasm: z5 ^= r5
  1028. # asm 1: pxor <r5=int6464#13,<z5=int6464#1
  1029. # asm 2: pxor <r5=%xmm12,<z5=%xmm0
  1030. pxor %xmm12,%xmm0
  1031. # qhasm: y14 = z6
  1032. # asm 1: movdqa <z6=int6464#6,>y14=int6464#3
  1033. # asm 2: movdqa <z6=%xmm5,>y14=%xmm2
  1034. movdqa %xmm5,%xmm2
  1035. # qhasm: uint32323232 y14 += z10
  1036. # asm 1: paddd <z10=int6464#2,<y14=int6464#3
  1037. # asm 2: paddd <z10=%xmm1,<y14=%xmm2
  1038. paddd %xmm1,%xmm2
  1039. # qhasm: r14 = y14
  1040. # asm 1: movdqa <y14=int6464#3,>r14=int6464#13
  1041. # asm 2: movdqa <y14=%xmm2,>r14=%xmm12
  1042. movdqa %xmm2,%xmm12
  1043. # qhasm: uint32323232 y14 <<= 7
  1044. # asm 1: pslld $7,<y14=int6464#3
  1045. # asm 2: pslld $7,<y14=%xmm2
  1046. pslld $7,%xmm2
  1047. # qhasm: z14 ^= y14
  1048. # asm 1: pxor <y14=int6464#3,<z14=int6464#4
  1049. # asm 2: pxor <y14=%xmm2,<z14=%xmm3
  1050. pxor %xmm2,%xmm3
  1051. # qhasm: uint32323232 r14 >>= 25
  1052. # asm 1: psrld $25,<r14=int6464#13
  1053. # asm 2: psrld $25,<r14=%xmm12
  1054. psrld $25,%xmm12
  1055. # qhasm: z14 ^= r14
  1056. # asm 1: pxor <r14=int6464#13,<z14=int6464#4
  1057. # asm 2: pxor <r14=%xmm12,<z14=%xmm3
  1058. pxor %xmm12,%xmm3
  1059. # qhasm: z15 = z15_stack
  1060. # asm 1: movdqa <z15_stack=stack128#22,>z15=int6464#3
  1061. # asm 2: movdqa <z15_stack=336(%rsp),>z15=%xmm2
  1062. movdqa 336(%rsp),%xmm2
  1063. # qhasm: z5_stack = z5
  1064. # asm 1: movdqa <z5=int6464#1,>z5_stack=stack128#22
  1065. # asm 2: movdqa <z5=%xmm0,>z5_stack=336(%rsp)
  1066. movdqa %xmm0,336(%rsp)
  1067. # qhasm: y3 = z11
  1068. # asm 1: movdqa <z11=int6464#7,>y3=int6464#1
  1069. # asm 2: movdqa <z11=%xmm6,>y3=%xmm0
  1070. movdqa %xmm6,%xmm0
  1071. # qhasm: uint32323232 y3 += z15
  1072. # asm 1: paddd <z15=int6464#3,<y3=int6464#1
  1073. # asm 2: paddd <z15=%xmm2,<y3=%xmm0
  1074. paddd %xmm2,%xmm0
  1075. # qhasm: r3 = y3
  1076. # asm 1: movdqa <y3=int6464#1,>r3=int6464#13
  1077. # asm 2: movdqa <y3=%xmm0,>r3=%xmm12
  1078. movdqa %xmm0,%xmm12
  1079. # qhasm: uint32323232 y3 <<= 7
  1080. # asm 1: pslld $7,<y3=int6464#1
  1081. # asm 2: pslld $7,<y3=%xmm0
  1082. pslld $7,%xmm0
  1083. # qhasm: z3 ^= y3
  1084. # asm 1: pxor <y3=int6464#1,<z3=int6464#5
  1085. # asm 2: pxor <y3=%xmm0,<z3=%xmm4
  1086. pxor %xmm0,%xmm4
  1087. # qhasm: uint32323232 r3 >>= 25
  1088. # asm 1: psrld $25,<r3=int6464#13
  1089. # asm 2: psrld $25,<r3=%xmm12
  1090. psrld $25,%xmm12
  1091. # qhasm: z3 ^= r3
  1092. # asm 1: pxor <r3=int6464#13,<z3=int6464#5
  1093. # asm 2: pxor <r3=%xmm12,<z3=%xmm4
  1094. pxor %xmm12,%xmm4
  1095. # qhasm: y2 = z10
  1096. # asm 1: movdqa <z10=int6464#2,>y2=int6464#1
  1097. # asm 2: movdqa <z10=%xmm1,>y2=%xmm0
  1098. movdqa %xmm1,%xmm0
  1099. # qhasm: uint32323232 y2 += z14
  1100. # asm 1: paddd <z14=int6464#4,<y2=int6464#1
  1101. # asm 2: paddd <z14=%xmm3,<y2=%xmm0
  1102. paddd %xmm3,%xmm0
  1103. # qhasm: r2 = y2
  1104. # asm 1: movdqa <y2=int6464#1,>r2=int6464#13
  1105. # asm 2: movdqa <y2=%xmm0,>r2=%xmm12
  1106. movdqa %xmm0,%xmm12
  1107. # qhasm: uint32323232 y2 <<= 9
  1108. # asm 1: pslld $9,<y2=int6464#1
  1109. # asm 2: pslld $9,<y2=%xmm0
  1110. pslld $9,%xmm0
  1111. # qhasm: z2 ^= y2
  1112. # asm 1: pxor <y2=int6464#1,<z2=int6464#11
  1113. # asm 2: pxor <y2=%xmm0,<z2=%xmm10
  1114. pxor %xmm0,%xmm10
  1115. # qhasm: uint32323232 r2 >>= 23
  1116. # asm 1: psrld $23,<r2=int6464#13
  1117. # asm 2: psrld $23,<r2=%xmm12
  1118. psrld $23,%xmm12
  1119. # qhasm: z2 ^= r2
  1120. # asm 1: pxor <r2=int6464#13,<z2=int6464#11
  1121. # asm 2: pxor <r2=%xmm12,<z2=%xmm10
  1122. pxor %xmm12,%xmm10
  1123. # qhasm: y7 = z15
  1124. # asm 1: movdqa <z15=int6464#3,>y7=int6464#1
  1125. # asm 2: movdqa <z15=%xmm2,>y7=%xmm0
  1126. movdqa %xmm2,%xmm0
  1127. # qhasm: uint32323232 y7 += z3
  1128. # asm 1: paddd <z3=int6464#5,<y7=int6464#1
  1129. # asm 2: paddd <z3=%xmm4,<y7=%xmm0
  1130. paddd %xmm4,%xmm0
  1131. # qhasm: r7 = y7
  1132. # asm 1: movdqa <y7=int6464#1,>r7=int6464#13
  1133. # asm 2: movdqa <y7=%xmm0,>r7=%xmm12
  1134. movdqa %xmm0,%xmm12
  1135. # qhasm: uint32323232 y7 <<= 9
  1136. # asm 1: pslld $9,<y7=int6464#1
  1137. # asm 2: pslld $9,<y7=%xmm0
  1138. pslld $9,%xmm0
  1139. # qhasm: z7 ^= y7
  1140. # asm 1: pxor <y7=int6464#1,<z7=int6464#9
  1141. # asm 2: pxor <y7=%xmm0,<z7=%xmm8
  1142. pxor %xmm0,%xmm8
  1143. # qhasm: uint32323232 r7 >>= 23
  1144. # asm 1: psrld $23,<r7=int6464#13
  1145. # asm 2: psrld $23,<r7=%xmm12
  1146. psrld $23,%xmm12
  1147. # qhasm: z7 ^= r7
  1148. # asm 1: pxor <r7=int6464#13,<z7=int6464#9
  1149. # asm 2: pxor <r7=%xmm12,<z7=%xmm8
  1150. pxor %xmm12,%xmm8
  1151. # qhasm: y6 = z14
  1152. # asm 1: movdqa <z14=int6464#4,>y6=int6464#1
  1153. # asm 2: movdqa <z14=%xmm3,>y6=%xmm0
  1154. movdqa %xmm3,%xmm0
  1155. # qhasm: uint32323232 y6 += z2
  1156. # asm 1: paddd <z2=int6464#11,<y6=int6464#1
  1157. # asm 2: paddd <z2=%xmm10,<y6=%xmm0
  1158. paddd %xmm10,%xmm0
  1159. # qhasm: r6 = y6
  1160. # asm 1: movdqa <y6=int6464#1,>r6=int6464#13
  1161. # asm 2: movdqa <y6=%xmm0,>r6=%xmm12
  1162. movdqa %xmm0,%xmm12
  1163. # qhasm: uint32323232 y6 <<= 13
  1164. # asm 1: pslld $13,<y6=int6464#1
  1165. # asm 2: pslld $13,<y6=%xmm0
  1166. pslld $13,%xmm0
  1167. # qhasm: z6 ^= y6
  1168. # asm 1: pxor <y6=int6464#1,<z6=int6464#6
  1169. # asm 2: pxor <y6=%xmm0,<z6=%xmm5
  1170. pxor %xmm0,%xmm5
  1171. # qhasm: uint32323232 r6 >>= 19
  1172. # asm 1: psrld $19,<r6=int6464#13
  1173. # asm 2: psrld $19,<r6=%xmm12
  1174. psrld $19,%xmm12
  1175. # qhasm: z6 ^= r6
  1176. # asm 1: pxor <r6=int6464#13,<z6=int6464#6
  1177. # asm 2: pxor <r6=%xmm12,<z6=%xmm5
  1178. pxor %xmm12,%xmm5
  1179. # qhasm: y11 = z3
  1180. # asm 1: movdqa <z3=int6464#5,>y11=int6464#1
  1181. # asm 2: movdqa <z3=%xmm4,>y11=%xmm0
  1182. movdqa %xmm4,%xmm0
  1183. # qhasm: uint32323232 y11 += z7
  1184. # asm 1: paddd <z7=int6464#9,<y11=int6464#1
  1185. # asm 2: paddd <z7=%xmm8,<y11=%xmm0
  1186. paddd %xmm8,%xmm0
  1187. # qhasm: r11 = y11
  1188. # asm 1: movdqa <y11=int6464#1,>r11=int6464#13
  1189. # asm 2: movdqa <y11=%xmm0,>r11=%xmm12
  1190. movdqa %xmm0,%xmm12
  1191. # qhasm: uint32323232 y11 <<= 13
  1192. # asm 1: pslld $13,<y11=int6464#1
  1193. # asm 2: pslld $13,<y11=%xmm0
  1194. pslld $13,%xmm0
  1195. # qhasm: z11 ^= y11
  1196. # asm 1: pxor <y11=int6464#1,<z11=int6464#7
  1197. # asm 2: pxor <y11=%xmm0,<z11=%xmm6
  1198. pxor %xmm0,%xmm6
  1199. # qhasm: uint32323232 r11 >>= 19
  1200. # asm 1: psrld $19,<r11=int6464#13
  1201. # asm 2: psrld $19,<r11=%xmm12
  1202. psrld $19,%xmm12
  1203. # qhasm: z11 ^= r11
  1204. # asm 1: pxor <r11=int6464#13,<z11=int6464#7
  1205. # asm 2: pxor <r11=%xmm12,<z11=%xmm6
  1206. pxor %xmm12,%xmm6
  1207. # qhasm: y10 = z2
  1208. # asm 1: movdqa <z2=int6464#11,>y10=int6464#1
  1209. # asm 2: movdqa <z2=%xmm10,>y10=%xmm0
  1210. movdqa %xmm10,%xmm0
  1211. # qhasm: uint32323232 y10 += z6
  1212. # asm 1: paddd <z6=int6464#6,<y10=int6464#1
  1213. # asm 2: paddd <z6=%xmm5,<y10=%xmm0
  1214. paddd %xmm5,%xmm0
  1215. # qhasm: r10 = y10
  1216. # asm 1: movdqa <y10=int6464#1,>r10=int6464#13
  1217. # asm 2: movdqa <y10=%xmm0,>r10=%xmm12
  1218. movdqa %xmm0,%xmm12
  1219. # qhasm: uint32323232 y10 <<= 18
  1220. # asm 1: pslld $18,<y10=int6464#1
  1221. # asm 2: pslld $18,<y10=%xmm0
  1222. pslld $18,%xmm0
  1223. # qhasm: z10 ^= y10
  1224. # asm 1: pxor <y10=int6464#1,<z10=int6464#2
  1225. # asm 2: pxor <y10=%xmm0,<z10=%xmm1
  1226. pxor %xmm0,%xmm1
  1227. # qhasm: uint32323232 r10 >>= 14
  1228. # asm 1: psrld $14,<r10=int6464#13
  1229. # asm 2: psrld $14,<r10=%xmm12
  1230. psrld $14,%xmm12
  1231. # qhasm: z10 ^= r10
  1232. # asm 1: pxor <r10=int6464#13,<z10=int6464#2
  1233. # asm 2: pxor <r10=%xmm12,<z10=%xmm1
  1234. pxor %xmm12,%xmm1
  1235. # qhasm: z0 = z0_stack
  1236. # asm 1: movdqa <z0_stack=stack128#21,>z0=int6464#1
  1237. # asm 2: movdqa <z0_stack=320(%rsp),>z0=%xmm0
  1238. movdqa 320(%rsp),%xmm0
  1239. # qhasm: z10_stack = z10
  1240. # asm 1: movdqa <z10=int6464#2,>z10_stack=stack128#21
  1241. # asm 2: movdqa <z10=%xmm1,>z10_stack=320(%rsp)
  1242. movdqa %xmm1,320(%rsp)
  1243. # qhasm: y1 = z3
  1244. # asm 1: movdqa <z3=int6464#5,>y1=int6464#2
  1245. # asm 2: movdqa <z3=%xmm4,>y1=%xmm1
  1246. movdqa %xmm4,%xmm1
  1247. # qhasm: uint32323232 y1 += z0
  1248. # asm 1: paddd <z0=int6464#1,<y1=int6464#2
  1249. # asm 2: paddd <z0=%xmm0,<y1=%xmm1
  1250. paddd %xmm0,%xmm1
  1251. # qhasm: r1 = y1
  1252. # asm 1: movdqa <y1=int6464#2,>r1=int6464#13
  1253. # asm 2: movdqa <y1=%xmm1,>r1=%xmm12
  1254. movdqa %xmm1,%xmm12
  1255. # qhasm: uint32323232 y1 <<= 7
  1256. # asm 1: pslld $7,<y1=int6464#2
  1257. # asm 2: pslld $7,<y1=%xmm1
  1258. pslld $7,%xmm1
  1259. # qhasm: z1 ^= y1
  1260. # asm 1: pxor <y1=int6464#2,<z1=int6464#8
  1261. # asm 2: pxor <y1=%xmm1,<z1=%xmm7
  1262. pxor %xmm1,%xmm7
  1263. # qhasm: uint32323232 r1 >>= 25
  1264. # asm 1: psrld $25,<r1=int6464#13
  1265. # asm 2: psrld $25,<r1=%xmm12
  1266. psrld $25,%xmm12
  1267. # qhasm: z1 ^= r1
  1268. # asm 1: pxor <r1=int6464#13,<z1=int6464#8
  1269. # asm 2: pxor <r1=%xmm12,<z1=%xmm7
  1270. pxor %xmm12,%xmm7
  1271. # qhasm: y15 = z7
  1272. # asm 1: movdqa <z7=int6464#9,>y15=int6464#2
  1273. # asm 2: movdqa <z7=%xmm8,>y15=%xmm1
  1274. movdqa %xmm8,%xmm1
  1275. # qhasm: uint32323232 y15 += z11
  1276. # asm 1: paddd <z11=int6464#7,<y15=int6464#2
  1277. # asm 2: paddd <z11=%xmm6,<y15=%xmm1
  1278. paddd %xmm6,%xmm1
  1279. # qhasm: r15 = y15
  1280. # asm 1: movdqa <y15=int6464#2,>r15=int6464#13
  1281. # asm 2: movdqa <y15=%xmm1,>r15=%xmm12
  1282. movdqa %xmm1,%xmm12
  1283. # qhasm: uint32323232 y15 <<= 18
  1284. # asm 1: pslld $18,<y15=int6464#2
  1285. # asm 2: pslld $18,<y15=%xmm1
  1286. pslld $18,%xmm1
  1287. # qhasm: z15 ^= y15
  1288. # asm 1: pxor <y15=int6464#2,<z15=int6464#3
  1289. # asm 2: pxor <y15=%xmm1,<z15=%xmm2
  1290. pxor %xmm1,%xmm2
  1291. # qhasm: uint32323232 r15 >>= 14
  1292. # asm 1: psrld $14,<r15=int6464#13
  1293. # asm 2: psrld $14,<r15=%xmm12
  1294. psrld $14,%xmm12
  1295. # qhasm: z15 ^= r15
  1296. # asm 1: pxor <r15=int6464#13,<z15=int6464#3
  1297. # asm 2: pxor <r15=%xmm12,<z15=%xmm2
  1298. pxor %xmm12,%xmm2
  1299. # qhasm: z5 = z5_stack
  1300. # asm 1: movdqa <z5_stack=stack128#22,>z5=int6464#13
  1301. # asm 2: movdqa <z5_stack=336(%rsp),>z5=%xmm12
  1302. movdqa 336(%rsp),%xmm12
  1303. # qhasm: z15_stack = z15
  1304. # asm 1: movdqa <z15=int6464#3,>z15_stack=stack128#22
  1305. # asm 2: movdqa <z15=%xmm2,>z15_stack=336(%rsp)
  1306. movdqa %xmm2,336(%rsp)
  1307. # qhasm: y6 = z4
  1308. # asm 1: movdqa <z4=int6464#15,>y6=int6464#2
  1309. # asm 2: movdqa <z4=%xmm14,>y6=%xmm1
  1310. movdqa %xmm14,%xmm1
  1311. # qhasm: uint32323232 y6 += z5
  1312. # asm 1: paddd <z5=int6464#13,<y6=int6464#2
  1313. # asm 2: paddd <z5=%xmm12,<y6=%xmm1
  1314. paddd %xmm12,%xmm1
  1315. # qhasm: r6 = y6
  1316. # asm 1: movdqa <y6=int6464#2,>r6=int6464#3
  1317. # asm 2: movdqa <y6=%xmm1,>r6=%xmm2
  1318. movdqa %xmm1,%xmm2
  1319. # qhasm: uint32323232 y6 <<= 7
  1320. # asm 1: pslld $7,<y6=int6464#2
  1321. # asm 2: pslld $7,<y6=%xmm1
  1322. pslld $7,%xmm1
  1323. # qhasm: z6 ^= y6
  1324. # asm 1: pxor <y6=int6464#2,<z6=int6464#6
  1325. # asm 2: pxor <y6=%xmm1,<z6=%xmm5
  1326. pxor %xmm1,%xmm5
  1327. # qhasm: uint32323232 r6 >>= 25
  1328. # asm 1: psrld $25,<r6=int6464#3
  1329. # asm 2: psrld $25,<r6=%xmm2
  1330. psrld $25,%xmm2
  1331. # qhasm: z6 ^= r6
  1332. # asm 1: pxor <r6=int6464#3,<z6=int6464#6
  1333. # asm 2: pxor <r6=%xmm2,<z6=%xmm5
  1334. pxor %xmm2,%xmm5
  1335. # qhasm: y2 = z0
  1336. # asm 1: movdqa <z0=int6464#1,>y2=int6464#2
  1337. # asm 2: movdqa <z0=%xmm0,>y2=%xmm1
  1338. movdqa %xmm0,%xmm1
  1339. # qhasm: uint32323232 y2 += z1
  1340. # asm 1: paddd <z1=int6464#8,<y2=int6464#2
  1341. # asm 2: paddd <z1=%xmm7,<y2=%xmm1
  1342. paddd %xmm7,%xmm1
  1343. # qhasm: r2 = y2
  1344. # asm 1: movdqa <y2=int6464#2,>r2=int6464#3
  1345. # asm 2: movdqa <y2=%xmm1,>r2=%xmm2
  1346. movdqa %xmm1,%xmm2
  1347. # qhasm: uint32323232 y2 <<= 9
  1348. # asm 1: pslld $9,<y2=int6464#2
  1349. # asm 2: pslld $9,<y2=%xmm1
  1350. pslld $9,%xmm1
  1351. # qhasm: z2 ^= y2
  1352. # asm 1: pxor <y2=int6464#2,<z2=int6464#11
  1353. # asm 2: pxor <y2=%xmm1,<z2=%xmm10
  1354. pxor %xmm1,%xmm10
  1355. # qhasm: uint32323232 r2 >>= 23
  1356. # asm 1: psrld $23,<r2=int6464#3
  1357. # asm 2: psrld $23,<r2=%xmm2
  1358. psrld $23,%xmm2
  1359. # qhasm: z2 ^= r2
  1360. # asm 1: pxor <r2=int6464#3,<z2=int6464#11
  1361. # asm 2: pxor <r2=%xmm2,<z2=%xmm10
  1362. pxor %xmm2,%xmm10
  1363. # qhasm: y7 = z5
  1364. # asm 1: movdqa <z5=int6464#13,>y7=int6464#2
  1365. # asm 2: movdqa <z5=%xmm12,>y7=%xmm1
  1366. movdqa %xmm12,%xmm1
  1367. # qhasm: uint32323232 y7 += z6
  1368. # asm 1: paddd <z6=int6464#6,<y7=int6464#2
  1369. # asm 2: paddd <z6=%xmm5,<y7=%xmm1
  1370. paddd %xmm5,%xmm1
  1371. # qhasm: r7 = y7
  1372. # asm 1: movdqa <y7=int6464#2,>r7=int6464#3
  1373. # asm 2: movdqa <y7=%xmm1,>r7=%xmm2
  1374. movdqa %xmm1,%xmm2
  1375. # qhasm: uint32323232 y7 <<= 9
  1376. # asm 1: pslld $9,<y7=int6464#2
  1377. # asm 2: pslld $9,<y7=%xmm1
  1378. pslld $9,%xmm1
  1379. # qhasm: z7 ^= y7
  1380. # asm 1: pxor <y7=int6464#2,<z7=int6464#9
  1381. # asm 2: pxor <y7=%xmm1,<z7=%xmm8
  1382. pxor %xmm1,%xmm8
  1383. # qhasm: uint32323232 r7 >>= 23
  1384. # asm 1: psrld $23,<r7=int6464#3
  1385. # asm 2: psrld $23,<r7=%xmm2
  1386. psrld $23,%xmm2
  1387. # qhasm: z7 ^= r7
  1388. # asm 1: pxor <r7=int6464#3,<z7=int6464#9
  1389. # asm 2: pxor <r7=%xmm2,<z7=%xmm8
  1390. pxor %xmm2,%xmm8
  1391. # qhasm: y3 = z1
  1392. # asm 1: movdqa <z1=int6464#8,>y3=int6464#2
  1393. # asm 2: movdqa <z1=%xmm7,>y3=%xmm1
  1394. movdqa %xmm7,%xmm1
  1395. # qhasm: uint32323232 y3 += z2
  1396. # asm 1: paddd <z2=int6464#11,<y3=int6464#2
  1397. # asm 2: paddd <z2=%xmm10,<y3=%xmm1
  1398. paddd %xmm10,%xmm1
  1399. # qhasm: r3 = y3
  1400. # asm 1: movdqa <y3=int6464#2,>r3=int6464#3
  1401. # asm 2: movdqa <y3=%xmm1,>r3=%xmm2
  1402. movdqa %xmm1,%xmm2
  1403. # qhasm: uint32323232 y3 <<= 13
  1404. # asm 1: pslld $13,<y3=int6464#2
  1405. # asm 2: pslld $13,<y3=%xmm1
  1406. pslld $13,%xmm1
  1407. # qhasm: z3 ^= y3
  1408. # asm 1: pxor <y3=int6464#2,<z3=int6464#5
  1409. # asm 2: pxor <y3=%xmm1,<z3=%xmm4
  1410. pxor %xmm1,%xmm4
  1411. # qhasm: uint32323232 r3 >>= 19
  1412. # asm 1: psrld $19,<r3=int6464#3
  1413. # asm 2: psrld $19,<r3=%xmm2
  1414. psrld $19,%xmm2
  1415. # qhasm: z3 ^= r3
  1416. # asm 1: pxor <r3=int6464#3,<z3=int6464#5
  1417. # asm 2: pxor <r3=%xmm2,<z3=%xmm4
  1418. pxor %xmm2,%xmm4
  1419. # qhasm: y4 = z6
  1420. # asm 1: movdqa <z6=int6464#6,>y4=int6464#2
  1421. # asm 2: movdqa <z6=%xmm5,>y4=%xmm1
  1422. movdqa %xmm5,%xmm1
  1423. # qhasm: uint32323232 y4 += z7
  1424. # asm 1: paddd <z7=int6464#9,<y4=int6464#2
  1425. # asm 2: paddd <z7=%xmm8,<y4=%xmm1
  1426. paddd %xmm8,%xmm1
  1427. # qhasm: r4 = y4
  1428. # asm 1: movdqa <y4=int6464#2,>r4=int6464#3
  1429. # asm 2: movdqa <y4=%xmm1,>r4=%xmm2
  1430. movdqa %xmm1,%xmm2
  1431. # qhasm: uint32323232 y4 <<= 13
  1432. # asm 1: pslld $13,<y4=int6464#2
  1433. # asm 2: pslld $13,<y4=%xmm1
  1434. pslld $13,%xmm1
  1435. # qhasm: z4 ^= y4
  1436. # asm 1: pxor <y4=int6464#2,<z4=int6464#15
  1437. # asm 2: pxor <y4=%xmm1,<z4=%xmm14
  1438. pxor %xmm1,%xmm14
  1439. # qhasm: uint32323232 r4 >>= 19
  1440. # asm 1: psrld $19,<r4=int6464#3
  1441. # asm 2: psrld $19,<r4=%xmm2
  1442. psrld $19,%xmm2
  1443. # qhasm: z4 ^= r4
  1444. # asm 1: pxor <r4=int6464#3,<z4=int6464#15
  1445. # asm 2: pxor <r4=%xmm2,<z4=%xmm14
  1446. pxor %xmm2,%xmm14
  1447. # qhasm: y0 = z2
  1448. # asm 1: movdqa <z2=int6464#11,>y0=int6464#2
  1449. # asm 2: movdqa <z2=%xmm10,>y0=%xmm1
  1450. movdqa %xmm10,%xmm1
  1451. # qhasm: uint32323232 y0 += z3
  1452. # asm 1: paddd <z3=int6464#5,<y0=int6464#2
  1453. # asm 2: paddd <z3=%xmm4,<y0=%xmm1
  1454. paddd %xmm4,%xmm1
  1455. # qhasm: r0 = y0
  1456. # asm 1: movdqa <y0=int6464#2,>r0=int6464#3
  1457. # asm 2: movdqa <y0=%xmm1,>r0=%xmm2
  1458. movdqa %xmm1,%xmm2
  1459. # qhasm: uint32323232 y0 <<= 18
  1460. # asm 1: pslld $18,<y0=int6464#2
  1461. # asm 2: pslld $18,<y0=%xmm1
  1462. pslld $18,%xmm1
  1463. # qhasm: z0 ^= y0
  1464. # asm 1: pxor <y0=int6464#2,<z0=int6464#1
  1465. # asm 2: pxor <y0=%xmm1,<z0=%xmm0
  1466. pxor %xmm1,%xmm0
  1467. # qhasm: uint32323232 r0 >>= 14
  1468. # asm 1: psrld $14,<r0=int6464#3
  1469. # asm 2: psrld $14,<r0=%xmm2
  1470. psrld $14,%xmm2
  1471. # qhasm: z0 ^= r0
  1472. # asm 1: pxor <r0=int6464#3,<z0=int6464#1
  1473. # asm 2: pxor <r0=%xmm2,<z0=%xmm0
  1474. pxor %xmm2,%xmm0
  1475. # qhasm: z10 = z10_stack
  1476. # asm 1: movdqa <z10_stack=stack128#21,>z10=int6464#2
  1477. # asm 2: movdqa <z10_stack=320(%rsp),>z10=%xmm1
  1478. movdqa 320(%rsp),%xmm1
  1479. # qhasm: z0_stack = z0
  1480. # asm 1: movdqa <z0=int6464#1,>z0_stack=stack128#21
  1481. # asm 2: movdqa <z0=%xmm0,>z0_stack=320(%rsp)
  1482. movdqa %xmm0,320(%rsp)
  1483. # qhasm: y5 = z7
  1484. # asm 1: movdqa <z7=int6464#9,>y5=int6464#1
  1485. # asm 2: movdqa <z7=%xmm8,>y5=%xmm0
  1486. movdqa %xmm8,%xmm0
  1487. # qhasm: uint32323232 y5 += z4
  1488. # asm 1: paddd <z4=int6464#15,<y5=int6464#1
  1489. # asm 2: paddd <z4=%xmm14,<y5=%xmm0
  1490. paddd %xmm14,%xmm0
  1491. # qhasm: r5 = y5
  1492. # asm 1: movdqa <y5=int6464#1,>r5=int6464#3
  1493. # asm 2: movdqa <y5=%xmm0,>r5=%xmm2
  1494. movdqa %xmm0,%xmm2
  1495. # qhasm: uint32323232 y5 <<= 18
  1496. # asm 1: pslld $18,<y5=int6464#1
  1497. # asm 2: pslld $18,<y5=%xmm0
  1498. pslld $18,%xmm0
  1499. # qhasm: z5 ^= y5
  1500. # asm 1: pxor <y5=int6464#1,<z5=int6464#13
  1501. # asm 2: pxor <y5=%xmm0,<z5=%xmm12
  1502. pxor %xmm0,%xmm12
  1503. # qhasm: uint32323232 r5 >>= 14
  1504. # asm 1: psrld $14,<r5=int6464#3
  1505. # asm 2: psrld $14,<r5=%xmm2
  1506. psrld $14,%xmm2
  1507. # qhasm: z5 ^= r5
  1508. # asm 1: pxor <r5=int6464#3,<z5=int6464#13
  1509. # asm 2: pxor <r5=%xmm2,<z5=%xmm12
  1510. pxor %xmm2,%xmm12
  1511. # qhasm: y11 = z9
  1512. # asm 1: movdqa <z9=int6464#12,>y11=int6464#1
  1513. # asm 2: movdqa <z9=%xmm11,>y11=%xmm0
  1514. movdqa %xmm11,%xmm0
  1515. # qhasm: uint32323232 y11 += z10
  1516. # asm 1: paddd <z10=int6464#2,<y11=int6464#1
  1517. # asm 2: paddd <z10=%xmm1,<y11=%xmm0
  1518. paddd %xmm1,%xmm0
  1519. # qhasm: r11 = y11
  1520. # asm 1: movdqa <y11=int6464#1,>r11=int6464#3
  1521. # asm 2: movdqa <y11=%xmm0,>r11=%xmm2
  1522. movdqa %xmm0,%xmm2
  1523. # qhasm: uint32323232 y11 <<= 7
  1524. # asm 1: pslld $7,<y11=int6464#1
  1525. # asm 2: pslld $7,<y11=%xmm0
  1526. pslld $7,%xmm0
  1527. # qhasm: z11 ^= y11
  1528. # asm 1: pxor <y11=int6464#1,<z11=int6464#7
  1529. # asm 2: pxor <y11=%xmm0,<z11=%xmm6
  1530. pxor %xmm0,%xmm6
  1531. # qhasm: uint32323232 r11 >>= 25
  1532. # asm 1: psrld $25,<r11=int6464#3
  1533. # asm 2: psrld $25,<r11=%xmm2
  1534. psrld $25,%xmm2
  1535. # qhasm: z11 ^= r11
  1536. # asm 1: pxor <r11=int6464#3,<z11=int6464#7
  1537. # asm 2: pxor <r11=%xmm2,<z11=%xmm6
  1538. pxor %xmm2,%xmm6
  1539. # qhasm: z15 = z15_stack
  1540. # asm 1: movdqa <z15_stack=stack128#22,>z15=int6464#3
  1541. # asm 2: movdqa <z15_stack=336(%rsp),>z15=%xmm2
  1542. movdqa 336(%rsp),%xmm2
  1543. # qhasm: z5_stack = z5
  1544. # asm 1: movdqa <z5=int6464#13,>z5_stack=stack128#22
  1545. # asm 2: movdqa <z5=%xmm12,>z5_stack=336(%rsp)
  1546. movdqa %xmm12,336(%rsp)
  1547. # qhasm: y12 = z14
  1548. # asm 1: movdqa <z14=int6464#4,>y12=int6464#1
  1549. # asm 2: movdqa <z14=%xmm3,>y12=%xmm0
  1550. movdqa %xmm3,%xmm0
  1551. # qhasm: uint32323232 y12 += z15
  1552. # asm 1: paddd <z15=int6464#3,<y12=int6464#1
  1553. # asm 2: paddd <z15=%xmm2,<y12=%xmm0
  1554. paddd %xmm2,%xmm0
  1555. # qhasm: r12 = y12
  1556. # asm 1: movdqa <y12=int6464#1,>r12=int6464#13
  1557. # asm 2: movdqa <y12=%xmm0,>r12=%xmm12
  1558. movdqa %xmm0,%xmm12
  1559. # qhasm: uint32323232 y12 <<= 7
  1560. # asm 1: pslld $7,<y12=int6464#1
  1561. # asm 2: pslld $7,<y12=%xmm0
  1562. pslld $7,%xmm0
  1563. # qhasm: z12 ^= y12
  1564. # asm 1: pxor <y12=int6464#1,<z12=int6464#14
  1565. # asm 2: pxor <y12=%xmm0,<z12=%xmm13
  1566. pxor %xmm0,%xmm13
  1567. # qhasm: uint32323232 r12 >>= 25
  1568. # asm 1: psrld $25,<r12=int6464#13
  1569. # asm 2: psrld $25,<r12=%xmm12
  1570. psrld $25,%xmm12
  1571. # qhasm: z12 ^= r12
  1572. # asm 1: pxor <r12=int6464#13,<z12=int6464#14
  1573. # asm 2: pxor <r12=%xmm12,<z12=%xmm13
  1574. pxor %xmm12,%xmm13
  1575. # qhasm: y8 = z10
  1576. # asm 1: movdqa <z10=int6464#2,>y8=int6464#1
  1577. # asm 2: movdqa <z10=%xmm1,>y8=%xmm0
  1578. movdqa %xmm1,%xmm0
  1579. # qhasm: uint32323232 y8 += z11
  1580. # asm 1: paddd <z11=int6464#7,<y8=int6464#1
  1581. # asm 2: paddd <z11=%xmm6,<y8=%xmm0
  1582. paddd %xmm6,%xmm0
  1583. # qhasm: r8 = y8
  1584. # asm 1: movdqa <y8=int6464#1,>r8=int6464#13
  1585. # asm 2: movdqa <y8=%xmm0,>r8=%xmm12
  1586. movdqa %xmm0,%xmm12
  1587. # qhasm: uint32323232 y8 <<= 9
  1588. # asm 1: pslld $9,<y8=int6464#1
  1589. # asm 2: pslld $9,<y8=%xmm0
  1590. pslld $9,%xmm0
  1591. # qhasm: z8 ^= y8
  1592. # asm 1: pxor <y8=int6464#1,<z8=int6464#16
  1593. # asm 2: pxor <y8=%xmm0,<z8=%xmm15
  1594. pxor %xmm0,%xmm15
  1595. # qhasm: uint32323232 r8 >>= 23
  1596. # asm 1: psrld $23,<r8=int6464#13
  1597. # asm 2: psrld $23,<r8=%xmm12
  1598. psrld $23,%xmm12
  1599. # qhasm: z8 ^= r8
  1600. # asm 1: pxor <r8=int6464#13,<z8=int6464#16
  1601. # asm 2: pxor <r8=%xmm12,<z8=%xmm15
  1602. pxor %xmm12,%xmm15
  1603. # qhasm: y13 = z15
  1604. # asm 1: movdqa <z15=int6464#3,>y13=int6464#1
  1605. # asm 2: movdqa <z15=%xmm2,>y13=%xmm0
  1606. movdqa %xmm2,%xmm0
  1607. # qhasm: uint32323232 y13 += z12
  1608. # asm 1: paddd <z12=int6464#14,<y13=int6464#1
  1609. # asm 2: paddd <z12=%xmm13,<y13=%xmm0
  1610. paddd %xmm13,%xmm0
  1611. # qhasm: r13 = y13
  1612. # asm 1: movdqa <y13=int6464#1,>r13=int6464#13
  1613. # asm 2: movdqa <y13=%xmm0,>r13=%xmm12
  1614. movdqa %xmm0,%xmm12
  1615. # qhasm: uint32323232 y13 <<= 9
  1616. # asm 1: pslld $9,<y13=int6464#1
  1617. # asm 2: pslld $9,<y13=%xmm0
  1618. pslld $9,%xmm0
  1619. # qhasm: z13 ^= y13
  1620. # asm 1: pxor <y13=int6464#1,<z13=int6464#10
  1621. # asm 2: pxor <y13=%xmm0,<z13=%xmm9
  1622. pxor %xmm0,%xmm9
  1623. # qhasm: uint32323232 r13 >>= 23
  1624. # asm 1: psrld $23,<r13=int6464#13
  1625. # asm 2: psrld $23,<r13=%xmm12
  1626. psrld $23,%xmm12
  1627. # qhasm: z13 ^= r13
  1628. # asm 1: pxor <r13=int6464#13,<z13=int6464#10
  1629. # asm 2: pxor <r13=%xmm12,<z13=%xmm9
  1630. pxor %xmm12,%xmm9
  1631. # qhasm: y9 = z11
  1632. # asm 1: movdqa <z11=int6464#7,>y9=int6464#1
  1633. # asm 2: movdqa <z11=%xmm6,>y9=%xmm0
  1634. movdqa %xmm6,%xmm0
  1635. # qhasm: uint32323232 y9 += z8
  1636. # asm 1: paddd <z8=int6464#16,<y9=int6464#1
  1637. # asm 2: paddd <z8=%xmm15,<y9=%xmm0
  1638. paddd %xmm15,%xmm0
  1639. # qhasm: r9 = y9
  1640. # asm 1: movdqa <y9=int6464#1,>r9=int6464#13
  1641. # asm 2: movdqa <y9=%xmm0,>r9=%xmm12
  1642. movdqa %xmm0,%xmm12
  1643. # qhasm: uint32323232 y9 <<= 13
  1644. # asm 1: pslld $13,<y9=int6464#1
  1645. # asm 2: pslld $13,<y9=%xmm0
  1646. pslld $13,%xmm0
  1647. # qhasm: z9 ^= y9
  1648. # asm 1: pxor <y9=int6464#1,<z9=int6464#12
  1649. # asm 2: pxor <y9=%xmm0,<z9=%xmm11
  1650. pxor %xmm0,%xmm11
  1651. # qhasm: uint32323232 r9 >>= 19
  1652. # asm 1: psrld $19,<r9=int6464#13
  1653. # asm 2: psrld $19,<r9=%xmm12
  1654. psrld $19,%xmm12
  1655. # qhasm: z9 ^= r9
  1656. # asm 1: pxor <r9=int6464#13,<z9=int6464#12
  1657. # asm 2: pxor <r9=%xmm12,<z9=%xmm11
  1658. pxor %xmm12,%xmm11
  1659. # qhasm: y14 = z12
  1660. # asm 1: movdqa <z12=int6464#14,>y14=int6464#1
  1661. # asm 2: movdqa <z12=%xmm13,>y14=%xmm0
  1662. movdqa %xmm13,%xmm0
  1663. # qhasm: uint32323232 y14 += z13
  1664. # asm 1: paddd <z13=int6464#10,<y14=int6464#1
  1665. # asm 2: paddd <z13=%xmm9,<y14=%xmm0
  1666. paddd %xmm9,%xmm0
  1667. # qhasm: r14 = y14
  1668. # asm 1: movdqa <y14=int6464#1,>r14=int6464#13
  1669. # asm 2: movdqa <y14=%xmm0,>r14=%xmm12
  1670. movdqa %xmm0,%xmm12
  1671. # qhasm: uint32323232 y14 <<= 13
  1672. # asm 1: pslld $13,<y14=int6464#1
  1673. # asm 2: pslld $13,<y14=%xmm0
  1674. pslld $13,%xmm0
  1675. # qhasm: z14 ^= y14
  1676. # asm 1: pxor <y14=int6464#1,<z14=int6464#4
  1677. # asm 2: pxor <y14=%xmm0,<z14=%xmm3
  1678. pxor %xmm0,%xmm3
  1679. # qhasm: uint32323232 r14 >>= 19
  1680. # asm 1: psrld $19,<r14=int6464#13
  1681. # asm 2: psrld $19,<r14=%xmm12
  1682. psrld $19,%xmm12
  1683. # qhasm: z14 ^= r14
  1684. # asm 1: pxor <r14=int6464#13,<z14=int6464#4
  1685. # asm 2: pxor <r14=%xmm12,<z14=%xmm3
  1686. pxor %xmm12,%xmm3
  1687. # qhasm: y10 = z8
  1688. # asm 1: movdqa <z8=int6464#16,>y10=int6464#1
  1689. # asm 2: movdqa <z8=%xmm15,>y10=%xmm0
  1690. movdqa %xmm15,%xmm0
  1691. # qhasm: uint32323232 y10 += z9
  1692. # asm 1: paddd <z9=int6464#12,<y10=int6464#1
  1693. # asm 2: paddd <z9=%xmm11,<y10=%xmm0
  1694. paddd %xmm11,%xmm0
  1695. # qhasm: r10 = y10
  1696. # asm 1: movdqa <y10=int6464#1,>r10=int6464#13
  1697. # asm 2: movdqa <y10=%xmm0,>r10=%xmm12
  1698. movdqa %xmm0,%xmm12
  1699. # qhasm: uint32323232 y10 <<= 18
  1700. # asm 1: pslld $18,<y10=int6464#1
  1701. # asm 2: pslld $18,<y10=%xmm0
  1702. pslld $18,%xmm0
  1703. # qhasm: z10 ^= y10
  1704. # asm 1: pxor <y10=int6464#1,<z10=int6464#2
  1705. # asm 2: pxor <y10=%xmm0,<z10=%xmm1
  1706. pxor %xmm0,%xmm1
  1707. # qhasm: uint32323232 r10 >>= 14
  1708. # asm 1: psrld $14,<r10=int6464#13
  1709. # asm 2: psrld $14,<r10=%xmm12
  1710. psrld $14,%xmm12
  1711. # qhasm: z10 ^= r10
  1712. # asm 1: pxor <r10=int6464#13,<z10=int6464#2
  1713. # asm 2: pxor <r10=%xmm12,<z10=%xmm1
  1714. pxor %xmm12,%xmm1
  1715. # qhasm: y15 = z13
  1716. # asm 1: movdqa <z13=int6464#10,>y15=int6464#1
  1717. # asm 2: movdqa <z13=%xmm9,>y15=%xmm0
  1718. movdqa %xmm9,%xmm0
  1719. # qhasm: uint32323232 y15 += z14
  1720. # asm 1: paddd <z14=int6464#4,<y15=int6464#1
  1721. # asm 2: paddd <z14=%xmm3,<y15=%xmm0
  1722. paddd %xmm3,%xmm0
  1723. # qhasm: r15 = y15
  1724. # asm 1: movdqa <y15=int6464#1,>r15=int6464#13
  1725. # asm 2: movdqa <y15=%xmm0,>r15=%xmm12
  1726. movdqa %xmm0,%xmm12
  1727. # qhasm: uint32323232 y15 <<= 18
  1728. # asm 1: pslld $18,<y15=int6464#1
  1729. # asm 2: pslld $18,<y15=%xmm0
  1730. pslld $18,%xmm0
  1731. # qhasm: z15 ^= y15
  1732. # asm 1: pxor <y15=int6464#1,<z15=int6464#3
  1733. # asm 2: pxor <y15=%xmm0,<z15=%xmm2
  1734. pxor %xmm0,%xmm2
  1735. # qhasm: uint32323232 r15 >>= 14
  1736. # asm 1: psrld $14,<r15=int6464#13
  1737. # asm 2: psrld $14,<r15=%xmm12
  1738. psrld $14,%xmm12
  1739. # qhasm: z15 ^= r15
  1740. # asm 1: pxor <r15=int6464#13,<z15=int6464#3
  1741. # asm 2: pxor <r15=%xmm12,<z15=%xmm2
  1742. pxor %xmm12,%xmm2
  1743. # qhasm: z0 = z0_stack
  1744. # asm 1: movdqa <z0_stack=stack128#21,>z0=int6464#13
  1745. # asm 2: movdqa <z0_stack=320(%rsp),>z0=%xmm12
  1746. movdqa 320(%rsp),%xmm12
  1747. # qhasm: z5 = z5_stack
  1748. # asm 1: movdqa <z5_stack=stack128#22,>z5=int6464#1
  1749. # asm 2: movdqa <z5_stack=336(%rsp),>z5=%xmm0
  1750. movdqa 336(%rsp),%xmm0
  1751. # qhasm: unsigned>? i -= 2
  1752. # asm 1: sub $2,<i=int64#3
  1753. # asm 2: sub $2,<i=%rdx
  1754. sub $2,%rdx
  1755. # comment:fp stack unchanged by jump
  1756. # qhasm: goto mainloop1 if unsigned>
  1757. ja ._mainloop1
  1758. # qhasm: uint32323232 z0 += orig0
  1759. # asm 1: paddd <orig0=stack128#8,<z0=int6464#13
  1760. # asm 2: paddd <orig0=112(%rsp),<z0=%xmm12
  1761. paddd 112(%rsp),%xmm12
  1762. # qhasm: uint32323232 z1 += orig1
  1763. # asm 1: paddd <orig1=stack128#12,<z1=int6464#8
  1764. # asm 2: paddd <orig1=176(%rsp),<z1=%xmm7
  1765. paddd 176(%rsp),%xmm7
  1766. # qhasm: uint32323232 z2 += orig2
  1767. # asm 1: paddd <orig2=stack128#15,<z2=int6464#11
  1768. # asm 2: paddd <orig2=224(%rsp),<z2=%xmm10
  1769. paddd 224(%rsp),%xmm10
  1770. # qhasm: uint32323232 z3 += orig3
  1771. # asm 1: paddd <orig3=stack128#18,<z3=int6464#5
  1772. # asm 2: paddd <orig3=272(%rsp),<z3=%xmm4
  1773. paddd 272(%rsp),%xmm4
  1774. # qhasm: in0 = z0
  1775. # asm 1: movd <z0=int6464#13,>in0=int64#3
  1776. # asm 2: movd <z0=%xmm12,>in0=%rdx
  1777. movd %xmm12,%rdx
  1778. # qhasm: in1 = z1
  1779. # asm 1: movd <z1=int6464#8,>in1=int64#4
  1780. # asm 2: movd <z1=%xmm7,>in1=%rcx
  1781. movd %xmm7,%rcx
  1782. # qhasm: in2 = z2
  1783. # asm 1: movd <z2=int6464#11,>in2=int64#5
  1784. # asm 2: movd <z2=%xmm10,>in2=%r8
  1785. movd %xmm10,%r8
  1786. # qhasm: in3 = z3
  1787. # asm 1: movd <z3=int6464#5,>in3=int64#6
  1788. # asm 2: movd <z3=%xmm4,>in3=%r9
  1789. movd %xmm4,%r9
  1790. # qhasm: z0 <<<= 96
  1791. # asm 1: pshufd $0x39,<z0=int6464#13,<z0=int6464#13
  1792. # asm 2: pshufd $0x39,<z0=%xmm12,<z0=%xmm12
  1793. pshufd $0x39,%xmm12,%xmm12
  1794. # qhasm: z1 <<<= 96
  1795. # asm 1: pshufd $0x39,<z1=int6464#8,<z1=int6464#8
  1796. # asm 2: pshufd $0x39,<z1=%xmm7,<z1=%xmm7
  1797. pshufd $0x39,%xmm7,%xmm7
  1798. # qhasm: z2 <<<= 96
  1799. # asm 1: pshufd $0x39,<z2=int6464#11,<z2=int6464#11
  1800. # asm 2: pshufd $0x39,<z2=%xmm10,<z2=%xmm10
  1801. pshufd $0x39,%xmm10,%xmm10
  1802. # qhasm: z3 <<<= 96
  1803. # asm 1: pshufd $0x39,<z3=int6464#5,<z3=int6464#5
  1804. # asm 2: pshufd $0x39,<z3=%xmm4,<z3=%xmm4
  1805. pshufd $0x39,%xmm4,%xmm4
  1806. # qhasm: (uint32) in0 ^= *(uint32 *) (m + 0)
  1807. # asm 1: xorl 0(<m=int64#2),<in0=int64#3d
  1808. # asm 2: xorl 0(<m=%rsi),<in0=%edx
  1809. xorl 0(%rsi),%edx
  1810. # qhasm: (uint32) in1 ^= *(uint32 *) (m + 4)
  1811. # asm 1: xorl 4(<m=int64#2),<in1=int64#4d
  1812. # asm 2: xorl 4(<m=%rsi),<in1=%ecx
  1813. xorl 4(%rsi),%ecx
  1814. # qhasm: (uint32) in2 ^= *(uint32 *) (m + 8)
  1815. # asm 1: xorl 8(<m=int64#2),<in2=int64#5d
  1816. # asm 2: xorl 8(<m=%rsi),<in2=%r8d
  1817. xorl 8(%rsi),%r8d
  1818. # qhasm: (uint32) in3 ^= *(uint32 *) (m + 12)
  1819. # asm 1: xorl 12(<m=int64#2),<in3=int64#6d
  1820. # asm 2: xorl 12(<m=%rsi),<in3=%r9d
  1821. xorl 12(%rsi),%r9d
  1822. # qhasm: *(uint32 *) (out + 0) = in0
  1823. # asm 1: movl <in0=int64#3d,0(<out=int64#1)
  1824. # asm 2: movl <in0=%edx,0(<out=%rdi)
  1825. movl %edx,0(%rdi)
  1826. # qhasm: *(uint32 *) (out + 4) = in1
  1827. # asm 1: movl <in1=int64#4d,4(<out=int64#1)
  1828. # asm 2: movl <in1=%ecx,4(<out=%rdi)
  1829. movl %ecx,4(%rdi)
  1830. # qhasm: *(uint32 *) (out + 8) = in2
  1831. # asm 1: movl <in2=int64#5d,8(<out=int64#1)
  1832. # asm 2: movl <in2=%r8d,8(<out=%rdi)
  1833. movl %r8d,8(%rdi)
  1834. # qhasm: *(uint32 *) (out + 12) = in3
  1835. # asm 1: movl <in3=int64#6d,12(<out=int64#1)
  1836. # asm 2: movl <in3=%r9d,12(<out=%rdi)
  1837. movl %r9d,12(%rdi)
  1838. # qhasm: in0 = z0
  1839. # asm 1: movd <z0=int6464#13,>in0=int64#3
  1840. # asm 2: movd <z0=%xmm12,>in0=%rdx
  1841. movd %xmm12,%rdx
  1842. # qhasm: in1 = z1
  1843. # asm 1: movd <z1=int6464#8,>in1=int64#4
  1844. # asm 2: movd <z1=%xmm7,>in1=%rcx
  1845. movd %xmm7,%rcx
  1846. # qhasm: in2 = z2
  1847. # asm 1: movd <z2=int6464#11,>in2=int64#5
  1848. # asm 2: movd <z2=%xmm10,>in2=%r8
  1849. movd %xmm10,%r8
  1850. # qhasm: in3 = z3
  1851. # asm 1: movd <z3=int6464#5,>in3=int64#6
  1852. # asm 2: movd <z3=%xmm4,>in3=%r9
  1853. movd %xmm4,%r9
  1854. # qhasm: z0 <<<= 96
  1855. # asm 1: pshufd $0x39,<z0=int6464#13,<z0=int6464#13
  1856. # asm 2: pshufd $0x39,<z0=%xmm12,<z0=%xmm12
  1857. pshufd $0x39,%xmm12,%xmm12
  1858. # qhasm: z1 <<<= 96
  1859. # asm 1: pshufd $0x39,<z1=int6464#8,<z1=int6464#8
  1860. # asm 2: pshufd $0x39,<z1=%xmm7,<z1=%xmm7
  1861. pshufd $0x39,%xmm7,%xmm7
  1862. # qhasm: z2 <<<= 96
  1863. # asm 1: pshufd $0x39,<z2=int6464#11,<z2=int6464#11
  1864. # asm 2: pshufd $0x39,<z2=%xmm10,<z2=%xmm10
  1865. pshufd $0x39,%xmm10,%xmm10
  1866. # qhasm: z3 <<<= 96
  1867. # asm 1: pshufd $0x39,<z3=int6464#5,<z3=int6464#5
  1868. # asm 2: pshufd $0x39,<z3=%xmm4,<z3=%xmm4
  1869. pshufd $0x39,%xmm4,%xmm4
  1870. # qhasm: (uint32) in0 ^= *(uint32 *) (m + 64)
  1871. # asm 1: xorl 64(<m=int64#2),<in0=int64#3d
  1872. # asm 2: xorl 64(<m=%rsi),<in0=%edx
  1873. xorl 64(%rsi),%edx
  1874. # qhasm: (uint32) in1 ^= *(uint32 *) (m + 68)
  1875. # asm 1: xorl 68(<m=int64#2),<in1=int64#4d
  1876. # asm 2: xorl 68(<m=%rsi),<in1=%ecx
  1877. xorl 68(%rsi),%ecx
  1878. # qhasm: (uint32) in2 ^= *(uint32 *) (m + 72)
  1879. # asm 1: xorl 72(<m=int64#2),<in2=int64#5d
  1880. # asm 2: xorl 72(<m=%rsi),<in2=%r8d
  1881. xorl 72(%rsi),%r8d
  1882. # qhasm: (uint32) in3 ^= *(uint32 *) (m + 76)
  1883. # asm 1: xorl 76(<m=int64#2),<in3=int64#6d
  1884. # asm 2: xorl 76(<m=%rsi),<in3=%r9d
  1885. xorl 76(%rsi),%r9d
  1886. # qhasm: *(uint32 *) (out + 64) = in0
  1887. # asm 1: movl <in0=int64#3d,64(<out=int64#1)
  1888. # asm 2: movl <in0=%edx,64(<out=%rdi)
  1889. movl %edx,64(%rdi)
  1890. # qhasm: *(uint32 *) (out + 68) = in1
  1891. # asm 1: movl <in1=int64#4d,68(<out=int64#1)
  1892. # asm 2: movl <in1=%ecx,68(<out=%rdi)
  1893. movl %ecx,68(%rdi)
  1894. # qhasm: *(uint32 *) (out + 72) = in2
  1895. # asm 1: movl <in2=int64#5d,72(<out=int64#1)
  1896. # asm 2: movl <in2=%r8d,72(<out=%rdi)
  1897. movl %r8d,72(%rdi)
  1898. # qhasm: *(uint32 *) (out + 76) = in3
  1899. # asm 1: movl <in3=int64#6d,76(<out=int64#1)
  1900. # asm 2: movl <in3=%r9d,76(<out=%rdi)
  1901. movl %r9d,76(%rdi)
  1902. # qhasm: in0 = z0
  1903. # asm 1: movd <z0=int6464#13,>in0=int64#3
  1904. # asm 2: movd <z0=%xmm12,>in0=%rdx
  1905. movd %xmm12,%rdx
  1906. # qhasm: in1 = z1
  1907. # asm 1: movd <z1=int6464#8,>in1=int64#4
  1908. # asm 2: movd <z1=%xmm7,>in1=%rcx
  1909. movd %xmm7,%rcx
  1910. # qhasm: in2 = z2
  1911. # asm 1: movd <z2=int6464#11,>in2=int64#5
  1912. # asm 2: movd <z2=%xmm10,>in2=%r8
  1913. movd %xmm10,%r8
  1914. # qhasm: in3 = z3
  1915. # asm 1: movd <z3=int6464#5,>in3=int64#6
  1916. # asm 2: movd <z3=%xmm4,>in3=%r9
  1917. movd %xmm4,%r9
  1918. # qhasm: z0 <<<= 96
  1919. # asm 1: pshufd $0x39,<z0=int6464#13,<z0=int6464#13
  1920. # asm 2: pshufd $0x39,<z0=%xmm12,<z0=%xmm12
  1921. pshufd $0x39,%xmm12,%xmm12
  1922. # qhasm: z1 <<<= 96
  1923. # asm 1: pshufd $0x39,<z1=int6464#8,<z1=int6464#8
  1924. # asm 2: pshufd $0x39,<z1=%xmm7,<z1=%xmm7
  1925. pshufd $0x39,%xmm7,%xmm7
  1926. # qhasm: z2 <<<= 96
  1927. # asm 1: pshufd $0x39,<z2=int6464#11,<z2=int6464#11
  1928. # asm 2: pshufd $0x39,<z2=%xmm10,<z2=%xmm10
  1929. pshufd $0x39,%xmm10,%xmm10
  1930. # qhasm: z3 <<<= 96
  1931. # asm 1: pshufd $0x39,<z3=int6464#5,<z3=int6464#5
  1932. # asm 2: pshufd $0x39,<z3=%xmm4,<z3=%xmm4
  1933. pshufd $0x39,%xmm4,%xmm4
  1934. # qhasm: (uint32) in0 ^= *(uint32 *) (m + 128)
  1935. # asm 1: xorl 128(<m=int64#2),<in0=int64#3d
  1936. # asm 2: xorl 128(<m=%rsi),<in0=%edx
  1937. xorl 128(%rsi),%edx
  1938. # qhasm: (uint32) in1 ^= *(uint32 *) (m + 132)
  1939. # asm 1: xorl 132(<m=int64#2),<in1=int64#4d
  1940. # asm 2: xorl 132(<m=%rsi),<in1=%ecx
  1941. xorl 132(%rsi),%ecx
  1942. # qhasm: (uint32) in2 ^= *(uint32 *) (m + 136)
  1943. # asm 1: xorl 136(<m=int64#2),<in2=int64#5d
  1944. # asm 2: xorl 136(<m=%rsi),<in2=%r8d
  1945. xorl 136(%rsi),%r8d
  1946. # qhasm: (uint32) in3 ^= *(uint32 *) (m + 140)
  1947. # asm 1: xorl 140(<m=int64#2),<in3=int64#6d
  1948. # asm 2: xorl 140(<m=%rsi),<in3=%r9d
  1949. xorl 140(%rsi),%r9d
  1950. # qhasm: *(uint32 *) (out + 128) = in0
  1951. # asm 1: movl <in0=int64#3d,128(<out=int64#1)
  1952. # asm 2: movl <in0=%edx,128(<out=%rdi)
  1953. movl %edx,128(%rdi)
  1954. # qhasm: *(uint32 *) (out + 132) = in1
  1955. # asm 1: movl <in1=int64#4d,132(<out=int64#1)
  1956. # asm 2: movl <in1=%ecx,132(<out=%rdi)
  1957. movl %ecx,132(%rdi)
  1958. # qhasm: *(uint32 *) (out + 136) = in2
  1959. # asm 1: movl <in2=int64#5d,136(<out=int64#1)
  1960. # asm 2: movl <in2=%r8d,136(<out=%rdi)
  1961. movl %r8d,136(%rdi)
  1962. # qhasm: *(uint32 *) (out + 140) = in3
  1963. # asm 1: movl <in3=int64#6d,140(<out=int64#1)
  1964. # asm 2: movl <in3=%r9d,140(<out=%rdi)
  1965. movl %r9d,140(%rdi)
  1966. # qhasm: in0 = z0
  1967. # asm 1: movd <z0=int6464#13,>in0=int64#3
  1968. # asm 2: movd <z0=%xmm12,>in0=%rdx
  1969. movd %xmm12,%rdx
  1970. # qhasm: in1 = z1
  1971. # asm 1: movd <z1=int6464#8,>in1=int64#4
  1972. # asm 2: movd <z1=%xmm7,>in1=%rcx
  1973. movd %xmm7,%rcx
  1974. # qhasm: in2 = z2
  1975. # asm 1: movd <z2=int6464#11,>in2=int64#5
  1976. # asm 2: movd <z2=%xmm10,>in2=%r8
  1977. movd %xmm10,%r8
  1978. # qhasm: in3 = z3
  1979. # asm 1: movd <z3=int6464#5,>in3=int64#6
  1980. # asm 2: movd <z3=%xmm4,>in3=%r9
  1981. movd %xmm4,%r9
  1982. # qhasm: (uint32) in0 ^= *(uint32 *) (m + 192)
  1983. # asm 1: xorl 192(<m=int64#2),<in0=int64#3d
  1984. # asm 2: xorl 192(<m=%rsi),<in0=%edx
  1985. xorl 192(%rsi),%edx
  1986. # qhasm: (uint32) in1 ^= *(uint32 *) (m + 196)
  1987. # asm 1: xorl 196(<m=int64#2),<in1=int64#4d
  1988. # asm 2: xorl 196(<m=%rsi),<in1=%ecx
  1989. xorl 196(%rsi),%ecx
  1990. # qhasm: (uint32) in2 ^= *(uint32 *) (m + 200)
  1991. # asm 1: xorl 200(<m=int64#2),<in2=int64#5d
  1992. # asm 2: xorl 200(<m=%rsi),<in2=%r8d
  1993. xorl 200(%rsi),%r8d
  1994. # qhasm: (uint32) in3 ^= *(uint32 *) (m + 204)
  1995. # asm 1: xorl 204(<m=int64#2),<in3=int64#6d
  1996. # asm 2: xorl 204(<m=%rsi),<in3=%r9d
  1997. xorl 204(%rsi),%r9d
  1998. # qhasm: *(uint32 *) (out + 192) = in0
  1999. # asm 1: movl <in0=int64#3d,192(<out=int64#1)
  2000. # asm 2: movl <in0=%edx,192(<out=%rdi)
  2001. movl %edx,192(%rdi)
  2002. # qhasm: *(uint32 *) (out + 196) = in1
  2003. # asm 1: movl <in1=int64#4d,196(<out=int64#1)
  2004. # asm 2: movl <in1=%ecx,196(<out=%rdi)
  2005. movl %ecx,196(%rdi)
  2006. # qhasm: *(uint32 *) (out + 200) = in2
  2007. # asm 1: movl <in2=int64#5d,200(<out=int64#1)
  2008. # asm 2: movl <in2=%r8d,200(<out=%rdi)
  2009. movl %r8d,200(%rdi)
  2010. # qhasm: *(uint32 *) (out + 204) = in3
  2011. # asm 1: movl <in3=int64#6d,204(<out=int64#1)
  2012. # asm 2: movl <in3=%r9d,204(<out=%rdi)
  2013. movl %r9d,204(%rdi)
  2014. # qhasm: uint32323232 z4 += orig4
  2015. # asm 1: paddd <orig4=stack128#16,<z4=int6464#15
  2016. # asm 2: paddd <orig4=240(%rsp),<z4=%xmm14
  2017. paddd 240(%rsp),%xmm14
  2018. # qhasm: uint32323232 z5 += orig5
  2019. # asm 1: paddd <orig5=stack128#5,<z5=int6464#1
  2020. # asm 2: paddd <orig5=64(%rsp),<z5=%xmm0
  2021. paddd 64(%rsp),%xmm0
  2022. # qhasm: uint32323232 z6 += orig6
  2023. # asm 1: paddd <orig6=stack128#9,<z6=int6464#6
  2024. # asm 2: paddd <orig6=128(%rsp),<z6=%xmm5
  2025. paddd 128(%rsp),%xmm5
  2026. # qhasm: uint32323232 z7 += orig7
  2027. # asm 1: paddd <orig7=stack128#13,<z7=int6464#9
  2028. # asm 2: paddd <orig7=192(%rsp),<z7=%xmm8
  2029. paddd 192(%rsp),%xmm8
  2030. # qhasm: in4 = z4
  2031. # asm 1: movd <z4=int6464#15,>in4=int64#3
  2032. # asm 2: movd <z4=%xmm14,>in4=%rdx
  2033. movd %xmm14,%rdx
  2034. # qhasm: in5 = z5
  2035. # asm 1: movd <z5=int6464#1,>in5=int64#4
  2036. # asm 2: movd <z5=%xmm0,>in5=%rcx
  2037. movd %xmm0,%rcx
  2038. # qhasm: in6 = z6
  2039. # asm 1: movd <z6=int6464#6,>in6=int64#5
  2040. # asm 2: movd <z6=%xmm5,>in6=%r8
  2041. movd %xmm5,%r8
  2042. # qhasm: in7 = z7
  2043. # asm 1: movd <z7=int6464#9,>in7=int64#6
  2044. # asm 2: movd <z7=%xmm8,>in7=%r9
  2045. movd %xmm8,%r9
  2046. # qhasm: z4 <<<= 96
  2047. # asm 1: pshufd $0x39,<z4=int6464#15,<z4=int6464#15
  2048. # asm 2: pshufd $0x39,<z4=%xmm14,<z4=%xmm14
  2049. pshufd $0x39,%xmm14,%xmm14
  2050. # qhasm: z5 <<<= 96
  2051. # asm 1: pshufd $0x39,<z5=int6464#1,<z5=int6464#1
  2052. # asm 2: pshufd $0x39,<z5=%xmm0,<z5=%xmm0
  2053. pshufd $0x39,%xmm0,%xmm0
  2054. # qhasm: z6 <<<= 96
  2055. # asm 1: pshufd $0x39,<z6=int6464#6,<z6=int6464#6
  2056. # asm 2: pshufd $0x39,<z6=%xmm5,<z6=%xmm5
  2057. pshufd $0x39,%xmm5,%xmm5
  2058. # qhasm: z7 <<<= 96
  2059. # asm 1: pshufd $0x39,<z7=int6464#9,<z7=int6464#9
  2060. # asm 2: pshufd $0x39,<z7=%xmm8,<z7=%xmm8
  2061. pshufd $0x39,%xmm8,%xmm8
  2062. # qhasm: (uint32) in4 ^= *(uint32 *) (m + 16)
  2063. # asm 1: xorl 16(<m=int64#2),<in4=int64#3d
  2064. # asm 2: xorl 16(<m=%rsi),<in4=%edx
  2065. xorl 16(%rsi),%edx
  2066. # qhasm: (uint32) in5 ^= *(uint32 *) (m + 20)
  2067. # asm 1: xorl 20(<m=int64#2),<in5=int64#4d
  2068. # asm 2: xorl 20(<m=%rsi),<in5=%ecx
  2069. xorl 20(%rsi),%ecx
  2070. # qhasm: (uint32) in6 ^= *(uint32 *) (m + 24)
  2071. # asm 1: xorl 24(<m=int64#2),<in6=int64#5d
  2072. # asm 2: xorl 24(<m=%rsi),<in6=%r8d
  2073. xorl 24(%rsi),%r8d
  2074. # qhasm: (uint32) in7 ^= *(uint32 *) (m + 28)
  2075. # asm 1: xorl 28(<m=int64#2),<in7=int64#6d
  2076. # asm 2: xorl 28(<m=%rsi),<in7=%r9d
  2077. xorl 28(%rsi),%r9d
  2078. # qhasm: *(uint32 *) (out + 16) = in4
  2079. # asm 1: movl <in4=int64#3d,16(<out=int64#1)
  2080. # asm 2: movl <in4=%edx,16(<out=%rdi)
  2081. movl %edx,16(%rdi)
  2082. # qhasm: *(uint32 *) (out + 20) = in5
  2083. # asm 1: movl <in5=int64#4d,20(<out=int64#1)
  2084. # asm 2: movl <in5=%ecx,20(<out=%rdi)
  2085. movl %ecx,20(%rdi)
  2086. # qhasm: *(uint32 *) (out + 24) = in6
  2087. # asm 1: movl <in6=int64#5d,24(<out=int64#1)
  2088. # asm 2: movl <in6=%r8d,24(<out=%rdi)
  2089. movl %r8d,24(%rdi)
  2090. # qhasm: *(uint32 *) (out + 28) = in7
  2091. # asm 1: movl <in7=int64#6d,28(<out=int64#1)
  2092. # asm 2: movl <in7=%r9d,28(<out=%rdi)
  2093. movl %r9d,28(%rdi)
  2094. # qhasm: in4 = z4
  2095. # asm 1: movd <z4=int6464#15,>in4=int64#3
  2096. # asm 2: movd <z4=%xmm14,>in4=%rdx
  2097. movd %xmm14,%rdx
  2098. # qhasm: in5 = z5
  2099. # asm 1: movd <z5=int6464#1,>in5=int64#4
  2100. # asm 2: movd <z5=%xmm0,>in5=%rcx
  2101. movd %xmm0,%rcx
  2102. # qhasm: in6 = z6
  2103. # asm 1: movd <z6=int6464#6,>in6=int64#5
  2104. # asm 2: movd <z6=%xmm5,>in6=%r8
  2105. movd %xmm5,%r8
  2106. # qhasm: in7 = z7
  2107. # asm 1: movd <z7=int6464#9,>in7=int64#6
  2108. # asm 2: movd <z7=%xmm8,>in7=%r9
  2109. movd %xmm8,%r9
  2110. # qhasm: z4 <<<= 96
  2111. # asm 1: pshufd $0x39,<z4=int6464#15,<z4=int6464#15
  2112. # asm 2: pshufd $0x39,<z4=%xmm14,<z4=%xmm14
  2113. pshufd $0x39,%xmm14,%xmm14
  2114. # qhasm: z5 <<<= 96
  2115. # asm 1: pshufd $0x39,<z5=int6464#1,<z5=int6464#1
  2116. # asm 2: pshufd $0x39,<z5=%xmm0,<z5=%xmm0
  2117. pshufd $0x39,%xmm0,%xmm0
  2118. # qhasm: z6 <<<= 96
  2119. # asm 1: pshufd $0x39,<z6=int6464#6,<z6=int6464#6
  2120. # asm 2: pshufd $0x39,<z6=%xmm5,<z6=%xmm5
  2121. pshufd $0x39,%xmm5,%xmm5
  2122. # qhasm: z7 <<<= 96
  2123. # asm 1: pshufd $0x39,<z7=int6464#9,<z7=int6464#9
  2124. # asm 2: pshufd $0x39,<z7=%xmm8,<z7=%xmm8
  2125. pshufd $0x39,%xmm8,%xmm8
  2126. # qhasm: (uint32) in4 ^= *(uint32 *) (m + 80)
  2127. # asm 1: xorl 80(<m=int64#2),<in4=int64#3d
  2128. # asm 2: xorl 80(<m=%rsi),<in4=%edx
  2129. xorl 80(%rsi),%edx
  2130. # qhasm: (uint32) in5 ^= *(uint32 *) (m + 84)
  2131. # asm 1: xorl 84(<m=int64#2),<in5=int64#4d
  2132. # asm 2: xorl 84(<m=%rsi),<in5=%ecx
  2133. xorl 84(%rsi),%ecx
  2134. # qhasm: (uint32) in6 ^= *(uint32 *) (m + 88)
  2135. # asm 1: xorl 88(<m=int64#2),<in6=int64#5d
  2136. # asm 2: xorl 88(<m=%rsi),<in6=%r8d
  2137. xorl 88(%rsi),%r8d
  2138. # qhasm: (uint32) in7 ^= *(uint32 *) (m + 92)
  2139. # asm 1: xorl 92(<m=int64#2),<in7=int64#6d
  2140. # asm 2: xorl 92(<m=%rsi),<in7=%r9d
  2141. xorl 92(%rsi),%r9d
  2142. # qhasm: *(uint32 *) (out + 80) = in4
  2143. # asm 1: movl <in4=int64#3d,80(<out=int64#1)
  2144. # asm 2: movl <in4=%edx,80(<out=%rdi)
  2145. movl %edx,80(%rdi)
  2146. # qhasm: *(uint32 *) (out + 84) = in5
  2147. # asm 1: movl <in5=int64#4d,84(<out=int64#1)
  2148. # asm 2: movl <in5=%ecx,84(<out=%rdi)
  2149. movl %ecx,84(%rdi)
  2150. # qhasm: *(uint32 *) (out + 88) = in6
  2151. # asm 1: movl <in6=int64#5d,88(<out=int64#1)
  2152. # asm 2: movl <in6=%r8d,88(<out=%rdi)
  2153. movl %r8d,88(%rdi)
  2154. # qhasm: *(uint32 *) (out + 92) = in7
  2155. # asm 1: movl <in7=int64#6d,92(<out=int64#1)
  2156. # asm 2: movl <in7=%r9d,92(<out=%rdi)
  2157. movl %r9d,92(%rdi)
  2158. # qhasm: in4 = z4
  2159. # asm 1: movd <z4=int6464#15,>in4=int64#3
  2160. # asm 2: movd <z4=%xmm14,>in4=%rdx
  2161. movd %xmm14,%rdx
  2162. # qhasm: in5 = z5
  2163. # asm 1: movd <z5=int6464#1,>in5=int64#4
  2164. # asm 2: movd <z5=%xmm0,>in5=%rcx
  2165. movd %xmm0,%rcx
  2166. # qhasm: in6 = z6
  2167. # asm 1: movd <z6=int6464#6,>in6=int64#5
  2168. # asm 2: movd <z6=%xmm5,>in6=%r8
  2169. movd %xmm5,%r8
  2170. # qhasm: in7 = z7
  2171. # asm 1: movd <z7=int6464#9,>in7=int64#6
  2172. # asm 2: movd <z7=%xmm8,>in7=%r9
  2173. movd %xmm8,%r9
  2174. # qhasm: z4 <<<= 96
  2175. # asm 1: pshufd $0x39,<z4=int6464#15,<z4=int6464#15
  2176. # asm 2: pshufd $0x39,<z4=%xmm14,<z4=%xmm14
  2177. pshufd $0x39,%xmm14,%xmm14
  2178. # qhasm: z5 <<<= 96
  2179. # asm 1: pshufd $0x39,<z5=int6464#1,<z5=int6464#1
  2180. # asm 2: pshufd $0x39,<z5=%xmm0,<z5=%xmm0
  2181. pshufd $0x39,%xmm0,%xmm0
  2182. # qhasm: z6 <<<= 96
  2183. # asm 1: pshufd $0x39,<z6=int6464#6,<z6=int6464#6
  2184. # asm 2: pshufd $0x39,<z6=%xmm5,<z6=%xmm5
  2185. pshufd $0x39,%xmm5,%xmm5
  2186. # qhasm: z7 <<<= 96
  2187. # asm 1: pshufd $0x39,<z7=int6464#9,<z7=int6464#9
  2188. # asm 2: pshufd $0x39,<z7=%xmm8,<z7=%xmm8
  2189. pshufd $0x39,%xmm8,%xmm8
  2190. # qhasm: (uint32) in4 ^= *(uint32 *) (m + 144)
  2191. # asm 1: xorl 144(<m=int64#2),<in4=int64#3d
  2192. # asm 2: xorl 144(<m=%rsi),<in4=%edx
  2193. xorl 144(%rsi),%edx
  2194. # qhasm: (uint32) in5 ^= *(uint32 *) (m + 148)
  2195. # asm 1: xorl 148(<m=int64#2),<in5=int64#4d
  2196. # asm 2: xorl 148(<m=%rsi),<in5=%ecx
  2197. xorl 148(%rsi),%ecx
  2198. # qhasm: (uint32) in6 ^= *(uint32 *) (m + 152)
  2199. # asm 1: xorl 152(<m=int64#2),<in6=int64#5d
  2200. # asm 2: xorl 152(<m=%rsi),<in6=%r8d
  2201. xorl 152(%rsi),%r8d
  2202. # qhasm: (uint32) in7 ^= *(uint32 *) (m + 156)
  2203. # asm 1: xorl 156(<m=int64#2),<in7=int64#6d
  2204. # asm 2: xorl 156(<m=%rsi),<in7=%r9d
  2205. xorl 156(%rsi),%r9d
  2206. # qhasm: *(uint32 *) (out + 144) = in4
  2207. # asm 1: movl <in4=int64#3d,144(<out=int64#1)
  2208. # asm 2: movl <in4=%edx,144(<out=%rdi)
  2209. movl %edx,144(%rdi)
  2210. # qhasm: *(uint32 *) (out + 148) = in5
  2211. # asm 1: movl <in5=int64#4d,148(<out=int64#1)
  2212. # asm 2: movl <in5=%ecx,148(<out=%rdi)
  2213. movl %ecx,148(%rdi)
  2214. # qhasm: *(uint32 *) (out + 152) = in6
  2215. # asm 1: movl <in6=int64#5d,152(<out=int64#1)
  2216. # asm 2: movl <in6=%r8d,152(<out=%rdi)
  2217. movl %r8d,152(%rdi)
  2218. # qhasm: *(uint32 *) (out + 156) = in7
  2219. # asm 1: movl <in7=int64#6d,156(<out=int64#1)
  2220. # asm 2: movl <in7=%r9d,156(<out=%rdi)
  2221. movl %r9d,156(%rdi)
  2222. # qhasm: in4 = z4
  2223. # asm 1: movd <z4=int6464#15,>in4=int64#3
  2224. # asm 2: movd <z4=%xmm14,>in4=%rdx
  2225. movd %xmm14,%rdx
  2226. # qhasm: in5 = z5
  2227. # asm 1: movd <z5=int6464#1,>in5=int64#4
  2228. # asm 2: movd <z5=%xmm0,>in5=%rcx
  2229. movd %xmm0,%rcx
  2230. # qhasm: in6 = z6
  2231. # asm 1: movd <z6=int6464#6,>in6=int64#5
  2232. # asm 2: movd <z6=%xmm5,>in6=%r8
  2233. movd %xmm5,%r8
  2234. # qhasm: in7 = z7
  2235. # asm 1: movd <z7=int6464#9,>in7=int64#6
  2236. # asm 2: movd <z7=%xmm8,>in7=%r9
  2237. movd %xmm8,%r9
  2238. # qhasm: (uint32) in4 ^= *(uint32 *) (m + 208)
  2239. # asm 1: xorl 208(<m=int64#2),<in4=int64#3d
  2240. # asm 2: xorl 208(<m=%rsi),<in4=%edx
  2241. xorl 208(%rsi),%edx
  2242. # qhasm: (uint32) in5 ^= *(uint32 *) (m + 212)
  2243. # asm 1: xorl 212(<m=int64#2),<in5=int64#4d
  2244. # asm 2: xorl 212(<m=%rsi),<in5=%ecx
  2245. xorl 212(%rsi),%ecx
  2246. # qhasm: (uint32) in6 ^= *(uint32 *) (m + 216)
  2247. # asm 1: xorl 216(<m=int64#2),<in6=int64#5d
  2248. # asm 2: xorl 216(<m=%rsi),<in6=%r8d
  2249. xorl 216(%rsi),%r8d
  2250. # qhasm: (uint32) in7 ^= *(uint32 *) (m + 220)
  2251. # asm 1: xorl 220(<m=int64#2),<in7=int64#6d
  2252. # asm 2: xorl 220(<m=%rsi),<in7=%r9d
  2253. xorl 220(%rsi),%r9d
  2254. # qhasm: *(uint32 *) (out + 208) = in4
  2255. # asm 1: movl <in4=int64#3d,208(<out=int64#1)
  2256. # asm 2: movl <in4=%edx,208(<out=%rdi)
  2257. movl %edx,208(%rdi)
  2258. # qhasm: *(uint32 *) (out + 212) = in5
  2259. # asm 1: movl <in5=int64#4d,212(<out=int64#1)
  2260. # asm 2: movl <in5=%ecx,212(<out=%rdi)
  2261. movl %ecx,212(%rdi)
  2262. # qhasm: *(uint32 *) (out + 216) = in6
  2263. # asm 1: movl <in6=int64#5d,216(<out=int64#1)
  2264. # asm 2: movl <in6=%r8d,216(<out=%rdi)
  2265. movl %r8d,216(%rdi)
  2266. # qhasm: *(uint32 *) (out + 220) = in7
  2267. # asm 1: movl <in7=int64#6d,220(<out=int64#1)
  2268. # asm 2: movl <in7=%r9d,220(<out=%rdi)
  2269. movl %r9d,220(%rdi)
  2270. # qhasm: uint32323232 z8 += orig8
  2271. # asm 1: paddd <orig8=stack128#19,<z8=int6464#16
  2272. # asm 2: paddd <orig8=288(%rsp),<z8=%xmm15
  2273. paddd 288(%rsp),%xmm15
  2274. # qhasm: uint32323232 z9 += orig9
  2275. # asm 1: paddd <orig9=stack128#20,<z9=int6464#12
  2276. # asm 2: paddd <orig9=304(%rsp),<z9=%xmm11
  2277. paddd 304(%rsp),%xmm11
  2278. # qhasm: uint32323232 z10 += orig10
  2279. # asm 1: paddd <orig10=stack128#6,<z10=int6464#2
  2280. # asm 2: paddd <orig10=80(%rsp),<z10=%xmm1
  2281. paddd 80(%rsp),%xmm1
  2282. # qhasm: uint32323232 z11 += orig11
  2283. # asm 1: paddd <orig11=stack128#10,<z11=int6464#7
  2284. # asm 2: paddd <orig11=144(%rsp),<z11=%xmm6
  2285. paddd 144(%rsp),%xmm6
  2286. # qhasm: in8 = z8
  2287. # asm 1: movd <z8=int6464#16,>in8=int64#3
  2288. # asm 2: movd <z8=%xmm15,>in8=%rdx
  2289. movd %xmm15,%rdx
  2290. # qhasm: in9 = z9
  2291. # asm 1: movd <z9=int6464#12,>in9=int64#4
  2292. # asm 2: movd <z9=%xmm11,>in9=%rcx
  2293. movd %xmm11,%rcx
  2294. # qhasm: in10 = z10
  2295. # asm 1: movd <z10=int6464#2,>in10=int64#5
  2296. # asm 2: movd <z10=%xmm1,>in10=%r8
  2297. movd %xmm1,%r8
  2298. # qhasm: in11 = z11
  2299. # asm 1: movd <z11=int6464#7,>in11=int64#6
  2300. # asm 2: movd <z11=%xmm6,>in11=%r9
  2301. movd %xmm6,%r9
  2302. # qhasm: z8 <<<= 96
  2303. # asm 1: pshufd $0x39,<z8=int6464#16,<z8=int6464#16
  2304. # asm 2: pshufd $0x39,<z8=%xmm15,<z8=%xmm15
  2305. pshufd $0x39,%xmm15,%xmm15
  2306. # qhasm: z9 <<<= 96
  2307. # asm 1: pshufd $0x39,<z9=int6464#12,<z9=int6464#12
  2308. # asm 2: pshufd $0x39,<z9=%xmm11,<z9=%xmm11
  2309. pshufd $0x39,%xmm11,%xmm11
  2310. # qhasm: z10 <<<= 96
  2311. # asm 1: pshufd $0x39,<z10=int6464#2,<z10=int6464#2
  2312. # asm 2: pshufd $0x39,<z10=%xmm1,<z10=%xmm1
  2313. pshufd $0x39,%xmm1,%xmm1
  2314. # qhasm: z11 <<<= 96
  2315. # asm 1: pshufd $0x39,<z11=int6464#7,<z11=int6464#7
  2316. # asm 2: pshufd $0x39,<z11=%xmm6,<z11=%xmm6
  2317. pshufd $0x39,%xmm6,%xmm6
  2318. # qhasm: (uint32) in8 ^= *(uint32 *) (m + 32)
  2319. # asm 1: xorl 32(<m=int64#2),<in8=int64#3d
  2320. # asm 2: xorl 32(<m=%rsi),<in8=%edx
  2321. xorl 32(%rsi),%edx
  2322. # qhasm: (uint32) in9 ^= *(uint32 *) (m + 36)
  2323. # asm 1: xorl 36(<m=int64#2),<in9=int64#4d
  2324. # asm 2: xorl 36(<m=%rsi),<in9=%ecx
  2325. xorl 36(%rsi),%ecx
  2326. # qhasm: (uint32) in10 ^= *(uint32 *) (m + 40)
  2327. # asm 1: xorl 40(<m=int64#2),<in10=int64#5d
  2328. # asm 2: xorl 40(<m=%rsi),<in10=%r8d
  2329. xorl 40(%rsi),%r8d
  2330. # qhasm: (uint32) in11 ^= *(uint32 *) (m + 44)
  2331. # asm 1: xorl 44(<m=int64#2),<in11=int64#6d
  2332. # asm 2: xorl 44(<m=%rsi),<in11=%r9d
  2333. xorl 44(%rsi),%r9d
  2334. # qhasm: *(uint32 *) (out + 32) = in8
  2335. # asm 1: movl <in8=int64#3d,32(<out=int64#1)
  2336. # asm 2: movl <in8=%edx,32(<out=%rdi)
  2337. movl %edx,32(%rdi)
  2338. # qhasm: *(uint32 *) (out + 36) = in9
  2339. # asm 1: movl <in9=int64#4d,36(<out=int64#1)
  2340. # asm 2: movl <in9=%ecx,36(<out=%rdi)
  2341. movl %ecx,36(%rdi)
  2342. # qhasm: *(uint32 *) (out + 40) = in10
  2343. # asm 1: movl <in10=int64#5d,40(<out=int64#1)
  2344. # asm 2: movl <in10=%r8d,40(<out=%rdi)
  2345. movl %r8d,40(%rdi)
  2346. # qhasm: *(uint32 *) (out + 44) = in11
  2347. # asm 1: movl <in11=int64#6d,44(<out=int64#1)
  2348. # asm 2: movl <in11=%r9d,44(<out=%rdi)
  2349. movl %r9d,44(%rdi)
  2350. # qhasm: in8 = z8
  2351. # asm 1: movd <z8=int6464#16,>in8=int64#3
  2352. # asm 2: movd <z8=%xmm15,>in8=%rdx
  2353. movd %xmm15,%rdx
  2354. # qhasm: in9 = z9
  2355. # asm 1: movd <z9=int6464#12,>in9=int64#4
  2356. # asm 2: movd <z9=%xmm11,>in9=%rcx
  2357. movd %xmm11,%rcx
  2358. # qhasm: in10 = z10
  2359. # asm 1: movd <z10=int6464#2,>in10=int64#5
  2360. # asm 2: movd <z10=%xmm1,>in10=%r8
  2361. movd %xmm1,%r8
  2362. # qhasm: in11 = z11
  2363. # asm 1: movd <z11=int6464#7,>in11=int64#6
  2364. # asm 2: movd <z11=%xmm6,>in11=%r9
  2365. movd %xmm6,%r9
  2366. # qhasm: z8 <<<= 96
  2367. # asm 1: pshufd $0x39,<z8=int6464#16,<z8=int6464#16
  2368. # asm 2: pshufd $0x39,<z8=%xmm15,<z8=%xmm15
  2369. pshufd $0x39,%xmm15,%xmm15
  2370. # qhasm: z9 <<<= 96
  2371. # asm 1: pshufd $0x39,<z9=int6464#12,<z9=int6464#12
  2372. # asm 2: pshufd $0x39,<z9=%xmm11,<z9=%xmm11
  2373. pshufd $0x39,%xmm11,%xmm11
  2374. # qhasm: z10 <<<= 96
  2375. # asm 1: pshufd $0x39,<z10=int6464#2,<z10=int6464#2
  2376. # asm 2: pshufd $0x39,<z10=%xmm1,<z10=%xmm1
  2377. pshufd $0x39,%xmm1,%xmm1
  2378. # qhasm: z11 <<<= 96
  2379. # asm 1: pshufd $0x39,<z11=int6464#7,<z11=int6464#7
  2380. # asm 2: pshufd $0x39,<z11=%xmm6,<z11=%xmm6
  2381. pshufd $0x39,%xmm6,%xmm6
  2382. # qhasm: (uint32) in8 ^= *(uint32 *) (m + 96)
  2383. # asm 1: xorl 96(<m=int64#2),<in8=int64#3d
  2384. # asm 2: xorl 96(<m=%rsi),<in8=%edx
  2385. xorl 96(%rsi),%edx
  2386. # qhasm: (uint32) in9 ^= *(uint32 *) (m + 100)
  2387. # asm 1: xorl 100(<m=int64#2),<in9=int64#4d
  2388. # asm 2: xorl 100(<m=%rsi),<in9=%ecx
  2389. xorl 100(%rsi),%ecx
  2390. # qhasm: (uint32) in10 ^= *(uint32 *) (m + 104)
  2391. # asm 1: xorl 104(<m=int64#2),<in10=int64#5d
  2392. # asm 2: xorl 104(<m=%rsi),<in10=%r8d
  2393. xorl 104(%rsi),%r8d
  2394. # qhasm: (uint32) in11 ^= *(uint32 *) (m + 108)
  2395. # asm 1: xorl 108(<m=int64#2),<in11=int64#6d
  2396. # asm 2: xorl 108(<m=%rsi),<in11=%r9d
  2397. xorl 108(%rsi),%r9d
  2398. # qhasm: *(uint32 *) (out + 96) = in8
  2399. # asm 1: movl <in8=int64#3d,96(<out=int64#1)
  2400. # asm 2: movl <in8=%edx,96(<out=%rdi)
  2401. movl %edx,96(%rdi)
  2402. # qhasm: *(uint32 *) (out + 100) = in9
  2403. # asm 1: movl <in9=int64#4d,100(<out=int64#1)
  2404. # asm 2: movl <in9=%ecx,100(<out=%rdi)
  2405. movl %ecx,100(%rdi)
  2406. # qhasm: *(uint32 *) (out + 104) = in10
  2407. # asm 1: movl <in10=int64#5d,104(<out=int64#1)
  2408. # asm 2: movl <in10=%r8d,104(<out=%rdi)
  2409. movl %r8d,104(%rdi)
  2410. # qhasm: *(uint32 *) (out + 108) = in11
  2411. # asm 1: movl <in11=int64#6d,108(<out=int64#1)
  2412. # asm 2: movl <in11=%r9d,108(<out=%rdi)
  2413. movl %r9d,108(%rdi)
  2414. # qhasm: in8 = z8
  2415. # asm 1: movd <z8=int6464#16,>in8=int64#3
  2416. # asm 2: movd <z8=%xmm15,>in8=%rdx
  2417. movd %xmm15,%rdx
  2418. # qhasm: in9 = z9
  2419. # asm 1: movd <z9=int6464#12,>in9=int64#4
  2420. # asm 2: movd <z9=%xmm11,>in9=%rcx
  2421. movd %xmm11,%rcx
  2422. # qhasm: in10 = z10
  2423. # asm 1: movd <z10=int6464#2,>in10=int64#5
  2424. # asm 2: movd <z10=%xmm1,>in10=%r8
  2425. movd %xmm1,%r8
  2426. # qhasm: in11 = z11
  2427. # asm 1: movd <z11=int6464#7,>in11=int64#6
  2428. # asm 2: movd <z11=%xmm6,>in11=%r9
  2429. movd %xmm6,%r9
  2430. # qhasm: z8 <<<= 96
  2431. # asm 1: pshufd $0x39,<z8=int6464#16,<z8=int6464#16
  2432. # asm 2: pshufd $0x39,<z8=%xmm15,<z8=%xmm15
  2433. pshufd $0x39,%xmm15,%xmm15
  2434. # qhasm: z9 <<<= 96
  2435. # asm 1: pshufd $0x39,<z9=int6464#12,<z9=int6464#12
  2436. # asm 2: pshufd $0x39,<z9=%xmm11,<z9=%xmm11
  2437. pshufd $0x39,%xmm11,%xmm11
  2438. # qhasm: z10 <<<= 96
  2439. # asm 1: pshufd $0x39,<z10=int6464#2,<z10=int6464#2
  2440. # asm 2: pshufd $0x39,<z10=%xmm1,<z10=%xmm1
  2441. pshufd $0x39,%xmm1,%xmm1
  2442. # qhasm: z11 <<<= 96
  2443. # asm 1: pshufd $0x39,<z11=int6464#7,<z11=int6464#7
  2444. # asm 2: pshufd $0x39,<z11=%xmm6,<z11=%xmm6
  2445. pshufd $0x39,%xmm6,%xmm6
  2446. # qhasm: (uint32) in8 ^= *(uint32 *) (m + 160)
  2447. # asm 1: xorl 160(<m=int64#2),<in8=int64#3d
  2448. # asm 2: xorl 160(<m=%rsi),<in8=%edx
  2449. xorl 160(%rsi),%edx
  2450. # qhasm: (uint32) in9 ^= *(uint32 *) (m + 164)
  2451. # asm 1: xorl 164(<m=int64#2),<in9=int64#4d
  2452. # asm 2: xorl 164(<m=%rsi),<in9=%ecx
  2453. xorl 164(%rsi),%ecx
  2454. # qhasm: (uint32) in10 ^= *(uint32 *) (m + 168)
  2455. # asm 1: xorl 168(<m=int64#2),<in10=int64#5d
  2456. # asm 2: xorl 168(<m=%rsi),<in10=%r8d
  2457. xorl 168(%rsi),%r8d
  2458. # qhasm: (uint32) in11 ^= *(uint32 *) (m + 172)
  2459. # asm 1: xorl 172(<m=int64#2),<in11=int64#6d
  2460. # asm 2: xorl 172(<m=%rsi),<in11=%r9d
  2461. xorl 172(%rsi),%r9d
  2462. # qhasm: *(uint32 *) (out + 160) = in8
  2463. # asm 1: movl <in8=int64#3d,160(<out=int64#1)
  2464. # asm 2: movl <in8=%edx,160(<out=%rdi)
  2465. movl %edx,160(%rdi)
  2466. # qhasm: *(uint32 *) (out + 164) = in9
  2467. # asm 1: movl <in9=int64#4d,164(<out=int64#1)
  2468. # asm 2: movl <in9=%ecx,164(<out=%rdi)
  2469. movl %ecx,164(%rdi)
  2470. # qhasm: *(uint32 *) (out + 168) = in10
  2471. # asm 1: movl <in10=int64#5d,168(<out=int64#1)
  2472. # asm 2: movl <in10=%r8d,168(<out=%rdi)
  2473. movl %r8d,168(%rdi)
  2474. # qhasm: *(uint32 *) (out + 172) = in11
  2475. # asm 1: movl <in11=int64#6d,172(<out=int64#1)
  2476. # asm 2: movl <in11=%r9d,172(<out=%rdi)
  2477. movl %r9d,172(%rdi)
  2478. # qhasm: in8 = z8
  2479. # asm 1: movd <z8=int6464#16,>in8=int64#3
  2480. # asm 2: movd <z8=%xmm15,>in8=%rdx
  2481. movd %xmm15,%rdx
  2482. # qhasm: in9 = z9
  2483. # asm 1: movd <z9=int6464#12,>in9=int64#4
  2484. # asm 2: movd <z9=%xmm11,>in9=%rcx
  2485. movd %xmm11,%rcx
  2486. # qhasm: in10 = z10
  2487. # asm 1: movd <z10=int6464#2,>in10=int64#5
  2488. # asm 2: movd <z10=%xmm1,>in10=%r8
  2489. movd %xmm1,%r8
  2490. # qhasm: in11 = z11
  2491. # asm 1: movd <z11=int6464#7,>in11=int64#6
  2492. # asm 2: movd <z11=%xmm6,>in11=%r9
  2493. movd %xmm6,%r9
  2494. # qhasm: (uint32) in8 ^= *(uint32 *) (m + 224)
  2495. # asm 1: xorl 224(<m=int64#2),<in8=int64#3d
  2496. # asm 2: xorl 224(<m=%rsi),<in8=%edx
  2497. xorl 224(%rsi),%edx
  2498. # qhasm: (uint32) in9 ^= *(uint32 *) (m + 228)
  2499. # asm 1: xorl 228(<m=int64#2),<in9=int64#4d
  2500. # asm 2: xorl 228(<m=%rsi),<in9=%ecx
  2501. xorl 228(%rsi),%ecx
  2502. # qhasm: (uint32) in10 ^= *(uint32 *) (m + 232)
  2503. # asm 1: xorl 232(<m=int64#2),<in10=int64#5d
  2504. # asm 2: xorl 232(<m=%rsi),<in10=%r8d
  2505. xorl 232(%rsi),%r8d
  2506. # qhasm: (uint32) in11 ^= *(uint32 *) (m + 236)
  2507. # asm 1: xorl 236(<m=int64#2),<in11=int64#6d
  2508. # asm 2: xorl 236(<m=%rsi),<in11=%r9d
  2509. xorl 236(%rsi),%r9d
  2510. # qhasm: *(uint32 *) (out + 224) = in8
  2511. # asm 1: movl <in8=int64#3d,224(<out=int64#1)
  2512. # asm 2: movl <in8=%edx,224(<out=%rdi)
  2513. movl %edx,224(%rdi)
  2514. # qhasm: *(uint32 *) (out + 228) = in9
  2515. # asm 1: movl <in9=int64#4d,228(<out=int64#1)
  2516. # asm 2: movl <in9=%ecx,228(<out=%rdi)
  2517. movl %ecx,228(%rdi)
  2518. # qhasm: *(uint32 *) (out + 232) = in10
  2519. # asm 1: movl <in10=int64#5d,232(<out=int64#1)
  2520. # asm 2: movl <in10=%r8d,232(<out=%rdi)
  2521. movl %r8d,232(%rdi)
  2522. # qhasm: *(uint32 *) (out + 236) = in11
  2523. # asm 1: movl <in11=int64#6d,236(<out=int64#1)
  2524. # asm 2: movl <in11=%r9d,236(<out=%rdi)
  2525. movl %r9d,236(%rdi)
  2526. # qhasm: uint32323232 z12 += orig12
  2527. # asm 1: paddd <orig12=stack128#11,<z12=int6464#14
  2528. # asm 2: paddd <orig12=160(%rsp),<z12=%xmm13
  2529. paddd 160(%rsp),%xmm13
  2530. # qhasm: uint32323232 z13 += orig13
  2531. # asm 1: paddd <orig13=stack128#14,<z13=int6464#10
  2532. # asm 2: paddd <orig13=208(%rsp),<z13=%xmm9
  2533. paddd 208(%rsp),%xmm9
  2534. # qhasm: uint32323232 z14 += orig14
  2535. # asm 1: paddd <orig14=stack128#17,<z14=int6464#4
  2536. # asm 2: paddd <orig14=256(%rsp),<z14=%xmm3
  2537. paddd 256(%rsp),%xmm3
  2538. # qhasm: uint32323232 z15 += orig15
  2539. # asm 1: paddd <orig15=stack128#7,<z15=int6464#3
  2540. # asm 2: paddd <orig15=96(%rsp),<z15=%xmm2
  2541. paddd 96(%rsp),%xmm2
  2542. # qhasm: in12 = z12
  2543. # asm 1: movd <z12=int6464#14,>in12=int64#3
  2544. # asm 2: movd <z12=%xmm13,>in12=%rdx
  2545. movd %xmm13,%rdx
  2546. # qhasm: in13 = z13
  2547. # asm 1: movd <z13=int6464#10,>in13=int64#4
  2548. # asm 2: movd <z13=%xmm9,>in13=%rcx
  2549. movd %xmm9,%rcx
  2550. # qhasm: in14 = z14
  2551. # asm 1: movd <z14=int6464#4,>in14=int64#5
  2552. # asm 2: movd <z14=%xmm3,>in14=%r8
  2553. movd %xmm3,%r8
  2554. # qhasm: in15 = z15
  2555. # asm 1: movd <z15=int6464#3,>in15=int64#6
  2556. # asm 2: movd <z15=%xmm2,>in15=%r9
  2557. movd %xmm2,%r9
  2558. # qhasm: z12 <<<= 96
  2559. # asm 1: pshufd $0x39,<z12=int6464#14,<z12=int6464#14
  2560. # asm 2: pshufd $0x39,<z12=%xmm13,<z12=%xmm13
  2561. pshufd $0x39,%xmm13,%xmm13
  2562. # qhasm: z13 <<<= 96
  2563. # asm 1: pshufd $0x39,<z13=int6464#10,<z13=int6464#10
  2564. # asm 2: pshufd $0x39,<z13=%xmm9,<z13=%xmm9
  2565. pshufd $0x39,%xmm9,%xmm9
  2566. # qhasm: z14 <<<= 96
  2567. # asm 1: pshufd $0x39,<z14=int6464#4,<z14=int6464#4
  2568. # asm 2: pshufd $0x39,<z14=%xmm3,<z14=%xmm3
  2569. pshufd $0x39,%xmm3,%xmm3
  2570. # qhasm: z15 <<<= 96
  2571. # asm 1: pshufd $0x39,<z15=int6464#3,<z15=int6464#3
  2572. # asm 2: pshufd $0x39,<z15=%xmm2,<z15=%xmm2
  2573. pshufd $0x39,%xmm2,%xmm2
  2574. # qhasm: (uint32) in12 ^= *(uint32 *) (m + 48)
  2575. # asm 1: xorl 48(<m=int64#2),<in12=int64#3d
  2576. # asm 2: xorl 48(<m=%rsi),<in12=%edx
  2577. xorl 48(%rsi),%edx
  2578. # qhasm: (uint32) in13 ^= *(uint32 *) (m + 52)
  2579. # asm 1: xorl 52(<m=int64#2),<in13=int64#4d
  2580. # asm 2: xorl 52(<m=%rsi),<in13=%ecx
  2581. xorl 52(%rsi),%ecx
  2582. # qhasm: (uint32) in14 ^= *(uint32 *) (m + 56)
  2583. # asm 1: xorl 56(<m=int64#2),<in14=int64#5d
  2584. # asm 2: xorl 56(<m=%rsi),<in14=%r8d
  2585. xorl 56(%rsi),%r8d
  2586. # qhasm: (uint32) in15 ^= *(uint32 *) (m + 60)
  2587. # asm 1: xorl 60(<m=int64#2),<in15=int64#6d
  2588. # asm 2: xorl 60(<m=%rsi),<in15=%r9d
  2589. xorl 60(%rsi),%r9d
  2590. # qhasm: *(uint32 *) (out + 48) = in12
  2591. # asm 1: movl <in12=int64#3d,48(<out=int64#1)
  2592. # asm 2: movl <in12=%edx,48(<out=%rdi)
  2593. movl %edx,48(%rdi)
  2594. # qhasm: *(uint32 *) (out + 52) = in13
  2595. # asm 1: movl <in13=int64#4d,52(<out=int64#1)
  2596. # asm 2: movl <in13=%ecx,52(<out=%rdi)
  2597. movl %ecx,52(%rdi)
  2598. # qhasm: *(uint32 *) (out + 56) = in14
  2599. # asm 1: movl <in14=int64#5d,56(<out=int64#1)
  2600. # asm 2: movl <in14=%r8d,56(<out=%rdi)
  2601. movl %r8d,56(%rdi)
  2602. # qhasm: *(uint32 *) (out + 60) = in15
  2603. # asm 1: movl <in15=int64#6d,60(<out=int64#1)
  2604. # asm 2: movl <in15=%r9d,60(<out=%rdi)
  2605. movl %r9d,60(%rdi)
  2606. # qhasm: in12 = z12
  2607. # asm 1: movd <z12=int6464#14,>in12=int64#3
  2608. # asm 2: movd <z12=%xmm13,>in12=%rdx
  2609. movd %xmm13,%rdx
  2610. # qhasm: in13 = z13
  2611. # asm 1: movd <z13=int6464#10,>in13=int64#4
  2612. # asm 2: movd <z13=%xmm9,>in13=%rcx
  2613. movd %xmm9,%rcx
  2614. # qhasm: in14 = z14
  2615. # asm 1: movd <z14=int6464#4,>in14=int64#5
  2616. # asm 2: movd <z14=%xmm3,>in14=%r8
  2617. movd %xmm3,%r8
  2618. # qhasm: in15 = z15
  2619. # asm 1: movd <z15=int6464#3,>in15=int64#6
  2620. # asm 2: movd <z15=%xmm2,>in15=%r9
  2621. movd %xmm2,%r9
  2622. # qhasm: z12 <<<= 96
  2623. # asm 1: pshufd $0x39,<z12=int6464#14,<z12=int6464#14
  2624. # asm 2: pshufd $0x39,<z12=%xmm13,<z12=%xmm13
  2625. pshufd $0x39,%xmm13,%xmm13
  2626. # qhasm: z13 <<<= 96
  2627. # asm 1: pshufd $0x39,<z13=int6464#10,<z13=int6464#10
  2628. # asm 2: pshufd $0x39,<z13=%xmm9,<z13=%xmm9
  2629. pshufd $0x39,%xmm9,%xmm9
  2630. # qhasm: z14 <<<= 96
  2631. # asm 1: pshufd $0x39,<z14=int6464#4,<z14=int6464#4
  2632. # asm 2: pshufd $0x39,<z14=%xmm3,<z14=%xmm3
  2633. pshufd $0x39,%xmm3,%xmm3
  2634. # qhasm: z15 <<<= 96
  2635. # asm 1: pshufd $0x39,<z15=int6464#3,<z15=int6464#3
  2636. # asm 2: pshufd $0x39,<z15=%xmm2,<z15=%xmm2
  2637. pshufd $0x39,%xmm2,%xmm2
  2638. # qhasm: (uint32) in12 ^= *(uint32 *) (m + 112)
  2639. # asm 1: xorl 112(<m=int64#2),<in12=int64#3d
  2640. # asm 2: xorl 112(<m=%rsi),<in12=%edx
  2641. xorl 112(%rsi),%edx
  2642. # qhasm: (uint32) in13 ^= *(uint32 *) (m + 116)
  2643. # asm 1: xorl 116(<m=int64#2),<in13=int64#4d
  2644. # asm 2: xorl 116(<m=%rsi),<in13=%ecx
  2645. xorl 116(%rsi),%ecx
  2646. # qhasm: (uint32) in14 ^= *(uint32 *) (m + 120)
  2647. # asm 1: xorl 120(<m=int64#2),<in14=int64#5d
  2648. # asm 2: xorl 120(<m=%rsi),<in14=%r8d
  2649. xorl 120(%rsi),%r8d
  2650. # qhasm: (uint32) in15 ^= *(uint32 *) (m + 124)
  2651. # asm 1: xorl 124(<m=int64#2),<in15=int64#6d
  2652. # asm 2: xorl 124(<m=%rsi),<in15=%r9d
  2653. xorl 124(%rsi),%r9d
  2654. # qhasm: *(uint32 *) (out + 112) = in12
  2655. # asm 1: movl <in12=int64#3d,112(<out=int64#1)
  2656. # asm 2: movl <in12=%edx,112(<out=%rdi)
  2657. movl %edx,112(%rdi)
  2658. # qhasm: *(uint32 *) (out + 116) = in13
  2659. # asm 1: movl <in13=int64#4d,116(<out=int64#1)
  2660. # asm 2: movl <in13=%ecx,116(<out=%rdi)
  2661. movl %ecx,116(%rdi)
  2662. # qhasm: *(uint32 *) (out + 120) = in14
  2663. # asm 1: movl <in14=int64#5d,120(<out=int64#1)
  2664. # asm 2: movl <in14=%r8d,120(<out=%rdi)
  2665. movl %r8d,120(%rdi)
  2666. # qhasm: *(uint32 *) (out + 124) = in15
  2667. # asm 1: movl <in15=int64#6d,124(<out=int64#1)
  2668. # asm 2: movl <in15=%r9d,124(<out=%rdi)
  2669. movl %r9d,124(%rdi)
  2670. # qhasm: in12 = z12
  2671. # asm 1: movd <z12=int6464#14,>in12=int64#3
  2672. # asm 2: movd <z12=%xmm13,>in12=%rdx
  2673. movd %xmm13,%rdx
  2674. # qhasm: in13 = z13
  2675. # asm 1: movd <z13=int6464#10,>in13=int64#4
  2676. # asm 2: movd <z13=%xmm9,>in13=%rcx
  2677. movd %xmm9,%rcx
  2678. # qhasm: in14 = z14
  2679. # asm 1: movd <z14=int6464#4,>in14=int64#5
  2680. # asm 2: movd <z14=%xmm3,>in14=%r8
  2681. movd %xmm3,%r8
  2682. # qhasm: in15 = z15
  2683. # asm 1: movd <z15=int6464#3,>in15=int64#6
  2684. # asm 2: movd <z15=%xmm2,>in15=%r9
  2685. movd %xmm2,%r9
  2686. # qhasm: z12 <<<= 96
  2687. # asm 1: pshufd $0x39,<z12=int6464#14,<z12=int6464#14
  2688. # asm 2: pshufd $0x39,<z12=%xmm13,<z12=%xmm13
  2689. pshufd $0x39,%xmm13,%xmm13
  2690. # qhasm: z13 <<<= 96
  2691. # asm 1: pshufd $0x39,<z13=int6464#10,<z13=int6464#10
  2692. # asm 2: pshufd $0x39,<z13=%xmm9,<z13=%xmm9
  2693. pshufd $0x39,%xmm9,%xmm9
  2694. # qhasm: z14 <<<= 96
  2695. # asm 1: pshufd $0x39,<z14=int6464#4,<z14=int6464#4
  2696. # asm 2: pshufd $0x39,<z14=%xmm3,<z14=%xmm3
  2697. pshufd $0x39,%xmm3,%xmm3
  2698. # qhasm: z15 <<<= 96
  2699. # asm 1: pshufd $0x39,<z15=int6464#3,<z15=int6464#3
  2700. # asm 2: pshufd $0x39,<z15=%xmm2,<z15=%xmm2
  2701. pshufd $0x39,%xmm2,%xmm2
  2702. # qhasm: (uint32) in12 ^= *(uint32 *) (m + 176)
  2703. # asm 1: xorl 176(<m=int64#2),<in12=int64#3d
  2704. # asm 2: xorl 176(<m=%rsi),<in12=%edx
  2705. xorl 176(%rsi),%edx
  2706. # qhasm: (uint32) in13 ^= *(uint32 *) (m + 180)
  2707. # asm 1: xorl 180(<m=int64#2),<in13=int64#4d
  2708. # asm 2: xorl 180(<m=%rsi),<in13=%ecx
  2709. xorl 180(%rsi),%ecx
  2710. # qhasm: (uint32) in14 ^= *(uint32 *) (m + 184)
  2711. # asm 1: xorl 184(<m=int64#2),<in14=int64#5d
  2712. # asm 2: xorl 184(<m=%rsi),<in14=%r8d
  2713. xorl 184(%rsi),%r8d
  2714. # qhasm: (uint32) in15 ^= *(uint32 *) (m + 188)
  2715. # asm 1: xorl 188(<m=int64#2),<in15=int64#6d
  2716. # asm 2: xorl 188(<m=%rsi),<in15=%r9d
  2717. xorl 188(%rsi),%r9d
  2718. # qhasm: *(uint32 *) (out + 176) = in12
  2719. # asm 1: movl <in12=int64#3d,176(<out=int64#1)
  2720. # asm 2: movl <in12=%edx,176(<out=%rdi)
  2721. movl %edx,176(%rdi)
  2722. # qhasm: *(uint32 *) (out + 180) = in13
  2723. # asm 1: movl <in13=int64#4d,180(<out=int64#1)
  2724. # asm 2: movl <in13=%ecx,180(<out=%rdi)
  2725. movl %ecx,180(%rdi)
  2726. # qhasm: *(uint32 *) (out + 184) = in14
  2727. # asm 1: movl <in14=int64#5d,184(<out=int64#1)
  2728. # asm 2: movl <in14=%r8d,184(<out=%rdi)
  2729. movl %r8d,184(%rdi)
  2730. # qhasm: *(uint32 *) (out + 188) = in15
  2731. # asm 1: movl <in15=int64#6d,188(<out=int64#1)
  2732. # asm 2: movl <in15=%r9d,188(<out=%rdi)
  2733. movl %r9d,188(%rdi)
  2734. # qhasm: in12 = z12
  2735. # asm 1: movd <z12=int6464#14,>in12=int64#3
  2736. # asm 2: movd <z12=%xmm13,>in12=%rdx
  2737. movd %xmm13,%rdx
  2738. # qhasm: in13 = z13
  2739. # asm 1: movd <z13=int6464#10,>in13=int64#4
  2740. # asm 2: movd <z13=%xmm9,>in13=%rcx
  2741. movd %xmm9,%rcx
  2742. # qhasm: in14 = z14
  2743. # asm 1: movd <z14=int6464#4,>in14=int64#5
  2744. # asm 2: movd <z14=%xmm3,>in14=%r8
  2745. movd %xmm3,%r8
  2746. # qhasm: in15 = z15
  2747. # asm 1: movd <z15=int6464#3,>in15=int64#6
  2748. # asm 2: movd <z15=%xmm2,>in15=%r9
  2749. movd %xmm2,%r9
  2750. # qhasm: (uint32) in12 ^= *(uint32 *) (m + 240)
  2751. # asm 1: xorl 240(<m=int64#2),<in12=int64#3d
  2752. # asm 2: xorl 240(<m=%rsi),<in12=%edx
  2753. xorl 240(%rsi),%edx
  2754. # qhasm: (uint32) in13 ^= *(uint32 *) (m + 244)
  2755. # asm 1: xorl 244(<m=int64#2),<in13=int64#4d
  2756. # asm 2: xorl 244(<m=%rsi),<in13=%ecx
  2757. xorl 244(%rsi),%ecx
  2758. # qhasm: (uint32) in14 ^= *(uint32 *) (m + 248)
  2759. # asm 1: xorl 248(<m=int64#2),<in14=int64#5d
  2760. # asm 2: xorl 248(<m=%rsi),<in14=%r8d
  2761. xorl 248(%rsi),%r8d
  2762. # qhasm: (uint32) in15 ^= *(uint32 *) (m + 252)
  2763. # asm 1: xorl 252(<m=int64#2),<in15=int64#6d
  2764. # asm 2: xorl 252(<m=%rsi),<in15=%r9d
  2765. xorl 252(%rsi),%r9d
  2766. # qhasm: *(uint32 *) (out + 240) = in12
  2767. # asm 1: movl <in12=int64#3d,240(<out=int64#1)
  2768. # asm 2: movl <in12=%edx,240(<out=%rdi)
  2769. movl %edx,240(%rdi)
  2770. # qhasm: *(uint32 *) (out + 244) = in13
  2771. # asm 1: movl <in13=int64#4d,244(<out=int64#1)
  2772. # asm 2: movl <in13=%ecx,244(<out=%rdi)
  2773. movl %ecx,244(%rdi)
  2774. # qhasm: *(uint32 *) (out + 248) = in14
  2775. # asm 1: movl <in14=int64#5d,248(<out=int64#1)
  2776. # asm 2: movl <in14=%r8d,248(<out=%rdi)
  2777. movl %r8d,248(%rdi)
  2778. # qhasm: *(uint32 *) (out + 252) = in15
  2779. # asm 1: movl <in15=int64#6d,252(<out=int64#1)
  2780. # asm 2: movl <in15=%r9d,252(<out=%rdi)
  2781. movl %r9d,252(%rdi)
  2782. # qhasm: bytes = bytes_backup
  2783. # asm 1: movq <bytes_backup=stack64#8,>bytes=int64#6
  2784. # asm 2: movq <bytes_backup=408(%rsp),>bytes=%r9
  2785. movq 408(%rsp),%r9
  2786. # qhasm: bytes -= 256
  2787. # asm 1: sub $256,<bytes=int64#6
  2788. # asm 2: sub $256,<bytes=%r9
  2789. sub $256,%r9
  2790. # qhasm: m += 256
  2791. # asm 1: add $256,<m=int64#2
  2792. # asm 2: add $256,<m=%rsi
  2793. add $256,%rsi
  2794. # qhasm: out += 256
  2795. # asm 1: add $256,<out=int64#1
  2796. # asm 2: add $256,<out=%rdi
  2797. add $256,%rdi
  2798. # qhasm: unsigned<? bytes - 256
  2799. # asm 1: cmp $256,<bytes=int64#6
  2800. # asm 2: cmp $256,<bytes=%r9
  2801. cmp $256,%r9
  2802. # comment:fp stack unchanged by jump
  2803. # qhasm: goto bytesatleast256 if !unsigned<
  2804. jae ._bytesatleast256
  2805. # qhasm: unsigned>? bytes - 0
  2806. # asm 1: cmp $0,<bytes=int64#6
  2807. # asm 2: cmp $0,<bytes=%r9
  2808. cmp $0,%r9
  2809. # comment:fp stack unchanged by jump
  2810. # qhasm: goto done if !unsigned>
  2811. jbe ._done
  2812. # comment:fp stack unchanged by fallthrough
  2813. # qhasm: bytesbetween1and255:
  2814. ._bytesbetween1and255:
  2815. # qhasm: unsigned<? bytes - 64
  2816. # asm 1: cmp $64,<bytes=int64#6
  2817. # asm 2: cmp $64,<bytes=%r9
  2818. cmp $64,%r9
  2819. # comment:fp stack unchanged by jump
  2820. # qhasm: goto nocopy if !unsigned<
  2821. jae ._nocopy
  2822. # qhasm: ctarget = out
  2823. # asm 1: mov <out=int64#1,>ctarget=int64#3
  2824. # asm 2: mov <out=%rdi,>ctarget=%rdx
  2825. mov %rdi,%rdx
  2826. # qhasm: out = &tmp
  2827. # asm 1: leaq <tmp=stack512#1,>out=int64#1
  2828. # asm 2: leaq <tmp=416(%rsp),>out=%rdi
  2829. leaq 416(%rsp),%rdi
  2830. # qhasm: i = bytes
  2831. # asm 1: mov <bytes=int64#6,>i=int64#4
  2832. # asm 2: mov <bytes=%r9,>i=%rcx
  2833. mov %r9,%rcx
  2834. # qhasm: while (i) { *out++ = *m++; --i }
  2835. rep movsb
  2836. # qhasm: out = &tmp
  2837. # asm 1: leaq <tmp=stack512#1,>out=int64#1
  2838. # asm 2: leaq <tmp=416(%rsp),>out=%rdi
  2839. leaq 416(%rsp),%rdi
  2840. # qhasm: m = &tmp
  2841. # asm 1: leaq <tmp=stack512#1,>m=int64#2
  2842. # asm 2: leaq <tmp=416(%rsp),>m=%rsi
  2843. leaq 416(%rsp),%rsi
  2844. # comment:fp stack unchanged by fallthrough
  2845. # qhasm: nocopy:
  2846. ._nocopy:
  2847. # qhasm: bytes_backup = bytes
  2848. # asm 1: movq <bytes=int64#6,>bytes_backup=stack64#8
  2849. # asm 2: movq <bytes=%r9,>bytes_backup=408(%rsp)
  2850. movq %r9,408(%rsp)
  2851. # qhasm: diag0 = x0
  2852. # asm 1: movdqa <x0=stack128#4,>diag0=int6464#1
  2853. # asm 2: movdqa <x0=48(%rsp),>diag0=%xmm0
  2854. movdqa 48(%rsp),%xmm0
  2855. # qhasm: diag1 = x1
  2856. # asm 1: movdqa <x1=stack128#1,>diag1=int6464#2
  2857. # asm 2: movdqa <x1=0(%rsp),>diag1=%xmm1
  2858. movdqa 0(%rsp),%xmm1
  2859. # qhasm: diag2 = x2
  2860. # asm 1: movdqa <x2=stack128#2,>diag2=int6464#3
  2861. # asm 2: movdqa <x2=16(%rsp),>diag2=%xmm2
  2862. movdqa 16(%rsp),%xmm2
  2863. # qhasm: diag3 = x3
  2864. # asm 1: movdqa <x3=stack128#3,>diag3=int6464#4
  2865. # asm 2: movdqa <x3=32(%rsp),>diag3=%xmm3
  2866. movdqa 32(%rsp),%xmm3
  2867. # qhasm: a0 = diag1
  2868. # asm 1: movdqa <diag1=int6464#2,>a0=int6464#5
  2869. # asm 2: movdqa <diag1=%xmm1,>a0=%xmm4
  2870. movdqa %xmm1,%xmm4
  2871. # qhasm: i = 20
  2872. # asm 1: mov $20,>i=int64#4
  2873. # asm 2: mov $20,>i=%rcx
  2874. mov $20,%rcx
  2875. # qhasm: mainloop2:
  2876. ._mainloop2:
  2877. # qhasm: uint32323232 a0 += diag0
  2878. # asm 1: paddd <diag0=int6464#1,<a0=int6464#5
  2879. # asm 2: paddd <diag0=%xmm0,<a0=%xmm4
  2880. paddd %xmm0,%xmm4
  2881. # qhasm: a1 = diag0
  2882. # asm 1: movdqa <diag0=int6464#1,>a1=int6464#6
  2883. # asm 2: movdqa <diag0=%xmm0,>a1=%xmm5
  2884. movdqa %xmm0,%xmm5
  2885. # qhasm: b0 = a0
  2886. # asm 1: movdqa <a0=int6464#5,>b0=int6464#7
  2887. # asm 2: movdqa <a0=%xmm4,>b0=%xmm6
  2888. movdqa %xmm4,%xmm6
  2889. # qhasm: uint32323232 a0 <<= 7
  2890. # asm 1: pslld $7,<a0=int6464#5
  2891. # asm 2: pslld $7,<a0=%xmm4
  2892. pslld $7,%xmm4
  2893. # qhasm: uint32323232 b0 >>= 25
  2894. # asm 1: psrld $25,<b0=int6464#7
  2895. # asm 2: psrld $25,<b0=%xmm6
  2896. psrld $25,%xmm6
  2897. # qhasm: diag3 ^= a0
  2898. # asm 1: pxor <a0=int6464#5,<diag3=int6464#4
  2899. # asm 2: pxor <a0=%xmm4,<diag3=%xmm3
  2900. pxor %xmm4,%xmm3
  2901. # qhasm: diag3 ^= b0
  2902. # asm 1: pxor <b0=int6464#7,<diag3=int6464#4
  2903. # asm 2: pxor <b0=%xmm6,<diag3=%xmm3
  2904. pxor %xmm6,%xmm3
  2905. # qhasm: uint32323232 a1 += diag3
  2906. # asm 1: paddd <diag3=int6464#4,<a1=int6464#6
  2907. # asm 2: paddd <diag3=%xmm3,<a1=%xmm5
  2908. paddd %xmm3,%xmm5
  2909. # qhasm: a2 = diag3
  2910. # asm 1: movdqa <diag3=int6464#4,>a2=int6464#5
  2911. # asm 2: movdqa <diag3=%xmm3,>a2=%xmm4
  2912. movdqa %xmm3,%xmm4
  2913. # qhasm: b1 = a1
  2914. # asm 1: movdqa <a1=int6464#6,>b1=int6464#7
  2915. # asm 2: movdqa <a1=%xmm5,>b1=%xmm6
  2916. movdqa %xmm5,%xmm6
  2917. # qhasm: uint32323232 a1 <<= 9
  2918. # asm 1: pslld $9,<a1=int6464#6
  2919. # asm 2: pslld $9,<a1=%xmm5
  2920. pslld $9,%xmm5
  2921. # qhasm: uint32323232 b1 >>= 23
  2922. # asm 1: psrld $23,<b1=int6464#7
  2923. # asm 2: psrld $23,<b1=%xmm6
  2924. psrld $23,%xmm6
  2925. # qhasm: diag2 ^= a1
  2926. # asm 1: pxor <a1=int6464#6,<diag2=int6464#3
  2927. # asm 2: pxor <a1=%xmm5,<diag2=%xmm2
  2928. pxor %xmm5,%xmm2
  2929. # qhasm: diag3 <<<= 32
  2930. # asm 1: pshufd $0x93,<diag3=int6464#4,<diag3=int6464#4
  2931. # asm 2: pshufd $0x93,<diag3=%xmm3,<diag3=%xmm3
  2932. pshufd $0x93,%xmm3,%xmm3
  2933. # qhasm: diag2 ^= b1
  2934. # asm 1: pxor <b1=int6464#7,<diag2=int6464#3
  2935. # asm 2: pxor <b1=%xmm6,<diag2=%xmm2
  2936. pxor %xmm6,%xmm2
  2937. # qhasm: uint32323232 a2 += diag2
  2938. # asm 1: paddd <diag2=int6464#3,<a2=int6464#5
  2939. # asm 2: paddd <diag2=%xmm2,<a2=%xmm4
  2940. paddd %xmm2,%xmm4
  2941. # qhasm: a3 = diag2
  2942. # asm 1: movdqa <diag2=int6464#3,>a3=int6464#6
  2943. # asm 2: movdqa <diag2=%xmm2,>a3=%xmm5
  2944. movdqa %xmm2,%xmm5
  2945. # qhasm: b2 = a2
  2946. # asm 1: movdqa <a2=int6464#5,>b2=int6464#7
  2947. # asm 2: movdqa <a2=%xmm4,>b2=%xmm6
  2948. movdqa %xmm4,%xmm6
  2949. # qhasm: uint32323232 a2 <<= 13
  2950. # asm 1: pslld $13,<a2=int6464#5
  2951. # asm 2: pslld $13,<a2=%xmm4
  2952. pslld $13,%xmm4
  2953. # qhasm: uint32323232 b2 >>= 19
  2954. # asm 1: psrld $19,<b2=int6464#7
  2955. # asm 2: psrld $19,<b2=%xmm6
  2956. psrld $19,%xmm6
  2957. # qhasm: diag1 ^= a2
  2958. # asm 1: pxor <a2=int6464#5,<diag1=int6464#2
  2959. # asm 2: pxor <a2=%xmm4,<diag1=%xmm1
  2960. pxor %xmm4,%xmm1
  2961. # qhasm: diag2 <<<= 64
  2962. # asm 1: pshufd $0x4e,<diag2=int6464#3,<diag2=int6464#3
  2963. # asm 2: pshufd $0x4e,<diag2=%xmm2,<diag2=%xmm2
  2964. pshufd $0x4e,%xmm2,%xmm2
  2965. # qhasm: diag1 ^= b2
  2966. # asm 1: pxor <b2=int6464#7,<diag1=int6464#2
  2967. # asm 2: pxor <b2=%xmm6,<diag1=%xmm1
  2968. pxor %xmm6,%xmm1
  2969. # qhasm: uint32323232 a3 += diag1
  2970. # asm 1: paddd <diag1=int6464#2,<a3=int6464#6
  2971. # asm 2: paddd <diag1=%xmm1,<a3=%xmm5
  2972. paddd %xmm1,%xmm5
  2973. # qhasm: a4 = diag3
  2974. # asm 1: movdqa <diag3=int6464#4,>a4=int6464#5
  2975. # asm 2: movdqa <diag3=%xmm3,>a4=%xmm4
  2976. movdqa %xmm3,%xmm4
  2977. # qhasm: b3 = a3
  2978. # asm 1: movdqa <a3=int6464#6,>b3=int6464#7
  2979. # asm 2: movdqa <a3=%xmm5,>b3=%xmm6
  2980. movdqa %xmm5,%xmm6
  2981. # qhasm: uint32323232 a3 <<= 18
  2982. # asm 1: pslld $18,<a3=int6464#6
  2983. # asm 2: pslld $18,<a3=%xmm5
  2984. pslld $18,%xmm5
  2985. # qhasm: uint32323232 b3 >>= 14
  2986. # asm 1: psrld $14,<b3=int6464#7
  2987. # asm 2: psrld $14,<b3=%xmm6
  2988. psrld $14,%xmm6
  2989. # qhasm: diag0 ^= a3
  2990. # asm 1: pxor <a3=int6464#6,<diag0=int6464#1
  2991. # asm 2: pxor <a3=%xmm5,<diag0=%xmm0
  2992. pxor %xmm5,%xmm0
  2993. # qhasm: diag1 <<<= 96
  2994. # asm 1: pshufd $0x39,<diag1=int6464#2,<diag1=int6464#2
  2995. # asm 2: pshufd $0x39,<diag1=%xmm1,<diag1=%xmm1
  2996. pshufd $0x39,%xmm1,%xmm1
  2997. # qhasm: diag0 ^= b3
  2998. # asm 1: pxor <b3=int6464#7,<diag0=int6464#1
  2999. # asm 2: pxor <b3=%xmm6,<diag0=%xmm0
  3000. pxor %xmm6,%xmm0
  3001. # qhasm: uint32323232 a4 += diag0
  3002. # asm 1: paddd <diag0=int6464#1,<a4=int6464#5
  3003. # asm 2: paddd <diag0=%xmm0,<a4=%xmm4
  3004. paddd %xmm0,%xmm4
  3005. # qhasm: a5 = diag0
  3006. # asm 1: movdqa <diag0=int6464#1,>a5=int6464#6
  3007. # asm 2: movdqa <diag0=%xmm0,>a5=%xmm5
  3008. movdqa %xmm0,%xmm5
  3009. # qhasm: b4 = a4
  3010. # asm 1: movdqa <a4=int6464#5,>b4=int6464#7
  3011. # asm 2: movdqa <a4=%xmm4,>b4=%xmm6
  3012. movdqa %xmm4,%xmm6
  3013. # qhasm: uint32323232 a4 <<= 7
  3014. # asm 1: pslld $7,<a4=int6464#5
  3015. # asm 2: pslld $7,<a4=%xmm4
  3016. pslld $7,%xmm4
  3017. # qhasm: uint32323232 b4 >>= 25
  3018. # asm 1: psrld $25,<b4=int6464#7
  3019. # asm 2: psrld $25,<b4=%xmm6
  3020. psrld $25,%xmm6
  3021. # qhasm: diag1 ^= a4
  3022. # asm 1: pxor <a4=int6464#5,<diag1=int6464#2
  3023. # asm 2: pxor <a4=%xmm4,<diag1=%xmm1
  3024. pxor %xmm4,%xmm1
  3025. # qhasm: diag1 ^= b4
  3026. # asm 1: pxor <b4=int6464#7,<diag1=int6464#2
  3027. # asm 2: pxor <b4=%xmm6,<diag1=%xmm1
  3028. pxor %xmm6,%xmm1
  3029. # qhasm: uint32323232 a5 += diag1
  3030. # asm 1: paddd <diag1=int6464#2,<a5=int6464#6
  3031. # asm 2: paddd <diag1=%xmm1,<a5=%xmm5
  3032. paddd %xmm1,%xmm5
  3033. # qhasm: a6 = diag1
  3034. # asm 1: movdqa <diag1=int6464#2,>a6=int6464#5
  3035. # asm 2: movdqa <diag1=%xmm1,>a6=%xmm4
  3036. movdqa %xmm1,%xmm4
  3037. # qhasm: b5 = a5
  3038. # asm 1: movdqa <a5=int6464#6,>b5=int6464#7
  3039. # asm 2: movdqa <a5=%xmm5,>b5=%xmm6
  3040. movdqa %xmm5,%xmm6
  3041. # qhasm: uint32323232 a5 <<= 9
  3042. # asm 1: pslld $9,<a5=int6464#6
  3043. # asm 2: pslld $9,<a5=%xmm5
  3044. pslld $9,%xmm5
  3045. # qhasm: uint32323232 b5 >>= 23
  3046. # asm 1: psrld $23,<b5=int6464#7
  3047. # asm 2: psrld $23,<b5=%xmm6
  3048. psrld $23,%xmm6
  3049. # qhasm: diag2 ^= a5
  3050. # asm 1: pxor <a5=int6464#6,<diag2=int6464#3
  3051. # asm 2: pxor <a5=%xmm5,<diag2=%xmm2
  3052. pxor %xmm5,%xmm2
  3053. # qhasm: diag1 <<<= 32
  3054. # asm 1: pshufd $0x93,<diag1=int6464#2,<diag1=int6464#2
  3055. # asm 2: pshufd $0x93,<diag1=%xmm1,<diag1=%xmm1
  3056. pshufd $0x93,%xmm1,%xmm1
  3057. # qhasm: diag2 ^= b5
  3058. # asm 1: pxor <b5=int6464#7,<diag2=int6464#3
  3059. # asm 2: pxor <b5=%xmm6,<diag2=%xmm2
  3060. pxor %xmm6,%xmm2
  3061. # qhasm: uint32323232 a6 += diag2
  3062. # asm 1: paddd <diag2=int6464#3,<a6=int6464#5
  3063. # asm 2: paddd <diag2=%xmm2,<a6=%xmm4
  3064. paddd %xmm2,%xmm4
  3065. # qhasm: a7 = diag2
  3066. # asm 1: movdqa <diag2=int6464#3,>a7=int6464#6
  3067. # asm 2: movdqa <diag2=%xmm2,>a7=%xmm5
  3068. movdqa %xmm2,%xmm5
  3069. # qhasm: b6 = a6
  3070. # asm 1: movdqa <a6=int6464#5,>b6=int6464#7
  3071. # asm 2: movdqa <a6=%xmm4,>b6=%xmm6
  3072. movdqa %xmm4,%xmm6
  3073. # qhasm: uint32323232 a6 <<= 13
  3074. # asm 1: pslld $13,<a6=int6464#5
  3075. # asm 2: pslld $13,<a6=%xmm4
  3076. pslld $13,%xmm4
  3077. # qhasm: uint32323232 b6 >>= 19
  3078. # asm 1: psrld $19,<b6=int6464#7
  3079. # asm 2: psrld $19,<b6=%xmm6
  3080. psrld $19,%xmm6
  3081. # qhasm: diag3 ^= a6
  3082. # asm 1: pxor <a6=int6464#5,<diag3=int6464#4
  3083. # asm 2: pxor <a6=%xmm4,<diag3=%xmm3
  3084. pxor %xmm4,%xmm3
  3085. # qhasm: diag2 <<<= 64
  3086. # asm 1: pshufd $0x4e,<diag2=int6464#3,<diag2=int6464#3
  3087. # asm 2: pshufd $0x4e,<diag2=%xmm2,<diag2=%xmm2
  3088. pshufd $0x4e,%xmm2,%xmm2
  3089. # qhasm: diag3 ^= b6
  3090. # asm 1: pxor <b6=int6464#7,<diag3=int6464#4
  3091. # asm 2: pxor <b6=%xmm6,<diag3=%xmm3
  3092. pxor %xmm6,%xmm3
  3093. # qhasm: uint32323232 a7 += diag3
  3094. # asm 1: paddd <diag3=int6464#4,<a7=int6464#6
  3095. # asm 2: paddd <diag3=%xmm3,<a7=%xmm5
  3096. paddd %xmm3,%xmm5
  3097. # qhasm: a0 = diag1
  3098. # asm 1: movdqa <diag1=int6464#2,>a0=int6464#5
  3099. # asm 2: movdqa <diag1=%xmm1,>a0=%xmm4
  3100. movdqa %xmm1,%xmm4
  3101. # qhasm: b7 = a7
  3102. # asm 1: movdqa <a7=int6464#6,>b7=int6464#7
  3103. # asm 2: movdqa <a7=%xmm5,>b7=%xmm6
  3104. movdqa %xmm5,%xmm6
  3105. # qhasm: uint32323232 a7 <<= 18
  3106. # asm 1: pslld $18,<a7=int6464#6
  3107. # asm 2: pslld $18,<a7=%xmm5
  3108. pslld $18,%xmm5
  3109. # qhasm: uint32323232 b7 >>= 14
  3110. # asm 1: psrld $14,<b7=int6464#7
  3111. # asm 2: psrld $14,<b7=%xmm6
  3112. psrld $14,%xmm6
  3113. # qhasm: diag0 ^= a7
  3114. # asm 1: pxor <a7=int6464#6,<diag0=int6464#1
  3115. # asm 2: pxor <a7=%xmm5,<diag0=%xmm0
  3116. pxor %xmm5,%xmm0
  3117. # qhasm: diag3 <<<= 96
  3118. # asm 1: pshufd $0x39,<diag3=int6464#4,<diag3=int6464#4
  3119. # asm 2: pshufd $0x39,<diag3=%xmm3,<diag3=%xmm3
  3120. pshufd $0x39,%xmm3,%xmm3
  3121. # qhasm: diag0 ^= b7
  3122. # asm 1: pxor <b7=int6464#7,<diag0=int6464#1
  3123. # asm 2: pxor <b7=%xmm6,<diag0=%xmm0
  3124. pxor %xmm6,%xmm0
  3125. # qhasm: uint32323232 a0 += diag0
  3126. # asm 1: paddd <diag0=int6464#1,<a0=int6464#5
  3127. # asm 2: paddd <diag0=%xmm0,<a0=%xmm4
  3128. paddd %xmm0,%xmm4
  3129. # qhasm: a1 = diag0
  3130. # asm 1: movdqa <diag0=int6464#1,>a1=int6464#6
  3131. # asm 2: movdqa <diag0=%xmm0,>a1=%xmm5
  3132. movdqa %xmm0,%xmm5
  3133. # qhasm: b0 = a0
  3134. # asm 1: movdqa <a0=int6464#5,>b0=int6464#7
  3135. # asm 2: movdqa <a0=%xmm4,>b0=%xmm6
  3136. movdqa %xmm4,%xmm6
  3137. # qhasm: uint32323232 a0 <<= 7
  3138. # asm 1: pslld $7,<a0=int6464#5
  3139. # asm 2: pslld $7,<a0=%xmm4
  3140. pslld $7,%xmm4
  3141. # qhasm: uint32323232 b0 >>= 25
  3142. # asm 1: psrld $25,<b0=int6464#7
  3143. # asm 2: psrld $25,<b0=%xmm6
  3144. psrld $25,%xmm6
  3145. # qhasm: diag3 ^= a0
  3146. # asm 1: pxor <a0=int6464#5,<diag3=int6464#4
  3147. # asm 2: pxor <a0=%xmm4,<diag3=%xmm3
  3148. pxor %xmm4,%xmm3
  3149. # qhasm: diag3 ^= b0
  3150. # asm 1: pxor <b0=int6464#7,<diag3=int6464#4
  3151. # asm 2: pxor <b0=%xmm6,<diag3=%xmm3
  3152. pxor %xmm6,%xmm3
  3153. # qhasm: uint32323232 a1 += diag3
  3154. # asm 1: paddd <diag3=int6464#4,<a1=int6464#6
  3155. # asm 2: paddd <diag3=%xmm3,<a1=%xmm5
  3156. paddd %xmm3,%xmm5
  3157. # qhasm: a2 = diag3
  3158. # asm 1: movdqa <diag3=int6464#4,>a2=int6464#5
  3159. # asm 2: movdqa <diag3=%xmm3,>a2=%xmm4
  3160. movdqa %xmm3,%xmm4
  3161. # qhasm: b1 = a1
  3162. # asm 1: movdqa <a1=int6464#6,>b1=int6464#7
  3163. # asm 2: movdqa <a1=%xmm5,>b1=%xmm6
  3164. movdqa %xmm5,%xmm6
  3165. # qhasm: uint32323232 a1 <<= 9
  3166. # asm 1: pslld $9,<a1=int6464#6
  3167. # asm 2: pslld $9,<a1=%xmm5
  3168. pslld $9,%xmm5
  3169. # qhasm: uint32323232 b1 >>= 23
  3170. # asm 1: psrld $23,<b1=int6464#7
  3171. # asm 2: psrld $23,<b1=%xmm6
  3172. psrld $23,%xmm6
  3173. # qhasm: diag2 ^= a1
  3174. # asm 1: pxor <a1=int6464#6,<diag2=int6464#3
  3175. # asm 2: pxor <a1=%xmm5,<diag2=%xmm2
  3176. pxor %xmm5,%xmm2
  3177. # qhasm: diag3 <<<= 32
  3178. # asm 1: pshufd $0x93,<diag3=int6464#4,<diag3=int6464#4
  3179. # asm 2: pshufd $0x93,<diag3=%xmm3,<diag3=%xmm3
  3180. pshufd $0x93,%xmm3,%xmm3
  3181. # qhasm: diag2 ^= b1
  3182. # asm 1: pxor <b1=int6464#7,<diag2=int6464#3
  3183. # asm 2: pxor <b1=%xmm6,<diag2=%xmm2
  3184. pxor %xmm6,%xmm2
  3185. # qhasm: uint32323232 a2 += diag2
  3186. # asm 1: paddd <diag2=int6464#3,<a2=int6464#5
  3187. # asm 2: paddd <diag2=%xmm2,<a2=%xmm4
  3188. paddd %xmm2,%xmm4
  3189. # qhasm: a3 = diag2
  3190. # asm 1: movdqa <diag2=int6464#3,>a3=int6464#6
  3191. # asm 2: movdqa <diag2=%xmm2,>a3=%xmm5
  3192. movdqa %xmm2,%xmm5
  3193. # qhasm: b2 = a2
  3194. # asm 1: movdqa <a2=int6464#5,>b2=int6464#7
  3195. # asm 2: movdqa <a2=%xmm4,>b2=%xmm6
  3196. movdqa %xmm4,%xmm6
  3197. # qhasm: uint32323232 a2 <<= 13
  3198. # asm 1: pslld $13,<a2=int6464#5
  3199. # asm 2: pslld $13,<a2=%xmm4
  3200. pslld $13,%xmm4
  3201. # qhasm: uint32323232 b2 >>= 19
  3202. # asm 1: psrld $19,<b2=int6464#7
  3203. # asm 2: psrld $19,<b2=%xmm6
  3204. psrld $19,%xmm6
  3205. # qhasm: diag1 ^= a2
  3206. # asm 1: pxor <a2=int6464#5,<diag1=int6464#2
  3207. # asm 2: pxor <a2=%xmm4,<diag1=%xmm1
  3208. pxor %xmm4,%xmm1
  3209. # qhasm: diag2 <<<= 64
  3210. # asm 1: pshufd $0x4e,<diag2=int6464#3,<diag2=int6464#3
  3211. # asm 2: pshufd $0x4e,<diag2=%xmm2,<diag2=%xmm2
  3212. pshufd $0x4e,%xmm2,%xmm2
  3213. # qhasm: diag1 ^= b2
  3214. # asm 1: pxor <b2=int6464#7,<diag1=int6464#2
  3215. # asm 2: pxor <b2=%xmm6,<diag1=%xmm1
  3216. pxor %xmm6,%xmm1
  3217. # qhasm: uint32323232 a3 += diag1
  3218. # asm 1: paddd <diag1=int6464#2,<a3=int6464#6
  3219. # asm 2: paddd <diag1=%xmm1,<a3=%xmm5
  3220. paddd %xmm1,%xmm5
  3221. # qhasm: a4 = diag3
  3222. # asm 1: movdqa <diag3=int6464#4,>a4=int6464#5
  3223. # asm 2: movdqa <diag3=%xmm3,>a4=%xmm4
  3224. movdqa %xmm3,%xmm4
  3225. # qhasm: b3 = a3
  3226. # asm 1: movdqa <a3=int6464#6,>b3=int6464#7
  3227. # asm 2: movdqa <a3=%xmm5,>b3=%xmm6
  3228. movdqa %xmm5,%xmm6
  3229. # qhasm: uint32323232 a3 <<= 18
  3230. # asm 1: pslld $18,<a3=int6464#6
  3231. # asm 2: pslld $18,<a3=%xmm5
  3232. pslld $18,%xmm5
  3233. # qhasm: uint32323232 b3 >>= 14
  3234. # asm 1: psrld $14,<b3=int6464#7
  3235. # asm 2: psrld $14,<b3=%xmm6
  3236. psrld $14,%xmm6
  3237. # qhasm: diag0 ^= a3
  3238. # asm 1: pxor <a3=int6464#6,<diag0=int6464#1
  3239. # asm 2: pxor <a3=%xmm5,<diag0=%xmm0
  3240. pxor %xmm5,%xmm0
  3241. # qhasm: diag1 <<<= 96
  3242. # asm 1: pshufd $0x39,<diag1=int6464#2,<diag1=int6464#2
  3243. # asm 2: pshufd $0x39,<diag1=%xmm1,<diag1=%xmm1
  3244. pshufd $0x39,%xmm1,%xmm1
  3245. # qhasm: diag0 ^= b3
  3246. # asm 1: pxor <b3=int6464#7,<diag0=int6464#1
  3247. # asm 2: pxor <b3=%xmm6,<diag0=%xmm0
  3248. pxor %xmm6,%xmm0
  3249. # qhasm: uint32323232 a4 += diag0
  3250. # asm 1: paddd <diag0=int6464#1,<a4=int6464#5
  3251. # asm 2: paddd <diag0=%xmm0,<a4=%xmm4
  3252. paddd %xmm0,%xmm4
  3253. # qhasm: a5 = diag0
  3254. # asm 1: movdqa <diag0=int6464#1,>a5=int6464#6
  3255. # asm 2: movdqa <diag0=%xmm0,>a5=%xmm5
  3256. movdqa %xmm0,%xmm5
  3257. # qhasm: b4 = a4
  3258. # asm 1: movdqa <a4=int6464#5,>b4=int6464#7
  3259. # asm 2: movdqa <a4=%xmm4,>b4=%xmm6
  3260. movdqa %xmm4,%xmm6
  3261. # qhasm: uint32323232 a4 <<= 7
  3262. # asm 1: pslld $7,<a4=int6464#5
  3263. # asm 2: pslld $7,<a4=%xmm4
  3264. pslld $7,%xmm4
  3265. # qhasm: uint32323232 b4 >>= 25
  3266. # asm 1: psrld $25,<b4=int6464#7
  3267. # asm 2: psrld $25,<b4=%xmm6
  3268. psrld $25,%xmm6
  3269. # qhasm: diag1 ^= a4
  3270. # asm 1: pxor <a4=int6464#5,<diag1=int6464#2
  3271. # asm 2: pxor <a4=%xmm4,<diag1=%xmm1
  3272. pxor %xmm4,%xmm1
  3273. # qhasm: diag1 ^= b4
  3274. # asm 1: pxor <b4=int6464#7,<diag1=int6464#2
  3275. # asm 2: pxor <b4=%xmm6,<diag1=%xmm1
  3276. pxor %xmm6,%xmm1
  3277. # qhasm: uint32323232 a5 += diag1
  3278. # asm 1: paddd <diag1=int6464#2,<a5=int6464#6
  3279. # asm 2: paddd <diag1=%xmm1,<a5=%xmm5
  3280. paddd %xmm1,%xmm5
  3281. # qhasm: a6 = diag1
  3282. # asm 1: movdqa <diag1=int6464#2,>a6=int6464#5
  3283. # asm 2: movdqa <diag1=%xmm1,>a6=%xmm4
  3284. movdqa %xmm1,%xmm4
  3285. # qhasm: b5 = a5
  3286. # asm 1: movdqa <a5=int6464#6,>b5=int6464#7
  3287. # asm 2: movdqa <a5=%xmm5,>b5=%xmm6
  3288. movdqa %xmm5,%xmm6
  3289. # qhasm: uint32323232 a5 <<= 9
  3290. # asm 1: pslld $9,<a5=int6464#6
  3291. # asm 2: pslld $9,<a5=%xmm5
  3292. pslld $9,%xmm5
  3293. # qhasm: uint32323232 b5 >>= 23
  3294. # asm 1: psrld $23,<b5=int6464#7
  3295. # asm 2: psrld $23,<b5=%xmm6
  3296. psrld $23,%xmm6
  3297. # qhasm: diag2 ^= a5
  3298. # asm 1: pxor <a5=int6464#6,<diag2=int6464#3
  3299. # asm 2: pxor <a5=%xmm5,<diag2=%xmm2
  3300. pxor %xmm5,%xmm2
  3301. # qhasm: diag1 <<<= 32
  3302. # asm 1: pshufd $0x93,<diag1=int6464#2,<diag1=int6464#2
  3303. # asm 2: pshufd $0x93,<diag1=%xmm1,<diag1=%xmm1
  3304. pshufd $0x93,%xmm1,%xmm1
  3305. # qhasm: diag2 ^= b5
  3306. # asm 1: pxor <b5=int6464#7,<diag2=int6464#3
  3307. # asm 2: pxor <b5=%xmm6,<diag2=%xmm2
  3308. pxor %xmm6,%xmm2
  3309. # qhasm: uint32323232 a6 += diag2
  3310. # asm 1: paddd <diag2=int6464#3,<a6=int6464#5
  3311. # asm 2: paddd <diag2=%xmm2,<a6=%xmm4
  3312. paddd %xmm2,%xmm4
  3313. # qhasm: a7 = diag2
  3314. # asm 1: movdqa <diag2=int6464#3,>a7=int6464#6
  3315. # asm 2: movdqa <diag2=%xmm2,>a7=%xmm5
  3316. movdqa %xmm2,%xmm5
  3317. # qhasm: b6 = a6
  3318. # asm 1: movdqa <a6=int6464#5,>b6=int6464#7
  3319. # asm 2: movdqa <a6=%xmm4,>b6=%xmm6
  3320. movdqa %xmm4,%xmm6
  3321. # qhasm: uint32323232 a6 <<= 13
  3322. # asm 1: pslld $13,<a6=int6464#5
  3323. # asm 2: pslld $13,<a6=%xmm4
  3324. pslld $13,%xmm4
  3325. # qhasm: uint32323232 b6 >>= 19
  3326. # asm 1: psrld $19,<b6=int6464#7
  3327. # asm 2: psrld $19,<b6=%xmm6
  3328. psrld $19,%xmm6
  3329. # qhasm: diag3 ^= a6
  3330. # asm 1: pxor <a6=int6464#5,<diag3=int6464#4
  3331. # asm 2: pxor <a6=%xmm4,<diag3=%xmm3
  3332. pxor %xmm4,%xmm3
  3333. # qhasm: diag2 <<<= 64
  3334. # asm 1: pshufd $0x4e,<diag2=int6464#3,<diag2=int6464#3
  3335. # asm 2: pshufd $0x4e,<diag2=%xmm2,<diag2=%xmm2
  3336. pshufd $0x4e,%xmm2,%xmm2
  3337. # qhasm: diag3 ^= b6
  3338. # asm 1: pxor <b6=int6464#7,<diag3=int6464#4
  3339. # asm 2: pxor <b6=%xmm6,<diag3=%xmm3
  3340. pxor %xmm6,%xmm3
  3341. # qhasm: unsigned>? i -= 4
  3342. # asm 1: sub $4,<i=int64#4
  3343. # asm 2: sub $4,<i=%rcx
  3344. sub $4,%rcx
  3345. # qhasm: uint32323232 a7 += diag3
  3346. # asm 1: paddd <diag3=int6464#4,<a7=int6464#6
  3347. # asm 2: paddd <diag3=%xmm3,<a7=%xmm5
  3348. paddd %xmm3,%xmm5
  3349. # qhasm: a0 = diag1
  3350. # asm 1: movdqa <diag1=int6464#2,>a0=int6464#5
  3351. # asm 2: movdqa <diag1=%xmm1,>a0=%xmm4
  3352. movdqa %xmm1,%xmm4
  3353. # qhasm: b7 = a7
  3354. # asm 1: movdqa <a7=int6464#6,>b7=int6464#7
  3355. # asm 2: movdqa <a7=%xmm5,>b7=%xmm6
  3356. movdqa %xmm5,%xmm6
  3357. # qhasm: uint32323232 a7 <<= 18
  3358. # asm 1: pslld $18,<a7=int6464#6
  3359. # asm 2: pslld $18,<a7=%xmm5
  3360. pslld $18,%xmm5
  3361. # qhasm: b0 = 0
  3362. # asm 1: pxor >b0=int6464#8,>b0=int6464#8
  3363. # asm 2: pxor >b0=%xmm7,>b0=%xmm7
  3364. pxor %xmm7,%xmm7
  3365. # qhasm: uint32323232 b7 >>= 14
  3366. # asm 1: psrld $14,<b7=int6464#7
  3367. # asm 2: psrld $14,<b7=%xmm6
  3368. psrld $14,%xmm6
  3369. # qhasm: diag0 ^= a7
  3370. # asm 1: pxor <a7=int6464#6,<diag0=int6464#1
  3371. # asm 2: pxor <a7=%xmm5,<diag0=%xmm0
  3372. pxor %xmm5,%xmm0
  3373. # qhasm: diag3 <<<= 96
  3374. # asm 1: pshufd $0x39,<diag3=int6464#4,<diag3=int6464#4
  3375. # asm 2: pshufd $0x39,<diag3=%xmm3,<diag3=%xmm3
  3376. pshufd $0x39,%xmm3,%xmm3
  3377. # qhasm: diag0 ^= b7
  3378. # asm 1: pxor <b7=int6464#7,<diag0=int6464#1
  3379. # asm 2: pxor <b7=%xmm6,<diag0=%xmm0
  3380. pxor %xmm6,%xmm0
  3381. # comment:fp stack unchanged by jump
  3382. # qhasm: goto mainloop2 if unsigned>
  3383. ja ._mainloop2
  3384. # qhasm: uint32323232 diag0 += x0
  3385. # asm 1: paddd <x0=stack128#4,<diag0=int6464#1
  3386. # asm 2: paddd <x0=48(%rsp),<diag0=%xmm0
  3387. paddd 48(%rsp),%xmm0
  3388. # qhasm: uint32323232 diag1 += x1
  3389. # asm 1: paddd <x1=stack128#1,<diag1=int6464#2
  3390. # asm 2: paddd <x1=0(%rsp),<diag1=%xmm1
  3391. paddd 0(%rsp),%xmm1
  3392. # qhasm: uint32323232 diag2 += x2
  3393. # asm 1: paddd <x2=stack128#2,<diag2=int6464#3
  3394. # asm 2: paddd <x2=16(%rsp),<diag2=%xmm2
  3395. paddd 16(%rsp),%xmm2
  3396. # qhasm: uint32323232 diag3 += x3
  3397. # asm 1: paddd <x3=stack128#3,<diag3=int6464#4
  3398. # asm 2: paddd <x3=32(%rsp),<diag3=%xmm3
  3399. paddd 32(%rsp),%xmm3
  3400. # qhasm: in0 = diag0
  3401. # asm 1: movd <diag0=int6464#1,>in0=int64#4
  3402. # asm 2: movd <diag0=%xmm0,>in0=%rcx
  3403. movd %xmm0,%rcx
  3404. # qhasm: in12 = diag1
  3405. # asm 1: movd <diag1=int6464#2,>in12=int64#5
  3406. # asm 2: movd <diag1=%xmm1,>in12=%r8
  3407. movd %xmm1,%r8
  3408. # qhasm: in8 = diag2
  3409. # asm 1: movd <diag2=int6464#3,>in8=int64#6
  3410. # asm 2: movd <diag2=%xmm2,>in8=%r9
  3411. movd %xmm2,%r9
  3412. # qhasm: in4 = diag3
  3413. # asm 1: movd <diag3=int6464#4,>in4=int64#7
  3414. # asm 2: movd <diag3=%xmm3,>in4=%rax
  3415. movd %xmm3,%rax
  3416. # qhasm: diag0 <<<= 96
  3417. # asm 1: pshufd $0x39,<diag0=int6464#1,<diag0=int6464#1
  3418. # asm 2: pshufd $0x39,<diag0=%xmm0,<diag0=%xmm0
  3419. pshufd $0x39,%xmm0,%xmm0
  3420. # qhasm: diag1 <<<= 96
  3421. # asm 1: pshufd $0x39,<diag1=int6464#2,<diag1=int6464#2
  3422. # asm 2: pshufd $0x39,<diag1=%xmm1,<diag1=%xmm1
  3423. pshufd $0x39,%xmm1,%xmm1
  3424. # qhasm: diag2 <<<= 96
  3425. # asm 1: pshufd $0x39,<diag2=int6464#3,<diag2=int6464#3
  3426. # asm 2: pshufd $0x39,<diag2=%xmm2,<diag2=%xmm2
  3427. pshufd $0x39,%xmm2,%xmm2
  3428. # qhasm: diag3 <<<= 96
  3429. # asm 1: pshufd $0x39,<diag3=int6464#4,<diag3=int6464#4
  3430. # asm 2: pshufd $0x39,<diag3=%xmm3,<diag3=%xmm3
  3431. pshufd $0x39,%xmm3,%xmm3
  3432. # qhasm: (uint32) in0 ^= *(uint32 *) (m + 0)
  3433. # asm 1: xorl 0(<m=int64#2),<in0=int64#4d
  3434. # asm 2: xorl 0(<m=%rsi),<in0=%ecx
  3435. xorl 0(%rsi),%ecx
  3436. # qhasm: (uint32) in12 ^= *(uint32 *) (m + 48)
  3437. # asm 1: xorl 48(<m=int64#2),<in12=int64#5d
  3438. # asm 2: xorl 48(<m=%rsi),<in12=%r8d
  3439. xorl 48(%rsi),%r8d
  3440. # qhasm: (uint32) in8 ^= *(uint32 *) (m + 32)
  3441. # asm 1: xorl 32(<m=int64#2),<in8=int64#6d
  3442. # asm 2: xorl 32(<m=%rsi),<in8=%r9d
  3443. xorl 32(%rsi),%r9d
  3444. # qhasm: (uint32) in4 ^= *(uint32 *) (m + 16)
  3445. # asm 1: xorl 16(<m=int64#2),<in4=int64#7d
  3446. # asm 2: xorl 16(<m=%rsi),<in4=%eax
  3447. xorl 16(%rsi),%eax
  3448. # qhasm: *(uint32 *) (out + 0) = in0
  3449. # asm 1: movl <in0=int64#4d,0(<out=int64#1)
  3450. # asm 2: movl <in0=%ecx,0(<out=%rdi)
  3451. movl %ecx,0(%rdi)
  3452. # qhasm: *(uint32 *) (out + 48) = in12
  3453. # asm 1: movl <in12=int64#5d,48(<out=int64#1)
  3454. # asm 2: movl <in12=%r8d,48(<out=%rdi)
  3455. movl %r8d,48(%rdi)
  3456. # qhasm: *(uint32 *) (out + 32) = in8
  3457. # asm 1: movl <in8=int64#6d,32(<out=int64#1)
  3458. # asm 2: movl <in8=%r9d,32(<out=%rdi)
  3459. movl %r9d,32(%rdi)
  3460. # qhasm: *(uint32 *) (out + 16) = in4
  3461. # asm 1: movl <in4=int64#7d,16(<out=int64#1)
  3462. # asm 2: movl <in4=%eax,16(<out=%rdi)
  3463. movl %eax,16(%rdi)
  3464. # qhasm: in5 = diag0
  3465. # asm 1: movd <diag0=int6464#1,>in5=int64#4
  3466. # asm 2: movd <diag0=%xmm0,>in5=%rcx
  3467. movd %xmm0,%rcx
  3468. # qhasm: in1 = diag1
  3469. # asm 1: movd <diag1=int6464#2,>in1=int64#5
  3470. # asm 2: movd <diag1=%xmm1,>in1=%r8
  3471. movd %xmm1,%r8
  3472. # qhasm: in13 = diag2
  3473. # asm 1: movd <diag2=int6464#3,>in13=int64#6
  3474. # asm 2: movd <diag2=%xmm2,>in13=%r9
  3475. movd %xmm2,%r9
  3476. # qhasm: in9 = diag3
  3477. # asm 1: movd <diag3=int6464#4,>in9=int64#7
  3478. # asm 2: movd <diag3=%xmm3,>in9=%rax
  3479. movd %xmm3,%rax
  3480. # qhasm: diag0 <<<= 96
  3481. # asm 1: pshufd $0x39,<diag0=int6464#1,<diag0=int6464#1
  3482. # asm 2: pshufd $0x39,<diag0=%xmm0,<diag0=%xmm0
  3483. pshufd $0x39,%xmm0,%xmm0
  3484. # qhasm: diag1 <<<= 96
  3485. # asm 1: pshufd $0x39,<diag1=int6464#2,<diag1=int6464#2
  3486. # asm 2: pshufd $0x39,<diag1=%xmm1,<diag1=%xmm1
  3487. pshufd $0x39,%xmm1,%xmm1
  3488. # qhasm: diag2 <<<= 96
  3489. # asm 1: pshufd $0x39,<diag2=int6464#3,<diag2=int6464#3
  3490. # asm 2: pshufd $0x39,<diag2=%xmm2,<diag2=%xmm2
  3491. pshufd $0x39,%xmm2,%xmm2
  3492. # qhasm: diag3 <<<= 96
  3493. # asm 1: pshufd $0x39,<diag3=int6464#4,<diag3=int6464#4
  3494. # asm 2: pshufd $0x39,<diag3=%xmm3,<diag3=%xmm3
  3495. pshufd $0x39,%xmm3,%xmm3
  3496. # qhasm: (uint32) in5 ^= *(uint32 *) (m + 20)
  3497. # asm 1: xorl 20(<m=int64#2),<in5=int64#4d
  3498. # asm 2: xorl 20(<m=%rsi),<in5=%ecx
  3499. xorl 20(%rsi),%ecx
  3500. # qhasm: (uint32) in1 ^= *(uint32 *) (m + 4)
  3501. # asm 1: xorl 4(<m=int64#2),<in1=int64#5d
  3502. # asm 2: xorl 4(<m=%rsi),<in1=%r8d
  3503. xorl 4(%rsi),%r8d
  3504. # qhasm: (uint32) in13 ^= *(uint32 *) (m + 52)
  3505. # asm 1: xorl 52(<m=int64#2),<in13=int64#6d
  3506. # asm 2: xorl 52(<m=%rsi),<in13=%r9d
  3507. xorl 52(%rsi),%r9d
  3508. # qhasm: (uint32) in9 ^= *(uint32 *) (m + 36)
  3509. # asm 1: xorl 36(<m=int64#2),<in9=int64#7d
  3510. # asm 2: xorl 36(<m=%rsi),<in9=%eax
  3511. xorl 36(%rsi),%eax
  3512. # qhasm: *(uint32 *) (out + 20) = in5
  3513. # asm 1: movl <in5=int64#4d,20(<out=int64#1)
  3514. # asm 2: movl <in5=%ecx,20(<out=%rdi)
  3515. movl %ecx,20(%rdi)
  3516. # qhasm: *(uint32 *) (out + 4) = in1
  3517. # asm 1: movl <in1=int64#5d,4(<out=int64#1)
  3518. # asm 2: movl <in1=%r8d,4(<out=%rdi)
  3519. movl %r8d,4(%rdi)
  3520. # qhasm: *(uint32 *) (out + 52) = in13
  3521. # asm 1: movl <in13=int64#6d,52(<out=int64#1)
  3522. # asm 2: movl <in13=%r9d,52(<out=%rdi)
  3523. movl %r9d,52(%rdi)
  3524. # qhasm: *(uint32 *) (out + 36) = in9
  3525. # asm 1: movl <in9=int64#7d,36(<out=int64#1)
  3526. # asm 2: movl <in9=%eax,36(<out=%rdi)
  3527. movl %eax,36(%rdi)
  3528. # qhasm: in10 = diag0
  3529. # asm 1: movd <diag0=int6464#1,>in10=int64#4
  3530. # asm 2: movd <diag0=%xmm0,>in10=%rcx
  3531. movd %xmm0,%rcx
  3532. # qhasm: in6 = diag1
  3533. # asm 1: movd <diag1=int6464#2,>in6=int64#5
  3534. # asm 2: movd <diag1=%xmm1,>in6=%r8
  3535. movd %xmm1,%r8
  3536. # qhasm: in2 = diag2
  3537. # asm 1: movd <diag2=int6464#3,>in2=int64#6
  3538. # asm 2: movd <diag2=%xmm2,>in2=%r9
  3539. movd %xmm2,%r9
  3540. # qhasm: in14 = diag3
  3541. # asm 1: movd <diag3=int6464#4,>in14=int64#7
  3542. # asm 2: movd <diag3=%xmm3,>in14=%rax
  3543. movd %xmm3,%rax
  3544. # qhasm: diag0 <<<= 96
  3545. # asm 1: pshufd $0x39,<diag0=int6464#1,<diag0=int6464#1
  3546. # asm 2: pshufd $0x39,<diag0=%xmm0,<diag0=%xmm0
  3547. pshufd $0x39,%xmm0,%xmm0
  3548. # qhasm: diag1 <<<= 96
  3549. # asm 1: pshufd $0x39,<diag1=int6464#2,<diag1=int6464#2
  3550. # asm 2: pshufd $0x39,<diag1=%xmm1,<diag1=%xmm1
  3551. pshufd $0x39,%xmm1,%xmm1
  3552. # qhasm: diag2 <<<= 96
  3553. # asm 1: pshufd $0x39,<diag2=int6464#3,<diag2=int6464#3
  3554. # asm 2: pshufd $0x39,<diag2=%xmm2,<diag2=%xmm2
  3555. pshufd $0x39,%xmm2,%xmm2
  3556. # qhasm: diag3 <<<= 96
  3557. # asm 1: pshufd $0x39,<diag3=int6464#4,<diag3=int6464#4
  3558. # asm 2: pshufd $0x39,<diag3=%xmm3,<diag3=%xmm3
  3559. pshufd $0x39,%xmm3,%xmm3
  3560. # qhasm: (uint32) in10 ^= *(uint32 *) (m + 40)
  3561. # asm 1: xorl 40(<m=int64#2),<in10=int64#4d
  3562. # asm 2: xorl 40(<m=%rsi),<in10=%ecx
  3563. xorl 40(%rsi),%ecx
  3564. # qhasm: (uint32) in6 ^= *(uint32 *) (m + 24)
  3565. # asm 1: xorl 24(<m=int64#2),<in6=int64#5d
  3566. # asm 2: xorl 24(<m=%rsi),<in6=%r8d
  3567. xorl 24(%rsi),%r8d
  3568. # qhasm: (uint32) in2 ^= *(uint32 *) (m + 8)
  3569. # asm 1: xorl 8(<m=int64#2),<in2=int64#6d
  3570. # asm 2: xorl 8(<m=%rsi),<in2=%r9d
  3571. xorl 8(%rsi),%r9d
  3572. # qhasm: (uint32) in14 ^= *(uint32 *) (m + 56)
  3573. # asm 1: xorl 56(<m=int64#2),<in14=int64#7d
  3574. # asm 2: xorl 56(<m=%rsi),<in14=%eax
  3575. xorl 56(%rsi),%eax
  3576. # qhasm: *(uint32 *) (out + 40) = in10
  3577. # asm 1: movl <in10=int64#4d,40(<out=int64#1)
  3578. # asm 2: movl <in10=%ecx,40(<out=%rdi)
  3579. movl %ecx,40(%rdi)
  3580. # qhasm: *(uint32 *) (out + 24) = in6
  3581. # asm 1: movl <in6=int64#5d,24(<out=int64#1)
  3582. # asm 2: movl <in6=%r8d,24(<out=%rdi)
  3583. movl %r8d,24(%rdi)
  3584. # qhasm: *(uint32 *) (out + 8) = in2
  3585. # asm 1: movl <in2=int64#6d,8(<out=int64#1)
  3586. # asm 2: movl <in2=%r9d,8(<out=%rdi)
  3587. movl %r9d,8(%rdi)
  3588. # qhasm: *(uint32 *) (out + 56) = in14
  3589. # asm 1: movl <in14=int64#7d,56(<out=int64#1)
  3590. # asm 2: movl <in14=%eax,56(<out=%rdi)
  3591. movl %eax,56(%rdi)
  3592. # qhasm: in15 = diag0
  3593. # asm 1: movd <diag0=int6464#1,>in15=int64#4
  3594. # asm 2: movd <diag0=%xmm0,>in15=%rcx
  3595. movd %xmm0,%rcx
  3596. # qhasm: in11 = diag1
  3597. # asm 1: movd <diag1=int6464#2,>in11=int64#5
  3598. # asm 2: movd <diag1=%xmm1,>in11=%r8
  3599. movd %xmm1,%r8
  3600. # qhasm: in7 = diag2
  3601. # asm 1: movd <diag2=int6464#3,>in7=int64#6
  3602. # asm 2: movd <diag2=%xmm2,>in7=%r9
  3603. movd %xmm2,%r9
  3604. # qhasm: in3 = diag3
  3605. # asm 1: movd <diag3=int6464#4,>in3=int64#7
  3606. # asm 2: movd <diag3=%xmm3,>in3=%rax
  3607. movd %xmm3,%rax
  3608. # qhasm: (uint32) in15 ^= *(uint32 *) (m + 60)
  3609. # asm 1: xorl 60(<m=int64#2),<in15=int64#4d
  3610. # asm 2: xorl 60(<m=%rsi),<in15=%ecx
  3611. xorl 60(%rsi),%ecx
  3612. # qhasm: (uint32) in11 ^= *(uint32 *) (m + 44)
  3613. # asm 1: xorl 44(<m=int64#2),<in11=int64#5d
  3614. # asm 2: xorl 44(<m=%rsi),<in11=%r8d
  3615. xorl 44(%rsi),%r8d
  3616. # qhasm: (uint32) in7 ^= *(uint32 *) (m + 28)
  3617. # asm 1: xorl 28(<m=int64#2),<in7=int64#6d
  3618. # asm 2: xorl 28(<m=%rsi),<in7=%r9d
  3619. xorl 28(%rsi),%r9d
  3620. # qhasm: (uint32) in3 ^= *(uint32 *) (m + 12)
  3621. # asm 1: xorl 12(<m=int64#2),<in3=int64#7d
  3622. # asm 2: xorl 12(<m=%rsi),<in3=%eax
  3623. xorl 12(%rsi),%eax
  3624. # qhasm: *(uint32 *) (out + 60) = in15
  3625. # asm 1: movl <in15=int64#4d,60(<out=int64#1)
  3626. # asm 2: movl <in15=%ecx,60(<out=%rdi)
  3627. movl %ecx,60(%rdi)
  3628. # qhasm: *(uint32 *) (out + 44) = in11
  3629. # asm 1: movl <in11=int64#5d,44(<out=int64#1)
  3630. # asm 2: movl <in11=%r8d,44(<out=%rdi)
  3631. movl %r8d,44(%rdi)
  3632. # qhasm: *(uint32 *) (out + 28) = in7
  3633. # asm 1: movl <in7=int64#6d,28(<out=int64#1)
  3634. # asm 2: movl <in7=%r9d,28(<out=%rdi)
  3635. movl %r9d,28(%rdi)
  3636. # qhasm: *(uint32 *) (out + 12) = in3
  3637. # asm 1: movl <in3=int64#7d,12(<out=int64#1)
  3638. # asm 2: movl <in3=%eax,12(<out=%rdi)
  3639. movl %eax,12(%rdi)
  3640. # qhasm: bytes = bytes_backup
  3641. # asm 1: movq <bytes_backup=stack64#8,>bytes=int64#6
  3642. # asm 2: movq <bytes_backup=408(%rsp),>bytes=%r9
  3643. movq 408(%rsp),%r9
  3644. # qhasm: in8 = ((uint32 *)&x2)[0]
  3645. # asm 1: movl <x2=stack128#2,>in8=int64#4d
  3646. # asm 2: movl <x2=16(%rsp),>in8=%ecx
  3647. movl 16(%rsp),%ecx
  3648. # qhasm: in9 = ((uint32 *)&x3)[1]
  3649. # asm 1: movl 4+<x3=stack128#3,>in9=int64#5d
  3650. # asm 2: movl 4+<x3=32(%rsp),>in9=%r8d
  3651. movl 4+32(%rsp),%r8d
  3652. # qhasm: in8 += 1
  3653. # asm 1: add $1,<in8=int64#4
  3654. # asm 2: add $1,<in8=%rcx
  3655. add $1,%rcx
  3656. # qhasm: in9 <<= 32
  3657. # asm 1: shl $32,<in9=int64#5
  3658. # asm 2: shl $32,<in9=%r8
  3659. shl $32,%r8
  3660. # qhasm: in8 += in9
  3661. # asm 1: add <in9=int64#5,<in8=int64#4
  3662. # asm 2: add <in9=%r8,<in8=%rcx
  3663. add %r8,%rcx
  3664. # qhasm: in9 = in8
  3665. # asm 1: mov <in8=int64#4,>in9=int64#5
  3666. # asm 2: mov <in8=%rcx,>in9=%r8
  3667. mov %rcx,%r8
  3668. # qhasm: (uint64) in9 >>= 32
  3669. # asm 1: shr $32,<in9=int64#5
  3670. # asm 2: shr $32,<in9=%r8
  3671. shr $32,%r8
  3672. # qhasm: ((uint32 *)&x2)[0] = in8
  3673. # asm 1: movl <in8=int64#4d,>x2=stack128#2
  3674. # asm 2: movl <in8=%ecx,>x2=16(%rsp)
  3675. movl %ecx,16(%rsp)
  3676. # qhasm: ((uint32 *)&x3)[1] = in9
  3677. # asm 1: movl <in9=int64#5d,4+<x3=stack128#3
  3678. # asm 2: movl <in9=%r8d,4+<x3=32(%rsp)
  3679. movl %r8d,4+32(%rsp)
  3680. # qhasm: unsigned>? unsigned<? bytes - 64
  3681. # asm 1: cmp $64,<bytes=int64#6
  3682. # asm 2: cmp $64,<bytes=%r9
  3683. cmp $64,%r9
  3684. # comment:fp stack unchanged by jump
  3685. # qhasm: goto bytesatleast65 if unsigned>
  3686. ja ._bytesatleast65
  3687. # comment:fp stack unchanged by jump
  3688. # qhasm: goto bytesatleast64 if !unsigned<
  3689. jae ._bytesatleast64
  3690. # qhasm: m = out
  3691. # asm 1: mov <out=int64#1,>m=int64#2
  3692. # asm 2: mov <out=%rdi,>m=%rsi
  3693. mov %rdi,%rsi
  3694. # qhasm: out = ctarget
  3695. # asm 1: mov <ctarget=int64#3,>out=int64#1
  3696. # asm 2: mov <ctarget=%rdx,>out=%rdi
  3697. mov %rdx,%rdi
  3698. # qhasm: i = bytes
  3699. # asm 1: mov <bytes=int64#6,>i=int64#4
  3700. # asm 2: mov <bytes=%r9,>i=%rcx
  3701. mov %r9,%rcx
  3702. # qhasm: while (i) { *out++ = *m++; --i }
  3703. rep movsb
  3704. # comment:fp stack unchanged by fallthrough
  3705. # qhasm: bytesatleast64:
  3706. ._bytesatleast64:
  3707. # comment:fp stack unchanged by fallthrough
  3708. # qhasm: done:
  3709. ._done:
  3710. # qhasm: r11_caller = r11_stack
  3711. # asm 1: movq <r11_stack=stack64#1,>r11_caller=int64#9
  3712. # asm 2: movq <r11_stack=352(%rsp),>r11_caller=%r11
  3713. movq 352(%rsp),%r11
  3714. # qhasm: r12_caller = r12_stack
  3715. # asm 1: movq <r12_stack=stack64#2,>r12_caller=int64#10
  3716. # asm 2: movq <r12_stack=360(%rsp),>r12_caller=%r12
  3717. movq 360(%rsp),%r12
  3718. # qhasm: r13_caller = r13_stack
  3719. # asm 1: movq <r13_stack=stack64#3,>r13_caller=int64#11
  3720. # asm 2: movq <r13_stack=368(%rsp),>r13_caller=%r13
  3721. movq 368(%rsp),%r13
  3722. # qhasm: r14_caller = r14_stack
  3723. # asm 1: movq <r14_stack=stack64#4,>r14_caller=int64#12
  3724. # asm 2: movq <r14_stack=376(%rsp),>r14_caller=%r14
  3725. movq 376(%rsp),%r14
  3726. # qhasm: r15_caller = r15_stack
  3727. # asm 1: movq <r15_stack=stack64#5,>r15_caller=int64#13
  3728. # asm 2: movq <r15_stack=384(%rsp),>r15_caller=%r15
  3729. movq 384(%rsp),%r15
  3730. # qhasm: rbx_caller = rbx_stack
  3731. # asm 1: movq <rbx_stack=stack64#6,>rbx_caller=int64#14
  3732. # asm 2: movq <rbx_stack=392(%rsp),>rbx_caller=%rbx
  3733. movq 392(%rsp),%rbx
  3734. # qhasm: rbp_caller = rbp_stack
  3735. # asm 1: movq <rbp_stack=stack64#7,>rbp_caller=int64#15
  3736. # asm 2: movq <rbp_stack=400(%rsp),>rbp_caller=%rbp
  3737. movq 400(%rsp),%rbp
  3738. # qhasm: leave
  3739. add %r11,%rsp
  3740. xor %rax,%rax
  3741. xor %rdx,%rdx
  3742. ret
  3743. # qhasm: bytesatleast65:
  3744. ._bytesatleast65:
  3745. # qhasm: bytes -= 64
  3746. # asm 1: sub $64,<bytes=int64#6
  3747. # asm 2: sub $64,<bytes=%r9
  3748. sub $64,%r9
  3749. # qhasm: out += 64
  3750. # asm 1: add $64,<out=int64#1
  3751. # asm 2: add $64,<out=%rdi
  3752. add $64,%rdi
  3753. # qhasm: m += 64
  3754. # asm 1: add $64,<m=int64#2
  3755. # asm 2: add $64,<m=%rsi
  3756. add $64,%rsi
  3757. # comment:fp stack unchanged by jump
  3758. # qhasm: goto bytesbetween1and255
  3759. jmp ._bytesbetween1and255