aboutsummaryrefslogtreecommitdiff
path: root/target/hppa/translate.c
diff options
context:
space:
mode:
authorRichard Henderson <richard.henderson@linaro.org>2024-03-25 11:22:59 -1000
committerRichard Henderson <richard.henderson@linaro.org>2024-05-15 10:03:44 +0200
commitb041ec9d7173ec893c1a5bc0bfd25fe860b4fcb0 (patch)
tree3f935700617eaf177a003f4c1bf00ac388c0f8ed /target/hppa/translate.c
parent3289ea0e8f4894a67f827540d674e3e199596f33 (diff)
downloadqemu-b041ec9d7173ec893c1a5bc0bfd25fe860b4fcb0.zip
qemu-b041ec9d7173ec893c1a5bc0bfd25fe860b4fcb0.tar.gz
qemu-b041ec9d7173ec893c1a5bc0bfd25fe860b4fcb0.tar.bz2
target/hppa: Use TCG_COND_TST* in trans_bb_imm
Reviewed-by: Helge Deller <deller@gmx.de> Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Diffstat (limited to 'target/hppa/translate.c')
-rw-r--r--target/hppa/translate.c12
1 files changed, 3 insertions, 9 deletions
diff --git a/target/hppa/translate.c b/target/hppa/translate.c
index 4e49bd2..af6be51 100644
--- a/target/hppa/translate.c
+++ b/target/hppa/translate.c
@@ -3516,18 +3516,12 @@ static bool trans_bb_sar(DisasContext *ctx, arg_bb_sar *a)
static bool trans_bb_imm(DisasContext *ctx, arg_bb_imm *a)
{
- TCGv_i64 tmp, tcg_r;
DisasCond cond;
- int p;
+ int p = a->p | (a->d ? 0 : 32);
nullify_over(ctx);
-
- tmp = tcg_temp_new_i64();
- tcg_r = load_gpr(ctx, a->r);
- p = a->p | (a->d ? 0 : 32);
- tcg_gen_shli_i64(tmp, tcg_r, p);
-
- cond = cond_make_ti(a->c ? TCG_COND_GE : TCG_COND_LT, tmp, 0);
+ cond = cond_make_vi(a->c ? TCG_COND_TSTEQ : TCG_COND_TSTNE,
+ load_gpr(ctx, a->r), 1ull << (63 - p));
return do_cbranch(ctx, a->disp, a->n, &cond);
}