diff options
Diffstat (limited to 'src/arch/x86/operand.c')
-rw-r--r-- | src/arch/x86/operand.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/arch/x86/operand.c b/src/arch/x86/operand.c index e13c793..a028dc2 100644 --- a/src/arch/x86/operand.c +++ b/src/arch/x86/operand.c @@ -1436,6 +1436,10 @@ bool x86_read_one_operand(asm_x86_instr *instr, const uint8_t *data, off_t *pos, op = x86_create_rm1632_operand(data, pos, len, oprsize == AOS_32_BITS); break; + case X86_OTP_CL: + op = x86_create_r8_operand(0x01, true); + break; + case X86_OTP_AL: op = x86_create_r8_operand(0x00, true); break; @@ -1545,6 +1549,10 @@ bool x86_read_two_operands(asm_x86_instr *instr, const uint8_t *data, off_t *pos op1 = x86_create_rm1632_operand(data, &op1_pos, len, oprsize == AOS_32_BITS); break; + case X86_OTP_CL: + op1 = x86_create_r8_operand(0x01, op1_first); + break; + case X86_OTP_AL: op1 = x86_create_r8_operand(0x00, op1_first); break; @@ -1616,6 +1624,10 @@ bool x86_read_two_operands(asm_x86_instr *instr, const uint8_t *data, off_t *pos op2 = x86_create_rm1632_operand(data, &op2_pos, len, oprsize == AOS_32_BITS); break; + case X86_OTP_CL: + op2 = x86_create_r8_operand(0x01, op2_first); + break; + case X86_OTP_AL: op2 = x86_create_r8_operand(0x00, op2_first); break; |