program.asm 19 KB

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