summaryrefslogtreecommitdiff
path: root/src/arch/x86/instruction.h
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/instruction.h
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/instruction.h')
-rw-r--r--src/arch/x86/instruction.h29
1 files changed, 21 insertions, 8 deletions
diff --git a/src/arch/x86/instruction.h b/src/arch/x86/instruction.h
index 1c97255..0092ba0 100644
--- a/src/arch/x86/instruction.h
+++ b/src/arch/x86/instruction.h
@@ -39,6 +39,7 @@ typedef struct _asm_x86_instr asm_x86_instr;
typedef enum _X86Opcodes
{
X86_OP_ADD_RM8_R8, /* add (0x00) */
+ X86_OP_ADD_RM1632_R1632, /* add ([0x66] 0x01) */
X86_OP_SUB_R1632_RM1632, /* sub ([0x66] 0x29) */
@@ -89,6 +90,9 @@ typedef enum _X86Opcodes
X86_OP_PUSH_IMM1632, /* push ([0x66] 0x68) */
+ X86_OP_JB_REL8, /* jb (0x72) */
+ X86_OP_JNB_REL8, /* jnb (0x73) */
+
X86_OP_JE_8, /* je (0x74) */
X86_OP_JNE_8, /* jne (0x75) */
@@ -116,6 +120,7 @@ typedef enum _X86Opcodes
X86_OP_TEST_RM8_R8, /* test ([0x66] 0x84) */
X86_OP_TEST_RM1632_R1632, /* test ([0x66] 0x85) */
+ X86_OP_MOV_RM8_R8, /* mov (0x88) */
X86_OP_MOV_RM1632_R1632, /* mov ([0x66] 0x89) */
X86_OP_MOV_R1632_RM1632, /* mov ([0x66] 0x8b) */
@@ -141,14 +146,14 @@ typedef enum _X86Opcodes
X86_OP_MOV_E_SI, /* mov ([0x66] 0xbe) */
X86_OP_MOV_E_DI, /* mov ([0x66] 0xbf) */
- X86_OP_ROL_RM1632_IMM8, /* rol ([0x66 0xc1 0) */
- X86_OP_ROR_RM1632_IMM8, /* ror ([0x66 0xc1 1) */
- X86_OP_RCL_RM1632_IMM8, /* rcl ([0x66 0xc1 2) */
- X86_OP_RCR_RM1632_IMM8, /* rcr ([0x66 0xc1 3) */
- X86_OP_SHL_RM1632_IMM8, /* shl ([0x66 0xc1 4) */
- X86_OP_SHR_RM1632_IMM8, /* shr ([0x66 0xc1 5) */
- X86_OP_SAL_RM1632_IMM8, /* sal ([0x66 0xc1 6) */
- X86_OP_SAR_RM1632_IMM8, /* sar ([0x66 0xc1 7) */
+ X86_OP_ROL_RM1632_IMM8, /* rol ([0x66] 0xc1 0) */
+ X86_OP_ROR_RM1632_IMM8, /* ror ([0x66] 0xc1 1) */
+ X86_OP_RCL_RM1632_IMM8, /* rcl ([0x66] 0xc1 2) */
+ X86_OP_RCR_RM1632_IMM8, /* rcr ([0x66] 0xc1 3) */
+ X86_OP_SHL_RM1632_IMM8, /* shl ([0x66] 0xc1 4) */
+ X86_OP_SHR_RM1632_IMM8, /* shr ([0x66] 0xc1 5) */
+ X86_OP_SAL_RM1632_IMM8, /* sal ([0x66] 0xc1 6) */
+ X86_OP_SAR_RM1632_IMM8, /* sar ([0x66] 0xc1 7) */
X86_OP_RET, /* ret (0xc3) */
@@ -159,6 +164,8 @@ typedef enum _X86Opcodes
X86_OP_INT, /* int (0xcd) */
+ X86_OP_SHL_RM1632_CL, /* shl ([0x66] 0xd3 4) */
+
X86_OP_CALL_REL1632, /* call ([0x66] 0xe8) */
X86_OP_JMP_REL1632, /* jmp ([0x66] 0xe9) */
@@ -166,12 +173,18 @@ typedef enum _X86Opcodes
X86_OP_HLT, /* hlt (0xf4) */
+ X86_OP_NOT_RM1632, /* not ([0x66] 0xf7 2) */
+
+ X86_OP_CLD, /* cld (0xfc) */
+
X86_OP_CALL_RM1632, /* call ([0x66] 0xff 2) */
X86_OP_JMP_RM1632, /* jmp ([0x66] 0xff 4) */
X86_OP_PUSH_RM1632, /* push ([0x66] 0xff 6) */
X86_OP_MOVZX_R1632_RM8, /* movzx ([0x66] 0x0f 0xb6) */
+ X86_OP_MOVSX_R1632_RM8, /* movsx ([0x66] 0x0f 0xbe) */
+
X86_OP_COUNT
} X86Opcodes;