diff options
author | Richard Henderson <richard.henderson@linaro.org> | 2025-05-04 10:20:02 -0700 |
---|---|---|
committer | Richard Henderson <richard.henderson@linaro.org> | 2025-05-28 08:08:48 +0100 |
commit | 4031eb4facfd8793defeb83c05712643c161e32e (patch) | |
tree | d6f244056df6aafd5d53cd0e6764b45a201865ab | |
parent | 396c12d00e3944e79159c9f3cb934f26f32ef861 (diff) | |
download | qemu-4031eb4facfd8793defeb83c05712643c161e32e.zip qemu-4031eb4facfd8793defeb83c05712643c161e32e.tar.gz qemu-4031eb4facfd8793defeb83c05712643c161e32e.tar.bz2 |
target/ppc: Fill in TCGCPUOps.pointer_wrap
Check 32 vs 64-bit state.
Cc: qemu-ppc@nongnu.org
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
-rw-r--r-- | target/ppc/cpu_init.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/target/ppc/cpu_init.c b/target/ppc/cpu_init.c index 9642812..a0e77f2 100644 --- a/target/ppc/cpu_init.c +++ b/target/ppc/cpu_init.c @@ -7386,6 +7386,12 @@ static void ppc_cpu_exec_exit(CPUState *cs) cpu->vhyp_class->cpu_exec_exit(cpu->vhyp, cpu); } } + +static vaddr ppc_pointer_wrap(CPUState *cs, int mmu_idx, + vaddr result, vaddr base) +{ + return (cpu_env(cs)->hflags >> HFLAGS_64) & 1 ? result : (uint32_t)result; +} #endif /* CONFIG_TCG */ #endif /* !CONFIG_USER_ONLY */ @@ -7490,6 +7496,7 @@ static const TCGCPUOps ppc_tcg_ops = { .record_sigsegv = ppc_cpu_record_sigsegv, #else .tlb_fill = ppc_cpu_tlb_fill, + .pointer_wrap = ppc_pointer_wrap, .cpu_exec_interrupt = ppc_cpu_exec_interrupt, .cpu_exec_halt = ppc_cpu_has_work, .cpu_exec_reset = cpu_reset, |