summaryrefslogtreecommitdiff
path: root/src/arch/x86/operand.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/operand.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/operand.c')
-rw-r--r--src/arch/x86/operand.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/arch/x86/operand.c b/src/arch/x86/operand.c
index bb152f8..e916541 100644
--- a/src/arch/x86/operand.c
+++ b/src/arch/x86/operand.c
@@ -966,6 +966,11 @@ bool x86_read_one_operand(GArchInstruction *instr, const bin_t *data, off_t *pos
op = g_x86_register_operand_new_from_mod_rm(data, pos, len, oprsize, true);
break;
+ case X86_OTP_OP_R8:
+ base = (bin_t)va_arg(ap, int);
+ op = g_x86_register_operand_new_from_opcode(data, pos, len, AOS_8_BITS, base);
+ break;
+
case X86_OTP_OP_R1632:
oprsize = va_arg(ap, AsmOperandSize);
base = (bin_t)va_arg(ap, int);
@@ -1090,6 +1095,11 @@ bool x86_read_two_operands(GArchInstruction *instr, const bin_t *data, off_t *po
op1 = g_x86_register_operand_new_from_mod_rm(data, &op1_pos, len, oprsize, op1_first);
break;
+ case X86_OTP_OP_R8:
+ base = (bin_t)va_arg(ap, int);
+ op1 = g_x86_register_operand_new_from_opcode(data, &op1_pos, len, AOS_8_BITS, base);
+ break;
+
case X86_OTP_OP_R1632:
oprsize = va_arg(ap, AsmOperandSize);
base = (bin_t)va_arg(ap, int);