Skip to content

Commit b1a705d

Browse files
fix #455
1 parent 01df1dc commit b1a705d

File tree

1 file changed

+9
-4
lines changed

1 file changed

+9
-4
lines changed

src/riscv-integration.adoc

+9-4
Original file line numberDiff line numberDiff line change
@@ -1188,11 +1188,16 @@ this section describes how invalid address handling must be supported in
11881188
{cheri_base_ext_name} when accessing CSRs, branching and jumping, and
11891189
accessing memory.
11901190

1191-
===== Accessing CSRs
1191+
===== Updating CSRs
11921192

1193-
The following procedure must be used when executing instructions, such
1194-
as <<CSRRW>>, that write a capability A to a CSR that cannot hold all invalid
1195-
addresses:
1193+
The procedure below must be used when update a CSR with a capability A, and the CSR cannot
1194+
hold all invalid addresses, under the following circumstances:
1195+
1196+
* executing instructions, such as <<CSRRW>>
1197+
* hardware updates to CSRs such as storing the <<pcc>> (which becomes capability A) into
1198+
<<mepcc>>/<<sepcc>> etc. when taking an exception.
1199+
1200+
The procedure is:
11961201

11971202
. If A's address is invalid and A does not have infinite bounds (see
11981203
xref:section_cap_encoding[xrefstyle=short]), then A's tag is set to 0.

0 commit comments

Comments
 (0)