aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Waterman <andrew@sifive.com>2017-07-20 16:08:46 -0700
committerAndrew Waterman <andrew@sifive.com>2017-07-20 16:09:42 -0700
commitb1acc301a3995e64bc8c1bf8bb094bf8b20d8912 (patch)
tree693ad556c97feb83aff8f53fd0ff7ce650485d96
parent10bbb28d84bd9fad81bb03f1f55404e5a024368f (diff)
downloadriscv-isa-manual-b1acc301a3995e64bc8c1bf8bb094bf8b20d8912.zip
riscv-isa-manual-b1acc301a3995e64bc8c1bf8bb094bf8b20d8912.tar.gz
riscv-isa-manual-b1acc301a3995e64bc8c1bf8bb094bf8b20d8912.tar.bz2
Add note about C.MV
-rw-r--r--src/c.tex7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/c.tex b/src/c.tex
index 78eb361..066c5ef 100644
--- a/src/c.tex
+++ b/src/c.tex
@@ -968,6 +968,13 @@ These instructions use the CR format.
C.MV copies the value in register {\em rs2} into register {\em rd}. C.MV
expands into {\tt add rd, x0, rs2}.
+\begin{commentary}
+C.MV expands to a different instruction than the canonical MV
+pseudoinstruction, which instead uses ADDI. Implementations that handle MV
+specially, e.g. using register-renaming hardware, may find it more convenient
+to expand C.MV to MV instead of ADD, at slight additional hardware cost.
+\end{commentary}
+
C.ADD adds the values in registers {\em rd} and {\em rs2} and writes the
result to register {\em rd}. C.ADD expands into {\tt add rd, rd, rs2}.