sha512-x86_64.S 47 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990
  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 _sha512_block_data_order
  14. .private_extern _sha512_block_data_order
  15. .p2align 4
  16. _sha512_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. movq %rsp,%rax
  27. pushq %rbx
  28. pushq %rbp
  29. pushq %r12
  30. pushq %r13
  31. pushq %r14
  32. pushq %r15
  33. shlq $4,%rdx
  34. subq $128+32,%rsp
  35. leaq (%rsi,%rdx,8),%rdx
  36. andq $-64,%rsp
  37. movq %rdi,128+0(%rsp)
  38. movq %rsi,128+8(%rsp)
  39. movq %rdx,128+16(%rsp)
  40. movq %rax,152(%rsp)
  41. L$prologue:
  42. movq 0(%rdi),%rax
  43. movq 8(%rdi),%rbx
  44. movq 16(%rdi),%rcx
  45. movq 24(%rdi),%rdx
  46. movq 32(%rdi),%r8
  47. movq 40(%rdi),%r9
  48. movq 48(%rdi),%r10
  49. movq 56(%rdi),%r11
  50. jmp L$loop
  51. .p2align 4
  52. L$loop:
  53. movq %rbx,%rdi
  54. leaq K512(%rip),%rbp
  55. xorq %rcx,%rdi
  56. movq 0(%rsi),%r12
  57. movq %r8,%r13
  58. movq %rax,%r14
  59. bswapq %r12
  60. rorq $23,%r13
  61. movq %r9,%r15
  62. xorq %r8,%r13
  63. rorq $5,%r14
  64. xorq %r10,%r15
  65. movq %r12,0(%rsp)
  66. xorq %rax,%r14
  67. andq %r8,%r15
  68. rorq $4,%r13
  69. addq %r11,%r12
  70. xorq %r10,%r15
  71. rorq $6,%r14
  72. xorq %r8,%r13
  73. addq %r15,%r12
  74. movq %rax,%r15
  75. addq (%rbp),%r12
  76. xorq %rax,%r14
  77. xorq %rbx,%r15
  78. rorq $14,%r13
  79. movq %rbx,%r11
  80. andq %r15,%rdi
  81. rorq $28,%r14
  82. addq %r13,%r12
  83. xorq %rdi,%r11
  84. addq %r12,%rdx
  85. addq %r12,%r11
  86. leaq 8(%rbp),%rbp
  87. addq %r14,%r11
  88. movq 8(%rsi),%r12
  89. movq %rdx,%r13
  90. movq %r11,%r14
  91. bswapq %r12
  92. rorq $23,%r13
  93. movq %r8,%rdi
  94. xorq %rdx,%r13
  95. rorq $5,%r14
  96. xorq %r9,%rdi
  97. movq %r12,8(%rsp)
  98. xorq %r11,%r14
  99. andq %rdx,%rdi
  100. rorq $4,%r13
  101. addq %r10,%r12
  102. xorq %r9,%rdi
  103. rorq $6,%r14
  104. xorq %rdx,%r13
  105. addq %rdi,%r12
  106. movq %r11,%rdi
  107. addq (%rbp),%r12
  108. xorq %r11,%r14
  109. xorq %rax,%rdi
  110. rorq $14,%r13
  111. movq %rax,%r10
  112. andq %rdi,%r15
  113. rorq $28,%r14
  114. addq %r13,%r12
  115. xorq %r15,%r10
  116. addq %r12,%rcx
  117. addq %r12,%r10
  118. leaq 24(%rbp),%rbp
  119. addq %r14,%r10
  120. movq 16(%rsi),%r12
  121. movq %rcx,%r13
  122. movq %r10,%r14
  123. bswapq %r12
  124. rorq $23,%r13
  125. movq %rdx,%r15
  126. xorq %rcx,%r13
  127. rorq $5,%r14
  128. xorq %r8,%r15
  129. movq %r12,16(%rsp)
  130. xorq %r10,%r14
  131. andq %rcx,%r15
  132. rorq $4,%r13
  133. addq %r9,%r12
  134. xorq %r8,%r15
  135. rorq $6,%r14
  136. xorq %rcx,%r13
  137. addq %r15,%r12
  138. movq %r10,%r15
  139. addq (%rbp),%r12
  140. xorq %r10,%r14
  141. xorq %r11,%r15
  142. rorq $14,%r13
  143. movq %r11,%r9
  144. andq %r15,%rdi
  145. rorq $28,%r14
  146. addq %r13,%r12
  147. xorq %rdi,%r9
  148. addq %r12,%rbx
  149. addq %r12,%r9
  150. leaq 8(%rbp),%rbp
  151. addq %r14,%r9
  152. movq 24(%rsi),%r12
  153. movq %rbx,%r13
  154. movq %r9,%r14
  155. bswapq %r12
  156. rorq $23,%r13
  157. movq %rcx,%rdi
  158. xorq %rbx,%r13
  159. rorq $5,%r14
  160. xorq %rdx,%rdi
  161. movq %r12,24(%rsp)
  162. xorq %r9,%r14
  163. andq %rbx,%rdi
  164. rorq $4,%r13
  165. addq %r8,%r12
  166. xorq %rdx,%rdi
  167. rorq $6,%r14
  168. xorq %rbx,%r13
  169. addq %rdi,%r12
  170. movq %r9,%rdi
  171. addq (%rbp),%r12
  172. xorq %r9,%r14
  173. xorq %r10,%rdi
  174. rorq $14,%r13
  175. movq %r10,%r8
  176. andq %rdi,%r15
  177. rorq $28,%r14
  178. addq %r13,%r12
  179. xorq %r15,%r8
  180. addq %r12,%rax
  181. addq %r12,%r8
  182. leaq 24(%rbp),%rbp
  183. addq %r14,%r8
  184. movq 32(%rsi),%r12
  185. movq %rax,%r13
  186. movq %r8,%r14
  187. bswapq %r12
  188. rorq $23,%r13
  189. movq %rbx,%r15
  190. xorq %rax,%r13
  191. rorq $5,%r14
  192. xorq %rcx,%r15
  193. movq %r12,32(%rsp)
  194. xorq %r8,%r14
  195. andq %rax,%r15
  196. rorq $4,%r13
  197. addq %rdx,%r12
  198. xorq %rcx,%r15
  199. rorq $6,%r14
  200. xorq %rax,%r13
  201. addq %r15,%r12
  202. movq %r8,%r15
  203. addq (%rbp),%r12
  204. xorq %r8,%r14
  205. xorq %r9,%r15
  206. rorq $14,%r13
  207. movq %r9,%rdx
  208. andq %r15,%rdi
  209. rorq $28,%r14
  210. addq %r13,%r12
  211. xorq %rdi,%rdx
  212. addq %r12,%r11
  213. addq %r12,%rdx
  214. leaq 8(%rbp),%rbp
  215. addq %r14,%rdx
  216. movq 40(%rsi),%r12
  217. movq %r11,%r13
  218. movq %rdx,%r14
  219. bswapq %r12
  220. rorq $23,%r13
  221. movq %rax,%rdi
  222. xorq %r11,%r13
  223. rorq $5,%r14
  224. xorq %rbx,%rdi
  225. movq %r12,40(%rsp)
  226. xorq %rdx,%r14
  227. andq %r11,%rdi
  228. rorq $4,%r13
  229. addq %rcx,%r12
  230. xorq %rbx,%rdi
  231. rorq $6,%r14
  232. xorq %r11,%r13
  233. addq %rdi,%r12
  234. movq %rdx,%rdi
  235. addq (%rbp),%r12
  236. xorq %rdx,%r14
  237. xorq %r8,%rdi
  238. rorq $14,%r13
  239. movq %r8,%rcx
  240. andq %rdi,%r15
  241. rorq $28,%r14
  242. addq %r13,%r12
  243. xorq %r15,%rcx
  244. addq %r12,%r10
  245. addq %r12,%rcx
  246. leaq 24(%rbp),%rbp
  247. addq %r14,%rcx
  248. movq 48(%rsi),%r12
  249. movq %r10,%r13
  250. movq %rcx,%r14
  251. bswapq %r12
  252. rorq $23,%r13
  253. movq %r11,%r15
  254. xorq %r10,%r13
  255. rorq $5,%r14
  256. xorq %rax,%r15
  257. movq %r12,48(%rsp)
  258. xorq %rcx,%r14
  259. andq %r10,%r15
  260. rorq $4,%r13
  261. addq %rbx,%r12
  262. xorq %rax,%r15
  263. rorq $6,%r14
  264. xorq %r10,%r13
  265. addq %r15,%r12
  266. movq %rcx,%r15
  267. addq (%rbp),%r12
  268. xorq %rcx,%r14
  269. xorq %rdx,%r15
  270. rorq $14,%r13
  271. movq %rdx,%rbx
  272. andq %r15,%rdi
  273. rorq $28,%r14
  274. addq %r13,%r12
  275. xorq %rdi,%rbx
  276. addq %r12,%r9
  277. addq %r12,%rbx
  278. leaq 8(%rbp),%rbp
  279. addq %r14,%rbx
  280. movq 56(%rsi),%r12
  281. movq %r9,%r13
  282. movq %rbx,%r14
  283. bswapq %r12
  284. rorq $23,%r13
  285. movq %r10,%rdi
  286. xorq %r9,%r13
  287. rorq $5,%r14
  288. xorq %r11,%rdi
  289. movq %r12,56(%rsp)
  290. xorq %rbx,%r14
  291. andq %r9,%rdi
  292. rorq $4,%r13
  293. addq %rax,%r12
  294. xorq %r11,%rdi
  295. rorq $6,%r14
  296. xorq %r9,%r13
  297. addq %rdi,%r12
  298. movq %rbx,%rdi
  299. addq (%rbp),%r12
  300. xorq %rbx,%r14
  301. xorq %rcx,%rdi
  302. rorq $14,%r13
  303. movq %rcx,%rax
  304. andq %rdi,%r15
  305. rorq $28,%r14
  306. addq %r13,%r12
  307. xorq %r15,%rax
  308. addq %r12,%r8
  309. addq %r12,%rax
  310. leaq 24(%rbp),%rbp
  311. addq %r14,%rax
  312. movq 64(%rsi),%r12
  313. movq %r8,%r13
  314. movq %rax,%r14
  315. bswapq %r12
  316. rorq $23,%r13
  317. movq %r9,%r15
  318. xorq %r8,%r13
  319. rorq $5,%r14
  320. xorq %r10,%r15
  321. movq %r12,64(%rsp)
  322. xorq %rax,%r14
  323. andq %r8,%r15
  324. rorq $4,%r13
  325. addq %r11,%r12
  326. xorq %r10,%r15
  327. rorq $6,%r14
  328. xorq %r8,%r13
  329. addq %r15,%r12
  330. movq %rax,%r15
  331. addq (%rbp),%r12
  332. xorq %rax,%r14
  333. xorq %rbx,%r15
  334. rorq $14,%r13
  335. movq %rbx,%r11
  336. andq %r15,%rdi
  337. rorq $28,%r14
  338. addq %r13,%r12
  339. xorq %rdi,%r11
  340. addq %r12,%rdx
  341. addq %r12,%r11
  342. leaq 8(%rbp),%rbp
  343. addq %r14,%r11
  344. movq 72(%rsi),%r12
  345. movq %rdx,%r13
  346. movq %r11,%r14
  347. bswapq %r12
  348. rorq $23,%r13
  349. movq %r8,%rdi
  350. xorq %rdx,%r13
  351. rorq $5,%r14
  352. xorq %r9,%rdi
  353. movq %r12,72(%rsp)
  354. xorq %r11,%r14
  355. andq %rdx,%rdi
  356. rorq $4,%r13
  357. addq %r10,%r12
  358. xorq %r9,%rdi
  359. rorq $6,%r14
  360. xorq %rdx,%r13
  361. addq %rdi,%r12
  362. movq %r11,%rdi
  363. addq (%rbp),%r12
  364. xorq %r11,%r14
  365. xorq %rax,%rdi
  366. rorq $14,%r13
  367. movq %rax,%r10
  368. andq %rdi,%r15
  369. rorq $28,%r14
  370. addq %r13,%r12
  371. xorq %r15,%r10
  372. addq %r12,%rcx
  373. addq %r12,%r10
  374. leaq 24(%rbp),%rbp
  375. addq %r14,%r10
  376. movq 80(%rsi),%r12
  377. movq %rcx,%r13
  378. movq %r10,%r14
  379. bswapq %r12
  380. rorq $23,%r13
  381. movq %rdx,%r15
  382. xorq %rcx,%r13
  383. rorq $5,%r14
  384. xorq %r8,%r15
  385. movq %r12,80(%rsp)
  386. xorq %r10,%r14
  387. andq %rcx,%r15
  388. rorq $4,%r13
  389. addq %r9,%r12
  390. xorq %r8,%r15
  391. rorq $6,%r14
  392. xorq %rcx,%r13
  393. addq %r15,%r12
  394. movq %r10,%r15
  395. addq (%rbp),%r12
  396. xorq %r10,%r14
  397. xorq %r11,%r15
  398. rorq $14,%r13
  399. movq %r11,%r9
  400. andq %r15,%rdi
  401. rorq $28,%r14
  402. addq %r13,%r12
  403. xorq %rdi,%r9
  404. addq %r12,%rbx
  405. addq %r12,%r9
  406. leaq 8(%rbp),%rbp
  407. addq %r14,%r9
  408. movq 88(%rsi),%r12
  409. movq %rbx,%r13
  410. movq %r9,%r14
  411. bswapq %r12
  412. rorq $23,%r13
  413. movq %rcx,%rdi
  414. xorq %rbx,%r13
  415. rorq $5,%r14
  416. xorq %rdx,%rdi
  417. movq %r12,88(%rsp)
  418. xorq %r9,%r14
  419. andq %rbx,%rdi
  420. rorq $4,%r13
  421. addq %r8,%r12
  422. xorq %rdx,%rdi
  423. rorq $6,%r14
  424. xorq %rbx,%r13
  425. addq %rdi,%r12
  426. movq %r9,%rdi
  427. addq (%rbp),%r12
  428. xorq %r9,%r14
  429. xorq %r10,%rdi
  430. rorq $14,%r13
  431. movq %r10,%r8
  432. andq %rdi,%r15
  433. rorq $28,%r14
  434. addq %r13,%r12
  435. xorq %r15,%r8
  436. addq %r12,%rax
  437. addq %r12,%r8
  438. leaq 24(%rbp),%rbp
  439. addq %r14,%r8
  440. movq 96(%rsi),%r12
  441. movq %rax,%r13
  442. movq %r8,%r14
  443. bswapq %r12
  444. rorq $23,%r13
  445. movq %rbx,%r15
  446. xorq %rax,%r13
  447. rorq $5,%r14
  448. xorq %rcx,%r15
  449. movq %r12,96(%rsp)
  450. xorq %r8,%r14
  451. andq %rax,%r15
  452. rorq $4,%r13
  453. addq %rdx,%r12
  454. xorq %rcx,%r15
  455. rorq $6,%r14
  456. xorq %rax,%r13
  457. addq %r15,%r12
  458. movq %r8,%r15
  459. addq (%rbp),%r12
  460. xorq %r8,%r14
  461. xorq %r9,%r15
  462. rorq $14,%r13
  463. movq %r9,%rdx
  464. andq %r15,%rdi
  465. rorq $28,%r14
  466. addq %r13,%r12
  467. xorq %rdi,%rdx
  468. addq %r12,%r11
  469. addq %r12,%rdx
  470. leaq 8(%rbp),%rbp
  471. addq %r14,%rdx
  472. movq 104(%rsi),%r12
  473. movq %r11,%r13
  474. movq %rdx,%r14
  475. bswapq %r12
  476. rorq $23,%r13
  477. movq %rax,%rdi
  478. xorq %r11,%r13
  479. rorq $5,%r14
  480. xorq %rbx,%rdi
  481. movq %r12,104(%rsp)
  482. xorq %rdx,%r14
  483. andq %r11,%rdi
  484. rorq $4,%r13
  485. addq %rcx,%r12
  486. xorq %rbx,%rdi
  487. rorq $6,%r14
  488. xorq %r11,%r13
  489. addq %rdi,%r12
  490. movq %rdx,%rdi
  491. addq (%rbp),%r12
  492. xorq %rdx,%r14
  493. xorq %r8,%rdi
  494. rorq $14,%r13
  495. movq %r8,%rcx
  496. andq %rdi,%r15
  497. rorq $28,%r14
  498. addq %r13,%r12
  499. xorq %r15,%rcx
  500. addq %r12,%r10
  501. addq %r12,%rcx
  502. leaq 24(%rbp),%rbp
  503. addq %r14,%rcx
  504. movq 112(%rsi),%r12
  505. movq %r10,%r13
  506. movq %rcx,%r14
  507. bswapq %r12
  508. rorq $23,%r13
  509. movq %r11,%r15
  510. xorq %r10,%r13
  511. rorq $5,%r14
  512. xorq %rax,%r15
  513. movq %r12,112(%rsp)
  514. xorq %rcx,%r14
  515. andq %r10,%r15
  516. rorq $4,%r13
  517. addq %rbx,%r12
  518. xorq %rax,%r15
  519. rorq $6,%r14
  520. xorq %r10,%r13
  521. addq %r15,%r12
  522. movq %rcx,%r15
  523. addq (%rbp),%r12
  524. xorq %rcx,%r14
  525. xorq %rdx,%r15
  526. rorq $14,%r13
  527. movq %rdx,%rbx
  528. andq %r15,%rdi
  529. rorq $28,%r14
  530. addq %r13,%r12
  531. xorq %rdi,%rbx
  532. addq %r12,%r9
  533. addq %r12,%rbx
  534. leaq 8(%rbp),%rbp
  535. addq %r14,%rbx
  536. movq 120(%rsi),%r12
  537. movq %r9,%r13
  538. movq %rbx,%r14
  539. bswapq %r12
  540. rorq $23,%r13
  541. movq %r10,%rdi
  542. xorq %r9,%r13
  543. rorq $5,%r14
  544. xorq %r11,%rdi
  545. movq %r12,120(%rsp)
  546. xorq %rbx,%r14
  547. andq %r9,%rdi
  548. rorq $4,%r13
  549. addq %rax,%r12
  550. xorq %r11,%rdi
  551. rorq $6,%r14
  552. xorq %r9,%r13
  553. addq %rdi,%r12
  554. movq %rbx,%rdi
  555. addq (%rbp),%r12
  556. xorq %rbx,%r14
  557. xorq %rcx,%rdi
  558. rorq $14,%r13
  559. movq %rcx,%rax
  560. andq %rdi,%r15
  561. rorq $28,%r14
  562. addq %r13,%r12
  563. xorq %r15,%rax
  564. addq %r12,%r8
  565. addq %r12,%rax
  566. leaq 24(%rbp),%rbp
  567. jmp L$rounds_16_xx
  568. .p2align 4
  569. L$rounds_16_xx:
  570. movq 8(%rsp),%r13
  571. movq 112(%rsp),%r15
  572. movq %r13,%r12
  573. rorq $7,%r13
  574. addq %r14,%rax
  575. movq %r15,%r14
  576. rorq $42,%r15
  577. xorq %r12,%r13
  578. shrq $7,%r12
  579. rorq $1,%r13
  580. xorq %r14,%r15
  581. shrq $6,%r14
  582. rorq $19,%r15
  583. xorq %r13,%r12
  584. xorq %r14,%r15
  585. addq 72(%rsp),%r12
  586. addq 0(%rsp),%r12
  587. movq %r8,%r13
  588. addq %r15,%r12
  589. movq %rax,%r14
  590. rorq $23,%r13
  591. movq %r9,%r15
  592. xorq %r8,%r13
  593. rorq $5,%r14
  594. xorq %r10,%r15
  595. movq %r12,0(%rsp)
  596. xorq %rax,%r14
  597. andq %r8,%r15
  598. rorq $4,%r13
  599. addq %r11,%r12
  600. xorq %r10,%r15
  601. rorq $6,%r14
  602. xorq %r8,%r13
  603. addq %r15,%r12
  604. movq %rax,%r15
  605. addq (%rbp),%r12
  606. xorq %rax,%r14
  607. xorq %rbx,%r15
  608. rorq $14,%r13
  609. movq %rbx,%r11
  610. andq %r15,%rdi
  611. rorq $28,%r14
  612. addq %r13,%r12
  613. xorq %rdi,%r11
  614. addq %r12,%rdx
  615. addq %r12,%r11
  616. leaq 8(%rbp),%rbp
  617. movq 16(%rsp),%r13
  618. movq 120(%rsp),%rdi
  619. movq %r13,%r12
  620. rorq $7,%r13
  621. addq %r14,%r11
  622. movq %rdi,%r14
  623. rorq $42,%rdi
  624. xorq %r12,%r13
  625. shrq $7,%r12
  626. rorq $1,%r13
  627. xorq %r14,%rdi
  628. shrq $6,%r14
  629. rorq $19,%rdi
  630. xorq %r13,%r12
  631. xorq %r14,%rdi
  632. addq 80(%rsp),%r12
  633. addq 8(%rsp),%r12
  634. movq %rdx,%r13
  635. addq %rdi,%r12
  636. movq %r11,%r14
  637. rorq $23,%r13
  638. movq %r8,%rdi
  639. xorq %rdx,%r13
  640. rorq $5,%r14
  641. xorq %r9,%rdi
  642. movq %r12,8(%rsp)
  643. xorq %r11,%r14
  644. andq %rdx,%rdi
  645. rorq $4,%r13
  646. addq %r10,%r12
  647. xorq %r9,%rdi
  648. rorq $6,%r14
  649. xorq %rdx,%r13
  650. addq %rdi,%r12
  651. movq %r11,%rdi
  652. addq (%rbp),%r12
  653. xorq %r11,%r14
  654. xorq %rax,%rdi
  655. rorq $14,%r13
  656. movq %rax,%r10
  657. andq %rdi,%r15
  658. rorq $28,%r14
  659. addq %r13,%r12
  660. xorq %r15,%r10
  661. addq %r12,%rcx
  662. addq %r12,%r10
  663. leaq 24(%rbp),%rbp
  664. movq 24(%rsp),%r13
  665. movq 0(%rsp),%r15
  666. movq %r13,%r12
  667. rorq $7,%r13
  668. addq %r14,%r10
  669. movq %r15,%r14
  670. rorq $42,%r15
  671. xorq %r12,%r13
  672. shrq $7,%r12
  673. rorq $1,%r13
  674. xorq %r14,%r15
  675. shrq $6,%r14
  676. rorq $19,%r15
  677. xorq %r13,%r12
  678. xorq %r14,%r15
  679. addq 88(%rsp),%r12
  680. addq 16(%rsp),%r12
  681. movq %rcx,%r13
  682. addq %r15,%r12
  683. movq %r10,%r14
  684. rorq $23,%r13
  685. movq %rdx,%r15
  686. xorq %rcx,%r13
  687. rorq $5,%r14
  688. xorq %r8,%r15
  689. movq %r12,16(%rsp)
  690. xorq %r10,%r14
  691. andq %rcx,%r15
  692. rorq $4,%r13
  693. addq %r9,%r12
  694. xorq %r8,%r15
  695. rorq $6,%r14
  696. xorq %rcx,%r13
  697. addq %r15,%r12
  698. movq %r10,%r15
  699. addq (%rbp),%r12
  700. xorq %r10,%r14
  701. xorq %r11,%r15
  702. rorq $14,%r13
  703. movq %r11,%r9
  704. andq %r15,%rdi
  705. rorq $28,%r14
  706. addq %r13,%r12
  707. xorq %rdi,%r9
  708. addq %r12,%rbx
  709. addq %r12,%r9
  710. leaq 8(%rbp),%rbp
  711. movq 32(%rsp),%r13
  712. movq 8(%rsp),%rdi
  713. movq %r13,%r12
  714. rorq $7,%r13
  715. addq %r14,%r9
  716. movq %rdi,%r14
  717. rorq $42,%rdi
  718. xorq %r12,%r13
  719. shrq $7,%r12
  720. rorq $1,%r13
  721. xorq %r14,%rdi
  722. shrq $6,%r14
  723. rorq $19,%rdi
  724. xorq %r13,%r12
  725. xorq %r14,%rdi
  726. addq 96(%rsp),%r12
  727. addq 24(%rsp),%r12
  728. movq %rbx,%r13
  729. addq %rdi,%r12
  730. movq %r9,%r14
  731. rorq $23,%r13
  732. movq %rcx,%rdi
  733. xorq %rbx,%r13
  734. rorq $5,%r14
  735. xorq %rdx,%rdi
  736. movq %r12,24(%rsp)
  737. xorq %r9,%r14
  738. andq %rbx,%rdi
  739. rorq $4,%r13
  740. addq %r8,%r12
  741. xorq %rdx,%rdi
  742. rorq $6,%r14
  743. xorq %rbx,%r13
  744. addq %rdi,%r12
  745. movq %r9,%rdi
  746. addq (%rbp),%r12
  747. xorq %r9,%r14
  748. xorq %r10,%rdi
  749. rorq $14,%r13
  750. movq %r10,%r8
  751. andq %rdi,%r15
  752. rorq $28,%r14
  753. addq %r13,%r12
  754. xorq %r15,%r8
  755. addq %r12,%rax
  756. addq %r12,%r8
  757. leaq 24(%rbp),%rbp
  758. movq 40(%rsp),%r13
  759. movq 16(%rsp),%r15
  760. movq %r13,%r12
  761. rorq $7,%r13
  762. addq %r14,%r8
  763. movq %r15,%r14
  764. rorq $42,%r15
  765. xorq %r12,%r13
  766. shrq $7,%r12
  767. rorq $1,%r13
  768. xorq %r14,%r15
  769. shrq $6,%r14
  770. rorq $19,%r15
  771. xorq %r13,%r12
  772. xorq %r14,%r15
  773. addq 104(%rsp),%r12
  774. addq 32(%rsp),%r12
  775. movq %rax,%r13
  776. addq %r15,%r12
  777. movq %r8,%r14
  778. rorq $23,%r13
  779. movq %rbx,%r15
  780. xorq %rax,%r13
  781. rorq $5,%r14
  782. xorq %rcx,%r15
  783. movq %r12,32(%rsp)
  784. xorq %r8,%r14
  785. andq %rax,%r15
  786. rorq $4,%r13
  787. addq %rdx,%r12
  788. xorq %rcx,%r15
  789. rorq $6,%r14
  790. xorq %rax,%r13
  791. addq %r15,%r12
  792. movq %r8,%r15
  793. addq (%rbp),%r12
  794. xorq %r8,%r14
  795. xorq %r9,%r15
  796. rorq $14,%r13
  797. movq %r9,%rdx
  798. andq %r15,%rdi
  799. rorq $28,%r14
  800. addq %r13,%r12
  801. xorq %rdi,%rdx
  802. addq %r12,%r11
  803. addq %r12,%rdx
  804. leaq 8(%rbp),%rbp
  805. movq 48(%rsp),%r13
  806. movq 24(%rsp),%rdi
  807. movq %r13,%r12
  808. rorq $7,%r13
  809. addq %r14,%rdx
  810. movq %rdi,%r14
  811. rorq $42,%rdi
  812. xorq %r12,%r13
  813. shrq $7,%r12
  814. rorq $1,%r13
  815. xorq %r14,%rdi
  816. shrq $6,%r14
  817. rorq $19,%rdi
  818. xorq %r13,%r12
  819. xorq %r14,%rdi
  820. addq 112(%rsp),%r12
  821. addq 40(%rsp),%r12
  822. movq %r11,%r13
  823. addq %rdi,%r12
  824. movq %rdx,%r14
  825. rorq $23,%r13
  826. movq %rax,%rdi
  827. xorq %r11,%r13
  828. rorq $5,%r14
  829. xorq %rbx,%rdi
  830. movq %r12,40(%rsp)
  831. xorq %rdx,%r14
  832. andq %r11,%rdi
  833. rorq $4,%r13
  834. addq %rcx,%r12
  835. xorq %rbx,%rdi
  836. rorq $6,%r14
  837. xorq %r11,%r13
  838. addq %rdi,%r12
  839. movq %rdx,%rdi
  840. addq (%rbp),%r12
  841. xorq %rdx,%r14
  842. xorq %r8,%rdi
  843. rorq $14,%r13
  844. movq %r8,%rcx
  845. andq %rdi,%r15
  846. rorq $28,%r14
  847. addq %r13,%r12
  848. xorq %r15,%rcx
  849. addq %r12,%r10
  850. addq %r12,%rcx
  851. leaq 24(%rbp),%rbp
  852. movq 56(%rsp),%r13
  853. movq 32(%rsp),%r15
  854. movq %r13,%r12
  855. rorq $7,%r13
  856. addq %r14,%rcx
  857. movq %r15,%r14
  858. rorq $42,%r15
  859. xorq %r12,%r13
  860. shrq $7,%r12
  861. rorq $1,%r13
  862. xorq %r14,%r15
  863. shrq $6,%r14
  864. rorq $19,%r15
  865. xorq %r13,%r12
  866. xorq %r14,%r15
  867. addq 120(%rsp),%r12
  868. addq 48(%rsp),%r12
  869. movq %r10,%r13
  870. addq %r15,%r12
  871. movq %rcx,%r14
  872. rorq $23,%r13
  873. movq %r11,%r15
  874. xorq %r10,%r13
  875. rorq $5,%r14
  876. xorq %rax,%r15
  877. movq %r12,48(%rsp)
  878. xorq %rcx,%r14
  879. andq %r10,%r15
  880. rorq $4,%r13
  881. addq %rbx,%r12
  882. xorq %rax,%r15
  883. rorq $6,%r14
  884. xorq %r10,%r13
  885. addq %r15,%r12
  886. movq %rcx,%r15
  887. addq (%rbp),%r12
  888. xorq %rcx,%r14
  889. xorq %rdx,%r15
  890. rorq $14,%r13
  891. movq %rdx,%rbx
  892. andq %r15,%rdi
  893. rorq $28,%r14
  894. addq %r13,%r12
  895. xorq %rdi,%rbx
  896. addq %r12,%r9
  897. addq %r12,%rbx
  898. leaq 8(%rbp),%rbp
  899. movq 64(%rsp),%r13
  900. movq 40(%rsp),%rdi
  901. movq %r13,%r12
  902. rorq $7,%r13
  903. addq %r14,%rbx
  904. movq %rdi,%r14
  905. rorq $42,%rdi
  906. xorq %r12,%r13
  907. shrq $7,%r12
  908. rorq $1,%r13
  909. xorq %r14,%rdi
  910. shrq $6,%r14
  911. rorq $19,%rdi
  912. xorq %r13,%r12
  913. xorq %r14,%rdi
  914. addq 0(%rsp),%r12
  915. addq 56(%rsp),%r12
  916. movq %r9,%r13
  917. addq %rdi,%r12
  918. movq %rbx,%r14
  919. rorq $23,%r13
  920. movq %r10,%rdi
  921. xorq %r9,%r13
  922. rorq $5,%r14
  923. xorq %r11,%rdi
  924. movq %r12,56(%rsp)
  925. xorq %rbx,%r14
  926. andq %r9,%rdi
  927. rorq $4,%r13
  928. addq %rax,%r12
  929. xorq %r11,%rdi
  930. rorq $6,%r14
  931. xorq %r9,%r13
  932. addq %rdi,%r12
  933. movq %rbx,%rdi
  934. addq (%rbp),%r12
  935. xorq %rbx,%r14
  936. xorq %rcx,%rdi
  937. rorq $14,%r13
  938. movq %rcx,%rax
  939. andq %rdi,%r15
  940. rorq $28,%r14
  941. addq %r13,%r12
  942. xorq %r15,%rax
  943. addq %r12,%r8
  944. addq %r12,%rax
  945. leaq 24(%rbp),%rbp
  946. movq 72(%rsp),%r13
  947. movq 48(%rsp),%r15
  948. movq %r13,%r12
  949. rorq $7,%r13
  950. addq %r14,%rax
  951. movq %r15,%r14
  952. rorq $42,%r15
  953. xorq %r12,%r13
  954. shrq $7,%r12
  955. rorq $1,%r13
  956. xorq %r14,%r15
  957. shrq $6,%r14
  958. rorq $19,%r15
  959. xorq %r13,%r12
  960. xorq %r14,%r15
  961. addq 8(%rsp),%r12
  962. addq 64(%rsp),%r12
  963. movq %r8,%r13
  964. addq %r15,%r12
  965. movq %rax,%r14
  966. rorq $23,%r13
  967. movq %r9,%r15
  968. xorq %r8,%r13
  969. rorq $5,%r14
  970. xorq %r10,%r15
  971. movq %r12,64(%rsp)
  972. xorq %rax,%r14
  973. andq %r8,%r15
  974. rorq $4,%r13
  975. addq %r11,%r12
  976. xorq %r10,%r15
  977. rorq $6,%r14
  978. xorq %r8,%r13
  979. addq %r15,%r12
  980. movq %rax,%r15
  981. addq (%rbp),%r12
  982. xorq %rax,%r14
  983. xorq %rbx,%r15
  984. rorq $14,%r13
  985. movq %rbx,%r11
  986. andq %r15,%rdi
  987. rorq $28,%r14
  988. addq %r13,%r12
  989. xorq %rdi,%r11
  990. addq %r12,%rdx
  991. addq %r12,%r11
  992. leaq 8(%rbp),%rbp
  993. movq 80(%rsp),%r13
  994. movq 56(%rsp),%rdi
  995. movq %r13,%r12
  996. rorq $7,%r13
  997. addq %r14,%r11
  998. movq %rdi,%r14
  999. rorq $42,%rdi
  1000. xorq %r12,%r13
  1001. shrq $7,%r12
  1002. rorq $1,%r13
  1003. xorq %r14,%rdi
  1004. shrq $6,%r14
  1005. rorq $19,%rdi
  1006. xorq %r13,%r12
  1007. xorq %r14,%rdi
  1008. addq 16(%rsp),%r12
  1009. addq 72(%rsp),%r12
  1010. movq %rdx,%r13
  1011. addq %rdi,%r12
  1012. movq %r11,%r14
  1013. rorq $23,%r13
  1014. movq %r8,%rdi
  1015. xorq %rdx,%r13
  1016. rorq $5,%r14
  1017. xorq %r9,%rdi
  1018. movq %r12,72(%rsp)
  1019. xorq %r11,%r14
  1020. andq %rdx,%rdi
  1021. rorq $4,%r13
  1022. addq %r10,%r12
  1023. xorq %r9,%rdi
  1024. rorq $6,%r14
  1025. xorq %rdx,%r13
  1026. addq %rdi,%r12
  1027. movq %r11,%rdi
  1028. addq (%rbp),%r12
  1029. xorq %r11,%r14
  1030. xorq %rax,%rdi
  1031. rorq $14,%r13
  1032. movq %rax,%r10
  1033. andq %rdi,%r15
  1034. rorq $28,%r14
  1035. addq %r13,%r12
  1036. xorq %r15,%r10
  1037. addq %r12,%rcx
  1038. addq %r12,%r10
  1039. leaq 24(%rbp),%rbp
  1040. movq 88(%rsp),%r13
  1041. movq 64(%rsp),%r15
  1042. movq %r13,%r12
  1043. rorq $7,%r13
  1044. addq %r14,%r10
  1045. movq %r15,%r14
  1046. rorq $42,%r15
  1047. xorq %r12,%r13
  1048. shrq $7,%r12
  1049. rorq $1,%r13
  1050. xorq %r14,%r15
  1051. shrq $6,%r14
  1052. rorq $19,%r15
  1053. xorq %r13,%r12
  1054. xorq %r14,%r15
  1055. addq 24(%rsp),%r12
  1056. addq 80(%rsp),%r12
  1057. movq %rcx,%r13
  1058. addq %r15,%r12
  1059. movq %r10,%r14
  1060. rorq $23,%r13
  1061. movq %rdx,%r15
  1062. xorq %rcx,%r13
  1063. rorq $5,%r14
  1064. xorq %r8,%r15
  1065. movq %r12,80(%rsp)
  1066. xorq %r10,%r14
  1067. andq %rcx,%r15
  1068. rorq $4,%r13
  1069. addq %r9,%r12
  1070. xorq %r8,%r15
  1071. rorq $6,%r14
  1072. xorq %rcx,%r13
  1073. addq %r15,%r12
  1074. movq %r10,%r15
  1075. addq (%rbp),%r12
  1076. xorq %r10,%r14
  1077. xorq %r11,%r15
  1078. rorq $14,%r13
  1079. movq %r11,%r9
  1080. andq %r15,%rdi
  1081. rorq $28,%r14
  1082. addq %r13,%r12
  1083. xorq %rdi,%r9
  1084. addq %r12,%rbx
  1085. addq %r12,%r9
  1086. leaq 8(%rbp),%rbp
  1087. movq 96(%rsp),%r13
  1088. movq 72(%rsp),%rdi
  1089. movq %r13,%r12
  1090. rorq $7,%r13
  1091. addq %r14,%r9
  1092. movq %rdi,%r14
  1093. rorq $42,%rdi
  1094. xorq %r12,%r13
  1095. shrq $7,%r12
  1096. rorq $1,%r13
  1097. xorq %r14,%rdi
  1098. shrq $6,%r14
  1099. rorq $19,%rdi
  1100. xorq %r13,%r12
  1101. xorq %r14,%rdi
  1102. addq 32(%rsp),%r12
  1103. addq 88(%rsp),%r12
  1104. movq %rbx,%r13
  1105. addq %rdi,%r12
  1106. movq %r9,%r14
  1107. rorq $23,%r13
  1108. movq %rcx,%rdi
  1109. xorq %rbx,%r13
  1110. rorq $5,%r14
  1111. xorq %rdx,%rdi
  1112. movq %r12,88(%rsp)
  1113. xorq %r9,%r14
  1114. andq %rbx,%rdi
  1115. rorq $4,%r13
  1116. addq %r8,%r12
  1117. xorq %rdx,%rdi
  1118. rorq $6,%r14
  1119. xorq %rbx,%r13
  1120. addq %rdi,%r12
  1121. movq %r9,%rdi
  1122. addq (%rbp),%r12
  1123. xorq %r9,%r14
  1124. xorq %r10,%rdi
  1125. rorq $14,%r13
  1126. movq %r10,%r8
  1127. andq %rdi,%r15
  1128. rorq $28,%r14
  1129. addq %r13,%r12
  1130. xorq %r15,%r8
  1131. addq %r12,%rax
  1132. addq %r12,%r8
  1133. leaq 24(%rbp),%rbp
  1134. movq 104(%rsp),%r13
  1135. movq 80(%rsp),%r15
  1136. movq %r13,%r12
  1137. rorq $7,%r13
  1138. addq %r14,%r8
  1139. movq %r15,%r14
  1140. rorq $42,%r15
  1141. xorq %r12,%r13
  1142. shrq $7,%r12
  1143. rorq $1,%r13
  1144. xorq %r14,%r15
  1145. shrq $6,%r14
  1146. rorq $19,%r15
  1147. xorq %r13,%r12
  1148. xorq %r14,%r15
  1149. addq 40(%rsp),%r12
  1150. addq 96(%rsp),%r12
  1151. movq %rax,%r13
  1152. addq %r15,%r12
  1153. movq %r8,%r14
  1154. rorq $23,%r13
  1155. movq %rbx,%r15
  1156. xorq %rax,%r13
  1157. rorq $5,%r14
  1158. xorq %rcx,%r15
  1159. movq %r12,96(%rsp)
  1160. xorq %r8,%r14
  1161. andq %rax,%r15
  1162. rorq $4,%r13
  1163. addq %rdx,%r12
  1164. xorq %rcx,%r15
  1165. rorq $6,%r14
  1166. xorq %rax,%r13
  1167. addq %r15,%r12
  1168. movq %r8,%r15
  1169. addq (%rbp),%r12
  1170. xorq %r8,%r14
  1171. xorq %r9,%r15
  1172. rorq $14,%r13
  1173. movq %r9,%rdx
  1174. andq %r15,%rdi
  1175. rorq $28,%r14
  1176. addq %r13,%r12
  1177. xorq %rdi,%rdx
  1178. addq %r12,%r11
  1179. addq %r12,%rdx
  1180. leaq 8(%rbp),%rbp
  1181. movq 112(%rsp),%r13
  1182. movq 88(%rsp),%rdi
  1183. movq %r13,%r12
  1184. rorq $7,%r13
  1185. addq %r14,%rdx
  1186. movq %rdi,%r14
  1187. rorq $42,%rdi
  1188. xorq %r12,%r13
  1189. shrq $7,%r12
  1190. rorq $1,%r13
  1191. xorq %r14,%rdi
  1192. shrq $6,%r14
  1193. rorq $19,%rdi
  1194. xorq %r13,%r12
  1195. xorq %r14,%rdi
  1196. addq 48(%rsp),%r12
  1197. addq 104(%rsp),%r12
  1198. movq %r11,%r13
  1199. addq %rdi,%r12
  1200. movq %rdx,%r14
  1201. rorq $23,%r13
  1202. movq %rax,%rdi
  1203. xorq %r11,%r13
  1204. rorq $5,%r14
  1205. xorq %rbx,%rdi
  1206. movq %r12,104(%rsp)
  1207. xorq %rdx,%r14
  1208. andq %r11,%rdi
  1209. rorq $4,%r13
  1210. addq %rcx,%r12
  1211. xorq %rbx,%rdi
  1212. rorq $6,%r14
  1213. xorq %r11,%r13
  1214. addq %rdi,%r12
  1215. movq %rdx,%rdi
  1216. addq (%rbp),%r12
  1217. xorq %rdx,%r14
  1218. xorq %r8,%rdi
  1219. rorq $14,%r13
  1220. movq %r8,%rcx
  1221. andq %rdi,%r15
  1222. rorq $28,%r14
  1223. addq %r13,%r12
  1224. xorq %r15,%rcx
  1225. addq %r12,%r10
  1226. addq %r12,%rcx
  1227. leaq 24(%rbp),%rbp
  1228. movq 120(%rsp),%r13
  1229. movq 96(%rsp),%r15
  1230. movq %r13,%r12
  1231. rorq $7,%r13
  1232. addq %r14,%rcx
  1233. movq %r15,%r14
  1234. rorq $42,%r15
  1235. xorq %r12,%r13
  1236. shrq $7,%r12
  1237. rorq $1,%r13
  1238. xorq %r14,%r15
  1239. shrq $6,%r14
  1240. rorq $19,%r15
  1241. xorq %r13,%r12
  1242. xorq %r14,%r15
  1243. addq 56(%rsp),%r12
  1244. addq 112(%rsp),%r12
  1245. movq %r10,%r13
  1246. addq %r15,%r12
  1247. movq %rcx,%r14
  1248. rorq $23,%r13
  1249. movq %r11,%r15
  1250. xorq %r10,%r13
  1251. rorq $5,%r14
  1252. xorq %rax,%r15
  1253. movq %r12,112(%rsp)
  1254. xorq %rcx,%r14
  1255. andq %r10,%r15
  1256. rorq $4,%r13
  1257. addq %rbx,%r12
  1258. xorq %rax,%r15
  1259. rorq $6,%r14
  1260. xorq %r10,%r13
  1261. addq %r15,%r12
  1262. movq %rcx,%r15
  1263. addq (%rbp),%r12
  1264. xorq %rcx,%r14
  1265. xorq %rdx,%r15
  1266. rorq $14,%r13
  1267. movq %rdx,%rbx
  1268. andq %r15,%rdi
  1269. rorq $28,%r14
  1270. addq %r13,%r12
  1271. xorq %rdi,%rbx
  1272. addq %r12,%r9
  1273. addq %r12,%rbx
  1274. leaq 8(%rbp),%rbp
  1275. movq 0(%rsp),%r13
  1276. movq 104(%rsp),%rdi
  1277. movq %r13,%r12
  1278. rorq $7,%r13
  1279. addq %r14,%rbx
  1280. movq %rdi,%r14
  1281. rorq $42,%rdi
  1282. xorq %r12,%r13
  1283. shrq $7,%r12
  1284. rorq $1,%r13
  1285. xorq %r14,%rdi
  1286. shrq $6,%r14
  1287. rorq $19,%rdi
  1288. xorq %r13,%r12
  1289. xorq %r14,%rdi
  1290. addq 64(%rsp),%r12
  1291. addq 120(%rsp),%r12
  1292. movq %r9,%r13
  1293. addq %rdi,%r12
  1294. movq %rbx,%r14
  1295. rorq $23,%r13
  1296. movq %r10,%rdi
  1297. xorq %r9,%r13
  1298. rorq $5,%r14
  1299. xorq %r11,%rdi
  1300. movq %r12,120(%rsp)
  1301. xorq %rbx,%r14
  1302. andq %r9,%rdi
  1303. rorq $4,%r13
  1304. addq %rax,%r12
  1305. xorq %r11,%rdi
  1306. rorq $6,%r14
  1307. xorq %r9,%r13
  1308. addq %rdi,%r12
  1309. movq %rbx,%rdi
  1310. addq (%rbp),%r12
  1311. xorq %rbx,%r14
  1312. xorq %rcx,%rdi
  1313. rorq $14,%r13
  1314. movq %rcx,%rax
  1315. andq %rdi,%r15
  1316. rorq $28,%r14
  1317. addq %r13,%r12
  1318. xorq %r15,%rax
  1319. addq %r12,%r8
  1320. addq %r12,%rax
  1321. leaq 24(%rbp),%rbp
  1322. cmpb $0,7(%rbp)
  1323. jnz L$rounds_16_xx
  1324. movq 128+0(%rsp),%rdi
  1325. addq %r14,%rax
  1326. leaq 128(%rsi),%rsi
  1327. addq 0(%rdi),%rax
  1328. addq 8(%rdi),%rbx
  1329. addq 16(%rdi),%rcx
  1330. addq 24(%rdi),%rdx
  1331. addq 32(%rdi),%r8
  1332. addq 40(%rdi),%r9
  1333. addq 48(%rdi),%r10
  1334. addq 56(%rdi),%r11
  1335. cmpq 128+16(%rsp),%rsi
  1336. movq %rax,0(%rdi)
  1337. movq %rbx,8(%rdi)
  1338. movq %rcx,16(%rdi)
  1339. movq %rdx,24(%rdi)
  1340. movq %r8,32(%rdi)
  1341. movq %r9,40(%rdi)
  1342. movq %r10,48(%rdi)
  1343. movq %r11,56(%rdi)
  1344. jb L$loop
  1345. movq 152(%rsp),%rsi
  1346. movq -48(%rsi),%r15
  1347. movq -40(%rsi),%r14
  1348. movq -32(%rsi),%r13
  1349. movq -24(%rsi),%r12
  1350. movq -16(%rsi),%rbp
  1351. movq -8(%rsi),%rbx
  1352. leaq (%rsi),%rsp
  1353. L$epilogue:
  1354. .byte 0xf3,0xc3
  1355. .p2align 6
  1356. K512:
  1357. .quad 0x428a2f98d728ae22,0x7137449123ef65cd
  1358. .quad 0x428a2f98d728ae22,0x7137449123ef65cd
  1359. .quad 0xb5c0fbcfec4d3b2f,0xe9b5dba58189dbbc
  1360. .quad 0xb5c0fbcfec4d3b2f,0xe9b5dba58189dbbc
  1361. .quad 0x3956c25bf348b538,0x59f111f1b605d019
  1362. .quad 0x3956c25bf348b538,0x59f111f1b605d019
  1363. .quad 0x923f82a4af194f9b,0xab1c5ed5da6d8118
  1364. .quad 0x923f82a4af194f9b,0xab1c5ed5da6d8118
  1365. .quad 0xd807aa98a3030242,0x12835b0145706fbe
  1366. .quad 0xd807aa98a3030242,0x12835b0145706fbe
  1367. .quad 0x243185be4ee4b28c,0x550c7dc3d5ffb4e2
  1368. .quad 0x243185be4ee4b28c,0x550c7dc3d5ffb4e2
  1369. .quad 0x72be5d74f27b896f,0x80deb1fe3b1696b1
  1370. .quad 0x72be5d74f27b896f,0x80deb1fe3b1696b1
  1371. .quad 0x9bdc06a725c71235,0xc19bf174cf692694
  1372. .quad 0x9bdc06a725c71235,0xc19bf174cf692694
  1373. .quad 0xe49b69c19ef14ad2,0xefbe4786384f25e3
  1374. .quad 0xe49b69c19ef14ad2,0xefbe4786384f25e3
  1375. .quad 0x0fc19dc68b8cd5b5,0x240ca1cc77ac9c65
  1376. .quad 0x0fc19dc68b8cd5b5,0x240ca1cc77ac9c65
  1377. .quad 0x2de92c6f592b0275,0x4a7484aa6ea6e483
  1378. .quad 0x2de92c6f592b0275,0x4a7484aa6ea6e483
  1379. .quad 0x5cb0a9dcbd41fbd4,0x76f988da831153b5
  1380. .quad 0x5cb0a9dcbd41fbd4,0x76f988da831153b5
  1381. .quad 0x983e5152ee66dfab,0xa831c66d2db43210
  1382. .quad 0x983e5152ee66dfab,0xa831c66d2db43210
  1383. .quad 0xb00327c898fb213f,0xbf597fc7beef0ee4
  1384. .quad 0xb00327c898fb213f,0xbf597fc7beef0ee4
  1385. .quad 0xc6e00bf33da88fc2,0xd5a79147930aa725
  1386. .quad 0xc6e00bf33da88fc2,0xd5a79147930aa725
  1387. .quad 0x06ca6351e003826f,0x142929670a0e6e70
  1388. .quad 0x06ca6351e003826f,0x142929670a0e6e70
  1389. .quad 0x27b70a8546d22ffc,0x2e1b21385c26c926
  1390. .quad 0x27b70a8546d22ffc,0x2e1b21385c26c926
  1391. .quad 0x4d2c6dfc5ac42aed,0x53380d139d95b3df
  1392. .quad 0x4d2c6dfc5ac42aed,0x53380d139d95b3df
  1393. .quad 0x650a73548baf63de,0x766a0abb3c77b2a8
  1394. .quad 0x650a73548baf63de,0x766a0abb3c77b2a8
  1395. .quad 0x81c2c92e47edaee6,0x92722c851482353b
  1396. .quad 0x81c2c92e47edaee6,0x92722c851482353b
  1397. .quad 0xa2bfe8a14cf10364,0xa81a664bbc423001
  1398. .quad 0xa2bfe8a14cf10364,0xa81a664bbc423001
  1399. .quad 0xc24b8b70d0f89791,0xc76c51a30654be30
  1400. .quad 0xc24b8b70d0f89791,0xc76c51a30654be30
  1401. .quad 0xd192e819d6ef5218,0xd69906245565a910
  1402. .quad 0xd192e819d6ef5218,0xd69906245565a910
  1403. .quad 0xf40e35855771202a,0x106aa07032bbd1b8
  1404. .quad 0xf40e35855771202a,0x106aa07032bbd1b8
  1405. .quad 0x19a4c116b8d2d0c8,0x1e376c085141ab53
  1406. .quad 0x19a4c116b8d2d0c8,0x1e376c085141ab53
  1407. .quad 0x2748774cdf8eeb99,0x34b0bcb5e19b48a8
  1408. .quad 0x2748774cdf8eeb99,0x34b0bcb5e19b48a8
  1409. .quad 0x391c0cb3c5c95a63,0x4ed8aa4ae3418acb
  1410. .quad 0x391c0cb3c5c95a63,0x4ed8aa4ae3418acb
  1411. .quad 0x5b9cca4f7763e373,0x682e6ff3d6b2b8a3
  1412. .quad 0x5b9cca4f7763e373,0x682e6ff3d6b2b8a3
  1413. .quad 0x748f82ee5defb2fc,0x78a5636f43172f60
  1414. .quad 0x748f82ee5defb2fc,0x78a5636f43172f60
  1415. .quad 0x84c87814a1f0ab72,0x8cc702081a6439ec
  1416. .quad 0x84c87814a1f0ab72,0x8cc702081a6439ec
  1417. .quad 0x90befffa23631e28,0xa4506cebde82bde9
  1418. .quad 0x90befffa23631e28,0xa4506cebde82bde9
  1419. .quad 0xbef9a3f7b2c67915,0xc67178f2e372532b
  1420. .quad 0xbef9a3f7b2c67915,0xc67178f2e372532b
  1421. .quad 0xca273eceea26619c,0xd186b8c721c0c207
  1422. .quad 0xca273eceea26619c,0xd186b8c721c0c207
  1423. .quad 0xeada7dd6cde0eb1e,0xf57d4f7fee6ed178
  1424. .quad 0xeada7dd6cde0eb1e,0xf57d4f7fee6ed178
  1425. .quad 0x06f067aa72176fba,0x0a637dc5a2c898a6
  1426. .quad 0x06f067aa72176fba,0x0a637dc5a2c898a6
  1427. .quad 0x113f9804bef90dae,0x1b710b35131c471b
  1428. .quad 0x113f9804bef90dae,0x1b710b35131c471b
  1429. .quad 0x28db77f523047d84,0x32caab7b40c72493
  1430. .quad 0x28db77f523047d84,0x32caab7b40c72493
  1431. .quad 0x3c9ebe0a15c9bebc,0x431d67c49c100d4c
  1432. .quad 0x3c9ebe0a15c9bebc,0x431d67c49c100d4c
  1433. .quad 0x4cc5d4becb3e42b6,0x597f299cfc657e2a
  1434. .quad 0x4cc5d4becb3e42b6,0x597f299cfc657e2a
  1435. .quad 0x5fcb6fab3ad6faec,0x6c44198c4a475817
  1436. .quad 0x5fcb6fab3ad6faec,0x6c44198c4a475817
  1437. .quad 0x0001020304050607,0x08090a0b0c0d0e0f
  1438. .quad 0x0001020304050607,0x08090a0b0c0d0e0f
  1439. .byte 83,72,65,53,49,50,32,98,108,111,99,107,32,116,114,97,110,115,102,111,114,109,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
  1440. .p2align 6
  1441. sha512_block_data_order_avx:
  1442. L$avx_shortcut:
  1443. movq %rsp,%rax
  1444. pushq %rbx
  1445. pushq %rbp
  1446. pushq %r12
  1447. pushq %r13
  1448. pushq %r14
  1449. pushq %r15
  1450. shlq $4,%rdx
  1451. subq $160,%rsp
  1452. leaq (%rsi,%rdx,8),%rdx
  1453. andq $-64,%rsp
  1454. movq %rdi,128+0(%rsp)
  1455. movq %rsi,128+8(%rsp)
  1456. movq %rdx,128+16(%rsp)
  1457. movq %rax,152(%rsp)
  1458. L$prologue_avx:
  1459. vzeroupper
  1460. movq 0(%rdi),%rax
  1461. movq 8(%rdi),%rbx
  1462. movq 16(%rdi),%rcx
  1463. movq 24(%rdi),%rdx
  1464. movq 32(%rdi),%r8
  1465. movq 40(%rdi),%r9
  1466. movq 48(%rdi),%r10
  1467. movq 56(%rdi),%r11
  1468. jmp L$loop_avx
  1469. .p2align 4
  1470. L$loop_avx:
  1471. vmovdqa K512+1280(%rip),%xmm11
  1472. vmovdqu 0(%rsi),%xmm0
  1473. leaq K512+128(%rip),%rbp
  1474. vmovdqu 16(%rsi),%xmm1
  1475. vmovdqu 32(%rsi),%xmm2
  1476. vpshufb %xmm11,%xmm0,%xmm0
  1477. vmovdqu 48(%rsi),%xmm3
  1478. vpshufb %xmm11,%xmm1,%xmm1
  1479. vmovdqu 64(%rsi),%xmm4
  1480. vpshufb %xmm11,%xmm2,%xmm2
  1481. vmovdqu 80(%rsi),%xmm5
  1482. vpshufb %xmm11,%xmm3,%xmm3
  1483. vmovdqu 96(%rsi),%xmm6
  1484. vpshufb %xmm11,%xmm4,%xmm4
  1485. vmovdqu 112(%rsi),%xmm7
  1486. vpshufb %xmm11,%xmm5,%xmm5
  1487. vpaddq -128(%rbp),%xmm0,%xmm8
  1488. vpshufb %xmm11,%xmm6,%xmm6
  1489. vpaddq -96(%rbp),%xmm1,%xmm9
  1490. vpshufb %xmm11,%xmm7,%xmm7
  1491. vpaddq -64(%rbp),%xmm2,%xmm10
  1492. vpaddq -32(%rbp),%xmm3,%xmm11
  1493. vmovdqa %xmm8,0(%rsp)
  1494. vpaddq 0(%rbp),%xmm4,%xmm8
  1495. vmovdqa %xmm9,16(%rsp)
  1496. vpaddq 32(%rbp),%xmm5,%xmm9
  1497. vmovdqa %xmm10,32(%rsp)
  1498. vpaddq 64(%rbp),%xmm6,%xmm10
  1499. vmovdqa %xmm11,48(%rsp)
  1500. vpaddq 96(%rbp),%xmm7,%xmm11
  1501. vmovdqa %xmm8,64(%rsp)
  1502. movq %rax,%r14
  1503. vmovdqa %xmm9,80(%rsp)
  1504. movq %rbx,%rdi
  1505. vmovdqa %xmm10,96(%rsp)
  1506. xorq %rcx,%rdi
  1507. vmovdqa %xmm11,112(%rsp)
  1508. movq %r8,%r13
  1509. jmp L$avx_00_47
  1510. .p2align 4
  1511. L$avx_00_47:
  1512. addq $256,%rbp
  1513. vpalignr $8,%xmm0,%xmm1,%xmm8
  1514. shrdq $23,%r13,%r13
  1515. movq %r14,%rax
  1516. vpalignr $8,%xmm4,%xmm5,%xmm11
  1517. movq %r9,%r12
  1518. shrdq $5,%r14,%r14
  1519. vpsrlq $1,%xmm8,%xmm10
  1520. xorq %r8,%r13
  1521. xorq %r10,%r12
  1522. vpaddq %xmm11,%xmm0,%xmm0
  1523. shrdq $4,%r13,%r13
  1524. xorq %rax,%r14
  1525. vpsrlq $7,%xmm8,%xmm11
  1526. andq %r8,%r12
  1527. xorq %r8,%r13
  1528. vpsllq $56,%xmm8,%xmm9
  1529. addq 0(%rsp),%r11
  1530. movq %rax,%r15
  1531. vpxor %xmm10,%xmm11,%xmm8
  1532. xorq %r10,%r12
  1533. shrdq $6,%r14,%r14
  1534. vpsrlq $7,%xmm10,%xmm10
  1535. xorq %rbx,%r15
  1536. addq %r12,%r11
  1537. vpxor %xmm9,%xmm8,%xmm8
  1538. shrdq $14,%r13,%r13
  1539. andq %r15,%rdi
  1540. vpsllq $7,%xmm9,%xmm9
  1541. xorq %rax,%r14
  1542. addq %r13,%r11
  1543. vpxor %xmm10,%xmm8,%xmm8
  1544. xorq %rbx,%rdi
  1545. shrdq $28,%r14,%r14
  1546. vpsrlq $6,%xmm7,%xmm11
  1547. addq %r11,%rdx
  1548. addq %rdi,%r11
  1549. vpxor %xmm9,%xmm8,%xmm8
  1550. movq %rdx,%r13
  1551. addq %r11,%r14
  1552. vpsllq $3,%xmm7,%xmm10
  1553. shrdq $23,%r13,%r13
  1554. movq %r14,%r11
  1555. vpaddq %xmm8,%xmm0,%xmm0
  1556. movq %r8,%r12
  1557. shrdq $5,%r14,%r14
  1558. vpsrlq $19,%xmm7,%xmm9
  1559. xorq %rdx,%r13
  1560. xorq %r9,%r12
  1561. vpxor %xmm10,%xmm11,%xmm11
  1562. shrdq $4,%r13,%r13
  1563. xorq %r11,%r14
  1564. vpsllq $42,%xmm10,%xmm10
  1565. andq %rdx,%r12
  1566. xorq %rdx,%r13
  1567. vpxor %xmm9,%xmm11,%xmm11
  1568. addq 8(%rsp),%r10
  1569. movq %r11,%rdi
  1570. vpsrlq $42,%xmm9,%xmm9
  1571. xorq %r9,%r12
  1572. shrdq $6,%r14,%r14
  1573. vpxor %xmm10,%xmm11,%xmm11
  1574. xorq %rax,%rdi
  1575. addq %r12,%r10
  1576. vpxor %xmm9,%xmm11,%xmm11
  1577. shrdq $14,%r13,%r13
  1578. andq %rdi,%r15
  1579. vpaddq %xmm11,%xmm0,%xmm0
  1580. xorq %r11,%r14
  1581. addq %r13,%r10
  1582. vpaddq -128(%rbp),%xmm0,%xmm10
  1583. xorq %rax,%r15
  1584. shrdq $28,%r14,%r14
  1585. addq %r10,%rcx
  1586. addq %r15,%r10
  1587. movq %rcx,%r13
  1588. addq %r10,%r14
  1589. vmovdqa %xmm10,0(%rsp)
  1590. vpalignr $8,%xmm1,%xmm2,%xmm8
  1591. shrdq $23,%r13,%r13
  1592. movq %r14,%r10
  1593. vpalignr $8,%xmm5,%xmm6,%xmm11
  1594. movq %rdx,%r12
  1595. shrdq $5,%r14,%r14
  1596. vpsrlq $1,%xmm8,%xmm10
  1597. xorq %rcx,%r13
  1598. xorq %r8,%r12
  1599. vpaddq %xmm11,%xmm1,%xmm1
  1600. shrdq $4,%r13,%r13
  1601. xorq %r10,%r14
  1602. vpsrlq $7,%xmm8,%xmm11
  1603. andq %rcx,%r12
  1604. xorq %rcx,%r13
  1605. vpsllq $56,%xmm8,%xmm9
  1606. addq 16(%rsp),%r9
  1607. movq %r10,%r15
  1608. vpxor %xmm10,%xmm11,%xmm8
  1609. xorq %r8,%r12
  1610. shrdq $6,%r14,%r14
  1611. vpsrlq $7,%xmm10,%xmm10
  1612. xorq %r11,%r15
  1613. addq %r12,%r9
  1614. vpxor %xmm9,%xmm8,%xmm8
  1615. shrdq $14,%r13,%r13
  1616. andq %r15,%rdi
  1617. vpsllq $7,%xmm9,%xmm9
  1618. xorq %r10,%r14
  1619. addq %r13,%r9
  1620. vpxor %xmm10,%xmm8,%xmm8
  1621. xorq %r11,%rdi
  1622. shrdq $28,%r14,%r14
  1623. vpsrlq $6,%xmm0,%xmm11
  1624. addq %r9,%rbx
  1625. addq %rdi,%r9
  1626. vpxor %xmm9,%xmm8,%xmm8
  1627. movq %rbx,%r13
  1628. addq %r9,%r14
  1629. vpsllq $3,%xmm0,%xmm10
  1630. shrdq $23,%r13,%r13
  1631. movq %r14,%r9
  1632. vpaddq %xmm8,%xmm1,%xmm1
  1633. movq %rcx,%r12
  1634. shrdq $5,%r14,%r14
  1635. vpsrlq $19,%xmm0,%xmm9
  1636. xorq %rbx,%r13
  1637. xorq %rdx,%r12
  1638. vpxor %xmm10,%xmm11,%xmm11
  1639. shrdq $4,%r13,%r13
  1640. xorq %r9,%r14
  1641. vpsllq $42,%xmm10,%xmm10
  1642. andq %rbx,%r12
  1643. xorq %rbx,%r13
  1644. vpxor %xmm9,%xmm11,%xmm11
  1645. addq 24(%rsp),%r8
  1646. movq %r9,%rdi
  1647. vpsrlq $42,%xmm9,%xmm9
  1648. xorq %rdx,%r12
  1649. shrdq $6,%r14,%r14
  1650. vpxor %xmm10,%xmm11,%xmm11
  1651. xorq %r10,%rdi
  1652. addq %r12,%r8
  1653. vpxor %xmm9,%xmm11,%xmm11
  1654. shrdq $14,%r13,%r13
  1655. andq %rdi,%r15
  1656. vpaddq %xmm11,%xmm1,%xmm1
  1657. xorq %r9,%r14
  1658. addq %r13,%r8
  1659. vpaddq -96(%rbp),%xmm1,%xmm10
  1660. xorq %r10,%r15
  1661. shrdq $28,%r14,%r14
  1662. addq %r8,%rax
  1663. addq %r15,%r8
  1664. movq %rax,%r13
  1665. addq %r8,%r14
  1666. vmovdqa %xmm10,16(%rsp)
  1667. vpalignr $8,%xmm2,%xmm3,%xmm8
  1668. shrdq $23,%r13,%r13
  1669. movq %r14,%r8
  1670. vpalignr $8,%xmm6,%xmm7,%xmm11
  1671. movq %rbx,%r12
  1672. shrdq $5,%r14,%r14
  1673. vpsrlq $1,%xmm8,%xmm10
  1674. xorq %rax,%r13
  1675. xorq %rcx,%r12
  1676. vpaddq %xmm11,%xmm2,%xmm2
  1677. shrdq $4,%r13,%r13
  1678. xorq %r8,%r14
  1679. vpsrlq $7,%xmm8,%xmm11
  1680. andq %rax,%r12
  1681. xorq %rax,%r13
  1682. vpsllq $56,%xmm8,%xmm9
  1683. addq 32(%rsp),%rdx
  1684. movq %r8,%r15
  1685. vpxor %xmm10,%xmm11,%xmm8
  1686. xorq %rcx,%r12
  1687. shrdq $6,%r14,%r14
  1688. vpsrlq $7,%xmm10,%xmm10
  1689. xorq %r9,%r15
  1690. addq %r12,%rdx
  1691. vpxor %xmm9,%xmm8,%xmm8
  1692. shrdq $14,%r13,%r13
  1693. andq %r15,%rdi
  1694. vpsllq $7,%xmm9,%xmm9
  1695. xorq %r8,%r14
  1696. addq %r13,%rdx
  1697. vpxor %xmm10,%xmm8,%xmm8
  1698. xorq %r9,%rdi
  1699. shrdq $28,%r14,%r14
  1700. vpsrlq $6,%xmm1,%xmm11
  1701. addq %rdx,%r11
  1702. addq %rdi,%rdx
  1703. vpxor %xmm9,%xmm8,%xmm8
  1704. movq %r11,%r13
  1705. addq %rdx,%r14
  1706. vpsllq $3,%xmm1,%xmm10
  1707. shrdq $23,%r13,%r13
  1708. movq %r14,%rdx
  1709. vpaddq %xmm8,%xmm2,%xmm2
  1710. movq %rax,%r12
  1711. shrdq $5,%r14,%r14
  1712. vpsrlq $19,%xmm1,%xmm9
  1713. xorq %r11,%r13
  1714. xorq %rbx,%r12
  1715. vpxor %xmm10,%xmm11,%xmm11
  1716. shrdq $4,%r13,%r13
  1717. xorq %rdx,%r14
  1718. vpsllq $42,%xmm10,%xmm10
  1719. andq %r11,%r12
  1720. xorq %r11,%r13
  1721. vpxor %xmm9,%xmm11,%xmm11
  1722. addq 40(%rsp),%rcx
  1723. movq %rdx,%rdi
  1724. vpsrlq $42,%xmm9,%xmm9
  1725. xorq %rbx,%r12
  1726. shrdq $6,%r14,%r14
  1727. vpxor %xmm10,%xmm11,%xmm11
  1728. xorq %r8,%rdi
  1729. addq %r12,%rcx
  1730. vpxor %xmm9,%xmm11,%xmm11
  1731. shrdq $14,%r13,%r13
  1732. andq %rdi,%r15
  1733. vpaddq %xmm11,%xmm2,%xmm2
  1734. xorq %rdx,%r14
  1735. addq %r13,%rcx
  1736. vpaddq -64(%rbp),%xmm2,%xmm10
  1737. xorq %r8,%r15
  1738. shrdq $28,%r14,%r14
  1739. addq %rcx,%r10
  1740. addq %r15,%rcx
  1741. movq %r10,%r13
  1742. addq %rcx,%r14
  1743. vmovdqa %xmm10,32(%rsp)
  1744. vpalignr $8,%xmm3,%xmm4,%xmm8
  1745. shrdq $23,%r13,%r13
  1746. movq %r14,%rcx
  1747. vpalignr $8,%xmm7,%xmm0,%xmm11
  1748. movq %r11,%r12
  1749. shrdq $5,%r14,%r14
  1750. vpsrlq $1,%xmm8,%xmm10
  1751. xorq %r10,%r13
  1752. xorq %rax,%r12
  1753. vpaddq %xmm11,%xmm3,%xmm3
  1754. shrdq $4,%r13,%r13
  1755. xorq %rcx,%r14
  1756. vpsrlq $7,%xmm8,%xmm11
  1757. andq %r10,%r12
  1758. xorq %r10,%r13
  1759. vpsllq $56,%xmm8,%xmm9
  1760. addq 48(%rsp),%rbx
  1761. movq %rcx,%r15
  1762. vpxor %xmm10,%xmm11,%xmm8
  1763. xorq %rax,%r12
  1764. shrdq $6,%r14,%r14
  1765. vpsrlq $7,%xmm10,%xmm10
  1766. xorq %rdx,%r15
  1767. addq %r12,%rbx
  1768. vpxor %xmm9,%xmm8,%xmm8
  1769. shrdq $14,%r13,%r13
  1770. andq %r15,%rdi
  1771. vpsllq $7,%xmm9,%xmm9
  1772. xorq %rcx,%r14
  1773. addq %r13,%rbx
  1774. vpxor %xmm10,%xmm8,%xmm8
  1775. xorq %rdx,%rdi
  1776. shrdq $28,%r14,%r14
  1777. vpsrlq $6,%xmm2,%xmm11
  1778. addq %rbx,%r9
  1779. addq %rdi,%rbx
  1780. vpxor %xmm9,%xmm8,%xmm8
  1781. movq %r9,%r13
  1782. addq %rbx,%r14
  1783. vpsllq $3,%xmm2,%xmm10
  1784. shrdq $23,%r13,%r13
  1785. movq %r14,%rbx
  1786. vpaddq %xmm8,%xmm3,%xmm3
  1787. movq %r10,%r12
  1788. shrdq $5,%r14,%r14
  1789. vpsrlq $19,%xmm2,%xmm9
  1790. xorq %r9,%r13
  1791. xorq %r11,%r12
  1792. vpxor %xmm10,%xmm11,%xmm11
  1793. shrdq $4,%r13,%r13
  1794. xorq %rbx,%r14
  1795. vpsllq $42,%xmm10,%xmm10
  1796. andq %r9,%r12
  1797. xorq %r9,%r13
  1798. vpxor %xmm9,%xmm11,%xmm11
  1799. addq 56(%rsp),%rax
  1800. movq %rbx,%rdi
  1801. vpsrlq $42,%xmm9,%xmm9
  1802. xorq %r11,%r12
  1803. shrdq $6,%r14,%r14
  1804. vpxor %xmm10,%xmm11,%xmm11
  1805. xorq %rcx,%rdi
  1806. addq %r12,%rax
  1807. vpxor %xmm9,%xmm11,%xmm11
  1808. shrdq $14,%r13,%r13
  1809. andq %rdi,%r15
  1810. vpaddq %xmm11,%xmm3,%xmm3
  1811. xorq %rbx,%r14
  1812. addq %r13,%rax
  1813. vpaddq -32(%rbp),%xmm3,%xmm10
  1814. xorq %rcx,%r15
  1815. shrdq $28,%r14,%r14
  1816. addq %rax,%r8
  1817. addq %r15,%rax
  1818. movq %r8,%r13
  1819. addq %rax,%r14
  1820. vmovdqa %xmm10,48(%rsp)
  1821. vpalignr $8,%xmm4,%xmm5,%xmm8
  1822. shrdq $23,%r13,%r13
  1823. movq %r14,%rax
  1824. vpalignr $8,%xmm0,%xmm1,%xmm11
  1825. movq %r9,%r12
  1826. shrdq $5,%r14,%r14
  1827. vpsrlq $1,%xmm8,%xmm10
  1828. xorq %r8,%r13
  1829. xorq %r10,%r12
  1830. vpaddq %xmm11,%xmm4,%xmm4
  1831. shrdq $4,%r13,%r13
  1832. xorq %rax,%r14
  1833. vpsrlq $7,%xmm8,%xmm11
  1834. andq %r8,%r12
  1835. xorq %r8,%r13
  1836. vpsllq $56,%xmm8,%xmm9
  1837. addq 64(%rsp),%r11
  1838. movq %rax,%r15
  1839. vpxor %xmm10,%xmm11,%xmm8
  1840. xorq %r10,%r12
  1841. shrdq $6,%r14,%r14
  1842. vpsrlq $7,%xmm10,%xmm10
  1843. xorq %rbx,%r15
  1844. addq %r12,%r11
  1845. vpxor %xmm9,%xmm8,%xmm8
  1846. shrdq $14,%r13,%r13
  1847. andq %r15,%rdi
  1848. vpsllq $7,%xmm9,%xmm9
  1849. xorq %rax,%r14
  1850. addq %r13,%r11
  1851. vpxor %xmm10,%xmm8,%xmm8
  1852. xorq %rbx,%rdi
  1853. shrdq $28,%r14,%r14
  1854. vpsrlq $6,%xmm3,%xmm11
  1855. addq %r11,%rdx
  1856. addq %rdi,%r11
  1857. vpxor %xmm9,%xmm8,%xmm8
  1858. movq %rdx,%r13
  1859. addq %r11,%r14
  1860. vpsllq $3,%xmm3,%xmm10
  1861. shrdq $23,%r13,%r13
  1862. movq %r14,%r11
  1863. vpaddq %xmm8,%xmm4,%xmm4
  1864. movq %r8,%r12
  1865. shrdq $5,%r14,%r14
  1866. vpsrlq $19,%xmm3,%xmm9
  1867. xorq %rdx,%r13
  1868. xorq %r9,%r12
  1869. vpxor %xmm10,%xmm11,%xmm11
  1870. shrdq $4,%r13,%r13
  1871. xorq %r11,%r14
  1872. vpsllq $42,%xmm10,%xmm10
  1873. andq %rdx,%r12
  1874. xorq %rdx,%r13
  1875. vpxor %xmm9,%xmm11,%xmm11
  1876. addq 72(%rsp),%r10
  1877. movq %r11,%rdi
  1878. vpsrlq $42,%xmm9,%xmm9
  1879. xorq %r9,%r12
  1880. shrdq $6,%r14,%r14
  1881. vpxor %xmm10,%xmm11,%xmm11
  1882. xorq %rax,%rdi
  1883. addq %r12,%r10
  1884. vpxor %xmm9,%xmm11,%xmm11
  1885. shrdq $14,%r13,%r13
  1886. andq %rdi,%r15
  1887. vpaddq %xmm11,%xmm4,%xmm4
  1888. xorq %r11,%r14
  1889. addq %r13,%r10
  1890. vpaddq 0(%rbp),%xmm4,%xmm10
  1891. xorq %rax,%r15
  1892. shrdq $28,%r14,%r14
  1893. addq %r10,%rcx
  1894. addq %r15,%r10
  1895. movq %rcx,%r13
  1896. addq %r10,%r14
  1897. vmovdqa %xmm10,64(%rsp)
  1898. vpalignr $8,%xmm5,%xmm6,%xmm8
  1899. shrdq $23,%r13,%r13
  1900. movq %r14,%r10
  1901. vpalignr $8,%xmm1,%xmm2,%xmm11
  1902. movq %rdx,%r12
  1903. shrdq $5,%r14,%r14
  1904. vpsrlq $1,%xmm8,%xmm10
  1905. xorq %rcx,%r13
  1906. xorq %r8,%r12
  1907. vpaddq %xmm11,%xmm5,%xmm5
  1908. shrdq $4,%r13,%r13
  1909. xorq %r10,%r14
  1910. vpsrlq $7,%xmm8,%xmm11
  1911. andq %rcx,%r12
  1912. xorq %rcx,%r13
  1913. vpsllq $56,%xmm8,%xmm9
  1914. addq 80(%rsp),%r9
  1915. movq %r10,%r15
  1916. vpxor %xmm10,%xmm11,%xmm8
  1917. xorq %r8,%r12
  1918. shrdq $6,%r14,%r14
  1919. vpsrlq $7,%xmm10,%xmm10
  1920. xorq %r11,%r15
  1921. addq %r12,%r9
  1922. vpxor %xmm9,%xmm8,%xmm8
  1923. shrdq $14,%r13,%r13
  1924. andq %r15,%rdi
  1925. vpsllq $7,%xmm9,%xmm9
  1926. xorq %r10,%r14
  1927. addq %r13,%r9
  1928. vpxor %xmm10,%xmm8,%xmm8
  1929. xorq %r11,%rdi
  1930. shrdq $28,%r14,%r14
  1931. vpsrlq $6,%xmm4,%xmm11
  1932. addq %r9,%rbx
  1933. addq %rdi,%r9
  1934. vpxor %xmm9,%xmm8,%xmm8
  1935. movq %rbx,%r13
  1936. addq %r9,%r14
  1937. vpsllq $3,%xmm4,%xmm10
  1938. shrdq $23,%r13,%r13
  1939. movq %r14,%r9
  1940. vpaddq %xmm8,%xmm5,%xmm5
  1941. movq %rcx,%r12
  1942. shrdq $5,%r14,%r14
  1943. vpsrlq $19,%xmm4,%xmm9
  1944. xorq %rbx,%r13
  1945. xorq %rdx,%r12
  1946. vpxor %xmm10,%xmm11,%xmm11
  1947. shrdq $4,%r13,%r13
  1948. xorq %r9,%r14
  1949. vpsllq $42,%xmm10,%xmm10
  1950. andq %rbx,%r12
  1951. xorq %rbx,%r13
  1952. vpxor %xmm9,%xmm11,%xmm11
  1953. addq 88(%rsp),%r8
  1954. movq %r9,%rdi
  1955. vpsrlq $42,%xmm9,%xmm9
  1956. xorq %rdx,%r12
  1957. shrdq $6,%r14,%r14
  1958. vpxor %xmm10,%xmm11,%xmm11
  1959. xorq %r10,%rdi
  1960. addq %r12,%r8
  1961. vpxor %xmm9,%xmm11,%xmm11
  1962. shrdq $14,%r13,%r13
  1963. andq %rdi,%r15
  1964. vpaddq %xmm11,%xmm5,%xmm5
  1965. xorq %r9,%r14
  1966. addq %r13,%r8
  1967. vpaddq 32(%rbp),%xmm5,%xmm10
  1968. xorq %r10,%r15
  1969. shrdq $28,%r14,%r14
  1970. addq %r8,%rax
  1971. addq %r15,%r8
  1972. movq %rax,%r13
  1973. addq %r8,%r14
  1974. vmovdqa %xmm10,80(%rsp)
  1975. vpalignr $8,%xmm6,%xmm7,%xmm8
  1976. shrdq $23,%r13,%r13
  1977. movq %r14,%r8
  1978. vpalignr $8,%xmm2,%xmm3,%xmm11
  1979. movq %rbx,%r12
  1980. shrdq $5,%r14,%r14
  1981. vpsrlq $1,%xmm8,%xmm10
  1982. xorq %rax,%r13
  1983. xorq %rcx,%r12
  1984. vpaddq %xmm11,%xmm6,%xmm6
  1985. shrdq $4,%r13,%r13
  1986. xorq %r8,%r14
  1987. vpsrlq $7,%xmm8,%xmm11
  1988. andq %rax,%r12
  1989. xorq %rax,%r13
  1990. vpsllq $56,%xmm8,%xmm9
  1991. addq 96(%rsp),%rdx
  1992. movq %r8,%r15
  1993. vpxor %xmm10,%xmm11,%xmm8
  1994. xorq %rcx,%r12
  1995. shrdq $6,%r14,%r14
  1996. vpsrlq $7,%xmm10,%xmm10
  1997. xorq %r9,%r15
  1998. addq %r12,%rdx
  1999. vpxor %xmm9,%xmm8,%xmm8
  2000. shrdq $14,%r13,%r13
  2001. andq %r15,%rdi
  2002. vpsllq $7,%xmm9,%xmm9
  2003. xorq %r8,%r14
  2004. addq %r13,%rdx
  2005. vpxor %xmm10,%xmm8,%xmm8
  2006. xorq %r9,%rdi
  2007. shrdq $28,%r14,%r14
  2008. vpsrlq $6,%xmm5,%xmm11
  2009. addq %rdx,%r11
  2010. addq %rdi,%rdx
  2011. vpxor %xmm9,%xmm8,%xmm8
  2012. movq %r11,%r13
  2013. addq %rdx,%r14
  2014. vpsllq $3,%xmm5,%xmm10
  2015. shrdq $23,%r13,%r13
  2016. movq %r14,%rdx
  2017. vpaddq %xmm8,%xmm6,%xmm6
  2018. movq %rax,%r12
  2019. shrdq $5,%r14,%r14
  2020. vpsrlq $19,%xmm5,%xmm9
  2021. xorq %r11,%r13
  2022. xorq %rbx,%r12
  2023. vpxor %xmm10,%xmm11,%xmm11
  2024. shrdq $4,%r13,%r13
  2025. xorq %rdx,%r14
  2026. vpsllq $42,%xmm10,%xmm10
  2027. andq %r11,%r12
  2028. xorq %r11,%r13
  2029. vpxor %xmm9,%xmm11,%xmm11
  2030. addq 104(%rsp),%rcx
  2031. movq %rdx,%rdi
  2032. vpsrlq $42,%xmm9,%xmm9
  2033. xorq %rbx,%r12
  2034. shrdq $6,%r14,%r14
  2035. vpxor %xmm10,%xmm11,%xmm11
  2036. xorq %r8,%rdi
  2037. addq %r12,%rcx
  2038. vpxor %xmm9,%xmm11,%xmm11
  2039. shrdq $14,%r13,%r13
  2040. andq %rdi,%r15
  2041. vpaddq %xmm11,%xmm6,%xmm6
  2042. xorq %rdx,%r14
  2043. addq %r13,%rcx
  2044. vpaddq 64(%rbp),%xmm6,%xmm10
  2045. xorq %r8,%r15
  2046. shrdq $28,%r14,%r14
  2047. addq %rcx,%r10
  2048. addq %r15,%rcx
  2049. movq %r10,%r13
  2050. addq %rcx,%r14
  2051. vmovdqa %xmm10,96(%rsp)
  2052. vpalignr $8,%xmm7,%xmm0,%xmm8
  2053. shrdq $23,%r13,%r13
  2054. movq %r14,%rcx
  2055. vpalignr $8,%xmm3,%xmm4,%xmm11
  2056. movq %r11,%r12
  2057. shrdq $5,%r14,%r14
  2058. vpsrlq $1,%xmm8,%xmm10
  2059. xorq %r10,%r13
  2060. xorq %rax,%r12
  2061. vpaddq %xmm11,%xmm7,%xmm7
  2062. shrdq $4,%r13,%r13
  2063. xorq %rcx,%r14
  2064. vpsrlq $7,%xmm8,%xmm11
  2065. andq %r10,%r12
  2066. xorq %r10,%r13
  2067. vpsllq $56,%xmm8,%xmm9
  2068. addq 112(%rsp),%rbx
  2069. movq %rcx,%r15
  2070. vpxor %xmm10,%xmm11,%xmm8
  2071. xorq %rax,%r12
  2072. shrdq $6,%r14,%r14
  2073. vpsrlq $7,%xmm10,%xmm10
  2074. xorq %rdx,%r15
  2075. addq %r12,%rbx
  2076. vpxor %xmm9,%xmm8,%xmm8
  2077. shrdq $14,%r13,%r13
  2078. andq %r15,%rdi
  2079. vpsllq $7,%xmm9,%xmm9
  2080. xorq %rcx,%r14
  2081. addq %r13,%rbx
  2082. vpxor %xmm10,%xmm8,%xmm8
  2083. xorq %rdx,%rdi
  2084. shrdq $28,%r14,%r14
  2085. vpsrlq $6,%xmm6,%xmm11
  2086. addq %rbx,%r9
  2087. addq %rdi,%rbx
  2088. vpxor %xmm9,%xmm8,%xmm8
  2089. movq %r9,%r13
  2090. addq %rbx,%r14
  2091. vpsllq $3,%xmm6,%xmm10
  2092. shrdq $23,%r13,%r13
  2093. movq %r14,%rbx
  2094. vpaddq %xmm8,%xmm7,%xmm7
  2095. movq %r10,%r12
  2096. shrdq $5,%r14,%r14
  2097. vpsrlq $19,%xmm6,%xmm9
  2098. xorq %r9,%r13
  2099. xorq %r11,%r12
  2100. vpxor %xmm10,%xmm11,%xmm11
  2101. shrdq $4,%r13,%r13
  2102. xorq %rbx,%r14
  2103. vpsllq $42,%xmm10,%xmm10
  2104. andq %r9,%r12
  2105. xorq %r9,%r13
  2106. vpxor %xmm9,%xmm11,%xmm11
  2107. addq 120(%rsp),%rax
  2108. movq %rbx,%rdi
  2109. vpsrlq $42,%xmm9,%xmm9
  2110. xorq %r11,%r12
  2111. shrdq $6,%r14,%r14
  2112. vpxor %xmm10,%xmm11,%xmm11
  2113. xorq %rcx,%rdi
  2114. addq %r12,%rax
  2115. vpxor %xmm9,%xmm11,%xmm11
  2116. shrdq $14,%r13,%r13
  2117. andq %rdi,%r15
  2118. vpaddq %xmm11,%xmm7,%xmm7
  2119. xorq %rbx,%r14
  2120. addq %r13,%rax
  2121. vpaddq 96(%rbp),%xmm7,%xmm10
  2122. xorq %rcx,%r15
  2123. shrdq $28,%r14,%r14
  2124. addq %rax,%r8
  2125. addq %r15,%rax
  2126. movq %r8,%r13
  2127. addq %rax,%r14
  2128. vmovdqa %xmm10,112(%rsp)
  2129. cmpb $0,135(%rbp)
  2130. jne L$avx_00_47
  2131. shrdq $23,%r13,%r13
  2132. movq %r14,%rax
  2133. movq %r9,%r12
  2134. shrdq $5,%r14,%r14
  2135. xorq %r8,%r13
  2136. xorq %r10,%r12
  2137. shrdq $4,%r13,%r13
  2138. xorq %rax,%r14
  2139. andq %r8,%r12
  2140. xorq %r8,%r13
  2141. addq 0(%rsp),%r11
  2142. movq %rax,%r15
  2143. xorq %r10,%r12
  2144. shrdq $6,%r14,%r14
  2145. xorq %rbx,%r15
  2146. addq %r12,%r11
  2147. shrdq $14,%r13,%r13
  2148. andq %r15,%rdi
  2149. xorq %rax,%r14
  2150. addq %r13,%r11
  2151. xorq %rbx,%rdi
  2152. shrdq $28,%r14,%r14
  2153. addq %r11,%rdx
  2154. addq %rdi,%r11
  2155. movq %rdx,%r13
  2156. addq %r11,%r14
  2157. shrdq $23,%r13,%r13
  2158. movq %r14,%r11
  2159. movq %r8,%r12
  2160. shrdq $5,%r14,%r14
  2161. xorq %rdx,%r13
  2162. xorq %r9,%r12
  2163. shrdq $4,%r13,%r13
  2164. xorq %r11,%r14
  2165. andq %rdx,%r12
  2166. xorq %rdx,%r13
  2167. addq 8(%rsp),%r10
  2168. movq %r11,%rdi
  2169. xorq %r9,%r12
  2170. shrdq $6,%r14,%r14
  2171. xorq %rax,%rdi
  2172. addq %r12,%r10
  2173. shrdq $14,%r13,%r13
  2174. andq %rdi,%r15
  2175. xorq %r11,%r14
  2176. addq %r13,%r10
  2177. xorq %rax,%r15
  2178. shrdq $28,%r14,%r14
  2179. addq %r10,%rcx
  2180. addq %r15,%r10
  2181. movq %rcx,%r13
  2182. addq %r10,%r14
  2183. shrdq $23,%r13,%r13
  2184. movq %r14,%r10
  2185. movq %rdx,%r12
  2186. shrdq $5,%r14,%r14
  2187. xorq %rcx,%r13
  2188. xorq %r8,%r12
  2189. shrdq $4,%r13,%r13
  2190. xorq %r10,%r14
  2191. andq %rcx,%r12
  2192. xorq %rcx,%r13
  2193. addq 16(%rsp),%r9
  2194. movq %r10,%r15
  2195. xorq %r8,%r12
  2196. shrdq $6,%r14,%r14
  2197. xorq %r11,%r15
  2198. addq %r12,%r9
  2199. shrdq $14,%r13,%r13
  2200. andq %r15,%rdi
  2201. xorq %r10,%r14
  2202. addq %r13,%r9
  2203. xorq %r11,%rdi
  2204. shrdq $28,%r14,%r14
  2205. addq %r9,%rbx
  2206. addq %rdi,%r9
  2207. movq %rbx,%r13
  2208. addq %r9,%r14
  2209. shrdq $23,%r13,%r13
  2210. movq %r14,%r9
  2211. movq %rcx,%r12
  2212. shrdq $5,%r14,%r14
  2213. xorq %rbx,%r13
  2214. xorq %rdx,%r12
  2215. shrdq $4,%r13,%r13
  2216. xorq %r9,%r14
  2217. andq %rbx,%r12
  2218. xorq %rbx,%r13
  2219. addq 24(%rsp),%r8
  2220. movq %r9,%rdi
  2221. xorq %rdx,%r12
  2222. shrdq $6,%r14,%r14
  2223. xorq %r10,%rdi
  2224. addq %r12,%r8
  2225. shrdq $14,%r13,%r13
  2226. andq %rdi,%r15
  2227. xorq %r9,%r14
  2228. addq %r13,%r8
  2229. xorq %r10,%r15
  2230. shrdq $28,%r14,%r14
  2231. addq %r8,%rax
  2232. addq %r15,%r8
  2233. movq %rax,%r13
  2234. addq %r8,%r14
  2235. shrdq $23,%r13,%r13
  2236. movq %r14,%r8
  2237. movq %rbx,%r12
  2238. shrdq $5,%r14,%r14
  2239. xorq %rax,%r13
  2240. xorq %rcx,%r12
  2241. shrdq $4,%r13,%r13
  2242. xorq %r8,%r14
  2243. andq %rax,%r12
  2244. xorq %rax,%r13
  2245. addq 32(%rsp),%rdx
  2246. movq %r8,%r15
  2247. xorq %rcx,%r12
  2248. shrdq $6,%r14,%r14
  2249. xorq %r9,%r15
  2250. addq %r12,%rdx
  2251. shrdq $14,%r13,%r13
  2252. andq %r15,%rdi
  2253. xorq %r8,%r14
  2254. addq %r13,%rdx
  2255. xorq %r9,%rdi
  2256. shrdq $28,%r14,%r14
  2257. addq %rdx,%r11
  2258. addq %rdi,%rdx
  2259. movq %r11,%r13
  2260. addq %rdx,%r14
  2261. shrdq $23,%r13,%r13
  2262. movq %r14,%rdx
  2263. movq %rax,%r12
  2264. shrdq $5,%r14,%r14
  2265. xorq %r11,%r13
  2266. xorq %rbx,%r12
  2267. shrdq $4,%r13,%r13
  2268. xorq %rdx,%r14
  2269. andq %r11,%r12
  2270. xorq %r11,%r13
  2271. addq 40(%rsp),%rcx
  2272. movq %rdx,%rdi
  2273. xorq %rbx,%r12
  2274. shrdq $6,%r14,%r14
  2275. xorq %r8,%rdi
  2276. addq %r12,%rcx
  2277. shrdq $14,%r13,%r13
  2278. andq %rdi,%r15
  2279. xorq %rdx,%r14
  2280. addq %r13,%rcx
  2281. xorq %r8,%r15
  2282. shrdq $28,%r14,%r14
  2283. addq %rcx,%r10
  2284. addq %r15,%rcx
  2285. movq %r10,%r13
  2286. addq %rcx,%r14
  2287. shrdq $23,%r13,%r13
  2288. movq %r14,%rcx
  2289. movq %r11,%r12
  2290. shrdq $5,%r14,%r14
  2291. xorq %r10,%r13
  2292. xorq %rax,%r12
  2293. shrdq $4,%r13,%r13
  2294. xorq %rcx,%r14
  2295. andq %r10,%r12
  2296. xorq %r10,%r13
  2297. addq 48(%rsp),%rbx
  2298. movq %rcx,%r15
  2299. xorq %rax,%r12
  2300. shrdq $6,%r14,%r14
  2301. xorq %rdx,%r15
  2302. addq %r12,%rbx
  2303. shrdq $14,%r13,%r13
  2304. andq %r15,%rdi
  2305. xorq %rcx,%r14
  2306. addq %r13,%rbx
  2307. xorq %rdx,%rdi
  2308. shrdq $28,%r14,%r14
  2309. addq %rbx,%r9
  2310. addq %rdi,%rbx
  2311. movq %r9,%r13
  2312. addq %rbx,%r14
  2313. shrdq $23,%r13,%r13
  2314. movq %r14,%rbx
  2315. movq %r10,%r12
  2316. shrdq $5,%r14,%r14
  2317. xorq %r9,%r13
  2318. xorq %r11,%r12
  2319. shrdq $4,%r13,%r13
  2320. xorq %rbx,%r14
  2321. andq %r9,%r12
  2322. xorq %r9,%r13
  2323. addq 56(%rsp),%rax
  2324. movq %rbx,%rdi
  2325. xorq %r11,%r12
  2326. shrdq $6,%r14,%r14
  2327. xorq %rcx,%rdi
  2328. addq %r12,%rax
  2329. shrdq $14,%r13,%r13
  2330. andq %rdi,%r15
  2331. xorq %rbx,%r14
  2332. addq %r13,%rax
  2333. xorq %rcx,%r15
  2334. shrdq $28,%r14,%r14
  2335. addq %rax,%r8
  2336. addq %r15,%rax
  2337. movq %r8,%r13
  2338. addq %rax,%r14
  2339. shrdq $23,%r13,%r13
  2340. movq %r14,%rax
  2341. movq %r9,%r12
  2342. shrdq $5,%r14,%r14
  2343. xorq %r8,%r13
  2344. xorq %r10,%r12
  2345. shrdq $4,%r13,%r13
  2346. xorq %rax,%r14
  2347. andq %r8,%r12
  2348. xorq %r8,%r13
  2349. addq 64(%rsp),%r11
  2350. movq %rax,%r15
  2351. xorq %r10,%r12
  2352. shrdq $6,%r14,%r14
  2353. xorq %rbx,%r15
  2354. addq %r12,%r11
  2355. shrdq $14,%r13,%r13
  2356. andq %r15,%rdi
  2357. xorq %rax,%r14
  2358. addq %r13,%r11
  2359. xorq %rbx,%rdi
  2360. shrdq $28,%r14,%r14
  2361. addq %r11,%rdx
  2362. addq %rdi,%r11
  2363. movq %rdx,%r13
  2364. addq %r11,%r14
  2365. shrdq $23,%r13,%r13
  2366. movq %r14,%r11
  2367. movq %r8,%r12
  2368. shrdq $5,%r14,%r14
  2369. xorq %rdx,%r13
  2370. xorq %r9,%r12
  2371. shrdq $4,%r13,%r13
  2372. xorq %r11,%r14
  2373. andq %rdx,%r12
  2374. xorq %rdx,%r13
  2375. addq 72(%rsp),%r10
  2376. movq %r11,%rdi
  2377. xorq %r9,%r12
  2378. shrdq $6,%r14,%r14
  2379. xorq %rax,%rdi
  2380. addq %r12,%r10
  2381. shrdq $14,%r13,%r13
  2382. andq %rdi,%r15
  2383. xorq %r11,%r14
  2384. addq %r13,%r10
  2385. xorq %rax,%r15
  2386. shrdq $28,%r14,%r14
  2387. addq %r10,%rcx
  2388. addq %r15,%r10
  2389. movq %rcx,%r13
  2390. addq %r10,%r14
  2391. shrdq $23,%r13,%r13
  2392. movq %r14,%r10
  2393. movq %rdx,%r12
  2394. shrdq $5,%r14,%r14
  2395. xorq %rcx,%r13
  2396. xorq %r8,%r12
  2397. shrdq $4,%r13,%r13
  2398. xorq %r10,%r14
  2399. andq %rcx,%r12
  2400. xorq %rcx,%r13
  2401. addq 80(%rsp),%r9
  2402. movq %r10,%r15
  2403. xorq %r8,%r12
  2404. shrdq $6,%r14,%r14
  2405. xorq %r11,%r15
  2406. addq %r12,%r9
  2407. shrdq $14,%r13,%r13
  2408. andq %r15,%rdi
  2409. xorq %r10,%r14
  2410. addq %r13,%r9
  2411. xorq %r11,%rdi
  2412. shrdq $28,%r14,%r14
  2413. addq %r9,%rbx
  2414. addq %rdi,%r9
  2415. movq %rbx,%r13
  2416. addq %r9,%r14
  2417. shrdq $23,%r13,%r13
  2418. movq %r14,%r9
  2419. movq %rcx,%r12
  2420. shrdq $5,%r14,%r14
  2421. xorq %rbx,%r13
  2422. xorq %rdx,%r12
  2423. shrdq $4,%r13,%r13
  2424. xorq %r9,%r14
  2425. andq %rbx,%r12
  2426. xorq %rbx,%r13
  2427. addq 88(%rsp),%r8
  2428. movq %r9,%rdi
  2429. xorq %rdx,%r12
  2430. shrdq $6,%r14,%r14
  2431. xorq %r10,%rdi
  2432. addq %r12,%r8
  2433. shrdq $14,%r13,%r13
  2434. andq %rdi,%r15
  2435. xorq %r9,%r14
  2436. addq %r13,%r8
  2437. xorq %r10,%r15
  2438. shrdq $28,%r14,%r14
  2439. addq %r8,%rax
  2440. addq %r15,%r8
  2441. movq %rax,%r13
  2442. addq %r8,%r14
  2443. shrdq $23,%r13,%r13
  2444. movq %r14,%r8
  2445. movq %rbx,%r12
  2446. shrdq $5,%r14,%r14
  2447. xorq %rax,%r13
  2448. xorq %rcx,%r12
  2449. shrdq $4,%r13,%r13
  2450. xorq %r8,%r14
  2451. andq %rax,%r12
  2452. xorq %rax,%r13
  2453. addq 96(%rsp),%rdx
  2454. movq %r8,%r15
  2455. xorq %rcx,%r12
  2456. shrdq $6,%r14,%r14
  2457. xorq %r9,%r15
  2458. addq %r12,%rdx
  2459. shrdq $14,%r13,%r13
  2460. andq %r15,%rdi
  2461. xorq %r8,%r14
  2462. addq %r13,%rdx
  2463. xorq %r9,%rdi
  2464. shrdq $28,%r14,%r14
  2465. addq %rdx,%r11
  2466. addq %rdi,%rdx
  2467. movq %r11,%r13
  2468. addq %rdx,%r14
  2469. shrdq $23,%r13,%r13
  2470. movq %r14,%rdx
  2471. movq %rax,%r12
  2472. shrdq $5,%r14,%r14
  2473. xorq %r11,%r13
  2474. xorq %rbx,%r12
  2475. shrdq $4,%r13,%r13
  2476. xorq %rdx,%r14
  2477. andq %r11,%r12
  2478. xorq %r11,%r13
  2479. addq 104(%rsp),%rcx
  2480. movq %rdx,%rdi
  2481. xorq %rbx,%r12
  2482. shrdq $6,%r14,%r14
  2483. xorq %r8,%rdi
  2484. addq %r12,%rcx
  2485. shrdq $14,%r13,%r13
  2486. andq %rdi,%r15
  2487. xorq %rdx,%r14
  2488. addq %r13,%rcx
  2489. xorq %r8,%r15
  2490. shrdq $28,%r14,%r14
  2491. addq %rcx,%r10
  2492. addq %r15,%rcx
  2493. movq %r10,%r13
  2494. addq %rcx,%r14
  2495. shrdq $23,%r13,%r13
  2496. movq %r14,%rcx
  2497. movq %r11,%r12
  2498. shrdq $5,%r14,%r14
  2499. xorq %r10,%r13
  2500. xorq %rax,%r12
  2501. shrdq $4,%r13,%r13
  2502. xorq %rcx,%r14
  2503. andq %r10,%r12
  2504. xorq %r10,%r13
  2505. addq 112(%rsp),%rbx
  2506. movq %rcx,%r15
  2507. xorq %rax,%r12
  2508. shrdq $6,%r14,%r14
  2509. xorq %rdx,%r15
  2510. addq %r12,%rbx
  2511. shrdq $14,%r13,%r13
  2512. andq %r15,%rdi
  2513. xorq %rcx,%r14
  2514. addq %r13,%rbx
  2515. xorq %rdx,%rdi
  2516. shrdq $28,%r14,%r14
  2517. addq %rbx,%r9
  2518. addq %rdi,%rbx
  2519. movq %r9,%r13
  2520. addq %rbx,%r14
  2521. shrdq $23,%r13,%r13
  2522. movq %r14,%rbx
  2523. movq %r10,%r12
  2524. shrdq $5,%r14,%r14
  2525. xorq %r9,%r13
  2526. xorq %r11,%r12
  2527. shrdq $4,%r13,%r13
  2528. xorq %rbx,%r14
  2529. andq %r9,%r12
  2530. xorq %r9,%r13
  2531. addq 120(%rsp),%rax
  2532. movq %rbx,%rdi
  2533. xorq %r11,%r12
  2534. shrdq $6,%r14,%r14
  2535. xorq %rcx,%rdi
  2536. addq %r12,%rax
  2537. shrdq $14,%r13,%r13
  2538. andq %rdi,%r15
  2539. xorq %rbx,%r14
  2540. addq %r13,%rax
  2541. xorq %rcx,%r15
  2542. shrdq $28,%r14,%r14
  2543. addq %rax,%r8
  2544. addq %r15,%rax
  2545. movq %r8,%r13
  2546. addq %rax,%r14
  2547. movq 128+0(%rsp),%rdi
  2548. movq %r14,%rax
  2549. addq 0(%rdi),%rax
  2550. leaq 128(%rsi),%rsi
  2551. addq 8(%rdi),%rbx
  2552. addq 16(%rdi),%rcx
  2553. addq 24(%rdi),%rdx
  2554. addq 32(%rdi),%r8
  2555. addq 40(%rdi),%r9
  2556. addq 48(%rdi),%r10
  2557. addq 56(%rdi),%r11
  2558. cmpq 128+16(%rsp),%rsi
  2559. movq %rax,0(%rdi)
  2560. movq %rbx,8(%rdi)
  2561. movq %rcx,16(%rdi)
  2562. movq %rdx,24(%rdi)
  2563. movq %r8,32(%rdi)
  2564. movq %r9,40(%rdi)
  2565. movq %r10,48(%rdi)
  2566. movq %r11,56(%rdi)
  2567. jb L$loop_avx
  2568. movq 152(%rsp),%rsi
  2569. vzeroupper
  2570. movq -48(%rsi),%r15
  2571. movq -40(%rsi),%r14
  2572. movq -32(%rsi),%r13
  2573. movq -24(%rsi),%r12
  2574. movq -16(%rsi),%rbp
  2575. movq -8(%rsi),%rbx
  2576. leaq (%rsi),%rsp
  2577. L$epilogue_avx:
  2578. .byte 0xf3,0xc3
  2579. #endif