New RV64C proposal
[riscv-isa-sim.git] / riscv / insns / c_addi.h
index ad278f14d310bd2a9c0ea186c8a8ac923d86643c..cea2a1812e3fe8aaa2729489e153864cb40951f6 100644 (file)
@@ -1,2 +1,7 @@
 require_extension('C');
-WRITE_RD(sext_xlen(RVC_RS2 + insn.rvc_imm()));
+if (insn.rvc_rd() == 0) { // c.addi16sp
+  WRITE_REG(X_SP, sext_xlen(RVC_SP + insn.rvc_addi16sp_imm()));
+} else {
+  require(insn.rvc_imm() != 0);
+  WRITE_RD(sext_xlen(RVC_RS1 + insn.rvc_imm()));
+}