From b9789d2993d10acaecf41bdd3c19e623b5cd6613 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Philippe=20Mathieu-Daud=C3=A9?= Date: Thu, 20 Nov 2025 21:00:33 +0100 Subject: [PATCH] target/ppc: Inline cpu_ldl_code() call in ppc_ldl_code() MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit In preparation of removing the cpu_ldl_code wrapper, inline it. Get the runtime endianness with ppc_data_endian_env(), passing it to cpu_ldl_code_mmu(). No need to swap versus qemu-system binary anymore. Signed-off-by: Philippe Mathieu-Daudé Reviewed-by: Anton Johansson Message-Id: <20260202210106.93257-12-philmd@linaro.org> --- target/ppc/tcg-excp_helper.c | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) diff --git a/target/ppc/tcg-excp_helper.c b/target/ppc/tcg-excp_helper.c index 3f9eb3d924..5e6c1e326d 100644 --- a/target/ppc/tcg-excp_helper.c +++ b/target/ppc/tcg-excp_helper.c @@ -428,22 +428,13 @@ G_NORETURN void powerpc_checkstop(CPUPPCState *env, const char *reason) cpu_loop_exit_noexc(cs); } -/* Return true iff byteswap is needed to load instruction */ -static inline bool insn_need_byteswap(CPUArchState *env) -{ - /* SYSTEM builds TARGET_BIG_ENDIAN. Need to swap when MSR[LE] is set */ - return !!(env->msr & ((target_ulong)1 << MSR_LE)); -} - uint32_t ppc_ldl_code(CPUArchState *env, target_ulong addr) { - uint32_t insn = cpu_ldl_code(env, addr); - - if (insn_need_byteswap(env)) { - insn = bswap32(insn); - } + CPUState *cs = env_cpu(env); + MemOp op_end = ppc_data_endian_env(env); + MemOpIdx oi = make_memop_idx(MO_UL | op_end, cpu_mmu_index(cs, true)); - return insn; + return cpu_ldl_code_mmu(env, addr, oi, 0); } #if defined(TARGET_PPC64) -- 2.47.3