From: Philippe Mathieu-Daudé Date: Wed, 26 Nov 2025 17:52:27 +0000 (+0100) Subject: target/ppc: Inline cpu_ld/st_data_ra() calls in do_hash() X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=50d114e04f4cefb9f342d9a104a0de06ba1c768e;p=thirdparty%2Fqemu.git target/ppc: Inline cpu_ld/st_data_ra() calls in do_hash() In preparation of removing the cpu_ld*_data_ra() and cpu_st*_data_ra() calls, inline them. No logical change intended. We note the page translation hash address is expected to be aligned, so the MO_UNALN flag is misleading. Next commit will remove it. Signed-off-by: Philippe Mathieu-Daudé Reviewed-by: Anton Johansson Message-Id: <20260202210106.93257-4-philmd@linaro.org> --- diff --git a/target/ppc/tcg-excp_helper.c b/target/ppc/tcg-excp_helper.c index edecfb8572..6f5d82af63 100644 --- a/target/ppc/tcg-excp_helper.c +++ b/target/ppc/tcg-excp_helper.c @@ -160,14 +160,18 @@ static void do_hash(CPUPPCState *env, target_ulong ea, target_ulong ra, target_ulong rb, uint64_t key, bool store) { uint64_t calculated_hash = hash_digest(ra, rb, key), loaded_hash; + unsigned mmu_idx = cpu_mmu_index(env_cpu(env), false); + MemOp op = MO_TE | MO_UQ | MO_UNALN; + MemOpIdx oi = make_memop_idx(op, mmu_idx); + uintptr_t retaddr = GETPC(); if (store) { - cpu_stq_data_ra(env, ea, calculated_hash, GETPC()); + cpu_stq_mmu(env, ea, calculated_hash, oi, retaddr); } else { - loaded_hash = cpu_ldq_data_ra(env, ea, GETPC()); + loaded_hash = cpu_ldq_mmu(env, ea, oi, retaddr); if (loaded_hash != calculated_hash) { raise_exception_err_ra(env, POWERPC_EXCP_PROGRAM, - POWERPC_EXCP_TRAP, GETPC()); + POWERPC_EXCP_TRAP, retaddr); } } }