X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=riscv%2Finsns%2Fc_addi.h;h=cea2a1812e3fe8aaa2729489e153864cb40951f6;hb=bdcb5b297f9919bdd1a1b6031a3b5c469e982d14;hp=ad278f14d310bd2a9c0ea186c8a8ac923d86643c;hpb=292fef830dad9d6d8b868ba27cf4ddd80bf9243a;p=riscv-isa-sim.git diff --git a/riscv/insns/c_addi.h b/riscv/insns/c_addi.h index ad278f1..cea2a18 100644 --- a/riscv/insns/c_addi.h +++ b/riscv/insns/c_addi.h @@ -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())); +}