Browse Source

fix condition of executing cbo.inval as a flush operation

Signed-off-by: viktoryou <143797577+viktoryou@users.noreply.github.com>
pull/1453/head
viktoryou 3 years ago
committed by Andrew Waterman
parent
commit
3c8320ecd7
  1. 6
      riscv/insns/cbo_inval.h

6
riscv/insns/cbo_inval.h

@ -1,9 +1,9 @@
require_extension(EXT_ZICBOM);
DECLARE_XENVCFG_VARS(CBIE);
require_envcfg(CBIE);
if (((STATE.prv != PRV_M) && (mCBIE == 1)) ||
((!STATE.v && (STATE.prv == PRV_U)) && (sCBIE = 1)) ||
(STATE.v && ((hCBIE == 1) || ((STATE.prv == PRV_U) && (sCBIE== 0)))))
if ((STATE.prv != PRV_M && mCBIE) ||
(!STATE.v && STATE.prv == PRV_U && sCBIE) ||
(STATE.v && (hCBIE || (STATE.prv == PRV_U && sCBIE))))
MMU.clean_inval(RS1, true, true);
else
MMU.clean_inval(RS1, false, true);

Loading…
Cancel
Save