123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890 |
- #pragma once
- #include "cpu.h"
- #include <stdint.h>
- #define SAFE_READ_WRITE8(addr, fun) \
- int32_t phys_addr = translate_address_write(addr); \
- int32_t ___ = read8(phys_addr); \
- write8(phys_addr, fun);
- #define SAFE_READ_WRITE16(addr, fun) \
- int32_t phys_addr = translate_address_write(addr); \
- if((phys_addr & 0xFFF) == 0xFFF) \
- { \
- int32_t phys_addr_high = translate_address_write((addr) + 1); \
- int32_t ___ = virt_boundary_read16(phys_addr, phys_addr_high); \
- virt_boundary_write16(phys_addr, phys_addr_high, fun); \
- } \
- else \
- { \
- int32_t ___ = read16(phys_addr); \
- write16(phys_addr, fun); \
- }
- #define SAFE_READ_WRITE32(addr, fun) \
- int32_t phys_addr = translate_address_write(addr); \
- if((phys_addr & 0xFFF) >= 0xFFD) \
- { \
- int32_t phys_addr_high = translate_address_write((addr) + 3 & ~3) | ((addr) + 3) & 3; \
- int32_t ___ = virt_boundary_read32s(phys_addr, phys_addr_high); \
- virt_boundary_write32(phys_addr, phys_addr_high, fun); \
- } \
- else \
- { \
- int32_t ___ = read32s(phys_addr); \
- write32(phys_addr, fun); \
- }
- #define DEFINE_MODRM_INSTR1_READ_WRITE_8(name, fun) \
- void name ## _mem(int32_t addr) { SAFE_READ_WRITE8(addr, fun) } \
- void name ## _reg(int32_t r1) { int32_t ___ = read_reg8(r1); write_reg8(r1, fun); }
- #define DEFINE_MODRM_INSTR1_READ_WRITE_16(name, fun) \
- void name ## _mem(int32_t addr) { SAFE_READ_WRITE16(addr, fun) } \
- void name ## _reg(int32_t r1) { int32_t ___ = read_reg16(r1); write_reg16(r1, fun); }
- #define DEFINE_MODRM_INSTR1_READ_WRITE_32(name, fun) \
- void name ## _mem(int32_t addr) { SAFE_READ_WRITE32(addr, fun) } \
- void name ## _reg(int32_t r1) { int32_t ___ = read_reg32(r1); write_reg32(r1, fun); }
- #define DEFINE_MODRM_INSTR2_READ_WRITE_8(name, fun) \
- void name ## _mem(int32_t addr, int32_t imm) { SAFE_READ_WRITE8(addr, fun) } \
- void name ## _reg(int32_t r1, int32_t imm) { int32_t ___ = read_reg8(r1); write_reg8(r1, fun); }
- #define DEFINE_MODRM_INSTR2_READ_WRITE_16(name, fun) \
- void name ## _mem(int32_t addr, int32_t imm) { SAFE_READ_WRITE16(addr, fun) } \
- void name ## _reg(int32_t r1, int32_t imm) { int32_t ___ = read_reg16(r1); write_reg16(r1, fun); }
- #define DEFINE_MODRM_INSTR2_READ_WRITE_32(name, fun) \
- void name ## _mem(int32_t addr, int32_t imm) { SAFE_READ_WRITE32(addr, fun) } \
- void name ## _reg(int32_t r1, int32_t imm) { int32_t ___ = read_reg32(r1); write_reg32(r1, fun); }
- #define DEFINE_MODRM_INSTR_READ_WRITE_8(name, fun) \
- void name ## _mem(int32_t addr, int32_t r) { SAFE_READ_WRITE8(addr, fun) } \
- void name ## _reg(int32_t r1, int32_t r) { int32_t ___ = read_reg8(r1); write_reg8(r1, fun); }
- #define DEFINE_MODRM_INSTR_READ_WRITE_16(name, fun) \
- void name ## _mem(int32_t addr, int32_t r) { SAFE_READ_WRITE16(addr, fun) } \
- void name ## _reg(int32_t r1, int32_t r) { int32_t ___ = read_reg16(r1); write_reg16(r1, fun); }
- #define DEFINE_MODRM_INSTR_READ_WRITE_32(name, fun) \
- void name ## _mem(int32_t addr, int32_t r) { SAFE_READ_WRITE32(addr, fun) } \
- void name ## _reg(int32_t r1, int32_t r) { int32_t ___ = read_reg32(r1); write_reg32(r1, fun); }
- #define DEFINE_MODRM_INSTR1_READ8(name, fun) \
- void name ## _mem(int32_t addr) { int32_t ___ = safe_read8(addr); fun; } \
- void name ## _reg(int32_t r1) { int32_t ___ = read_reg8(r1); fun; }
- #define DEFINE_MODRM_INSTR1_READ16(name, fun) \
- void name ## _mem(int32_t addr) { int32_t ___ = safe_read16(addr); fun; } \
- void name ## _reg(int32_t r1) { int32_t ___ = read_reg16(r1); fun; }
- #define DEFINE_MODRM_INSTR1_READ32(name, fun) \
- void name ## _mem(int32_t addr) { int32_t ___ = safe_read32s(addr); fun; } \
- void name ## _reg(int32_t r1) { int32_t ___ = read_reg32(r1); fun; }
- #define DEFINE_MODRM_INSTR2_READ8(name, fun) \
- void name ## _mem(int32_t addr, int32_t imm) { int32_t ___ = safe_read8(addr); fun; } \
- void name ## _reg(int32_t r1, int32_t imm) { int32_t ___ = read_reg8(r1); fun; }
- #define DEFINE_MODRM_INSTR2_READ16(name, fun) \
- void name ## _mem(int32_t addr, int32_t imm) { int32_t ___ = safe_read16(addr); fun; } \
- void name ## _reg(int32_t r1, int32_t imm) { int32_t ___ = read_reg16(r1); fun; }
- #define DEFINE_MODRM_INSTR2_READ32(name, fun) \
- void name ## _mem(int32_t addr, int32_t imm) { int32_t ___ = safe_read32s(addr); fun; } \
- void name ## _reg(int32_t r1, int32_t imm) { int32_t ___ = read_reg32(r1); fun; }
- #define DEFINE_MODRM_INSTR_READ8(name, fun) \
- void name ## _mem(int32_t addr, int32_t r) { int32_t ___ = safe_read8(addr); fun; } \
- void name ## _reg(int32_t r1, int32_t r) { int32_t ___ = read_reg8(r1); fun; }
- #define DEFINE_MODRM_INSTR_READ16(name, fun) \
- void name ## _mem(int32_t addr, int32_t r) { int32_t ___ = safe_read16(addr); fun; } \
- void name ## _reg(int32_t r1, int32_t r) { int32_t ___ = read_reg16(r1); fun; }
- #define DEFINE_MODRM_INSTR_READ32(name, fun) \
- void name ## _mem(int32_t addr, int32_t r) { int32_t ___ = safe_read32s(addr); fun; } \
- void name ## _reg(int32_t r1, int32_t r) { int32_t ___ = read_reg32(r1); fun; }
- #define DEFINE_MODRM_INSTR_FPU_READ32(name, fun) \
- void name ## _mem(int32_t addr) { task_switch_test(); double_t ___ = fpu_load_m32(addr); fun; } \
- void name ## _reg(int32_t r) { task_switch_test(); double_t ___ = fpu_get_sti(r); fun; }
- void instr_00_mem(int32_t addr, int32_t r);
- void instr_00_reg(int32_t r1, int32_t r);
- void instr16_01_mem(int32_t addr, int32_t r);
- void instr16_01_reg(int32_t r1, int32_t r);
- void instr32_01_mem(int32_t addr, int32_t r);
- void instr32_01_reg(int32_t r1, int32_t r);
- void instr_02_mem(int32_t addr, int32_t r);
- void instr_02_reg(int32_t r1, int32_t r);
- void instr16_03_mem(int32_t addr, int32_t r);
- void instr16_03_reg(int32_t r1, int32_t r);
- void instr32_03_mem(int32_t addr, int32_t r);
- void instr32_03_reg(int32_t r1, int32_t r);
- void instr_04(int32_t imm8);
- void instr16_05(int32_t imm16);
- void instr32_05(int32_t imm32);
- void instr16_06(void);
- void instr32_06(void);
- void instr16_07(void);
- void instr32_07(void);
- void instr_08_mem(int32_t addr, int32_t r);
- void instr_08_reg(int32_t r1, int32_t r);
- void instr16_09_mem(int32_t addr, int32_t r);
- void instr16_09_reg(int32_t r1, int32_t r);
- void instr32_09_mem(int32_t addr, int32_t r);
- void instr32_09_reg(int32_t r1, int32_t r);
- void instr_0A_mem(int32_t addr, int32_t r);
- void instr_0A_reg(int32_t r1, int32_t r);
- void instr16_0B_mem(int32_t addr, int32_t r);
- void instr16_0B_reg(int32_t r1, int32_t r);
- void instr32_0B_mem(int32_t addr, int32_t r);
- void instr32_0B_reg(int32_t r1, int32_t r);
- void instr_0C(int32_t imm8);
- void instr16_0D(int32_t imm16);
- void instr32_0D(int32_t imm32);
- void instr16_0E(void);
- void instr32_0E(void);
- void instr16_0F(void);
- void instr32_0F(void);
- void instr_10_mem(int32_t addr, int32_t r);
- void instr_10_reg(int32_t r1, int32_t r);
- void instr16_11_mem(int32_t addr, int32_t r);
- void instr16_11_reg(int32_t r1, int32_t r);
- void instr32_11_mem(int32_t addr, int32_t r);
- void instr32_11_reg(int32_t r1, int32_t r);
- void instr_12_mem(int32_t addr, int32_t r);
- void instr_12_reg(int32_t r1, int32_t r);
- void instr16_13_mem(int32_t addr, int32_t r);
- void instr16_13_reg(int32_t r1, int32_t r);
- void instr32_13_mem(int32_t addr, int32_t r);
- void instr32_13_reg(int32_t r1, int32_t r);
- void instr_14(int32_t imm8);
- void instr16_15(int32_t imm16);
- void instr32_15(int32_t imm32);
- void instr16_16(void);
- void instr32_16(void);
- void instr16_17(void);
- void instr32_17(void);
- void instr_18_mem(int32_t addr, int32_t r);
- void instr_18_reg(int32_t r1, int32_t r);
- void instr16_19_mem(int32_t addr, int32_t r);
- void instr16_19_reg(int32_t r1, int32_t r);
- void instr32_19_mem(int32_t addr, int32_t r);
- void instr32_19_reg(int32_t r1, int32_t r);
- void instr_1A_mem(int32_t addr, int32_t r);
- void instr_1A_reg(int32_t r1, int32_t r);
- void instr16_1B_mem(int32_t addr, int32_t r);
- void instr16_1B_reg(int32_t r1, int32_t r);
- void instr32_1B_mem(int32_t addr, int32_t r);
- void instr32_1B_reg(int32_t r1, int32_t r);
- void instr_1C(int32_t imm8);
- void instr16_1D(int32_t imm16);
- void instr32_1D(int32_t imm32);
- void instr16_1E(void);
- void instr32_1E(void);
- void instr16_1F(void);
- void instr32_1F(void);
- void instr_20_mem(int32_t addr, int32_t r);
- void instr_20_reg(int32_t r1, int32_t r);
- void instr16_21_mem(int32_t addr, int32_t r);
- void instr16_21_reg(int32_t r1, int32_t r);
- void instr32_21_mem(int32_t addr, int32_t r);
- void instr32_21_reg(int32_t r1, int32_t r);
- void instr_22_mem(int32_t addr, int32_t r);
- void instr_22_reg(int32_t r1, int32_t r);
- void instr16_23_mem(int32_t addr, int32_t r);
- void instr16_23_reg(int32_t r1, int32_t r);
- void instr32_23_mem(int32_t addr, int32_t r);
- void instr32_23_reg(int32_t r1, int32_t r);
- void instr_24(int32_t imm8);
- void instr16_25(int32_t imm16);
- void instr32_25(int32_t imm32);
- void instr_26(void);
- void instr_27(void);
- void instr_28_mem(int32_t addr, int32_t r);
- void instr_28_reg(int32_t r1, int32_t r);
- void instr16_29_mem(int32_t addr, int32_t r);
- void instr16_29_reg(int32_t r1, int32_t r);
- void instr32_29_mem(int32_t addr, int32_t r);
- void instr32_29_reg(int32_t r1, int32_t r);
- void instr_2A_mem(int32_t addr, int32_t r);
- void instr_2A_reg(int32_t r1, int32_t r);
- void instr16_2B_mem(int32_t addr, int32_t r);
- void instr16_2B_reg(int32_t r1, int32_t r);
- void instr32_2B_mem(int32_t addr, int32_t r);
- void instr32_2B_reg(int32_t r1, int32_t r);
- void instr_2C(int32_t imm8);
- void instr16_2D(int32_t imm16);
- void instr32_2D(int32_t imm32);
- void instr_2E(void);
- void instr_2F(void);
- void instr_30_mem(int32_t addr, int32_t r);
- void instr_30_reg(int32_t r1, int32_t r);
- void instr16_31_mem(int32_t addr, int32_t r);
- void instr16_31_reg(int32_t r1, int32_t r);
- void instr32_31_mem(int32_t addr, int32_t r);
- void instr32_31_reg(int32_t r1, int32_t r);
- void instr_32_mem(int32_t addr, int32_t r);
- void instr_32_reg(int32_t r1, int32_t r);
- void instr16_33_mem(int32_t addr, int32_t r);
- void instr16_33_reg(int32_t r1, int32_t r);
- void instr32_33_mem(int32_t addr, int32_t r);
- void instr32_33_reg(int32_t r1, int32_t r);
- void instr_34(int32_t imm8);
- void instr16_35(int32_t imm16);
- void instr32_35(int32_t imm32);
- void instr_36(void);
- void instr_37(void);
- void instr_38_mem(int32_t addr, int32_t r);
- void instr_38_reg(int32_t r1, int32_t r);
- void instr16_39_mem(int32_t addr, int32_t r);
- void instr16_39_reg(int32_t r1, int32_t r);
- void instr32_39_mem(int32_t addr, int32_t r);
- void instr32_39_reg(int32_t r1, int32_t r);
- void instr_3A_mem(int32_t addr, int32_t r);
- void instr_3A_reg(int32_t r1, int32_t r);
- void instr16_3B_mem(int32_t addr, int32_t r);
- void instr16_3B_reg(int32_t r1, int32_t r);
- void instr32_3B_mem(int32_t addr, int32_t r);
- void instr32_3B_reg(int32_t r1, int32_t r);
- void instr_3C(int32_t imm8);
- void instr16_3D(int32_t imm16);
- void instr32_3D(int32_t imm32);
- void instr_3E(void);
- void instr_3F(void);
- void instr16_40(void);
- void instr32_40(void);
- void instr16_41(void);
- void instr32_41(void);
- void instr16_42(void);
- void instr32_42(void);
- void instr16_43(void);
- void instr32_43(void);
- void instr16_44(void);
- void instr32_44(void);
- void instr16_45(void);
- void instr32_45(void);
- void instr16_46(void);
- void instr32_46(void);
- void instr16_47(void);
- void instr32_47(void);
- void instr16_48(void);
- void instr32_48(void);
- void instr16_49(void);
- void instr32_49(void);
- void instr16_4A(void);
- void instr32_4A(void);
- void instr16_4B(void);
- void instr32_4B(void);
- void instr16_4C(void);
- void instr32_4C(void);
- void instr16_4D(void);
- void instr32_4D(void);
- void instr16_4E(void);
- void instr32_4E(void);
- void instr16_4F(void);
- void instr32_4F(void);
- void instr16_50(void);
- void instr32_50(void);
- void instr16_51(void);
- void instr32_51(void);
- void instr16_52(void);
- void instr32_52(void);
- void instr16_53(void);
- void instr32_53(void);
- void instr16_54(void);
- void instr32_54(void);
- void instr16_55(void);
- void instr32_55(void);
- void instr16_56(void);
- void instr32_56(void);
- void instr16_57(void);
- void instr32_57(void);
- void instr16_58(void);
- void instr32_58(void);
- void instr16_59(void);
- void instr32_59(void);
- void instr16_5A(void);
- void instr32_5A(void);
- void instr16_5B(void);
- void instr32_5B(void);
- void instr16_5C(void);
- void instr32_5C(void);
- void instr16_5D(void);
- void instr32_5D(void);
- void instr16_5E(void);
- void instr32_5E(void);
- void instr16_5F(void);
- void instr32_5F(void);
- void instr16_60(void);
- void instr32_60(void);
- void instr16_61(void);
- void instr32_61(void);
- void instr_62_reg(int32_t r2, int32_t r);
- void instr_62_mem(int32_t addr, int32_t r);
- void instr_63_mem(int32_t addr, int32_t r);
- void instr_63_reg(int32_t r1, int32_t r);
- void instr_64(void);
- void instr_65(void);
- void instr_66(void);
- void instr_67(void);
- void instr16_68(int32_t imm16);
- void instr32_68(int32_t imm32);
- void instr16_69_mem(int32_t addr, int32_t r, int32_t imm);
- void instr16_69_reg(int32_t r1, int32_t r, int32_t imm);
- void instr32_69_mem(int32_t addr, int32_t r, int32_t imm);
- void instr32_69_reg(int32_t r1, int32_t r, int32_t imm);
- void instr16_6A(int32_t imm8);
- void instr32_6A(int32_t imm8);
- void instr16_6B_mem(int32_t addr, int32_t r, int32_t imm);
- void instr16_6B_reg(int32_t r1, int32_t r, int32_t imm);
- void instr32_6B_mem(int32_t addr, int32_t r, int32_t imm);
- void instr32_6B_reg(int32_t r1, int32_t r, int32_t imm);
- void instr_6C(void);
- void instr16_6D(void);
- void instr32_6D(void);
- void instr_6E(void);
- void instr16_6F(void);
- void instr32_6F(void);
- void instr_70(int32_t imm8);
- void instr_71(int32_t imm8);
- void instr_72(int32_t imm8);
- void instr_73(int32_t imm8);
- void instr_74(int32_t imm8);
- void instr_75(int32_t imm8);
- void instr_76(int32_t imm8);
- void instr_77(int32_t imm8);
- void instr_78(int32_t imm8);
- void instr_79(int32_t imm8);
- void instr_7A(int32_t imm8);
- void instr_7B(int32_t imm8);
- void instr_7C(int32_t imm8);
- void instr_7D(int32_t imm8);
- void instr_7E(int32_t imm8);
- void instr_7F(int32_t imm8);
- void instr_80_0_mem(int32_t addr, int32_t imm);
- void instr_80_0_reg(int32_t r1, int32_t imm);
- void instr_80_1_mem(int32_t addr, int32_t imm);
- void instr_80_1_reg(int32_t r1, int32_t imm);
- void instr_80_2_mem(int32_t addr, int32_t imm);
- void instr_80_2_reg(int32_t r1, int32_t imm);
- void instr_80_3_mem(int32_t addr, int32_t imm);
- void instr_80_3_reg(int32_t r1, int32_t imm);
- void instr_80_4_mem(int32_t addr, int32_t imm);
- void instr_80_4_reg(int32_t r1, int32_t imm);
- void instr_80_5_mem(int32_t addr, int32_t imm);
- void instr_80_5_reg(int32_t r1, int32_t imm);
- void instr_80_6_mem(int32_t addr, int32_t imm);
- void instr_80_6_reg(int32_t r1, int32_t imm);
- void instr_80_7_reg(int32_t r, int32_t imm);
- void instr_80_7_mem(int32_t addr, int32_t imm);
- void instr16_81_0_mem(int32_t addr, int32_t imm);
- void instr16_81_0_reg(int32_t r1, int32_t imm);
- void instr16_81_1_mem(int32_t addr, int32_t imm);
- void instr16_81_1_reg(int32_t r1, int32_t imm);
- void instr16_81_2_mem(int32_t addr, int32_t imm);
- void instr16_81_2_reg(int32_t r1, int32_t imm);
- void instr16_81_3_mem(int32_t addr, int32_t imm);
- void instr16_81_3_reg(int32_t r1, int32_t imm);
- void instr16_81_4_mem(int32_t addr, int32_t imm);
- void instr16_81_4_reg(int32_t r1, int32_t imm);
- void instr16_81_5_mem(int32_t addr, int32_t imm);
- void instr16_81_5_reg(int32_t r1, int32_t imm);
- void instr16_81_6_mem(int32_t addr, int32_t imm);
- void instr16_81_6_reg(int32_t r1, int32_t imm);
- void instr16_81_7_reg(int32_t r, int32_t imm);
- void instr16_81_7_mem(int32_t addr, int32_t imm);
- void instr32_81_0_mem(int32_t addr, int32_t imm);
- void instr32_81_0_reg(int32_t r1, int32_t imm);
- void instr32_81_1_mem(int32_t addr, int32_t imm);
- void instr32_81_1_reg(int32_t r1, int32_t imm);
- void instr32_81_2_mem(int32_t addr, int32_t imm);
- void instr32_81_2_reg(int32_t r1, int32_t imm);
- void instr32_81_3_mem(int32_t addr, int32_t imm);
- void instr32_81_3_reg(int32_t r1, int32_t imm);
- void instr32_81_4_mem(int32_t addr, int32_t imm);
- void instr32_81_4_reg(int32_t r1, int32_t imm);
- void instr32_81_5_mem(int32_t addr, int32_t imm);
- void instr32_81_5_reg(int32_t r1, int32_t imm);
- void instr32_81_6_mem(int32_t addr, int32_t imm);
- void instr32_81_6_reg(int32_t r1, int32_t imm);
- void instr32_81_7_reg(int32_t r, int32_t imm);
- void instr32_81_7_mem(int32_t addr, int32_t imm);
- void instr_82_0_mem(int32_t addr, int32_t imm);
- void instr_82_0_reg(int32_t r1, int32_t imm);
- void instr_82_1_mem(int32_t addr, int32_t imm);
- void instr_82_1_reg(int32_t r1, int32_t imm);
- void instr_82_2_mem(int32_t addr, int32_t imm);
- void instr_82_2_reg(int32_t r1, int32_t imm);
- void instr_82_3_mem(int32_t addr, int32_t imm);
- void instr_82_3_reg(int32_t r1, int32_t imm);
- void instr_82_4_mem(int32_t addr, int32_t imm);
- void instr_82_4_reg(int32_t r1, int32_t imm);
- void instr_82_5_mem(int32_t addr, int32_t imm);
- void instr_82_5_reg(int32_t r1, int32_t imm);
- void instr_82_6_mem(int32_t addr, int32_t imm);
- void instr_82_6_reg(int32_t r1, int32_t imm);
- void instr_82_7_reg(int32_t r, int32_t imm);
- void instr_82_7_mem(int32_t addr, int32_t imm);
- void instr16_83_0_mem(int32_t addr, int32_t imm);
- void instr16_83_0_reg(int32_t r1, int32_t imm);
- void instr16_83_1_mem(int32_t addr, int32_t imm);
- void instr16_83_1_reg(int32_t r1, int32_t imm);
- void instr16_83_2_mem(int32_t addr, int32_t imm);
- void instr16_83_2_reg(int32_t r1, int32_t imm);
- void instr16_83_3_mem(int32_t addr, int32_t imm);
- void instr16_83_3_reg(int32_t r1, int32_t imm);
- void instr16_83_4_mem(int32_t addr, int32_t imm);
- void instr16_83_4_reg(int32_t r1, int32_t imm);
- void instr16_83_5_mem(int32_t addr, int32_t imm);
- void instr16_83_5_reg(int32_t r1, int32_t imm);
- void instr16_83_6_mem(int32_t addr, int32_t imm);
- void instr16_83_6_reg(int32_t r1, int32_t imm);
- void instr16_83_7_reg(int32_t r, int32_t imm);
- void instr16_83_7_mem(int32_t addr, int32_t imm);
- void instr32_83_0_mem(int32_t addr, int32_t imm);
- void instr32_83_0_reg(int32_t r1, int32_t imm);
- void instr32_83_1_mem(int32_t addr, int32_t imm);
- void instr32_83_1_reg(int32_t r1, int32_t imm);
- void instr32_83_2_mem(int32_t addr, int32_t imm);
- void instr32_83_2_reg(int32_t r1, int32_t imm);
- void instr32_83_3_mem(int32_t addr, int32_t imm);
- void instr32_83_3_reg(int32_t r1, int32_t imm);
- void instr32_83_4_mem(int32_t addr, int32_t imm);
- void instr32_83_4_reg(int32_t r1, int32_t imm);
- void instr32_83_5_mem(int32_t addr, int32_t imm);
- void instr32_83_5_reg(int32_t r1, int32_t imm);
- void instr32_83_6_mem(int32_t addr, int32_t imm);
- void instr32_83_6_reg(int32_t r1, int32_t imm);
- void instr32_83_7_reg(int32_t r, int32_t imm);
- void instr32_83_7_mem(int32_t addr, int32_t imm);
- void instr_84_mem(int32_t addr, int32_t r);
- void instr_84_reg(int32_t r1, int32_t r);
- void instr16_85_mem(int32_t addr, int32_t r);
- void instr16_85_reg(int32_t r1, int32_t r);
- void instr32_85_mem(int32_t addr, int32_t r);
- void instr32_85_reg(int32_t r1, int32_t r);
- void instr_86_mem(int32_t addr, int32_t r);
- void instr_86_reg(int32_t r1, int32_t r);
- void instr16_87_mem(int32_t addr, int32_t r);
- void instr16_87_reg(int32_t r1, int32_t r);
- void instr32_87_mem(int32_t addr, int32_t r);
- void instr32_87_reg(int32_t r1, int32_t r);
- void instr_88_reg(int32_t r2, int32_t r);
- void instr_88_mem(int32_t addr, int32_t r);
- void instr16_89_reg(int32_t r2, int32_t r);
- void instr16_89_mem(int32_t addr, int32_t r);
- void instr32_89_reg(int32_t r2, int32_t r);
- void instr32_89_mem(int32_t addr, int32_t r);
- void instr_8A_mem(int32_t addr, int32_t r);
- void instr_8A_reg(int32_t r1, int32_t r);
- void instr16_8B_mem(int32_t addr, int32_t r);
- void instr16_8B_reg(int32_t r1, int32_t r);
- void instr32_8B_mem(int32_t addr, int32_t r);
- void instr32_8B_reg(int32_t r1, int32_t r);
- void instr_8C_check_sreg(int32_t sreg);
- void instr16_8C_reg(int32_t r, int32_t seg);
- void instr16_8C_mem(int32_t addr, int32_t seg);
- void instr32_8C_reg(int32_t r, int32_t seg);
- void instr32_8C_mem(int32_t addr, int32_t seg);
- void instr16_8D_reg(int32_t r, int32_t r2);
- void instr16_8D_mem_pre(void);
- void instr16_8D_mem(int32_t addr, int32_t r);
- void instr32_8D_reg(int32_t r, int32_t r2);
- void instr32_8D_mem_pre(void);
- void instr32_8D_mem(int32_t addr, int32_t r);
- void instr_8E_helper(int32_t data, int32_t mod);
- void instr_8E_mem(int32_t addr, int32_t r);
- void instr_8E_reg(int32_t r1, int32_t r);
- void instr16_8F_0_mem_pre(void);
- void instr16_8F_0_mem(int32_t addr);
- void instr16_8F_0_reg(int32_t r);
- void instr32_8F_0_mem_pre(void);
- void instr32_8F_0_mem(int32_t addr);
- void instr32_8F_0_reg(int32_t r);
- void instr_90(void);
- void instr16_91(void);
- void instr32_91(void);
- void instr16_92(void);
- void instr32_92(void);
- void instr16_93(void);
- void instr32_93(void);
- void instr16_94(void);
- void instr32_94(void);
- void instr16_95(void);
- void instr32_95(void);
- void instr16_96(void);
- void instr32_96(void);
- void instr16_97(void);
- void instr32_97(void);
- void instr16_98(void);
- void instr32_98(void);
- void instr16_99(void);
- void instr32_99(void);
- void instr16_9A(int32_t new_ip, int32_t new_cs);
- void instr32_9A(int32_t new_ip, int32_t new_cs);
- void instr_9B(void);
- void instr16_9C(void);
- void instr32_9C(void);
- void instr16_9D(void);
- void instr32_9D(void);
- void instr_9E(void);
- void instr_9F(void);
- void instr_A0(int32_t moffs);
- void instr16_A1(int32_t moffs);
- void instr32_A1(int32_t moffs);
- void instr_A2(int32_t moffs);
- void instr16_A3(int32_t moffs);
- void instr32_A3(int32_t moffs);
- void instr_A4(void);
- void instr16_A5(void);
- void instr32_A5(void);
- void instr_A6(void);
- void instr16_A7(void);
- void instr32_A7(void);
- void instr_A8(int32_t imm8);
- void instr16_A9(int32_t imm16);
- void instr32_A9(int32_t imm32);
- void instr_AA(void);
- void instr16_AB(void);
- void instr32_AB(void);
- void instr_AC(void);
- void instr16_AD(void);
- void instr32_AD(void);
- void instr_AE(void);
- void instr16_AF(void);
- void instr32_AF(void);
- void instr_B0(int32_t imm8);
- void instr_B1(int32_t imm8);
- void instr_B2(int32_t imm8);
- void instr_B3(int32_t imm8);
- void instr_B4(int32_t imm8);
- void instr_B5(int32_t imm8);
- void instr_B6(int32_t imm8);
- void instr_B7(int32_t imm8);
- void instr16_B8(int32_t imm);
- void instr32_B8(int32_t imm);
- void instr16_B9(int32_t imm);
- void instr32_B9(int32_t imm);
- void instr16_BA(int32_t imm);
- void instr32_BA(int32_t imm);
- void instr16_BB(int32_t imm);
- void instr32_BB(int32_t imm);
- void instr16_BC(int32_t imm);
- void instr32_BC(int32_t imm);
- void instr16_BD(int32_t imm);
- void instr32_BD(int32_t imm);
- void instr16_BE(int32_t imm);
- void instr32_BE(int32_t imm);
- void instr16_BF(int32_t imm);
- void instr32_BF(int32_t imm);
- void instr_C0_0_mem(int32_t addr, int32_t imm);
- void instr_C0_0_reg(int32_t r1, int32_t imm);
- void instr_C0_1_mem(int32_t addr, int32_t imm);
- void instr_C0_1_reg(int32_t r1, int32_t imm);
- void instr_C0_2_mem(int32_t addr, int32_t imm);
- void instr_C0_2_reg(int32_t r1, int32_t imm);
- void instr_C0_3_mem(int32_t addr, int32_t imm);
- void instr_C0_3_reg(int32_t r1, int32_t imm);
- void instr_C0_4_mem(int32_t addr, int32_t imm);
- void instr_C0_4_reg(int32_t r1, int32_t imm);
- void instr_C0_5_mem(int32_t addr, int32_t imm);
- void instr_C0_5_reg(int32_t r1, int32_t imm);
- void instr_C0_6_mem(int32_t addr, int32_t imm);
- void instr_C0_6_reg(int32_t r1, int32_t imm);
- void instr_C0_7_mem(int32_t addr, int32_t imm);
- void instr_C0_7_reg(int32_t r1, int32_t imm);
- void instr16_C1_0_mem(int32_t addr, int32_t imm);
- void instr16_C1_0_reg(int32_t r1, int32_t imm);
- void instr16_C1_1_mem(int32_t addr, int32_t imm);
- void instr16_C1_1_reg(int32_t r1, int32_t imm);
- void instr16_C1_2_mem(int32_t addr, int32_t imm);
- void instr16_C1_2_reg(int32_t r1, int32_t imm);
- void instr16_C1_3_mem(int32_t addr, int32_t imm);
- void instr16_C1_3_reg(int32_t r1, int32_t imm);
- void instr16_C1_4_mem(int32_t addr, int32_t imm);
- void instr16_C1_4_reg(int32_t r1, int32_t imm);
- void instr16_C1_5_mem(int32_t addr, int32_t imm);
- void instr16_C1_5_reg(int32_t r1, int32_t imm);
- void instr16_C1_6_mem(int32_t addr, int32_t imm);
- void instr16_C1_6_reg(int32_t r1, int32_t imm);
- void instr16_C1_7_mem(int32_t addr, int32_t imm);
- void instr16_C1_7_reg(int32_t r1, int32_t imm);
- void instr32_C1_0_mem(int32_t addr, int32_t imm);
- void instr32_C1_0_reg(int32_t r1, int32_t imm);
- void instr32_C1_1_mem(int32_t addr, int32_t imm);
- void instr32_C1_1_reg(int32_t r1, int32_t imm);
- void instr32_C1_2_mem(int32_t addr, int32_t imm);
- void instr32_C1_2_reg(int32_t r1, int32_t imm);
- void instr32_C1_3_mem(int32_t addr, int32_t imm);
- void instr32_C1_3_reg(int32_t r1, int32_t imm);
- void instr32_C1_4_mem(int32_t addr, int32_t imm);
- void instr32_C1_4_reg(int32_t r1, int32_t imm);
- void instr32_C1_5_mem(int32_t addr, int32_t imm);
- void instr32_C1_5_reg(int32_t r1, int32_t imm);
- void instr32_C1_6_mem(int32_t addr, int32_t imm);
- void instr32_C1_6_reg(int32_t r1, int32_t imm);
- void instr32_C1_7_mem(int32_t addr, int32_t imm);
- void instr32_C1_7_reg(int32_t r1, int32_t imm);
- void instr16_C2(int32_t imm16);
- void instr32_C2(int32_t imm16);
- void instr16_C3(void);
- void instr32_C3(void);
- void instr16_C4_reg(int32_t _unused1, int32_t _unused2);
- void instr16_C4_mem(int32_t addr, int32_t r);
- void instr32_C4_reg(int32_t _unused1, int32_t _unused2);
- void instr32_C4_mem(int32_t addr, int32_t r);
- void instr16_C5_reg(int32_t _unused1, int32_t _unused2);
- void instr16_C5_mem(int32_t addr, int32_t r);
- void instr32_C5_reg(int32_t _unused1, int32_t _unused2);
- void instr32_C5_mem(int32_t addr, int32_t r);
- void instr_C6_0_reg(int32_t r, int32_t imm);
- void instr_C6_0_mem(int32_t addr, int32_t imm);
- void instr16_C7_0_reg(int32_t r, int32_t imm);
- void instr16_C7_0_mem(int32_t addr, int32_t imm);
- void instr32_C7_0_reg(int32_t r, int32_t imm);
- void instr32_C7_0_mem(int32_t addr, int32_t imm);
- void instr16_C8(int32_t size, int32_t nesting);
- void instr32_C8(int32_t size, int32_t nesting);
- void instr16_C9(void);
- void instr32_C9(void);
- void instr16_CA(int32_t imm16);
- void instr32_CA(int32_t imm16);
- void instr16_CB(void);
- void instr32_CB(void);
- void instr_CC(void);
- void instr_CD(int32_t imm8);
- void instr_CE(void);
- void instr16_CF(void);
- void instr32_CF(void);
- void instr_D0_0_mem(int32_t addr);
- void instr_D0_0_reg(int32_t r1);
- void instr_D0_1_mem(int32_t addr);
- void instr_D0_1_reg(int32_t r1);
- void instr_D0_2_mem(int32_t addr);
- void instr_D0_2_reg(int32_t r1);
- void instr_D0_3_mem(int32_t addr);
- void instr_D0_3_reg(int32_t r1);
- void instr_D0_4_mem(int32_t addr);
- void instr_D0_4_reg(int32_t r1);
- void instr_D0_5_mem(int32_t addr);
- void instr_D0_5_reg(int32_t r1);
- void instr_D0_6_mem(int32_t addr);
- void instr_D0_6_reg(int32_t r1);
- void instr_D0_7_mem(int32_t addr);
- void instr_D0_7_reg(int32_t r1);
- void instr16_D1_0_mem(int32_t addr);
- void instr16_D1_0_reg(int32_t r1);
- void instr16_D1_1_mem(int32_t addr);
- void instr16_D1_1_reg(int32_t r1);
- void instr16_D1_2_mem(int32_t addr);
- void instr16_D1_2_reg(int32_t r1);
- void instr16_D1_3_mem(int32_t addr);
- void instr16_D1_3_reg(int32_t r1);
- void instr16_D1_4_mem(int32_t addr);
- void instr16_D1_4_reg(int32_t r1);
- void instr16_D1_5_mem(int32_t addr);
- void instr16_D1_5_reg(int32_t r1);
- void instr16_D1_6_mem(int32_t addr);
- void instr16_D1_6_reg(int32_t r1);
- void instr16_D1_7_mem(int32_t addr);
- void instr16_D1_7_reg(int32_t r1);
- void instr32_D1_0_mem(int32_t addr);
- void instr32_D1_0_reg(int32_t r1);
- void instr32_D1_1_mem(int32_t addr);
- void instr32_D1_1_reg(int32_t r1);
- void instr32_D1_2_mem(int32_t addr);
- void instr32_D1_2_reg(int32_t r1);
- void instr32_D1_3_mem(int32_t addr);
- void instr32_D1_3_reg(int32_t r1);
- void instr32_D1_4_mem(int32_t addr);
- void instr32_D1_4_reg(int32_t r1);
- void instr32_D1_5_mem(int32_t addr);
- void instr32_D1_5_reg(int32_t r1);
- void instr32_D1_6_mem(int32_t addr);
- void instr32_D1_6_reg(int32_t r1);
- void instr32_D1_7_mem(int32_t addr);
- void instr32_D1_7_reg(int32_t r1);
- void instr_D2_0_mem(int32_t addr);
- void instr_D2_0_reg(int32_t r1);
- void instr_D2_1_mem(int32_t addr);
- void instr_D2_1_reg(int32_t r1);
- void instr_D2_2_mem(int32_t addr);
- void instr_D2_2_reg(int32_t r1);
- void instr_D2_3_mem(int32_t addr);
- void instr_D2_3_reg(int32_t r1);
- void instr_D2_4_mem(int32_t addr);
- void instr_D2_4_reg(int32_t r1);
- void instr_D2_5_mem(int32_t addr);
- void instr_D2_5_reg(int32_t r1);
- void instr_D2_6_mem(int32_t addr);
- void instr_D2_6_reg(int32_t r1);
- void instr_D2_7_mem(int32_t addr);
- void instr_D2_7_reg(int32_t r1);
- void instr16_D3_0_mem(int32_t addr);
- void instr16_D3_0_reg(int32_t r1);
- void instr16_D3_1_mem(int32_t addr);
- void instr16_D3_1_reg(int32_t r1);
- void instr16_D3_2_mem(int32_t addr);
- void instr16_D3_2_reg(int32_t r1);
- void instr16_D3_3_mem(int32_t addr);
- void instr16_D3_3_reg(int32_t r1);
- void instr16_D3_4_mem(int32_t addr);
- void instr16_D3_4_reg(int32_t r1);
- void instr16_D3_5_mem(int32_t addr);
- void instr16_D3_5_reg(int32_t r1);
- void instr16_D3_6_mem(int32_t addr);
- void instr16_D3_6_reg(int32_t r1);
- void instr16_D3_7_mem(int32_t addr);
- void instr16_D3_7_reg(int32_t r1);
- void instr32_D3_0_mem(int32_t addr);
- void instr32_D3_0_reg(int32_t r1);
- void instr32_D3_1_mem(int32_t addr);
- void instr32_D3_1_reg(int32_t r1);
- void instr32_D3_2_mem(int32_t addr);
- void instr32_D3_2_reg(int32_t r1);
- void instr32_D3_3_mem(int32_t addr);
- void instr32_D3_3_reg(int32_t r1);
- void instr32_D3_4_mem(int32_t addr);
- void instr32_D3_4_reg(int32_t r1);
- void instr32_D3_5_mem(int32_t addr);
- void instr32_D3_5_reg(int32_t r1);
- void instr32_D3_6_mem(int32_t addr);
- void instr32_D3_6_reg(int32_t r1);
- void instr32_D3_7_mem(int32_t addr);
- void instr32_D3_7_reg(int32_t r1);
- void instr_D4(int32_t arg);
- void instr_D5(int32_t arg);
- void instr_D6(void);
- void instr_D7(void);
- void instr_E0(int32_t off);
- void instr_E1(int32_t off);
- void instr_E2(int32_t off);
- void instr_E3(int32_t off);
- void instr_E4(int32_t port);
- void instr16_E5(int32_t port);
- void instr32_E5(int32_t port);
- void instr_E6(int32_t port);
- void instr16_E7(int32_t port);
- void instr32_E7(int32_t port);
- void instr16_E8(int32_t imm16);
- void instr32_E8(int32_t imm32s);
- void instr16_E9(int32_t imm16);
- void instr32_E9(int32_t imm32s);
- void instr16_EA(int32_t new_ip, int32_t cs);
- void instr32_EA(int32_t new_ip, int32_t cs);
- void instr_EB(int32_t imm8);
- void instr_EC(void);
- void instr16_ED(void);
- void instr32_ED(void);
- void instr_EE(void);
- void instr16_EF(void);
- void instr32_EF(void);
- void instr_F0(void);
- void instr_F1(void);
- void instr_F2(void);
- void instr_F3(void);
- void instr_F4(void);
- void instr_F5(void);
- void instr_F6_0_mem(int32_t addr, int32_t imm);
- void instr_F6_0_reg(int32_t r1, int32_t imm);
- void instr_F6_1_mem(int32_t addr, int32_t imm);
- void instr_F6_1_reg(int32_t r1, int32_t imm);
- void instr_F6_2_mem(int32_t addr);
- void instr_F6_2_reg(int32_t r1);
- void instr_F6_3_mem(int32_t addr);
- void instr_F6_3_reg(int32_t r1);
- void instr_F6_4_mem(int32_t addr);
- void instr_F6_4_reg(int32_t r1);
- void instr_F6_5_mem(int32_t addr);
- void instr_F6_5_reg(int32_t r1);
- void instr_F6_6_mem(int32_t addr);
- void instr_F6_6_reg(int32_t r1);
- void instr_F6_7_mem(int32_t addr);
- void instr_F6_7_reg(int32_t r1);
- void instr16_F7_0_mem(int32_t addr, int32_t imm);
- void instr16_F7_0_reg(int32_t r1, int32_t imm);
- void instr16_F7_1_mem(int32_t addr, int32_t imm);
- void instr16_F7_1_reg(int32_t r1, int32_t imm);
- void instr16_F7_2_mem(int32_t addr);
- void instr16_F7_2_reg(int32_t r1);
- void instr16_F7_3_mem(int32_t addr);
- void instr16_F7_3_reg(int32_t r1);
- void instr16_F7_4_mem(int32_t addr);
- void instr16_F7_4_reg(int32_t r1);
- void instr16_F7_5_mem(int32_t addr);
- void instr16_F7_5_reg(int32_t r1);
- void instr16_F7_6_mem(int32_t addr);
- void instr16_F7_6_reg(int32_t r1);
- void instr16_F7_7_mem(int32_t addr);
- void instr16_F7_7_reg(int32_t r1);
- void instr32_F7_0_mem(int32_t addr, int32_t imm);
- void instr32_F7_0_reg(int32_t r1, int32_t imm);
- void instr32_F7_1_mem(int32_t addr, int32_t imm);
- void instr32_F7_1_reg(int32_t r1, int32_t imm);
- void instr32_F7_2_mem(int32_t addr);
- void instr32_F7_2_reg(int32_t r1);
- void instr32_F7_3_mem(int32_t addr);
- void instr32_F7_3_reg(int32_t r1);
- void instr32_F7_4_mem(int32_t addr);
- void instr32_F7_4_reg(int32_t r1);
- void instr32_F7_5_mem(int32_t addr);
- void instr32_F7_5_reg(int32_t r1);
- void instr32_F7_6_mem(int32_t addr);
- void instr32_F7_6_reg(int32_t r1);
- void instr32_F7_7_mem(int32_t addr);
- void instr32_F7_7_reg(int32_t r1);
- void instr_F8(void);
- void instr_F9(void);
- void instr_FA(void);
- void instr_FB(void);
- void instr_FC(void);
- void instr_FD(void);
- void instr_FE_0_mem(int32_t addr);
- void instr_FE_0_reg(int32_t r1);
- void instr_FE_1_mem(int32_t addr);
- void instr_FE_1_reg(int32_t r1);
- void instr16_FF_0_mem(int32_t addr);
- void instr16_FF_0_reg(int32_t r1);
- void instr16_FF_1_mem(int32_t addr);
- void instr16_FF_1_reg(int32_t r1);
- void instr16_FF_2_helper(int32_t data);
- void instr16_FF_2_mem(int32_t addr);
- void instr16_FF_2_reg(int32_t r1);
- void instr16_FF_3_reg(int32_t r);
- void instr16_FF_3_mem(int32_t addr);
- void instr16_FF_4_helper(int32_t data);
- void instr16_FF_4_mem(int32_t addr);
- void instr16_FF_4_reg(int32_t r1);
- void instr16_FF_5_reg(int32_t r);
- void instr16_FF_5_mem(int32_t addr);
- void instr16_FF_6_mem(int32_t addr);
- void instr16_FF_6_reg(int32_t r1);
- void instr32_FF_0_mem(int32_t addr);
- void instr32_FF_0_reg(int32_t r1);
- void instr32_FF_1_mem(int32_t addr);
- void instr32_FF_1_reg(int32_t r1);
- void instr32_FF_2_helper(int32_t data);
- void instr32_FF_2_mem(int32_t addr);
- void instr32_FF_2_reg(int32_t r1);
- void instr32_FF_3_reg(int32_t r);
- void instr32_FF_3_mem(int32_t addr);
- void instr32_FF_4_helper(int32_t data);
- void instr32_FF_4_mem(int32_t addr);
- void instr32_FF_4_reg(int32_t r1);
- void instr32_FF_5_reg(int32_t r);
- void instr32_FF_5_mem(int32_t addr);
- void instr32_FF_6_mem(int32_t addr);
- void instr32_FF_6_reg(int32_t r1);
- void run_instruction(int32_t opcode);
|