1
0

ladderstep_amd64.s 19 KB

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