Diff
Modified: trunk/arch/x86/x86_decode.cpp (422 => 423)
--- trunk/arch/x86/x86_decode.cpp 2010-04-25 12:54:16 UTC (rev 422)
+++ trunk/arch/x86/x86_decode.cpp 2010-04-25 13:20:27 UTC (rev 423)
@@ -206,8 +206,8 @@
/*[0xBD]*/ INSTR_MOV | ADDMODE_IMM_REG | WIDTH_FULL,
/*[0xBE]*/ INSTR_MOV | ADDMODE_IMM_REG | WIDTH_FULL,
/*[0xBF]*/ INSTR_MOV | ADDMODE_IMM_REG | WIDTH_FULL,
- /*[0xC0]*/ INSTR_SHIFT_GRP2 | ADDMODE_IMM8_RM | WIDTH_BYTE,
- /*[0xC0]*/ INSTR_SHIFT_GRP2 | ADDMODE_IMM8_RM | WIDTH_FULL,
+ /*[0xC0]*/ GROUP_2 | ADDMODE_IMM8_RM | WIDTH_BYTE,
+ /*[0xC1]*/ GROUP_2 | ADDMODE_IMM8_RM | WIDTH_FULL,
/*[0xC2]*/ 0,
/*[0xC3]*/ INSTR_RET | ADDMODE_IMPLIED,
/*[0xC4]*/ 0,
@@ -540,15 +540,15 @@
instr->type = decode & X86_INSTR_TYPE_MASK;
instr->flags = decode & ~X86_INSTR_TYPE_MASK;
- if (instr->flags == 0) /* Unrecognized? */
+ if (instr->flags == 0) /* Unrecognized? */
return -1;
if (instr->flags & MOD_RM)
decode_modrm_byte(instr, RAM[pc++]);
/* Opcode groups */
- switch (instr->type) {
- case INSTR_SHIFT_GRP2:
+ switch (instr->flags) {
+ case GROUP_2:
instr->type = shift_grp2_decode_table[instr->reg_opc];
break;
default:
Modified: trunk/arch/x86/x86_decode.h (422 => 423)
--- trunk/arch/x86/x86_decode.h 2010-04-25 12:54:16 UTC (rev 422)
+++ trunk/arch/x86/x86_decode.h 2010-04-25 13:20:27 UTC (rev 423)
@@ -79,6 +79,8 @@
DST_MASK = DST_NONE|DST_REG|DST_ACC|DST_MEM|DST_MEM_DISP_BYTE|DST_MEM_DISP_FULL,
MEM_DISP_MASK = SRC_MEM_DISP_BYTE|SRC_MEM_DISP_FULL|DST_MEM_DISP_BYTE|DST_MEM_DISP_FULL,
+
+ GROUP_2 = (1U << 27),
};
/*
Modified: trunk/arch/x86/x86_disasm.cpp (422 => 423)
--- trunk/arch/x86/x86_disasm.cpp 2010-04-25 12:54:16 UTC (rev 422)
+++ trunk/arch/x86/x86_disasm.cpp 2010-04-25 13:20:27 UTC (rev 423)
@@ -116,7 +116,6 @@
/* [INSTR_SBB] */ "sbb",
/* [INSTR_SCASB] */ "scasb",
/* [INSTR_SCASW] */ "scasw",
- /* [INSTR_SHIFT_GRP2] */ "<grp2>",
/* [INSTR_SHL] */ "shl",
/* [INSTR_SHR] */ "shr",
/* [INSTR_STC] */ "stc",
Modified: trunk/arch/x86/x86_isa.h (422 => 423)
--- trunk/arch/x86/x86_isa.h 2010-04-25 12:54:16 UTC (rev 422)
+++ trunk/arch/x86/x86_isa.h 2010-04-25 13:20:27 UTC (rev 423)
@@ -117,7 +117,6 @@
INSTR_SBB,
INSTR_SCASB,
INSTR_SCASW,
- INSTR_SHIFT_GRP2,
INSTR_SHL,
INSTR_SHR,
INSTR_STC,