Skip to content

Commit c268fb2

Browse files
committed
pointer masking: Implement [sh]envcfg.PMM
1 parent f710dc7 commit c268fb2

File tree

1 file changed

+4
-0
lines changed

1 file changed

+4
-0
lines changed

riscv/mmu.cc

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -622,6 +622,10 @@ reg_t mmu_t::get_pmlen(bool effective_virt, reg_t effective_priv, xlate_flags_t
622622
pmm = get_field(proc->state.mseccfg->read(), MSECCFG_PMM);
623623
else if (!effective_virt && (effective_priv == PRV_S || (!proc->extension_enabled('S') && effective_priv == PRV_U)))
624624
pmm = get_field(proc->state.menvcfg->read(), MENVCFG_PMM);
625+
else if (effective_virt && effective_priv == PRV_S)
626+
pmm = get_field(proc->state.henvcfg->read(), HENVCFG_PMM);
627+
else if (effective_priv == PRV_U)
628+
pmm = get_field(proc->state.senvcfg->read(), SENVCFG_PMM);
625629

626630
switch (pmm) {
627631
case 2: return 7;

0 commit comments

Comments
 (0)