diff options
Diffstat (limited to 'src/arch/x86/operand.c')
-rw-r--r-- | src/arch/x86/operand.c | 10 |
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); |