summaryrefslogtreecommitdiff
path: root/src/arch/x86/operand.c
diff options
context:
space:
mode:
authorCyrille Bagard <nocbos@gmail.com>2008-10-27 20:00:09 (GMT)
committerCyrille Bagard <nocbos@gmail.com>2008-10-27 20:00:09 (GMT)
commit2e5893f9261ba59e06fadcc6ddfa9a1253e286b3 (patch)
tree8197f6419812e7c36c28d6849ced3e37e8926539 /src/arch/x86/operand.c
parent197933fdf469ab9b8897b33c51809c128f1e3c03 (diff)
Extended the current opcode support (0x01, 0x72, 0x73, 0x88, 0xd3, 0xf7, 0xfc, 0xb6 and 0xbe).
git-svn-id: svn://svn.gna.org/svn/chrysalide/trunk@38 abbe820e-26c8-41b2-8c08-b7b2b41f8b0a
Diffstat (limited to 'src/arch/x86/operand.c')
-rw-r--r--src/arch/x86/operand.c12
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;