Browse Source
prefetch.* are hints and share the encoding of ORI with rd = 0. so it can share the implementation of ORI and execute as no-opspull/891/head
committed by
Weiwei Li
8 changed files with 79 additions and 14 deletions
@ -0,0 +1,4 @@ |
|||
require_extension(EXT_ZICBOM); |
|||
DECLARE_XENVCFG_VARS(CBCFE); |
|||
require_envcfg(CBCFE); |
|||
MMU.clean_inval(RS1, true, false); |
|||
@ -0,0 +1,4 @@ |
|||
require_extension(EXT_ZICBOM); |
|||
DECLARE_XENVCFG_VARS(CBCFE); |
|||
require_envcfg(CBCFE); |
|||
MMU.clean_inval(RS1, true, true); |
|||
@ -0,0 +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))))) |
|||
MMU.clean_inval(RS1, true, true); |
|||
else |
|||
MMU.clean_inval(RS1, false, true); |
|||
@ -0,0 +1,4 @@ |
|||
require_extension(EXT_ZICBOZ); |
|||
DECLARE_XENVCFG_VARS(CBZE); |
|||
require_envcfg(CBZE); |
|||
MMU.cbo_zero(RS1); |
|||
@ -1 +1,2 @@ |
|||
// prefetch.i/r/w hint when rd = 0 and i_imm[4:0] = 0/1/3
|
|||
WRITE_RD(insn.i_imm() | RS1); |
|||
|
|||
Loading…
Reference in new issue