aboutsummaryrefslogtreecommitdiff
path: root/src/rv64.tex
diff options
context:
space:
mode:
authorAndrew Waterman <andrew@sifive.com>2018-07-15 22:42:06 -0700
committerAndrew Waterman <andrew@sifive.com>2018-07-15 22:42:06 -0700
commit636bd8dd9d9cc912c46f5c2efab983e8947d7d0f (patch)
tree165bb2ee75459c6ac2026d2412f33cd8c81d834d /src/rv64.tex
parent4cbdcd713fa638de28f4b1a43cbbc1be1877c875 (diff)
downloadriscv-isa-manual-636bd8dd9d9cc912c46f5c2efab983e8947d7d0f.zip
riscv-isa-manual-636bd8dd9d9cc912c46f5c2efab983e8947d7d0f.tar.gz
riscv-isa-manual-636bd8dd9d9cc912c46f5c2efab983e8947d7d0f.tar.bz2
More work on HINTs
Diffstat (limited to 'src/rv64.tex')
-rw-r--r--src/rv64.tex54
1 files changed, 54 insertions, 0 deletions
diff --git a/src/rv64.tex b/src/rv64.tex
index df5db20..bac88cb 100644
--- a/src/rv64.tex
+++ b/src/rv64.tex
@@ -251,3 +251,57 @@ RDCYCLE, RDTIME, and RDINSTRET pseudoinstructions read the full 64 bits of
the {\tt cycle}, {\tt time}, and {\tt instret} counters. Hence, the RDCYCLEH,
RDTIMEH, and RDINSTRETH instructions are not necessary and are illegal in
RV64I.
+
+\section{HINT Instructions}
+\label{sec:rv64i-hints}
+
+All instructions that are microarchitectural HINTs in RV32I (see
+Section~\ref{sec:rv32i-hints}) are also HINTs in RV64I. The
+additional computational instructions in RV64I expand both the standard and
+custom HINT encoding spaces.
+
+Table~\ref{tab:rv64i-hints} lists all RV64I HINT code points. 91\% of the HINT
+space is reserved for standard HINTs, but none are presently defined. The
+remainder of the HINT space is reserved for custom HINTs: no standard HINTs
+will ever be defined in this subspace.
+
+\begin{table}[hbt]
+\centering
+\begin{tabular}{|l|l|c|l|}
+ \hline
+ Instruction & Constraints & Code Points & Purpose \\ \hline \hline
+ LUI & {\em rd}={\tt x0} & $2^{20}$ & \multirow{21}{*}{\em Reserved for future standard use} \\ \cline{1-3}
+ AUIPC & {\em rd}={\tt x0} & $2^{20}$ & \\ \cline{1-3}
+ \multirow{2}{*}{ADDI} & {\em rd}={\tt x0}, and either & \multirow{2}{*}{$2^{17}-1$} & \\
+ & {\em rs1}$\neq${\tt x0} or {\em imm}$\neq$0 & & \\ \cline{1-3}
+ ANDI & {\em rd}={\tt x0} & $2^{17}$ & \\ \cline{1-3}
+ ORI & {\em rd}={\tt x0} & $2^{17}$ & \\ \cline{1-3}
+ XORI & {\em rd}={\tt x0} & $2^{17}$ & \\ \cline{1-3}
+ ADDIW & {\em rd}={\tt x0} & $2^{17}$ & \\ \cline{1-3}
+ ADD & {\em rd}={\tt x0} & $2^{10}$ & \\ \cline{1-3}
+ SUB & {\em rd}={\tt x0} & $2^{10}$ & \\ \cline{1-3}
+ AND & {\em rd}={\tt x0} & $2^{10}$ & \\ \cline{1-3}
+ OR & {\em rd}={\tt x0} & $2^{10}$ & \\ \cline{1-3}
+ XOR & {\em rd}={\tt x0} & $2^{10}$ & \\ \cline{1-3}
+ SLL & {\em rd}={\tt x0} & $2^{10}$ & \\ \cline{1-3}
+ SRL & {\em rd}={\tt x0} & $2^{10}$ & \\ \cline{1-3}
+ SRA & {\em rd}={\tt x0} & $2^{10}$ & \\ \cline{1-3}
+ ADDW & {\em rd}={\tt x0} & $2^{10}$ & \\ \cline{1-3}
+ SUBW & {\em rd}={\tt x0} & $2^{10}$ & \\ \cline{1-3}
+ SLLW & {\em rd}={\tt x0} & $2^{10}$ & \\ \cline{1-3}
+ SRLW & {\em rd}={\tt x0} & $2^{10}$ & \\ \cline{1-3}
+ SRAW & {\em rd}={\tt x0} & $2^{10}$ & \\ \hline \hline
+ SLTI & {\em rd}={\tt x0} & $2^{17}$ & \multirow{10}{*}{\em Reserved for custom use} \\ \cline{1-3}
+ SLTIU & {\em rd}={\tt x0} & $2^{17}$ & \\ \cline{1-3}
+ SLLI & {\em rd}={\tt x0} & $2^{11}$ & \\ \cline{1-3}
+ SRLI & {\em rd}={\tt x0} & $2^{11}$ & \\ \cline{1-3}
+ SRAI & {\em rd}={\tt x0} & $2^{11}$ & \\ \cline{1-3}
+ SLLIW & {\em rd}={\tt x0} & $2^{10}$ & \\ \cline{1-3}
+ SRLIW & {\em rd}={\tt x0} & $2^{10}$ & \\ \cline{1-3}
+ SRAIW & {\em rd}={\tt x0} & $2^{10}$ & \\ \cline{1-3}
+ SLT & {\em rd}={\tt x0} & $2^{10}$ & \\ \cline{1-3}
+ SLTU & {\em rd}={\tt x0} & $2^{10}$ & \\ \hline
+\end{tabular}
+\caption{RV64I HINT instructions.}
+\label{tab:rv64i-hints}
+\end{table}