ladderstep_amd64.s 20 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396
  1. // Copyright 2012 The Go Authors. All rights reserved.
  2. // Use of this source code is governed by a BSD-style
  3. // license that can be found in the LICENSE file.
  4. // This code was translated into a form compatible with 6a from the public
  5. // domain sources in SUPERCOP: http://bench.cr.yp.to/supercop.html
  6. // func ladderstep(inout *[5][5]uint64)
  7. TEXT ·ladderstep(SB),0,$384-8
  8. MOVQ inout+0(FP),DI
  9. MOVQ SP,R11
  10. MOVQ $31,CX
  11. NOTQ CX
  12. ANDQ CX,SP
  13. ADDQ $32,SP
  14. MOVQ R11,0(SP)
  15. MOVQ R12,8(SP)
  16. MOVQ R13,16(SP)
  17. MOVQ R14,24(SP)
  18. MOVQ R15,32(SP)
  19. MOVQ BX,40(SP)
  20. MOVQ BP,48(SP)
  21. MOVQ 40(DI),SI
  22. MOVQ 48(DI),DX
  23. MOVQ 56(DI),CX
  24. MOVQ 64(DI),R8
  25. MOVQ 72(DI),R9
  26. MOVQ SI,AX
  27. MOVQ DX,R10
  28. MOVQ CX,R11
  29. MOVQ R8,R12
  30. MOVQ R9,R13
  31. ADDQ ·_2P0(SB),AX
  32. ADDQ ·_2P1234(SB),R10
  33. ADDQ ·_2P1234(SB),R11
  34. ADDQ ·_2P1234(SB),R12
  35. ADDQ ·_2P1234(SB),R13
  36. ADDQ 80(DI),SI
  37. ADDQ 88(DI),DX
  38. ADDQ 96(DI),CX
  39. ADDQ 104(DI),R8
  40. ADDQ 112(DI),R9
  41. SUBQ 80(DI),AX
  42. SUBQ 88(DI),R10
  43. SUBQ 96(DI),R11
  44. SUBQ 104(DI),R12
  45. SUBQ 112(DI),R13
  46. MOVQ SI,56(SP)
  47. MOVQ DX,64(SP)
  48. MOVQ CX,72(SP)
  49. MOVQ R8,80(SP)
  50. MOVQ R9,88(SP)
  51. MOVQ AX,96(SP)
  52. MOVQ R10,104(SP)
  53. MOVQ R11,112(SP)
  54. MOVQ R12,120(SP)
  55. MOVQ R13,128(SP)
  56. MOVQ 96(SP),AX
  57. MULQ 96(SP)
  58. MOVQ AX,SI
  59. MOVQ DX,CX
  60. MOVQ 96(SP),AX
  61. SHLQ $1,AX
  62. MULQ 104(SP)
  63. MOVQ AX,R8
  64. MOVQ DX,R9
  65. MOVQ 96(SP),AX
  66. SHLQ $1,AX
  67. MULQ 112(SP)
  68. MOVQ AX,R10
  69. MOVQ DX,R11
  70. MOVQ 96(SP),AX
  71. SHLQ $1,AX
  72. MULQ 120(SP)
  73. MOVQ AX,R12
  74. MOVQ DX,R13
  75. MOVQ 96(SP),AX
  76. SHLQ $1,AX
  77. MULQ 128(SP)
  78. MOVQ AX,R14
  79. MOVQ DX,R15
  80. MOVQ 104(SP),AX
  81. MULQ 104(SP)
  82. ADDQ AX,R10
  83. ADCQ DX,R11
  84. MOVQ 104(SP),AX
  85. SHLQ $1,AX
  86. MULQ 112(SP)
  87. ADDQ AX,R12
  88. ADCQ DX,R13
  89. MOVQ 104(SP),AX
  90. SHLQ $1,AX
  91. MULQ 120(SP)
  92. ADDQ AX,R14
  93. ADCQ DX,R15
  94. MOVQ 104(SP),DX
  95. IMUL3Q $38,DX,AX
  96. MULQ 128(SP)
  97. ADDQ AX,SI
  98. ADCQ DX,CX
  99. MOVQ 112(SP),AX
  100. MULQ 112(SP)
  101. ADDQ AX,R14
  102. ADCQ DX,R15
  103. MOVQ 112(SP),DX
  104. IMUL3Q $38,DX,AX
  105. MULQ 120(SP)
  106. ADDQ AX,SI
  107. ADCQ DX,CX
  108. MOVQ 112(SP),DX
  109. IMUL3Q $38,DX,AX
  110. MULQ 128(SP)
  111. ADDQ AX,R8
  112. ADCQ DX,R9
  113. MOVQ 120(SP),DX
  114. IMUL3Q $19,DX,AX
  115. MULQ 120(SP)
  116. ADDQ AX,R8
  117. ADCQ DX,R9
  118. MOVQ 120(SP),DX
  119. IMUL3Q $38,DX,AX
  120. MULQ 128(SP)
  121. ADDQ AX,R10
  122. ADCQ DX,R11
  123. MOVQ 128(SP),DX
  124. IMUL3Q $19,DX,AX
  125. MULQ 128(SP)
  126. ADDQ AX,R12
  127. ADCQ DX,R13
  128. MOVQ ·REDMASK51(SB),DX
  129. SHLQ $13,CX:SI
  130. ANDQ DX,SI
  131. SHLQ $13,R9:R8
  132. ANDQ DX,R8
  133. ADDQ CX,R8
  134. SHLQ $13,R11:R10
  135. ANDQ DX,R10
  136. ADDQ R9,R10
  137. SHLQ $13,R13:R12
  138. ANDQ DX,R12
  139. ADDQ R11,R12
  140. SHLQ $13,R15:R14
  141. ANDQ DX,R14
  142. ADDQ R13,R14
  143. IMUL3Q $19,R15,CX
  144. ADDQ CX,SI
  145. MOVQ SI,CX
  146. SHRQ $51,CX
  147. ADDQ R8,CX
  148. ANDQ DX,SI
  149. MOVQ CX,R8
  150. SHRQ $51,CX
  151. ADDQ R10,CX
  152. ANDQ DX,R8
  153. MOVQ CX,R9
  154. SHRQ $51,CX
  155. ADDQ R12,CX
  156. ANDQ DX,R9
  157. MOVQ CX,AX
  158. SHRQ $51,CX
  159. ADDQ R14,CX
  160. ANDQ DX,AX
  161. MOVQ CX,R10
  162. SHRQ $51,CX
  163. IMUL3Q $19,CX,CX
  164. ADDQ CX,SI
  165. ANDQ DX,R10
  166. MOVQ SI,136(SP)
  167. MOVQ R8,144(SP)
  168. MOVQ R9,152(SP)
  169. MOVQ AX,160(SP)
  170. MOVQ R10,168(SP)
  171. MOVQ 56(SP),AX
  172. MULQ 56(SP)
  173. MOVQ AX,SI
  174. MOVQ DX,CX
  175. MOVQ 56(SP),AX
  176. SHLQ $1,AX
  177. MULQ 64(SP)
  178. MOVQ AX,R8
  179. MOVQ DX,R9
  180. MOVQ 56(SP),AX
  181. SHLQ $1,AX
  182. MULQ 72(SP)
  183. MOVQ AX,R10
  184. MOVQ DX,R11
  185. MOVQ 56(SP),AX
  186. SHLQ $1,AX
  187. MULQ 80(SP)
  188. MOVQ AX,R12
  189. MOVQ DX,R13
  190. MOVQ 56(SP),AX
  191. SHLQ $1,AX
  192. MULQ 88(SP)
  193. MOVQ AX,R14
  194. MOVQ DX,R15
  195. MOVQ 64(SP),AX
  196. MULQ 64(SP)
  197. ADDQ AX,R10
  198. ADCQ DX,R11
  199. MOVQ 64(SP),AX
  200. SHLQ $1,AX
  201. MULQ 72(SP)
  202. ADDQ AX,R12
  203. ADCQ DX,R13
  204. MOVQ 64(SP),AX
  205. SHLQ $1,AX
  206. MULQ 80(SP)
  207. ADDQ AX,R14
  208. ADCQ DX,R15
  209. MOVQ 64(SP),DX
  210. IMUL3Q $38,DX,AX
  211. MULQ 88(SP)
  212. ADDQ AX,SI
  213. ADCQ DX,CX
  214. MOVQ 72(SP),AX
  215. MULQ 72(SP)
  216. ADDQ AX,R14
  217. ADCQ DX,R15
  218. MOVQ 72(SP),DX
  219. IMUL3Q $38,DX,AX
  220. MULQ 80(SP)
  221. ADDQ AX,SI
  222. ADCQ DX,CX
  223. MOVQ 72(SP),DX
  224. IMUL3Q $38,DX,AX
  225. MULQ 88(SP)
  226. ADDQ AX,R8
  227. ADCQ DX,R9
  228. MOVQ 80(SP),DX
  229. IMUL3Q $19,DX,AX
  230. MULQ 80(SP)
  231. ADDQ AX,R8
  232. ADCQ DX,R9
  233. MOVQ 80(SP),DX
  234. IMUL3Q $38,DX,AX
  235. MULQ 88(SP)
  236. ADDQ AX,R10
  237. ADCQ DX,R11
  238. MOVQ 88(SP),DX
  239. IMUL3Q $19,DX,AX
  240. MULQ 88(SP)
  241. ADDQ AX,R12
  242. ADCQ DX,R13
  243. MOVQ ·REDMASK51(SB),DX
  244. SHLQ $13,CX:SI
  245. ANDQ DX,SI
  246. SHLQ $13,R9:R8
  247. ANDQ DX,R8
  248. ADDQ CX,R8
  249. SHLQ $13,R11:R10
  250. ANDQ DX,R10
  251. ADDQ R9,R10
  252. SHLQ $13,R13:R12
  253. ANDQ DX,R12
  254. ADDQ R11,R12
  255. SHLQ $13,R15:R14
  256. ANDQ DX,R14
  257. ADDQ R13,R14
  258. IMUL3Q $19,R15,CX
  259. ADDQ CX,SI
  260. MOVQ SI,CX
  261. SHRQ $51,CX
  262. ADDQ R8,CX
  263. ANDQ DX,SI
  264. MOVQ CX,R8
  265. SHRQ $51,CX
  266. ADDQ R10,CX
  267. ANDQ DX,R8
  268. MOVQ CX,R9
  269. SHRQ $51,CX
  270. ADDQ R12,CX
  271. ANDQ DX,R9
  272. MOVQ CX,AX
  273. SHRQ $51,CX
  274. ADDQ R14,CX
  275. ANDQ DX,AX
  276. MOVQ CX,R10
  277. SHRQ $51,CX
  278. IMUL3Q $19,CX,CX
  279. ADDQ CX,SI
  280. ANDQ DX,R10
  281. MOVQ SI,176(SP)
  282. MOVQ R8,184(SP)
  283. MOVQ R9,192(SP)
  284. MOVQ AX,200(SP)
  285. MOVQ R10,208(SP)
  286. MOVQ SI,SI
  287. MOVQ R8,DX
  288. MOVQ R9,CX
  289. MOVQ AX,R8
  290. MOVQ R10,R9
  291. ADDQ ·_2P0(SB),SI
  292. ADDQ ·_2P1234(SB),DX
  293. ADDQ ·_2P1234(SB),CX
  294. ADDQ ·_2P1234(SB),R8
  295. ADDQ ·_2P1234(SB),R9
  296. SUBQ 136(SP),SI
  297. SUBQ 144(SP),DX
  298. SUBQ 152(SP),CX
  299. SUBQ 160(SP),R8
  300. SUBQ 168(SP),R9
  301. MOVQ SI,216(SP)
  302. MOVQ DX,224(SP)
  303. MOVQ CX,232(SP)
  304. MOVQ R8,240(SP)
  305. MOVQ R9,248(SP)
  306. MOVQ 120(DI),SI
  307. MOVQ 128(DI),DX
  308. MOVQ 136(DI),CX
  309. MOVQ 144(DI),R8
  310. MOVQ 152(DI),R9
  311. MOVQ SI,AX
  312. MOVQ DX,R10
  313. MOVQ CX,R11
  314. MOVQ R8,R12
  315. MOVQ R9,R13
  316. ADDQ ·_2P0(SB),AX
  317. ADDQ ·_2P1234(SB),R10
  318. ADDQ ·_2P1234(SB),R11
  319. ADDQ ·_2P1234(SB),R12
  320. ADDQ ·_2P1234(SB),R13
  321. ADDQ 160(DI),SI
  322. ADDQ 168(DI),DX
  323. ADDQ 176(DI),CX
  324. ADDQ 184(DI),R8
  325. ADDQ 192(DI),R9
  326. SUBQ 160(DI),AX
  327. SUBQ 168(DI),R10
  328. SUBQ 176(DI),R11
  329. SUBQ 184(DI),R12
  330. SUBQ 192(DI),R13
  331. MOVQ SI,256(SP)
  332. MOVQ DX,264(SP)
  333. MOVQ CX,272(SP)
  334. MOVQ R8,280(SP)
  335. MOVQ R9,288(SP)
  336. MOVQ AX,296(SP)
  337. MOVQ R10,304(SP)
  338. MOVQ R11,312(SP)
  339. MOVQ R12,320(SP)
  340. MOVQ R13,328(SP)
  341. MOVQ 280(SP),SI
  342. IMUL3Q $19,SI,AX
  343. MOVQ AX,336(SP)
  344. MULQ 112(SP)
  345. MOVQ AX,SI
  346. MOVQ DX,CX
  347. MOVQ 288(SP),DX
  348. IMUL3Q $19,DX,AX
  349. MOVQ AX,344(SP)
  350. MULQ 104(SP)
  351. ADDQ AX,SI
  352. ADCQ DX,CX
  353. MOVQ 256(SP),AX
  354. MULQ 96(SP)
  355. ADDQ AX,SI
  356. ADCQ DX,CX
  357. MOVQ 256(SP),AX
  358. MULQ 104(SP)
  359. MOVQ AX,R8
  360. MOVQ DX,R9
  361. MOVQ 256(SP),AX
  362. MULQ 112(SP)
  363. MOVQ AX,R10
  364. MOVQ DX,R11
  365. MOVQ 256(SP),AX
  366. MULQ 120(SP)
  367. MOVQ AX,R12
  368. MOVQ DX,R13
  369. MOVQ 256(SP),AX
  370. MULQ 128(SP)
  371. MOVQ AX,R14
  372. MOVQ DX,R15
  373. MOVQ 264(SP),AX
  374. MULQ 96(SP)
  375. ADDQ AX,R8
  376. ADCQ DX,R9
  377. MOVQ 264(SP),AX
  378. MULQ 104(SP)
  379. ADDQ AX,R10
  380. ADCQ DX,R11
  381. MOVQ 264(SP),AX
  382. MULQ 112(SP)
  383. ADDQ AX,R12
  384. ADCQ DX,R13
  385. MOVQ 264(SP),AX
  386. MULQ 120(SP)
  387. ADDQ AX,R14
  388. ADCQ DX,R15
  389. MOVQ 264(SP),DX
  390. IMUL3Q $19,DX,AX
  391. MULQ 128(SP)
  392. ADDQ AX,SI
  393. ADCQ DX,CX
  394. MOVQ 272(SP),AX
  395. MULQ 96(SP)
  396. ADDQ AX,R10
  397. ADCQ DX,R11
  398. MOVQ 272(SP),AX
  399. MULQ 104(SP)
  400. ADDQ AX,R12
  401. ADCQ DX,R13
  402. MOVQ 272(SP),AX
  403. MULQ 112(SP)
  404. ADDQ AX,R14
  405. ADCQ DX,R15
  406. MOVQ 272(SP),DX
  407. IMUL3Q $19,DX,AX
  408. MULQ 120(SP)
  409. ADDQ AX,SI
  410. ADCQ DX,CX
  411. MOVQ 272(SP),DX
  412. IMUL3Q $19,DX,AX
  413. MULQ 128(SP)
  414. ADDQ AX,R8
  415. ADCQ DX,R9
  416. MOVQ 280(SP),AX
  417. MULQ 96(SP)
  418. ADDQ AX,R12
  419. ADCQ DX,R13
  420. MOVQ 280(SP),AX
  421. MULQ 104(SP)
  422. ADDQ AX,R14
  423. ADCQ DX,R15
  424. MOVQ 336(SP),AX
  425. MULQ 120(SP)
  426. ADDQ AX,R8
  427. ADCQ DX,R9
  428. MOVQ 336(SP),AX
  429. MULQ 128(SP)
  430. ADDQ AX,R10
  431. ADCQ DX,R11
  432. MOVQ 288(SP),AX
  433. MULQ 96(SP)
  434. ADDQ AX,R14
  435. ADCQ DX,R15
  436. MOVQ 344(SP),AX
  437. MULQ 112(SP)
  438. ADDQ AX,R8
  439. ADCQ DX,R9
  440. MOVQ 344(SP),AX
  441. MULQ 120(SP)
  442. ADDQ AX,R10
  443. ADCQ DX,R11
  444. MOVQ 344(SP),AX
  445. MULQ 128(SP)
  446. ADDQ AX,R12
  447. ADCQ DX,R13
  448. MOVQ ·REDMASK51(SB),DX
  449. SHLQ $13,CX:SI
  450. ANDQ DX,SI
  451. SHLQ $13,R9:R8
  452. ANDQ DX,R8
  453. ADDQ CX,R8
  454. SHLQ $13,R11:R10
  455. ANDQ DX,R10
  456. ADDQ R9,R10
  457. SHLQ $13,R13:R12
  458. ANDQ DX,R12
  459. ADDQ R11,R12
  460. SHLQ $13,R15:R14
  461. ANDQ DX,R14
  462. ADDQ R13,R14
  463. IMUL3Q $19,R15,CX
  464. ADDQ CX,SI
  465. MOVQ SI,CX
  466. SHRQ $51,CX
  467. ADDQ R8,CX
  468. MOVQ CX,R8
  469. SHRQ $51,CX
  470. ANDQ DX,SI
  471. ADDQ R10,CX
  472. MOVQ CX,R9
  473. SHRQ $51,CX
  474. ANDQ DX,R8
  475. ADDQ R12,CX
  476. MOVQ CX,AX
  477. SHRQ $51,CX
  478. ANDQ DX,R9
  479. ADDQ R14,CX
  480. MOVQ CX,R10
  481. SHRQ $51,CX
  482. ANDQ DX,AX
  483. IMUL3Q $19,CX,CX
  484. ADDQ CX,SI
  485. ANDQ DX,R10
  486. MOVQ SI,96(SP)
  487. MOVQ R8,104(SP)
  488. MOVQ R9,112(SP)
  489. MOVQ AX,120(SP)
  490. MOVQ R10,128(SP)
  491. MOVQ 320(SP),SI
  492. IMUL3Q $19,SI,AX
  493. MOVQ AX,256(SP)
  494. MULQ 72(SP)
  495. MOVQ AX,SI
  496. MOVQ DX,CX
  497. MOVQ 328(SP),DX
  498. IMUL3Q $19,DX,AX
  499. MOVQ AX,264(SP)
  500. MULQ 64(SP)
  501. ADDQ AX,SI
  502. ADCQ DX,CX
  503. MOVQ 296(SP),AX
  504. MULQ 56(SP)
  505. ADDQ AX,SI
  506. ADCQ DX,CX
  507. MOVQ 296(SP),AX
  508. MULQ 64(SP)
  509. MOVQ AX,R8
  510. MOVQ DX,R9
  511. MOVQ 296(SP),AX
  512. MULQ 72(SP)
  513. MOVQ AX,R10
  514. MOVQ DX,R11
  515. MOVQ 296(SP),AX
  516. MULQ 80(SP)
  517. MOVQ AX,R12
  518. MOVQ DX,R13
  519. MOVQ 296(SP),AX
  520. MULQ 88(SP)
  521. MOVQ AX,R14
  522. MOVQ DX,R15
  523. MOVQ 304(SP),AX
  524. MULQ 56(SP)
  525. ADDQ AX,R8
  526. ADCQ DX,R9
  527. MOVQ 304(SP),AX
  528. MULQ 64(SP)
  529. ADDQ AX,R10
  530. ADCQ DX,R11
  531. MOVQ 304(SP),AX
  532. MULQ 72(SP)
  533. ADDQ AX,R12
  534. ADCQ DX,R13
  535. MOVQ 304(SP),AX
  536. MULQ 80(SP)
  537. ADDQ AX,R14
  538. ADCQ DX,R15
  539. MOVQ 304(SP),DX
  540. IMUL3Q $19,DX,AX
  541. MULQ 88(SP)
  542. ADDQ AX,SI
  543. ADCQ DX,CX
  544. MOVQ 312(SP),AX
  545. MULQ 56(SP)
  546. ADDQ AX,R10
  547. ADCQ DX,R11
  548. MOVQ 312(SP),AX
  549. MULQ 64(SP)
  550. ADDQ AX,R12
  551. ADCQ DX,R13
  552. MOVQ 312(SP),AX
  553. MULQ 72(SP)
  554. ADDQ AX,R14
  555. ADCQ DX,R15
  556. MOVQ 312(SP),DX
  557. IMUL3Q $19,DX,AX
  558. MULQ 80(SP)
  559. ADDQ AX,SI
  560. ADCQ DX,CX
  561. MOVQ 312(SP),DX
  562. IMUL3Q $19,DX,AX
  563. MULQ 88(SP)
  564. ADDQ AX,R8
  565. ADCQ DX,R9
  566. MOVQ 320(SP),AX
  567. MULQ 56(SP)
  568. ADDQ AX,R12
  569. ADCQ DX,R13
  570. MOVQ 320(SP),AX
  571. MULQ 64(SP)
  572. ADDQ AX,R14
  573. ADCQ DX,R15
  574. MOVQ 256(SP),AX
  575. MULQ 80(SP)
  576. ADDQ AX,R8
  577. ADCQ DX,R9
  578. MOVQ 256(SP),AX
  579. MULQ 88(SP)
  580. ADDQ AX,R10
  581. ADCQ DX,R11
  582. MOVQ 328(SP),AX
  583. MULQ 56(SP)
  584. ADDQ AX,R14
  585. ADCQ DX,R15
  586. MOVQ 264(SP),AX
  587. MULQ 72(SP)
  588. ADDQ AX,R8
  589. ADCQ DX,R9
  590. MOVQ 264(SP),AX
  591. MULQ 80(SP)
  592. ADDQ AX,R10
  593. ADCQ DX,R11
  594. MOVQ 264(SP),AX
  595. MULQ 88(SP)
  596. ADDQ AX,R12
  597. ADCQ DX,R13
  598. MOVQ ·REDMASK51(SB),DX
  599. SHLQ $13,CX:SI
  600. ANDQ DX,SI
  601. SHLQ $13,R9:R8
  602. ANDQ DX,R8
  603. ADDQ CX,R8
  604. SHLQ $13,R11:R10
  605. ANDQ DX,R10
  606. ADDQ R9,R10
  607. SHLQ $13,R13:R12
  608. ANDQ DX,R12
  609. ADDQ R11,R12
  610. SHLQ $13,R15:R14
  611. ANDQ DX,R14
  612. ADDQ R13,R14
  613. IMUL3Q $19,R15,CX
  614. ADDQ CX,SI
  615. MOVQ SI,CX
  616. SHRQ $51,CX
  617. ADDQ R8,CX
  618. MOVQ CX,R8
  619. SHRQ $51,CX
  620. ANDQ DX,SI
  621. ADDQ R10,CX
  622. MOVQ CX,R9
  623. SHRQ $51,CX
  624. ANDQ DX,R8
  625. ADDQ R12,CX
  626. MOVQ CX,AX
  627. SHRQ $51,CX
  628. ANDQ DX,R9
  629. ADDQ R14,CX
  630. MOVQ CX,R10
  631. SHRQ $51,CX
  632. ANDQ DX,AX
  633. IMUL3Q $19,CX,CX
  634. ADDQ CX,SI
  635. ANDQ DX,R10
  636. MOVQ SI,DX
  637. MOVQ R8,CX
  638. MOVQ R9,R11
  639. MOVQ AX,R12
  640. MOVQ R10,R13
  641. ADDQ ·_2P0(SB),DX
  642. ADDQ ·_2P1234(SB),CX
  643. ADDQ ·_2P1234(SB),R11
  644. ADDQ ·_2P1234(SB),R12
  645. ADDQ ·_2P1234(SB),R13
  646. ADDQ 96(SP),SI
  647. ADDQ 104(SP),R8
  648. ADDQ 112(SP),R9
  649. ADDQ 120(SP),AX
  650. ADDQ 128(SP),R10
  651. SUBQ 96(SP),DX
  652. SUBQ 104(SP),CX
  653. SUBQ 112(SP),R11
  654. SUBQ 120(SP),R12
  655. SUBQ 128(SP),R13
  656. MOVQ SI,120(DI)
  657. MOVQ R8,128(DI)
  658. MOVQ R9,136(DI)
  659. MOVQ AX,144(DI)
  660. MOVQ R10,152(DI)
  661. MOVQ DX,160(DI)
  662. MOVQ CX,168(DI)
  663. MOVQ R11,176(DI)
  664. MOVQ R12,184(DI)
  665. MOVQ R13,192(DI)
  666. MOVQ 120(DI),AX
  667. MULQ 120(DI)
  668. MOVQ AX,SI
  669. MOVQ DX,CX
  670. MOVQ 120(DI),AX
  671. SHLQ $1,AX
  672. MULQ 128(DI)
  673. MOVQ AX,R8
  674. MOVQ DX,R9
  675. MOVQ 120(DI),AX
  676. SHLQ $1,AX
  677. MULQ 136(DI)
  678. MOVQ AX,R10
  679. MOVQ DX,R11
  680. MOVQ 120(DI),AX
  681. SHLQ $1,AX
  682. MULQ 144(DI)
  683. MOVQ AX,R12
  684. MOVQ DX,R13
  685. MOVQ 120(DI),AX
  686. SHLQ $1,AX
  687. MULQ 152(DI)
  688. MOVQ AX,R14
  689. MOVQ DX,R15
  690. MOVQ 128(DI),AX
  691. MULQ 128(DI)
  692. ADDQ AX,R10
  693. ADCQ DX,R11
  694. MOVQ 128(DI),AX
  695. SHLQ $1,AX
  696. MULQ 136(DI)
  697. ADDQ AX,R12
  698. ADCQ DX,R13
  699. MOVQ 128(DI),AX
  700. SHLQ $1,AX
  701. MULQ 144(DI)
  702. ADDQ AX,R14
  703. ADCQ DX,R15
  704. MOVQ 128(DI),DX
  705. IMUL3Q $38,DX,AX
  706. MULQ 152(DI)
  707. ADDQ AX,SI
  708. ADCQ DX,CX
  709. MOVQ 136(DI),AX
  710. MULQ 136(DI)
  711. ADDQ AX,R14
  712. ADCQ DX,R15
  713. MOVQ 136(DI),DX
  714. IMUL3Q $38,DX,AX
  715. MULQ 144(DI)
  716. ADDQ AX,SI
  717. ADCQ DX,CX
  718. MOVQ 136(DI),DX
  719. IMUL3Q $38,DX,AX
  720. MULQ 152(DI)
  721. ADDQ AX,R8
  722. ADCQ DX,R9
  723. MOVQ 144(DI),DX
  724. IMUL3Q $19,DX,AX
  725. MULQ 144(DI)
  726. ADDQ AX,R8
  727. ADCQ DX,R9
  728. MOVQ 144(DI),DX
  729. IMUL3Q $38,DX,AX
  730. MULQ 152(DI)
  731. ADDQ AX,R10
  732. ADCQ DX,R11
  733. MOVQ 152(DI),DX
  734. IMUL3Q $19,DX,AX
  735. MULQ 152(DI)
  736. ADDQ AX,R12
  737. ADCQ DX,R13
  738. MOVQ ·REDMASK51(SB),DX
  739. SHLQ $13,CX:SI
  740. ANDQ DX,SI
  741. SHLQ $13,R9:R8
  742. ANDQ DX,R8
  743. ADDQ CX,R8
  744. SHLQ $13,R11:R10
  745. ANDQ DX,R10
  746. ADDQ R9,R10
  747. SHLQ $13,R13:R12
  748. ANDQ DX,R12
  749. ADDQ R11,R12
  750. SHLQ $13,R15:R14
  751. ANDQ DX,R14
  752. ADDQ R13,R14
  753. IMUL3Q $19,R15,CX
  754. ADDQ CX,SI
  755. MOVQ SI,CX
  756. SHRQ $51,CX
  757. ADDQ R8,CX
  758. ANDQ DX,SI
  759. MOVQ CX,R8
  760. SHRQ $51,CX
  761. ADDQ R10,CX
  762. ANDQ DX,R8
  763. MOVQ CX,R9
  764. SHRQ $51,CX
  765. ADDQ R12,CX
  766. ANDQ DX,R9
  767. MOVQ CX,AX
  768. SHRQ $51,CX
  769. ADDQ R14,CX
  770. ANDQ DX,AX
  771. MOVQ CX,R10
  772. SHRQ $51,CX
  773. IMUL3Q $19,CX,CX
  774. ADDQ CX,SI
  775. ANDQ DX,R10
  776. MOVQ SI,120(DI)
  777. MOVQ R8,128(DI)
  778. MOVQ R9,136(DI)
  779. MOVQ AX,144(DI)
  780. MOVQ R10,152(DI)
  781. MOVQ 160(DI),AX
  782. MULQ 160(DI)
  783. MOVQ AX,SI
  784. MOVQ DX,CX
  785. MOVQ 160(DI),AX
  786. SHLQ $1,AX
  787. MULQ 168(DI)
  788. MOVQ AX,R8
  789. MOVQ DX,R9
  790. MOVQ 160(DI),AX
  791. SHLQ $1,AX
  792. MULQ 176(DI)
  793. MOVQ AX,R10
  794. MOVQ DX,R11
  795. MOVQ 160(DI),AX
  796. SHLQ $1,AX
  797. MULQ 184(DI)
  798. MOVQ AX,R12
  799. MOVQ DX,R13
  800. MOVQ 160(DI),AX
  801. SHLQ $1,AX
  802. MULQ 192(DI)
  803. MOVQ AX,R14
  804. MOVQ DX,R15
  805. MOVQ 168(DI),AX
  806. MULQ 168(DI)
  807. ADDQ AX,R10
  808. ADCQ DX,R11
  809. MOVQ 168(DI),AX
  810. SHLQ $1,AX
  811. MULQ 176(DI)
  812. ADDQ AX,R12
  813. ADCQ DX,R13
  814. MOVQ 168(DI),AX
  815. SHLQ $1,AX
  816. MULQ 184(DI)
  817. ADDQ AX,R14
  818. ADCQ DX,R15
  819. MOVQ 168(DI),DX
  820. IMUL3Q $38,DX,AX
  821. MULQ 192(DI)
  822. ADDQ AX,SI
  823. ADCQ DX,CX
  824. MOVQ 176(DI),AX
  825. MULQ 176(DI)
  826. ADDQ AX,R14
  827. ADCQ DX,R15
  828. MOVQ 176(DI),DX
  829. IMUL3Q $38,DX,AX
  830. MULQ 184(DI)
  831. ADDQ AX,SI
  832. ADCQ DX,CX
  833. MOVQ 176(DI),DX
  834. IMUL3Q $38,DX,AX
  835. MULQ 192(DI)
  836. ADDQ AX,R8
  837. ADCQ DX,R9
  838. MOVQ 184(DI),DX
  839. IMUL3Q $19,DX,AX
  840. MULQ 184(DI)
  841. ADDQ AX,R8
  842. ADCQ DX,R9
  843. MOVQ 184(DI),DX
  844. IMUL3Q $38,DX,AX
  845. MULQ 192(DI)
  846. ADDQ AX,R10
  847. ADCQ DX,R11
  848. MOVQ 192(DI),DX
  849. IMUL3Q $19,DX,AX
  850. MULQ 192(DI)
  851. ADDQ AX,R12
  852. ADCQ DX,R13
  853. MOVQ ·REDMASK51(SB),DX
  854. SHLQ $13,CX:SI
  855. ANDQ DX,SI
  856. SHLQ $13,R9:R8
  857. ANDQ DX,R8
  858. ADDQ CX,R8
  859. SHLQ $13,R11:R10
  860. ANDQ DX,R10
  861. ADDQ R9,R10
  862. SHLQ $13,R13:R12
  863. ANDQ DX,R12
  864. ADDQ R11,R12
  865. SHLQ $13,R15:R14
  866. ANDQ DX,R14
  867. ADDQ R13,R14
  868. IMUL3Q $19,R15,CX
  869. ADDQ CX,SI
  870. MOVQ SI,CX
  871. SHRQ $51,CX
  872. ADDQ R8,CX
  873. ANDQ DX,SI
  874. MOVQ CX,R8
  875. SHRQ $51,CX
  876. ADDQ R10,CX
  877. ANDQ DX,R8
  878. MOVQ CX,R9
  879. SHRQ $51,CX
  880. ADDQ R12,CX
  881. ANDQ DX,R9
  882. MOVQ CX,AX
  883. SHRQ $51,CX
  884. ADDQ R14,CX
  885. ANDQ DX,AX
  886. MOVQ CX,R10
  887. SHRQ $51,CX
  888. IMUL3Q $19,CX,CX
  889. ADDQ CX,SI
  890. ANDQ DX,R10
  891. MOVQ SI,160(DI)
  892. MOVQ R8,168(DI)
  893. MOVQ R9,176(DI)
  894. MOVQ AX,184(DI)
  895. MOVQ R10,192(DI)
  896. MOVQ 184(DI),SI
  897. IMUL3Q $19,SI,AX
  898. MOVQ AX,56(SP)
  899. MULQ 16(DI)
  900. MOVQ AX,SI
  901. MOVQ DX,CX
  902. MOVQ 192(DI),DX
  903. IMUL3Q $19,DX,AX
  904. MOVQ AX,64(SP)
  905. MULQ 8(DI)
  906. ADDQ AX,SI
  907. ADCQ DX,CX
  908. MOVQ 160(DI),AX
  909. MULQ 0(DI)
  910. ADDQ AX,SI
  911. ADCQ DX,CX
  912. MOVQ 160(DI),AX
  913. MULQ 8(DI)
  914. MOVQ AX,R8
  915. MOVQ DX,R9
  916. MOVQ 160(DI),AX
  917. MULQ 16(DI)
  918. MOVQ AX,R10
  919. MOVQ DX,R11
  920. MOVQ 160(DI),AX
  921. MULQ 24(DI)
  922. MOVQ AX,R12
  923. MOVQ DX,R13
  924. MOVQ 160(DI),AX
  925. MULQ 32(DI)
  926. MOVQ AX,R14
  927. MOVQ DX,R15
  928. MOVQ 168(DI),AX
  929. MULQ 0(DI)
  930. ADDQ AX,R8
  931. ADCQ DX,R9
  932. MOVQ 168(DI),AX
  933. MULQ 8(DI)
  934. ADDQ AX,R10
  935. ADCQ DX,R11
  936. MOVQ 168(DI),AX
  937. MULQ 16(DI)
  938. ADDQ AX,R12
  939. ADCQ DX,R13
  940. MOVQ 168(DI),AX
  941. MULQ 24(DI)
  942. ADDQ AX,R14
  943. ADCQ DX,R15
  944. MOVQ 168(DI),DX
  945. IMUL3Q $19,DX,AX
  946. MULQ 32(DI)
  947. ADDQ AX,SI
  948. ADCQ DX,CX
  949. MOVQ 176(DI),AX
  950. MULQ 0(DI)
  951. ADDQ AX,R10
  952. ADCQ DX,R11
  953. MOVQ 176(DI),AX
  954. MULQ 8(DI)
  955. ADDQ AX,R12
  956. ADCQ DX,R13
  957. MOVQ 176(DI),AX
  958. MULQ 16(DI)
  959. ADDQ AX,R14
  960. ADCQ DX,R15
  961. MOVQ 176(DI),DX
  962. IMUL3Q $19,DX,AX
  963. MULQ 24(DI)
  964. ADDQ AX,SI
  965. ADCQ DX,CX
  966. MOVQ 176(DI),DX
  967. IMUL3Q $19,DX,AX
  968. MULQ 32(DI)
  969. ADDQ AX,R8
  970. ADCQ DX,R9
  971. MOVQ 184(DI),AX
  972. MULQ 0(DI)
  973. ADDQ AX,R12
  974. ADCQ DX,R13
  975. MOVQ 184(DI),AX
  976. MULQ 8(DI)
  977. ADDQ AX,R14
  978. ADCQ DX,R15
  979. MOVQ 56(SP),AX
  980. MULQ 24(DI)
  981. ADDQ AX,R8
  982. ADCQ DX,R9
  983. MOVQ 56(SP),AX
  984. MULQ 32(DI)
  985. ADDQ AX,R10
  986. ADCQ DX,R11
  987. MOVQ 192(DI),AX
  988. MULQ 0(DI)
  989. ADDQ AX,R14
  990. ADCQ DX,R15
  991. MOVQ 64(SP),AX
  992. MULQ 16(DI)
  993. ADDQ AX,R8
  994. ADCQ DX,R9
  995. MOVQ 64(SP),AX
  996. MULQ 24(DI)
  997. ADDQ AX,R10
  998. ADCQ DX,R11
  999. MOVQ 64(SP),AX
  1000. MULQ 32(DI)
  1001. ADDQ AX,R12
  1002. ADCQ DX,R13
  1003. MOVQ ·REDMASK51(SB),DX
  1004. SHLQ $13,CX:SI
  1005. ANDQ DX,SI
  1006. SHLQ $13,R9:R8
  1007. ANDQ DX,R8
  1008. ADDQ CX,R8
  1009. SHLQ $13,R11:R10
  1010. ANDQ DX,R10
  1011. ADDQ R9,R10
  1012. SHLQ $13,R13:R12
  1013. ANDQ DX,R12
  1014. ADDQ R11,R12
  1015. SHLQ $13,R15:R14
  1016. ANDQ DX,R14
  1017. ADDQ R13,R14
  1018. IMUL3Q $19,R15,CX
  1019. ADDQ CX,SI
  1020. MOVQ SI,CX
  1021. SHRQ $51,CX
  1022. ADDQ R8,CX
  1023. MOVQ CX,R8
  1024. SHRQ $51,CX
  1025. ANDQ DX,SI
  1026. ADDQ R10,CX
  1027. MOVQ CX,R9
  1028. SHRQ $51,CX
  1029. ANDQ DX,R8
  1030. ADDQ R12,CX
  1031. MOVQ CX,AX
  1032. SHRQ $51,CX
  1033. ANDQ DX,R9
  1034. ADDQ R14,CX
  1035. MOVQ CX,R10
  1036. SHRQ $51,CX
  1037. ANDQ DX,AX
  1038. IMUL3Q $19,CX,CX
  1039. ADDQ CX,SI
  1040. ANDQ DX,R10
  1041. MOVQ SI,160(DI)
  1042. MOVQ R8,168(DI)
  1043. MOVQ R9,176(DI)
  1044. MOVQ AX,184(DI)
  1045. MOVQ R10,192(DI)
  1046. MOVQ 200(SP),SI
  1047. IMUL3Q $19,SI,AX
  1048. MOVQ AX,56(SP)
  1049. MULQ 152(SP)
  1050. MOVQ AX,SI
  1051. MOVQ DX,CX
  1052. MOVQ 208(SP),DX
  1053. IMUL3Q $19,DX,AX
  1054. MOVQ AX,64(SP)
  1055. MULQ 144(SP)
  1056. ADDQ AX,SI
  1057. ADCQ DX,CX
  1058. MOVQ 176(SP),AX
  1059. MULQ 136(SP)
  1060. ADDQ AX,SI
  1061. ADCQ DX,CX
  1062. MOVQ 176(SP),AX
  1063. MULQ 144(SP)
  1064. MOVQ AX,R8
  1065. MOVQ DX,R9
  1066. MOVQ 176(SP),AX
  1067. MULQ 152(SP)
  1068. MOVQ AX,R10
  1069. MOVQ DX,R11
  1070. MOVQ 176(SP),AX
  1071. MULQ 160(SP)
  1072. MOVQ AX,R12
  1073. MOVQ DX,R13
  1074. MOVQ 176(SP),AX
  1075. MULQ 168(SP)
  1076. MOVQ AX,R14
  1077. MOVQ DX,R15
  1078. MOVQ 184(SP),AX
  1079. MULQ 136(SP)
  1080. ADDQ AX,R8
  1081. ADCQ DX,R9
  1082. MOVQ 184(SP),AX
  1083. MULQ 144(SP)
  1084. ADDQ AX,R10
  1085. ADCQ DX,R11
  1086. MOVQ 184(SP),AX
  1087. MULQ 152(SP)
  1088. ADDQ AX,R12
  1089. ADCQ DX,R13
  1090. MOVQ 184(SP),AX
  1091. MULQ 160(SP)
  1092. ADDQ AX,R14
  1093. ADCQ DX,R15
  1094. MOVQ 184(SP),DX
  1095. IMUL3Q $19,DX,AX
  1096. MULQ 168(SP)
  1097. ADDQ AX,SI
  1098. ADCQ DX,CX
  1099. MOVQ 192(SP),AX
  1100. MULQ 136(SP)
  1101. ADDQ AX,R10
  1102. ADCQ DX,R11
  1103. MOVQ 192(SP),AX
  1104. MULQ 144(SP)
  1105. ADDQ AX,R12
  1106. ADCQ DX,R13
  1107. MOVQ 192(SP),AX
  1108. MULQ 152(SP)
  1109. ADDQ AX,R14
  1110. ADCQ DX,R15
  1111. MOVQ 192(SP),DX
  1112. IMUL3Q $19,DX,AX
  1113. MULQ 160(SP)
  1114. ADDQ AX,SI
  1115. ADCQ DX,CX
  1116. MOVQ 192(SP),DX
  1117. IMUL3Q $19,DX,AX
  1118. MULQ 168(SP)
  1119. ADDQ AX,R8
  1120. ADCQ DX,R9
  1121. MOVQ 200(SP),AX
  1122. MULQ 136(SP)
  1123. ADDQ AX,R12
  1124. ADCQ DX,R13
  1125. MOVQ 200(SP),AX
  1126. MULQ 144(SP)
  1127. ADDQ AX,R14
  1128. ADCQ DX,R15
  1129. MOVQ 56(SP),AX
  1130. MULQ 160(SP)
  1131. ADDQ AX,R8
  1132. ADCQ DX,R9
  1133. MOVQ 56(SP),AX
  1134. MULQ 168(SP)
  1135. ADDQ AX,R10
  1136. ADCQ DX,R11
  1137. MOVQ 208(SP),AX
  1138. MULQ 136(SP)
  1139. ADDQ AX,R14
  1140. ADCQ DX,R15
  1141. MOVQ 64(SP),AX
  1142. MULQ 152(SP)
  1143. ADDQ AX,R8
  1144. ADCQ DX,R9
  1145. MOVQ 64(SP),AX
  1146. MULQ 160(SP)
  1147. ADDQ AX,R10
  1148. ADCQ DX,R11
  1149. MOVQ 64(SP),AX
  1150. MULQ 168(SP)
  1151. ADDQ AX,R12
  1152. ADCQ DX,R13
  1153. MOVQ ·REDMASK51(SB),DX
  1154. SHLQ $13,CX:SI
  1155. ANDQ DX,SI
  1156. SHLQ $13,R9:R8
  1157. ANDQ DX,R8
  1158. ADDQ CX,R8
  1159. SHLQ $13,R11:R10
  1160. ANDQ DX,R10
  1161. ADDQ R9,R10
  1162. SHLQ $13,R13:R12
  1163. ANDQ DX,R12
  1164. ADDQ R11,R12
  1165. SHLQ $13,R15:R14
  1166. ANDQ DX,R14
  1167. ADDQ R13,R14
  1168. IMUL3Q $19,R15,CX
  1169. ADDQ CX,SI
  1170. MOVQ SI,CX
  1171. SHRQ $51,CX
  1172. ADDQ R8,CX
  1173. MOVQ CX,R8
  1174. SHRQ $51,CX
  1175. ANDQ DX,SI
  1176. ADDQ R10,CX
  1177. MOVQ CX,R9
  1178. SHRQ $51,CX
  1179. ANDQ DX,R8
  1180. ADDQ R12,CX
  1181. MOVQ CX,AX
  1182. SHRQ $51,CX
  1183. ANDQ DX,R9
  1184. ADDQ R14,CX
  1185. MOVQ CX,R10
  1186. SHRQ $51,CX
  1187. ANDQ DX,AX
  1188. IMUL3Q $19,CX,CX
  1189. ADDQ CX,SI
  1190. ANDQ DX,R10
  1191. MOVQ SI,40(DI)
  1192. MOVQ R8,48(DI)
  1193. MOVQ R9,56(DI)
  1194. MOVQ AX,64(DI)
  1195. MOVQ R10,72(DI)
  1196. MOVQ 216(SP),AX
  1197. MULQ ·_121666_213(SB)
  1198. SHRQ $13,AX
  1199. MOVQ AX,SI
  1200. MOVQ DX,CX
  1201. MOVQ 224(SP),AX
  1202. MULQ ·_121666_213(SB)
  1203. SHRQ $13,AX
  1204. ADDQ AX,CX
  1205. MOVQ DX,R8
  1206. MOVQ 232(SP),AX
  1207. MULQ ·_121666_213(SB)
  1208. SHRQ $13,AX
  1209. ADDQ AX,R8
  1210. MOVQ DX,R9
  1211. MOVQ 240(SP),AX
  1212. MULQ ·_121666_213(SB)
  1213. SHRQ $13,AX
  1214. ADDQ AX,R9
  1215. MOVQ DX,R10
  1216. MOVQ 248(SP),AX
  1217. MULQ ·_121666_213(SB)
  1218. SHRQ $13,AX
  1219. ADDQ AX,R10
  1220. IMUL3Q $19,DX,DX
  1221. ADDQ DX,SI
  1222. ADDQ 136(SP),SI
  1223. ADDQ 144(SP),CX
  1224. ADDQ 152(SP),R8
  1225. ADDQ 160(SP),R9
  1226. ADDQ 168(SP),R10
  1227. MOVQ SI,80(DI)
  1228. MOVQ CX,88(DI)
  1229. MOVQ R8,96(DI)
  1230. MOVQ R9,104(DI)
  1231. MOVQ R10,112(DI)
  1232. MOVQ 104(DI),SI
  1233. IMUL3Q $19,SI,AX
  1234. MOVQ AX,56(SP)
  1235. MULQ 232(SP)
  1236. MOVQ AX,SI
  1237. MOVQ DX,CX
  1238. MOVQ 112(DI),DX
  1239. IMUL3Q $19,DX,AX
  1240. MOVQ AX,64(SP)
  1241. MULQ 224(SP)
  1242. ADDQ AX,SI
  1243. ADCQ DX,CX
  1244. MOVQ 80(DI),AX
  1245. MULQ 216(SP)
  1246. ADDQ AX,SI
  1247. ADCQ DX,CX
  1248. MOVQ 80(DI),AX
  1249. MULQ 224(SP)
  1250. MOVQ AX,R8
  1251. MOVQ DX,R9
  1252. MOVQ 80(DI),AX
  1253. MULQ 232(SP)
  1254. MOVQ AX,R10
  1255. MOVQ DX,R11
  1256. MOVQ 80(DI),AX
  1257. MULQ 240(SP)
  1258. MOVQ AX,R12
  1259. MOVQ DX,R13
  1260. MOVQ 80(DI),AX
  1261. MULQ 248(SP)
  1262. MOVQ AX,R14
  1263. MOVQ DX,R15
  1264. MOVQ 88(DI),AX
  1265. MULQ 216(SP)
  1266. ADDQ AX,R8
  1267. ADCQ DX,R9
  1268. MOVQ 88(DI),AX
  1269. MULQ 224(SP)
  1270. ADDQ AX,R10
  1271. ADCQ DX,R11
  1272. MOVQ 88(DI),AX
  1273. MULQ 232(SP)
  1274. ADDQ AX,R12
  1275. ADCQ DX,R13
  1276. MOVQ 88(DI),AX
  1277. MULQ 240(SP)
  1278. ADDQ AX,R14
  1279. ADCQ DX,R15
  1280. MOVQ 88(DI),DX
  1281. IMUL3Q $19,DX,AX
  1282. MULQ 248(SP)
  1283. ADDQ AX,SI
  1284. ADCQ DX,CX
  1285. MOVQ 96(DI),AX
  1286. MULQ 216(SP)
  1287. ADDQ AX,R10
  1288. ADCQ DX,R11
  1289. MOVQ 96(DI),AX
  1290. MULQ 224(SP)
  1291. ADDQ AX,R12
  1292. ADCQ DX,R13
  1293. MOVQ 96(DI),AX
  1294. MULQ 232(SP)
  1295. ADDQ AX,R14
  1296. ADCQ DX,R15
  1297. MOVQ 96(DI),DX
  1298. IMUL3Q $19,DX,AX
  1299. MULQ 240(SP)
  1300. ADDQ AX,SI
  1301. ADCQ DX,CX
  1302. MOVQ 96(DI),DX
  1303. IMUL3Q $19,DX,AX
  1304. MULQ 248(SP)
  1305. ADDQ AX,R8
  1306. ADCQ DX,R9
  1307. MOVQ 104(DI),AX
  1308. MULQ 216(SP)
  1309. ADDQ AX,R12
  1310. ADCQ DX,R13
  1311. MOVQ 104(DI),AX
  1312. MULQ 224(SP)
  1313. ADDQ AX,R14
  1314. ADCQ DX,R15
  1315. MOVQ 56(SP),AX
  1316. MULQ 240(SP)
  1317. ADDQ AX,R8
  1318. ADCQ DX,R9
  1319. MOVQ 56(SP),AX
  1320. MULQ 248(SP)
  1321. ADDQ AX,R10
  1322. ADCQ DX,R11
  1323. MOVQ 112(DI),AX
  1324. MULQ 216(SP)
  1325. ADDQ AX,R14
  1326. ADCQ DX,R15
  1327. MOVQ 64(SP),AX
  1328. MULQ 232(SP)
  1329. ADDQ AX,R8
  1330. ADCQ DX,R9
  1331. MOVQ 64(SP),AX
  1332. MULQ 240(SP)
  1333. ADDQ AX,R10
  1334. ADCQ DX,R11
  1335. MOVQ 64(SP),AX
  1336. MULQ 248(SP)
  1337. ADDQ AX,R12
  1338. ADCQ DX,R13
  1339. MOVQ ·REDMASK51(SB),DX
  1340. SHLQ $13,CX:SI
  1341. ANDQ DX,SI
  1342. SHLQ $13,R9:R8
  1343. ANDQ DX,R8
  1344. ADDQ CX,R8
  1345. SHLQ $13,R11:R10
  1346. ANDQ DX,R10
  1347. ADDQ R9,R10
  1348. SHLQ $13,R13:R12
  1349. ANDQ DX,R12
  1350. ADDQ R11,R12
  1351. SHLQ $13,R15:R14
  1352. ANDQ DX,R14
  1353. ADDQ R13,R14
  1354. IMUL3Q $19,R15,CX
  1355. ADDQ CX,SI
  1356. MOVQ SI,CX
  1357. SHRQ $51,CX
  1358. ADDQ R8,CX
  1359. MOVQ CX,R8
  1360. SHRQ $51,CX
  1361. ANDQ DX,SI
  1362. ADDQ R10,CX
  1363. MOVQ CX,R9
  1364. SHRQ $51,CX
  1365. ANDQ DX,R8
  1366. ADDQ R12,CX
  1367. MOVQ CX,AX
  1368. SHRQ $51,CX
  1369. ANDQ DX,R9
  1370. ADDQ R14,CX
  1371. MOVQ CX,R10
  1372. SHRQ $51,CX
  1373. ANDQ DX,AX
  1374. IMUL3Q $19,CX,CX
  1375. ADDQ CX,SI
  1376. ANDQ DX,R10
  1377. MOVQ SI,80(DI)
  1378. MOVQ R8,88(DI)
  1379. MOVQ R9,96(DI)
  1380. MOVQ AX,104(DI)
  1381. MOVQ R10,112(DI)
  1382. MOVQ 0(SP),R11
  1383. MOVQ 8(SP),R12
  1384. MOVQ 16(SP),R13
  1385. MOVQ 24(SP),R14
  1386. MOVQ 32(SP),R15
  1387. MOVQ 40(SP),BX
  1388. MOVQ 48(SP),BP
  1389. MOVQ R11,SP
  1390. MOVQ DI,AX
  1391. MOVQ SI,DX
  1392. RET