Skip to content

Commit 066a3c1

Browse files
authored
Merge pull request #1610 from YenHaoChen/pr-wfi
Raise illegal instruction instead of virtual instruction on WFI when TW=1 and VTW=0 in VU-mode
2 parents 8b4fffe + 4a2b38f commit 066a3c1

File tree

1 file changed

+3
-5
lines changed

1 file changed

+3
-5
lines changed

riscv/insns/wfi.h

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
1-
if (STATE.v && STATE.prv == PRV_U) {
2-
require_novirt();
3-
} else if (get_field(STATE.mstatus->read(), MSTATUS_TW)) {
1+
if (get_field(STATE.mstatus->read(), MSTATUS_TW)) {
42
require_privilege(PRV_M);
5-
} else if (STATE.v) { // VS-mode
6-
if (get_field(STATE.hstatus->read(), HSTATUS_VTW))
3+
} else if (STATE.v) {
4+
if (STATE.prv == PRV_U || get_field(STATE.hstatus->read(), HSTATUS_VTW))
75
require_novirt();
86
} else if (p->extension_enabled('S')) {
97
// When S-mode is implemented, then executing WFI in

0 commit comments

Comments
 (0)