sha256-x86_64.S 64 KB

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