program.asm 19 KB

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