Skip to content

Commit

Permalink
Make Wes' inner mathematician happy.
Browse files Browse the repository at this point in the history
  • Loading branch information
davidchisnall committed Jun 26, 2024
1 parent dbd1888 commit c607753
Showing 1 changed file with 6 additions and 6 deletions.
12 changes: 6 additions & 6 deletions _posts/2024-06-26-sentries-cfi.markdown
Original file line number Diff line number Diff line change
Expand Up @@ -45,12 +45,12 @@ RISC-V has a single instruction for both jump to a register and jump-and-link to
The non-linking version just uses the zero register (`cnull` on a CHERI system) as the link register.
Murali's proposal ended up with the following interpretations of the instruction depending on the operands:

cs1 | cd | Used for | Valid sentry types
-- | -- | -- | --
`cra` | `cnull` | Function return | Return sentries
`cra` | `cnull` | Tail call | Unsealed or interrupt inheriting forward sentry
any | `cnull` | Function call | Unsealed or interrupt inheriting forward sentry
any | `cra` | Function call | Unsealed or forward sentries
cs1 | cd | Used for | Valid sentry types
-- | -- | -- | --
`cra` | `cnull` | Function return | Return sentries
`cra` | `cnull` | Tail call | Unsealed or interrupt inheriting forward sentry
any | ∉{`cnull`,`cra`} | Function call | Unsealed or interrupt inheriting forward sentry
any | `cra` | Function call | Unsealed or forward sentries

We are treating `cjr cra` as a return instruction, so it must have a return.

Expand Down

0 comments on commit c607753

Please sign in to comment.