Skip to content
This repository has been archived by the owner on Mar 21, 2024. It is now read-only.

Commit

Permalink
clarify VIEs vs IIEs
Browse files Browse the repository at this point in the history
  • Loading branch information
bcstrongx committed Aug 28, 2023
1 parent 899eaf0 commit c335c26
Showing 1 changed file with 7 additions and 13 deletions.
20 changes: 7 additions & 13 deletions body.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -216,21 +216,18 @@ overridden by the requirements specified in the section below, which
take precedence over this section when extension Smstateen is also
implemented.

A virtual instruction exception is raised for attempts from VS-mode or
VU-mode to directly access vsiselect or vsireg*, or attempts from
VU-mode to access siselect or sireg*.

The behavior upon accessing vsireg* from M-mode or HS-mode, while vsiselect holds a value that is not implemented at HS level, is UNSPECIFIED. Similarly, the behavior upon accessing sireg* (really vsireg*) from VS-mode, while vsiselect holds a value that is not implemented at VS level, is UNSPECIFIED.

A virtual instruction exception is raised for attempts from VS-mode or VU-mode to directly access vsiselect or vsireg*, or attempts from VU-mode to access siselect or sireg*.

The behavior upon accessing vsireg* from M-mode or HS-mode, or accessing sireg* (really vsireg*) from VS-mode, while vsiselect holds a value that is not implemented at HS level, is UNSPECIFIED.

[NOTE]
[%unbreakable]
====
_It is recommended that implementations raise an illegal instruction
exception for such accesses, to facilitate possible emulation (by M-mode
or HS-mode) of these accesses._
_It is recommended that implementations raise an illegal instruction exception for such accesses, to facilitate possible emulation (by M-mode) of these accesses._
====

The behavior upon accessing vsireg* from M-mode or HS-mode, while vsiselect holds a value that is not implemented at HS level, is UNSPECIFIED. Similarly, the behavior upon accessing sireg* (really vsireg*) from VS-mode, while vsiselect holds a value that is not implemented at VS level, is UNSPECIFIED.

Otherwise, while vsiselect holds a number in a standard-defined and
implemented range, attempts to access vsireg* from a sufficiently
privileged mode, or to access sireg* (really vsireg*) from VS-mode,
Expand All @@ -241,10 +238,7 @@ allocated.
[NOTE]
[%unbreakable]
====
__Ordinarily, each vsireg__i _will access register state, access
read-only 0 state, or raise an exception (either an illegal instruction
exception or, for select accesses from VS-mode or VU-mode, a virtual
instruction exception)._
__Ordinarily, each vsireg__i _will access register state, access read-only 0 state, or raise an exception (either an illegal instruction exception or, for select accesses from VS-mode, a virtual instruction exception). When vsiselect holds a value that is implemented at HS level but not at VS level, attempts to access sireg* (really vsireg*) from VS-mode will typically raise a virtual instruction exception._
====

Like siselect and sireg*, the widths of vsiselect and vsireg* are always
Expand Down

0 comments on commit c335c26

Please sign in to comment.