sha512-586.S 49 KB

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