diff options
author | Cyrille Bagard <nocbos@gmail.com> | 2014-12-03 22:41:29 (GMT) |
---|---|---|
committer | Cyrille Bagard <nocbos@gmail.com> | 2014-12-03 22:41:29 (GMT) |
commit | 172fce9bab61de1ffa89f731b5d10f96e209afc1 (patch) | |
tree | 31aee5a141979fa99bbf88cbf2b7990de0ec3832 /src/arch/arm/v7/arm.c | |
parent | f7ef27195f8c9dc35e5e210a333b74fcfae5ad71 (diff) |
Begun to support more than the only 'ARMv7' architecture for ARM (ARM / Thumb16 / Thumb32).
git-svn-id: svn://svn.gna.org/svn/chrysalide/trunk@433 abbe820e-26c8-41b2-8c08-b7b2b41f8b0a
Diffstat (limited to 'src/arch/arm/v7/arm.c')
-rw-r--r-- | src/arch/arm/v7/arm.c | 292 |
1 files changed, 119 insertions, 173 deletions
diff --git a/src/arch/arm/v7/arm.c b/src/arch/arm/v7/arm.c index ea9819c..60e0e22 100644 --- a/src/arch/arm/v7/arm.c +++ b/src/arch/arm/v7/arm.c @@ -27,112 +27,58 @@ #include <stdint.h> -#include "opcodes/opcodes.h" +#include "opcodes/arm_opcodes.h" +#include "opcodes/opcodes_tmp_arm.h" #include "../../../common/bconst.h" /* Désassemble une instruction ARMv7 de données ou autre. */ -static GArchInstruction *process_armv7_data_processing_and_miscellaneous_instructions(uint32_t); +static GArchInstruction *process_armv7_arm_data_processing_and_miscellaneous_instructions(uint32_t); /* Désassemble une instruction ARMv7 de données de registre. */ -static GArchInstruction *process_armv7_data_processing_register(uint32_t); +static GArchInstruction *process_armv7_arm_data_processing_register(uint32_t); /* Désassemble une instruction ARMv7 de données de immédiate. */ -static GArchInstruction *process_armv7_data_processing_immediate(uint32_t); +static GArchInstruction *process_armv7_arm_data_processing_immediate(uint32_t); /* Désassemble une instruction ARMv7 liées aux multiplications. */ -static GArchInstruction *process_armv7_multiply_and_multiply_accumulate(uint32_t); +static GArchInstruction *process_armv7_arm_multiply_and_multiply_accumulate(uint32_t); /* Désassemble une instruction ARMv7 de données ou autre. */ -static GArchInstruction *process_armv7_branch_branch_with_link_and_block_data_transfer(uint32_t); +static GArchInstruction *process_armv7_arm_branch_branch_with_link_and_block_data_transfer(uint32_t); -// process_armv7_instruction_set_encoding +// process_armv7_arm_instruction_set_encoding -#define process_armv7_load_store_word_and_unsigned_byte(raw) NULL -#define process_armv7_load_store_word_and_unsigned_byte(raw) NULL -#define process_armv7_media_instructions(raw) NULL -//#define process_armv7_branch_branch_with_link_and_block_data_transfer(raw) NULL -#define process_armv7_coprocessor_instructions_and_Supervisor_call(raw) NULL -#define process_armv7_unconditional_instructions(raw) NULL +#define process_armv7_arm_load_store_word_and_unsigned_byte(raw) NULL +#define process_armv7_arm_load_store_word_and_unsigned_byte(raw) NULL +#define process_armv7_arm_media_instructions(raw) NULL +//#define process_armv7_arm_branch_branch_with_link_and_block_data_transfer(raw) NULL +#define process_armv7_arm_coprocessor_instructions_and_Supervisor_call(raw) NULL +#define process_armv7_arm_unconditional_instructions(raw) NULL -// process_armv7_data_processing_and_miscellaneous_instructions +// process_armv7_arm_data_processing_and_miscellaneous_instructions -#define process_armv7_data_processing_register_shifted_register(raw) NULL -#define process_armv7_extra_load_store_instructions(raw) NULL -#define process_armv7_miscellaneous_instructions(raw) NULL -#define process_armv7_halfword_multiply_and_multiply_accumulate(raw) NULL -//#define process_armv7_multiply_and_multiply_accumulate(raw) NULL -#define process_armv7_synchronization_primitives(raw) NULL -#define process_armv7_extra_load_store_instructions_unprivileged(raw) NULL -#define process_armv7_extra_load_store_instructions(raw) NULL -//#define process_armv7_data_processing_immediate(raw) NULL -#define armv7_read_instr_mov_immediate(raw) NULL -#define armv7_read_instr_movt(raw) NULL -#define process_armv7_msr_immediate_and_hints(raw) NULL +#define process_armv7_arm_data_processing_register_shifted_register(raw) NULL +#define process_armv7_arm_extra_load_store_instructions(raw) NULL +#define process_armv7_arm_miscellaneous_instructions(raw) NULL +#define process_armv7_arm_halfword_multiply_and_multiply_accumulate(raw) NULL +//#define process_armv7_arm_multiply_and_multiply_accumulate(raw) NULL +#define process_armv7_arm_synchronization_primitives(raw) NULL +#define process_armv7_arm_extra_load_store_instructions_unprivileged(raw) NULL +#define process_armv7_arm_extra_load_store_instructions(raw) NULL +//#define process_armv7_arm_data_processing_immediate(raw) NULL +#define process_armv7_arm_msr_immediate_and_hints(raw) NULL -// process_armv7_data_processing_register -/* -#define armv7_read_instr_and_register(raw) NULL -#define armv7_read_instr_eor_register(raw) NULL -#define armv7_read_instr_sub_register(raw) NULL -#define armv7_read_instr_rsb_register(raw) NULL -#define armv7_read_instr_add_register_arm(raw) NULL -#define armv7_read_instr_adc_register(raw) NULL -#define armv7_read_instr_sbc_register(raw) NULL -#define armv7_read_instr_rsc_register(raw) NULL -#define armv7_read_instr_tst_register(raw) NULL -#define armv7_read_instr_teq_register(raw) NULL -#define armv7_read_instr_cmp_register(raw) NULL -#define armv7_read_instr_cmn_register(raw) NULL -#define armv7_read_instr_orr_register(raw) NULL -*/ -//#define armv7_read_instr_mov_register_arm(raw) NULL -#define armv7_read_instr_lsl_immediate(raw) NULL -#define armv7_read_instr_lsr_immediate(raw) NULL -#define armv7_read_instr_asr_immediate(raw) NULL -#define armv7_read_instr_rrx(raw) NULL -#define armv7_read_instr_ror_immediate(raw) NULL -//#define armv7_read_instr_bic_register(raw) NULL -//#define armv7_read_instr_mvn_register(raw) NULL +// process_armv7_arm_data_processing_register -// process_armv7_branch_branch_with_link_and_block_data_transfer - -#define armv7_read_instr_stmda_stmed(raw) NULL -#define armv7_read_instr_ldmda_ldmfa(raw) NULL -#define armv7_read_instr_stm_stmia_stmea(raw) NULL -#define armv7_read_instr_ldm_ldmia_ldmfd_arm(raw) NULL -#define armv7_read_instr_ldm_ldmia_ldmfd_arm(raw) NULL -#define armv7_read_instr_pop_arm(raw) NULL -#define armv7_read_instr_stmdb_stmfd(raw) NULL -#define armv7_read_instr_stmdb_stmfd(raw) NULL -#define armv7_read_instr_push(raw) NULL -#define armv7_read_instr_ldmdb_ldmea(raw) NULL -#define armv7_read_instr_stmib_stmfa(raw) NULL -#define armv7_read_instr_ldmib_ldmed(raw) NULL -#define armv7_read_instr_stm_user_registers(raw) NULL -#define armv7_read_instr_ldm_user_registers(raw) NULL -#define armv7_read_instr_ldm_exception_return(raw) NULL -#define armv7_read_instr_b(raw) NULL -//#define armv7_read_instr_bl_blx_immediate(raw) NULL - - - -#define armv7_read_instr_adr(raw) NULL - - - -// ??? -#define armv7_read_instr_yield(raw) NULL -#define armv7_read_instr_bx(raw) NULL - @@ -149,7 +95,7 @@ static GArchInstruction *process_armv7_branch_branch_with_link_and_block_data_tr * * ******************************************************************************/ -GArchInstruction *process_armv7_instruction_set_encoding(uint32_t raw) +GArchInstruction *process_armv7_arm_instruction_set_encoding(uint32_t raw) { GArchInstruction *result; /* Instruction à renvoyer */ uint32_t cond; /* Champ 'cond' à retrouver */ @@ -170,31 +116,31 @@ GArchInstruction *process_armv7_instruction_set_encoding(uint32_t raw) if (cond != b1111) { if ((op1 & b110) == b000) - result = process_armv7_data_processing_and_miscellaneous_instructions(raw); + result = process_armv7_arm_data_processing_and_miscellaneous_instructions(raw); else if (op1 == b010) - result = process_armv7_load_store_word_and_unsigned_byte(raw); + result = process_armv7_arm_load_store_word_and_unsigned_byte(raw); else if (op1 == b011) { if (op == b0) - result = process_armv7_load_store_word_and_unsigned_byte(raw); + result = process_armv7_arm_load_store_word_and_unsigned_byte(raw); else - result = process_armv7_media_instructions(raw); + result = process_armv7_arm_media_instructions(raw); } else if ((op1 & b110) == b100) - result = process_armv7_branch_branch_with_link_and_block_data_transfer(raw); + result = process_armv7_arm_branch_branch_with_link_and_block_data_transfer(raw); else if ((op1 & b110) == b110) - result = process_armv7_coprocessor_instructions_and_Supervisor_call(raw); + result = process_armv7_arm_coprocessor_instructions_and_Supervisor_call(raw); } else /* if (cond == b1111) */ - result = process_armv7_unconditional_instructions(raw); + result = process_armv7_arm_unconditional_instructions(raw); return result; @@ -213,7 +159,7 @@ GArchInstruction *process_armv7_instruction_set_encoding(uint32_t raw) * * ******************************************************************************/ -static GArchInstruction *process_armv7_data_processing_and_miscellaneous_instructions(uint32_t raw) +static GArchInstruction *process_armv7_arm_data_processing_and_miscellaneous_instructions(uint32_t raw) { GArchInstruction *result; /* Instruction à retourner */ uint32_t op; /* Champ 'op' à retrouver */ @@ -236,10 +182,10 @@ static GArchInstruction *process_armv7_data_processing_and_miscellaneous_instruc if ((op1 & b11001) != b10000) { if ((op2 & b0001) == b0000) - result = process_armv7_data_processing_register(raw); + result = process_armv7_arm_data_processing_register(raw); else if ((op2 & b1001) == b0001) - result = process_armv7_data_processing_register_shifted_register(raw); + result = process_armv7_arm_data_processing_register_shifted_register(raw); if (result != NULL) goto padpami_found; @@ -248,10 +194,10 @@ static GArchInstruction *process_armv7_data_processing_and_miscellaneous_instruc else /* if ((op1 & b11001) == b10000) */ { if ((op2 & b1000) == b0000) - result = process_armv7_miscellaneous_instructions(raw); + result = process_armv7_arm_miscellaneous_instructions(raw); else if ((op2 & b1001) == b1000) - result = process_armv7_halfword_multiply_and_multiply_accumulate(raw); + result = process_armv7_arm_halfword_multiply_and_multiply_accumulate(raw); if (result != NULL) goto padpami_found; @@ -260,7 +206,7 @@ static GArchInstruction *process_armv7_data_processing_and_miscellaneous_instruc if ((op1 & b10000) == b00000) { if (op2 == b1001) - result = process_armv7_multiply_and_multiply_accumulate(raw); + result = process_armv7_arm_multiply_and_multiply_accumulate(raw); if (result != NULL) goto padpami_found; @@ -269,7 +215,7 @@ static GArchInstruction *process_armv7_data_processing_and_miscellaneous_instruc if ((op1 & b10000) == b10000) { if (op2 == b1001) - result = process_armv7_synchronization_primitives(raw); + result = process_armv7_arm_synchronization_primitives(raw); if (result != NULL) goto padpami_found; @@ -278,10 +224,10 @@ static GArchInstruction *process_armv7_data_processing_and_miscellaneous_instruc if ((op1 & b10010) != b00010) { if (op2 == b1011) - result = process_armv7_extra_load_store_instructions(raw); + result = process_armv7_arm_extra_load_store_instructions(raw); else if ((op2 & b1101) == b1101) - result = process_armv7_extra_load_store_instructions(raw); + result = process_armv7_arm_extra_load_store_instructions(raw); if (result != NULL) goto padpami_found; @@ -290,10 +236,10 @@ static GArchInstruction *process_armv7_data_processing_and_miscellaneous_instruc else /* if ((op1 & b10010) != b00010) */ { if (op2 == b1011) - result = process_armv7_extra_load_store_instructions_unprivileged(raw); + result = process_armv7_arm_extra_load_store_instructions_unprivileged(raw); else if ((op2 & b1101) == b1101) - result = process_armv7_extra_load_store_instructions(raw); + result = process_armv7_arm_extra_load_store_instructions(raw); if (result != NULL) goto padpami_found; @@ -304,16 +250,16 @@ static GArchInstruction *process_armv7_data_processing_and_miscellaneous_instruc else { if ((op1 & b11001) != b10000) - result = process_armv7_data_processing_immediate(raw); + result = process_armv7_arm_data_processing_immediate(raw); else if (op1 == b10000) - result = armv7_read_instr_mov_immediate(raw); + result = armv7_read_arm_instr_mov_immediate(raw); else if (op1 == b10100) - result = armv7_read_instr_movt(raw); + result = armv7_read_arm_instr_movt(raw); else if ((op1 & b11011) == b10010) - result = process_armv7_msr_immediate_and_hints(raw); + result = process_armv7_arm_msr_immediate_and_hints(raw); } @@ -336,7 +282,7 @@ static GArchInstruction *process_armv7_data_processing_and_miscellaneous_instruc * * ******************************************************************************/ -static GArchInstruction *process_armv7_data_processing_register(uint32_t raw) +static GArchInstruction *process_armv7_arm_data_processing_register(uint32_t raw) { GArchInstruction *result; /* Instruction à retourner */ uint32_t op; /* Champ 'op' à retrouver */ @@ -355,84 +301,84 @@ static GArchInstruction *process_armv7_data_processing_register(uint32_t raw) op2 = (raw >> 5) & 0x3; if ((op & b11110) == b00000) - result = armv7_read_instr_and_register(raw); + result = armv7_read_arm_instr_and_register(raw); else if ((op & b11110) == b00010) - result = armv7_read_instr_eor_register(raw); + result = armv7_read_arm_instr_eor_register(raw); else if ((op & b11110) == b00100) - result = armv7_read_instr_sub_register(raw); + result = armv7_read_arm_instr_sub_register(raw); else if ((op & b11110) == b00110) - result = armv7_read_instr_rsb_register(raw); + result = armv7_read_arm_instr_rsb_register(raw); else if ((op & b11110) == b01000) - result = armv7_read_instr_add_register_arm(raw); + result = armv7_read_arm_instr_add_register_arm(raw); else if ((op & b11110) == b01010) - result = armv7_read_instr_adc_register(raw); + result = armv7_read_arm_instr_adc_register(raw); else if ((op & b11110) == b01100) - result = armv7_read_instr_sbc_register(raw); + result = armv7_read_arm_instr_sbc_register(raw); else if ((op & b11110) == b01110) - result = armv7_read_instr_rsc_register(raw); + result = armv7_read_arm_instr_rsc_register(raw); /* else if ((op & b11001) == b10000) - result = process_armv7_data_processing_and_miscellaneous_instructions(raw); + result = process_armv7_arm_data_processing_and_miscellaneous_instructions(raw); */ else if (op == b10001) - result = armv7_read_instr_tst_register(raw); + result = armv7_read_arm_instr_tst_register(raw); else if (op == b10011) - result = armv7_read_instr_teq_register(raw); + result = armv7_read_arm_instr_teq_register(raw); else if (op == b10101) - result = armv7_read_instr_cmp_register(raw); + result = armv7_read_arm_instr_cmp_register(raw); else if (op == b10111) - result = armv7_read_instr_cmn_register(raw); + result = armv7_read_arm_instr_cmn_register(raw); else if ((op & b11110) == b11000) - result = armv7_read_instr_orr_register(raw); + result = armv7_read_arm_instr_orr_register(raw); else if ((op & b11110) == b11010) { if (op2 == b00) { if (imm5 == b00000) - result = armv7_read_instr_mov_register_arm(raw); + result = armv7_read_arm_instr_mov_register_arm(raw); else - result = armv7_read_instr_lsl_immediate(raw); + result = armv7_read_arm_instr_lsl_immediate(raw); } else if (op2 == b01) - result = armv7_read_instr_lsr_immediate(raw); + result = armv7_read_arm_instr_lsr_immediate(raw); else if (op2 == b10) - result = armv7_read_instr_asr_immediate(raw); + result = armv7_read_arm_instr_asr_immediate(raw); else if (op2 == b11) { if (imm5 == b00000) - result = armv7_read_instr_rrx(raw); + result = armv7_read_arm_instr_rrx(raw); else - result = armv7_read_instr_ror_immediate(raw); + result = armv7_read_arm_instr_ror_immediate(raw); } } else if ((op & b11110) == b11100) - result = armv7_read_instr_bic_register(raw); + result = armv7_read_arm_instr_bic_register(raw); else if ((op & b11110) == b11110) - result = armv7_read_instr_mvn_register(raw); + result = armv7_read_arm_instr_mvn_register(raw); return result; @@ -457,7 +403,7 @@ static GArchInstruction *process_armv7_data_processing_register(uint32_t raw) * * ******************************************************************************/ -static GArchInstruction *process_armv7_data_processing_immediate(uint32_t raw) +static GArchInstruction *process_armv7_arm_data_processing_immediate(uint32_t raw) { GArchInstruction *result; /* Instruction à retourner */ uint32_t op; /* Champ 'op' à retrouver */ @@ -474,71 +420,71 @@ static GArchInstruction *process_armv7_data_processing_immediate(uint32_t raw) rn = (raw >> 16) & 0xf; if ((op & b11110) == b00000) - result = armv7_read_instr_and_immediate(raw); + result = armv7_read_arm_instr_and_immediate(raw); else if ((op & b11110) == b00010) - result = armv7_read_instr_eor_immediate(raw); + result = armv7_read_arm_instr_eor_immediate(raw); else if ((op & b11110) == b00100) { if (rn == b1111) - result = armv7_read_instr_adr(raw); + result = armv7_read_arm_instr_adr(raw); else - result = armv7_read_instr_sub_immediate_arm(raw); + result = armv7_read_arm_instr_sub_immediate_arm(raw); } else if ((op & b11110) == b00110) - result = armv7_read_instr_rsb_immediate(raw); + result = armv7_read_arm_instr_rsb_immediate(raw); else if ((op & b11110) == b01000) { if (rn == b1111) - result = armv7_read_instr_adr(raw); + result = armv7_read_arm_instr_adr(raw); else - result = armv7_read_instr_add_immediate_arm(raw); + result = armv7_read_arm_instr_add_immediate_arm(raw); } else if ((op & b11110) == b01010) - result = armv7_read_instr_adc_immediate(raw); + result = armv7_read_arm_instr_adc_immediate(raw); else if ((op & b11110) == b01100) - result = armv7_read_instr_sbc_immediate(raw); + result = armv7_read_arm_instr_sbc_immediate(raw); else if ((op & b11110) == b01110) - result = armv7_read_instr_rsc_immediate(raw); + result = armv7_read_arm_instr_rsc_immediate(raw); /* else if ((op & b11110) == b10000) - result = process_armv7_data_processing_and_miscellaneous_instructions(raw); + result = process_armv7_arm_data_processing_and_miscellaneous_instructions(raw); */ else if (op == b10001) - result = armv7_read_instr_tst_immediate(raw); + result = armv7_read_arm_instr_tst_immediate(raw); else if (op == b10011) - result = armv7_read_instr_teq_immediate(raw); + result = armv7_read_arm_instr_teq_immediate(raw); else if (op == b10101) - result = armv7_read_instr_cmp_immediate(raw); + result = armv7_read_arm_instr_cmp_immediate(raw); else if (op == b10111) - result = armv7_read_instr_cmn_immediate(raw); + result = armv7_read_arm_instr_cmn_immediate(raw); else if ((op & b11110) == b11000) - result = armv7_read_instr_orr_immediate(raw); + result = armv7_read_arm_instr_orr_immediate(raw); else if ((op & b11110) == b11010) - result = armv7_read_instr_mov_immediate(raw); + result = armv7_read_arm_instr_mov_immediate(raw); else if ((op & b11110) == b11100) - result = armv7_read_instr_bic_immediate(raw); + result = armv7_read_arm_instr_bic_immediate(raw); else if ((op & b11110) == b11110) - result = armv7_read_instr_mvn_immediate(raw); + result = armv7_read_arm_instr_mvn_immediate(raw); return result; @@ -567,7 +513,7 @@ static GArchInstruction *process_armv7_data_processing_immediate(uint32_t raw) * * ******************************************************************************/ -static GArchInstruction *process_armv7_multiply_and_multiply_accumulate(uint32_t raw) +static GArchInstruction *process_armv7_arm_multiply_and_multiply_accumulate(uint32_t raw) { GArchInstruction *result; /* Instruction à retourner */ uint32_t op; /* Champ 'op' à retrouver */ @@ -585,34 +531,34 @@ static GArchInstruction *process_armv7_multiply_and_multiply_accumulate(uint32_t op = (raw >> 20) & 0x1f; if ((op & b1110) == b0000) - result = armv7_read_instr_mul(raw); + result = armv7_read_arm_instr_mul(raw); else if ((op & b1110) == b0010) - result = armv7_read_instr_mla(raw); + result = armv7_read_arm_instr_mla(raw); else if (op == b0100) - result = armv7_read_instr_umaal(raw); + result = armv7_read_arm_instr_umaal(raw); else if (op == b0101) result = NULL; /* Non défini */ else if (op == b0110) - result = armv7_read_instr_mls(raw); + result = armv7_read_arm_instr_mls(raw); else if (op == b0111) result = NULL; /* Non défini */ else if ((op & b1110) == b1000) - result = armv7_read_instr_umull(raw); + result = armv7_read_arm_instr_umull(raw); else if ((op & b1110) == b1010) - result = armv7_read_instr_umlal(raw); + result = armv7_read_arm_instr_umlal(raw); else if ((op & b1110) == b1100) - result = armv7_read_instr_smull(raw); + result = armv7_read_arm_instr_smull(raw); else if ((op & b1110) == b1110) - result = armv7_read_instr_smlal(raw); + result = armv7_read_arm_instr_smlal(raw); return result; @@ -637,7 +583,7 @@ static GArchInstruction *process_armv7_multiply_and_multiply_accumulate(uint32_t * * ******************************************************************************/ -static GArchInstruction *process_armv7_branch_branch_with_link_and_block_data_transfer(uint32_t raw) +static GArchInstruction *process_armv7_arm_branch_branch_with_link_and_block_data_transfer(uint32_t raw) { GArchInstruction *result; /* Instruction à retourner */ uint32_t op; /* Champ 'op' à retrouver */ @@ -656,61 +602,61 @@ static GArchInstruction *process_armv7_branch_branch_with_link_and_block_data_tr r = (raw >> 15) & 0x1; if ((op & b111101) == b000000) - result = armv7_read_instr_stmda_stmed(raw); + result = armv7_read_arm_instr_stmda_stmed(raw); else if ((op & b111101) == b000001) - result = armv7_read_instr_ldmda_ldmfa(raw); + result = armv7_read_arm_instr_ldmda_ldmfa(raw); else if ((op & b111101) == b001000) - result = armv7_read_instr_stm_stmia_stmea(raw); + result = armv7_read_arm_instr_stm_stmia_stmea(raw); else if (op == b001001) - result = armv7_read_instr_ldm_ldmia_ldmfd_arm(raw); + result = armv7_read_arm_instr_ldm_ldmia_ldmfd_arm(raw); else if (op == b001011) { if (rn != b1101) - result = armv7_read_instr_ldm_ldmia_ldmfd_arm(raw); + result = armv7_read_arm_instr_ldm_ldmia_ldmfd_arm(raw); else /* if (rn == b1101) */ - result = armv7_read_instr_pop_arm(raw); + result = armv7_read_arm_instr_pop_arm(raw); } else if (op == b010000) - result = armv7_read_instr_stmdb_stmfd(raw); + result = armv7_read_arm_instr_stmdb_stmfd(raw); else if (op == b010010) { if (rn != b1101) - result = armv7_read_instr_stmdb_stmfd(raw); + result = armv7_read_arm_instr_stmdb_stmfd(raw); else /* if (rn == b1101) */ - result = armv7_read_instr_push(raw); + result = armv7_read_arm_instr_push(raw); } else if ((op & b111101) == b010001) - result = armv7_read_instr_ldmdb_ldmea(raw); + result = armv7_read_arm_instr_ldmdb_ldmea(raw); else if ((op & b111101) == b011000) - result = armv7_read_instr_stmib_stmfa(raw); + result = armv7_read_arm_instr_stmib_stmfa(raw); else if ((op & b111101) == b011001) - result = armv7_read_instr_ldmib_ldmed(raw); + result = armv7_read_arm_instr_ldmib_ldmed(raw); else if ((op & b100101) == b000100) - result = armv7_read_instr_stm_user_registers(raw); + result = armv7_read_arm_instr_stm_user_registers(raw); else if ((op & b100101) == b000101) { if (r == b0) - result = armv7_read_instr_ldm_user_registers(raw); + result = armv7_read_arm_instr_ldm_user_registers(raw); else /* if (r == b1) */ - result = armv7_read_instr_ldm_exception_return(raw); + result = armv7_read_arm_instr_ldm_exception_return(raw); } else if ((op & b110000) == b100000) - result = armv7_read_instr_b(raw); + result = armv7_read_arm_instr_b(raw); else if ((op & b110000) == b110000) - result = armv7_read_instr_bl_blx_immediate(raw); + result = armv7_read_arm_instr_bl_blx_immediate(raw); return result; |