Skip to content

Commit

Permalink
Add non-normative text about how semihosting sequence was chosen
Browse files Browse the repository at this point in the history
Based on public review feedback, add non-normative text about how
semihosting instruction sequence was chosen.

Signed-off-by: Anup Patel <apatel@ventanamicro.com>
  • Loading branch information
avpatel committed Nov 8, 2024
1 parent b7bbf01 commit ae6e8bd
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 0 deletions.
5 changes: 5 additions & 0 deletions src/bibliography.bib
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,8 @@ @electronic{ARMSemihostingRef
url = {https://github.com/ARM-software/abi-aa/releases/download/2023Q3/semihosting.pdf},
year = {2023}
}
@electronic{RISCVUnprivRef,
title = {The RISC-V Instruction Set Manual Volume I: Unprivileged Architecture},
url = {https://github.com/riscv/riscv-isa-manual/releases},
year = {2024}
}
9 changes: 9 additions & 0 deletions src/binary-interface.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,15 @@ enabled for the semihosting caller then the semihosting instruction sequence
and data passed via memory must be paged in else the behavior of the semihosting
call is UNSPECIFIED.

NOTE: The `SLLI`, `EBREAK`, and `SRAI` instructions are part of the ratified
RV32E, RV32I, RV64E and RV64I (aka Base Integer Instruction Set) specifications
cite:[RISCVUnprivRef] hence these instructions are present on almost all RISC-V
platforms.

NOTE: The `SLLI` and `SRAI` instruction based NOPs which serve as semihosting
marker have been randomly selected from the Base Integer Instruction Set since
these are designated for custom use and unlikely to appear in real life code.

=== Semihosting Parameters

The type of semihosting operation and its parameters are specified using
Expand Down

0 comments on commit ae6e8bd

Please sign in to comment.