@samitouri / QOSamiQemu / commits / e91b417d1a

target/arm/tcg/translate.c: replace translator_ldl_swap with translator_ldl_end

Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Signed-off-by: Pierrick Bouvier <pierrick.bouvier@linaro.org> Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Message-id: 20260407222208.271838-19-pierrick.bouvier@linaro.org Signed-off-by: Peter Maydell <peter.maydell@linaro.org>

Pierrick Bouvier committed Apr 23, 2026 at 10:24 UTC e91b417d1ac5d4a8c6ed6c6cb755e4d4b7916bd5
1 file changed +5 -8
target/arm/tcg/translate.c
+5 -8
@@ -6284,16 +6284,13 @@ static void disas_thumb_insn(DisasContext *s, uint32_t insn)
6284 static uint16_t arm_lduw_code(CPUARMState *env, DisasContextBase* s,
6285 target_ulong addr, bool sctlr_b)
6286 {
6287 -#ifndef CONFIG_USER_ONLY
6288 - /*
6289 - * In big-endian (BE32) mode, adjacent Thumb instructions have been swapped
6290 - * within each word. Undo that now.
6291 - */
6287 + MemOp end = MO_LE;
6288 if (sctlr_b) {
6289 + /* In BE32 mode, adjacent Thumb instructions are swapped. */
6290 addr ^= 2;
6291 + end = MO_BE;
6292 }
6295 -#endif
6296 - return translator_lduw_swap(env, s, addr, bswap_code(sctlr_b));
6293 + return translator_lduw_end(env, s, addr, end);
6294 }
6295
6296 static bool insn_crosses_page(CPUARMState *env, DisasContext *s)
@@ -6534,7 +6531,7 @@ static void arm_post_translate_insn(DisasContext *dc)
6531 static uint32_t arm_ldl_code(CPUARMState *env, DisasContextBase *s,
6532 target_ulong addr, bool sctlr_b)
6533 {
6537 - return translator_ldl_swap(env, s, addr, bswap_code(sctlr_b));
6534 + return translator_ldl_end(env, s, addr, sctlr_b ? MO_BE : MO_LE);
6535 }
6536
6537 static void arm_tr_translate_insn(DisasContextBase *dcbase, CPUState *cpu)