aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Waterman <andrew@sifive.com>2024-06-10 18:01:17 -0700
committerAndrew Waterman <andrew@sifive.com>2024-06-10 18:01:17 -0700
commite9704f3cff9e91277aca1045b37330a8f692deeb (patch)
tree6b29eaa5273d5fda26fa6d19a17cda9075cde99d
parentad0a305aea6aebda7e26e857886143bb38928f4c (diff)
downloadriscv-isa-manual-e9704f3cff9e91277aca1045b37330a8f692deeb.zip
riscv-isa-manual-e9704f3cff9e91277aca1045b37330a8f692deeb.tar.gz
riscv-isa-manual-e9704f3cff9e91277aca1045b37330a8f692deeb.tar.bz2
Add note that vsstatus.FS/VS deviate from the HS-qualified rule
This isn't a change; it's just a repetition of the information in the vsstatus register section.
-rw-r--r--src/hypervisor.adoc13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/hypervisor.adoc b/src/hypervisor.adoc
index 85cb67f..959af02 100644
--- a/src/hypervisor.adoc
+++ b/src/hypervisor.adoc
@@ -2061,6 +2061,19 @@ Because TSR and TVM in `mstatus` are intended to impact only S-mode
(HS-mode), they are ignored for determining exceptions in VS-mode.
====
+Fields FS and VS in registers `sstatus` and `vsstatus` deviate from the usual
+_HS-qualified_ rule.
+If an instruction is prevented from executing because FS or VS is zero in
+either `sstatus` or `vsstatus`, the exception raised is always an
+illegal-instruction exception, never a virtual-instruction exception.
+
+[NOTE]
+====
+Early implementations of the H extension treated FS and VS in `sstatus` and
+`vsstatus` specially this way, and the behavior has been codified to maintain
+compatibility for software.
+====
+
<<<
[[HSyncExcPrio]]