Skip to content

Commit

Permalink
Clarify sealed mepcc behaviour (#347)
Browse files Browse the repository at this point in the history
Fixes #344

Co-authored-by: Tariq Kurd <tariq.kurd@codasip.com>
  • Loading branch information
PRugg-Cap and tariqkurd-repo authored Aug 22, 2024
1 parent 476d0dd commit 561372f
Showing 1 changed file with 3 additions and 2 deletions.
5 changes: 3 additions & 2 deletions src/riscv-integration.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -537,9 +537,10 @@ include::img/mepccreg.edn[]
Capabilities written to <<mepcc>> must be legalised by implicitly zeroing bit
**mepcc[0]**. Additionally, if an implementation allows IALIGN to be
either 16 or 32, then whenever IALIGN=32, the capability read from <<mepcc>>
must be legalised by implicitly zeroing bit **mepcc[1]**. Therefore, the
must be legalised by implicitly zeroing **mepcc[1]**. Therefore, the
capability read or written has its tag bit cleared if the legalised address is
not within the <<section_cap_representable_check>>.
not within the <<section_cap_representable_check>> or if the legalisation
changes the address and the capability is sealed.

NOTE: When reading or writing a sealed capability in <<mepcc>>, the
tag is not cleared if the original address equals the legalized
Expand Down

0 comments on commit 561372f

Please sign in to comment.