From df877cc03d8731a60c698c94ee4286cecc327fb5 Mon Sep 17 00:00:00 2001 From: Stanislav Shwartsman Date: Wed, 13 Dec 2017 18:18:20 +0000 Subject: [PATCH] adjustments to old disasm done during validation of new disasm --- bochs/disasm/dis_groups.cc | 4 +-- bochs/disasm/dis_tables.inc | 70 ++++++++++++++++++------------------- bochs/disasm/opcodes.inc | 9 +++-- 3 files changed, 41 insertions(+), 42 deletions(-) diff --git a/bochs/disasm/dis_groups.cc b/bochs/disasm/dis_groups.cc index 8e903700e..14e107379 100644 --- a/bochs/disasm/dis_groups.cc +++ b/bochs/disasm/dis_groups.cc @@ -24,7 +24,7 @@ #include "disasm.h" #include "osdep.h" -#if BX_DEBUGGER +#if BX_DEBUGGER && 0 #include "../bx_debug/debug.h" #define SYMBOLIC_JUMP(fmt) fmt " (%s)" #define GET_SYMBOL(addr) bx_dbg_disasm_symbolic_address((addr), 0) @@ -247,7 +247,7 @@ void disassembler::By(const x86_insn *insn) void disassembler::I1(const x86_insn *insn) { if (! intel_mode) dis_putc('$'); - dis_putc ('1'); + dis_sprintf("0x01"); } void disassembler::Ib(const x86_insn *insn) diff --git a/bochs/disasm/dis_tables.inc b/bochs/disasm/dis_tables.inc index 06793ee40..e6494b157 100644 --- a/bochs/disasm/dis_tables.inc +++ b/bochs/disasm/dis_tables.inc @@ -970,13 +970,13 @@ static BxDisasmOpcodeTable_t BxDisasmOpcodes16[256*2] = { /* 0F 16 */ { GRPSSE(0f16) }, /* 0F 17 */ { GRPSSE2(0f17) }, /* 0F 18 */ { GRPN(G16) }, - /* 0F 19 */ { 0, &Ia_multibyte_nop }, - /* 0F 1A */ { 0, &Ia_multibyte_nop }, - /* 0F 1B */ { 0, &Ia_multibyte_nop }, - /* 0F 1C */ { 0, &Ia_multibyte_nop }, - /* 0F 1D */ { 0, &Ia_multibyte_nop }, - /* 0F 1E */ { 0, &Ia_multibyte_nop }, - /* 0F 1F */ { 0, &Ia_multibyte_nop }, + /* 0F 19 */ { 0, &Ia_nop }, + /* 0F 1A */ { 0, &Ia_nop }, + /* 0F 1B */ { 0, &Ia_nop }, + /* 0F 1C */ { 0, &Ia_nop }, + /* 0F 1D */ { 0, &Ia_nop }, + /* 0F 1E */ { 0, &Ia_nop }, + /* 0F 1F */ { 0, &Ia_nop }, /* 0F 20 */ { 0, &Ia_movl_Rd_Cd }, /* 0F 21 */ { 0, &Ia_movl_Rd_Dd }, /* 0F 22 */ { 0, &Ia_movl_Cd_Rd }, @@ -1491,13 +1491,13 @@ static BxDisasmOpcodeTable_t BxDisasmOpcodes32[256*2] = { /* 0F 16 */ { GRPSSE(0f16) }, /* 0F 17 */ { GRPSSE2(0f17) }, /* 0F 18 */ { GRPN(G16) }, - /* 0F 19 */ { 0, &Ia_multibyte_nop }, - /* 0F 1A */ { 0, &Ia_multibyte_nop }, - /* 0F 1B */ { 0, &Ia_multibyte_nop }, - /* 0F 1C */ { 0, &Ia_multibyte_nop }, - /* 0F 1D */ { 0, &Ia_multibyte_nop }, - /* 0F 1E */ { 0, &Ia_multibyte_nop }, - /* 0F 1F */ { 0, &Ia_multibyte_nop }, + /* 0F 19 */ { 0, &Ia_nop }, + /* 0F 1A */ { 0, &Ia_nop }, + /* 0F 1B */ { 0, &Ia_nop }, + /* 0F 1C */ { 0, &Ia_nop }, + /* 0F 1D */ { 0, &Ia_nop }, + /* 0F 1E */ { 0, &Ia_nop }, + /* 0F 1F */ { 0, &Ia_nop }, /* 0F 20 */ { 0, &Ia_movl_Rd_Cd }, /* 0F 21 */ { 0, &Ia_movl_Rd_Dd }, /* 0F 22 */ { 0, &Ia_movl_Cd_Rd }, @@ -2012,13 +2012,13 @@ static BxDisasmOpcodeTable_t BxDisasmOpcodes64w[256*2] = { /* 0F 16 */ { GRPSSE(0f16) }, /* 0F 17 */ { GRPSSE2(0f17) }, /* 0F 18 */ { GRPN(G16) }, - /* 0F 19 */ { 0, &Ia_multibyte_nop }, - /* 0F 1A */ { 0, &Ia_multibyte_nop }, - /* 0F 1B */ { 0, &Ia_multibyte_nop }, - /* 0F 1C */ { 0, &Ia_multibyte_nop }, - /* 0F 1D */ { 0, &Ia_multibyte_nop }, - /* 0F 1E */ { 0, &Ia_multibyte_nop }, - /* 0F 1F */ { 0, &Ia_multibyte_nop }, + /* 0F 19 */ { 0, &Ia_nop }, + /* 0F 1A */ { 0, &Ia_nop }, + /* 0F 1B */ { 0, &Ia_nop }, + /* 0F 1C */ { 0, &Ia_nop }, + /* 0F 1D */ { 0, &Ia_nop }, + /* 0F 1E */ { 0, &Ia_nop }, + /* 0F 1F */ { 0, &Ia_nop }, /* 0F 20 */ { 0, &Ia_movq_Rq_Cq }, /* 0F 21 */ { 0, &Ia_movq_Rq_Dq }, /* 0F 22 */ { 0, &Ia_movq_Cq_Rq }, @@ -2530,13 +2530,13 @@ static BxDisasmOpcodeTable_t BxDisasmOpcodes64d[256*2] = { /* 0F 16 */ { GRPSSE(0f16) }, /* 0F 17 */ { GRPSSE2(0f17) }, /* 0F 18 */ { GRPN(G16) }, - /* 0F 19 */ { 0, &Ia_multibyte_nop }, - /* 0F 1A */ { 0, &Ia_multibyte_nop }, - /* 0F 1B */ { 0, &Ia_multibyte_nop }, - /* 0F 1C */ { 0, &Ia_multibyte_nop }, - /* 0F 1D */ { 0, &Ia_multibyte_nop }, - /* 0F 1E */ { 0, &Ia_multibyte_nop }, - /* 0F 1F */ { 0, &Ia_multibyte_nop }, + /* 0F 19 */ { 0, &Ia_nop }, + /* 0F 1A */ { 0, &Ia_nop }, + /* 0F 1B */ { 0, &Ia_nop }, + /* 0F 1C */ { 0, &Ia_nop }, + /* 0F 1D */ { 0, &Ia_nop }, + /* 0F 1E */ { 0, &Ia_nop }, + /* 0F 1F */ { 0, &Ia_nop }, /* 0F 20 */ { 0, &Ia_movq_Rq_Cq }, /* 0F 21 */ { 0, &Ia_movq_Rq_Dq }, /* 0F 22 */ { 0, &Ia_movq_Cq_Rq }, @@ -3048,13 +3048,13 @@ static BxDisasmOpcodeTable_t BxDisasmOpcodes64q[256*2] = { /* 0F 16 */ { GRPSSE(0f16) }, /* 0F 17 */ { GRPSSE2(0f17) }, /* 0F 18 */ { GRPN(G16) }, - /* 0F 19 */ { 0, &Ia_multibyte_nop }, - /* 0F 1A */ { 0, &Ia_multibyte_nop }, - /* 0F 1B */ { 0, &Ia_multibyte_nop }, - /* 0F 1C */ { 0, &Ia_multibyte_nop }, - /* 0F 1D */ { 0, &Ia_multibyte_nop }, - /* 0F 1E */ { 0, &Ia_multibyte_nop }, - /* 0F 1F */ { 0, &Ia_multibyte_nop }, + /* 0F 19 */ { 0, &Ia_nop }, + /* 0F 1A */ { 0, &Ia_nop }, + /* 0F 1B */ { 0, &Ia_nop }, + /* 0F 1C */ { 0, &Ia_nop }, + /* 0F 1D */ { 0, &Ia_nop }, + /* 0F 1E */ { 0, &Ia_nop }, + /* 0F 1F */ { 0, &Ia_nop }, /* 0F 20 */ { 0, &Ia_movq_Rq_Cq }, /* 0F 21 */ { 0, &Ia_movq_Rq_Dq }, /* 0F 22 */ { 0, &Ia_movq_Cq_Rq }, diff --git a/bochs/disasm/opcodes.inc b/bochs/disasm/opcodes.inc index fd7abeddc..94835b1e9 100644 --- a/bochs/disasm/opcodes.inc +++ b/bochs/disasm/opcodes.inc @@ -499,7 +499,7 @@ Ia_into = { "into", "into", XX, XX, XX, XX, 0 }, Ia_Invalid = { "(invalid)", "(invalid)", XX, XX, XX, XX, 0 }, Ia_invd = { "invd", "invd", XX, XX, XX, XX, BX_ISA_486 }, Ia_invept_Gy_Mdq = { "invept", "invept", Gy, Mdq, XX, XX, BX_ISA_VMX }, -Ia_invlpg = { "invlpg", "invlpg", Mx, XX, XX, XX, BX_ISA_486 }, +Ia_invlpg = { "invlpg", "invlpg", Mb, XX, XX, XX, BX_ISA_486 }, Ia_invlpga = { "invlpga", "invlpga", RAX_Reg, RCX_Reg, XX, XX, BX_ISA_SVM }, Ia_invpcid_Gy_Mdq = { "invpcid", "invpcid", Gy, Mdq, XX, XX, BX_ISA_INVPCID }, Ia_invvpid_Gy_Mdq = { "invvpid", "invvpid", Gy, Mdq, XX, XX, BX_ISA_VMX }, @@ -576,10 +576,10 @@ Ia_lddqu_Vdq_Mdq = { "lddqu", "lddqu", Vdq, Mdq, XX, XX, BX_ISA_SSE3 }, Ia_ldmxcsr = { "ldmxcsr", "ldmxcsr", Md, XX, XX, XX, BX_ISA_SSE }, Ia_ldsl_Gd_Mp = { "lds", "ldsl", Gd, Mp, XX, XX, 0 }, Ia_ldsw_Gw_Mp = { "lds", "ldsw", Gw, Mp, XX, XX, 0 }, -Ia_leal_Gd_Md = { "lea", "leal", Gd, Md, XX, XX, 0 }, -Ia_leaq_Gq_Mq = { "lea", "leaq", Gq, Mq, XX, XX, 0 }, +Ia_leal_Gd_Md = { "lea", "leal", Gd, Mx, XX, XX, 0 }, +Ia_leaq_Gq_Mq = { "lea", "leaq", Gq, Mx, XX, XX, 0 }, Ia_leave = { "leave", "leave", XX, XX, XX, XX, 0 }, -Ia_leaw_Gw_Mw = { "lea", "leaw", Gw, Mw, XX, XX, 0 }, +Ia_leaw_Gw_Mw = { "lea", "leaw", Gw, Mx, XX, XX, 0 }, Ia_lesl_Gd_Mp = { "les", "lesl", Gd, Mp, XX, XX, 0 }, Ia_lesw_Gw_Mp = { "les", "lesw", Gw, Mp, XX, XX, 0 }, Ia_lfence = { "lfence", "lfence", XX, XX, XX, XX, BX_ISA_SSE2 }, @@ -746,7 +746,6 @@ Ia_mulps_Vps_Wps = { "mulps", "mulps", Vps, Wps, XX, XX, BX_ISA_SSE }, Ia_mulq_RAX_Eq = { "mul", "mulq", RAX_Reg, Eq, XX, XX, 0 }, Ia_mulsd_Vsd_Wsd = { "mulsd", "mulsd", Vsd, Wsd, XX, XX, BX_ISA_SSE2 }, Ia_mulss_Vss_Wss = { "mulss", "mulss", Vss, Wss, XX, XX, BX_ISA_SSE }, -Ia_multibyte_nop = { "multibyte nop", "multibyte nop", XX, XX, XX, XX, 0 }, Ia_mulw_AX_Ew = { "mul", "mulw", AX_Reg, Ew, XX, XX, 0 }, Ia_mulx_By_Gy_Ey = { "mulx", "mulx", By, Gy, Ey, XX, BX_ISA_BMI2 }, Ia_mwait = { "mwait", "mwait", XX, XX, XX, XX, BX_ISA_MONITOR_MWAIT },