diff options
author | Andrew Waterman <aswaterman@gmail.com> | 2018-11-30 13:30:32 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-11-30 13:30:32 -0800 |
commit | a5427e3f84fdbdd7842d8edbcc975ebc1209f348 (patch) | |
tree | 2b9ac8fc4e4e45644cd496cec07e6b5314568c6c | |
parent | 57bd91eba4fd6b63944b9585ac29e2dba87c845c (diff) | |
download | riscv-isa-manual-a5427e3f84fdbdd7842d8edbcc975ebc1209f348.zip riscv-isa-manual-a5427e3f84fdbdd7842d8edbcc975ebc1209f348.tar.gz riscv-isa-manual-a5427e3f84fdbdd7842d8edbcc975ebc1209f348.tar.bz2 |
Define semantics for contradictory misa settings (#285)
* Define semantics for contradictory misa settings
Closes #82
* Add commentary about contradictor misa settings
-rw-r--r-- | src/machine.tex | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/machine.tex b/src/machine.tex index 539838f..2e88a1f 100644 --- a/src/machine.tex +++ b/src/machine.tex @@ -176,6 +176,22 @@ ISA observed at any level, and supports a much richer command interface without burdening hardware designs. \end{commentary} +Unless {\tt misa} is hardwired to zero, the I and E bits are always +complements of each other. Hence, either both are read-only or both are +writable. If they are writable, then an attempt to set them to the same value +{\em x} causes I to be set to {\em x} and E to be set to !{\em x}. + +The implementation may impose additional constraints on the collective setting +of two or more {\tt misa} fields, in which case they function collectively as +a single \warl\ field. For example, an implementation might require that the +D bit be clear unless the F bit is set. An attempt to write an unsupported +combination causes those bits to be set to some supported combination. +\begin{commentary} +In the event that an unsupported combination is written to {\tt misa}, +it is recommended that the implementation select the supported combination +with the fewest features enabled, to aid debugging of the error. +\end{commentary} + Writing {\tt misa} may increase IALIGN, e.g., by disabling the ``C'' extension. If an instruction that would write {\tt misa} increases IALIGN, and |