program.asm 19 KB

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