Skip to content

Commit

Permalink
CSetBoundsRoundDown archdoc
Browse files Browse the repository at this point in the history
  • Loading branch information
nwf committed Oct 3, 2024
1 parent 5faa709 commit e1b377d
Show file tree
Hide file tree
Showing 5 changed files with 21 additions and 0 deletions.
2 changes: 2 additions & 0 deletions archdoc/app-isaquick-riscv.tex
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,8 @@ \chapter{Instruction encoding summary}

\rvcheriisaquick{CSetBoundsExact}

\rvcheriisaquick{CSetBoundsRoundDown}

\rvcheriisaquick{CSetBoundsImm}

\rvcheriisaquick{CSetHigh}
Expand Down
1 change: 1 addition & 0 deletions archdoc/chap-changes.tex
Original file line number Diff line number Diff line change
Expand Up @@ -43,5 +43,6 @@ \chapter{Version history}
Because CHERIoT allows manipulating the status of the interrupt through a function call (and function return) by encoding the interrupt type in the otype, the following attack can occur: A caller calling an interrupt-disabling callee can set the return sentry of the callee to the same callee. This means, the callee will call itself on return all the while operating with interrupts disabled. This will lead to infinite repeated calls to the callee with interrupts disabled, violating availability. This attack can be prevented in CHERIoT by adding two new ``backwards-edge'' sentries and adding more checks on \rvcheriasminsnref{CJALR}.
\item[\ghpr{64}] Attempting to store a ``backwards-edge'' sentry through an authorizing cap lacking \cappermSLC will clear the tag of the stored value.
This enables the RTOS to confine ``backwards-edge'' sentries to the stack and register spill area.
\item[\ghissue{72},\ghpr{73}] Introduce \rvcheriasminsnref{CSetBoundsRoundDown} to facilitate constructing representable slices of buffers.
\end{description}
\end{description}
1 change: 1 addition & 0 deletions archdoc/chap-isaref-riscv.tex
Original file line number Diff line number Diff line change
Expand Up @@ -305,6 +305,7 @@ \section{\cherimcu{} Instructions}
\input{insn-riscv/csetaddr}
\input{insn-riscv/csetbounds}
\input{insn-riscv/csetboundsexact}
\input{insn-riscv/csetboundsrounddown}
\input{insn-riscv/csetboundsimm}
\input{insn-riscv/csetequalexact}
\input{insn-riscv/csethigh}
Expand Down
1 change: 1 addition & 0 deletions archdoc/def-riscv-insns.tex
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@
\rvcherisrcsrcdestimm[name=CIncAddrImm]{1}{cd}{cs1}{imm}
\rvcherisrcsrcdest[name=CSetBounds]{8}{cd}{cs1}{rs2}
\rvcherisrcsrcdest[name=CSetBoundsExact]{9}{cd}{cs1}{rs2}
\rvcherisrcsrcdest[name=CSetBoundsRoundDown]{A}{cd}{cs1}{rs2}
\rvcherisrcsrcdestimm[name=CSetBoundsImm]{2}{cd}{cs1}{uimm}
\rvcherisrcsrcdest[name=CSetHigh]{16}{cd}{cs1}{rs2}
\rvcherisrcdest[name=CClearTag]{B}{cd}{cs1}
Expand Down
16 changes: 16 additions & 0 deletions archdoc/insn-riscv/csetboundsrounddown.tex
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
\clearpage
\phantomsection
\addcontentsline{toc}{subsection}{CSetBoundsRoundDown}
\insnriscvlabel{csetboundsrounddown}
\subsection*{CSetBoundsRoundDown}

\subsubsection*{Format}

\rvcheriasm{CSetBoundsRoundDown}

\begin{center}
\rvcheriheader
\rvcheribitbox{CSetBoundsRoundDown}
\end{center}

\sailRISCVisarefbody{CSetBoundsRoundDown}

0 comments on commit e1b377d

Please sign in to comment.