aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Waterman <andrew@sifive.com>2024-08-28 15:26:29 -0500
committerGitHub <noreply@github.com>2024-08-28 15:26:29 -0500
commit272c149f37100780dc97df4661561f17ea5dc1d5 (patch)
tree7d66413456b98d59ea2fc690c8b6d6d3224d87a3
parent5029aa7ce84947d969fa7624b970ddfd026ee0b8 (diff)
parent61d277c49c7843476abe671f05aa78f08e6278b2 (diff)
downloadriscv-isa-sim-272c149f37100780dc97df4661561f17ea5dc1d5.zip
riscv-isa-sim-272c149f37100780dc97df4661561f17ea5dc1d5.tar.gz
riscv-isa-sim-272c149f37100780dc97df4661561f17ea5dc1d5.tar.bz2
Merge pull request #1789 from YenHaoChen/pr-pm
pointer masking: Consider effective v bit instead of current v bit
-rw-r--r--riscv/mmu.cc2
1 files changed, 1 insertions, 1 deletions
diff --git a/riscv/mmu.cc b/riscv/mmu.cc
index e827f4a..ea86900 100644
--- a/riscv/mmu.cc
+++ b/riscv/mmu.cc
@@ -614,7 +614,7 @@ void mmu_t::register_memtracer(memtracer_t* t)
}
reg_t mmu_t::get_pmlen(bool effective_virt, reg_t effective_priv, xlate_flags_t flags) const {
- if (!proc || proc->get_xlen() != 64 || (proc->state.sstatus->read() & MSTATUS_MXR) || flags.hlvx)
+ if (!proc || proc->get_xlen() != 64 || (proc->state.sstatus->readvirt(effective_virt) & MSTATUS_MXR) || flags.hlvx)
return 0;
reg_t pmm = 0;