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/pseudo.h | |
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/pseudo.h')
-rw-r--r-- | src/arch/arm/v7/pseudo.h | 41 |
1 files changed, 27 insertions, 14 deletions
diff --git a/src/arch/arm/v7/pseudo.h b/src/arch/arm/v7/pseudo.h index 5645234..bf8fe2a 100644 --- a/src/arch/arm/v7/pseudo.h +++ b/src/arch/arm/v7/pseudo.h @@ -36,34 +36,34 @@ /* Traduit la fonction 'LSL_C'. */ -uint32_t armv7_lsl_c(uint32_t, unsigned int, unsigned int, bool *); +bool armv7_lsl_c(uint32_t, unsigned int, unsigned int, bool *, uint32_t *); /* Traduit la fonction 'LSL'. */ -uint32_t armv7_lsl(uint32_t, unsigned int, unsigned int); +bool armv7_lsl(uint32_t, unsigned int, unsigned int, uint32_t *); /* Traduit la fonction 'LSR_C'. */ -uint32_t armv7_lsr_c(uint32_t, unsigned int, unsigned int, bool *); +bool armv7_lsr_c(uint32_t, unsigned int, unsigned int, bool *, uint32_t *); /* Traduit la fonction 'LSR'. */ -uint32_t armv7_lsr(uint32_t, unsigned int, unsigned int); +bool armv7_lsr(uint32_t, unsigned int, unsigned int, uint32_t *); /* Traduit la fonction 'ASR_C'. */ -uint32_t armv7_asr_c(uint32_t, unsigned int, unsigned int, bool *); +bool armv7_asr_c(uint32_t, unsigned int, unsigned int, bool *, uint32_t *); /* Traduit la fonction 'ASR'. */ -uint32_t armv7_asr(uint32_t, unsigned int, unsigned int); +bool armv7_asr(uint32_t, unsigned int, unsigned int, uint32_t *); /* Traduit la fonction 'ROR_C'. */ -uint32_t armv7_ror_c(uint32_t, unsigned int, unsigned int, bool *); +bool armv7_ror_c(uint32_t, unsigned int, unsigned int, bool *, uint32_t *); /* Traduit la fonction 'ROR'. */ -uint32_t armv7_ror(uint32_t, unsigned int, unsigned int); +bool armv7_ror(uint32_t, unsigned int, unsigned int, uint32_t *); /* Traduit la fonction 'RRX_C'. */ -uint32_t armv7_rrx_c(uint32_t, unsigned int, bool *); +bool armv7_rrx_c(uint32_t, unsigned int, bool *, uint32_t *); /* Traduit la fonction 'RRX'. */ -uint32_t armv7_rrx(uint32_t, unsigned int, bool); +bool armv7_rrx(uint32_t, unsigned int, bool, uint32_t *); @@ -73,10 +73,23 @@ uint32_t armv7_rrx(uint32_t, unsigned int, bool); /* Traduit la fonction 'ARMExpandImm_C'. */ -uint32_t armv7_arm_expand_imm_c(uint32_t, bool *); +bool armv7_arm_expand_imm_c(uint32_t, bool *, uint32_t *); /* Traduit la fonction 'ARMExpandImm'. */ -uint32_t armv7_arm_expand_imm(uint32_t); +bool armv7_arm_expand_imm(uint32_t, uint32_t *); + + + +/** + * ยง A6.3.2 - Modified immediate constants in Thumb instructions + */ + + +/* Traduit la fonction 'ThumbExpandImm_C'. */ +bool armv7_thumb_expand_imm_c(uint32_t, bool *, uint32_t *); + +/* Traduit la fonction 'ThumbExpandImm'. */ +bool armv7_thumb_expand_imm(uint32_t, uint32_t *); @@ -103,10 +116,10 @@ bool armv7_decode_imm_shift(uint8_t, uint8_t, SRType *, uint32_t *); bool armv7_decode_reg_shift(uint8_t, SRType *); /* Traduit la fonction 'Shift_C'. */ -uint32_t armv7_shift_c(uint32_t, unsigned int, SRType, unsigned int, bool *); +bool armv7_shift_c(uint32_t, unsigned int, SRType, unsigned int, bool *, uint32_t *); /* Traduit la fonction 'Shift'. */ -uint32_t armv7_shift(uint32_t, unsigned int, SRType, unsigned int, bool); +bool armv7_shift(uint32_t, unsigned int, SRType, unsigned int, bool, uint32_t *); |