From: Richard Henderson Date: Wed, 27 Mar 2024 22:50:07 +0000 (-1000) Subject: target/hppa: Always make a copy in do_ibranch_priv X-Git-Tag: v9.1.0-rc0~105^2~27 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=1874e6c2fdb351120c234e6840729c9553d77d05;p=thirdparty%2Fqemu.git target/hppa: Always make a copy in do_ibranch_priv This simplifies callers, which might otherwise have to make another copy. Reviewed-by: Philippe Mathieu-Daudé Signed-off-by: Richard Henderson --- diff --git a/target/hppa/translate.c b/target/hppa/translate.c index e9ba7920656..1ede4bd725e 100644 --- a/target/hppa/translate.c +++ b/target/hppa/translate.c @@ -1968,18 +1968,17 @@ static bool do_ibranch(DisasContext *ctx, TCGv_i64 dest, TCGv_i64 dspc, */ static TCGv_i64 do_ibranch_priv(DisasContext *ctx, TCGv_i64 offset) { - TCGv_i64 dest; + TCGv_i64 dest = tcg_temp_new_i64(); switch (ctx->privilege) { case 0: /* Privilege 0 is maximum and is allowed to decrease. */ - return offset; + tcg_gen_mov_i64(dest, offset); + break; case 3: /* Privilege 3 is minimum and is never allowed to increase. */ - dest = tcg_temp_new_i64(); tcg_gen_ori_i64(dest, offset, 3); break; default: - dest = tcg_temp_new_i64(); tcg_gen_andi_i64(dest, offset, -4); tcg_gen_ori_i64(dest, dest, ctx->privilege); tcg_gen_umax_i64(dest, dest, offset);