From 00557c314bd288c6eb511a201ce90bbdd4450d19 Mon Sep 17 00:00:00 2001 From: Andrew Waterman Date: Tue, 6 Nov 2018 16:54:17 -0800 Subject: Define new RVC format CA; state that C.AND, etc. use it This is not a functional change, just an improvement to the description. Resolves #45 --- src/c.tex | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) (limited to 'src/c.tex') diff --git a/src/c.tex b/src/c.tex index 1a308d2..fbfcfa4 100644 --- a/src/c.tex +++ b/src/c.tex @@ -180,9 +180,9 @@ doubling the instruction cache size~\cite{waterman-ms}. \section{Compressed Instruction Formats} -Table~\ref{formats} shows the eight compressed instruction +Table~\ref{rvc-formats} shows the nine compressed instruction formats. CR, CI, and CSS can use any of the 32 RVI registers, but CIW, -CL, CS, and CB are limited to just 8 of them. Table~\ref{registers} +CL, CS, CA, and CB are limited to just 8 of them. Table~\ref{registers} lists these popular registers, which correspond to registers {\tt x8} to {\tt x15}. Note that there is a separate version of load and store instructions that use the stack @@ -306,6 +306,14 @@ CS & Store & \multicolumn{2}{c|}{op} \\ \cline{3-18} +CA & Arithmetic & +\multicolumn{6}{|c|}{funct6} & +\multicolumn{3}{c|}{rd$'$/rs1$'$} & +\multicolumn{2}{c|}{funct} & +\multicolumn{3}{c|}{rs2$'$} & +\multicolumn{2}{c|}{op} \\ +\cline{3-18} + CB & Branch & \multicolumn{3}{|c|}{funct3} & \multicolumn{3}{c|}{offset} & @@ -325,7 +333,7 @@ CJ & Jump & \end{small} } \caption{Compressed 16-bit RVC instruction formats.} -\label{formats} +\label{rvc-formats} \end{table} @@ -343,7 +351,7 @@ Floating-Point Register ABI Name & {\tt fs0} & {\tt fs1} & {\tt fa0} & {\ \end{tabular} \end{center} } -\caption{Registers specified by the three-bit {\em rs1$'$}, {\em rs2$'$}, and {\em rd$'$} fields of the CIW, CL, CS, and CB formats.} +\caption{Registers specified by the three-bit {\em rs1$'$}, {\em rs2$'$}, and {\em rd$'$} fields of the CIW, CL, CS, CA, and CB formats.} \label{registers} \end{table} @@ -492,7 +500,7 @@ following drawbacks to these instructions: other instructions can be scheduled around the load and store multiple instructions, leading to a potential performance loss. \item The desire for sequential register allocation might conflict with - the featured registers selected for the CIW, CL, CS, and CB formats. + the featured registers selected for the CIW, CL, CS, CA, and CB formats. \end{itemize} Furthermore, much of the gains can be realized in software by replacing prologue and epilogue code with subroutine calls to common @@ -1007,7 +1015,7 @@ C.SUBW & dest & C.SUBW & src & C1 \\ \end{tabular} \end{center} -These instructions use the CS format. +These instructions use the CA format. C.AND computes the bitwise AND of the values in registers {\em rd$'$} and {\em rs2$'$}, then writes the result to register {\em rd$'$}. -- cgit v1.1