summaryrefslogtreecommitdiff
path: root/src/arch/arm/v7/pseudo.h
diff options
context:
space:
mode:
authorCyrille Bagard <nocbos@gmail.com>2014-12-03 22:41:29 (GMT)
committerCyrille Bagard <nocbos@gmail.com>2014-12-03 22:41:29 (GMT)
commit172fce9bab61de1ffa89f731b5d10f96e209afc1 (patch)
tree31aee5a141979fa99bbf88cbf2b7990de0ec3832 /src/arch/arm/v7/pseudo.h
parentf7ef27195f8c9dc35e5e210a333b74fcfae5ad71 (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.h41
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 *);