diff --git a/qemu/target/mips/helper.c b/qemu/target/mips/helper.c index a4961c4b..5c83017b 100644 --- a/qemu/target/mips/helper.c +++ b/qemu/target/mips/helper.c @@ -491,7 +491,9 @@ static void raise_mmu_exception(CPUMIPSState *env, target_ulong address, break; } /* Raise exception */ - env->CP0_BadVAddr = address; + if (!(env->hflags & MIPS_HFLAG_DM)) { + env->CP0_BadVAddr = address; + } env->CP0_Context = (env->CP0_Context & ~0x007fffff) | ((address >> 9) & 0x007ffff0); env->CP0_EntryHi = (env->CP0_EntryHi & env->CP0_EntryHi_ASID_mask) |