program.inc 14 KB

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