diff options
author | Richard Henderson <richard.henderson@linaro.org> | 2025-05-04 09:46:28 -0700 |
---|---|---|
committer | Richard Henderson <richard.henderson@linaro.org> | 2025-05-28 08:08:48 +0100 |
commit | 7174cd2eec67d9b7bf969cdc87e656b4c4c93465 (patch) | |
tree | 9fbd00cb93a733990713257d185dc553a5104a2a | |
parent | d21144a48c1a9d1998c594d976d5e906276eca4c (diff) | |
download | qemu-7174cd2eec67d9b7bf969cdc87e656b4c4c93465.zip qemu-7174cd2eec67d9b7bf969cdc87e656b4c4c93465.tar.gz qemu-7174cd2eec67d9b7bf969cdc87e656b4c4c93465.tar.bz2 |
target/i386: Fill in TCGCPUOps.pointer_wrap
Check 32 vs 64-bit state.
Cc: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
-rw-r--r-- | target/i386/tcg/tcg-cpu.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/target/i386/tcg/tcg-cpu.c b/target/i386/tcg/tcg-cpu.c index 179dfdf..6f5dc06 100644 --- a/target/i386/tcg/tcg-cpu.c +++ b/target/i386/tcg/tcg-cpu.c @@ -149,6 +149,12 @@ static void x86_cpu_exec_reset(CPUState *cs) do_cpu_init(env_archcpu(env)); cs->exception_index = EXCP_HALTED; } + +static vaddr x86_pointer_wrap(CPUState *cs, int mmu_idx, + vaddr result, vaddr base) +{ + return cpu_env(cs)->hflags & HF_CS64_MASK ? result : (uint32_t)result; +} #endif const TCGCPUOps x86_tcg_ops = { @@ -172,6 +178,7 @@ const TCGCPUOps x86_tcg_ops = { .record_sigbus = x86_cpu_record_sigbus, #else .tlb_fill = x86_cpu_tlb_fill, + .pointer_wrap = x86_pointer_wrap, .do_interrupt = x86_cpu_do_interrupt, .cpu_exec_halt = x86_cpu_exec_halt, .cpu_exec_interrupt = x86_cpu_exec_interrupt, |