From: Bastian Koppelmann Date: Wed, 21 Jun 2023 14:22:55 +0000 (+0200) Subject: target/tricore: Fix RR_JLI clobbering reg A[11] X-Git-Tag: v8.1.0-rc0~49^2~7 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=8da70480f59b4fd423918ac756747c1e35f6f53a;p=thirdparty%2Fqemu.git target/tricore: Fix RR_JLI clobbering reg A[11] if A[r1] == A[11], then we would overwrite the destination address of the jump with the return address. Reported-by: Richard Henderson Reviewed-by: Richard Henderson Signed-off-by: Bastian Koppelmann Message-Id: <20230621142302.1648383-2-kbastian@mail.uni-paderborn.de> --- diff --git a/target/tricore/translate.c b/target/tricore/translate.c index d1b319e3748..cca52c75b2d 100644 --- a/target/tricore/translate.c +++ b/target/tricore/translate.c @@ -6064,8 +6064,8 @@ static void decode_rr_idirect(DisasContext *ctx) tcg_gen_andi_tl(cpu_PC, cpu_gpr_a[r1], ~0x1); break; case OPC2_32_RR_JLI: - tcg_gen_movi_tl(cpu_gpr_a[11], ctx->pc_succ_insn); tcg_gen_andi_tl(cpu_PC, cpu_gpr_a[r1], ~0x1); + tcg_gen_movi_tl(cpu_gpr_a[11], ctx->pc_succ_insn); break; case OPC2_32_RR_CALLI: gen_helper_1arg(call, ctx->pc_succ_insn);