diff options
author | Andrew Waterman <andrew@sifive.com> | 2024-08-29 21:55:58 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-08-29 21:55:58 -0500 |
commit | 3f556d66e286bb41fe3013b2ece39c08c696b3fc (patch) | |
tree | 2e6910520a2a19fde8b20fe1a5298e126be552b1 | |
parent | 272c149f37100780dc97df4661561f17ea5dc1d5 (diff) | |
parent | 84a212e93bac83db1537c7ff14985c3c414f7f31 (diff) | |
download | riscv-isa-sim-3f556d66e286bb41fe3013b2ece39c08c696b3fc.zip riscv-isa-sim-3f556d66e286bb41fe3013b2ece39c08c696b3fc.tar.gz riscv-isa-sim-3f556d66e286bb41fe3013b2ece39c08c696b3fc.tar.bz2 |
Merge pull request #1791 from YenHaoChen/pr-pm
pointer masking: Always apply sstatus.MXR regardless of effective V
-rw-r--r-- | riscv/mmu.cc | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/riscv/mmu.cc b/riscv/mmu.cc index ea86900..38ecb65 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->readvirt(effective_virt) & MSTATUS_MXR) || flags.hlvx) + if (!proc || proc->get_xlen() != 64 || ((proc->state.sstatus->readvirt(false) | proc->state.sstatus->readvirt(effective_virt)) & MSTATUS_MXR) || flags.hlvx) return 0; reg_t pmm = 0; |