program.asm 19 KB

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