summaryrefslogtreecommitdiff
path: root/riscv/riscv.sail
diff options
context:
space:
mode:
authorPrashanth Mundkur2018-11-29 09:06:35 -0800
committerPrashanth Mundkur2018-11-29 09:52:36 -0800
commit6797b018523d0acf82b570e9417d6d91c18dd69f (patch)
tree108080fae9e41e1cc6a3f3ab6a9234b06f1e50f3 /riscv/riscv.sail
parent35eff0805dffe8d006d390bdaebac1b8d4b0a61d (diff)
RISC-V: implement WFI in the platform model.
The initial implementation tries to optimize for simulator execution, especially for OS boots.
Diffstat (limited to 'riscv/riscv.sail')
-rw-r--r--riscv/riscv.sail4
1 files changed, 2 insertions, 2 deletions
diff --git a/riscv/riscv.sail b/riscv/riscv.sail
index c8fcdbab..37553299 100644
--- a/riscv/riscv.sail
+++ b/riscv/riscv.sail
@@ -724,10 +724,10 @@ mapping clause encdec = WFI() <-> 0b000100000101 @ 0b00000 @ 0b000 @ 0b00000 @ 0
function clause execute WFI() =
match cur_privilege {
- Machine => true,
+ Machine => { platform_wfi(); true },
Supervisor => if mstatus.TW() == true
then { handle_illegal(); false }
- else true,
+ else { platform_wfi(); true },
User => { handle_illegal(); false }
}