diff options
author | Emilio G. Cota <cota@braap.org> | 2018-11-27 20:09:25 -0500 |
---|---|---|
committer | Alex Bennée <alex.bennee@linaro.org> | 2019-10-28 15:12:38 +0000 |
commit | ae82adc8e29bc73f799a0263b9729e5eb3f0cf79 (patch) | |
tree | ad2a1295360008c06e1872d2a18a1499ea72ba4c /target/arm/arm_ldst.h | |
parent | 409c1a0bf0f1e0bf1548004d87e8ba229022193d (diff) | |
download | qemu-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.h | 15 |
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 |