sha256-x86_64.S 65 KB

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