aboutsummaryrefslogtreecommitdiff
path: root/target/riscv/translate.c
diff options
context:
space:
mode:
authorLIU Zhiwei <zhiwei_liu@c-sky.com>2022-01-20 20:20:30 +0800
committerAlistair Francis <alistair.francis@wdc.com>2022-01-21 15:52:57 +1000
commita14db52f7fa9f6843d1806e8d4cd56f3410bb59d (patch)
tree4b918793a0e55071a222ba3a602876315ac77a56 /target/riscv/translate.c
parentb655dc7cd91588a77c3df6f618246fd88ad14249 (diff)
downloadqemu-a14db52f7fa9f6843d1806e8d4cd56f3410bb59d.zip
qemu-a14db52f7fa9f6843d1806e8d4cd56f3410bb59d.tar.gz
qemu-a14db52f7fa9f6843d1806e8d4cd56f3410bb59d.tar.bz2
target/riscv: Sign extend link reg for jal and jalr
Signed-off-by: LIU Zhiwei <zhiwei_liu@c-sky.com> Reviewed-by: Alistair Francis <alistair.francis@wdc.com> Message-id: 20220120122050.41546-4-zhiwei_liu@c-sky.com Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
Diffstat (limited to 'target/riscv/translate.c')
-rw-r--r--target/riscv/translate.c4
1 files changed, 1 insertions, 3 deletions
diff --git a/target/riscv/translate.c b/target/riscv/translate.c
index 3309042..30c0e28 100644
--- a/target/riscv/translate.c
+++ b/target/riscv/translate.c
@@ -369,10 +369,8 @@ static void gen_jal(DisasContext *ctx, int rd, target_ulong imm)
return;
}
}
- if (rd != 0) {
- tcg_gen_movi_tl(cpu_gpr[rd], ctx->pc_succ_insn);
- }
+ gen_set_gpri(ctx, rd, ctx->pc_succ_insn);
gen_goto_tb(ctx, 0, ctx->base.pc_next + imm); /* must use this for safety */
ctx->base.is_jmp = DISAS_NORETURN;
}