summaryrefslogtreecommitdiff
path: root/src/arch/x86/processor.c
diff options
context:
space:
mode:
authorCyrille Bagard <nocbos@gmail.com>2009-05-24 22:34:42 (GMT)
committerCyrille Bagard <nocbos@gmail.com>2009-05-24 22:34:42 (GMT)
commit0b7d7f26c745ff0f52e9e483a0980351368ca824 (patch)
treea244c063bdfa69f2605be6b1a1e80d9a8551602c /src/arch/x86/processor.c
parentf7e5d077e0d62f8b8717c79616852c3e1009cfa6 (diff)
Supported nine extra x86 opcodes.
git-svn-id: svn://svn.gna.org/svn/chrysalide/trunk@66 abbe820e-26c8-41b2-8c08-b7b2b41f8b0a
Diffstat (limited to 'src/arch/x86/processor.c')
-rw-r--r--src/arch/x86/processor.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/arch/x86/processor.c b/src/arch/x86/processor.c
index 5bf6d9f..aae4fe3 100644
--- a/src/arch/x86/processor.c
+++ b/src/arch/x86/processor.c
@@ -570,7 +570,21 @@ static GArchInstruction *g_x86_processor_decode_instruction(const GX86Processor
break;
+ case XOP_SCAS_AL_M8:
+ result = x86_read_instr_scas_al_m8(data, pos, len, addr, prefix, proc);
+ break;
+
+ case XOP_MOV_AL_IMM8:
+ case XOP_MOV_CL_IMM8:
+ case XOP_MOV_DL_IMM8:
+ case XOP_MOV_BL_IMM8:
+ case XOP_MOV_AH_IMM8:
+ case XOP_MOV_CH_IMM8:
+ case XOP_MOV_DH_IMM8:
+ case XOP_MOV_BH_IMM8:
+ result = x86_read_instr_mov_r8_imm8(data, pos, len, addr, prefix, proc);
+ break;
case XOP_MOV_E_AX_IMM1632:
case XOP_MOV_E_CX_IMM1632:
@@ -709,6 +723,9 @@ static GArchInstruction *g_x86_processor_decode_instruction(const GX86Processor
}
+ if (result != NULL)
+ g_x86_instruction_set_prefixes(G_X86_INSTRUCTION(result), prefix);
+
return result;
}