aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAndrew Waterman <andrew@sifive.com>2017-04-03 21:36:00 -0700
committerAndrew Waterman <aswaterman@gmail.com>2017-04-10 21:28:13 -0700
commit676bd3db6b6c8e8565ed121229e2c8a7f4d0f20a (patch)
treee8d65555bcf78f639f46ce87b5b32481004aa3bc /src
parente907eb5f1034045b3be23fa421a36d6df1c638da (diff)
downloadriscv-isa-manual-676bd3db6b6c8e8565ed121229e2c8a7f4d0f20a.zip
riscv-isa-manual-676bd3db6b6c8e8565ed121229e2c8a7f4d0f20a.tar.gz
riscv-isa-manual-676bd3db6b6c8e8565ed121229e2c8a7f4d0f20a.tar.bz2
Clarify WFI w.r.t. interrupt delegation
Diffstat (limited to 'src')
-rw-r--r--src/machine.tex9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/machine.tex b/src/machine.tex
index 5f03641..b5dc5b1 100644
--- a/src/machine.tex
+++ b/src/machine.tex
@@ -1909,10 +1909,11 @@ the {\em rs1} and {\em rd} fields, so non-zero values in these fields
should now raise illegal instruction exceptions.
\end{commentary}
-The WFI instruction can also be executed when interrupts are disabled.
-The operation of WFI must be unaffected by the global interrupt bits
-in {\tt mstatus} (MIE/SIE/UIE) (i.e., the hart must resume if a
-locally enabled interrupt becomes pending), but should honor the
+The WFI instruction can also be executed when interrupts are disabled. The
+operation of WFI must be unaffected by the global interrupt bits in {\tt
+mstatus} (MIE/SIE/UIE) and the delegation registers {\tt [m|s|u]ideleg}
+(i.e., the hart must resume if a locally enabled interrupt becomes pending,
+even if it has been delegated to a less-privileged mode), but should honor the
individual interrupt enables (e.g, MTIE) (i.e., implementations should
avoid resuming the hart if the interrupt is pending but not
individually enabled). WFI is also required to resume execution for