sha512-586.S 49 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837
  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(__i386__)
  4. #if defined(BORINGSSL_PREFIX)
  5. #include <boringssl_prefix_symbols_asm.h>
  6. #endif
  7. .text
  8. .globl sha512_block_data_order
  9. .hidden sha512_block_data_order
  10. .type sha512_block_data_order,@function
  11. .align 16
  12. sha512_block_data_order:
  13. .L_sha512_block_data_order_begin:
  14. pushl %ebp
  15. pushl %ebx
  16. pushl %esi
  17. pushl %edi
  18. movl 20(%esp),%esi
  19. movl 24(%esp),%edi
  20. movl 28(%esp),%eax
  21. movl %esp,%ebx
  22. call .L000pic_point
  23. .L000pic_point:
  24. popl %ebp
  25. leal .L001K512-.L000pic_point(%ebp),%ebp
  26. subl $16,%esp
  27. andl $-64,%esp
  28. shll $7,%eax
  29. addl %edi,%eax
  30. movl %esi,(%esp)
  31. movl %edi,4(%esp)
  32. movl %eax,8(%esp)
  33. movl %ebx,12(%esp)
  34. leal OPENSSL_ia32cap_P-.L001K512(%ebp),%edx
  35. movl (%edx),%ecx
  36. testl $67108864,%ecx
  37. jz .L002loop_x86
  38. movl 4(%edx),%edx
  39. movq (%esi),%mm0
  40. andl $16777216,%ecx
  41. movq 8(%esi),%mm1
  42. andl $512,%edx
  43. movq 16(%esi),%mm2
  44. orl %edx,%ecx
  45. movq 24(%esi),%mm3
  46. movq 32(%esi),%mm4
  47. movq 40(%esi),%mm5
  48. movq 48(%esi),%mm6
  49. movq 56(%esi),%mm7
  50. cmpl $16777728,%ecx
  51. je .L003SSSE3
  52. subl $80,%esp
  53. jmp .L004loop_sse2
  54. .align 16
  55. .L004loop_sse2:
  56. movq %mm1,8(%esp)
  57. movq %mm2,16(%esp)
  58. movq %mm3,24(%esp)
  59. movq %mm5,40(%esp)
  60. movq %mm6,48(%esp)
  61. pxor %mm1,%mm2
  62. movq %mm7,56(%esp)
  63. movq %mm0,%mm3
  64. movl (%edi),%eax
  65. movl 4(%edi),%ebx
  66. addl $8,%edi
  67. movl $15,%edx
  68. bswap %eax
  69. bswap %ebx
  70. jmp .L00500_14_sse2
  71. .align 16
  72. .L00500_14_sse2:
  73. movd %eax,%mm1
  74. movl (%edi),%eax
  75. movd %ebx,%mm7
  76. movl 4(%edi),%ebx
  77. addl $8,%edi
  78. bswap %eax
  79. bswap %ebx
  80. punpckldq %mm1,%mm7
  81. movq %mm4,%mm1
  82. pxor %mm6,%mm5
  83. psrlq $14,%mm1
  84. movq %mm4,32(%esp)
  85. pand %mm4,%mm5
  86. psllq $23,%mm4
  87. movq %mm3,%mm0
  88. movq %mm7,72(%esp)
  89. movq %mm1,%mm3
  90. psrlq $4,%mm1
  91. pxor %mm6,%mm5
  92. pxor %mm4,%mm3
  93. psllq $23,%mm4
  94. pxor %mm1,%mm3
  95. movq %mm0,(%esp)
  96. paddq %mm5,%mm7
  97. pxor %mm4,%mm3
  98. psrlq $23,%mm1
  99. paddq 56(%esp),%mm7
  100. pxor %mm1,%mm3
  101. psllq $4,%mm4
  102. paddq (%ebp),%mm7
  103. pxor %mm4,%mm3
  104. movq 24(%esp),%mm4
  105. paddq %mm7,%mm3
  106. movq %mm0,%mm5
  107. psrlq $28,%mm5
  108. paddq %mm3,%mm4
  109. movq %mm0,%mm6
  110. movq %mm5,%mm7
  111. psllq $25,%mm6
  112. movq 8(%esp),%mm1
  113. psrlq $6,%mm5
  114. pxor %mm6,%mm7
  115. subl $8,%esp
  116. psllq $5,%mm6
  117. pxor %mm5,%mm7
  118. pxor %mm1,%mm0
  119. psrlq $5,%mm5
  120. pxor %mm6,%mm7
  121. pand %mm0,%mm2
  122. psllq $6,%mm6
  123. pxor %mm5,%mm7
  124. pxor %mm1,%mm2
  125. pxor %mm7,%mm6
  126. movq 40(%esp),%mm5
  127. paddq %mm2,%mm3
  128. movq %mm0,%mm2
  129. addl $8,%ebp
  130. paddq %mm6,%mm3
  131. movq 48(%esp),%mm6
  132. decl %edx
  133. jnz .L00500_14_sse2
  134. movd %eax,%mm1
  135. movd %ebx,%mm7
  136. punpckldq %mm1,%mm7
  137. movq %mm4,%mm1
  138. pxor %mm6,%mm5
  139. psrlq $14,%mm1
  140. movq %mm4,32(%esp)
  141. pand %mm4,%mm5
  142. psllq $23,%mm4
  143. movq %mm3,%mm0
  144. movq %mm7,72(%esp)
  145. movq %mm1,%mm3
  146. psrlq $4,%mm1
  147. pxor %mm6,%mm5
  148. pxor %mm4,%mm3
  149. psllq $23,%mm4
  150. pxor %mm1,%mm3
  151. movq %mm0,(%esp)
  152. paddq %mm5,%mm7
  153. pxor %mm4,%mm3
  154. psrlq $23,%mm1
  155. paddq 56(%esp),%mm7
  156. pxor %mm1,%mm3
  157. psllq $4,%mm4
  158. paddq (%ebp),%mm7
  159. pxor %mm4,%mm3
  160. movq 24(%esp),%mm4
  161. paddq %mm7,%mm3
  162. movq %mm0,%mm5
  163. psrlq $28,%mm5
  164. paddq %mm3,%mm4
  165. movq %mm0,%mm6
  166. movq %mm5,%mm7
  167. psllq $25,%mm6
  168. movq 8(%esp),%mm1
  169. psrlq $6,%mm5
  170. pxor %mm6,%mm7
  171. subl $8,%esp
  172. psllq $5,%mm6
  173. pxor %mm5,%mm7
  174. pxor %mm1,%mm0
  175. psrlq $5,%mm5
  176. pxor %mm6,%mm7
  177. pand %mm0,%mm2
  178. psllq $6,%mm6
  179. pxor %mm5,%mm7
  180. pxor %mm1,%mm2
  181. pxor %mm7,%mm6
  182. movq 192(%esp),%mm7
  183. paddq %mm2,%mm3
  184. movq %mm0,%mm2
  185. addl $8,%ebp
  186. paddq %mm6,%mm3
  187. pxor %mm0,%mm0
  188. movl $32,%edx
  189. jmp .L00616_79_sse2
  190. .align 16
  191. .L00616_79_sse2:
  192. movq 88(%esp),%mm5
  193. movq %mm7,%mm1
  194. psrlq $1,%mm7
  195. movq %mm5,%mm6
  196. psrlq $6,%mm5
  197. psllq $56,%mm1
  198. paddq %mm3,%mm0
  199. movq %mm7,%mm3
  200. psrlq $6,%mm7
  201. pxor %mm1,%mm3
  202. psllq $7,%mm1
  203. pxor %mm7,%mm3
  204. psrlq $1,%mm7
  205. pxor %mm1,%mm3
  206. movq %mm5,%mm1
  207. psrlq $13,%mm5
  208. pxor %mm3,%mm7
  209. psllq $3,%mm6
  210. pxor %mm5,%mm1
  211. paddq 200(%esp),%mm7
  212. pxor %mm6,%mm1
  213. psrlq $42,%mm5
  214. paddq 128(%esp),%mm7
  215. pxor %mm5,%mm1
  216. psllq $42,%mm6
  217. movq 40(%esp),%mm5
  218. pxor %mm6,%mm1
  219. movq 48(%esp),%mm6
  220. paddq %mm1,%mm7
  221. movq %mm4,%mm1
  222. pxor %mm6,%mm5
  223. psrlq $14,%mm1
  224. movq %mm4,32(%esp)
  225. pand %mm4,%mm5
  226. psllq $23,%mm4
  227. movq %mm7,72(%esp)
  228. movq %mm1,%mm3
  229. psrlq $4,%mm1
  230. pxor %mm6,%mm5
  231. pxor %mm4,%mm3
  232. psllq $23,%mm4
  233. pxor %mm1,%mm3
  234. movq %mm0,(%esp)
  235. paddq %mm5,%mm7
  236. pxor %mm4,%mm3
  237. psrlq $23,%mm1
  238. paddq 56(%esp),%mm7
  239. pxor %mm1,%mm3
  240. psllq $4,%mm4
  241. paddq (%ebp),%mm7
  242. pxor %mm4,%mm3
  243. movq 24(%esp),%mm4
  244. paddq %mm7,%mm3
  245. movq %mm0,%mm5
  246. psrlq $28,%mm5
  247. paddq %mm3,%mm4
  248. movq %mm0,%mm6
  249. movq %mm5,%mm7
  250. psllq $25,%mm6
  251. movq 8(%esp),%mm1
  252. psrlq $6,%mm5
  253. pxor %mm6,%mm7
  254. subl $8,%esp
  255. psllq $5,%mm6
  256. pxor %mm5,%mm7
  257. pxor %mm1,%mm0
  258. psrlq $5,%mm5
  259. pxor %mm6,%mm7
  260. pand %mm0,%mm2
  261. psllq $6,%mm6
  262. pxor %mm5,%mm7
  263. pxor %mm1,%mm2
  264. pxor %mm7,%mm6
  265. movq 192(%esp),%mm7
  266. paddq %mm6,%mm2
  267. addl $8,%ebp
  268. movq 88(%esp),%mm5
  269. movq %mm7,%mm1
  270. psrlq $1,%mm7
  271. movq %mm5,%mm6
  272. psrlq $6,%mm5
  273. psllq $56,%mm1
  274. paddq %mm3,%mm2
  275. movq %mm7,%mm3
  276. psrlq $6,%mm7
  277. pxor %mm1,%mm3
  278. psllq $7,%mm1
  279. pxor %mm7,%mm3
  280. psrlq $1,%mm7
  281. pxor %mm1,%mm3
  282. movq %mm5,%mm1
  283. psrlq $13,%mm5
  284. pxor %mm3,%mm7
  285. psllq $3,%mm6
  286. pxor %mm5,%mm1
  287. paddq 200(%esp),%mm7
  288. pxor %mm6,%mm1
  289. psrlq $42,%mm5
  290. paddq 128(%esp),%mm7
  291. pxor %mm5,%mm1
  292. psllq $42,%mm6
  293. movq 40(%esp),%mm5
  294. pxor %mm6,%mm1
  295. movq 48(%esp),%mm6
  296. paddq %mm1,%mm7
  297. movq %mm4,%mm1
  298. pxor %mm6,%mm5
  299. psrlq $14,%mm1
  300. movq %mm4,32(%esp)
  301. pand %mm4,%mm5
  302. psllq $23,%mm4
  303. movq %mm7,72(%esp)
  304. movq %mm1,%mm3
  305. psrlq $4,%mm1
  306. pxor %mm6,%mm5
  307. pxor %mm4,%mm3
  308. psllq $23,%mm4
  309. pxor %mm1,%mm3
  310. movq %mm2,(%esp)
  311. paddq %mm5,%mm7
  312. pxor %mm4,%mm3
  313. psrlq $23,%mm1
  314. paddq 56(%esp),%mm7
  315. pxor %mm1,%mm3
  316. psllq $4,%mm4
  317. paddq (%ebp),%mm7
  318. pxor %mm4,%mm3
  319. movq 24(%esp),%mm4
  320. paddq %mm7,%mm3
  321. movq %mm2,%mm5
  322. psrlq $28,%mm5
  323. paddq %mm3,%mm4
  324. movq %mm2,%mm6
  325. movq %mm5,%mm7
  326. psllq $25,%mm6
  327. movq 8(%esp),%mm1
  328. psrlq $6,%mm5
  329. pxor %mm6,%mm7
  330. subl $8,%esp
  331. psllq $5,%mm6
  332. pxor %mm5,%mm7
  333. pxor %mm1,%mm2
  334. psrlq $5,%mm5
  335. pxor %mm6,%mm7
  336. pand %mm2,%mm0
  337. psllq $6,%mm6
  338. pxor %mm5,%mm7
  339. pxor %mm1,%mm0
  340. pxor %mm7,%mm6
  341. movq 192(%esp),%mm7
  342. paddq %mm6,%mm0
  343. addl $8,%ebp
  344. decl %edx
  345. jnz .L00616_79_sse2
  346. paddq %mm3,%mm0
  347. movq 8(%esp),%mm1
  348. movq 24(%esp),%mm3
  349. movq 40(%esp),%mm5
  350. movq 48(%esp),%mm6
  351. movq 56(%esp),%mm7
  352. pxor %mm1,%mm2
  353. paddq (%esi),%mm0
  354. paddq 8(%esi),%mm1
  355. paddq 16(%esi),%mm2
  356. paddq 24(%esi),%mm3
  357. paddq 32(%esi),%mm4
  358. paddq 40(%esi),%mm5
  359. paddq 48(%esi),%mm6
  360. paddq 56(%esi),%mm7
  361. movl $640,%eax
  362. movq %mm0,(%esi)
  363. movq %mm1,8(%esi)
  364. movq %mm2,16(%esi)
  365. movq %mm3,24(%esi)
  366. movq %mm4,32(%esi)
  367. movq %mm5,40(%esi)
  368. movq %mm6,48(%esi)
  369. movq %mm7,56(%esi)
  370. leal (%esp,%eax,1),%esp
  371. subl %eax,%ebp
  372. cmpl 88(%esp),%edi
  373. jb .L004loop_sse2
  374. movl 92(%esp),%esp
  375. emms
  376. popl %edi
  377. popl %esi
  378. popl %ebx
  379. popl %ebp
  380. ret
  381. .align 32
  382. .L003SSSE3:
  383. leal -64(%esp),%edx
  384. subl $256,%esp
  385. movdqa 640(%ebp),%xmm1
  386. movdqu (%edi),%xmm0
  387. .byte 102,15,56,0,193
  388. movdqa (%ebp),%xmm3
  389. movdqa %xmm1,%xmm2
  390. movdqu 16(%edi),%xmm1
  391. paddq %xmm0,%xmm3
  392. .byte 102,15,56,0,202
  393. movdqa %xmm3,-128(%edx)
  394. movdqa 16(%ebp),%xmm4
  395. movdqa %xmm2,%xmm3
  396. movdqu 32(%edi),%xmm2
  397. paddq %xmm1,%xmm4
  398. .byte 102,15,56,0,211
  399. movdqa %xmm4,-112(%edx)
  400. movdqa 32(%ebp),%xmm5
  401. movdqa %xmm3,%xmm4
  402. movdqu 48(%edi),%xmm3
  403. paddq %xmm2,%xmm5
  404. .byte 102,15,56,0,220
  405. movdqa %xmm5,-96(%edx)
  406. movdqa 48(%ebp),%xmm6
  407. movdqa %xmm4,%xmm5
  408. movdqu 64(%edi),%xmm4
  409. paddq %xmm3,%xmm6
  410. .byte 102,15,56,0,229
  411. movdqa %xmm6,-80(%edx)
  412. movdqa 64(%ebp),%xmm7
  413. movdqa %xmm5,%xmm6
  414. movdqu 80(%edi),%xmm5
  415. paddq %xmm4,%xmm7
  416. .byte 102,15,56,0,238
  417. movdqa %xmm7,-64(%edx)
  418. movdqa %xmm0,(%edx)
  419. movdqa 80(%ebp),%xmm0
  420. movdqa %xmm6,%xmm7
  421. movdqu 96(%edi),%xmm6
  422. paddq %xmm5,%xmm0
  423. .byte 102,15,56,0,247
  424. movdqa %xmm0,-48(%edx)
  425. movdqa %xmm1,16(%edx)
  426. movdqa 96(%ebp),%xmm1
  427. movdqa %xmm7,%xmm0
  428. movdqu 112(%edi),%xmm7
  429. paddq %xmm6,%xmm1
  430. .byte 102,15,56,0,248
  431. movdqa %xmm1,-32(%edx)
  432. movdqa %xmm2,32(%edx)
  433. movdqa 112(%ebp),%xmm2
  434. movdqa (%edx),%xmm0
  435. paddq %xmm7,%xmm2
  436. movdqa %xmm2,-16(%edx)
  437. nop
  438. .align 32
  439. .L007loop_ssse3:
  440. movdqa 16(%edx),%xmm2
  441. movdqa %xmm3,48(%edx)
  442. leal 128(%ebp),%ebp
  443. movq %mm1,8(%esp)
  444. movl %edi,%ebx
  445. movq %mm2,16(%esp)
  446. leal 128(%edi),%edi
  447. movq %mm3,24(%esp)
  448. cmpl %eax,%edi
  449. movq %mm5,40(%esp)
  450. cmovbl %edi,%ebx
  451. movq %mm6,48(%esp)
  452. movl $4,%ecx
  453. pxor %mm1,%mm2
  454. movq %mm7,56(%esp)
  455. pxor %mm3,%mm3
  456. jmp .L00800_47_ssse3
  457. .align 32
  458. .L00800_47_ssse3:
  459. movdqa %xmm5,%xmm3
  460. movdqa %xmm2,%xmm1
  461. .byte 102,15,58,15,208,8
  462. movdqa %xmm4,(%edx)
  463. .byte 102,15,58,15,220,8
  464. movdqa %xmm2,%xmm4
  465. psrlq $7,%xmm2
  466. paddq %xmm3,%xmm0
  467. movdqa %xmm4,%xmm3
  468. psrlq $1,%xmm4
  469. psllq $56,%xmm3
  470. pxor %xmm4,%xmm2
  471. psrlq $7,%xmm4
  472. pxor %xmm3,%xmm2
  473. psllq $7,%xmm3
  474. pxor %xmm4,%xmm2
  475. movdqa %xmm7,%xmm4
  476. pxor %xmm3,%xmm2
  477. movdqa %xmm7,%xmm3
  478. psrlq $6,%xmm4
  479. paddq %xmm2,%xmm0
  480. movdqa %xmm7,%xmm2
  481. psrlq $19,%xmm3
  482. psllq $3,%xmm2
  483. pxor %xmm3,%xmm4
  484. psrlq $42,%xmm3
  485. pxor %xmm2,%xmm4
  486. psllq $42,%xmm2
  487. pxor %xmm3,%xmm4
  488. movdqa 32(%edx),%xmm3
  489. pxor %xmm2,%xmm4
  490. movdqa (%ebp),%xmm2
  491. movq %mm4,%mm1
  492. paddq %xmm4,%xmm0
  493. movq -128(%edx),%mm7
  494. pxor %mm6,%mm5
  495. psrlq $14,%mm1
  496. movq %mm4,32(%esp)
  497. paddq %xmm0,%xmm2
  498. pand %mm4,%mm5
  499. psllq $23,%mm4
  500. paddq %mm3,%mm0
  501. movq %mm1,%mm3
  502. psrlq $4,%mm1
  503. pxor %mm6,%mm5
  504. pxor %mm4,%mm3
  505. psllq $23,%mm4
  506. pxor %mm1,%mm3
  507. movq %mm0,(%esp)
  508. paddq %mm5,%mm7
  509. pxor %mm4,%mm3
  510. psrlq $23,%mm1
  511. paddq 56(%esp),%mm7
  512. pxor %mm1,%mm3
  513. psllq $4,%mm4
  514. pxor %mm4,%mm3
  515. movq 24(%esp),%mm4
  516. paddq %mm7,%mm3
  517. movq %mm0,%mm5
  518. psrlq $28,%mm5
  519. paddq %mm3,%mm4
  520. movq %mm0,%mm6
  521. movq %mm5,%mm7
  522. psllq $25,%mm6
  523. movq 8(%esp),%mm1
  524. psrlq $6,%mm5
  525. pxor %mm6,%mm7
  526. psllq $5,%mm6
  527. pxor %mm5,%mm7
  528. pxor %mm1,%mm0
  529. psrlq $5,%mm5
  530. pxor %mm6,%mm7
  531. pand %mm0,%mm2
  532. psllq $6,%mm6
  533. pxor %mm5,%mm7
  534. pxor %mm1,%mm2
  535. pxor %mm7,%mm6
  536. movq 32(%esp),%mm5
  537. paddq %mm6,%mm2
  538. movq 40(%esp),%mm6
  539. movq %mm4,%mm1
  540. movq -120(%edx),%mm7
  541. pxor %mm6,%mm5
  542. psrlq $14,%mm1
  543. movq %mm4,24(%esp)
  544. pand %mm4,%mm5
  545. psllq $23,%mm4
  546. paddq %mm3,%mm2
  547. movq %mm1,%mm3
  548. psrlq $4,%mm1
  549. pxor %mm6,%mm5
  550. pxor %mm4,%mm3
  551. psllq $23,%mm4
  552. pxor %mm1,%mm3
  553. movq %mm2,56(%esp)
  554. paddq %mm5,%mm7
  555. pxor %mm4,%mm3
  556. psrlq $23,%mm1
  557. paddq 48(%esp),%mm7
  558. pxor %mm1,%mm3
  559. psllq $4,%mm4
  560. pxor %mm4,%mm3
  561. movq 16(%esp),%mm4
  562. paddq %mm7,%mm3
  563. movq %mm2,%mm5
  564. psrlq $28,%mm5
  565. paddq %mm3,%mm4
  566. movq %mm2,%mm6
  567. movq %mm5,%mm7
  568. psllq $25,%mm6
  569. movq (%esp),%mm1
  570. psrlq $6,%mm5
  571. pxor %mm6,%mm7
  572. psllq $5,%mm6
  573. pxor %mm5,%mm7
  574. pxor %mm1,%mm2
  575. psrlq $5,%mm5
  576. pxor %mm6,%mm7
  577. pand %mm2,%mm0
  578. psllq $6,%mm6
  579. pxor %mm5,%mm7
  580. pxor %mm1,%mm0
  581. pxor %mm7,%mm6
  582. movq 24(%esp),%mm5
  583. paddq %mm6,%mm0
  584. movq 32(%esp),%mm6
  585. movdqa %xmm2,-128(%edx)
  586. movdqa %xmm6,%xmm4
  587. movdqa %xmm3,%xmm2
  588. .byte 102,15,58,15,217,8
  589. movdqa %xmm5,16(%edx)
  590. .byte 102,15,58,15,229,8
  591. movdqa %xmm3,%xmm5
  592. psrlq $7,%xmm3
  593. paddq %xmm4,%xmm1
  594. movdqa %xmm5,%xmm4
  595. psrlq $1,%xmm5
  596. psllq $56,%xmm4
  597. pxor %xmm5,%xmm3
  598. psrlq $7,%xmm5
  599. pxor %xmm4,%xmm3
  600. psllq $7,%xmm4
  601. pxor %xmm5,%xmm3
  602. movdqa %xmm0,%xmm5
  603. pxor %xmm4,%xmm3
  604. movdqa %xmm0,%xmm4
  605. psrlq $6,%xmm5
  606. paddq %xmm3,%xmm1
  607. movdqa %xmm0,%xmm3
  608. psrlq $19,%xmm4
  609. psllq $3,%xmm3
  610. pxor %xmm4,%xmm5
  611. psrlq $42,%xmm4
  612. pxor %xmm3,%xmm5
  613. psllq $42,%xmm3
  614. pxor %xmm4,%xmm5
  615. movdqa 48(%edx),%xmm4
  616. pxor %xmm3,%xmm5
  617. movdqa 16(%ebp),%xmm3
  618. movq %mm4,%mm1
  619. paddq %xmm5,%xmm1
  620. movq -112(%edx),%mm7
  621. pxor %mm6,%mm5
  622. psrlq $14,%mm1
  623. movq %mm4,16(%esp)
  624. paddq %xmm1,%xmm3
  625. pand %mm4,%mm5
  626. psllq $23,%mm4
  627. paddq %mm3,%mm0
  628. movq %mm1,%mm3
  629. psrlq $4,%mm1
  630. pxor %mm6,%mm5
  631. pxor %mm4,%mm3
  632. psllq $23,%mm4
  633. pxor %mm1,%mm3
  634. movq %mm0,48(%esp)
  635. paddq %mm5,%mm7
  636. pxor %mm4,%mm3
  637. psrlq $23,%mm1
  638. paddq 40(%esp),%mm7
  639. pxor %mm1,%mm3
  640. psllq $4,%mm4
  641. pxor %mm4,%mm3
  642. movq 8(%esp),%mm4
  643. paddq %mm7,%mm3
  644. movq %mm0,%mm5
  645. psrlq $28,%mm5
  646. paddq %mm3,%mm4
  647. movq %mm0,%mm6
  648. movq %mm5,%mm7
  649. psllq $25,%mm6
  650. movq 56(%esp),%mm1
  651. psrlq $6,%mm5
  652. pxor %mm6,%mm7
  653. psllq $5,%mm6
  654. pxor %mm5,%mm7
  655. pxor %mm1,%mm0
  656. psrlq $5,%mm5
  657. pxor %mm6,%mm7
  658. pand %mm0,%mm2
  659. psllq $6,%mm6
  660. pxor %mm5,%mm7
  661. pxor %mm1,%mm2
  662. pxor %mm7,%mm6
  663. movq 16(%esp),%mm5
  664. paddq %mm6,%mm2
  665. movq 24(%esp),%mm6
  666. movq %mm4,%mm1
  667. movq -104(%edx),%mm7
  668. pxor %mm6,%mm5
  669. psrlq $14,%mm1
  670. movq %mm4,8(%esp)
  671. pand %mm4,%mm5
  672. psllq $23,%mm4
  673. paddq %mm3,%mm2
  674. movq %mm1,%mm3
  675. psrlq $4,%mm1
  676. pxor %mm6,%mm5
  677. pxor %mm4,%mm3
  678. psllq $23,%mm4
  679. pxor %mm1,%mm3
  680. movq %mm2,40(%esp)
  681. paddq %mm5,%mm7
  682. pxor %mm4,%mm3
  683. psrlq $23,%mm1
  684. paddq 32(%esp),%mm7
  685. pxor %mm1,%mm3
  686. psllq $4,%mm4
  687. pxor %mm4,%mm3
  688. movq (%esp),%mm4
  689. paddq %mm7,%mm3
  690. movq %mm2,%mm5
  691. psrlq $28,%mm5
  692. paddq %mm3,%mm4
  693. movq %mm2,%mm6
  694. movq %mm5,%mm7
  695. psllq $25,%mm6
  696. movq 48(%esp),%mm1
  697. psrlq $6,%mm5
  698. pxor %mm6,%mm7
  699. psllq $5,%mm6
  700. pxor %mm5,%mm7
  701. pxor %mm1,%mm2
  702. psrlq $5,%mm5
  703. pxor %mm6,%mm7
  704. pand %mm2,%mm0
  705. psllq $6,%mm6
  706. pxor %mm5,%mm7
  707. pxor %mm1,%mm0
  708. pxor %mm7,%mm6
  709. movq 8(%esp),%mm5
  710. paddq %mm6,%mm0
  711. movq 16(%esp),%mm6
  712. movdqa %xmm3,-112(%edx)
  713. movdqa %xmm7,%xmm5
  714. movdqa %xmm4,%xmm3
  715. .byte 102,15,58,15,226,8
  716. movdqa %xmm6,32(%edx)
  717. .byte 102,15,58,15,238,8
  718. movdqa %xmm4,%xmm6
  719. psrlq $7,%xmm4
  720. paddq %xmm5,%xmm2
  721. movdqa %xmm6,%xmm5
  722. psrlq $1,%xmm6
  723. psllq $56,%xmm5
  724. pxor %xmm6,%xmm4
  725. psrlq $7,%xmm6
  726. pxor %xmm5,%xmm4
  727. psllq $7,%xmm5
  728. pxor %xmm6,%xmm4
  729. movdqa %xmm1,%xmm6
  730. pxor %xmm5,%xmm4
  731. movdqa %xmm1,%xmm5
  732. psrlq $6,%xmm6
  733. paddq %xmm4,%xmm2
  734. movdqa %xmm1,%xmm4
  735. psrlq $19,%xmm5
  736. psllq $3,%xmm4
  737. pxor %xmm5,%xmm6
  738. psrlq $42,%xmm5
  739. pxor %xmm4,%xmm6
  740. psllq $42,%xmm4
  741. pxor %xmm5,%xmm6
  742. movdqa (%edx),%xmm5
  743. pxor %xmm4,%xmm6
  744. movdqa 32(%ebp),%xmm4
  745. movq %mm4,%mm1
  746. paddq %xmm6,%xmm2
  747. movq -96(%edx),%mm7
  748. pxor %mm6,%mm5
  749. psrlq $14,%mm1
  750. movq %mm4,(%esp)
  751. paddq %xmm2,%xmm4
  752. pand %mm4,%mm5
  753. psllq $23,%mm4
  754. paddq %mm3,%mm0
  755. movq %mm1,%mm3
  756. psrlq $4,%mm1
  757. pxor %mm6,%mm5
  758. pxor %mm4,%mm3
  759. psllq $23,%mm4
  760. pxor %mm1,%mm3
  761. movq %mm0,32(%esp)
  762. paddq %mm5,%mm7
  763. pxor %mm4,%mm3
  764. psrlq $23,%mm1
  765. paddq 24(%esp),%mm7
  766. pxor %mm1,%mm3
  767. psllq $4,%mm4
  768. pxor %mm4,%mm3
  769. movq 56(%esp),%mm4
  770. paddq %mm7,%mm3
  771. movq %mm0,%mm5
  772. psrlq $28,%mm5
  773. paddq %mm3,%mm4
  774. movq %mm0,%mm6
  775. movq %mm5,%mm7
  776. psllq $25,%mm6
  777. movq 40(%esp),%mm1
  778. psrlq $6,%mm5
  779. pxor %mm6,%mm7
  780. psllq $5,%mm6
  781. pxor %mm5,%mm7
  782. pxor %mm1,%mm0
  783. psrlq $5,%mm5
  784. pxor %mm6,%mm7
  785. pand %mm0,%mm2
  786. psllq $6,%mm6
  787. pxor %mm5,%mm7
  788. pxor %mm1,%mm2
  789. pxor %mm7,%mm6
  790. movq (%esp),%mm5
  791. paddq %mm6,%mm2
  792. movq 8(%esp),%mm6
  793. movq %mm4,%mm1
  794. movq -88(%edx),%mm7
  795. pxor %mm6,%mm5
  796. psrlq $14,%mm1
  797. movq %mm4,56(%esp)
  798. pand %mm4,%mm5
  799. psllq $23,%mm4
  800. paddq %mm3,%mm2
  801. movq %mm1,%mm3
  802. psrlq $4,%mm1
  803. pxor %mm6,%mm5
  804. pxor %mm4,%mm3
  805. psllq $23,%mm4
  806. pxor %mm1,%mm3
  807. movq %mm2,24(%esp)
  808. paddq %mm5,%mm7
  809. pxor %mm4,%mm3
  810. psrlq $23,%mm1
  811. paddq 16(%esp),%mm7
  812. pxor %mm1,%mm3
  813. psllq $4,%mm4
  814. pxor %mm4,%mm3
  815. movq 48(%esp),%mm4
  816. paddq %mm7,%mm3
  817. movq %mm2,%mm5
  818. psrlq $28,%mm5
  819. paddq %mm3,%mm4
  820. movq %mm2,%mm6
  821. movq %mm5,%mm7
  822. psllq $25,%mm6
  823. movq 32(%esp),%mm1
  824. psrlq $6,%mm5
  825. pxor %mm6,%mm7
  826. psllq $5,%mm6
  827. pxor %mm5,%mm7
  828. pxor %mm1,%mm2
  829. psrlq $5,%mm5
  830. pxor %mm6,%mm7
  831. pand %mm2,%mm0
  832. psllq $6,%mm6
  833. pxor %mm5,%mm7
  834. pxor %mm1,%mm0
  835. pxor %mm7,%mm6
  836. movq 56(%esp),%mm5
  837. paddq %mm6,%mm0
  838. movq (%esp),%mm6
  839. movdqa %xmm4,-96(%edx)
  840. movdqa %xmm0,%xmm6
  841. movdqa %xmm5,%xmm4
  842. .byte 102,15,58,15,235,8
  843. movdqa %xmm7,48(%edx)
  844. .byte 102,15,58,15,247,8
  845. movdqa %xmm5,%xmm7
  846. psrlq $7,%xmm5
  847. paddq %xmm6,%xmm3
  848. movdqa %xmm7,%xmm6
  849. psrlq $1,%xmm7
  850. psllq $56,%xmm6
  851. pxor %xmm7,%xmm5
  852. psrlq $7,%xmm7
  853. pxor %xmm6,%xmm5
  854. psllq $7,%xmm6
  855. pxor %xmm7,%xmm5
  856. movdqa %xmm2,%xmm7
  857. pxor %xmm6,%xmm5
  858. movdqa %xmm2,%xmm6
  859. psrlq $6,%xmm7
  860. paddq %xmm5,%xmm3
  861. movdqa %xmm2,%xmm5
  862. psrlq $19,%xmm6
  863. psllq $3,%xmm5
  864. pxor %xmm6,%xmm7
  865. psrlq $42,%xmm6
  866. pxor %xmm5,%xmm7
  867. psllq $42,%xmm5
  868. pxor %xmm6,%xmm7
  869. movdqa 16(%edx),%xmm6
  870. pxor %xmm5,%xmm7
  871. movdqa 48(%ebp),%xmm5
  872. movq %mm4,%mm1
  873. paddq %xmm7,%xmm3
  874. movq -80(%edx),%mm7
  875. pxor %mm6,%mm5
  876. psrlq $14,%mm1
  877. movq %mm4,48(%esp)
  878. paddq %xmm3,%xmm5
  879. pand %mm4,%mm5
  880. psllq $23,%mm4
  881. paddq %mm3,%mm0
  882. movq %mm1,%mm3
  883. psrlq $4,%mm1
  884. pxor %mm6,%mm5
  885. pxor %mm4,%mm3
  886. psllq $23,%mm4
  887. pxor %mm1,%mm3
  888. movq %mm0,16(%esp)
  889. paddq %mm5,%mm7
  890. pxor %mm4,%mm3
  891. psrlq $23,%mm1
  892. paddq 8(%esp),%mm7
  893. pxor %mm1,%mm3
  894. psllq $4,%mm4
  895. pxor %mm4,%mm3
  896. movq 40(%esp),%mm4
  897. paddq %mm7,%mm3
  898. movq %mm0,%mm5
  899. psrlq $28,%mm5
  900. paddq %mm3,%mm4
  901. movq %mm0,%mm6
  902. movq %mm5,%mm7
  903. psllq $25,%mm6
  904. movq 24(%esp),%mm1
  905. psrlq $6,%mm5
  906. pxor %mm6,%mm7
  907. psllq $5,%mm6
  908. pxor %mm5,%mm7
  909. pxor %mm1,%mm0
  910. psrlq $5,%mm5
  911. pxor %mm6,%mm7
  912. pand %mm0,%mm2
  913. psllq $6,%mm6
  914. pxor %mm5,%mm7
  915. pxor %mm1,%mm2
  916. pxor %mm7,%mm6
  917. movq 48(%esp),%mm5
  918. paddq %mm6,%mm2
  919. movq 56(%esp),%mm6
  920. movq %mm4,%mm1
  921. movq -72(%edx),%mm7
  922. pxor %mm6,%mm5
  923. psrlq $14,%mm1
  924. movq %mm4,40(%esp)
  925. pand %mm4,%mm5
  926. psllq $23,%mm4
  927. paddq %mm3,%mm2
  928. movq %mm1,%mm3
  929. psrlq $4,%mm1
  930. pxor %mm6,%mm5
  931. pxor %mm4,%mm3
  932. psllq $23,%mm4
  933. pxor %mm1,%mm3
  934. movq %mm2,8(%esp)
  935. paddq %mm5,%mm7
  936. pxor %mm4,%mm3
  937. psrlq $23,%mm1
  938. paddq (%esp),%mm7
  939. pxor %mm1,%mm3
  940. psllq $4,%mm4
  941. pxor %mm4,%mm3
  942. movq 32(%esp),%mm4
  943. paddq %mm7,%mm3
  944. movq %mm2,%mm5
  945. psrlq $28,%mm5
  946. paddq %mm3,%mm4
  947. movq %mm2,%mm6
  948. movq %mm5,%mm7
  949. psllq $25,%mm6
  950. movq 16(%esp),%mm1
  951. psrlq $6,%mm5
  952. pxor %mm6,%mm7
  953. psllq $5,%mm6
  954. pxor %mm5,%mm7
  955. pxor %mm1,%mm2
  956. psrlq $5,%mm5
  957. pxor %mm6,%mm7
  958. pand %mm2,%mm0
  959. psllq $6,%mm6
  960. pxor %mm5,%mm7
  961. pxor %mm1,%mm0
  962. pxor %mm7,%mm6
  963. movq 40(%esp),%mm5
  964. paddq %mm6,%mm0
  965. movq 48(%esp),%mm6
  966. movdqa %xmm5,-80(%edx)
  967. movdqa %xmm1,%xmm7
  968. movdqa %xmm6,%xmm5
  969. .byte 102,15,58,15,244,8
  970. movdqa %xmm0,(%edx)
  971. .byte 102,15,58,15,248,8
  972. movdqa %xmm6,%xmm0
  973. psrlq $7,%xmm6
  974. paddq %xmm7,%xmm4
  975. movdqa %xmm0,%xmm7
  976. psrlq $1,%xmm0
  977. psllq $56,%xmm7
  978. pxor %xmm0,%xmm6
  979. psrlq $7,%xmm0
  980. pxor %xmm7,%xmm6
  981. psllq $7,%xmm7
  982. pxor %xmm0,%xmm6
  983. movdqa %xmm3,%xmm0
  984. pxor %xmm7,%xmm6
  985. movdqa %xmm3,%xmm7
  986. psrlq $6,%xmm0
  987. paddq %xmm6,%xmm4
  988. movdqa %xmm3,%xmm6
  989. psrlq $19,%xmm7
  990. psllq $3,%xmm6
  991. pxor %xmm7,%xmm0
  992. psrlq $42,%xmm7
  993. pxor %xmm6,%xmm0
  994. psllq $42,%xmm6
  995. pxor %xmm7,%xmm0
  996. movdqa 32(%edx),%xmm7
  997. pxor %xmm6,%xmm0
  998. movdqa 64(%ebp),%xmm6
  999. movq %mm4,%mm1
  1000. paddq %xmm0,%xmm4
  1001. movq -64(%edx),%mm7
  1002. pxor %mm6,%mm5
  1003. psrlq $14,%mm1
  1004. movq %mm4,32(%esp)
  1005. paddq %xmm4,%xmm6
  1006. pand %mm4,%mm5
  1007. psllq $23,%mm4
  1008. paddq %mm3,%mm0
  1009. movq %mm1,%mm3
  1010. psrlq $4,%mm1
  1011. pxor %mm6,%mm5
  1012. pxor %mm4,%mm3
  1013. psllq $23,%mm4
  1014. pxor %mm1,%mm3
  1015. movq %mm0,(%esp)
  1016. paddq %mm5,%mm7
  1017. pxor %mm4,%mm3
  1018. psrlq $23,%mm1
  1019. paddq 56(%esp),%mm7
  1020. pxor %mm1,%mm3
  1021. psllq $4,%mm4
  1022. pxor %mm4,%mm3
  1023. movq 24(%esp),%mm4
  1024. paddq %mm7,%mm3
  1025. movq %mm0,%mm5
  1026. psrlq $28,%mm5
  1027. paddq %mm3,%mm4
  1028. movq %mm0,%mm6
  1029. movq %mm5,%mm7
  1030. psllq $25,%mm6
  1031. movq 8(%esp),%mm1
  1032. psrlq $6,%mm5
  1033. pxor %mm6,%mm7
  1034. psllq $5,%mm6
  1035. pxor %mm5,%mm7
  1036. pxor %mm1,%mm0
  1037. psrlq $5,%mm5
  1038. pxor %mm6,%mm7
  1039. pand %mm0,%mm2
  1040. psllq $6,%mm6
  1041. pxor %mm5,%mm7
  1042. pxor %mm1,%mm2
  1043. pxor %mm7,%mm6
  1044. movq 32(%esp),%mm5
  1045. paddq %mm6,%mm2
  1046. movq 40(%esp),%mm6
  1047. movq %mm4,%mm1
  1048. movq -56(%edx),%mm7
  1049. pxor %mm6,%mm5
  1050. psrlq $14,%mm1
  1051. movq %mm4,24(%esp)
  1052. pand %mm4,%mm5
  1053. psllq $23,%mm4
  1054. paddq %mm3,%mm2
  1055. movq %mm1,%mm3
  1056. psrlq $4,%mm1
  1057. pxor %mm6,%mm5
  1058. pxor %mm4,%mm3
  1059. psllq $23,%mm4
  1060. pxor %mm1,%mm3
  1061. movq %mm2,56(%esp)
  1062. paddq %mm5,%mm7
  1063. pxor %mm4,%mm3
  1064. psrlq $23,%mm1
  1065. paddq 48(%esp),%mm7
  1066. pxor %mm1,%mm3
  1067. psllq $4,%mm4
  1068. pxor %mm4,%mm3
  1069. movq 16(%esp),%mm4
  1070. paddq %mm7,%mm3
  1071. movq %mm2,%mm5
  1072. psrlq $28,%mm5
  1073. paddq %mm3,%mm4
  1074. movq %mm2,%mm6
  1075. movq %mm5,%mm7
  1076. psllq $25,%mm6
  1077. movq (%esp),%mm1
  1078. psrlq $6,%mm5
  1079. pxor %mm6,%mm7
  1080. psllq $5,%mm6
  1081. pxor %mm5,%mm7
  1082. pxor %mm1,%mm2
  1083. psrlq $5,%mm5
  1084. pxor %mm6,%mm7
  1085. pand %mm2,%mm0
  1086. psllq $6,%mm6
  1087. pxor %mm5,%mm7
  1088. pxor %mm1,%mm0
  1089. pxor %mm7,%mm6
  1090. movq 24(%esp),%mm5
  1091. paddq %mm6,%mm0
  1092. movq 32(%esp),%mm6
  1093. movdqa %xmm6,-64(%edx)
  1094. movdqa %xmm2,%xmm0
  1095. movdqa %xmm7,%xmm6
  1096. .byte 102,15,58,15,253,8
  1097. movdqa %xmm1,16(%edx)
  1098. .byte 102,15,58,15,193,8
  1099. movdqa %xmm7,%xmm1
  1100. psrlq $7,%xmm7
  1101. paddq %xmm0,%xmm5
  1102. movdqa %xmm1,%xmm0
  1103. psrlq $1,%xmm1
  1104. psllq $56,%xmm0
  1105. pxor %xmm1,%xmm7
  1106. psrlq $7,%xmm1
  1107. pxor %xmm0,%xmm7
  1108. psllq $7,%xmm0
  1109. pxor %xmm1,%xmm7
  1110. movdqa %xmm4,%xmm1
  1111. pxor %xmm0,%xmm7
  1112. movdqa %xmm4,%xmm0
  1113. psrlq $6,%xmm1
  1114. paddq %xmm7,%xmm5
  1115. movdqa %xmm4,%xmm7
  1116. psrlq $19,%xmm0
  1117. psllq $3,%xmm7
  1118. pxor %xmm0,%xmm1
  1119. psrlq $42,%xmm0
  1120. pxor %xmm7,%xmm1
  1121. psllq $42,%xmm7
  1122. pxor %xmm0,%xmm1
  1123. movdqa 48(%edx),%xmm0
  1124. pxor %xmm7,%xmm1
  1125. movdqa 80(%ebp),%xmm7
  1126. movq %mm4,%mm1
  1127. paddq %xmm1,%xmm5
  1128. movq -48(%edx),%mm7
  1129. pxor %mm6,%mm5
  1130. psrlq $14,%mm1
  1131. movq %mm4,16(%esp)
  1132. paddq %xmm5,%xmm7
  1133. pand %mm4,%mm5
  1134. psllq $23,%mm4
  1135. paddq %mm3,%mm0
  1136. movq %mm1,%mm3
  1137. psrlq $4,%mm1
  1138. pxor %mm6,%mm5
  1139. pxor %mm4,%mm3
  1140. psllq $23,%mm4
  1141. pxor %mm1,%mm3
  1142. movq %mm0,48(%esp)
  1143. paddq %mm5,%mm7
  1144. pxor %mm4,%mm3
  1145. psrlq $23,%mm1
  1146. paddq 40(%esp),%mm7
  1147. pxor %mm1,%mm3
  1148. psllq $4,%mm4
  1149. pxor %mm4,%mm3
  1150. movq 8(%esp),%mm4
  1151. paddq %mm7,%mm3
  1152. movq %mm0,%mm5
  1153. psrlq $28,%mm5
  1154. paddq %mm3,%mm4
  1155. movq %mm0,%mm6
  1156. movq %mm5,%mm7
  1157. psllq $25,%mm6
  1158. movq 56(%esp),%mm1
  1159. psrlq $6,%mm5
  1160. pxor %mm6,%mm7
  1161. psllq $5,%mm6
  1162. pxor %mm5,%mm7
  1163. pxor %mm1,%mm0
  1164. psrlq $5,%mm5
  1165. pxor %mm6,%mm7
  1166. pand %mm0,%mm2
  1167. psllq $6,%mm6
  1168. pxor %mm5,%mm7
  1169. pxor %mm1,%mm2
  1170. pxor %mm7,%mm6
  1171. movq 16(%esp),%mm5
  1172. paddq %mm6,%mm2
  1173. movq 24(%esp),%mm6
  1174. movq %mm4,%mm1
  1175. movq -40(%edx),%mm7
  1176. pxor %mm6,%mm5
  1177. psrlq $14,%mm1
  1178. movq %mm4,8(%esp)
  1179. pand %mm4,%mm5
  1180. psllq $23,%mm4
  1181. paddq %mm3,%mm2
  1182. movq %mm1,%mm3
  1183. psrlq $4,%mm1
  1184. pxor %mm6,%mm5
  1185. pxor %mm4,%mm3
  1186. psllq $23,%mm4
  1187. pxor %mm1,%mm3
  1188. movq %mm2,40(%esp)
  1189. paddq %mm5,%mm7
  1190. pxor %mm4,%mm3
  1191. psrlq $23,%mm1
  1192. paddq 32(%esp),%mm7
  1193. pxor %mm1,%mm3
  1194. psllq $4,%mm4
  1195. pxor %mm4,%mm3
  1196. movq (%esp),%mm4
  1197. paddq %mm7,%mm3
  1198. movq %mm2,%mm5
  1199. psrlq $28,%mm5
  1200. paddq %mm3,%mm4
  1201. movq %mm2,%mm6
  1202. movq %mm5,%mm7
  1203. psllq $25,%mm6
  1204. movq 48(%esp),%mm1
  1205. psrlq $6,%mm5
  1206. pxor %mm6,%mm7
  1207. psllq $5,%mm6
  1208. pxor %mm5,%mm7
  1209. pxor %mm1,%mm2
  1210. psrlq $5,%mm5
  1211. pxor %mm6,%mm7
  1212. pand %mm2,%mm0
  1213. psllq $6,%mm6
  1214. pxor %mm5,%mm7
  1215. pxor %mm1,%mm0
  1216. pxor %mm7,%mm6
  1217. movq 8(%esp),%mm5
  1218. paddq %mm6,%mm0
  1219. movq 16(%esp),%mm6
  1220. movdqa %xmm7,-48(%edx)
  1221. movdqa %xmm3,%xmm1
  1222. movdqa %xmm0,%xmm7
  1223. .byte 102,15,58,15,198,8
  1224. movdqa %xmm2,32(%edx)
  1225. .byte 102,15,58,15,202,8
  1226. movdqa %xmm0,%xmm2
  1227. psrlq $7,%xmm0
  1228. paddq %xmm1,%xmm6
  1229. movdqa %xmm2,%xmm1
  1230. psrlq $1,%xmm2
  1231. psllq $56,%xmm1
  1232. pxor %xmm2,%xmm0
  1233. psrlq $7,%xmm2
  1234. pxor %xmm1,%xmm0
  1235. psllq $7,%xmm1
  1236. pxor %xmm2,%xmm0
  1237. movdqa %xmm5,%xmm2
  1238. pxor %xmm1,%xmm0
  1239. movdqa %xmm5,%xmm1
  1240. psrlq $6,%xmm2
  1241. paddq %xmm0,%xmm6
  1242. movdqa %xmm5,%xmm0
  1243. psrlq $19,%xmm1
  1244. psllq $3,%xmm0
  1245. pxor %xmm1,%xmm2
  1246. psrlq $42,%xmm1
  1247. pxor %xmm0,%xmm2
  1248. psllq $42,%xmm0
  1249. pxor %xmm1,%xmm2
  1250. movdqa (%edx),%xmm1
  1251. pxor %xmm0,%xmm2
  1252. movdqa 96(%ebp),%xmm0
  1253. movq %mm4,%mm1
  1254. paddq %xmm2,%xmm6
  1255. movq -32(%edx),%mm7
  1256. pxor %mm6,%mm5
  1257. psrlq $14,%mm1
  1258. movq %mm4,(%esp)
  1259. paddq %xmm6,%xmm0
  1260. pand %mm4,%mm5
  1261. psllq $23,%mm4
  1262. paddq %mm3,%mm0
  1263. movq %mm1,%mm3
  1264. psrlq $4,%mm1
  1265. pxor %mm6,%mm5
  1266. pxor %mm4,%mm3
  1267. psllq $23,%mm4
  1268. pxor %mm1,%mm3
  1269. movq %mm0,32(%esp)
  1270. paddq %mm5,%mm7
  1271. pxor %mm4,%mm3
  1272. psrlq $23,%mm1
  1273. paddq 24(%esp),%mm7
  1274. pxor %mm1,%mm3
  1275. psllq $4,%mm4
  1276. pxor %mm4,%mm3
  1277. movq 56(%esp),%mm4
  1278. paddq %mm7,%mm3
  1279. movq %mm0,%mm5
  1280. psrlq $28,%mm5
  1281. paddq %mm3,%mm4
  1282. movq %mm0,%mm6
  1283. movq %mm5,%mm7
  1284. psllq $25,%mm6
  1285. movq 40(%esp),%mm1
  1286. psrlq $6,%mm5
  1287. pxor %mm6,%mm7
  1288. psllq $5,%mm6
  1289. pxor %mm5,%mm7
  1290. pxor %mm1,%mm0
  1291. psrlq $5,%mm5
  1292. pxor %mm6,%mm7
  1293. pand %mm0,%mm2
  1294. psllq $6,%mm6
  1295. pxor %mm5,%mm7
  1296. pxor %mm1,%mm2
  1297. pxor %mm7,%mm6
  1298. movq (%esp),%mm5
  1299. paddq %mm6,%mm2
  1300. movq 8(%esp),%mm6
  1301. movq %mm4,%mm1
  1302. movq -24(%edx),%mm7
  1303. pxor %mm6,%mm5
  1304. psrlq $14,%mm1
  1305. movq %mm4,56(%esp)
  1306. pand %mm4,%mm5
  1307. psllq $23,%mm4
  1308. paddq %mm3,%mm2
  1309. movq %mm1,%mm3
  1310. psrlq $4,%mm1
  1311. pxor %mm6,%mm5
  1312. pxor %mm4,%mm3
  1313. psllq $23,%mm4
  1314. pxor %mm1,%mm3
  1315. movq %mm2,24(%esp)
  1316. paddq %mm5,%mm7
  1317. pxor %mm4,%mm3
  1318. psrlq $23,%mm1
  1319. paddq 16(%esp),%mm7
  1320. pxor %mm1,%mm3
  1321. psllq $4,%mm4
  1322. pxor %mm4,%mm3
  1323. movq 48(%esp),%mm4
  1324. paddq %mm7,%mm3
  1325. movq %mm2,%mm5
  1326. psrlq $28,%mm5
  1327. paddq %mm3,%mm4
  1328. movq %mm2,%mm6
  1329. movq %mm5,%mm7
  1330. psllq $25,%mm6
  1331. movq 32(%esp),%mm1
  1332. psrlq $6,%mm5
  1333. pxor %mm6,%mm7
  1334. psllq $5,%mm6
  1335. pxor %mm5,%mm7
  1336. pxor %mm1,%mm2
  1337. psrlq $5,%mm5
  1338. pxor %mm6,%mm7
  1339. pand %mm2,%mm0
  1340. psllq $6,%mm6
  1341. pxor %mm5,%mm7
  1342. pxor %mm1,%mm0
  1343. pxor %mm7,%mm6
  1344. movq 56(%esp),%mm5
  1345. paddq %mm6,%mm0
  1346. movq (%esp),%mm6
  1347. movdqa %xmm0,-32(%edx)
  1348. movdqa %xmm4,%xmm2
  1349. movdqa %xmm1,%xmm0
  1350. .byte 102,15,58,15,207,8
  1351. movdqa %xmm3,48(%edx)
  1352. .byte 102,15,58,15,211,8
  1353. movdqa %xmm1,%xmm3
  1354. psrlq $7,%xmm1
  1355. paddq %xmm2,%xmm7
  1356. movdqa %xmm3,%xmm2
  1357. psrlq $1,%xmm3
  1358. psllq $56,%xmm2
  1359. pxor %xmm3,%xmm1
  1360. psrlq $7,%xmm3
  1361. pxor %xmm2,%xmm1
  1362. psllq $7,%xmm2
  1363. pxor %xmm3,%xmm1
  1364. movdqa %xmm6,%xmm3
  1365. pxor %xmm2,%xmm1
  1366. movdqa %xmm6,%xmm2
  1367. psrlq $6,%xmm3
  1368. paddq %xmm1,%xmm7
  1369. movdqa %xmm6,%xmm1
  1370. psrlq $19,%xmm2
  1371. psllq $3,%xmm1
  1372. pxor %xmm2,%xmm3
  1373. psrlq $42,%xmm2
  1374. pxor %xmm1,%xmm3
  1375. psllq $42,%xmm1
  1376. pxor %xmm2,%xmm3
  1377. movdqa 16(%edx),%xmm2
  1378. pxor %xmm1,%xmm3
  1379. movdqa 112(%ebp),%xmm1
  1380. movq %mm4,%mm1
  1381. paddq %xmm3,%xmm7
  1382. movq -16(%edx),%mm7
  1383. pxor %mm6,%mm5
  1384. psrlq $14,%mm1
  1385. movq %mm4,48(%esp)
  1386. paddq %xmm7,%xmm1
  1387. pand %mm4,%mm5
  1388. psllq $23,%mm4
  1389. paddq %mm3,%mm0
  1390. movq %mm1,%mm3
  1391. psrlq $4,%mm1
  1392. pxor %mm6,%mm5
  1393. pxor %mm4,%mm3
  1394. psllq $23,%mm4
  1395. pxor %mm1,%mm3
  1396. movq %mm0,16(%esp)
  1397. paddq %mm5,%mm7
  1398. pxor %mm4,%mm3
  1399. psrlq $23,%mm1
  1400. paddq 8(%esp),%mm7
  1401. pxor %mm1,%mm3
  1402. psllq $4,%mm4
  1403. pxor %mm4,%mm3
  1404. movq 40(%esp),%mm4
  1405. paddq %mm7,%mm3
  1406. movq %mm0,%mm5
  1407. psrlq $28,%mm5
  1408. paddq %mm3,%mm4
  1409. movq %mm0,%mm6
  1410. movq %mm5,%mm7
  1411. psllq $25,%mm6
  1412. movq 24(%esp),%mm1
  1413. psrlq $6,%mm5
  1414. pxor %mm6,%mm7
  1415. psllq $5,%mm6
  1416. pxor %mm5,%mm7
  1417. pxor %mm1,%mm0
  1418. psrlq $5,%mm5
  1419. pxor %mm6,%mm7
  1420. pand %mm0,%mm2
  1421. psllq $6,%mm6
  1422. pxor %mm5,%mm7
  1423. pxor %mm1,%mm2
  1424. pxor %mm7,%mm6
  1425. movq 48(%esp),%mm5
  1426. paddq %mm6,%mm2
  1427. movq 56(%esp),%mm6
  1428. movq %mm4,%mm1
  1429. movq -8(%edx),%mm7
  1430. pxor %mm6,%mm5
  1431. psrlq $14,%mm1
  1432. movq %mm4,40(%esp)
  1433. pand %mm4,%mm5
  1434. psllq $23,%mm4
  1435. paddq %mm3,%mm2
  1436. movq %mm1,%mm3
  1437. psrlq $4,%mm1
  1438. pxor %mm6,%mm5
  1439. pxor %mm4,%mm3
  1440. psllq $23,%mm4
  1441. pxor %mm1,%mm3
  1442. movq %mm2,8(%esp)
  1443. paddq %mm5,%mm7
  1444. pxor %mm4,%mm3
  1445. psrlq $23,%mm1
  1446. paddq (%esp),%mm7
  1447. pxor %mm1,%mm3
  1448. psllq $4,%mm4
  1449. pxor %mm4,%mm3
  1450. movq 32(%esp),%mm4
  1451. paddq %mm7,%mm3
  1452. movq %mm2,%mm5
  1453. psrlq $28,%mm5
  1454. paddq %mm3,%mm4
  1455. movq %mm2,%mm6
  1456. movq %mm5,%mm7
  1457. psllq $25,%mm6
  1458. movq 16(%esp),%mm1
  1459. psrlq $6,%mm5
  1460. pxor %mm6,%mm7
  1461. psllq $5,%mm6
  1462. pxor %mm5,%mm7
  1463. pxor %mm1,%mm2
  1464. psrlq $5,%mm5
  1465. pxor %mm6,%mm7
  1466. pand %mm2,%mm0
  1467. psllq $6,%mm6
  1468. pxor %mm5,%mm7
  1469. pxor %mm1,%mm0
  1470. pxor %mm7,%mm6
  1471. movq 40(%esp),%mm5
  1472. paddq %mm6,%mm0
  1473. movq 48(%esp),%mm6
  1474. movdqa %xmm1,-16(%edx)
  1475. leal 128(%ebp),%ebp
  1476. decl %ecx
  1477. jnz .L00800_47_ssse3
  1478. movdqa (%ebp),%xmm1
  1479. leal -640(%ebp),%ebp
  1480. movdqu (%ebx),%xmm0
  1481. .byte 102,15,56,0,193
  1482. movdqa (%ebp),%xmm3
  1483. movdqa %xmm1,%xmm2
  1484. movdqu 16(%ebx),%xmm1
  1485. paddq %xmm0,%xmm3
  1486. .byte 102,15,56,0,202
  1487. movq %mm4,%mm1
  1488. movq -128(%edx),%mm7
  1489. pxor %mm6,%mm5
  1490. psrlq $14,%mm1
  1491. movq %mm4,32(%esp)
  1492. pand %mm4,%mm5
  1493. psllq $23,%mm4
  1494. paddq %mm3,%mm0
  1495. movq %mm1,%mm3
  1496. psrlq $4,%mm1
  1497. pxor %mm6,%mm5
  1498. pxor %mm4,%mm3
  1499. psllq $23,%mm4
  1500. pxor %mm1,%mm3
  1501. movq %mm0,(%esp)
  1502. paddq %mm5,%mm7
  1503. pxor %mm4,%mm3
  1504. psrlq $23,%mm1
  1505. paddq 56(%esp),%mm7
  1506. pxor %mm1,%mm3
  1507. psllq $4,%mm4
  1508. pxor %mm4,%mm3
  1509. movq 24(%esp),%mm4
  1510. paddq %mm7,%mm3
  1511. movq %mm0,%mm5
  1512. psrlq $28,%mm5
  1513. paddq %mm3,%mm4
  1514. movq %mm0,%mm6
  1515. movq %mm5,%mm7
  1516. psllq $25,%mm6
  1517. movq 8(%esp),%mm1
  1518. psrlq $6,%mm5
  1519. pxor %mm6,%mm7
  1520. psllq $5,%mm6
  1521. pxor %mm5,%mm7
  1522. pxor %mm1,%mm0
  1523. psrlq $5,%mm5
  1524. pxor %mm6,%mm7
  1525. pand %mm0,%mm2
  1526. psllq $6,%mm6
  1527. pxor %mm5,%mm7
  1528. pxor %mm1,%mm2
  1529. pxor %mm7,%mm6
  1530. movq 32(%esp),%mm5
  1531. paddq %mm6,%mm2
  1532. movq 40(%esp),%mm6
  1533. movq %mm4,%mm1
  1534. movq -120(%edx),%mm7
  1535. pxor %mm6,%mm5
  1536. psrlq $14,%mm1
  1537. movq %mm4,24(%esp)
  1538. pand %mm4,%mm5
  1539. psllq $23,%mm4
  1540. paddq %mm3,%mm2
  1541. movq %mm1,%mm3
  1542. psrlq $4,%mm1
  1543. pxor %mm6,%mm5
  1544. pxor %mm4,%mm3
  1545. psllq $23,%mm4
  1546. pxor %mm1,%mm3
  1547. movq %mm2,56(%esp)
  1548. paddq %mm5,%mm7
  1549. pxor %mm4,%mm3
  1550. psrlq $23,%mm1
  1551. paddq 48(%esp),%mm7
  1552. pxor %mm1,%mm3
  1553. psllq $4,%mm4
  1554. pxor %mm4,%mm3
  1555. movq 16(%esp),%mm4
  1556. paddq %mm7,%mm3
  1557. movq %mm2,%mm5
  1558. psrlq $28,%mm5
  1559. paddq %mm3,%mm4
  1560. movq %mm2,%mm6
  1561. movq %mm5,%mm7
  1562. psllq $25,%mm6
  1563. movq (%esp),%mm1
  1564. psrlq $6,%mm5
  1565. pxor %mm6,%mm7
  1566. psllq $5,%mm6
  1567. pxor %mm5,%mm7
  1568. pxor %mm1,%mm2
  1569. psrlq $5,%mm5
  1570. pxor %mm6,%mm7
  1571. pand %mm2,%mm0
  1572. psllq $6,%mm6
  1573. pxor %mm5,%mm7
  1574. pxor %mm1,%mm0
  1575. pxor %mm7,%mm6
  1576. movq 24(%esp),%mm5
  1577. paddq %mm6,%mm0
  1578. movq 32(%esp),%mm6
  1579. movdqa %xmm3,-128(%edx)
  1580. movdqa 16(%ebp),%xmm4
  1581. movdqa %xmm2,%xmm3
  1582. movdqu 32(%ebx),%xmm2
  1583. paddq %xmm1,%xmm4
  1584. .byte 102,15,56,0,211
  1585. movq %mm4,%mm1
  1586. movq -112(%edx),%mm7
  1587. pxor %mm6,%mm5
  1588. psrlq $14,%mm1
  1589. movq %mm4,16(%esp)
  1590. pand %mm4,%mm5
  1591. psllq $23,%mm4
  1592. paddq %mm3,%mm0
  1593. movq %mm1,%mm3
  1594. psrlq $4,%mm1
  1595. pxor %mm6,%mm5
  1596. pxor %mm4,%mm3
  1597. psllq $23,%mm4
  1598. pxor %mm1,%mm3
  1599. movq %mm0,48(%esp)
  1600. paddq %mm5,%mm7
  1601. pxor %mm4,%mm3
  1602. psrlq $23,%mm1
  1603. paddq 40(%esp),%mm7
  1604. pxor %mm1,%mm3
  1605. psllq $4,%mm4
  1606. pxor %mm4,%mm3
  1607. movq 8(%esp),%mm4
  1608. paddq %mm7,%mm3
  1609. movq %mm0,%mm5
  1610. psrlq $28,%mm5
  1611. paddq %mm3,%mm4
  1612. movq %mm0,%mm6
  1613. movq %mm5,%mm7
  1614. psllq $25,%mm6
  1615. movq 56(%esp),%mm1
  1616. psrlq $6,%mm5
  1617. pxor %mm6,%mm7
  1618. psllq $5,%mm6
  1619. pxor %mm5,%mm7
  1620. pxor %mm1,%mm0
  1621. psrlq $5,%mm5
  1622. pxor %mm6,%mm7
  1623. pand %mm0,%mm2
  1624. psllq $6,%mm6
  1625. pxor %mm5,%mm7
  1626. pxor %mm1,%mm2
  1627. pxor %mm7,%mm6
  1628. movq 16(%esp),%mm5
  1629. paddq %mm6,%mm2
  1630. movq 24(%esp),%mm6
  1631. movq %mm4,%mm1
  1632. movq -104(%edx),%mm7
  1633. pxor %mm6,%mm5
  1634. psrlq $14,%mm1
  1635. movq %mm4,8(%esp)
  1636. pand %mm4,%mm5
  1637. psllq $23,%mm4
  1638. paddq %mm3,%mm2
  1639. movq %mm1,%mm3
  1640. psrlq $4,%mm1
  1641. pxor %mm6,%mm5
  1642. pxor %mm4,%mm3
  1643. psllq $23,%mm4
  1644. pxor %mm1,%mm3
  1645. movq %mm2,40(%esp)
  1646. paddq %mm5,%mm7
  1647. pxor %mm4,%mm3
  1648. psrlq $23,%mm1
  1649. paddq 32(%esp),%mm7
  1650. pxor %mm1,%mm3
  1651. psllq $4,%mm4
  1652. pxor %mm4,%mm3
  1653. movq (%esp),%mm4
  1654. paddq %mm7,%mm3
  1655. movq %mm2,%mm5
  1656. psrlq $28,%mm5
  1657. paddq %mm3,%mm4
  1658. movq %mm2,%mm6
  1659. movq %mm5,%mm7
  1660. psllq $25,%mm6
  1661. movq 48(%esp),%mm1
  1662. psrlq $6,%mm5
  1663. pxor %mm6,%mm7
  1664. psllq $5,%mm6
  1665. pxor %mm5,%mm7
  1666. pxor %mm1,%mm2
  1667. psrlq $5,%mm5
  1668. pxor %mm6,%mm7
  1669. pand %mm2,%mm0
  1670. psllq $6,%mm6
  1671. pxor %mm5,%mm7
  1672. pxor %mm1,%mm0
  1673. pxor %mm7,%mm6
  1674. movq 8(%esp),%mm5
  1675. paddq %mm6,%mm0
  1676. movq 16(%esp),%mm6
  1677. movdqa %xmm4,-112(%edx)
  1678. movdqa 32(%ebp),%xmm5
  1679. movdqa %xmm3,%xmm4
  1680. movdqu 48(%ebx),%xmm3
  1681. paddq %xmm2,%xmm5
  1682. .byte 102,15,56,0,220
  1683. movq %mm4,%mm1
  1684. movq -96(%edx),%mm7
  1685. pxor %mm6,%mm5
  1686. psrlq $14,%mm1
  1687. movq %mm4,(%esp)
  1688. pand %mm4,%mm5
  1689. psllq $23,%mm4
  1690. paddq %mm3,%mm0
  1691. movq %mm1,%mm3
  1692. psrlq $4,%mm1
  1693. pxor %mm6,%mm5
  1694. pxor %mm4,%mm3
  1695. psllq $23,%mm4
  1696. pxor %mm1,%mm3
  1697. movq %mm0,32(%esp)
  1698. paddq %mm5,%mm7
  1699. pxor %mm4,%mm3
  1700. psrlq $23,%mm1
  1701. paddq 24(%esp),%mm7
  1702. pxor %mm1,%mm3
  1703. psllq $4,%mm4
  1704. pxor %mm4,%mm3
  1705. movq 56(%esp),%mm4
  1706. paddq %mm7,%mm3
  1707. movq %mm0,%mm5
  1708. psrlq $28,%mm5
  1709. paddq %mm3,%mm4
  1710. movq %mm0,%mm6
  1711. movq %mm5,%mm7
  1712. psllq $25,%mm6
  1713. movq 40(%esp),%mm1
  1714. psrlq $6,%mm5
  1715. pxor %mm6,%mm7
  1716. psllq $5,%mm6
  1717. pxor %mm5,%mm7
  1718. pxor %mm1,%mm0
  1719. psrlq $5,%mm5
  1720. pxor %mm6,%mm7
  1721. pand %mm0,%mm2
  1722. psllq $6,%mm6
  1723. pxor %mm5,%mm7
  1724. pxor %mm1,%mm2
  1725. pxor %mm7,%mm6
  1726. movq (%esp),%mm5
  1727. paddq %mm6,%mm2
  1728. movq 8(%esp),%mm6
  1729. movq %mm4,%mm1
  1730. movq -88(%edx),%mm7
  1731. pxor %mm6,%mm5
  1732. psrlq $14,%mm1
  1733. movq %mm4,56(%esp)
  1734. pand %mm4,%mm5
  1735. psllq $23,%mm4
  1736. paddq %mm3,%mm2
  1737. movq %mm1,%mm3
  1738. psrlq $4,%mm1
  1739. pxor %mm6,%mm5
  1740. pxor %mm4,%mm3
  1741. psllq $23,%mm4
  1742. pxor %mm1,%mm3
  1743. movq %mm2,24(%esp)
  1744. paddq %mm5,%mm7
  1745. pxor %mm4,%mm3
  1746. psrlq $23,%mm1
  1747. paddq 16(%esp),%mm7
  1748. pxor %mm1,%mm3
  1749. psllq $4,%mm4
  1750. pxor %mm4,%mm3
  1751. movq 48(%esp),%mm4
  1752. paddq %mm7,%mm3
  1753. movq %mm2,%mm5
  1754. psrlq $28,%mm5
  1755. paddq %mm3,%mm4
  1756. movq %mm2,%mm6
  1757. movq %mm5,%mm7
  1758. psllq $25,%mm6
  1759. movq 32(%esp),%mm1
  1760. psrlq $6,%mm5
  1761. pxor %mm6,%mm7
  1762. psllq $5,%mm6
  1763. pxor %mm5,%mm7
  1764. pxor %mm1,%mm2
  1765. psrlq $5,%mm5
  1766. pxor %mm6,%mm7
  1767. pand %mm2,%mm0
  1768. psllq $6,%mm6
  1769. pxor %mm5,%mm7
  1770. pxor %mm1,%mm0
  1771. pxor %mm7,%mm6
  1772. movq 56(%esp),%mm5
  1773. paddq %mm6,%mm0
  1774. movq (%esp),%mm6
  1775. movdqa %xmm5,-96(%edx)
  1776. movdqa 48(%ebp),%xmm6
  1777. movdqa %xmm4,%xmm5
  1778. movdqu 64(%ebx),%xmm4
  1779. paddq %xmm3,%xmm6
  1780. .byte 102,15,56,0,229
  1781. movq %mm4,%mm1
  1782. movq -80(%edx),%mm7
  1783. pxor %mm6,%mm5
  1784. psrlq $14,%mm1
  1785. movq %mm4,48(%esp)
  1786. pand %mm4,%mm5
  1787. psllq $23,%mm4
  1788. paddq %mm3,%mm0
  1789. movq %mm1,%mm3
  1790. psrlq $4,%mm1
  1791. pxor %mm6,%mm5
  1792. pxor %mm4,%mm3
  1793. psllq $23,%mm4
  1794. pxor %mm1,%mm3
  1795. movq %mm0,16(%esp)
  1796. paddq %mm5,%mm7
  1797. pxor %mm4,%mm3
  1798. psrlq $23,%mm1
  1799. paddq 8(%esp),%mm7
  1800. pxor %mm1,%mm3
  1801. psllq $4,%mm4
  1802. pxor %mm4,%mm3
  1803. movq 40(%esp),%mm4
  1804. paddq %mm7,%mm3
  1805. movq %mm0,%mm5
  1806. psrlq $28,%mm5
  1807. paddq %mm3,%mm4
  1808. movq %mm0,%mm6
  1809. movq %mm5,%mm7
  1810. psllq $25,%mm6
  1811. movq 24(%esp),%mm1
  1812. psrlq $6,%mm5
  1813. pxor %mm6,%mm7
  1814. psllq $5,%mm6
  1815. pxor %mm5,%mm7
  1816. pxor %mm1,%mm0
  1817. psrlq $5,%mm5
  1818. pxor %mm6,%mm7
  1819. pand %mm0,%mm2
  1820. psllq $6,%mm6
  1821. pxor %mm5,%mm7
  1822. pxor %mm1,%mm2
  1823. pxor %mm7,%mm6
  1824. movq 48(%esp),%mm5
  1825. paddq %mm6,%mm2
  1826. movq 56(%esp),%mm6
  1827. movq %mm4,%mm1
  1828. movq -72(%edx),%mm7
  1829. pxor %mm6,%mm5
  1830. psrlq $14,%mm1
  1831. movq %mm4,40(%esp)
  1832. pand %mm4,%mm5
  1833. psllq $23,%mm4
  1834. paddq %mm3,%mm2
  1835. movq %mm1,%mm3
  1836. psrlq $4,%mm1
  1837. pxor %mm6,%mm5
  1838. pxor %mm4,%mm3
  1839. psllq $23,%mm4
  1840. pxor %mm1,%mm3
  1841. movq %mm2,8(%esp)
  1842. paddq %mm5,%mm7
  1843. pxor %mm4,%mm3
  1844. psrlq $23,%mm1
  1845. paddq (%esp),%mm7
  1846. pxor %mm1,%mm3
  1847. psllq $4,%mm4
  1848. pxor %mm4,%mm3
  1849. movq 32(%esp),%mm4
  1850. paddq %mm7,%mm3
  1851. movq %mm2,%mm5
  1852. psrlq $28,%mm5
  1853. paddq %mm3,%mm4
  1854. movq %mm2,%mm6
  1855. movq %mm5,%mm7
  1856. psllq $25,%mm6
  1857. movq 16(%esp),%mm1
  1858. psrlq $6,%mm5
  1859. pxor %mm6,%mm7
  1860. psllq $5,%mm6
  1861. pxor %mm5,%mm7
  1862. pxor %mm1,%mm2
  1863. psrlq $5,%mm5
  1864. pxor %mm6,%mm7
  1865. pand %mm2,%mm0
  1866. psllq $6,%mm6
  1867. pxor %mm5,%mm7
  1868. pxor %mm1,%mm0
  1869. pxor %mm7,%mm6
  1870. movq 40(%esp),%mm5
  1871. paddq %mm6,%mm0
  1872. movq 48(%esp),%mm6
  1873. movdqa %xmm6,-80(%edx)
  1874. movdqa 64(%ebp),%xmm7
  1875. movdqa %xmm5,%xmm6
  1876. movdqu 80(%ebx),%xmm5
  1877. paddq %xmm4,%xmm7
  1878. .byte 102,15,56,0,238
  1879. movq %mm4,%mm1
  1880. movq -64(%edx),%mm7
  1881. pxor %mm6,%mm5
  1882. psrlq $14,%mm1
  1883. movq %mm4,32(%esp)
  1884. pand %mm4,%mm5
  1885. psllq $23,%mm4
  1886. paddq %mm3,%mm0
  1887. movq %mm1,%mm3
  1888. psrlq $4,%mm1
  1889. pxor %mm6,%mm5
  1890. pxor %mm4,%mm3
  1891. psllq $23,%mm4
  1892. pxor %mm1,%mm3
  1893. movq %mm0,(%esp)
  1894. paddq %mm5,%mm7
  1895. pxor %mm4,%mm3
  1896. psrlq $23,%mm1
  1897. paddq 56(%esp),%mm7
  1898. pxor %mm1,%mm3
  1899. psllq $4,%mm4
  1900. pxor %mm4,%mm3
  1901. movq 24(%esp),%mm4
  1902. paddq %mm7,%mm3
  1903. movq %mm0,%mm5
  1904. psrlq $28,%mm5
  1905. paddq %mm3,%mm4
  1906. movq %mm0,%mm6
  1907. movq %mm5,%mm7
  1908. psllq $25,%mm6
  1909. movq 8(%esp),%mm1
  1910. psrlq $6,%mm5
  1911. pxor %mm6,%mm7
  1912. psllq $5,%mm6
  1913. pxor %mm5,%mm7
  1914. pxor %mm1,%mm0
  1915. psrlq $5,%mm5
  1916. pxor %mm6,%mm7
  1917. pand %mm0,%mm2
  1918. psllq $6,%mm6
  1919. pxor %mm5,%mm7
  1920. pxor %mm1,%mm2
  1921. pxor %mm7,%mm6
  1922. movq 32(%esp),%mm5
  1923. paddq %mm6,%mm2
  1924. movq 40(%esp),%mm6
  1925. movq %mm4,%mm1
  1926. movq -56(%edx),%mm7
  1927. pxor %mm6,%mm5
  1928. psrlq $14,%mm1
  1929. movq %mm4,24(%esp)
  1930. pand %mm4,%mm5
  1931. psllq $23,%mm4
  1932. paddq %mm3,%mm2
  1933. movq %mm1,%mm3
  1934. psrlq $4,%mm1
  1935. pxor %mm6,%mm5
  1936. pxor %mm4,%mm3
  1937. psllq $23,%mm4
  1938. pxor %mm1,%mm3
  1939. movq %mm2,56(%esp)
  1940. paddq %mm5,%mm7
  1941. pxor %mm4,%mm3
  1942. psrlq $23,%mm1
  1943. paddq 48(%esp),%mm7
  1944. pxor %mm1,%mm3
  1945. psllq $4,%mm4
  1946. pxor %mm4,%mm3
  1947. movq 16(%esp),%mm4
  1948. paddq %mm7,%mm3
  1949. movq %mm2,%mm5
  1950. psrlq $28,%mm5
  1951. paddq %mm3,%mm4
  1952. movq %mm2,%mm6
  1953. movq %mm5,%mm7
  1954. psllq $25,%mm6
  1955. movq (%esp),%mm1
  1956. psrlq $6,%mm5
  1957. pxor %mm6,%mm7
  1958. psllq $5,%mm6
  1959. pxor %mm5,%mm7
  1960. pxor %mm1,%mm2
  1961. psrlq $5,%mm5
  1962. pxor %mm6,%mm7
  1963. pand %mm2,%mm0
  1964. psllq $6,%mm6
  1965. pxor %mm5,%mm7
  1966. pxor %mm1,%mm0
  1967. pxor %mm7,%mm6
  1968. movq 24(%esp),%mm5
  1969. paddq %mm6,%mm0
  1970. movq 32(%esp),%mm6
  1971. movdqa %xmm7,-64(%edx)
  1972. movdqa %xmm0,(%edx)
  1973. movdqa 80(%ebp),%xmm0
  1974. movdqa %xmm6,%xmm7
  1975. movdqu 96(%ebx),%xmm6
  1976. paddq %xmm5,%xmm0
  1977. .byte 102,15,56,0,247
  1978. movq %mm4,%mm1
  1979. movq -48(%edx),%mm7
  1980. pxor %mm6,%mm5
  1981. psrlq $14,%mm1
  1982. movq %mm4,16(%esp)
  1983. pand %mm4,%mm5
  1984. psllq $23,%mm4
  1985. paddq %mm3,%mm0
  1986. movq %mm1,%mm3
  1987. psrlq $4,%mm1
  1988. pxor %mm6,%mm5
  1989. pxor %mm4,%mm3
  1990. psllq $23,%mm4
  1991. pxor %mm1,%mm3
  1992. movq %mm0,48(%esp)
  1993. paddq %mm5,%mm7
  1994. pxor %mm4,%mm3
  1995. psrlq $23,%mm1
  1996. paddq 40(%esp),%mm7
  1997. pxor %mm1,%mm3
  1998. psllq $4,%mm4
  1999. pxor %mm4,%mm3
  2000. movq 8(%esp),%mm4
  2001. paddq %mm7,%mm3
  2002. movq %mm0,%mm5
  2003. psrlq $28,%mm5
  2004. paddq %mm3,%mm4
  2005. movq %mm0,%mm6
  2006. movq %mm5,%mm7
  2007. psllq $25,%mm6
  2008. movq 56(%esp),%mm1
  2009. psrlq $6,%mm5
  2010. pxor %mm6,%mm7
  2011. psllq $5,%mm6
  2012. pxor %mm5,%mm7
  2013. pxor %mm1,%mm0
  2014. psrlq $5,%mm5
  2015. pxor %mm6,%mm7
  2016. pand %mm0,%mm2
  2017. psllq $6,%mm6
  2018. pxor %mm5,%mm7
  2019. pxor %mm1,%mm2
  2020. pxor %mm7,%mm6
  2021. movq 16(%esp),%mm5
  2022. paddq %mm6,%mm2
  2023. movq 24(%esp),%mm6
  2024. movq %mm4,%mm1
  2025. movq -40(%edx),%mm7
  2026. pxor %mm6,%mm5
  2027. psrlq $14,%mm1
  2028. movq %mm4,8(%esp)
  2029. pand %mm4,%mm5
  2030. psllq $23,%mm4
  2031. paddq %mm3,%mm2
  2032. movq %mm1,%mm3
  2033. psrlq $4,%mm1
  2034. pxor %mm6,%mm5
  2035. pxor %mm4,%mm3
  2036. psllq $23,%mm4
  2037. pxor %mm1,%mm3
  2038. movq %mm2,40(%esp)
  2039. paddq %mm5,%mm7
  2040. pxor %mm4,%mm3
  2041. psrlq $23,%mm1
  2042. paddq 32(%esp),%mm7
  2043. pxor %mm1,%mm3
  2044. psllq $4,%mm4
  2045. pxor %mm4,%mm3
  2046. movq (%esp),%mm4
  2047. paddq %mm7,%mm3
  2048. movq %mm2,%mm5
  2049. psrlq $28,%mm5
  2050. paddq %mm3,%mm4
  2051. movq %mm2,%mm6
  2052. movq %mm5,%mm7
  2053. psllq $25,%mm6
  2054. movq 48(%esp),%mm1
  2055. psrlq $6,%mm5
  2056. pxor %mm6,%mm7
  2057. psllq $5,%mm6
  2058. pxor %mm5,%mm7
  2059. pxor %mm1,%mm2
  2060. psrlq $5,%mm5
  2061. pxor %mm6,%mm7
  2062. pand %mm2,%mm0
  2063. psllq $6,%mm6
  2064. pxor %mm5,%mm7
  2065. pxor %mm1,%mm0
  2066. pxor %mm7,%mm6
  2067. movq 8(%esp),%mm5
  2068. paddq %mm6,%mm0
  2069. movq 16(%esp),%mm6
  2070. movdqa %xmm0,-48(%edx)
  2071. movdqa %xmm1,16(%edx)
  2072. movdqa 96(%ebp),%xmm1
  2073. movdqa %xmm7,%xmm0
  2074. movdqu 112(%ebx),%xmm7
  2075. paddq %xmm6,%xmm1
  2076. .byte 102,15,56,0,248
  2077. movq %mm4,%mm1
  2078. movq -32(%edx),%mm7
  2079. pxor %mm6,%mm5
  2080. psrlq $14,%mm1
  2081. movq %mm4,(%esp)
  2082. pand %mm4,%mm5
  2083. psllq $23,%mm4
  2084. paddq %mm3,%mm0
  2085. movq %mm1,%mm3
  2086. psrlq $4,%mm1
  2087. pxor %mm6,%mm5
  2088. pxor %mm4,%mm3
  2089. psllq $23,%mm4
  2090. pxor %mm1,%mm3
  2091. movq %mm0,32(%esp)
  2092. paddq %mm5,%mm7
  2093. pxor %mm4,%mm3
  2094. psrlq $23,%mm1
  2095. paddq 24(%esp),%mm7
  2096. pxor %mm1,%mm3
  2097. psllq $4,%mm4
  2098. pxor %mm4,%mm3
  2099. movq 56(%esp),%mm4
  2100. paddq %mm7,%mm3
  2101. movq %mm0,%mm5
  2102. psrlq $28,%mm5
  2103. paddq %mm3,%mm4
  2104. movq %mm0,%mm6
  2105. movq %mm5,%mm7
  2106. psllq $25,%mm6
  2107. movq 40(%esp),%mm1
  2108. psrlq $6,%mm5
  2109. pxor %mm6,%mm7
  2110. psllq $5,%mm6
  2111. pxor %mm5,%mm7
  2112. pxor %mm1,%mm0
  2113. psrlq $5,%mm5
  2114. pxor %mm6,%mm7
  2115. pand %mm0,%mm2
  2116. psllq $6,%mm6
  2117. pxor %mm5,%mm7
  2118. pxor %mm1,%mm2
  2119. pxor %mm7,%mm6
  2120. movq (%esp),%mm5
  2121. paddq %mm6,%mm2
  2122. movq 8(%esp),%mm6
  2123. movq %mm4,%mm1
  2124. movq -24(%edx),%mm7
  2125. pxor %mm6,%mm5
  2126. psrlq $14,%mm1
  2127. movq %mm4,56(%esp)
  2128. pand %mm4,%mm5
  2129. psllq $23,%mm4
  2130. paddq %mm3,%mm2
  2131. movq %mm1,%mm3
  2132. psrlq $4,%mm1
  2133. pxor %mm6,%mm5
  2134. pxor %mm4,%mm3
  2135. psllq $23,%mm4
  2136. pxor %mm1,%mm3
  2137. movq %mm2,24(%esp)
  2138. paddq %mm5,%mm7
  2139. pxor %mm4,%mm3
  2140. psrlq $23,%mm1
  2141. paddq 16(%esp),%mm7
  2142. pxor %mm1,%mm3
  2143. psllq $4,%mm4
  2144. pxor %mm4,%mm3
  2145. movq 48(%esp),%mm4
  2146. paddq %mm7,%mm3
  2147. movq %mm2,%mm5
  2148. psrlq $28,%mm5
  2149. paddq %mm3,%mm4
  2150. movq %mm2,%mm6
  2151. movq %mm5,%mm7
  2152. psllq $25,%mm6
  2153. movq 32(%esp),%mm1
  2154. psrlq $6,%mm5
  2155. pxor %mm6,%mm7
  2156. psllq $5,%mm6
  2157. pxor %mm5,%mm7
  2158. pxor %mm1,%mm2
  2159. psrlq $5,%mm5
  2160. pxor %mm6,%mm7
  2161. pand %mm2,%mm0
  2162. psllq $6,%mm6
  2163. pxor %mm5,%mm7
  2164. pxor %mm1,%mm0
  2165. pxor %mm7,%mm6
  2166. movq 56(%esp),%mm5
  2167. paddq %mm6,%mm0
  2168. movq (%esp),%mm6
  2169. movdqa %xmm1,-32(%edx)
  2170. movdqa %xmm2,32(%edx)
  2171. movdqa 112(%ebp),%xmm2
  2172. movdqa (%edx),%xmm0
  2173. paddq %xmm7,%xmm2
  2174. movq %mm4,%mm1
  2175. movq -16(%edx),%mm7
  2176. pxor %mm6,%mm5
  2177. psrlq $14,%mm1
  2178. movq %mm4,48(%esp)
  2179. pand %mm4,%mm5
  2180. psllq $23,%mm4
  2181. paddq %mm3,%mm0
  2182. movq %mm1,%mm3
  2183. psrlq $4,%mm1
  2184. pxor %mm6,%mm5
  2185. pxor %mm4,%mm3
  2186. psllq $23,%mm4
  2187. pxor %mm1,%mm3
  2188. movq %mm0,16(%esp)
  2189. paddq %mm5,%mm7
  2190. pxor %mm4,%mm3
  2191. psrlq $23,%mm1
  2192. paddq 8(%esp),%mm7
  2193. pxor %mm1,%mm3
  2194. psllq $4,%mm4
  2195. pxor %mm4,%mm3
  2196. movq 40(%esp),%mm4
  2197. paddq %mm7,%mm3
  2198. movq %mm0,%mm5
  2199. psrlq $28,%mm5
  2200. paddq %mm3,%mm4
  2201. movq %mm0,%mm6
  2202. movq %mm5,%mm7
  2203. psllq $25,%mm6
  2204. movq 24(%esp),%mm1
  2205. psrlq $6,%mm5
  2206. pxor %mm6,%mm7
  2207. psllq $5,%mm6
  2208. pxor %mm5,%mm7
  2209. pxor %mm1,%mm0
  2210. psrlq $5,%mm5
  2211. pxor %mm6,%mm7
  2212. pand %mm0,%mm2
  2213. psllq $6,%mm6
  2214. pxor %mm5,%mm7
  2215. pxor %mm1,%mm2
  2216. pxor %mm7,%mm6
  2217. movq 48(%esp),%mm5
  2218. paddq %mm6,%mm2
  2219. movq 56(%esp),%mm6
  2220. movq %mm4,%mm1
  2221. movq -8(%edx),%mm7
  2222. pxor %mm6,%mm5
  2223. psrlq $14,%mm1
  2224. movq %mm4,40(%esp)
  2225. pand %mm4,%mm5
  2226. psllq $23,%mm4
  2227. paddq %mm3,%mm2
  2228. movq %mm1,%mm3
  2229. psrlq $4,%mm1
  2230. pxor %mm6,%mm5
  2231. pxor %mm4,%mm3
  2232. psllq $23,%mm4
  2233. pxor %mm1,%mm3
  2234. movq %mm2,8(%esp)
  2235. paddq %mm5,%mm7
  2236. pxor %mm4,%mm3
  2237. psrlq $23,%mm1
  2238. paddq (%esp),%mm7
  2239. pxor %mm1,%mm3
  2240. psllq $4,%mm4
  2241. pxor %mm4,%mm3
  2242. movq 32(%esp),%mm4
  2243. paddq %mm7,%mm3
  2244. movq %mm2,%mm5
  2245. psrlq $28,%mm5
  2246. paddq %mm3,%mm4
  2247. movq %mm2,%mm6
  2248. movq %mm5,%mm7
  2249. psllq $25,%mm6
  2250. movq 16(%esp),%mm1
  2251. psrlq $6,%mm5
  2252. pxor %mm6,%mm7
  2253. psllq $5,%mm6
  2254. pxor %mm5,%mm7
  2255. pxor %mm1,%mm2
  2256. psrlq $5,%mm5
  2257. pxor %mm6,%mm7
  2258. pand %mm2,%mm0
  2259. psllq $6,%mm6
  2260. pxor %mm5,%mm7
  2261. pxor %mm1,%mm0
  2262. pxor %mm7,%mm6
  2263. movq 40(%esp),%mm5
  2264. paddq %mm6,%mm0
  2265. movq 48(%esp),%mm6
  2266. movdqa %xmm2,-16(%edx)
  2267. movq 8(%esp),%mm1
  2268. paddq %mm3,%mm0
  2269. movq 24(%esp),%mm3
  2270. movq 56(%esp),%mm7
  2271. pxor %mm1,%mm2
  2272. paddq (%esi),%mm0
  2273. paddq 8(%esi),%mm1
  2274. paddq 16(%esi),%mm2
  2275. paddq 24(%esi),%mm3
  2276. paddq 32(%esi),%mm4
  2277. paddq 40(%esi),%mm5
  2278. paddq 48(%esi),%mm6
  2279. paddq 56(%esi),%mm7
  2280. movq %mm0,(%esi)
  2281. movq %mm1,8(%esi)
  2282. movq %mm2,16(%esi)
  2283. movq %mm3,24(%esi)
  2284. movq %mm4,32(%esi)
  2285. movq %mm5,40(%esi)
  2286. movq %mm6,48(%esi)
  2287. movq %mm7,56(%esi)
  2288. cmpl %eax,%edi
  2289. jb .L007loop_ssse3
  2290. movl 76(%edx),%esp
  2291. emms
  2292. popl %edi
  2293. popl %esi
  2294. popl %ebx
  2295. popl %ebp
  2296. ret
  2297. .align 16
  2298. .L002loop_x86:
  2299. movl (%edi),%eax
  2300. movl 4(%edi),%ebx
  2301. movl 8(%edi),%ecx
  2302. movl 12(%edi),%edx
  2303. bswap %eax
  2304. bswap %ebx
  2305. bswap %ecx
  2306. bswap %edx
  2307. pushl %eax
  2308. pushl %ebx
  2309. pushl %ecx
  2310. pushl %edx
  2311. movl 16(%edi),%eax
  2312. movl 20(%edi),%ebx
  2313. movl 24(%edi),%ecx
  2314. movl 28(%edi),%edx
  2315. bswap %eax
  2316. bswap %ebx
  2317. bswap %ecx
  2318. bswap %edx
  2319. pushl %eax
  2320. pushl %ebx
  2321. pushl %ecx
  2322. pushl %edx
  2323. movl 32(%edi),%eax
  2324. movl 36(%edi),%ebx
  2325. movl 40(%edi),%ecx
  2326. movl 44(%edi),%edx
  2327. bswap %eax
  2328. bswap %ebx
  2329. bswap %ecx
  2330. bswap %edx
  2331. pushl %eax
  2332. pushl %ebx
  2333. pushl %ecx
  2334. pushl %edx
  2335. movl 48(%edi),%eax
  2336. movl 52(%edi),%ebx
  2337. movl 56(%edi),%ecx
  2338. movl 60(%edi),%edx
  2339. bswap %eax
  2340. bswap %ebx
  2341. bswap %ecx
  2342. bswap %edx
  2343. pushl %eax
  2344. pushl %ebx
  2345. pushl %ecx
  2346. pushl %edx
  2347. movl 64(%edi),%eax
  2348. movl 68(%edi),%ebx
  2349. movl 72(%edi),%ecx
  2350. movl 76(%edi),%edx
  2351. bswap %eax
  2352. bswap %ebx
  2353. bswap %ecx
  2354. bswap %edx
  2355. pushl %eax
  2356. pushl %ebx
  2357. pushl %ecx
  2358. pushl %edx
  2359. movl 80(%edi),%eax
  2360. movl 84(%edi),%ebx
  2361. movl 88(%edi),%ecx
  2362. movl 92(%edi),%edx
  2363. bswap %eax
  2364. bswap %ebx
  2365. bswap %ecx
  2366. bswap %edx
  2367. pushl %eax
  2368. pushl %ebx
  2369. pushl %ecx
  2370. pushl %edx
  2371. movl 96(%edi),%eax
  2372. movl 100(%edi),%ebx
  2373. movl 104(%edi),%ecx
  2374. movl 108(%edi),%edx
  2375. bswap %eax
  2376. bswap %ebx
  2377. bswap %ecx
  2378. bswap %edx
  2379. pushl %eax
  2380. pushl %ebx
  2381. pushl %ecx
  2382. pushl %edx
  2383. movl 112(%edi),%eax
  2384. movl 116(%edi),%ebx
  2385. movl 120(%edi),%ecx
  2386. movl 124(%edi),%edx
  2387. bswap %eax
  2388. bswap %ebx
  2389. bswap %ecx
  2390. bswap %edx
  2391. pushl %eax
  2392. pushl %ebx
  2393. pushl %ecx
  2394. pushl %edx
  2395. addl $128,%edi
  2396. subl $72,%esp
  2397. movl %edi,204(%esp)
  2398. leal 8(%esp),%edi
  2399. movl $16,%ecx
  2400. .long 2784229001
  2401. .align 16
  2402. .L00900_15_x86:
  2403. movl 40(%esp),%ecx
  2404. movl 44(%esp),%edx
  2405. movl %ecx,%esi
  2406. shrl $9,%ecx
  2407. movl %edx,%edi
  2408. shrl $9,%edx
  2409. movl %ecx,%ebx
  2410. shll $14,%esi
  2411. movl %edx,%eax
  2412. shll $14,%edi
  2413. xorl %esi,%ebx
  2414. shrl $5,%ecx
  2415. xorl %edi,%eax
  2416. shrl $5,%edx
  2417. xorl %ecx,%eax
  2418. shll $4,%esi
  2419. xorl %edx,%ebx
  2420. shll $4,%edi
  2421. xorl %esi,%ebx
  2422. shrl $4,%ecx
  2423. xorl %edi,%eax
  2424. shrl $4,%edx
  2425. xorl %ecx,%eax
  2426. shll $5,%esi
  2427. xorl %edx,%ebx
  2428. shll $5,%edi
  2429. xorl %esi,%eax
  2430. xorl %edi,%ebx
  2431. movl 48(%esp),%ecx
  2432. movl 52(%esp),%edx
  2433. movl 56(%esp),%esi
  2434. movl 60(%esp),%edi
  2435. addl 64(%esp),%eax
  2436. adcl 68(%esp),%ebx
  2437. xorl %esi,%ecx
  2438. xorl %edi,%edx
  2439. andl 40(%esp),%ecx
  2440. andl 44(%esp),%edx
  2441. addl 192(%esp),%eax
  2442. adcl 196(%esp),%ebx
  2443. xorl %esi,%ecx
  2444. xorl %edi,%edx
  2445. movl (%ebp),%esi
  2446. movl 4(%ebp),%edi
  2447. addl %ecx,%eax
  2448. adcl %edx,%ebx
  2449. movl 32(%esp),%ecx
  2450. movl 36(%esp),%edx
  2451. addl %esi,%eax
  2452. adcl %edi,%ebx
  2453. movl %eax,(%esp)
  2454. movl %ebx,4(%esp)
  2455. addl %ecx,%eax
  2456. adcl %edx,%ebx
  2457. movl 8(%esp),%ecx
  2458. movl 12(%esp),%edx
  2459. movl %eax,32(%esp)
  2460. movl %ebx,36(%esp)
  2461. movl %ecx,%esi
  2462. shrl $2,%ecx
  2463. movl %edx,%edi
  2464. shrl $2,%edx
  2465. movl %ecx,%ebx
  2466. shll $4,%esi
  2467. movl %edx,%eax
  2468. shll $4,%edi
  2469. xorl %esi,%ebx
  2470. shrl $5,%ecx
  2471. xorl %edi,%eax
  2472. shrl $5,%edx
  2473. xorl %ecx,%ebx
  2474. shll $21,%esi
  2475. xorl %edx,%eax
  2476. shll $21,%edi
  2477. xorl %esi,%eax
  2478. shrl $21,%ecx
  2479. xorl %edi,%ebx
  2480. shrl $21,%edx
  2481. xorl %ecx,%eax
  2482. shll $5,%esi
  2483. xorl %edx,%ebx
  2484. shll $5,%edi
  2485. xorl %esi,%eax
  2486. xorl %edi,%ebx
  2487. movl 8(%esp),%ecx
  2488. movl 12(%esp),%edx
  2489. movl 16(%esp),%esi
  2490. movl 20(%esp),%edi
  2491. addl (%esp),%eax
  2492. adcl 4(%esp),%ebx
  2493. orl %esi,%ecx
  2494. orl %edi,%edx
  2495. andl 24(%esp),%ecx
  2496. andl 28(%esp),%edx
  2497. andl 8(%esp),%esi
  2498. andl 12(%esp),%edi
  2499. orl %esi,%ecx
  2500. orl %edi,%edx
  2501. addl %ecx,%eax
  2502. adcl %edx,%ebx
  2503. movl %eax,(%esp)
  2504. movl %ebx,4(%esp)
  2505. movb (%ebp),%dl
  2506. subl $8,%esp
  2507. leal 8(%ebp),%ebp
  2508. cmpb $148,%dl
  2509. jne .L00900_15_x86
  2510. .align 16
  2511. .L01016_79_x86:
  2512. movl 312(%esp),%ecx
  2513. movl 316(%esp),%edx
  2514. movl %ecx,%esi
  2515. shrl $1,%ecx
  2516. movl %edx,%edi
  2517. shrl $1,%edx
  2518. movl %ecx,%eax
  2519. shll $24,%esi
  2520. movl %edx,%ebx
  2521. shll $24,%edi
  2522. xorl %esi,%ebx
  2523. shrl $6,%ecx
  2524. xorl %edi,%eax
  2525. shrl $6,%edx
  2526. xorl %ecx,%eax
  2527. shll $7,%esi
  2528. xorl %edx,%ebx
  2529. shll $1,%edi
  2530. xorl %esi,%ebx
  2531. shrl $1,%ecx
  2532. xorl %edi,%eax
  2533. shrl $1,%edx
  2534. xorl %ecx,%eax
  2535. shll $6,%edi
  2536. xorl %edx,%ebx
  2537. xorl %edi,%eax
  2538. movl %eax,(%esp)
  2539. movl %ebx,4(%esp)
  2540. movl 208(%esp),%ecx
  2541. movl 212(%esp),%edx
  2542. movl %ecx,%esi
  2543. shrl $6,%ecx
  2544. movl %edx,%edi
  2545. shrl $6,%edx
  2546. movl %ecx,%eax
  2547. shll $3,%esi
  2548. movl %edx,%ebx
  2549. shll $3,%edi
  2550. xorl %esi,%eax
  2551. shrl $13,%ecx
  2552. xorl %edi,%ebx
  2553. shrl $13,%edx
  2554. xorl %ecx,%eax
  2555. shll $10,%esi
  2556. xorl %edx,%ebx
  2557. shll $10,%edi
  2558. xorl %esi,%ebx
  2559. shrl $10,%ecx
  2560. xorl %edi,%eax
  2561. shrl $10,%edx
  2562. xorl %ecx,%ebx
  2563. shll $13,%edi
  2564. xorl %edx,%eax
  2565. xorl %edi,%eax
  2566. movl 320(%esp),%ecx
  2567. movl 324(%esp),%edx
  2568. addl (%esp),%eax
  2569. adcl 4(%esp),%ebx
  2570. movl 248(%esp),%esi
  2571. movl 252(%esp),%edi
  2572. addl %ecx,%eax
  2573. adcl %edx,%ebx
  2574. addl %esi,%eax
  2575. adcl %edi,%ebx
  2576. movl %eax,192(%esp)
  2577. movl %ebx,196(%esp)
  2578. movl 40(%esp),%ecx
  2579. movl 44(%esp),%edx
  2580. movl %ecx,%esi
  2581. shrl $9,%ecx
  2582. movl %edx,%edi
  2583. shrl $9,%edx
  2584. movl %ecx,%ebx
  2585. shll $14,%esi
  2586. movl %edx,%eax
  2587. shll $14,%edi
  2588. xorl %esi,%ebx
  2589. shrl $5,%ecx
  2590. xorl %edi,%eax
  2591. shrl $5,%edx
  2592. xorl %ecx,%eax
  2593. shll $4,%esi
  2594. xorl %edx,%ebx
  2595. shll $4,%edi
  2596. xorl %esi,%ebx
  2597. shrl $4,%ecx
  2598. xorl %edi,%eax
  2599. shrl $4,%edx
  2600. xorl %ecx,%eax
  2601. shll $5,%esi
  2602. xorl %edx,%ebx
  2603. shll $5,%edi
  2604. xorl %esi,%eax
  2605. xorl %edi,%ebx
  2606. movl 48(%esp),%ecx
  2607. movl 52(%esp),%edx
  2608. movl 56(%esp),%esi
  2609. movl 60(%esp),%edi
  2610. addl 64(%esp),%eax
  2611. adcl 68(%esp),%ebx
  2612. xorl %esi,%ecx
  2613. xorl %edi,%edx
  2614. andl 40(%esp),%ecx
  2615. andl 44(%esp),%edx
  2616. addl 192(%esp),%eax
  2617. adcl 196(%esp),%ebx
  2618. xorl %esi,%ecx
  2619. xorl %edi,%edx
  2620. movl (%ebp),%esi
  2621. movl 4(%ebp),%edi
  2622. addl %ecx,%eax
  2623. adcl %edx,%ebx
  2624. movl 32(%esp),%ecx
  2625. movl 36(%esp),%edx
  2626. addl %esi,%eax
  2627. adcl %edi,%ebx
  2628. movl %eax,(%esp)
  2629. movl %ebx,4(%esp)
  2630. addl %ecx,%eax
  2631. adcl %edx,%ebx
  2632. movl 8(%esp),%ecx
  2633. movl 12(%esp),%edx
  2634. movl %eax,32(%esp)
  2635. movl %ebx,36(%esp)
  2636. movl %ecx,%esi
  2637. shrl $2,%ecx
  2638. movl %edx,%edi
  2639. shrl $2,%edx
  2640. movl %ecx,%ebx
  2641. shll $4,%esi
  2642. movl %edx,%eax
  2643. shll $4,%edi
  2644. xorl %esi,%ebx
  2645. shrl $5,%ecx
  2646. xorl %edi,%eax
  2647. shrl $5,%edx
  2648. xorl %ecx,%ebx
  2649. shll $21,%esi
  2650. xorl %edx,%eax
  2651. shll $21,%edi
  2652. xorl %esi,%eax
  2653. shrl $21,%ecx
  2654. xorl %edi,%ebx
  2655. shrl $21,%edx
  2656. xorl %ecx,%eax
  2657. shll $5,%esi
  2658. xorl %edx,%ebx
  2659. shll $5,%edi
  2660. xorl %esi,%eax
  2661. xorl %edi,%ebx
  2662. movl 8(%esp),%ecx
  2663. movl 12(%esp),%edx
  2664. movl 16(%esp),%esi
  2665. movl 20(%esp),%edi
  2666. addl (%esp),%eax
  2667. adcl 4(%esp),%ebx
  2668. orl %esi,%ecx
  2669. orl %edi,%edx
  2670. andl 24(%esp),%ecx
  2671. andl 28(%esp),%edx
  2672. andl 8(%esp),%esi
  2673. andl 12(%esp),%edi
  2674. orl %esi,%ecx
  2675. orl %edi,%edx
  2676. addl %ecx,%eax
  2677. adcl %edx,%ebx
  2678. movl %eax,(%esp)
  2679. movl %ebx,4(%esp)
  2680. movb (%ebp),%dl
  2681. subl $8,%esp
  2682. leal 8(%ebp),%ebp
  2683. cmpb $23,%dl
  2684. jne .L01016_79_x86
  2685. movl 840(%esp),%esi
  2686. movl 844(%esp),%edi
  2687. movl (%esi),%eax
  2688. movl 4(%esi),%ebx
  2689. movl 8(%esi),%ecx
  2690. movl 12(%esi),%edx
  2691. addl 8(%esp),%eax
  2692. adcl 12(%esp),%ebx
  2693. movl %eax,(%esi)
  2694. movl %ebx,4(%esi)
  2695. addl 16(%esp),%ecx
  2696. adcl 20(%esp),%edx
  2697. movl %ecx,8(%esi)
  2698. movl %edx,12(%esi)
  2699. movl 16(%esi),%eax
  2700. movl 20(%esi),%ebx
  2701. movl 24(%esi),%ecx
  2702. movl 28(%esi),%edx
  2703. addl 24(%esp),%eax
  2704. adcl 28(%esp),%ebx
  2705. movl %eax,16(%esi)
  2706. movl %ebx,20(%esi)
  2707. addl 32(%esp),%ecx
  2708. adcl 36(%esp),%edx
  2709. movl %ecx,24(%esi)
  2710. movl %edx,28(%esi)
  2711. movl 32(%esi),%eax
  2712. movl 36(%esi),%ebx
  2713. movl 40(%esi),%ecx
  2714. movl 44(%esi),%edx
  2715. addl 40(%esp),%eax
  2716. adcl 44(%esp),%ebx
  2717. movl %eax,32(%esi)
  2718. movl %ebx,36(%esi)
  2719. addl 48(%esp),%ecx
  2720. adcl 52(%esp),%edx
  2721. movl %ecx,40(%esi)
  2722. movl %edx,44(%esi)
  2723. movl 48(%esi),%eax
  2724. movl 52(%esi),%ebx
  2725. movl 56(%esi),%ecx
  2726. movl 60(%esi),%edx
  2727. addl 56(%esp),%eax
  2728. adcl 60(%esp),%ebx
  2729. movl %eax,48(%esi)
  2730. movl %ebx,52(%esi)
  2731. addl 64(%esp),%ecx
  2732. adcl 68(%esp),%edx
  2733. movl %ecx,56(%esi)
  2734. movl %edx,60(%esi)
  2735. addl $840,%esp
  2736. subl $640,%ebp
  2737. cmpl 8(%esp),%edi
  2738. jb .L002loop_x86
  2739. movl 12(%esp),%esp
  2740. popl %edi
  2741. popl %esi
  2742. popl %ebx
  2743. popl %ebp
  2744. ret
  2745. .align 64
  2746. .L001K512:
  2747. .long 3609767458,1116352408
  2748. .long 602891725,1899447441
  2749. .long 3964484399,3049323471
  2750. .long 2173295548,3921009573
  2751. .long 4081628472,961987163
  2752. .long 3053834265,1508970993
  2753. .long 2937671579,2453635748
  2754. .long 3664609560,2870763221
  2755. .long 2734883394,3624381080
  2756. .long 1164996542,310598401
  2757. .long 1323610764,607225278
  2758. .long 3590304994,1426881987
  2759. .long 4068182383,1925078388
  2760. .long 991336113,2162078206
  2761. .long 633803317,2614888103
  2762. .long 3479774868,3248222580
  2763. .long 2666613458,3835390401
  2764. .long 944711139,4022224774
  2765. .long 2341262773,264347078
  2766. .long 2007800933,604807628
  2767. .long 1495990901,770255983
  2768. .long 1856431235,1249150122
  2769. .long 3175218132,1555081692
  2770. .long 2198950837,1996064986
  2771. .long 3999719339,2554220882
  2772. .long 766784016,2821834349
  2773. .long 2566594879,2952996808
  2774. .long 3203337956,3210313671
  2775. .long 1034457026,3336571891
  2776. .long 2466948901,3584528711
  2777. .long 3758326383,113926993
  2778. .long 168717936,338241895
  2779. .long 1188179964,666307205
  2780. .long 1546045734,773529912
  2781. .long 1522805485,1294757372
  2782. .long 2643833823,1396182291
  2783. .long 2343527390,1695183700
  2784. .long 1014477480,1986661051
  2785. .long 1206759142,2177026350
  2786. .long 344077627,2456956037
  2787. .long 1290863460,2730485921
  2788. .long 3158454273,2820302411
  2789. .long 3505952657,3259730800
  2790. .long 106217008,3345764771
  2791. .long 3606008344,3516065817
  2792. .long 1432725776,3600352804
  2793. .long 1467031594,4094571909
  2794. .long 851169720,275423344
  2795. .long 3100823752,430227734
  2796. .long 1363258195,506948616
  2797. .long 3750685593,659060556
  2798. .long 3785050280,883997877
  2799. .long 3318307427,958139571
  2800. .long 3812723403,1322822218
  2801. .long 2003034995,1537002063
  2802. .long 3602036899,1747873779
  2803. .long 1575990012,1955562222
  2804. .long 1125592928,2024104815
  2805. .long 2716904306,2227730452
  2806. .long 442776044,2361852424
  2807. .long 593698344,2428436474
  2808. .long 3733110249,2756734187
  2809. .long 2999351573,3204031479
  2810. .long 3815920427,3329325298
  2811. .long 3928383900,3391569614
  2812. .long 566280711,3515267271
  2813. .long 3454069534,3940187606
  2814. .long 4000239992,4118630271
  2815. .long 1914138554,116418474
  2816. .long 2731055270,174292421
  2817. .long 3203993006,289380356
  2818. .long 320620315,460393269
  2819. .long 587496836,685471733
  2820. .long 1086792851,852142971
  2821. .long 365543100,1017036298
  2822. .long 2618297676,1126000580
  2823. .long 3409855158,1288033470
  2824. .long 4234509866,1501505948
  2825. .long 987167468,1607167915
  2826. .long 1246189591,1816402316
  2827. .long 67438087,66051
  2828. .long 202182159,134810123
  2829. .size sha512_block_data_order,.-.L_sha512_block_data_order_begin
  2830. .byte 83,72,65,53,49,50,32,98,108,111,99,107,32,116,114,97
  2831. .byte 110,115,102,111,114,109,32,102,111,114,32,120,56,54,44,32
  2832. .byte 67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97
  2833. .byte 112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103
  2834. .byte 62,0
  2835. #endif
  2836. .section .note.GNU-stack,"",@progbits