mirror of
https://github.com/yuzu-emu/unicorn.git
synced 2025-01-22 20:41:04 +00:00
target/ricsv: Flush the TLB on virtulisation mode changes
To ensure our TLB isn't out-of-date we flush it on all virt mode changes. Unlike priv mode this isn't saved in the mmu_idx as all guests share V=1. The easiest option is just to flush on all changes. Backports commit eccc5a12c2fd1c646c69a1e7de29183b7a559973 from qemu
This commit is contained in:
parent
5adba06c29
commit
4af0dc9a7e
|
@ -171,6 +171,11 @@ void riscv_cpu_set_virt_enabled(CPURISCVState *env, bool enable)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Flush the TLB on all virt mode changes. */
|
||||||
|
if (get_field(env->virt, VIRT_ONOFF) != enable) {
|
||||||
|
tlb_flush(env_cpu(env));
|
||||||
|
}
|
||||||
|
|
||||||
env->virt = set_field(env->virt, VIRT_ONOFF, enable);
|
env->virt = set_field(env->virt, VIRT_ONOFF, enable);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue