aboutsummaryrefslogtreecommitdiff
path: root/target/arm/arm_ldst.h
diff options
context:
space:
mode:
authorEmilio G. Cota <cota@braap.org>2018-11-27 20:09:25 -0500
committerAlex Bennée <alex.bennee@linaro.org>2019-10-28 15:12:38 +0000
commitae82adc8e29bc73f799a0263b9729e5eb3f0cf79 (patch)
treead2a1295360008c06e1872d2a18a1499ea72ba4c /target/arm/arm_ldst.h
parent409c1a0bf0f1e0bf1548004d87e8ba229022193d (diff)
downloadqemu-ae82adc8e29bc73f799a0263b9729e5eb3f0cf79.zip
qemu-ae82adc8e29bc73f799a0263b9729e5eb3f0cf79.tar.gz
qemu-ae82adc8e29bc73f799a0263b9729e5eb3f0cf79.tar.bz2
target/arm: fetch code with translator_ld
Now the arm_ld*_code functions are only used at translate time we can just pass down to translator_ld functions. Signed-off-by: Emilio G. Cota <cota@braap.org> [AJB: convert from plugin_insn_append to translator_ld] Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Diffstat (limited to 'target/arm/arm_ldst.h')
-rw-r--r--target/arm/arm_ldst.h15
1 files changed, 3 insertions, 12 deletions
diff --git a/target/arm/arm_ldst.h b/target/arm/arm_ldst.h
index 5e0ac8b..45edb10 100644
--- a/target/arm/arm_ldst.h
+++ b/target/arm/arm_ldst.h
@@ -20,25 +20,20 @@
#ifndef ARM_LDST_H
#define ARM_LDST_H
-#include "exec/cpu_ldst.h"
+#include "exec/translator.h"
#include "qemu/bswap.h"
/* Load an instruction and return it in the standard little-endian order */
static inline uint32_t arm_ldl_code(CPUARMState *env, target_ulong addr,
bool sctlr_b)
{
- uint32_t insn = cpu_ldl_code(env, addr);
- if (bswap_code(sctlr_b)) {
- return bswap32(insn);
- }
- return insn;
+ return translator_ldl_swap(env, addr, bswap_code(sctlr_b));
}
/* Ditto, for a halfword (Thumb) instruction */
static inline uint16_t arm_lduw_code(CPUARMState *env, target_ulong addr,
bool sctlr_b)
{
- uint16_t insn;
#ifndef CONFIG_USER_ONLY
/* In big-endian (BE32) mode, adjacent Thumb instructions have been swapped
within each word. Undo that now. */
@@ -46,11 +41,7 @@ static inline uint16_t arm_lduw_code(CPUARMState *env, target_ulong addr,
addr ^= 2;
}
#endif
- insn = cpu_lduw_code(env, addr);
- if (bswap_code(sctlr_b)) {
- return bswap16(insn);
- }
- return insn;
+ return translator_lduw_swap(env, addr, bswap_code(sctlr_b));
}
#endif