instructions.h 33 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890
  1. #pragma once
  2. #include "cpu.h"
  3. #include <stdint.h>
  4. #define SAFE_READ_WRITE8(addr, fun) \
  5. int32_t phys_addr = translate_address_write(addr); \
  6. int32_t ___ = read8(phys_addr); \
  7. write8(phys_addr, fun);
  8. #define SAFE_READ_WRITE16(addr, fun) \
  9. int32_t phys_addr = translate_address_write(addr); \
  10. if((phys_addr & 0xFFF) == 0xFFF) \
  11. { \
  12. int32_t phys_addr_high = translate_address_write((addr) + 1); \
  13. int32_t ___ = virt_boundary_read16(phys_addr, phys_addr_high); \
  14. virt_boundary_write16(phys_addr, phys_addr_high, fun); \
  15. } \
  16. else \
  17. { \
  18. int32_t ___ = read16(phys_addr); \
  19. write16(phys_addr, fun); \
  20. }
  21. #define SAFE_READ_WRITE32(addr, fun) \
  22. int32_t phys_addr = translate_address_write(addr); \
  23. if((phys_addr & 0xFFF) >= 0xFFD) \
  24. { \
  25. int32_t phys_addr_high = translate_address_write((addr) + 3 & ~3) | ((addr) + 3) & 3; \
  26. int32_t ___ = virt_boundary_read32s(phys_addr, phys_addr_high); \
  27. virt_boundary_write32(phys_addr, phys_addr_high, fun); \
  28. } \
  29. else \
  30. { \
  31. int32_t ___ = read32s(phys_addr); \
  32. write32(phys_addr, fun); \
  33. }
  34. #define DEFINE_MODRM_INSTR1_READ_WRITE_8(name, fun) \
  35. void name ## _mem(int32_t addr) { SAFE_READ_WRITE8(addr, fun) } \
  36. void name ## _reg(int32_t r1) { int32_t ___ = read_reg8(r1); write_reg8(r1, fun); }
  37. #define DEFINE_MODRM_INSTR1_READ_WRITE_16(name, fun) \
  38. void name ## _mem(int32_t addr) { SAFE_READ_WRITE16(addr, fun) } \
  39. void name ## _reg(int32_t r1) { int32_t ___ = read_reg16(r1); write_reg16(r1, fun); }
  40. #define DEFINE_MODRM_INSTR1_READ_WRITE_32(name, fun) \
  41. void name ## _mem(int32_t addr) { SAFE_READ_WRITE32(addr, fun) } \
  42. void name ## _reg(int32_t r1) { int32_t ___ = read_reg32(r1); write_reg32(r1, fun); }
  43. #define DEFINE_MODRM_INSTR2_READ_WRITE_8(name, fun) \
  44. void name ## _mem(int32_t addr, int32_t imm) { SAFE_READ_WRITE8(addr, fun) } \
  45. void name ## _reg(int32_t r1, int32_t imm) { int32_t ___ = read_reg8(r1); write_reg8(r1, fun); }
  46. #define DEFINE_MODRM_INSTR2_READ_WRITE_16(name, fun) \
  47. void name ## _mem(int32_t addr, int32_t imm) { SAFE_READ_WRITE16(addr, fun) } \
  48. void name ## _reg(int32_t r1, int32_t imm) { int32_t ___ = read_reg16(r1); write_reg16(r1, fun); }
  49. #define DEFINE_MODRM_INSTR2_READ_WRITE_32(name, fun) \
  50. void name ## _mem(int32_t addr, int32_t imm) { SAFE_READ_WRITE32(addr, fun) } \
  51. void name ## _reg(int32_t r1, int32_t imm) { int32_t ___ = read_reg32(r1); write_reg32(r1, fun); }
  52. #define DEFINE_MODRM_INSTR_READ_WRITE_8(name, fun) \
  53. void name ## _mem(int32_t addr, int32_t r) { SAFE_READ_WRITE8(addr, fun) } \
  54. void name ## _reg(int32_t r1, int32_t r) { int32_t ___ = read_reg8(r1); write_reg8(r1, fun); }
  55. #define DEFINE_MODRM_INSTR_READ_WRITE_16(name, fun) \
  56. void name ## _mem(int32_t addr, int32_t r) { SAFE_READ_WRITE16(addr, fun) } \
  57. void name ## _reg(int32_t r1, int32_t r) { int32_t ___ = read_reg16(r1); write_reg16(r1, fun); }
  58. #define DEFINE_MODRM_INSTR_READ_WRITE_32(name, fun) \
  59. void name ## _mem(int32_t addr, int32_t r) { SAFE_READ_WRITE32(addr, fun) } \
  60. void name ## _reg(int32_t r1, int32_t r) { int32_t ___ = read_reg32(r1); write_reg32(r1, fun); }
  61. #define DEFINE_MODRM_INSTR1_READ8(name, fun) \
  62. void name ## _mem(int32_t addr) { int32_t ___ = safe_read8(addr); fun; } \
  63. void name ## _reg(int32_t r1) { int32_t ___ = read_reg8(r1); fun; }
  64. #define DEFINE_MODRM_INSTR1_READ16(name, fun) \
  65. void name ## _mem(int32_t addr) { int32_t ___ = safe_read16(addr); fun; } \
  66. void name ## _reg(int32_t r1) { int32_t ___ = read_reg16(r1); fun; }
  67. #define DEFINE_MODRM_INSTR1_READ32(name, fun) \
  68. void name ## _mem(int32_t addr) { int32_t ___ = safe_read32s(addr); fun; } \
  69. void name ## _reg(int32_t r1) { int32_t ___ = read_reg32(r1); fun; }
  70. #define DEFINE_MODRM_INSTR2_READ8(name, fun) \
  71. void name ## _mem(int32_t addr, int32_t imm) { int32_t ___ = safe_read8(addr); fun; } \
  72. void name ## _reg(int32_t r1, int32_t imm) { int32_t ___ = read_reg8(r1); fun; }
  73. #define DEFINE_MODRM_INSTR2_READ16(name, fun) \
  74. void name ## _mem(int32_t addr, int32_t imm) { int32_t ___ = safe_read16(addr); fun; } \
  75. void name ## _reg(int32_t r1, int32_t imm) { int32_t ___ = read_reg16(r1); fun; }
  76. #define DEFINE_MODRM_INSTR2_READ32(name, fun) \
  77. void name ## _mem(int32_t addr, int32_t imm) { int32_t ___ = safe_read32s(addr); fun; } \
  78. void name ## _reg(int32_t r1, int32_t imm) { int32_t ___ = read_reg32(r1); fun; }
  79. #define DEFINE_MODRM_INSTR_READ8(name, fun) \
  80. void name ## _mem(int32_t addr, int32_t r) { int32_t ___ = safe_read8(addr); fun; } \
  81. void name ## _reg(int32_t r1, int32_t r) { int32_t ___ = read_reg8(r1); fun; }
  82. #define DEFINE_MODRM_INSTR_READ16(name, fun) \
  83. void name ## _mem(int32_t addr, int32_t r) { int32_t ___ = safe_read16(addr); fun; } \
  84. void name ## _reg(int32_t r1, int32_t r) { int32_t ___ = read_reg16(r1); fun; }
  85. #define DEFINE_MODRM_INSTR_READ32(name, fun) \
  86. void name ## _mem(int32_t addr, int32_t r) { int32_t ___ = safe_read32s(addr); fun; } \
  87. void name ## _reg(int32_t r1, int32_t r) { int32_t ___ = read_reg32(r1); fun; }
  88. #define DEFINE_MODRM_INSTR_FPU_READ32(name, fun) \
  89. void name ## _mem(int32_t addr) { task_switch_test(); double_t ___ = fpu_load_m32(addr); fun; } \
  90. void name ## _reg(int32_t r) { task_switch_test(); double_t ___ = fpu_get_sti(r); fun; }
  91. void instr_00_mem(int32_t addr, int32_t r);
  92. void instr_00_reg(int32_t r1, int32_t r);
  93. void instr16_01_mem(int32_t addr, int32_t r);
  94. void instr16_01_reg(int32_t r1, int32_t r);
  95. void instr32_01_mem(int32_t addr, int32_t r);
  96. void instr32_01_reg(int32_t r1, int32_t r);
  97. void instr_02_mem(int32_t addr, int32_t r);
  98. void instr_02_reg(int32_t r1, int32_t r);
  99. void instr16_03_mem(int32_t addr, int32_t r);
  100. void instr16_03_reg(int32_t r1, int32_t r);
  101. void instr32_03_mem(int32_t addr, int32_t r);
  102. void instr32_03_reg(int32_t r1, int32_t r);
  103. void instr_04(int32_t imm8);
  104. void instr16_05(int32_t imm16);
  105. void instr32_05(int32_t imm32);
  106. void instr16_06(void);
  107. void instr32_06(void);
  108. void instr16_07(void);
  109. void instr32_07(void);
  110. void instr_08_mem(int32_t addr, int32_t r);
  111. void instr_08_reg(int32_t r1, int32_t r);
  112. void instr16_09_mem(int32_t addr, int32_t r);
  113. void instr16_09_reg(int32_t r1, int32_t r);
  114. void instr32_09_mem(int32_t addr, int32_t r);
  115. void instr32_09_reg(int32_t r1, int32_t r);
  116. void instr_0A_mem(int32_t addr, int32_t r);
  117. void instr_0A_reg(int32_t r1, int32_t r);
  118. void instr16_0B_mem(int32_t addr, int32_t r);
  119. void instr16_0B_reg(int32_t r1, int32_t r);
  120. void instr32_0B_mem(int32_t addr, int32_t r);
  121. void instr32_0B_reg(int32_t r1, int32_t r);
  122. void instr_0C(int32_t imm8);
  123. void instr16_0D(int32_t imm16);
  124. void instr32_0D(int32_t imm32);
  125. void instr16_0E(void);
  126. void instr32_0E(void);
  127. void instr16_0F(void);
  128. void instr32_0F(void);
  129. void instr_10_mem(int32_t addr, int32_t r);
  130. void instr_10_reg(int32_t r1, int32_t r);
  131. void instr16_11_mem(int32_t addr, int32_t r);
  132. void instr16_11_reg(int32_t r1, int32_t r);
  133. void instr32_11_mem(int32_t addr, int32_t r);
  134. void instr32_11_reg(int32_t r1, int32_t r);
  135. void instr_12_mem(int32_t addr, int32_t r);
  136. void instr_12_reg(int32_t r1, int32_t r);
  137. void instr16_13_mem(int32_t addr, int32_t r);
  138. void instr16_13_reg(int32_t r1, int32_t r);
  139. void instr32_13_mem(int32_t addr, int32_t r);
  140. void instr32_13_reg(int32_t r1, int32_t r);
  141. void instr_14(int32_t imm8);
  142. void instr16_15(int32_t imm16);
  143. void instr32_15(int32_t imm32);
  144. void instr16_16(void);
  145. void instr32_16(void);
  146. void instr16_17(void);
  147. void instr32_17(void);
  148. void instr_18_mem(int32_t addr, int32_t r);
  149. void instr_18_reg(int32_t r1, int32_t r);
  150. void instr16_19_mem(int32_t addr, int32_t r);
  151. void instr16_19_reg(int32_t r1, int32_t r);
  152. void instr32_19_mem(int32_t addr, int32_t r);
  153. void instr32_19_reg(int32_t r1, int32_t r);
  154. void instr_1A_mem(int32_t addr, int32_t r);
  155. void instr_1A_reg(int32_t r1, int32_t r);
  156. void instr16_1B_mem(int32_t addr, int32_t r);
  157. void instr16_1B_reg(int32_t r1, int32_t r);
  158. void instr32_1B_mem(int32_t addr, int32_t r);
  159. void instr32_1B_reg(int32_t r1, int32_t r);
  160. void instr_1C(int32_t imm8);
  161. void instr16_1D(int32_t imm16);
  162. void instr32_1D(int32_t imm32);
  163. void instr16_1E(void);
  164. void instr32_1E(void);
  165. void instr16_1F(void);
  166. void instr32_1F(void);
  167. void instr_20_mem(int32_t addr, int32_t r);
  168. void instr_20_reg(int32_t r1, int32_t r);
  169. void instr16_21_mem(int32_t addr, int32_t r);
  170. void instr16_21_reg(int32_t r1, int32_t r);
  171. void instr32_21_mem(int32_t addr, int32_t r);
  172. void instr32_21_reg(int32_t r1, int32_t r);
  173. void instr_22_mem(int32_t addr, int32_t r);
  174. void instr_22_reg(int32_t r1, int32_t r);
  175. void instr16_23_mem(int32_t addr, int32_t r);
  176. void instr16_23_reg(int32_t r1, int32_t r);
  177. void instr32_23_mem(int32_t addr, int32_t r);
  178. void instr32_23_reg(int32_t r1, int32_t r);
  179. void instr_24(int32_t imm8);
  180. void instr16_25(int32_t imm16);
  181. void instr32_25(int32_t imm32);
  182. void instr_26(void);
  183. void instr_27(void);
  184. void instr_28_mem(int32_t addr, int32_t r);
  185. void instr_28_reg(int32_t r1, int32_t r);
  186. void instr16_29_mem(int32_t addr, int32_t r);
  187. void instr16_29_reg(int32_t r1, int32_t r);
  188. void instr32_29_mem(int32_t addr, int32_t r);
  189. void instr32_29_reg(int32_t r1, int32_t r);
  190. void instr_2A_mem(int32_t addr, int32_t r);
  191. void instr_2A_reg(int32_t r1, int32_t r);
  192. void instr16_2B_mem(int32_t addr, int32_t r);
  193. void instr16_2B_reg(int32_t r1, int32_t r);
  194. void instr32_2B_mem(int32_t addr, int32_t r);
  195. void instr32_2B_reg(int32_t r1, int32_t r);
  196. void instr_2C(int32_t imm8);
  197. void instr16_2D(int32_t imm16);
  198. void instr32_2D(int32_t imm32);
  199. void instr_2E(void);
  200. void instr_2F(void);
  201. void instr_30_mem(int32_t addr, int32_t r);
  202. void instr_30_reg(int32_t r1, int32_t r);
  203. void instr16_31_mem(int32_t addr, int32_t r);
  204. void instr16_31_reg(int32_t r1, int32_t r);
  205. void instr32_31_mem(int32_t addr, int32_t r);
  206. void instr32_31_reg(int32_t r1, int32_t r);
  207. void instr_32_mem(int32_t addr, int32_t r);
  208. void instr_32_reg(int32_t r1, int32_t r);
  209. void instr16_33_mem(int32_t addr, int32_t r);
  210. void instr16_33_reg(int32_t r1, int32_t r);
  211. void instr32_33_mem(int32_t addr, int32_t r);
  212. void instr32_33_reg(int32_t r1, int32_t r);
  213. void instr_34(int32_t imm8);
  214. void instr16_35(int32_t imm16);
  215. void instr32_35(int32_t imm32);
  216. void instr_36(void);
  217. void instr_37(void);
  218. void instr_38_mem(int32_t addr, int32_t r);
  219. void instr_38_reg(int32_t r1, int32_t r);
  220. void instr16_39_mem(int32_t addr, int32_t r);
  221. void instr16_39_reg(int32_t r1, int32_t r);
  222. void instr32_39_mem(int32_t addr, int32_t r);
  223. void instr32_39_reg(int32_t r1, int32_t r);
  224. void instr_3A_mem(int32_t addr, int32_t r);
  225. void instr_3A_reg(int32_t r1, int32_t r);
  226. void instr16_3B_mem(int32_t addr, int32_t r);
  227. void instr16_3B_reg(int32_t r1, int32_t r);
  228. void instr32_3B_mem(int32_t addr, int32_t r);
  229. void instr32_3B_reg(int32_t r1, int32_t r);
  230. void instr_3C(int32_t imm8);
  231. void instr16_3D(int32_t imm16);
  232. void instr32_3D(int32_t imm32);
  233. void instr_3E(void);
  234. void instr_3F(void);
  235. void instr16_40(void);
  236. void instr32_40(void);
  237. void instr16_41(void);
  238. void instr32_41(void);
  239. void instr16_42(void);
  240. void instr32_42(void);
  241. void instr16_43(void);
  242. void instr32_43(void);
  243. void instr16_44(void);
  244. void instr32_44(void);
  245. void instr16_45(void);
  246. void instr32_45(void);
  247. void instr16_46(void);
  248. void instr32_46(void);
  249. void instr16_47(void);
  250. void instr32_47(void);
  251. void instr16_48(void);
  252. void instr32_48(void);
  253. void instr16_49(void);
  254. void instr32_49(void);
  255. void instr16_4A(void);
  256. void instr32_4A(void);
  257. void instr16_4B(void);
  258. void instr32_4B(void);
  259. void instr16_4C(void);
  260. void instr32_4C(void);
  261. void instr16_4D(void);
  262. void instr32_4D(void);
  263. void instr16_4E(void);
  264. void instr32_4E(void);
  265. void instr16_4F(void);
  266. void instr32_4F(void);
  267. void instr16_50(void);
  268. void instr32_50(void);
  269. void instr16_51(void);
  270. void instr32_51(void);
  271. void instr16_52(void);
  272. void instr32_52(void);
  273. void instr16_53(void);
  274. void instr32_53(void);
  275. void instr16_54(void);
  276. void instr32_54(void);
  277. void instr16_55(void);
  278. void instr32_55(void);
  279. void instr16_56(void);
  280. void instr32_56(void);
  281. void instr16_57(void);
  282. void instr32_57(void);
  283. void instr16_58(void);
  284. void instr32_58(void);
  285. void instr16_59(void);
  286. void instr32_59(void);
  287. void instr16_5A(void);
  288. void instr32_5A(void);
  289. void instr16_5B(void);
  290. void instr32_5B(void);
  291. void instr16_5C(void);
  292. void instr32_5C(void);
  293. void instr16_5D(void);
  294. void instr32_5D(void);
  295. void instr16_5E(void);
  296. void instr32_5E(void);
  297. void instr16_5F(void);
  298. void instr32_5F(void);
  299. void instr16_60(void);
  300. void instr32_60(void);
  301. void instr16_61(void);
  302. void instr32_61(void);
  303. void instr_62_reg(int32_t r2, int32_t r);
  304. void instr_62_mem(int32_t addr, int32_t r);
  305. void instr_63_mem(int32_t addr, int32_t r);
  306. void instr_63_reg(int32_t r1, int32_t r);
  307. void instr_64(void);
  308. void instr_65(void);
  309. void instr_66(void);
  310. void instr_67(void);
  311. void instr16_68(int32_t imm16);
  312. void instr32_68(int32_t imm32);
  313. void instr16_69_mem(int32_t addr, int32_t r, int32_t imm);
  314. void instr16_69_reg(int32_t r1, int32_t r, int32_t imm);
  315. void instr32_69_mem(int32_t addr, int32_t r, int32_t imm);
  316. void instr32_69_reg(int32_t r1, int32_t r, int32_t imm);
  317. void instr16_6A(int32_t imm8);
  318. void instr32_6A(int32_t imm8);
  319. void instr16_6B_mem(int32_t addr, int32_t r, int32_t imm);
  320. void instr16_6B_reg(int32_t r1, int32_t r, int32_t imm);
  321. void instr32_6B_mem(int32_t addr, int32_t r, int32_t imm);
  322. void instr32_6B_reg(int32_t r1, int32_t r, int32_t imm);
  323. void instr_6C(void);
  324. void instr16_6D(void);
  325. void instr32_6D(void);
  326. void instr_6E(void);
  327. void instr16_6F(void);
  328. void instr32_6F(void);
  329. void instr_70(int32_t imm8);
  330. void instr_71(int32_t imm8);
  331. void instr_72(int32_t imm8);
  332. void instr_73(int32_t imm8);
  333. void instr_74(int32_t imm8);
  334. void instr_75(int32_t imm8);
  335. void instr_76(int32_t imm8);
  336. void instr_77(int32_t imm8);
  337. void instr_78(int32_t imm8);
  338. void instr_79(int32_t imm8);
  339. void instr_7A(int32_t imm8);
  340. void instr_7B(int32_t imm8);
  341. void instr_7C(int32_t imm8);
  342. void instr_7D(int32_t imm8);
  343. void instr_7E(int32_t imm8);
  344. void instr_7F(int32_t imm8);
  345. void instr_80_0_mem(int32_t addr, int32_t imm);
  346. void instr_80_0_reg(int32_t r1, int32_t imm);
  347. void instr_80_1_mem(int32_t addr, int32_t imm);
  348. void instr_80_1_reg(int32_t r1, int32_t imm);
  349. void instr_80_2_mem(int32_t addr, int32_t imm);
  350. void instr_80_2_reg(int32_t r1, int32_t imm);
  351. void instr_80_3_mem(int32_t addr, int32_t imm);
  352. void instr_80_3_reg(int32_t r1, int32_t imm);
  353. void instr_80_4_mem(int32_t addr, int32_t imm);
  354. void instr_80_4_reg(int32_t r1, int32_t imm);
  355. void instr_80_5_mem(int32_t addr, int32_t imm);
  356. void instr_80_5_reg(int32_t r1, int32_t imm);
  357. void instr_80_6_mem(int32_t addr, int32_t imm);
  358. void instr_80_6_reg(int32_t r1, int32_t imm);
  359. void instr_80_7_reg(int32_t r, int32_t imm);
  360. void instr_80_7_mem(int32_t addr, int32_t imm);
  361. void instr16_81_0_mem(int32_t addr, int32_t imm);
  362. void instr16_81_0_reg(int32_t r1, int32_t imm);
  363. void instr16_81_1_mem(int32_t addr, int32_t imm);
  364. void instr16_81_1_reg(int32_t r1, int32_t imm);
  365. void instr16_81_2_mem(int32_t addr, int32_t imm);
  366. void instr16_81_2_reg(int32_t r1, int32_t imm);
  367. void instr16_81_3_mem(int32_t addr, int32_t imm);
  368. void instr16_81_3_reg(int32_t r1, int32_t imm);
  369. void instr16_81_4_mem(int32_t addr, int32_t imm);
  370. void instr16_81_4_reg(int32_t r1, int32_t imm);
  371. void instr16_81_5_mem(int32_t addr, int32_t imm);
  372. void instr16_81_5_reg(int32_t r1, int32_t imm);
  373. void instr16_81_6_mem(int32_t addr, int32_t imm);
  374. void instr16_81_6_reg(int32_t r1, int32_t imm);
  375. void instr16_81_7_reg(int32_t r, int32_t imm);
  376. void instr16_81_7_mem(int32_t addr, int32_t imm);
  377. void instr32_81_0_mem(int32_t addr, int32_t imm);
  378. void instr32_81_0_reg(int32_t r1, int32_t imm);
  379. void instr32_81_1_mem(int32_t addr, int32_t imm);
  380. void instr32_81_1_reg(int32_t r1, int32_t imm);
  381. void instr32_81_2_mem(int32_t addr, int32_t imm);
  382. void instr32_81_2_reg(int32_t r1, int32_t imm);
  383. void instr32_81_3_mem(int32_t addr, int32_t imm);
  384. void instr32_81_3_reg(int32_t r1, int32_t imm);
  385. void instr32_81_4_mem(int32_t addr, int32_t imm);
  386. void instr32_81_4_reg(int32_t r1, int32_t imm);
  387. void instr32_81_5_mem(int32_t addr, int32_t imm);
  388. void instr32_81_5_reg(int32_t r1, int32_t imm);
  389. void instr32_81_6_mem(int32_t addr, int32_t imm);
  390. void instr32_81_6_reg(int32_t r1, int32_t imm);
  391. void instr32_81_7_reg(int32_t r, int32_t imm);
  392. void instr32_81_7_mem(int32_t addr, int32_t imm);
  393. void instr_82_0_mem(int32_t addr, int32_t imm);
  394. void instr_82_0_reg(int32_t r1, int32_t imm);
  395. void instr_82_1_mem(int32_t addr, int32_t imm);
  396. void instr_82_1_reg(int32_t r1, int32_t imm);
  397. void instr_82_2_mem(int32_t addr, int32_t imm);
  398. void instr_82_2_reg(int32_t r1, int32_t imm);
  399. void instr_82_3_mem(int32_t addr, int32_t imm);
  400. void instr_82_3_reg(int32_t r1, int32_t imm);
  401. void instr_82_4_mem(int32_t addr, int32_t imm);
  402. void instr_82_4_reg(int32_t r1, int32_t imm);
  403. void instr_82_5_mem(int32_t addr, int32_t imm);
  404. void instr_82_5_reg(int32_t r1, int32_t imm);
  405. void instr_82_6_mem(int32_t addr, int32_t imm);
  406. void instr_82_6_reg(int32_t r1, int32_t imm);
  407. void instr_82_7_reg(int32_t r, int32_t imm);
  408. void instr_82_7_mem(int32_t addr, int32_t imm);
  409. void instr16_83_0_mem(int32_t addr, int32_t imm);
  410. void instr16_83_0_reg(int32_t r1, int32_t imm);
  411. void instr16_83_1_mem(int32_t addr, int32_t imm);
  412. void instr16_83_1_reg(int32_t r1, int32_t imm);
  413. void instr16_83_2_mem(int32_t addr, int32_t imm);
  414. void instr16_83_2_reg(int32_t r1, int32_t imm);
  415. void instr16_83_3_mem(int32_t addr, int32_t imm);
  416. void instr16_83_3_reg(int32_t r1, int32_t imm);
  417. void instr16_83_4_mem(int32_t addr, int32_t imm);
  418. void instr16_83_4_reg(int32_t r1, int32_t imm);
  419. void instr16_83_5_mem(int32_t addr, int32_t imm);
  420. void instr16_83_5_reg(int32_t r1, int32_t imm);
  421. void instr16_83_6_mem(int32_t addr, int32_t imm);
  422. void instr16_83_6_reg(int32_t r1, int32_t imm);
  423. void instr16_83_7_reg(int32_t r, int32_t imm);
  424. void instr16_83_7_mem(int32_t addr, int32_t imm);
  425. void instr32_83_0_mem(int32_t addr, int32_t imm);
  426. void instr32_83_0_reg(int32_t r1, int32_t imm);
  427. void instr32_83_1_mem(int32_t addr, int32_t imm);
  428. void instr32_83_1_reg(int32_t r1, int32_t imm);
  429. void instr32_83_2_mem(int32_t addr, int32_t imm);
  430. void instr32_83_2_reg(int32_t r1, int32_t imm);
  431. void instr32_83_3_mem(int32_t addr, int32_t imm);
  432. void instr32_83_3_reg(int32_t r1, int32_t imm);
  433. void instr32_83_4_mem(int32_t addr, int32_t imm);
  434. void instr32_83_4_reg(int32_t r1, int32_t imm);
  435. void instr32_83_5_mem(int32_t addr, int32_t imm);
  436. void instr32_83_5_reg(int32_t r1, int32_t imm);
  437. void instr32_83_6_mem(int32_t addr, int32_t imm);
  438. void instr32_83_6_reg(int32_t r1, int32_t imm);
  439. void instr32_83_7_reg(int32_t r, int32_t imm);
  440. void instr32_83_7_mem(int32_t addr, int32_t imm);
  441. void instr_84_mem(int32_t addr, int32_t r);
  442. void instr_84_reg(int32_t r1, int32_t r);
  443. void instr16_85_mem(int32_t addr, int32_t r);
  444. void instr16_85_reg(int32_t r1, int32_t r);
  445. void instr32_85_mem(int32_t addr, int32_t r);
  446. void instr32_85_reg(int32_t r1, int32_t r);
  447. void instr_86_mem(int32_t addr, int32_t r);
  448. void instr_86_reg(int32_t r1, int32_t r);
  449. void instr16_87_mem(int32_t addr, int32_t r);
  450. void instr16_87_reg(int32_t r1, int32_t r);
  451. void instr32_87_mem(int32_t addr, int32_t r);
  452. void instr32_87_reg(int32_t r1, int32_t r);
  453. void instr_88_reg(int32_t r2, int32_t r);
  454. void instr_88_mem(int32_t addr, int32_t r);
  455. void instr16_89_reg(int32_t r2, int32_t r);
  456. void instr16_89_mem(int32_t addr, int32_t r);
  457. void instr32_89_reg(int32_t r2, int32_t r);
  458. void instr32_89_mem(int32_t addr, int32_t r);
  459. void instr_8A_mem(int32_t addr, int32_t r);
  460. void instr_8A_reg(int32_t r1, int32_t r);
  461. void instr16_8B_mem(int32_t addr, int32_t r);
  462. void instr16_8B_reg(int32_t r1, int32_t r);
  463. void instr32_8B_mem(int32_t addr, int32_t r);
  464. void instr32_8B_reg(int32_t r1, int32_t r);
  465. void instr_8C_check_sreg(int32_t sreg);
  466. void instr16_8C_reg(int32_t r, int32_t seg);
  467. void instr16_8C_mem(int32_t addr, int32_t seg);
  468. void instr32_8C_reg(int32_t r, int32_t seg);
  469. void instr32_8C_mem(int32_t addr, int32_t seg);
  470. void instr16_8D_reg(int32_t r, int32_t r2);
  471. void instr16_8D_mem_pre(void);
  472. void instr16_8D_mem(int32_t addr, int32_t r);
  473. void instr32_8D_reg(int32_t r, int32_t r2);
  474. void instr32_8D_mem_pre(void);
  475. void instr32_8D_mem(int32_t addr, int32_t r);
  476. void instr_8E_helper(int32_t data, int32_t mod);
  477. void instr_8E_mem(int32_t addr, int32_t r);
  478. void instr_8E_reg(int32_t r1, int32_t r);
  479. void instr16_8F_0_mem_pre(void);
  480. void instr16_8F_0_mem(int32_t addr);
  481. void instr16_8F_0_reg(int32_t r);
  482. void instr32_8F_0_mem_pre(void);
  483. void instr32_8F_0_mem(int32_t addr);
  484. void instr32_8F_0_reg(int32_t r);
  485. void instr_90(void);
  486. void instr16_91(void);
  487. void instr32_91(void);
  488. void instr16_92(void);
  489. void instr32_92(void);
  490. void instr16_93(void);
  491. void instr32_93(void);
  492. void instr16_94(void);
  493. void instr32_94(void);
  494. void instr16_95(void);
  495. void instr32_95(void);
  496. void instr16_96(void);
  497. void instr32_96(void);
  498. void instr16_97(void);
  499. void instr32_97(void);
  500. void instr16_98(void);
  501. void instr32_98(void);
  502. void instr16_99(void);
  503. void instr32_99(void);
  504. void instr16_9A(int32_t new_ip, int32_t new_cs);
  505. void instr32_9A(int32_t new_ip, int32_t new_cs);
  506. void instr_9B(void);
  507. void instr16_9C(void);
  508. void instr32_9C(void);
  509. void instr16_9D(void);
  510. void instr32_9D(void);
  511. void instr_9E(void);
  512. void instr_9F(void);
  513. void instr_A0(int32_t moffs);
  514. void instr16_A1(int32_t moffs);
  515. void instr32_A1(int32_t moffs);
  516. void instr_A2(int32_t moffs);
  517. void instr16_A3(int32_t moffs);
  518. void instr32_A3(int32_t moffs);
  519. void instr_A4(void);
  520. void instr16_A5(void);
  521. void instr32_A5(void);
  522. void instr_A6(void);
  523. void instr16_A7(void);
  524. void instr32_A7(void);
  525. void instr_A8(int32_t imm8);
  526. void instr16_A9(int32_t imm16);
  527. void instr32_A9(int32_t imm32);
  528. void instr_AA(void);
  529. void instr16_AB(void);
  530. void instr32_AB(void);
  531. void instr_AC(void);
  532. void instr16_AD(void);
  533. void instr32_AD(void);
  534. void instr_AE(void);
  535. void instr16_AF(void);
  536. void instr32_AF(void);
  537. void instr_B0(int32_t imm8);
  538. void instr_B1(int32_t imm8);
  539. void instr_B2(int32_t imm8);
  540. void instr_B3(int32_t imm8);
  541. void instr_B4(int32_t imm8);
  542. void instr_B5(int32_t imm8);
  543. void instr_B6(int32_t imm8);
  544. void instr_B7(int32_t imm8);
  545. void instr16_B8(int32_t imm);
  546. void instr32_B8(int32_t imm);
  547. void instr16_B9(int32_t imm);
  548. void instr32_B9(int32_t imm);
  549. void instr16_BA(int32_t imm);
  550. void instr32_BA(int32_t imm);
  551. void instr16_BB(int32_t imm);
  552. void instr32_BB(int32_t imm);
  553. void instr16_BC(int32_t imm);
  554. void instr32_BC(int32_t imm);
  555. void instr16_BD(int32_t imm);
  556. void instr32_BD(int32_t imm);
  557. void instr16_BE(int32_t imm);
  558. void instr32_BE(int32_t imm);
  559. void instr16_BF(int32_t imm);
  560. void instr32_BF(int32_t imm);
  561. void instr_C0_0_mem(int32_t addr, int32_t imm);
  562. void instr_C0_0_reg(int32_t r1, int32_t imm);
  563. void instr_C0_1_mem(int32_t addr, int32_t imm);
  564. void instr_C0_1_reg(int32_t r1, int32_t imm);
  565. void instr_C0_2_mem(int32_t addr, int32_t imm);
  566. void instr_C0_2_reg(int32_t r1, int32_t imm);
  567. void instr_C0_3_mem(int32_t addr, int32_t imm);
  568. void instr_C0_3_reg(int32_t r1, int32_t imm);
  569. void instr_C0_4_mem(int32_t addr, int32_t imm);
  570. void instr_C0_4_reg(int32_t r1, int32_t imm);
  571. void instr_C0_5_mem(int32_t addr, int32_t imm);
  572. void instr_C0_5_reg(int32_t r1, int32_t imm);
  573. void instr_C0_6_mem(int32_t addr, int32_t imm);
  574. void instr_C0_6_reg(int32_t r1, int32_t imm);
  575. void instr_C0_7_mem(int32_t addr, int32_t imm);
  576. void instr_C0_7_reg(int32_t r1, int32_t imm);
  577. void instr16_C1_0_mem(int32_t addr, int32_t imm);
  578. void instr16_C1_0_reg(int32_t r1, int32_t imm);
  579. void instr16_C1_1_mem(int32_t addr, int32_t imm);
  580. void instr16_C1_1_reg(int32_t r1, int32_t imm);
  581. void instr16_C1_2_mem(int32_t addr, int32_t imm);
  582. void instr16_C1_2_reg(int32_t r1, int32_t imm);
  583. void instr16_C1_3_mem(int32_t addr, int32_t imm);
  584. void instr16_C1_3_reg(int32_t r1, int32_t imm);
  585. void instr16_C1_4_mem(int32_t addr, int32_t imm);
  586. void instr16_C1_4_reg(int32_t r1, int32_t imm);
  587. void instr16_C1_5_mem(int32_t addr, int32_t imm);
  588. void instr16_C1_5_reg(int32_t r1, int32_t imm);
  589. void instr16_C1_6_mem(int32_t addr, int32_t imm);
  590. void instr16_C1_6_reg(int32_t r1, int32_t imm);
  591. void instr16_C1_7_mem(int32_t addr, int32_t imm);
  592. void instr16_C1_7_reg(int32_t r1, int32_t imm);
  593. void instr32_C1_0_mem(int32_t addr, int32_t imm);
  594. void instr32_C1_0_reg(int32_t r1, int32_t imm);
  595. void instr32_C1_1_mem(int32_t addr, int32_t imm);
  596. void instr32_C1_1_reg(int32_t r1, int32_t imm);
  597. void instr32_C1_2_mem(int32_t addr, int32_t imm);
  598. void instr32_C1_2_reg(int32_t r1, int32_t imm);
  599. void instr32_C1_3_mem(int32_t addr, int32_t imm);
  600. void instr32_C1_3_reg(int32_t r1, int32_t imm);
  601. void instr32_C1_4_mem(int32_t addr, int32_t imm);
  602. void instr32_C1_4_reg(int32_t r1, int32_t imm);
  603. void instr32_C1_5_mem(int32_t addr, int32_t imm);
  604. void instr32_C1_5_reg(int32_t r1, int32_t imm);
  605. void instr32_C1_6_mem(int32_t addr, int32_t imm);
  606. void instr32_C1_6_reg(int32_t r1, int32_t imm);
  607. void instr32_C1_7_mem(int32_t addr, int32_t imm);
  608. void instr32_C1_7_reg(int32_t r1, int32_t imm);
  609. void instr16_C2(int32_t imm16);
  610. void instr32_C2(int32_t imm16);
  611. void instr16_C3(void);
  612. void instr32_C3(void);
  613. void instr16_C4_reg(int32_t _unused1, int32_t _unused2);
  614. void instr16_C4_mem(int32_t addr, int32_t r);
  615. void instr32_C4_reg(int32_t _unused1, int32_t _unused2);
  616. void instr32_C4_mem(int32_t addr, int32_t r);
  617. void instr16_C5_reg(int32_t _unused1, int32_t _unused2);
  618. void instr16_C5_mem(int32_t addr, int32_t r);
  619. void instr32_C5_reg(int32_t _unused1, int32_t _unused2);
  620. void instr32_C5_mem(int32_t addr, int32_t r);
  621. void instr_C6_0_reg(int32_t r, int32_t imm);
  622. void instr_C6_0_mem(int32_t addr, int32_t imm);
  623. void instr16_C7_0_reg(int32_t r, int32_t imm);
  624. void instr16_C7_0_mem(int32_t addr, int32_t imm);
  625. void instr32_C7_0_reg(int32_t r, int32_t imm);
  626. void instr32_C7_0_mem(int32_t addr, int32_t imm);
  627. void instr16_C8(int32_t size, int32_t nesting);
  628. void instr32_C8(int32_t size, int32_t nesting);
  629. void instr16_C9(void);
  630. void instr32_C9(void);
  631. void instr16_CA(int32_t imm16);
  632. void instr32_CA(int32_t imm16);
  633. void instr16_CB(void);
  634. void instr32_CB(void);
  635. void instr_CC(void);
  636. void instr_CD(int32_t imm8);
  637. void instr_CE(void);
  638. void instr16_CF(void);
  639. void instr32_CF(void);
  640. void instr_D0_0_mem(int32_t addr);
  641. void instr_D0_0_reg(int32_t r1);
  642. void instr_D0_1_mem(int32_t addr);
  643. void instr_D0_1_reg(int32_t r1);
  644. void instr_D0_2_mem(int32_t addr);
  645. void instr_D0_2_reg(int32_t r1);
  646. void instr_D0_3_mem(int32_t addr);
  647. void instr_D0_3_reg(int32_t r1);
  648. void instr_D0_4_mem(int32_t addr);
  649. void instr_D0_4_reg(int32_t r1);
  650. void instr_D0_5_mem(int32_t addr);
  651. void instr_D0_5_reg(int32_t r1);
  652. void instr_D0_6_mem(int32_t addr);
  653. void instr_D0_6_reg(int32_t r1);
  654. void instr_D0_7_mem(int32_t addr);
  655. void instr_D0_7_reg(int32_t r1);
  656. void instr16_D1_0_mem(int32_t addr);
  657. void instr16_D1_0_reg(int32_t r1);
  658. void instr16_D1_1_mem(int32_t addr);
  659. void instr16_D1_1_reg(int32_t r1);
  660. void instr16_D1_2_mem(int32_t addr);
  661. void instr16_D1_2_reg(int32_t r1);
  662. void instr16_D1_3_mem(int32_t addr);
  663. void instr16_D1_3_reg(int32_t r1);
  664. void instr16_D1_4_mem(int32_t addr);
  665. void instr16_D1_4_reg(int32_t r1);
  666. void instr16_D1_5_mem(int32_t addr);
  667. void instr16_D1_5_reg(int32_t r1);
  668. void instr16_D1_6_mem(int32_t addr);
  669. void instr16_D1_6_reg(int32_t r1);
  670. void instr16_D1_7_mem(int32_t addr);
  671. void instr16_D1_7_reg(int32_t r1);
  672. void instr32_D1_0_mem(int32_t addr);
  673. void instr32_D1_0_reg(int32_t r1);
  674. void instr32_D1_1_mem(int32_t addr);
  675. void instr32_D1_1_reg(int32_t r1);
  676. void instr32_D1_2_mem(int32_t addr);
  677. void instr32_D1_2_reg(int32_t r1);
  678. void instr32_D1_3_mem(int32_t addr);
  679. void instr32_D1_3_reg(int32_t r1);
  680. void instr32_D1_4_mem(int32_t addr);
  681. void instr32_D1_4_reg(int32_t r1);
  682. void instr32_D1_5_mem(int32_t addr);
  683. void instr32_D1_5_reg(int32_t r1);
  684. void instr32_D1_6_mem(int32_t addr);
  685. void instr32_D1_6_reg(int32_t r1);
  686. void instr32_D1_7_mem(int32_t addr);
  687. void instr32_D1_7_reg(int32_t r1);
  688. void instr_D2_0_mem(int32_t addr);
  689. void instr_D2_0_reg(int32_t r1);
  690. void instr_D2_1_mem(int32_t addr);
  691. void instr_D2_1_reg(int32_t r1);
  692. void instr_D2_2_mem(int32_t addr);
  693. void instr_D2_2_reg(int32_t r1);
  694. void instr_D2_3_mem(int32_t addr);
  695. void instr_D2_3_reg(int32_t r1);
  696. void instr_D2_4_mem(int32_t addr);
  697. void instr_D2_4_reg(int32_t r1);
  698. void instr_D2_5_mem(int32_t addr);
  699. void instr_D2_5_reg(int32_t r1);
  700. void instr_D2_6_mem(int32_t addr);
  701. void instr_D2_6_reg(int32_t r1);
  702. void instr_D2_7_mem(int32_t addr);
  703. void instr_D2_7_reg(int32_t r1);
  704. void instr16_D3_0_mem(int32_t addr);
  705. void instr16_D3_0_reg(int32_t r1);
  706. void instr16_D3_1_mem(int32_t addr);
  707. void instr16_D3_1_reg(int32_t r1);
  708. void instr16_D3_2_mem(int32_t addr);
  709. void instr16_D3_2_reg(int32_t r1);
  710. void instr16_D3_3_mem(int32_t addr);
  711. void instr16_D3_3_reg(int32_t r1);
  712. void instr16_D3_4_mem(int32_t addr);
  713. void instr16_D3_4_reg(int32_t r1);
  714. void instr16_D3_5_mem(int32_t addr);
  715. void instr16_D3_5_reg(int32_t r1);
  716. void instr16_D3_6_mem(int32_t addr);
  717. void instr16_D3_6_reg(int32_t r1);
  718. void instr16_D3_7_mem(int32_t addr);
  719. void instr16_D3_7_reg(int32_t r1);
  720. void instr32_D3_0_mem(int32_t addr);
  721. void instr32_D3_0_reg(int32_t r1);
  722. void instr32_D3_1_mem(int32_t addr);
  723. void instr32_D3_1_reg(int32_t r1);
  724. void instr32_D3_2_mem(int32_t addr);
  725. void instr32_D3_2_reg(int32_t r1);
  726. void instr32_D3_3_mem(int32_t addr);
  727. void instr32_D3_3_reg(int32_t r1);
  728. void instr32_D3_4_mem(int32_t addr);
  729. void instr32_D3_4_reg(int32_t r1);
  730. void instr32_D3_5_mem(int32_t addr);
  731. void instr32_D3_5_reg(int32_t r1);
  732. void instr32_D3_6_mem(int32_t addr);
  733. void instr32_D3_6_reg(int32_t r1);
  734. void instr32_D3_7_mem(int32_t addr);
  735. void instr32_D3_7_reg(int32_t r1);
  736. void instr_D4(int32_t arg);
  737. void instr_D5(int32_t arg);
  738. void instr_D6(void);
  739. void instr_D7(void);
  740. void instr_E0(int32_t off);
  741. void instr_E1(int32_t off);
  742. void instr_E2(int32_t off);
  743. void instr_E3(int32_t off);
  744. void instr_E4(int32_t port);
  745. void instr16_E5(int32_t port);
  746. void instr32_E5(int32_t port);
  747. void instr_E6(int32_t port);
  748. void instr16_E7(int32_t port);
  749. void instr32_E7(int32_t port);
  750. void instr16_E8(int32_t imm16);
  751. void instr32_E8(int32_t imm32s);
  752. void instr16_E9(int32_t imm16);
  753. void instr32_E9(int32_t imm32s);
  754. void instr16_EA(int32_t new_ip, int32_t cs);
  755. void instr32_EA(int32_t new_ip, int32_t cs);
  756. void instr_EB(int32_t imm8);
  757. void instr_EC(void);
  758. void instr16_ED(void);
  759. void instr32_ED(void);
  760. void instr_EE(void);
  761. void instr16_EF(void);
  762. void instr32_EF(void);
  763. void instr_F0(void);
  764. void instr_F1(void);
  765. void instr_F2(void);
  766. void instr_F3(void);
  767. void instr_F4(void);
  768. void instr_F5(void);
  769. void instr_F6_0_mem(int32_t addr, int32_t imm);
  770. void instr_F6_0_reg(int32_t r1, int32_t imm);
  771. void instr_F6_1_mem(int32_t addr, int32_t imm);
  772. void instr_F6_1_reg(int32_t r1, int32_t imm);
  773. void instr_F6_2_mem(int32_t addr);
  774. void instr_F6_2_reg(int32_t r1);
  775. void instr_F6_3_mem(int32_t addr);
  776. void instr_F6_3_reg(int32_t r1);
  777. void instr_F6_4_mem(int32_t addr);
  778. void instr_F6_4_reg(int32_t r1);
  779. void instr_F6_5_mem(int32_t addr);
  780. void instr_F6_5_reg(int32_t r1);
  781. void instr_F6_6_mem(int32_t addr);
  782. void instr_F6_6_reg(int32_t r1);
  783. void instr_F6_7_mem(int32_t addr);
  784. void instr_F6_7_reg(int32_t r1);
  785. void instr16_F7_0_mem(int32_t addr, int32_t imm);
  786. void instr16_F7_0_reg(int32_t r1, int32_t imm);
  787. void instr16_F7_1_mem(int32_t addr, int32_t imm);
  788. void instr16_F7_1_reg(int32_t r1, int32_t imm);
  789. void instr16_F7_2_mem(int32_t addr);
  790. void instr16_F7_2_reg(int32_t r1);
  791. void instr16_F7_3_mem(int32_t addr);
  792. void instr16_F7_3_reg(int32_t r1);
  793. void instr16_F7_4_mem(int32_t addr);
  794. void instr16_F7_4_reg(int32_t r1);
  795. void instr16_F7_5_mem(int32_t addr);
  796. void instr16_F7_5_reg(int32_t r1);
  797. void instr16_F7_6_mem(int32_t addr);
  798. void instr16_F7_6_reg(int32_t r1);
  799. void instr16_F7_7_mem(int32_t addr);
  800. void instr16_F7_7_reg(int32_t r1);
  801. void instr32_F7_0_mem(int32_t addr, int32_t imm);
  802. void instr32_F7_0_reg(int32_t r1, int32_t imm);
  803. void instr32_F7_1_mem(int32_t addr, int32_t imm);
  804. void instr32_F7_1_reg(int32_t r1, int32_t imm);
  805. void instr32_F7_2_mem(int32_t addr);
  806. void instr32_F7_2_reg(int32_t r1);
  807. void instr32_F7_3_mem(int32_t addr);
  808. void instr32_F7_3_reg(int32_t r1);
  809. void instr32_F7_4_mem(int32_t addr);
  810. void instr32_F7_4_reg(int32_t r1);
  811. void instr32_F7_5_mem(int32_t addr);
  812. void instr32_F7_5_reg(int32_t r1);
  813. void instr32_F7_6_mem(int32_t addr);
  814. void instr32_F7_6_reg(int32_t r1);
  815. void instr32_F7_7_mem(int32_t addr);
  816. void instr32_F7_7_reg(int32_t r1);
  817. void instr_F8(void);
  818. void instr_F9(void);
  819. void instr_FA(void);
  820. void instr_FB(void);
  821. void instr_FC(void);
  822. void instr_FD(void);
  823. void instr_FE_0_mem(int32_t addr);
  824. void instr_FE_0_reg(int32_t r1);
  825. void instr_FE_1_mem(int32_t addr);
  826. void instr_FE_1_reg(int32_t r1);
  827. void instr16_FF_0_mem(int32_t addr);
  828. void instr16_FF_0_reg(int32_t r1);
  829. void instr16_FF_1_mem(int32_t addr);
  830. void instr16_FF_1_reg(int32_t r1);
  831. void instr16_FF_2_helper(int32_t data);
  832. void instr16_FF_2_mem(int32_t addr);
  833. void instr16_FF_2_reg(int32_t r1);
  834. void instr16_FF_3_reg(int32_t r);
  835. void instr16_FF_3_mem(int32_t addr);
  836. void instr16_FF_4_helper(int32_t data);
  837. void instr16_FF_4_mem(int32_t addr);
  838. void instr16_FF_4_reg(int32_t r1);
  839. void instr16_FF_5_reg(int32_t r);
  840. void instr16_FF_5_mem(int32_t addr);
  841. void instr16_FF_6_mem(int32_t addr);
  842. void instr16_FF_6_reg(int32_t r1);
  843. void instr32_FF_0_mem(int32_t addr);
  844. void instr32_FF_0_reg(int32_t r1);
  845. void instr32_FF_1_mem(int32_t addr);
  846. void instr32_FF_1_reg(int32_t r1);
  847. void instr32_FF_2_helper(int32_t data);
  848. void instr32_FF_2_mem(int32_t addr);
  849. void instr32_FF_2_reg(int32_t r1);
  850. void instr32_FF_3_reg(int32_t r);
  851. void instr32_FF_3_mem(int32_t addr);
  852. void instr32_FF_4_helper(int32_t data);
  853. void instr32_FF_4_mem(int32_t addr);
  854. void instr32_FF_4_reg(int32_t r1);
  855. void instr32_FF_5_reg(int32_t r);
  856. void instr32_FF_5_mem(int32_t addr);
  857. void instr32_FF_6_mem(int32_t addr);
  858. void instr32_FF_6_reg(int32_t r1);
  859. void run_instruction(int32_t opcode);