aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorKrste Asanovic <krste@eecs.berkeley.edu>2018-11-05 14:01:43 -0800
committerKrste Asanovic <krste@eecs.berkeley.edu>2018-11-05 14:01:43 -0800
commit7643bf2f81169b46619eedd32ced4f757f5268c3 (patch)
treebd681097312623276908c7f6abfc270f62a3aa44 /src
parentf371bd48fa9167ebfdc8300255703c5141e57c84 (diff)
downloadriscv-isa-manual-7643bf2f81169b46619eedd32ced4f757f5268c3.zip
riscv-isa-manual-7643bf2f81169b46619eedd32ced4f757f5268c3.tar.gz
riscv-isa-manual-7643bf2f81169b46619eedd32ced4f757f5268c3.tar.bz2
Allowed certain un-emulatable misaligned accesses to be reported with access exceptions instead of address-misalignment exceptions.
Diffstat (limited to 'src')
-rw-r--r--src/rv32.tex17
1 files changed, 10 insertions, 7 deletions
diff --git a/src/rv32.tex b/src/rv32.tex
index d1be7e9..54bbaba 100644
--- a/src/rv32.tex
+++ b/src/rv32.tex
@@ -1035,13 +1035,16 @@ hardware and invisible trap depending on address.
An EEI may not guarantee misaligned loads and stores are handled
invisibly. In this case, loads and stores that are not naturally
aligned may either complete execution successfully or raise an
-address-misaligned exception, but must always raise an
-address-misaligned exception if they fail to execute due to
-misalignment. When an EEI does not guarantee misaligned loads and
-stores are handled invisibly, the EEI must define if
-address-misaligned exceptions cause a contained trap (allowing
-software running inside the execution environment to handle the trap)
-or a fatal trap (terminating execution).
+exception. The exception raised can be either an address-misaligned
+exception or an access exception. For a memory access that would
+otherwise be able to complete except for the misalignment, an access
+exception can be raised instead of an address-misaligned exception if
+the misaligned access should not be emulated, e.g., if accesses to the
+memory region have side effects. When an EEI does not guarantee
+misaligned loads and stores are handled invisibly, the EEI must define
+if exceptions caused by address misalignment result in a contained
+trap (allowing software running inside the execution environment to
+handle the trap) or a fatal trap (terminating execution).
\begin{commentary}
Misaligned accesses are occasionally required when porting legacy