program.inc 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736
  1. ; FMUL_R e0, a2
  2. mulpd xmm4, xmm10
  3. ; IADD_RC r2, r5, 2673743102
  4. lea r10, [r10+r13-1621224194]
  5. ; ISTORE L2[r2], r7
  6. mov eax, r10d
  7. and eax, 262136
  8. mov qword ptr [rsi+rax], r15
  9. ; FNEG_R f2
  10. xorps xmm2, xmm15
  11. ; IMUL_9C r6, 3291464084
  12. lea r14, [r14+r14*8-1003503212]
  13. ; FSUB_R f1, a0
  14. subpd xmm1, xmm8
  15. ; IXOR_M r5, L2[r3]
  16. mov eax, r11d
  17. and eax, 262136
  18. xor r13, qword ptr [rsi+rax]
  19. ; FNEG_R f2
  20. xorps xmm2, xmm15
  21. ; FSUB_R f3, a0
  22. subpd xmm3, xmm8
  23. ; ISDIV_C r0, 1400272688
  24. mov rax, 7072565507528518045
  25. imul r8
  26. xor eax, eax
  27. sar rdx, 29
  28. sets al
  29. add rdx, rax
  30. add r8, rdx
  31. ; IMUL_M r3, L1[r7]
  32. mov eax, r15d
  33. and eax, 16376
  34. imul r11, qword ptr [rsi+rax]
  35. ; ISWAP_R r2, r3
  36. xchg r10, r11
  37. ; IMULH_R r6, r0
  38. mov rax, r14
  39. mul r8
  40. mov r14, rdx
  41. ; FMUL_R e0, a2
  42. mulpd xmm4, xmm10
  43. ; IADD_RC r3, r4, 4242706868
  44. lea r11, [r11+r12-52260428]
  45. ; IADD_R r7, 3156349536
  46. add r15, -1138617760
  47. ; IXOR_M r2, L1[r6]
  48. mov eax, r14d
  49. and eax, 16376
  50. xor r10, qword ptr [rsi+rax]
  51. ; FSUB_M f2, L1[r5]
  52. mov eax, r13d
  53. and eax, 16376
  54. cvtdq2pd xmm12, qword ptr [rsi+rax]
  55. subpd xmm2, xmm12
  56. ; IXOR_R r7, r1
  57. xor r15, r9
  58. ; COND_R r2, lt(r7, 4253348488)
  59. xor ecx, ecx
  60. cmp r15d, -41618808
  61. setl cl
  62. add r10, rcx
  63. ; FMUL_R e3, a0
  64. mulpd xmm7, xmm8
  65. ; COND_R r4, sg(r1, 3333776931)
  66. xor ecx, ecx
  67. cmp r9d, -961190365
  68. sets cl
  69. add r12, rcx
  70. ; FADD_R f2, a1
  71. addpd xmm2, xmm9
  72. ; FSUB_R f0, a3
  73. subpd xmm0, xmm11
  74. ; ISTORE L1[r6], r2
  75. mov eax, r14d
  76. and eax, 16376
  77. mov qword ptr [rsi+rax], r10
  78. ; ISUB_R r6, r5
  79. sub r14, r13
  80. ; IADD_M r0, L1[r4]
  81. mov eax, r12d
  82. and eax, 16376
  83. add r8, qword ptr [rsi+rax]
  84. ; ISTORE L1[r4], r3
  85. mov eax, r12d
  86. and eax, 16376
  87. mov qword ptr [rsi+rax], r11
  88. ; COND_M r6, sg(L1[r6], 1048782623)
  89. xor ecx, ecx
  90. mov eax, r14d
  91. and eax, 16376
  92. cmp dword ptr [rsi+rax], 1048782623
  93. sets cl
  94. add r14, rcx
  95. ; FSQRT_R e0
  96. sqrtpd xmm4, xmm4
  97. ; INEG_R r2
  98. neg r10
  99. ; FSQRT_R e1
  100. sqrtpd xmm5, xmm5
  101. ; FMUL_R e1, a3
  102. mulpd xmm5, xmm11
  103. ; IMUL_R r7, r6
  104. imul r15, r14
  105. ; IMULH_R r0, r4
  106. mov rax, r8
  107. mul r12
  108. mov r8, rdx
  109. ; IMUL_R r5, r3
  110. imul r13, r11
  111. ; FSQRT_R e2
  112. sqrtpd xmm6, xmm6
  113. ; FADD_R f3, a0
  114. addpd xmm3, xmm8
  115. ; IADD_R r3, r2
  116. add r11, r10
  117. ; FADD_R f1, a0
  118. addpd xmm1, xmm8
  119. ; FMUL_R e3, a2
  120. mulpd xmm7, xmm10
  121. ; FADD_M f0, L2[r5]
  122. mov eax, r13d
  123. and eax, 262136
  124. cvtdq2pd xmm12, qword ptr [rsi+rax]
  125. addpd xmm0, xmm12
  126. ; IMUL_R r5, r6
  127. imul r13, r14
  128. ; IADD_RC r1, r2, 3031682053
  129. lea r9, [r9+r10-1263285243]
  130. ; ISUB_M r4, L1[r6]
  131. mov eax, r14d
  132. and eax, 16376
  133. sub r12, qword ptr [rsi+rax]
  134. ; FSWAP_R e3
  135. shufpd xmm7, xmm7, 1
  136. ; IMUL_R r0, r7
  137. imul r8, r15
  138. ; IXOR_R r1, r6
  139. xor r9, r14
  140. ; IXOR_M r2, L1[r4]
  141. mov eax, r12d
  142. and eax, 16376
  143. xor r10, qword ptr [rsi+rax]
  144. ; FSUB_R f3, a1
  145. subpd xmm3, xmm9
  146. ; ISTORE L1[r0], r5
  147. mov eax, r8d
  148. and eax, 16376
  149. mov qword ptr [rsi+rax], r13
  150. ; FDIV_M e2, L2[r3]
  151. mov eax, r11d
  152. and eax, 262136
  153. cvtdq2pd xmm12, qword ptr [rsi+rax]
  154. andps xmm12, xmm14
  155. divpd xmm6, xmm12
  156. maxpd xmm6, xmm13
  157. ; ISWAP_R r2, r0
  158. xchg r10, r8
  159. ; IADD_R r7, r5
  160. add r15, r13
  161. ; FDIV_M e0, L1[r4]
  162. mov eax, r12d
  163. and eax, 16376
  164. cvtdq2pd xmm12, qword ptr [rsi+rax]
  165. andps xmm12, xmm14
  166. divpd xmm4, xmm12
  167. maxpd xmm4, xmm13
  168. ; FADD_R f3, a1
  169. addpd xmm3, xmm9
  170. ; FADD_R f0, a3
  171. addpd xmm0, xmm11
  172. ; IADD_R r2, r0
  173. add r10, r8
  174. ; ISTORE L1[r3], r6
  175. mov eax, r11d
  176. and eax, 16376
  177. mov qword ptr [rsi+rax], r14
  178. ; IXOR_R r1, r7
  179. xor r9, r15
  180. ; ISUB_M r5, L2[r7]
  181. mov eax, r15d
  182. and eax, 262136
  183. sub r13, qword ptr [rsi+rax]
  184. ; ISDIV_C r7, 266992378
  185. mov rax, -9173520256920442565
  186. imul r15
  187. xor eax, eax
  188. add rdx, r15
  189. sar rdx, 27
  190. sets al
  191. add rdx, rax
  192. add r15, rdx
  193. ; FDIV_M e3, L1[r4]
  194. mov eax, r12d
  195. and eax, 16376
  196. cvtdq2pd xmm12, qword ptr [rsi+rax]
  197. andps xmm12, xmm14
  198. divpd xmm7, xmm12
  199. maxpd xmm7, xmm13
  200. ; IMUL_R r2, r0
  201. imul r10, r8
  202. ; FMUL_R e3, a2
  203. mulpd xmm7, xmm10
  204. ; IMUL_R r0, r6
  205. imul r8, r14
  206. ; ISTORE L1[r0], r7
  207. mov eax, r8d
  208. and eax, 16376
  209. mov qword ptr [rsi+rax], r15
  210. ; FSUB_M f0, L2[r1]
  211. mov eax, r9d
  212. and eax, 262136
  213. cvtdq2pd xmm12, qword ptr [rsi+rax]
  214. subpd xmm0, xmm12
  215. ; FADD_R f3, a1
  216. addpd xmm3, xmm9
  217. ; IXOR_R r5, r4
  218. xor r13, r12
  219. ; ISTORE L2[r7], r2
  220. mov eax, r15d
  221. and eax, 262136
  222. mov qword ptr [rsi+rax], r10
  223. ; FSWAP_R e2
  224. shufpd xmm6, xmm6, 1
  225. ; FADD_R f3, a2
  226. addpd xmm3, xmm10
  227. ; ISMULH_R r5, r0
  228. mov rax, r13
  229. imul r8
  230. mov r13, rdx
  231. ; IADD_M r0, L1[r4]
  232. mov eax, r12d
  233. and eax, 16376
  234. add r8, qword ptr [rsi+rax]
  235. ; COND_R r7, ge(r6, 2322068811)
  236. xor ecx, ecx
  237. cmp r14d, -1972898485
  238. setge cl
  239. add r15, rcx
  240. ; FADD_R f2, a2
  241. addpd xmm2, xmm10
  242. ; IROR_R r7, r6
  243. mov ecx, r14d
  244. ror r15, cl
  245. ; IADD_RC r2, r4, 4177509323
  246. lea r10, [r10+r12-117457973]
  247. ; IMUL_R r0, 2794074228
  248. imul r8, -1500893068
  249. ; IADD_R r2, r3
  250. add r10, r11
  251. ; FSQRT_R e2
  252. sqrtpd xmm6, xmm6
  253. ; IROR_R r7, r4
  254. mov ecx, r12d
  255. ror r15, cl
  256. ; IMUL_9C r4, 381194890
  257. lea r12, [r12+r12*8+381194890]
  258. ; IADD_RC r3, r7, 1050899263
  259. lea r11, [r11+r15+1050899263]
  260. ; IADD_R r2, r7
  261. add r10, r15
  262. ; FMUL_R e3, a0
  263. mulpd xmm7, xmm8
  264. ; IADD_RC r6, r6, 540663146
  265. lea r14, [r14+r14+540663146]
  266. ; IROR_R r5, 58
  267. ror r13, 58
  268. ; FADD_R f2, a1
  269. addpd xmm2, xmm9
  270. ; FADD_R f2, a2
  271. addpd xmm2, xmm10
  272. ; FMUL_R e1, a2
  273. mulpd xmm5, xmm10
  274. ; FSWAP_R e1
  275. shufpd xmm5, xmm5, 1
  276. ; IADD_R r5, r3
  277. add r13, r11
  278. ; IADD_R r7, 2514699120
  279. add r15, -1780268176
  280. ; IADD_RC r7, r0, 2797210442
  281. lea r15, [r15+r8-1497756854]
  282. ; ISTORE L2[r0], r7
  283. mov eax, r8d
  284. and eax, 262136
  285. mov qword ptr [rsi+rax], r15
  286. ; ISMULH_R r2, r4
  287. mov rax, r10
  288. imul r12
  289. mov r10, rdx
  290. ; FSUB_M f0, L1[r2]
  291. mov eax, r10d
  292. and eax, 16376
  293. cvtdq2pd xmm12, qword ptr [rsi+rax]
  294. subpd xmm0, xmm12
  295. ; ISMULH_R r2, r3
  296. mov rax, r10
  297. imul r11
  298. mov r10, rdx
  299. ; IADD_R r0, r3
  300. add r8, r11
  301. ; ISUB_R r7, r2
  302. sub r15, r10
  303. ; FADD_R f2, a0
  304. addpd xmm2, xmm8
  305. ; FMUL_R e0, a2
  306. mulpd xmm4, xmm10
  307. ; FADD_M f2, L1[r3]
  308. mov eax, r11d
  309. and eax, 16376
  310. cvtdq2pd xmm12, qword ptr [rsi+rax]
  311. addpd xmm2, xmm12
  312. ; IMUL_R r1, r2
  313. imul r9, r10
  314. ; IMUL_M r7, L1[r5]
  315. mov eax, r13d
  316. and eax, 16376
  317. imul r15, qword ptr [rsi+rax]
  318. ; IMUL_R r3, r2
  319. imul r11, r10
  320. ; IXOR_R r1, r0
  321. xor r9, r8
  322. ; FNEG_R f0
  323. xorps xmm0, xmm15
  324. ; IADD_RC r4, r4, 1456841848
  325. lea r12, [r12+r12+1456841848]
  326. ; IXOR_R r3, r2
  327. xor r11, r10
  328. ; COND_R r0, of(r4, 1678513610)
  329. xor ecx, ecx
  330. cmp r12d, 1678513610
  331. seto cl
  332. add r8, rcx
  333. ; ISMULH_R r4, r4
  334. mov rax, r12
  335. imul r12
  336. mov r12, rdx
  337. ; IMUL_R r4, r1
  338. imul r12, r9
  339. ; FADD_R f1, a2
  340. addpd xmm1, xmm10
  341. ; FSUB_R f2, a0
  342. subpd xmm2, xmm8
  343. ; FMUL_R e1, a2
  344. mulpd xmm5, xmm10
  345. ; FSUB_R f0, a3
  346. subpd xmm0, xmm11
  347. ; IXOR_R r0, r7
  348. xor r8, r15
  349. ; ISTORE L2[r1], r4
  350. mov eax, r9d
  351. and eax, 262136
  352. mov qword ptr [rsi+rax], r12
  353. ; IXOR_M r7, L1[r6]
  354. mov eax, r14d
  355. and eax, 16376
  356. xor r15, qword ptr [rsi+rax]
  357. ; ISUB_R r2, r4
  358. sub r10, r12
  359. ; ISUB_M r4, L1[r6]
  360. mov eax, r14d
  361. and eax, 16376
  362. sub r12, qword ptr [rsi+rax]
  363. ; FADD_R f2, a2
  364. addpd xmm2, xmm10
  365. ; FSUB_M f3, L2[r4]
  366. mov eax, r12d
  367. and eax, 262136
  368. cvtdq2pd xmm12, qword ptr [rsi+rax]
  369. subpd xmm3, xmm12
  370. ; IXOR_R r7, r2
  371. xor r15, r10
  372. ; IXOR_R r0, r5
  373. xor r8, r13
  374. ; FADD_R f1, a2
  375. addpd xmm1, xmm10
  376. ; FMUL_R e3, a2
  377. mulpd xmm7, xmm10
  378. ; FSWAP_R e3
  379. shufpd xmm7, xmm7, 1
  380. ; FSWAP_R f1
  381. shufpd xmm1, xmm1, 1
  382. ; COND_R r2, ge(r2, 4068636356)
  383. xor ecx, ecx
  384. cmp r10d, -226330940
  385. setge cl
  386. add r10, rcx
  387. ; FMUL_R e2, a3
  388. mulpd xmm6, xmm11
  389. ; FSUB_M f2, L2[r1]
  390. mov eax, r9d
  391. and eax, 262136
  392. cvtdq2pd xmm12, qword ptr [rsi+rax]
  393. subpd xmm2, xmm12
  394. ; FADD_R f1, a0
  395. addpd xmm1, xmm8
  396. ; ISUB_R r7, r5
  397. sub r15, r13
  398. ; ISUB_M r0, L1[r1]
  399. mov eax, r9d
  400. and eax, 16376
  401. sub r8, qword ptr [rsi+rax]
  402. ; FSUB_R f3, a1
  403. subpd xmm3, xmm9
  404. ; ISWAP_R r3, r5
  405. xchg r11, r13
  406. ; IADD_RC r5, r2, 795784298
  407. lea r13, [r13+r10+795784298]
  408. ; IADD_RC r0, r4, 2244788743
  409. lea r8, [r8+r12-2050178553]
  410. ; IMUL_9C r5, 1062534001
  411. lea r13, [r13+r13*8+1062534001]
  412. ; FADD_R f0, a2
  413. addpd xmm0, xmm10
  414. ; FMUL_R e3, a1
  415. mulpd xmm7, xmm9
  416. ; IDIV_C r3, 1662492575
  417. mov rax, 11914062610815620875
  418. mul r11
  419. shr rdx, 30
  420. add r11, rdx
  421. ; IMUL_M r5, L1[r0]
  422. mov eax, r8d
  423. and eax, 16376
  424. imul r13, qword ptr [rsi+rax]
  425. ; IDIV_C r4, 1963597892
  426. mov rax, r12
  427. shr rax, 2
  428. mov rcx, 1260889558222626443
  429. mul rcx
  430. shr rdx, 25
  431. add r12, rdx
  432. ; IMUL_9C r7, 1820045218
  433. lea r15, [r15+r15*8+1820045218]
  434. ; IMUL_M r0, L1[r3]
  435. mov eax, r11d
  436. and eax, 16376
  437. imul r8, qword ptr [rsi+rax]
  438. ; IXOR_R r3, r7
  439. xor r11, r15
  440. ; ISMULH_R r4, r2
  441. mov rax, r12
  442. imul r10
  443. mov r12, rdx
  444. ; ISWAP_R r3, r0
  445. xchg r11, r8
  446. ; IXOR_R r2, r0
  447. xor r10, r8
  448. ; IXOR_M r0, L2[r1]
  449. mov eax, r9d
  450. and eax, 262136
  451. xor r8, qword ptr [rsi+rax]
  452. ; ISDIV_C r7, 3359520316
  453. mov rax, 7859804860668271393
  454. imul r15
  455. xor eax, eax
  456. sub rdx, r15
  457. sar rdx, 29
  458. sets al
  459. add rdx, rax
  460. add r15, rdx
  461. ; IMUL_M r6, L1[r2]
  462. mov eax, r10d
  463. and eax, 16376
  464. imul r14, qword ptr [rsi+rax]
  465. ; FNEG_R f3
  466. xorps xmm3, xmm15
  467. ; IADD_RC r4, r2, 1704868083
  468. lea r12, [r12+r10+1704868083]
  469. ; FADD_R f2, a0
  470. addpd xmm2, xmm8
  471. ; ISTORE L1[r0], r0
  472. mov eax, r8d
  473. and eax, 16376
  474. mov qword ptr [rsi+rax], r8
  475. ; FADD_M f0, L1[r7]
  476. mov eax, r15d
  477. and eax, 16376
  478. cvtdq2pd xmm12, qword ptr [rsi+rax]
  479. addpd xmm0, xmm12
  480. ; FMUL_R e0, a3
  481. mulpd xmm4, xmm11
  482. ; FSUB_R f3, a2
  483. subpd xmm3, xmm10
  484. ; IADD_RC r7, r7, 1302457878
  485. lea r15, [r15+r15+1302457878]
  486. ; ISUB_R r1, 1330165941
  487. sub r9, 1330165941
  488. ; FNEG_R f1
  489. xorps xmm1, xmm15
  490. ; IROR_R r0, r4
  491. mov ecx, r12d
  492. ror r8, cl
  493. ; FSUB_R f1, a0
  494. subpd xmm1, xmm8
  495. ; IROR_R r5, r6
  496. mov ecx, r14d
  497. ror r13, cl
  498. ; COND_R r0, ab(r1, 3984033425)
  499. xor ecx, ecx
  500. cmp r9d, -310933871
  501. seta cl
  502. add r8, rcx
  503. ; COND_R r4, ab(r7, 757929676)
  504. xor ecx, ecx
  505. cmp r15d, 757929676
  506. seta cl
  507. add r12, rcx
  508. ; FMUL_R e0, a1
  509. mulpd xmm4, xmm9
  510. ; IMUL_R r1, r3
  511. imul r9, r11
  512. ; ISUB_R r3, r2
  513. sub r11, r10
  514. ; FSUB_R f3, a2
  515. subpd xmm3, xmm10
  516. ; FDIV_M e1, L1[r4]
  517. mov eax, r12d
  518. and eax, 16376
  519. cvtdq2pd xmm12, qword ptr [rsi+rax]
  520. andps xmm12, xmm14
  521. divpd xmm5, xmm12
  522. maxpd xmm5, xmm13
  523. ; FSWAP_R f1
  524. shufpd xmm1, xmm1, 1
  525. ; IADD_R r7, 2873779272
  526. add r15, -1421188024
  527. ; FSUB_M f3, L2[r2]
  528. mov eax, r10d
  529. and eax, 262136
  530. cvtdq2pd xmm12, qword ptr [rsi+rax]
  531. subpd xmm3, xmm12
  532. ; FSUB_R f2, a3
  533. subpd xmm2, xmm11
  534. ; FSUB_R f3, a1
  535. subpd xmm3, xmm9
  536. ; FMUL_R e1, a3
  537. mulpd xmm5, xmm11
  538. ; IADD_RC r2, r4, 3977135268
  539. lea r10, [r10+r12-317832028]
  540. ; IMUL_M r4, L1[r5]
  541. mov eax, r13d
  542. and eax, 16376
  543. imul r12, qword ptr [rsi+rax]
  544. ; FDIV_M e1, L1[r7]
  545. mov eax, r15d
  546. and eax, 16376
  547. cvtdq2pd xmm12, qword ptr [rsi+rax]
  548. andps xmm12, xmm14
  549. divpd xmm5, xmm12
  550. maxpd xmm5, xmm13
  551. ; IADD_R r5, r2
  552. add r13, r10
  553. ; ISUB_R r4, 401020510
  554. sub r12, 401020510
  555. ; IROR_R r3, r0
  556. mov ecx, r8d
  557. ror r11, cl
  558. ; ISTORE L1[r7], r0
  559. mov eax, r15d
  560. and eax, 16376
  561. mov qword ptr [rsi+rax], r8
  562. ; FSUB_R f2, a1
  563. subpd xmm2, xmm9
  564. ; FMUL_R e3, a1
  565. mulpd xmm7, xmm9
  566. ; IMUL_9C r3, 720965215
  567. lea r11, [r11+r11*8+720965215]
  568. ; IMUL_9C r6, 74948046
  569. lea r14, [r14+r14*8+74948046]
  570. ; ISTORE L1[r7], r3
  571. mov eax, r15d
  572. and eax, 16376
  573. mov qword ptr [rsi+rax], r11
  574. ; IXOR_R r2, r6
  575. xor r10, r14
  576. ; FMUL_R e3, a1
  577. mulpd xmm7, xmm9
  578. ; ISUB_R r4, r1
  579. sub r12, r9
  580. ; ISUB_R r3, r0
  581. sub r11, r8
  582. ; ISWAP_R r7, r5
  583. xchg r15, r13
  584. ; IMUL_R r2, r6
  585. imul r10, r14
  586. ; COND_R r2, ge(r2, 2402809790)
  587. xor ecx, ecx
  588. cmp r10d, -1892157506
  589. setge cl
  590. add r10, rcx
  591. ; FADD_R f1, a3
  592. addpd xmm1, xmm11
  593. ; IADD_R r7, r0
  594. add r15, r8
  595. ; IDIV_C r1, 624867857
  596. mov rax, 15848983434401622933
  597. mul r9
  598. shr rdx, 29
  599. add r9, rdx
  600. ; FADD_R f0, a1
  601. addpd xmm0, xmm9
  602. ; IADD_RC r5, r7, 3817376178
  603. lea r13, [r13+r15-477591118]
  604. ; FSUB_R f0, a3
  605. subpd xmm0, xmm11
  606. ; ISUB_M r6, L1[r2]
  607. mov eax, r10d
  608. and eax, 16376
  609. sub r14, qword ptr [rsi+rax]
  610. ; FMUL_R e3, a1
  611. mulpd xmm7, xmm9
  612. ; IADD_R r0, r4
  613. add r8, r12
  614. ; FSUB_R f3, a1
  615. subpd xmm3, xmm9
  616. ; FSUB_M f2, L1[r4]
  617. mov eax, r12d
  618. and eax, 16376
  619. cvtdq2pd xmm12, qword ptr [rsi+rax]
  620. subpd xmm2, xmm12
  621. ; ISDIV_C r2, 3898255608
  622. mov rax, 5964731804029407733
  623. imul r10
  624. xor eax, eax
  625. sub rdx, r10
  626. sar rdx, 28
  627. sets al
  628. add rdx, rax
  629. add r10, rdx
  630. ; FNEG_R f2
  631. xorps xmm2, xmm15
  632. ; FSUB_R f3, a2
  633. subpd xmm3, xmm10
  634. ; FADD_R f1, a3
  635. addpd xmm1, xmm11
  636. ; IMUL_R r3, r2
  637. imul r11, r10
  638. ; FADD_M f0, L1[r3]
  639. mov eax, r11d
  640. and eax, 16376
  641. cvtdq2pd xmm12, qword ptr [rsi+rax]
  642. addpd xmm0, xmm12
  643. ; ISMULH_R r5, r2
  644. mov rax, r13
  645. imul r10
  646. mov r13, rdx
  647. ; IMULH_R r6, r2
  648. mov rax, r14
  649. mul r10
  650. mov r14, rdx
  651. ; FADD_M f3, L1[r3]
  652. mov eax, r11d
  653. and eax, 16376
  654. cvtdq2pd xmm12, qword ptr [rsi+rax]
  655. addpd xmm3, xmm12
  656. ; IMUL_R r6, r7
  657. imul r14, r15
  658. ; FSUB_R f0, a0
  659. subpd xmm0, xmm8
  660. ; FNEG_R f2
  661. xorps xmm2, xmm15
  662. ; ISUB_R r6, r4
  663. sub r14, r12
  664. ; FADD_R f1, a1
  665. addpd xmm1, xmm9
  666. ; IXOR_R r0, r5
  667. xor r8, r13
  668. ; FADD_R f2, a1
  669. addpd xmm2, xmm9
  670. ; ISWAP_R r7, r5
  671. xchg r15, r13
  672. ; FMUL_R e3, a2
  673. mulpd xmm7, xmm10
  674. ; IADD_RC r3, r6, 2977336568
  675. lea r11, [r11+r14-1317630728]
  676. ; IMUL_R r2, r3
  677. imul r10, r11
  678. ; IADD_RC r1, r4, 894105694
  679. lea r9, [r9+r12+894105694]
  680. ; IMUL_9C r7, 504293473
  681. lea r15, [r15+r15*8+504293473]
  682. ; FSUB_R f1, a0
  683. subpd xmm1, xmm8
  684. ; IMUL_R r7, r1
  685. imul r15, r9
  686. ; IXOR_R r2, r4
  687. xor r10, r12
  688. ; IADD_RC r0, r1, 392362094
  689. lea r8, [r8+r9+392362094]
  690. ; IDIV_C r4, 1645771433
  691. mov rax, 376097195048767223
  692. mul r12
  693. shr rdx, 25
  694. add r12, rdx
  695. ; ISUB_R r4, r3
  696. sub r12, r11
  697. ; ISUB_M r7, L1[r4]
  698. mov eax, r12d
  699. and eax, 16376
  700. sub r15, qword ptr [rsi+rax]
  701. ; IMUL_M r5, L1[r7]
  702. mov eax, r15d
  703. and eax, 16376
  704. imul r13, qword ptr [rsi+rax]
  705. ; IROR_R r1, r7
  706. mov ecx, r15d
  707. ror r9, cl
  708. ; INEG_R r4
  709. neg r12
  710. ; IMUL_R r3, 1863959234
  711. imul r11, 1863959234
  712. ; IROR_R r4, 59
  713. ror r12, 59
  714. ; IMUL_M r1, L3[363256]
  715. imul r9, qword ptr [rsi+363256]
  716. ; ISTORE L2[r6], r7
  717. mov eax, r14d
  718. and eax, 262136
  719. mov qword ptr [rsi+rax], r15
  720. ; ISTORE L1[r1], r5
  721. mov eax, r9d
  722. and eax, 16376
  723. mov qword ptr [rsi+rax], r13
  724. ; FNEG_R f0
  725. xorps xmm0, xmm15
  726. ; FSQRT_R e2
  727. sqrtpd xmm6, xmm6
  728. ; FMUL_R e0, a3
  729. mulpd xmm4, xmm11
  730. ; FMUL_R e3, a2
  731. mulpd xmm7, xmm10
  732. ; IROR_R r5, r2
  733. mov ecx, r10d
  734. ror r13, cl
  735. ; IADD_R r0, r4
  736. add r8, r12