small-prog.asm 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381
  1. ; FPMUL_R e0, a2
  2. mulpd xmm4, xmm10
  3. ; IADD_RC r2, r5, -1621224194
  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. ; FPMUL_R e2, a2
  10. mulpd xmm6, xmm10
  11. ; IMUL_R r6, r3
  12. imul r14, r11
  13. ; FPSUB_M f1, L1[r4]
  14. mov eax, r12d
  15. and eax, 16376
  16. cvtdq2pd xmm12, qword ptr [rsi+rax]
  17. subpd xmm1, xmm12
  18. ; IROL_R r5, r3
  19. mov ecx, r11d
  20. rol r13, cl
  21. ; FPMUL_R e2, a0
  22. mulpd xmm6, xmm8
  23. ; FPSUB_R f3, a0
  24. subpd xmm3, xmm8
  25. ; IXOR_R r0, r4
  26. xor r8, r12
  27. ; ISMULH_M r3, L1[r7]
  28. mov ecx, r15d
  29. and ecx, 16376
  30. mov rax, r11
  31. imul qword ptr [rsi+rcx]
  32. mov r11, rdx
  33. ; FPSWAP_R f2
  34. shufpd xmm2, xmm2, 1
  35. ; IDIV_C r6, 1248528248
  36. mov rax, 15864311168205210203
  37. mul r14
  38. shr rdx, 30
  39. add r14, rdx
  40. ; FPMUL_R e0, a2
  41. mulpd xmm4, xmm10
  42. ; IADD_RC r3, r4, -52260428
  43. lea r11, [r11+r12-52260428]
  44. ; IADD_R r7, -1138617760
  45. add r15, -1138617760
  46. ; IROL_R r2, r6
  47. mov ecx, r14d
  48. rol r10, cl
  49. ; FPNEG_R f2
  50. xorps xmm2, xmm15
  51. ; IROR_R r7, r1
  52. mov ecx, r9d
  53. ror r15, cl
  54. ; COND_R r2, lt(r7, -41618808)
  55. xor ecx, ecx
  56. cmp r15d, -41618808
  57. setl cl
  58. add r10, rcx
  59. ; FPMUL_R e3, a0
  60. mulpd xmm7, xmm8
  61. ; CFROUND r1, 43
  62. mov rax, r9
  63. rol rax, 34
  64. and eax, 24576
  65. or eax, 40896
  66. mov dword ptr [rsp-8], eax
  67. ldmxcsr dword ptr [rsp-8]
  68. ; FPADD_R f2, a1
  69. addpd xmm2, xmm9
  70. ; FPSUB_M f0, L1[r7]
  71. mov eax, r15d
  72. and eax, 16376
  73. cvtdq2pd xmm12, qword ptr [rsi+rax]
  74. subpd xmm0, xmm12
  75. ; ISTORE L1[r6], r2
  76. mov eax, r14d
  77. and eax, 16376
  78. mov qword ptr [rsi+rax], r10
  79. ; ISUB_R r6, r5
  80. sub r14, r13
  81. ; IADD_M r0, L1[r4]
  82. mov eax, r12d
  83. and eax, 16376
  84. add r8, qword ptr [rsi+rax]
  85. ; ISTORE L1[r4], r3
  86. mov eax, r12d
  87. and eax, 16376
  88. mov qword ptr [rsi+rax], r11
  89. ; ISTORE L1[r6], r6
  90. mov eax, r14d
  91. and eax, 16376
  92. mov qword ptr [rsi+rax], r14
  93. ; FPSQRT_R e0
  94. sqrtpd xmm4, xmm4
  95. ; IXOR_R r2, r5
  96. xor r10, r13
  97. ; FPSQRT_R e1
  98. sqrtpd xmm5, xmm5
  99. ; FPMUL_R e1, a3
  100. mulpd xmm5, xmm11
  101. ; IMULH_R r7, r6
  102. mov rax, r15
  103. mul r14
  104. mov r15, rdx
  105. ; ISDIV_C r0, -1706892622
  106. mov rax, -5802075764249827661
  107. imul r8
  108. xor eax, eax
  109. sar rdx, 29
  110. sets al
  111. add rdx, rax
  112. add r8, rdx
  113. ; IMUL_R r5, r3
  114. imul r13, r11
  115. ; FPSQRT_R e2
  116. sqrtpd xmm6, xmm6
  117. ; FPADD_M f3, L1[r4]
  118. mov eax, r12d
  119. and eax, 16376
  120. cvtdq2pd xmm12, qword ptr [rsi+rax]
  121. addpd xmm3, xmm12
  122. ; IADD_R r3, r2
  123. add r11, r10
  124. ; FPADD_R f1, a0
  125. addpd xmm1, xmm8
  126. ; FPDIV_R e3, a2
  127. divpd xmm7, xmm10
  128. maxpd xmm7, xmm13
  129. ; FPSUB_R f0, a1
  130. subpd xmm0, xmm9
  131. ; IMUL_M r5, L1[r6]
  132. mov eax, r14d
  133. and eax, 16376
  134. imul r13, qword ptr [rsi+rax]
  135. ; IADD_RC r1, r2, -1263285243
  136. lea r9, [r9+r10-1263285243]
  137. ; IMUL_9C r4, 1994773931
  138. lea r12, [r12+r12*8+1994773931]
  139. ; FPSWAP_R e3
  140. shufpd xmm7, xmm7, 1
  141. ; IMUL_M r0, L1[r7]
  142. mov eax, r15d
  143. and eax, 16376
  144. imul r8, qword ptr [rsi+rax]
  145. ; IROR_R r1, r6
  146. mov ecx, r14d
  147. ror r9, cl
  148. ; IROL_R r2, r4
  149. mov ecx, r12d
  150. rol r10, cl
  151. ; FPSUB_R f3, a1
  152. subpd xmm3, xmm9
  153. ; ISTORE L1[r0], r5
  154. mov eax, r8d
  155. and eax, 16376
  156. mov qword ptr [rsi+rax], r13
  157. ; FPDIV_M e2, L2[r3]
  158. mov eax, r11d
  159. and eax, 262136
  160. cvtdq2pd xmm12, qword ptr [rsi+rax]
  161. divpd xmm6, xmm12
  162. maxpd xmm6, xmm13
  163. ; FPSWAP_R f2
  164. shufpd xmm2, xmm2, 1
  165. ; IADD_R r7, r5
  166. add r15, r13
  167. ; FPDIV_M e0, L1[r4]
  168. mov eax, r12d
  169. and eax, 16376
  170. cvtdq2pd xmm12, qword ptr [rsi+rax]
  171. divpd xmm4, xmm12
  172. maxpd xmm4, xmm13
  173. ; FPADD_M f3, L1[r5]
  174. mov eax, r13d
  175. and eax, 16376
  176. cvtdq2pd xmm12, qword ptr [rsi+rax]
  177. addpd xmm3, xmm12
  178. ; FPADD_R f0, a3
  179. addpd xmm0, xmm11
  180. ; IADD_R r2, r0
  181. add r10, r8
  182. ; ISTORE L1[r3], r6
  183. mov eax, r11d
  184. and eax, 16376
  185. mov qword ptr [rsi+rax], r14
  186. ; IROR_R r1, r7
  187. mov ecx, r15d
  188. ror r9, cl
  189. ; IMUL_9C r5, 301671287
  190. lea r13, [r13+r13*8+301671287]
  191. ; IXOR_R r7, 266992378
  192. xor r15, 266992378
  193. ; FPSQRT_R e3
  194. sqrtpd xmm7, xmm7
  195. ; IMUL_M r2, L2[r0]
  196. mov eax, r8d
  197. and eax, 262136
  198. imul r10, qword ptr [rsi+rax]
  199. ; FPMUL_R e3, a2
  200. mulpd xmm7, xmm10
  201. ; IMUL_R r0, r6
  202. imul r8, r14
  203. ; ISTORE L1[r0], r7
  204. mov eax, r8d
  205. and eax, 16376
  206. mov qword ptr [rsi+rax], r15
  207. ; FPNEG_R f0
  208. xorps xmm0, xmm15
  209. ; FPADD_M f3, L1[r5]
  210. mov eax, r13d
  211. and eax, 16376
  212. cvtdq2pd xmm12, qword ptr [rsi+rax]
  213. addpd xmm3, xmm12
  214. ; IROR_R r5, r4
  215. mov ecx, r12d
  216. ror r13, cl
  217. ; ISTORE L2[r7], r2
  218. mov eax, r15d
  219. and eax, 262136
  220. mov qword ptr [rsi+rax], r10
  221. ; FPADD_R f2, a3
  222. addpd xmm2, xmm11
  223. ; FPADD_M f3, L1[r2]
  224. mov eax, r10d
  225. and eax, 16376
  226. cvtdq2pd xmm12, qword ptr [rsi+rax]
  227. addpd xmm3, xmm12
  228. ; ISDIV_C r5, -2076168315
  229. mov rax, -4770095103914078469
  230. imul r13
  231. xor eax, eax
  232. sar rdx, 29
  233. sets al
  234. add rdx, rax
  235. add r13, rdx
  236. ; IADD_RC r0, r4, -1321374359
  237. lea r8, [r8+r12-1321374359]
  238. ; CFROUND r6, 28
  239. mov rax, r14
  240. rol rax, 49
  241. and eax, 24576
  242. or eax, 40896
  243. mov dword ptr [rsp-8], eax
  244. ldmxcsr dword ptr [rsp-8]
  245. ; FPADD_R f2, a2
  246. addpd xmm2, xmm10
  247. ; IROL_R r7, r6
  248. mov ecx, r14d
  249. rol r15, cl
  250. ; ISUB_R r2, r4
  251. sub r10, r12
  252. ; ISMULH_R r0, -1500893068
  253. mov rax, -1500893068
  254. imul r8
  255. add r8, rdx
  256. ; IADD_R r2, r3
  257. add r10, r11
  258. ; FPSQRT_R e2
  259. sqrtpd xmm6, xmm6
  260. ; IROL_R r7, r4
  261. mov ecx, r12d
  262. rol r15, cl
  263. ; IMUL_R r4, r2
  264. imul r12, r10
  265. ; ISUB_R r3, r7
  266. sub r11, r15
  267. ; IADD_R r2, r7
  268. add r10, r15
  269. ; FPDIV_R e3, a0
  270. divpd xmm7, xmm8
  271. maxpd xmm7, xmm13
  272. ; ISUB_R r6, 540663146
  273. sub r14, 540663146
  274. ; IROL_R r5, 58
  275. rol r13, 58
  276. ; FPADD_R f2, a1
  277. addpd xmm2, xmm9
  278. ; FPADD_R f2, a2
  279. addpd xmm2, xmm10
  280. ; FPDIV_R e1, a2
  281. divpd xmm5, xmm10
  282. maxpd xmm5, xmm13
  283. ; FPADD_R f1, a2
  284. addpd xmm1, xmm10
  285. ; IADD_R r5, r3
  286. add r13, r11
  287. ; IADD_R r7, -1780268176
  288. add r15, -1780268176
  289. ; ISUB_R r7, r0
  290. sub r15, r8
  291. ; ISTORE L2[r0], r7
  292. mov eax, r8d
  293. and eax, 262136
  294. mov qword ptr [rsi+rax], r15
  295. ; INEG_R r2
  296. neg r10
  297. ; FPNEG_R f0
  298. xorps xmm0, xmm15
  299. ; INEG_R r2
  300. neg r10
  301. ; IADD_R r0, r3
  302. add r8, r11
  303. ; IMUL_9C r7, -2124093035
  304. lea r15, [r15+r15*8-2124093035]
  305. ; FPADD_M f2, L1[r0]
  306. mov eax, r8d
  307. and eax, 16376
  308. cvtdq2pd xmm12, qword ptr [rsi+rax]
  309. addpd xmm2, xmm12
  310. ; FPMUL_M e0, L1[r6]
  311. mov eax, r14d
  312. and eax, 16376
  313. cvtdq2pd xmm12, qword ptr [rsi+rax]
  314. mulpd xmm4, xmm12
  315. maxpd xmm4, xmm13
  316. ; FPSUB_R f2, a3
  317. subpd xmm2, xmm11
  318. ; IMUL_R r1, r2
  319. imul r9, r10
  320. ; IDIV_C r7, 3214009572
  321. mov rax, 12325439725582798855
  322. mul r15
  323. shr rdx, 31
  324. add r15, rdx
  325. ; IMULH_R r3, r2
  326. mov rax, r11
  327. mul r10
  328. mov r11, rdx
  329. ; IROR_R r1, r0
  330. mov ecx, r8d
  331. ror r9, cl
  332. ; FPMUL_R e0, a1
  333. mulpd xmm4, xmm9
  334. ; IADD_RC r4, r4, 1456841848
  335. lea r12, [r12+r12+1456841848]
  336. ; IROR_R r3, r2
  337. mov ecx, r10d
  338. ror r11, cl
  339. ; COND_M r0, of(L1[r4], 1678513610)
  340. xor ecx, ecx
  341. mov eax, r12d
  342. and eax, 16376
  343. cmp dword ptr [rsi+rax], 1678513610
  344. seto cl
  345. add r8, rcx
  346. ; INEG_R r4
  347. neg r12
  348. ; IMUL_R r4, r1
  349. imul r12, r9
  350. ; FPADD_R f1, a2
  351. addpd xmm1, xmm10
  352. ; FPSUB_R f2, a0
  353. subpd xmm2, xmm8
  354. ; FPMUL_R e1, a2
  355. mulpd xmm5, xmm10
  356. ; FPSUB_R f0, a3
  357. subpd xmm0, xmm11
  358. ; IROR_R r0, r7
  359. mov ecx, r15d
  360. ror r8, cl
  361. ; ISTORE L2[r1], r4
  362. mov eax, r9d
  363. and eax, 262136
  364. mov qword ptr [rsi+rax], r12
  365. ; IROL_R r7, r6
  366. mov ecx, r14d
  367. rol r15, cl
  368. ; IMUL_9C r2, 266593902
  369. lea r10, [r10+r10*8+266593902]
  370. ; IMUL_R r4, r6
  371. imul r12, r14
  372. ; FPSUB_R f2, a2
  373. subpd xmm2, xmm10
  374. ; FPNEG_R f3
  375. xorps xmm3, xmm15
  376. ; IROR_R r7, r2
  377. mov ecx, r10d
  378. ror r15, cl
  379. ; IROR_R r0, r5
  380. mov ecx, r13d
  381. ror r8, cl