/security/nss/lib/freebl/mpi/mp_comba_amd64_sun.s

http://github.com/zpao/v8monkey · Assembly · 16097 lines · 13931 code · 2151 blank · 15 comment · 0 complexity · af8ffb27c8dbf5075e5a81590f0d258d MD5 · raw file

Large files are truncated click here to view the full file

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