summaryrefslogtreecommitdiff
path: root/src/arch/x86/processor.c
diff options
context:
space:
mode:
authorCyrille Bagard <nocbos@gmail.com>2010-08-18 23:20:47 (GMT)
committerCyrille Bagard <nocbos@gmail.com>2010-08-18 23:20:47 (GMT)
commitc0831e2a8d16d65e8f31e52a63b703086609d8dd (patch)
treeb5587b780da2b5da3fa84869431d6409e7eec782 /src/arch/x86/processor.c
parent9ed927a6b6405633a82f378438c533fd0112f16d (diff)
Supported several extra x86 instructions.
git-svn-id: svn://svn.gna.org/svn/chrysalide/trunk@182 abbe820e-26c8-41b2-8c08-b7b2b41f8b0a
Diffstat (limited to 'src/arch/x86/processor.c')
-rw-r--r--src/arch/x86/processor.c46
1 files changed, 45 insertions, 1 deletions
diff --git a/src/arch/x86/processor.c b/src/arch/x86/processor.c
index 7048890..beddda6 100644
--- a/src/arch/x86/processor.c
+++ b/src/arch/x86/processor.c
@@ -214,6 +214,7 @@ static GArchInstruction *g_x86_processor_decode_instruction(const GX86Processor
[XOP_XOR_E_AX_IMM1632] = x86_read_instr_xor_e_ax_imm1632,
[XOP_CMP_RM8_R8] = x86_read_instr_cmp_rm8_r8,
[XOP_CMP_RM1632_R1632] = x86_read_instr_cmp_rm1632_r1632,
+ [XOP_CMP_R8_RM8] = x86_read_instr_cmp_r8_rm8,
[XOP_CMP_R1632_RM1632] = x86_read_instr_cmp_r1632_rm1632,
[XOP_CMP_AL_IMM8] = x86_read_instr_cmp_al_imm8,
[XOP_CMP_E_AX_IMM1632] = x86_read_instr_cmp_e_ax_imm1632,
@@ -335,6 +336,14 @@ static GArchInstruction *g_x86_processor_decode_instruction(const GX86Processor
[XOP_MOV_E_BP_IMM1632] = x86_read_instr_mov_r1632_imm1632,
[XOP_MOV_E_SI_IMM1632] = x86_read_instr_mov_r1632_imm1632,
[XOP_MOV_E_DI_IMM1632] = x86_read_instr_mov_r1632_imm1632,
+ [XOP_ROL_RM8_IMM8] = x86_read_instr_rol_rm8_imm8,
+ [XOP_ROR_RM8_IMM8] = x86_read_instr_ror_rm8_imm8,
+ [XOP_RCL_RM8_IMM8] = x86_read_instr_rcl_rm8_imm8,
+ [XOP_RCR_RM8_IMM8] = x86_read_instr_rcr_rm8_imm8,
+ [XOP_SHL_RM8_IMM8] = x86_read_instr_shl_rm8_imm8,
+ [XOP_SHR_RM8_IMM8] = x86_read_instr_shr_rm8_imm8,
+ [XOP_SAL_RM8_IMM8] = x86_read_instr_sal_rm8_imm8,
+ [XOP_SAR_RM8_IMM8] = x86_read_instr_sar_rm8_imm8,
[XOP_ROL_RM1632_IMM8] = x86_read_instr_rol_rm1632_imm8,
[XOP_ROR_RM1632_IMM8] = x86_read_instr_ror_rm1632_imm8,
[XOP_RCL_RM1632_IMM8] = x86_read_instr_rcl_rm1632_imm8,
@@ -343,13 +352,47 @@ static GArchInstruction *g_x86_processor_decode_instruction(const GX86Processor
[XOP_SHR_RM1632_IMM8] = x86_read_instr_shr_rm1632_imm8,
[XOP_SAL_RM1632_IMM8] = x86_read_instr_sal_rm1632_imm8,
[XOP_SAR_RM1632_IMM8] = x86_read_instr_sar_rm1632_imm8,
- [XOP_RET] = x86_read_instr_ret,
+ [XOP_RETN_IMM16] = x86_read_instr_retn_imm16,
+ [XOP_RETN] = x86_read_instr_retn,
[XOP_MOV_RM8_IMM8] = x86_read_instr_mov_rm8_imm8,
[XOP_MOV_RM1632_IMM1632] = x86_read_instr_mov_rm1632_imm1632,
[XOP_LEAVE] = x86_read_instr_leave,
+ [XOP_RETF_IMM16] = x86_read_instr_retf_imm16,
+ [XOP_RETF] = x86_read_instr_retf,
[XOP_INT_3] = x86_read_instr_int_3,
[XOP_INT] = x86_read_instr_int_imm8,
+ [XOP_ROL_RM8_1] = x86_read_instr_rol_rm8_1,
+ [XOP_ROR_RM8_1] = x86_read_instr_ror_rm8_1,
+ [XOP_RCL_RM8_1] = x86_read_instr_rcl_rm8_1,
+ [XOP_RCR_RM8_1] = x86_read_instr_rcr_rm8_1,
+ [XOP_SHL_RM8_1] = x86_read_instr_shl_rm8_1,
+ [XOP_SHR_RM8_1] = x86_read_instr_shr_rm8_1,
+ [XOP_SAL_RM8_1] = x86_read_instr_sal_rm8_1,
+ [XOP_SAR_RM8_1] = x86_read_instr_sar_rm8_1,
+ [XOP_ROL_RM1632_1] = x86_read_instr_rol_rm1632_1,
+ [XOP_ROR_RM1632_1] = x86_read_instr_ror_rm1632_1,
+ [XOP_RCL_RM1632_1] = x86_read_instr_rcl_rm1632_1,
+ [XOP_RCR_RM1632_1] = x86_read_instr_rcr_rm1632_1,
+ [XOP_SHL_RM1632_1] = x86_read_instr_shl_rm1632_1,
+ [XOP_SHR_RM1632_1] = x86_read_instr_shr_rm1632_1,
+ [XOP_SAL_RM1632_1] = x86_read_instr_sal_rm1632_1,
+ [XOP_SAR_RM1632_1] = x86_read_instr_sar_rm1632_1,
+ [XOP_ROL_RM8_CL] = x86_read_instr_rol_rm8_cl,
+ [XOP_ROR_RM8_CL] = x86_read_instr_ror_rm8_cl,
+ [XOP_RCL_RM8_CL] = x86_read_instr_rcl_rm8_cl,
+ [XOP_RCR_RM8_CL] = x86_read_instr_rcr_rm8_cl,
+ [XOP_SHL_RM8_CL] = x86_read_instr_shl_rm8_cl,
+ [XOP_SHR_RM8_CL] = x86_read_instr_shr_rm8_cl,
+ [XOP_SAL_RM8_CL] = x86_read_instr_sal_rm8_cl,
+ [XOP_SAR_RM8_CL] = x86_read_instr_sar_rm8_cl,
+ [XOP_ROL_RM1632_CL] = x86_read_instr_rol_rm1632_cl,
+ [XOP_ROR_RM1632_CL] = x86_read_instr_ror_rm1632_cl,
+ [XOP_RCL_RM1632_CL] = x86_read_instr_rcl_rm1632_cl,
+ [XOP_RCR_RM1632_CL] = x86_read_instr_rcr_rm1632_cl,
[XOP_SHL_RM1632_CL] = x86_read_instr_shl_rm1632_cl,
+ [XOP_SHR_RM1632_CL] = x86_read_instr_shr_rm1632_cl,
+ [XOP_SAL_RM1632_CL] = x86_read_instr_sal_rm1632_cl,
+ [XOP_SAR_RM1632_CL] = x86_read_instr_sar_rm1632_cl,
[XOP_CALL_REL1632] = x86_read_instr_call_rel1632,
[XOP_JMP_REL1632] = x86_read_instr_jmp_rel1632,
[XOP_JMP_REL8] = x86_read_instr_jmp_rel8,
@@ -405,6 +448,7 @@ static GArchInstruction *g_x86_processor_decode_instruction(const GX86Processor
[XOP_SETNG_RM8] = x86_read_instr_setng_rm8,
[XOP_SETG_RM8] = x86_read_instr_setg_rm8,
[XOP_MOVZX_R1632_RM8] = x86_read_instr_movzx_r1632_rm8,
+ [XOP_MOVZX_R1632_RM16] = x86_read_instr_movzx_r1632_rm16,
[XOP_MOVSX_R1632_RM8] = x86_read_instr_movsx_r1632_rm8,
[XOP_MOVSX_R1632_RM1632] = x86_read_instr_movsx_r1632_rm1632