diff options
author | Richard Henderson <richard.henderson@linaro.org> | 2024-03-25 11:22:59 -1000 |
---|---|---|
committer | Richard Henderson <richard.henderson@linaro.org> | 2024-05-15 10:03:44 +0200 |
commit | b041ec9d7173ec893c1a5bc0bfd25fe860b4fcb0 (patch) | |
tree | 3f935700617eaf177a003f4c1bf00ac388c0f8ed /target/hppa/translate.c | |
parent | 3289ea0e8f4894a67f827540d674e3e199596f33 (diff) | |
download | qemu-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.c | 12 |
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); } |