sha512-x86_64.s 94 KB

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