program.asm 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985
  1. randomx_isn_0:
  2. ; ISMULH_R r0, r3
  3. mov rax, r8
  4. imul r11
  5. mov r8, rdx
  6. randomx_isn_1:
  7. ; IROR_R r0, r6
  8. mov ecx, r14d
  9. ror r8, cl
  10. randomx_isn_2:
  11. ; FADD_R f1, a2
  12. addpd xmm1, xmm10
  13. randomx_isn_3:
  14. ; IXOR_M r1, L1[r5+1954652011]
  15. lea eax, [r13d+1954652011]
  16. and eax, 16376
  17. xor r9, qword ptr [rsi+rax]
  18. randomx_isn_4:
  19. ; FMUL_R e2, a3
  20. mulpd xmm6, xmm11
  21. randomx_isn_5:
  22. ; FADD_M f0, L2[r0-772804104]
  23. lea eax, [r8d-772804104]
  24. and eax, 262136
  25. cvtdq2pd xmm12, qword ptr [rsi+rax]
  26. addpd xmm0, xmm12
  27. randomx_isn_6:
  28. ; IMUL_R r6, r4
  29. imul r14, r12
  30. randomx_isn_7:
  31. ; CBRANCH r5, 1674196118, COND 2
  32. add r13, 1674196118
  33. test r13, 261120
  34. jz randomx_isn_0
  35. randomx_isn_8:
  36. ; ISWAP_R r7, r6
  37. xchg r15, r14
  38. randomx_isn_9:
  39. ; ISTORE L1[r1-439821682], r3
  40. lea eax, [r9d-439821682]
  41. and eax, 16376
  42. mov qword ptr [rsi+rax], r11
  43. randomx_isn_10:
  44. ; IXOR_R r2, r4
  45. xor r10, r12
  46. randomx_isn_11:
  47. ; FADD_R f2, a1
  48. addpd xmm2, xmm9
  49. randomx_isn_12:
  50. ; IXOR_M r0, L1[r1+952699079]
  51. lea eax, [r9d+952699079]
  52. and eax, 16376
  53. xor r8, qword ptr [rsi+rax]
  54. randomx_isn_13:
  55. ; ISMULH_R r5, r2
  56. mov rax, r13
  57. imul r10
  58. mov r13, rdx
  59. randomx_isn_14:
  60. ; INEG_R r4
  61. neg r12
  62. randomx_isn_15:
  63. ; INEG_R r1
  64. neg r9
  65. randomx_isn_16:
  66. ; IMUL_M r3, L1[r2+620091535]
  67. lea eax, [r10d+620091535]
  68. and eax, 16376
  69. imul r11, qword ptr [rsi+rax]
  70. randomx_isn_17:
  71. ; FADD_R f1, a0
  72. addpd xmm1, xmm8
  73. randomx_isn_18:
  74. ; IMUL_RCP r5, 2611385784
  75. mov rax, 15169754503470242065
  76. imul r13, rax
  77. randomx_isn_19:
  78. ; IXOR_R r2, 922368940
  79. xor r10, 922368940
  80. randomx_isn_20:
  81. ; FADD_R f3, a1
  82. addpd xmm3, xmm9
  83. randomx_isn_21:
  84. ; IXOR_R r3, r6
  85. xor r11, r14
  86. randomx_isn_22:
  87. ; FSWAP_R e1
  88. shufpd xmm5, xmm5, 1
  89. randomx_isn_23:
  90. ; ISUB_R r0, r5
  91. sub r8, r13
  92. randomx_isn_24:
  93. ; ISTORE L1[r6-1574415460], r7
  94. lea eax, [r14d-1574415460]
  95. and eax, 16376
  96. mov qword ptr [rsi+rax], r15
  97. randomx_isn_25:
  98. ; FADD_M f3, L1[r3+1766115210]
  99. lea eax, [r11d+1766115210]
  100. and eax, 16376
  101. cvtdq2pd xmm12, qword ptr [rsi+rax]
  102. addpd xmm3, xmm12
  103. randomx_isn_26:
  104. ; FSCAL_R f1
  105. xorps xmm1, xmm15
  106. randomx_isn_27:
  107. ; CBRANCH r2, 1731738265, COND 6
  108. add r10, 1731746457
  109. test r10, 4177920
  110. jz randomx_isn_20
  111. randomx_isn_28:
  112. ; IXOR_R r4, r1
  113. xor r12, r9
  114. randomx_isn_29:
  115. ; CBRANCH r4, 1937048537, COND 3
  116. add r12, 1937050585
  117. test r12, 522240
  118. jz randomx_isn_29
  119. randomx_isn_30:
  120. ; ISWAP_R r3, r5
  121. xchg r11, r13
  122. randomx_isn_31:
  123. ; ISMULH_R r7, r5
  124. mov rax, r15
  125. imul r13
  126. mov r15, rdx
  127. randomx_isn_32:
  128. ; IMULH_M r6, L1[r2+1879111790]
  129. lea ecx, [r10d+1879111790]
  130. and ecx, 16376
  131. mov rax, r14
  132. mul qword ptr [rsi+rcx]
  133. mov r14, rdx
  134. randomx_isn_33:
  135. ; IMUL_R r5, r0
  136. imul r13, r8
  137. randomx_isn_34:
  138. ; ISWAP_R r5, r0
  139. xchg r13, r8
  140. randomx_isn_35:
  141. ; CBRANCH r4, 1174490916, COND 5
  142. add r12, 1174499108
  143. test r12, 2088960
  144. jz randomx_isn_30
  145. randomx_isn_36:
  146. ; CBRANCH r6, -1852457840, COND 8
  147. add r14, -1852490608
  148. test r14, 16711680
  149. jz randomx_isn_36
  150. randomx_isn_37:
  151. ; ISMULH_R r2, r0
  152. mov rax, r10
  153. imul r8
  154. mov r10, rdx
  155. randomx_isn_38:
  156. ; ISUB_R r2, r0
  157. sub r10, r8
  158. randomx_isn_39:
  159. ; ISTORE L1[r0-38118463], r5
  160. lea eax, [r8d-38118463]
  161. and eax, 16376
  162. mov qword ptr [rsi+rax], r13
  163. randomx_isn_40:
  164. ; IXOR_R r0, r1
  165. xor r8, r9
  166. randomx_isn_41:
  167. ; IMUL_R r6, r4
  168. imul r14, r12
  169. randomx_isn_42:
  170. ; ISUB_R r7, r5
  171. sub r15, r13
  172. randomx_isn_43:
  173. ; FDIV_M e0, L1[r2+1052956160]
  174. lea eax, [r10d+1052956160]
  175. and eax, 16376
  176. cvtdq2pd xmm12, qword ptr [rsi+rax]
  177. andps xmm12, xmm13
  178. orps xmm12, xmm14
  179. divpd xmm4, xmm12
  180. randomx_isn_44:
  181. ; CBRANCH r1, 1870241002, COND 11
  182. add r9, 1870241002
  183. test r9, 133693440
  184. jz randomx_isn_37
  185. randomx_isn_45:
  186. ; IXOR_R r1, r4
  187. xor r9, r12
  188. randomx_isn_46:
  189. ; FMUL_R e3, a1
  190. mulpd xmm7, xmm9
  191. randomx_isn_47:
  192. ; IXOR_M r0, L1[r2+839895331]
  193. lea eax, [r10d+839895331]
  194. and eax, 16376
  195. xor r8, qword ptr [rsi+rax]
  196. randomx_isn_48:
  197. ; CBRANCH r2, -2128896196, COND 6
  198. add r10, -2128879812
  199. test r10, 4177920
  200. jz randomx_isn_45
  201. randomx_isn_49:
  202. ; CFROUND r1, 13
  203. mov rax, r9
  204. and eax, 24576
  205. or eax, 40896
  206. push rax
  207. ldmxcsr dword ptr [rsp]
  208. pop rax
  209. randomx_isn_50:
  210. ; ISWAP_R r3, r1
  211. xchg r11, r9
  212. randomx_isn_51:
  213. ; IMUL_RCP r1, 4205062916
  214. mov rax, 9420568026795290117
  215. imul r9, rax
  216. randomx_isn_52:
  217. ; FSUB_R f0, a0
  218. subpd xmm0, xmm8
  219. randomx_isn_53:
  220. ; IMUL_R r7, r6
  221. imul r15, r14
  222. randomx_isn_54:
  223. ; IADD_RS r1, r2, SHFT 3
  224. lea r9, [r9+r10*8]
  225. randomx_isn_55:
  226. ; FSQRT_R e3
  227. sqrtpd xmm7, xmm7
  228. randomx_isn_56:
  229. ; FMUL_R e1, a0
  230. mulpd xmm5, xmm8
  231. randomx_isn_57:
  232. ; IMUL_RCP r3, 303101651
  233. mov rax, 16336962008634921950
  234. imul r11, rax
  235. randomx_isn_58:
  236. ; IMUL_RCP r1, 3375482677
  237. mov rax, 11735827153567160432
  238. imul r9, rax
  239. randomx_isn_59:
  240. ; CBRANCH r6, 2116776661, COND 12
  241. add r14, 2117300949
  242. test r14, 267386880
  243. jz randomx_isn_49
  244. randomx_isn_60:
  245. ; IMUL_R r3, r4
  246. imul r11, r12
  247. randomx_isn_61:
  248. ; FMUL_R e3, a0
  249. mulpd xmm7, xmm8
  250. randomx_isn_62:
  251. ; ISUB_R r3, 1514378938
  252. sub r11, 1514378938
  253. randomx_isn_63:
  254. ; FMUL_R e2, a0
  255. mulpd xmm6, xmm8
  256. randomx_isn_64:
  257. ; ISUB_R r4, r6
  258. sub r12, r14
  259. randomx_isn_65:
  260. ; FDIV_M e2, L1[r0+1496571595]
  261. lea eax, [r8d+1496571595]
  262. and eax, 16376
  263. cvtdq2pd xmm12, qword ptr [rsi+rax]
  264. andps xmm12, xmm13
  265. orps xmm12, xmm14
  266. divpd xmm6, xmm12
  267. randomx_isn_66:
  268. ; FSUB_R f0, a2
  269. subpd xmm0, xmm10
  270. randomx_isn_67:
  271. ; FDIV_M e3, L2[r7-2139079025]
  272. lea eax, [r15d-2139079025]
  273. and eax, 262136
  274. cvtdq2pd xmm12, qword ptr [rsi+rax]
  275. andps xmm12, xmm13
  276. orps xmm12, xmm14
  277. divpd xmm7, xmm12
  278. randomx_isn_68:
  279. ; FSUB_R f2, a2
  280. subpd xmm2, xmm10
  281. randomx_isn_69:
  282. ; CBRANCH r3, -1165095866, COND 7
  283. add r11, -1165063098
  284. test r11, 8355840
  285. jz randomx_isn_63
  286. randomx_isn_70:
  287. ; IMULH_R r0, r7
  288. mov rax, r8
  289. mul r15
  290. mov r8, rdx
  291. randomx_isn_71:
  292. ; FMUL_R e2, a0
  293. mulpd xmm6, xmm8
  294. randomx_isn_72:
  295. ; FMUL_R e0, a3
  296. mulpd xmm4, xmm11
  297. randomx_isn_73:
  298. ; IMUL_RCP r6, 1636610180
  299. mov rax, 12102479179596746977
  300. imul r14, rax
  301. randomx_isn_74:
  302. ; FMUL_R e2, a2
  303. mulpd xmm6, xmm10
  304. randomx_isn_75:
  305. ; ISTORE L2[r2+473418592], r3
  306. lea eax, [r10d+473418592]
  307. and eax, 262136
  308. mov qword ptr [rsi+rax], r11
  309. randomx_isn_76:
  310. ; IADD_M r1, L1[r3-989917936]
  311. lea eax, [r11d-989917936]
  312. and eax, 16376
  313. add r9, qword ptr [rsi+rax]
  314. randomx_isn_77:
  315. ; CBRANCH r2, 1519854177, COND 7
  316. add r10, 1519886945
  317. test r10, 8355840
  318. jz randomx_isn_70
  319. randomx_isn_78:
  320. ; IMUL_R r2, r6
  321. imul r10, r14
  322. randomx_isn_79:
  323. ; IMUL_R r4, r1
  324. imul r12, r9
  325. randomx_isn_80:
  326. ; FMUL_R e2, a1
  327. mulpd xmm6, xmm9
  328. randomx_isn_81:
  329. ; FSCAL_R f2
  330. xorps xmm2, xmm15
  331. randomx_isn_82:
  332. ; IXOR_M r2, L1[r1+192323103]
  333. lea eax, [r9d+192323103]
  334. and eax, 16376
  335. xor r10, qword ptr [rsi+rax]
  336. randomx_isn_83:
  337. ; IMUL_R r7, r4
  338. imul r15, r12
  339. randomx_isn_84:
  340. ; FADD_R f2, a0
  341. addpd xmm2, xmm8
  342. randomx_isn_85:
  343. ; FSUB_M f1, L2[r6-1549504487]
  344. lea eax, [r14d-1549504487]
  345. and eax, 262136
  346. cvtdq2pd xmm12, qword ptr [rsi+rax]
  347. subpd xmm1, xmm12
  348. randomx_isn_86:
  349. ; FSUB_R f0, a3
  350. subpd xmm0, xmm11
  351. randomx_isn_87:
  352. ; CFROUND r3, 31
  353. mov rax, r11
  354. rol rax, 46
  355. and eax, 24576
  356. or eax, 40896
  357. push rax
  358. ldmxcsr dword ptr [rsp]
  359. pop rax
  360. randomx_isn_88:
  361. ; IXOR_R r5, r6
  362. xor r13, r14
  363. randomx_isn_89:
  364. ; FADD_R f3, a2
  365. addpd xmm3, xmm10
  366. randomx_isn_90:
  367. ; FADD_R f3, a0
  368. addpd xmm3, xmm8
  369. randomx_isn_91:
  370. ; FSQRT_R e1
  371. sqrtpd xmm5, xmm5
  372. randomx_isn_92:
  373. ; ISUB_R r6, r2
  374. sub r14, r10
  375. randomx_isn_93:
  376. ; ISUB_R r0, r4
  377. sub r8, r12
  378. randomx_isn_94:
  379. ; FADD_R f1, a2
  380. addpd xmm1, xmm10
  381. randomx_isn_95:
  382. ; IMUL_R r1, r2
  383. imul r9, r10
  384. randomx_isn_96:
  385. ; FSCAL_R f1
  386. xorps xmm1, xmm15
  387. randomx_isn_97:
  388. ; ISTORE L1[r7-1901001017], r7
  389. lea eax, [r15d-1901001017]
  390. and eax, 16376
  391. mov qword ptr [rsi+rax], r15
  392. randomx_isn_98:
  393. ; FADD_R f1, a3
  394. addpd xmm1, xmm11
  395. randomx_isn_99:
  396. ; CBRANCH r2, -425599201, COND 9
  397. add r10, -425533665
  398. test r10, 33423360
  399. jz randomx_isn_83
  400. randomx_isn_100:
  401. ; IXOR_R r4, r6
  402. xor r12, r14
  403. randomx_isn_101:
  404. ; FMUL_R e0, a3
  405. mulpd xmm4, xmm11
  406. randomx_isn_102:
  407. ; FADD_M f0, L1[r0+1590646897]
  408. lea eax, [r8d+1590646897]
  409. and eax, 16376
  410. cvtdq2pd xmm12, qword ptr [rsi+rax]
  411. addpd xmm0, xmm12
  412. randomx_isn_103:
  413. ; FMUL_R e0, a1
  414. mulpd xmm4, xmm9
  415. randomx_isn_104:
  416. ; IMUL_R r4, r7
  417. imul r12, r15
  418. randomx_isn_105:
  419. ; ISUB_R r1, r0
  420. sub r9, r8
  421. randomx_isn_106:
  422. ; FSUB_R f1, a2
  423. subpd xmm1, xmm10
  424. randomx_isn_107:
  425. ; FMUL_R e1, a1
  426. mulpd xmm5, xmm9
  427. randomx_isn_108:
  428. ; FMUL_R e1, a2
  429. mulpd xmm5, xmm10
  430. randomx_isn_109:
  431. ; FADD_R f3, a2
  432. addpd xmm3, xmm10
  433. randomx_isn_110:
  434. ; IXOR_R r0, r3
  435. xor r8, r11
  436. randomx_isn_111:
  437. ; IMUL_R r0, 1421329412
  438. imul r8, 1421329412
  439. randomx_isn_112:
  440. ; FSUB_R f0, a2
  441. subpd xmm0, xmm10
  442. randomx_isn_113:
  443. ; IMUL_R r5, r4
  444. imul r13, r12
  445. randomx_isn_114:
  446. ; IADD_RS r7, r3, SHFT 2
  447. lea r15, [r15+r11*4]
  448. randomx_isn_115:
  449. ; FADD_R f3, a3
  450. addpd xmm3, xmm11
  451. randomx_isn_116:
  452. ; ISTORE L1[r3-160363922], r0
  453. lea eax, [r11d-160363922]
  454. and eax, 16376
  455. mov qword ptr [rsi+rax], r8
  456. randomx_isn_117:
  457. ; IMULH_R r0, r6
  458. mov rax, r8
  459. mul r14
  460. mov r8, rdx
  461. randomx_isn_118:
  462. ; FSWAP_R f2
  463. shufpd xmm2, xmm2, 1
  464. randomx_isn_119:
  465. ; FMUL_R e1, a0
  466. mulpd xmm5, xmm8
  467. randomx_isn_120:
  468. ; IROR_R r0, 12
  469. ror r8, 12
  470. randomx_isn_121:
  471. ; FADD_M f0, L1[r0+282806289]
  472. lea eax, [r8d+282806289]
  473. and eax, 16376
  474. cvtdq2pd xmm12, qword ptr [rsi+rax]
  475. addpd xmm0, xmm12
  476. randomx_isn_122:
  477. ; FADD_M f3, L1[r7+1601529113]
  478. lea eax, [r15d+1601529113]
  479. and eax, 16376
  480. cvtdq2pd xmm12, qword ptr [rsi+rax]
  481. addpd xmm3, xmm12
  482. randomx_isn_123:
  483. ; IMUL_RCP r2, 2522040806
  484. mov rax, 15707153176462985744
  485. imul r10, rax
  486. randomx_isn_124:
  487. ; ISUB_M r0, L1[r3+974906597]
  488. lea eax, [r11d+974906597]
  489. and eax, 16376
  490. sub r8, qword ptr [rsi+rax]
  491. randomx_isn_125:
  492. ; CBRANCH r2, 1508706439, COND 14
  493. add r10, 1506609287
  494. test r10, 1069547520
  495. jz randomx_isn_124
  496. randomx_isn_126:
  497. ; IXOR_R r4, r5
  498. xor r12, r13
  499. randomx_isn_127:
  500. ; IMUL_R r7, r2
  501. imul r15, r10
  502. randomx_isn_128:
  503. ; IROR_R r4, r0
  504. mov ecx, r8d
  505. ror r12, cl
  506. randomx_isn_129:
  507. ; CBRANCH r0, -497803311, COND 3
  508. add r8, -497804335
  509. test r8, 522240
  510. jz randomx_isn_126
  511. randomx_isn_130:
  512. ; FSUB_M f0, L1[r3+1789853646]
  513. lea eax, [r11d+1789853646]
  514. and eax, 16376
  515. cvtdq2pd xmm12, qword ptr [rsi+rax]
  516. subpd xmm0, xmm12
  517. randomx_isn_131:
  518. ; ISMULH_R r6, r3
  519. mov rax, r14
  520. imul r11
  521. mov r14, rdx
  522. randomx_isn_132:
  523. ; FMUL_R e0, a3
  524. mulpd xmm4, xmm11
  525. randomx_isn_133:
  526. ; FSUB_R f2, a1
  527. subpd xmm2, xmm9
  528. randomx_isn_134:
  529. ; CBRANCH r3, -1567551204, COND 11
  530. add r11, -1567026916
  531. test r11, 133693440
  532. jz randomx_isn_130
  533. randomx_isn_135:
  534. ; FSUB_M f2, L2[r5+1167508659]
  535. lea eax, [r13d+1167508659]
  536. and eax, 262136
  537. cvtdq2pd xmm12, qword ptr [rsi+rax]
  538. subpd xmm2, xmm12
  539. randomx_isn_136:
  540. ; IMUL_R r4, r0
  541. imul r12, r8
  542. randomx_isn_137:
  543. ; IMULH_R r7, r6
  544. mov rax, r15
  545. mul r14
  546. mov r15, rdx
  547. randomx_isn_138:
  548. ; FMUL_R e3, a2
  549. mulpd xmm7, xmm10
  550. randomx_isn_139:
  551. ; IMUL_R r2, r6
  552. imul r10, r14
  553. randomx_isn_140:
  554. ; ISTORE L1[r0+1277653290], r3
  555. lea eax, [r8d+1277653290]
  556. and eax, 16376
  557. mov qword ptr [rsi+rax], r11
  558. randomx_isn_141:
  559. ; IXOR_M r0, L1[r6-2131931958]
  560. lea eax, [r14d-2131931958]
  561. and eax, 16376
  562. xor r8, qword ptr [rsi+rax]
  563. randomx_isn_142:
  564. ; FSUB_R f3, a3
  565. subpd xmm3, xmm11
  566. randomx_isn_143:
  567. ; IROL_R r6, r1
  568. mov ecx, r9d
  569. rol r14, cl
  570. randomx_isn_144:
  571. ; FADD_R f1, a3
  572. addpd xmm1, xmm11
  573. randomx_isn_145:
  574. ; FMUL_R e0, a3
  575. mulpd xmm4, xmm11
  576. randomx_isn_146:
  577. ; FSQRT_R e0
  578. sqrtpd xmm4, xmm4
  579. randomx_isn_147:
  580. ; IADD_RS r7, r4, SHFT 0
  581. lea r15, [r15+r12*1]
  582. randomx_isn_148:
  583. ; FSUB_R f3, a1
  584. subpd xmm3, xmm9
  585. randomx_isn_149:
  586. ; ISTORE L2[r1-1073333533], r3
  587. lea eax, [r9d-1073333533]
  588. and eax, 262136
  589. mov qword ptr [rsi+rax], r11
  590. randomx_isn_150:
  591. ; FMUL_R e3, a3
  592. mulpd xmm7, xmm11
  593. randomx_isn_151:
  594. ; ISUB_R r6, r3
  595. sub r14, r11
  596. randomx_isn_152:
  597. ; IMULH_M r7, L2[r1+1647843648]
  598. lea ecx, [r9d+1647843648]
  599. and ecx, 262136
  600. mov rax, r15
  601. mul qword ptr [rsi+rcx]
  602. mov r15, rdx
  603. randomx_isn_153:
  604. ; FMUL_R e0, a0
  605. mulpd xmm4, xmm8
  606. randomx_isn_154:
  607. ; IROR_R r3, r0
  608. mov ecx, r8d
  609. ror r11, cl
  610. randomx_isn_155:
  611. ; IADD_M r3, L1[r7-1322060518]
  612. lea eax, [r15d-1322060518]
  613. and eax, 16376
  614. add r11, qword ptr [rsi+rax]
  615. randomx_isn_156:
  616. ; CBRANCH r3, 608981196, COND 1
  617. add r11, 608981708
  618. test r11, 130560
  619. jz randomx_isn_156
  620. randomx_isn_157:
  621. ; FSUB_M f0, L2[r7-252644586]
  622. lea eax, [r15d-252644586]
  623. and eax, 262136
  624. cvtdq2pd xmm12, qword ptr [rsi+rax]
  625. subpd xmm0, xmm12
  626. randomx_isn_158:
  627. ; CBRANCH r2, 868397474, COND 15
  628. add r10, 864203170
  629. test r10, 2139095040
  630. jz randomx_isn_157
  631. randomx_isn_159:
  632. ; ISUB_R r5, r3
  633. sub r13, r11
  634. randomx_isn_160:
  635. ; FMUL_R e0, a0
  636. mulpd xmm4, xmm8
  637. randomx_isn_161:
  638. ; FMUL_R e2, a1
  639. mulpd xmm6, xmm9
  640. randomx_isn_162:
  641. ; CBRANCH r0, 887338591, COND 6
  642. add r8, 887346783
  643. test r8, 4177920
  644. jz randomx_isn_159
  645. randomx_isn_163:
  646. ; IADD_RS r3, r3, SHFT 3
  647. lea r11, [r11+r11*8]
  648. randomx_isn_164:
  649. ; IMUL_RCP r7, 3593878304
  650. mov rax, 11022655166993703745
  651. imul r15, rax
  652. randomx_isn_165:
  653. ; CBRANCH r0, 1452880957, COND 13
  654. add r8, 1453929533
  655. test r8, 534773760
  656. jz randomx_isn_163
  657. randomx_isn_166:
  658. ; ISUB_M r6, L2[r3+1539038396]
  659. lea eax, [r11d+1539038396]
  660. and eax, 262136
  661. sub r14, qword ptr [rsi+rax]
  662. randomx_isn_167:
  663. ; IMUL_RCP r3, 1202036339
  664. mov rax, 16477905023274079568
  665. imul r11, rax
  666. randomx_isn_168:
  667. ; CBRANCH r1, -1295757940, COND 13
  668. add r9, -1293660788
  669. test r9, 534773760
  670. jz randomx_isn_166
  671. randomx_isn_169:
  672. ; FADD_M f2, L1[r2+876697387]
  673. lea eax, [r10d+876697387]
  674. and eax, 16376
  675. cvtdq2pd xmm12, qword ptr [rsi+rax]
  676. addpd xmm2, xmm12
  677. randomx_isn_170:
  678. ; IMUL_R r0, r6
  679. imul r8, r14
  680. randomx_isn_171:
  681. ; FMUL_R e1, a3
  682. mulpd xmm5, xmm11
  683. randomx_isn_172:
  684. ; FMUL_R e0, a2
  685. mulpd xmm4, xmm10
  686. randomx_isn_173:
  687. ; FSUB_M f3, L1[r2-1083472792]
  688. lea eax, [r10d-1083472792]
  689. and eax, 16376
  690. cvtdq2pd xmm12, qword ptr [rsi+rax]
  691. subpd xmm3, xmm12
  692. randomx_isn_174:
  693. ; CBRANCH r1, -1476890738, COND 14
  694. add r9, -1478987890
  695. test r9, 1069547520
  696. jz randomx_isn_169
  697. randomx_isn_175:
  698. ; ISUB_R r4, r7
  699. sub r12, r15
  700. randomx_isn_176:
  701. ; ISUB_R r0, 1685118604
  702. sub r8, 1685118604
  703. randomx_isn_177:
  704. ; FMUL_R e0, a1
  705. mulpd xmm4, xmm9
  706. randomx_isn_178:
  707. ; ISUB_M r0, L1[r7-1897974312]
  708. lea eax, [r15d-1897974312]
  709. and eax, 16376
  710. sub r8, qword ptr [rsi+rax]
  711. randomx_isn_179:
  712. ; IXOR_R r4, r0
  713. xor r12, r8
  714. randomx_isn_180:
  715. ; IXOR_R r7, r2
  716. xor r15, r10
  717. randomx_isn_181:
  718. ; FSCAL_R f1
  719. xorps xmm1, xmm15
  720. randomx_isn_182:
  721. ; ISWAP_R r6, r2
  722. xchg r14, r10
  723. randomx_isn_183:
  724. ; IADD_RS r3, r1, SHFT 3
  725. lea r11, [r11+r9*8]
  726. randomx_isn_184:
  727. ; ISTORE L1[r6-1997634426], r7
  728. lea eax, [r14d-1997634426]
  729. and eax, 16376
  730. mov qword ptr [rsi+rax], r15
  731. randomx_isn_185:
  732. ; IXOR_R r2, r7
  733. xor r10, r15
  734. randomx_isn_186:
  735. ; IMUL_R r4, r3
  736. imul r12, r11
  737. randomx_isn_187:
  738. ; IMUL_RCP r7, 1830833174
  739. mov rax, 10818593911149047378
  740. imul r15, rax
  741. randomx_isn_188:
  742. ; FMUL_R e0, a2
  743. mulpd xmm4, xmm10
  744. randomx_isn_189:
  745. ; FADD_R f1, a3
  746. addpd xmm1, xmm11
  747. randomx_isn_190:
  748. ; CBRANCH r7, 121030040, COND 15
  749. add r15, 129418648
  750. test r15, 2139095040
  751. jz randomx_isn_188
  752. randomx_isn_191:
  753. ; IADD_RS r6, r1, SHFT 0
  754. lea r14, [r14+r9*1]
  755. randomx_isn_192:
  756. ; FSUB_R f3, a2
  757. subpd xmm3, xmm10
  758. randomx_isn_193:
  759. ; CBRANCH r5, 1139434462, COND 11
  760. add r13, 1139434462
  761. test r13, 133693440
  762. jz randomx_isn_191
  763. randomx_isn_194:
  764. ; FMUL_R e2, a0
  765. mulpd xmm6, xmm8
  766. randomx_isn_195:
  767. ; FMUL_R e2, a3
  768. mulpd xmm6, xmm11
  769. randomx_isn_196:
  770. ; CBRANCH r4, 429294077, COND 2
  771. add r12, 429295101
  772. test r12, 261120
  773. jz randomx_isn_194
  774. randomx_isn_197:
  775. ; IMUL_R r1, r2
  776. imul r9, r10
  777. randomx_isn_198:
  778. ; FMUL_R e3, a0
  779. mulpd xmm7, xmm8
  780. randomx_isn_199:
  781. ; IMUL_R r2, r3
  782. imul r10, r11
  783. randomx_isn_200:
  784. ; IMUL_RCP r1, 193535702
  785. mov rax, 12792885514067893012
  786. imul r9, rax
  787. randomx_isn_201:
  788. ; IMUL_R r0, r5
  789. imul r8, r13
  790. randomx_isn_202:
  791. ; ISUB_R r1, r2
  792. sub r9, r10
  793. randomx_isn_203:
  794. ; FSUB_R f0, a3
  795. subpd xmm0, xmm11
  796. randomx_isn_204:
  797. ; FSQRT_R e3
  798. sqrtpd xmm7, xmm7
  799. randomx_isn_205:
  800. ; FMUL_R e0, a3
  801. mulpd xmm4, xmm11
  802. randomx_isn_206:
  803. ; IMUL_R r2, r1
  804. imul r10, r9
  805. randomx_isn_207:
  806. ; IADD_RS r1, r1, SHFT 3
  807. lea r9, [r9+r9*8]
  808. randomx_isn_208:
  809. ; ISUB_R r6, r4
  810. sub r14, r12
  811. randomx_isn_209:
  812. ; ISUB_R r0, r7
  813. sub r8, r15
  814. randomx_isn_210:
  815. ; IADD_M r6, L1[r1+313140284]
  816. lea eax, [r9d+313140284]
  817. and eax, 16376
  818. add r14, qword ptr [rsi+rax]
  819. randomx_isn_211:
  820. ; CBRANCH r4, 1358359929, COND 11
  821. add r12, 1358622073
  822. test r12, 133693440
  823. jz randomx_isn_197
  824. randomx_isn_212:
  825. ; FSQRT_R e0
  826. sqrtpd xmm4, xmm4
  827. randomx_isn_213:
  828. ; ISTORE L1[r3+18641493], r5
  829. lea eax, [r11d+18641493]
  830. and eax, 16376
  831. mov qword ptr [rsi+rax], r13
  832. randomx_isn_214:
  833. ; CBRANCH r2, 1232471888, COND 7
  834. add r10, 1232504656
  835. test r10, 8355840
  836. jz randomx_isn_212
  837. randomx_isn_215:
  838. ; IADD_M r1, L1[r3+1138069575]
  839. lea eax, [r11d+1138069575]
  840. and eax, 16376
  841. add r9, qword ptr [rsi+rax]
  842. randomx_isn_216:
  843. ; FSQRT_R e0
  844. sqrtpd xmm4, xmm4
  845. randomx_isn_217:
  846. ; IMUL_R r3, r4
  847. imul r11, r12
  848. randomx_isn_218:
  849. ; FMUL_R e3, a3
  850. mulpd xmm7, xmm11
  851. randomx_isn_219:
  852. ; IROL_R r7, r1
  853. mov ecx, r9d
  854. rol r15, cl
  855. randomx_isn_220:
  856. ; FMUL_R e2, a1
  857. mulpd xmm6, xmm9
  858. randomx_isn_221:
  859. ; IXOR_M r2, L3[697832]
  860. xor r10, qword ptr [rsi+697832]
  861. randomx_isn_222:
  862. ; IADD_RS r1, r6, SHFT 2
  863. lea r9, [r9+r14*4]
  864. randomx_isn_223:
  865. ; ISWAP_R r6, r2
  866. xchg r14, r10
  867. randomx_isn_224:
  868. ; ISUB_R r0, r1
  869. sub r8, r9
  870. randomx_isn_225:
  871. ; FSQRT_R e3
  872. sqrtpd xmm7, xmm7
  873. randomx_isn_226:
  874. ; ISUB_R r5, r1
  875. sub r13, r9
  876. randomx_isn_227:
  877. ; ISTORE L1[r0+238217802], r2
  878. lea eax, [r8d+238217802]
  879. and eax, 16376
  880. mov qword ptr [rsi+rax], r10
  881. randomx_isn_228:
  882. ; IMUL_RCP r5, 324261767
  883. mov rax, 15270872674734795667
  884. imul r13, rax
  885. randomx_isn_229:
  886. ; FSCAL_R f0
  887. xorps xmm0, xmm15
  888. randomx_isn_230:
  889. ; FSQRT_R e3
  890. sqrtpd xmm7, xmm7
  891. randomx_isn_231:
  892. ; IROL_R r1, r5
  893. mov ecx, r13d
  894. rol r9, cl
  895. randomx_isn_232:
  896. ; ISUB_R r6, r1
  897. sub r14, r9
  898. randomx_isn_233:
  899. ; FADD_R f2, a0
  900. addpd xmm2, xmm8
  901. randomx_isn_234:
  902. ; FADD_R f1, a3
  903. addpd xmm1, xmm11
  904. randomx_isn_235:
  905. ; IXOR_R r3, 1240450588
  906. xor r11, 1240450588
  907. randomx_isn_236:
  908. ; FSUB_R f1, a2
  909. subpd xmm1, xmm10
  910. randomx_isn_237:
  911. ; IMULH_R r6, r3
  912. mov rax, r14
  913. mul r11
  914. mov r14, rdx
  915. randomx_isn_238:
  916. ; FSUB_R f1, a3
  917. subpd xmm1, xmm11
  918. randomx_isn_239:
  919. ; FSUB_R f1, a2
  920. subpd xmm1, xmm10
  921. randomx_isn_240:
  922. ; FSUB_M f1, L1[r7+1330184615]
  923. lea eax, [r15d+1330184615]
  924. and eax, 16376
  925. cvtdq2pd xmm12, qword ptr [rsi+rax]
  926. subpd xmm1, xmm12
  927. randomx_isn_241:
  928. ; FMUL_R e2, a3
  929. mulpd xmm6, xmm11
  930. randomx_isn_242:
  931. ; CBRANCH r3, -427325404, COND 11
  932. add r11, -427063260
  933. test r11, 133693440
  934. jz randomx_isn_236
  935. randomx_isn_243:
  936. ; IMUL_R r5, r7
  937. imul r13, r15
  938. randomx_isn_244:
  939. ; FMUL_R e3, a3
  940. mulpd xmm7, xmm11
  941. randomx_isn_245:
  942. ; ISMULH_M r7, L1[r0-84959236]
  943. lea ecx, [r8d-84959236]
  944. and ecx, 16376
  945. mov rax, r15
  946. imul qword ptr [rsi+rcx]
  947. mov r15, rdx
  948. randomx_isn_246:
  949. ; IMUL_R r6, r1
  950. imul r14, r9
  951. randomx_isn_247:
  952. ; FMUL_R e2, a1
  953. mulpd xmm6, xmm9
  954. randomx_isn_248:
  955. ; IADD_M r1, L2[r3+1223504721]
  956. lea eax, [r11d+1223504721]
  957. and eax, 262136
  958. add r9, qword ptr [rsi+rax]
  959. randomx_isn_249:
  960. ; FADD_R f1, a2
  961. addpd xmm1, xmm10
  962. randomx_isn_250:
  963. ; IXOR_M r4, L1[r2-1447740505]
  964. lea eax, [r10d-1447740505]
  965. and eax, 16376
  966. xor r12, qword ptr [rsi+rax]
  967. randomx_isn_251:
  968. ; IXOR_R r0, r5
  969. xor r8, r13
  970. randomx_isn_252:
  971. ; CBRANCH r4, -1337905977, COND 4
  972. add r12, -1337903929
  973. test r12, 1044480
  974. jz randomx_isn_251
  975. randomx_isn_253:
  976. ; FSUB_R f1, a1
  977. subpd xmm1, xmm9
  978. randomx_isn_254:
  979. ; FMUL_R e0, a0
  980. mulpd xmm4, xmm8
  981. randomx_isn_255:
  982. ; CBRANCH r5, 437071043, COND 11
  983. add r13, 436808899
  984. test r13, 133693440
  985. jz randomx_isn_253