summaryrefslogtreecommitdiff
path: root/src/arch/x86/instruction.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/arch/x86/instruction.h')
-rw-r--r--src/arch/x86/instruction.h28
1 files changed, 24 insertions, 4 deletions
diff --git a/src/arch/x86/instruction.h b/src/arch/x86/instruction.h
index baf911d..1c97255 100644
--- a/src/arch/x86/instruction.h
+++ b/src/arch/x86/instruction.h
@@ -92,11 +92,17 @@ typedef enum _X86Opcodes
X86_OP_JE_8, /* je (0x74) */
X86_OP_JNE_8, /* jne (0x75) */
- X86_OP_XOR_RM8_IMM8, /* xor (0x81 6) */
+ X86_OP_XOR_RM8_IMM8, /* xor (0x80 6) */
X86_OP_CMP_RM8_IMM8, /* cmp (0x80 7) */
- X86_OP_ADD_RM1632_IMM1632, /* add ([0x66] 0x81 0) */
+ X86_OP_ADD_RM1632_IMM1632, /* add ([0x66] 0x81 0) */
+ X86_OP_OR_RM1632_IMM1632, /* or ([0x66] 0x81 1) */
+ X86_OP_ADC_RM1632_IMM1632, /* adc ([0x66] 0x81 2) */
+ X86_OP_SBB_RM1632_IMM1632, /* sbb ([0x66] 0x81 3) */
+ X86_OP_AND_RM1632_IMM1632, /* and ([0x66] 0x81 4) */
+ X86_OP_SUB_RM1632_IMM1632, /* sub ([0x66] 0x81 5) */
X86_OP_XOR_RM1632_IMM1632, /* xor ([0x66] 0x81 6) */
+ X86_OP_CMP_RM1632_IMM1632, /* xor ([0x66] 0x81 7) */
X86_OP_ADD_RM1632_IMM8, /* add ([0x66] 0x83 0) */
X86_OP_OR_RM1632_IMM8, /* or ([0x66] 0x83 1) */
@@ -135,6 +141,13 @@ 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_RET, /* ret (0xc3) */
@@ -157,6 +170,8 @@ typedef enum _X86Opcodes
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_COUNT
} X86Opcodes;
@@ -167,11 +182,16 @@ typedef enum _X86Opcodes
/* Eventuel préfixe rencontré */
typedef enum _X86Prefix
{
- X86_PRE_NONE = 0, /* Aucun préfixe */
+ X86_PRE_NONE = (0 << 0), /* Aucun préfixe */
+
+
+ /* Groupe 3 */
+ X86_PRE_OPSIZE = (1 << 1), /* Basculement des opérandes */
- X86_PRE_OPSIZE /* Basculement des opérandes */
+ /* Autres */
+ X86_PRE_ESCAPE = (1 << 3) /* Opcode sur deux octets */
} X86Prefix;