aboutsummaryrefslogtreecommitdiff
path: root/riscv/insns/sfence_vma.h
blob: 7d6c01a8be1c98d2ff7d189c94dd0536c0b10f46 (plain)
1
2
3
4
5
6
7
8
9
require_extension('S');
require_impl(IMPL_MMU);
if (STATE.v) {
  if (STATE.prv == PRV_U || get_field(STATE.hstatus->read(), HSTATUS_VTVM))
    require_novirt();
} else {
  require_privilege(get_field(STATE.mstatus->read(), MSTATUS_TVM) ? PRV_M : PRV_S);
}
MMU.flush_tlb();