aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Waterman <aswaterman@gmail.com>2018-10-09 16:39:10 -0700
committerGitHub <noreply@github.com>2018-10-09 16:39:10 -0700
commitf0baef16897be3d07e6d91e46ebdc8b28494dfb0 (patch)
tree09d2a0055bc83ffb5d4e46075b91df864627737a
parenta69590d9b4f55adec829960b04ccc4e14dbad6da (diff)
downloadriscv-isa-manual-f0baef16897be3d07e6d91e46ebdc8b28494dfb0.zip
riscv-isa-manual-f0baef16897be3d07e6d91e46ebdc8b28494dfb0.tar.gz
riscv-isa-manual-f0baef16897be3d07e6d91e46ebdc8b28494dfb0.tar.bz2
Clarify interrupt delegation semantics (#158)
* Clarify interrupt delegation semantics * Update contributors
-rw-r--r--src/machine.tex11
-rw-r--r--src/riscv-privileged.tex3
2 files changed, 11 insertions, 3 deletions
diff --git a/src/machine.tex b/src/machine.tex
index 8d717af..297c8bf 100644
--- a/src/machine.tex
+++ b/src/machine.tex
@@ -1109,13 +1109,20 @@ then reading back the value in {\tt medeleg} or {\tt mideleg} to see
which bit positions hold a one.
Traps never transition from a more-privileged mode to a less-privileged mode.
-For example, if M-mode has delegated illegal instruction traps to S-mode, and
+For example, if M-mode has delegated illegal instruction exceptions to S-mode, and
M-mode software later executes an illegal instruction, the trap is taken in
M-mode, rather than being delegated to S-mode. By contrast, traps may be
taken horizontally. Using the same example, if M-mode has delegated illegal
-instruction traps to S-mode, and S-mode software later executes an illegal
+instruction exceptions to S-mode, and S-mode software later executes an illegal
instruction, the trap is taken in S-mode.
+Delegated interrupts result in the interrupt being masked at the delegator
+privilege level. For example, if the supervisor timer interrupt (STI) is
+delegated to S-mode by setting {\tt mideleg}[5], STIs will not be taken when
+executing in M-mode. By contrast, if {\tt mideleg}[5] is clear, STIs can
+be taken in any mode and regardless of current mode will transfer control to
+M-mode.
+
\begin{figure}[h!]
{\footnotesize
\begin{center}
diff --git a/src/riscv-privileged.tex b/src/riscv-privileged.tex
index 85c5af0..20bf4d5 100644
--- a/src/riscv-privileged.tex
+++ b/src/riscv-privileged.tex
@@ -37,7 +37,8 @@ editors to suggest corrections): Krste Asanovi\'{c}, Peter Ashenden, Rimas
Avi\v{z}ienis, Jacob Bachmeyer, Allen J. Baum, Paolo Bonzini, Ruslan Bukin,
Christopher Celio, Chuanhua Chang, David Chisnall, Anthony Coulter, Palmer Dabbelt, Monte
Dalrymple, Dennis Ferguson, Mike Frysinger, John Hauser, David Horner, Olof
-Johansson, Yunsup Lee, Andrew Lutomirski, Jonathan Neusch{\"a}fer, Rishiyur
+Johansson, Yunsup Lee, Andrew Lutomirski, Prashanth Mundkur,
+Jonathan Neusch{\"a}fer, Rishiyur
Nikhil, Stefan O'Rear, Albert Ou, John Ousterhout, David Patterson, Dmitri
Pavlov, Kade Phillips, Colin Schmidt, Wesley Terpstra, Matt Thomas, Tommy Thorn, Ray
VanDeWalker, Megan Wachs, Steve Wallach, Andrew Waterman, Clifford Wolf,