program.asm 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994
  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 ecx, ecx
  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 ecx, ecx
  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 ecx, ecx
  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 ecx, ecx
  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 ecx, ecx
  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 ecx, ecx
  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 ecx, ecx
  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. push rax
  609. ldmxcsr dword ptr [rsp]
  610. pop rax
  611. randomx_isn_156:
  612. ; FSUB_R f3, a2
  613. subpd xmm3, xmm10
  614. randomx_isn_157:
  615. ; ISTORE L1[r1+883418866], r1
  616. lea eax, [r9d+883418866]
  617. and eax, 16376
  618. mov qword ptr [rsi+rax], r9
  619. randomx_isn_158:
  620. ; ISTORE L1[r6-312458782], r4
  621. lea eax, [r14d-312458782]
  622. and eax, 16376
  623. mov qword ptr [rsi+rax], r12
  624. randomx_isn_159:
  625. ; IADD_RS r7, r2, LSH 3
  626. lea r15, [r15+r10*4]
  627. randomx_isn_160:
  628. ; IMUL_RCP r7, 2040763167
  629. mov rax, 9705702723791900149
  630. imul r15, rax
  631. randomx_isn_161:
  632. ; FADD_R f3, a3
  633. addpd xmm3, xmm11
  634. randomx_isn_162:
  635. ; IADD_RS r6, r4, LSH 1
  636. lea r14, [r14+r12*2]
  637. randomx_isn_163:
  638. ; ISWAP_R r3, r5
  639. xchg r11, r13
  640. randomx_isn_164:
  641. ; FSQRT_R e3
  642. sqrtpd xmm7, xmm7
  643. randomx_isn_165:
  644. ; FSUB_R f1, a2
  645. subpd xmm1, xmm10
  646. randomx_isn_166:
  647. ; IROR_R r5, r3
  648. mov ecx, r11d
  649. ror r13, cl
  650. randomx_isn_167:
  651. ; ISUB_M r2, L2[r0+805006473]
  652. lea eax, [r8d+805006473]
  653. and eax, 262136
  654. sub r10, qword ptr [rsi+rax]
  655. randomx_isn_168:
  656. ; FDIV_M e0, L1[r4-2098372994]
  657. lea eax, [r12d-2098372994]
  658. and eax, 16376
  659. cvtdq2pd xmm12, qword ptr [rsi+rax]
  660. andps xmm12, xmm13
  661. orps xmm12, xmm14
  662. divpd xmm4, xmm12
  663. randomx_isn_169:
  664. ; ISUB_M r3, L2[r4+1773188989]
  665. lea eax, [r12d+1773188989]
  666. and eax, 262136
  667. sub r11, qword ptr [rsi+rax]
  668. randomx_isn_170:
  669. ; FADD_R f0, a3
  670. addpd xmm0, xmm11
  671. randomx_isn_171:
  672. ; FADD_R f1, a0
  673. addpd xmm1, xmm8
  674. randomx_isn_172:
  675. ; ISTORE L1[r7-933780249], r6
  676. lea eax, [r15d-933780249]
  677. and eax, 16376
  678. mov qword ptr [rsi+rax], r14
  679. randomx_isn_173:
  680. ; FSUB_M f0, L1[r7-1204687701]
  681. lea eax, [r15d-1204687701]
  682. and eax, 16376
  683. cvtdq2pd xmm12, qword ptr [rsi+rax]
  684. subpd xmm0, xmm12
  685. randomx_isn_174:
  686. ; ISWAP_R r3, r0
  687. xchg r11, r8
  688. randomx_isn_175:
  689. ; IMULH_R r0, r3
  690. mov rax, r8
  691. mul r11
  692. mov r8, rdx
  693. randomx_isn_176:
  694. ; IMUL_M r2, L3[1439696]
  695. imul r10, qword ptr [rsi+1439696]
  696. randomx_isn_177:
  697. ; IMUL_M r3, L3[232968]
  698. imul r11, qword ptr [rsi+232968]
  699. randomx_isn_178:
  700. ; IADD_RS r5, r3, -2108568616, LSH 1
  701. lea r13, [r13+r11*2-2108568616]
  702. randomx_isn_179:
  703. ; IADD_M r3, L1[r4+1322108729]
  704. lea eax, [r12d+1322108729]
  705. and eax, 16376
  706. add r11, qword ptr [rsi+rax]
  707. randomx_isn_180:
  708. ; FADD_R f3, a1
  709. addpd xmm3, xmm9
  710. randomx_isn_181:
  711. ; FSQRT_R e3
  712. sqrtpd xmm7, xmm7
  713. randomx_isn_182:
  714. ; FMUL_R e2, a2
  715. mulpd xmm6, xmm10
  716. randomx_isn_183:
  717. ; IADD_RS r6, r2, LSH 0
  718. lea r14, [r14+r10*8]
  719. randomx_isn_184:
  720. ; FADD_R f2, a3
  721. addpd xmm2, xmm11
  722. randomx_isn_185:
  723. ; FSWAP_R f3
  724. shufpd xmm3, xmm3, 1
  725. randomx_isn_186:
  726. ; FSCAL_R f3
  727. xorps xmm3, xmm15
  728. randomx_isn_187:
  729. ; IADD_RS r6, r6, LSH 3
  730. lea r14, [r14+r14*4]
  731. randomx_isn_188:
  732. ; FSCAL_R f2
  733. xorps xmm2, xmm15
  734. randomx_isn_189:
  735. ; IMUL_M r4, L1[r5+1014226422]
  736. lea eax, [r13d+1014226422]
  737. and eax, 16376
  738. imul r12, qword ptr [rsi+rax]
  739. randomx_isn_190:
  740. ; FSUB_M f2, L1[r3-87032284]
  741. lea eax, [r11d-87032284]
  742. and eax, 16376
  743. cvtdq2pd xmm12, qword ptr [rsi+rax]
  744. subpd xmm2, xmm12
  745. randomx_isn_191:
  746. ; IMUL_M r4, L2[r3+1279913094]
  747. lea eax, [r11d+1279913094]
  748. and eax, 262136
  749. imul r12, qword ptr [rsi+rax]
  750. randomx_isn_192:
  751. ; ISUB_R r7, r3
  752. sub r15, r11
  753. randomx_isn_193:
  754. ; ISTORE L1[r1+901530824], r1
  755. lea eax, [r9d+901530824]
  756. and eax, 16376
  757. mov qword ptr [rsi+rax], r9
  758. randomx_isn_194:
  759. ; ISTORE L1[r3+965438117], r4
  760. lea eax, [r11d+965438117]
  761. and eax, 16376
  762. mov qword ptr [rsi+rax], r12
  763. randomx_isn_195:
  764. ; FMUL_R e2, a2
  765. mulpd xmm6, xmm10
  766. randomx_isn_196:
  767. ; FMUL_R e2, a0
  768. mulpd xmm6, xmm8
  769. randomx_isn_197:
  770. ; FADD_M f2, L2[r0-197871122]
  771. lea eax, [r8d-197871122]
  772. and eax, 262136
  773. cvtdq2pd xmm12, qword ptr [rsi+rax]
  774. addpd xmm2, xmm12
  775. randomx_isn_198:
  776. ; FADD_R f1, a2
  777. addpd xmm1, xmm10
  778. randomx_isn_199:
  779. ; FSUB_R f3, a3
  780. subpd xmm3, xmm11
  781. randomx_isn_200:
  782. ; IADD_RS r2, r5, LSH 2
  783. lea r10, [r10+r13*1]
  784. randomx_isn_201:
  785. ; ISUB_M r6, L2[r3+376384700]
  786. lea eax, [r11d+376384700]
  787. and eax, 262136
  788. sub r14, qword ptr [rsi+rax]
  789. randomx_isn_202:
  790. ; ISWAP_R r3, r6
  791. xchg r11, r14
  792. randomx_isn_203:
  793. ; ISTORE L1[r1+330228321], r3
  794. lea eax, [r9d+330228321]
  795. and eax, 16376
  796. mov qword ptr [rsi+rax], r11
  797. randomx_isn_204:
  798. ; IMUL_R r6, r1
  799. imul r14, r9
  800. randomx_isn_205:
  801. ; IADD_M r7, L2[r5-579800039]
  802. lea eax, [r13d-579800039]
  803. and eax, 262136
  804. add r15, qword ptr [rsi+rax]
  805. randomx_isn_206:
  806. ; IADD_RS r3, r5, LSH 0
  807. lea r11, [r11+r13*1]
  808. randomx_isn_207:
  809. ; FSCAL_R f1
  810. xorps xmm1, xmm15
  811. randomx_isn_208:
  812. ; IADD_RS r6, r3, LSH 1
  813. lea r14, [r14+r11*1]
  814. randomx_isn_209:
  815. ; FSUB_M f0, L1[r4-557177119]
  816. lea eax, [r12d-557177119]
  817. and eax, 16376
  818. cvtdq2pd xmm12, qword ptr [rsi+rax]
  819. subpd xmm0, xmm12
  820. randomx_isn_210:
  821. ; FSWAP_R e2
  822. shufpd xmm6, xmm6, 1
  823. randomx_isn_211:
  824. ; FMUL_R e2, a3
  825. mulpd xmm6, xmm11
  826. randomx_isn_212:
  827. ; IMUL_M r0, L1[r1-300353849]
  828. lea eax, [r9d-300353849]
  829. and eax, 16376
  830. imul r8, qword ptr [rsi+rax]
  831. randomx_isn_213:
  832. ; FSUB_M f2, L1[r5-2016234225]
  833. lea eax, [r13d-2016234225]
  834. and eax, 16376
  835. cvtdq2pd xmm12, qword ptr [rsi+rax]
  836. subpd xmm2, xmm12
  837. randomx_isn_214:
  838. ; FMUL_R e1, a2
  839. mulpd xmm5, xmm10
  840. randomx_isn_215:
  841. ; FADD_R f3, a1
  842. addpd xmm3, xmm9
  843. randomx_isn_216:
  844. ; IXOR_M r4, L2[r1+926150064]
  845. lea eax, [r9d+926150064]
  846. and eax, 262136
  847. xor r12, qword ptr [rsi+rax]
  848. randomx_isn_217:
  849. ; IMUL_M r6, L1[r5-1692567271]
  850. lea eax, [r13d-1692567271]
  851. and eax, 16376
  852. imul r14, qword ptr [rsi+rax]
  853. randomx_isn_218:
  854. ; FSCAL_R f2
  855. xorps xmm2, xmm15
  856. randomx_isn_219:
  857. ; FADD_M f3, L1[r7+162195095]
  858. lea eax, [r15d+162195095]
  859. and eax, 16376
  860. cvtdq2pd xmm12, qword ptr [rsi+rax]
  861. addpd xmm3, xmm12
  862. randomx_isn_220:
  863. ; FSUB_R f0, a0
  864. subpd xmm0, xmm8
  865. randomx_isn_221:
  866. ; IMUL_R r1, r0
  867. imul r9, r8
  868. randomx_isn_222:
  869. ; IADD_RS r1, r0, LSH 2
  870. lea r9, [r9+r8*4]
  871. randomx_isn_223:
  872. ; FSCAL_R f2
  873. xorps xmm2, xmm15
  874. randomx_isn_224:
  875. ; IADD_RS r5, r4, 312567979, LSH 1
  876. lea r13, [r13+r12*4+312567979]
  877. randomx_isn_225:
  878. ; ISTORE L2[r2+260885699], r1
  879. lea eax, [r10d+260885699]
  880. and eax, 262136
  881. mov qword ptr [rsi+rax], r9
  882. randomx_isn_226:
  883. ; ISUB_R r6, -791575725
  884. sub r14, -791575725
  885. randomx_isn_227:
  886. ; FDIV_M e3, L1[r0-1140408845]
  887. lea eax, [r8d-1140408845]
  888. and eax, 16376
  889. cvtdq2pd xmm12, qword ptr [rsi+rax]
  890. andps xmm12, xmm13
  891. orps xmm12, xmm14
  892. divpd xmm7, xmm12
  893. randomx_isn_228:
  894. ; IXOR_R r7, r1
  895. xor r15, r9
  896. randomx_isn_229:
  897. ; ISWAP_R r0, r6
  898. xchg r8, r14
  899. randomx_isn_230:
  900. ; IADD_RS r2, r7, LSH 2
  901. lea r10, [r10+r15*1]
  902. randomx_isn_231:
  903. ; FMUL_R e1, a0
  904. mulpd xmm5, xmm8
  905. randomx_isn_232:
  906. ; FMUL_R e3, a3
  907. mulpd xmm7, xmm11
  908. randomx_isn_233:
  909. ; FMUL_R e0, a2
  910. mulpd xmm4, xmm10
  911. randomx_isn_234:
  912. ; IADD_M r2, L1[r7+1435646464]
  913. lea eax, [r15d+1435646464]
  914. and eax, 16376
  915. add r10, qword ptr [rsi+rax]
  916. randomx_isn_235:
  917. ; ISWAP_R r7, r6
  918. xchg r15, r14
  919. randomx_isn_236:
  920. ; FMUL_R e3, a2
  921. mulpd xmm7, xmm10
  922. randomx_isn_237:
  923. ; FSUB_R f1, a3
  924. subpd xmm1, xmm11
  925. randomx_isn_238:
  926. ; IADD_RS r4, r2, LSH 1
  927. lea r12, [r12+r10*4]
  928. randomx_isn_239:
  929. ; IMUL_RCP r7, 3065786637
  930. mov rax, 12921343181238534701
  931. imul r15, rax
  932. randomx_isn_240:
  933. ; IMUL_R r5, r7
  934. imul r13, r15
  935. randomx_isn_241:
  936. ; IROR_R r6, r5
  937. mov ecx, r13d
  938. ror r14, cl
  939. randomx_isn_242:
  940. ; IMUL_R r6, r4
  941. imul r14, r12
  942. randomx_isn_243:
  943. ; FSUB_R f0, a3
  944. subpd xmm0, xmm11
  945. randomx_isn_244:
  946. ; FADD_M f1, L1[r0-389606015]
  947. lea eax, [r8d-389606015]
  948. and eax, 16376
  949. cvtdq2pd xmm12, qword ptr [rsi+rax]
  950. addpd xmm1, xmm12
  951. randomx_isn_245:
  952. ; INEG_R r3
  953. neg r11
  954. randomx_isn_246:
  955. ; ISUB_M r7, L2[r2+1938400676]
  956. lea eax, [r10d+1938400676]
  957. and eax, 262136
  958. sub r15, qword ptr [rsi+rax]
  959. randomx_isn_247:
  960. ; COND_R r2, be(r5, -8545330), LSH 2
  961. add r9, 4
  962. test r9, 508
  963. jz randomx_isn_223
  964. xor ecx, ecx
  965. cmp r13d, -8545330
  966. setbe cl
  967. add r10, rcx
  968. randomx_isn_248:
  969. ; ISTORE L1[r0+1951752498], r5
  970. lea eax, [r8d+1951752498]
  971. and eax, 16376
  972. mov qword ptr [rsi+rax], r13
  973. randomx_isn_249:
  974. ; IADD_RS r6, r5, LSH 2
  975. lea r14, [r14+r13*4]
  976. randomx_isn_250:
  977. ; FADD_R f3, a0
  978. addpd xmm3, xmm8
  979. randomx_isn_251:
  980. ; IADD_RS r0, r0, LSH 0
  981. lea r8, [r8+r8*4]
  982. randomx_isn_252:
  983. ; ISUB_R r4, r2
  984. sub r12, r10
  985. randomx_isn_253:
  986. ; IADD_RS r5, r4, 256175395, LSH 0
  987. lea r13, [r13+r12*4+256175395]
  988. randomx_isn_254:
  989. ; IADD_RS r6, r7, LSH 2
  990. lea r14, [r14+r15*4]
  991. randomx_isn_255:
  992. ; IROR_R r7, r3
  993. mov ecx, r11d
  994. ror r15, cl