program.asm 20 KB

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