target/alpha: Use TCG_COND_TST{EQ,NE} for BLB{C,S}

Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20231028194522.245170-33-richard.henderson@linaro.org>
[PMD: Split from bigger patch, part 2/2]
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Message-Id: <20231108205247.83234-2-philmd@linaro.org>
This commit is contained in:
Richard Henderson 2023-11-08 21:52:47 +01:00
parent 42c47f631f
commit c66ba9786a
1 changed files with 10 additions and 10 deletions

View File

@ -482,10 +482,10 @@ static DisasJumpType gen_bcond_internal(DisasContext *ctx, TCGCond cond,
} }
static DisasJumpType gen_bcond(DisasContext *ctx, TCGCond cond, int ra, static DisasJumpType gen_bcond(DisasContext *ctx, TCGCond cond, int ra,
int32_t disp, int mask) int32_t disp)
{ {
return gen_bcond_internal(ctx, cond, load_gpr(ctx, ra), return gen_bcond_internal(ctx, cond, load_gpr(ctx, ra),
mask, disp); is_tst_cond(cond), disp);
} }
/* Fold -0.0 for comparison with COND. */ /* Fold -0.0 for comparison with COND. */
@ -2820,35 +2820,35 @@ static DisasJumpType translate_one(DisasContext *ctx, uint32_t insn)
break; break;
case 0x38: case 0x38:
/* BLBC */ /* BLBC */
ret = gen_bcond(ctx, TCG_COND_EQ, ra, disp21, 1); ret = gen_bcond(ctx, TCG_COND_TSTEQ, ra, disp21);
break; break;
case 0x39: case 0x39:
/* BEQ */ /* BEQ */
ret = gen_bcond(ctx, TCG_COND_EQ, ra, disp21, 0); ret = gen_bcond(ctx, TCG_COND_EQ, ra, disp21);
break; break;
case 0x3A: case 0x3A:
/* BLT */ /* BLT */
ret = gen_bcond(ctx, TCG_COND_LT, ra, disp21, 0); ret = gen_bcond(ctx, TCG_COND_LT, ra, disp21);
break; break;
case 0x3B: case 0x3B:
/* BLE */ /* BLE */
ret = gen_bcond(ctx, TCG_COND_LE, ra, disp21, 0); ret = gen_bcond(ctx, TCG_COND_LE, ra, disp21);
break; break;
case 0x3C: case 0x3C:
/* BLBS */ /* BLBS */
ret = gen_bcond(ctx, TCG_COND_NE, ra, disp21, 1); ret = gen_bcond(ctx, TCG_COND_TSTNE, ra, disp21);
break; break;
case 0x3D: case 0x3D:
/* BNE */ /* BNE */
ret = gen_bcond(ctx, TCG_COND_NE, ra, disp21, 0); ret = gen_bcond(ctx, TCG_COND_NE, ra, disp21);
break; break;
case 0x3E: case 0x3E:
/* BGE */ /* BGE */
ret = gen_bcond(ctx, TCG_COND_GE, ra, disp21, 0); ret = gen_bcond(ctx, TCG_COND_GE, ra, disp21);
break; break;
case 0x3F: case 0x3F:
/* BGT */ /* BGT */
ret = gen_bcond(ctx, TCG_COND_GT, ra, disp21, 0); ret = gen_bcond(ctx, TCG_COND_GT, ra, disp21);
break; break;
invalid_opc: invalid_opc:
ret = gen_invalid(ctx); ret = gen_invalid(ctx);