sha1-x86_64.S 100 KB

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