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:
parent
42c47f631f
commit
c66ba9786a
@ -482,10 +482,10 @@ static DisasJumpType gen_bcond_internal(DisasContext *ctx, TCGCond cond,
|
||||
}
|
||||
|
||||
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),
|
||||
mask, disp);
|
||||
is_tst_cond(cond), disp);
|
||||
}
|
||||
|
||||
/* Fold -0.0 for comparison with COND. */
|
||||
@ -2820,35 +2820,35 @@ static DisasJumpType translate_one(DisasContext *ctx, uint32_t insn)
|
||||
break;
|
||||
case 0x38:
|
||||
/* BLBC */
|
||||
ret = gen_bcond(ctx, TCG_COND_EQ, ra, disp21, 1);
|
||||
ret = gen_bcond(ctx, TCG_COND_TSTEQ, ra, disp21);
|
||||
break;
|
||||
case 0x39:
|
||||
/* BEQ */
|
||||
ret = gen_bcond(ctx, TCG_COND_EQ, ra, disp21, 0);
|
||||
ret = gen_bcond(ctx, TCG_COND_EQ, ra, disp21);
|
||||
break;
|
||||
case 0x3A:
|
||||
/* BLT */
|
||||
ret = gen_bcond(ctx, TCG_COND_LT, ra, disp21, 0);
|
||||
ret = gen_bcond(ctx, TCG_COND_LT, ra, disp21);
|
||||
break;
|
||||
case 0x3B:
|
||||
/* BLE */
|
||||
ret = gen_bcond(ctx, TCG_COND_LE, ra, disp21, 0);
|
||||
ret = gen_bcond(ctx, TCG_COND_LE, ra, disp21);
|
||||
break;
|
||||
case 0x3C:
|
||||
/* BLBS */
|
||||
ret = gen_bcond(ctx, TCG_COND_NE, ra, disp21, 1);
|
||||
ret = gen_bcond(ctx, TCG_COND_TSTNE, ra, disp21);
|
||||
break;
|
||||
case 0x3D:
|
||||
/* BNE */
|
||||
ret = gen_bcond(ctx, TCG_COND_NE, ra, disp21, 0);
|
||||
ret = gen_bcond(ctx, TCG_COND_NE, ra, disp21);
|
||||
break;
|
||||
case 0x3E:
|
||||
/* BGE */
|
||||
ret = gen_bcond(ctx, TCG_COND_GE, ra, disp21, 0);
|
||||
ret = gen_bcond(ctx, TCG_COND_GE, ra, disp21);
|
||||
break;
|
||||
case 0x3F:
|
||||
/* BGT */
|
||||
ret = gen_bcond(ctx, TCG_COND_GT, ra, disp21, 0);
|
||||
ret = gen_bcond(ctx, TCG_COND_GT, ra, disp21);
|
||||
break;
|
||||
invalid_opc:
|
||||
ret = gen_invalid(ctx);
|
||||
|
Loading…
Reference in New Issue
Block a user