sha512-x86_64.s 92 KB

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