sha1-x86_64.s 99 KB

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