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)