aboutsummaryrefslogtreecommitdiff
path: root/riscv/insns/c_addiw.h
diff options
context:
space:
mode:
authorAndrew Waterman <waterman@cs.berkeley.edu>2015-05-31 16:38:24 -0700
committerAndrew Waterman <waterman@cs.berkeley.edu>2015-05-31 18:29:45 -0700
commit56701b230823f52c252ce6ab69c18639daa02a14 (patch)
tree96935c7b7154db38f675210f94b5dea34bef84f2 /riscv/insns/c_addiw.h
parent5235a77475ff00aecafb9db4c1b003043d2d7f20 (diff)
downloadspike-56701b230823f52c252ce6ab69c18639daa02a14.zip
spike-56701b230823f52c252ce6ab69c18639daa02a14.tar.gz
spike-56701b230823f52c252ce6ab69c18639daa02a14.tar.bz2
Add rest of RV32C instructions
Diffstat (limited to 'riscv/insns/c_addiw.h')
-rw-r--r--riscv/insns/c_addiw.h9
1 files changed, 6 insertions, 3 deletions
diff --git a/riscv/insns/c_addiw.h b/riscv/insns/c_addiw.h
index 27ffd8f..ae4980e 100644
--- a/riscv/insns/c_addiw.h
+++ b/riscv/insns/c_addiw.h
@@ -1,4 +1,7 @@
require_extension('C');
-require_rv64;
-require(insn.rvc_rd() != 0);
-WRITE_RD(sext32(RVC_RS1 + insn.rvc_imm()));
+if (xlen == 32) {
+ WRITE_RD(RVC_RS1 & insn.rvc_imm()); // c.andi
+} else {
+ require(insn.rvc_rd() != 0);
+ WRITE_RD(sext32(RVC_RS1 + insn.rvc_imm()));
+}