X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=riscv%2Finsns%2Fc_jal.h;h=068c441ee2c3f02f36c94d0b49af63371c89f036;hb=3fddbcc0a5b2fc6a446967405e58a92be5db9f5f;hp=b63967c783a86357b18b3f207c871c788bc801b9;hpb=82372d00398ce3712f0c7e9f243f6828041e0859;p=riscv-isa-sim.git diff --git a/riscv/insns/c_jal.h b/riscv/insns/c_jal.h index b63967c..068c441 100644 --- a/riscv/insns/c_jal.h +++ b/riscv/insns/c_jal.h @@ -1,4 +1,8 @@ require_extension('C'); -reg_t tmp = npc; -set_pc(pc + insn.rvc_j_imm()); -WRITE_REG(X_RA, tmp); +if (xlen == 32) { + reg_t tmp = npc; + set_pc(pc + insn.rvc_j_imm()); + WRITE_REG(X_RA, tmp); +} else { + WRITE_RD(sext32(RVC_RS1 + insn.rvc_imm())); +}