mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-05 00:33:55 -06:00
Hexagon (target/hexagon) Clean up pred_written usage
Only endloop instructions will conditionally write to a predicate. When there is an endloop instruction, we preload the values into new_pred_value. The only place pred_written is needed is when HEX_DEBUG is on. We remove the last use of check_for_attrib. However, new uses will be introduced later in this series, so we mark it with G_GNUC_UNUSED. Signed-off-by: Taylor Simpson <tsimpson@quicinc.com> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-Id: <20230427230012.3800327-9-tsimpson@quicinc.com>
This commit is contained in:
parent
d24f0b2b89
commit
25e1d87d10
2 changed files with 23 additions and 46 deletions
|
@ -137,7 +137,9 @@ void gen_log_pred_write(DisasContext *ctx, int pnum, TCGv val)
|
|||
tcg_gen_and_tl(hex_new_pred_value[pnum],
|
||||
hex_new_pred_value[pnum], base_val);
|
||||
}
|
||||
tcg_gen_ori_tl(hex_pred_written, hex_pred_written, 1 << pnum);
|
||||
if (HEX_DEBUG) {
|
||||
tcg_gen_ori_tl(hex_pred_written, hex_pred_written, 1 << pnum);
|
||||
}
|
||||
set_bit(pnum, ctx->pregs_written);
|
||||
}
|
||||
|
||||
|
@ -826,15 +828,13 @@ static void gen_endloop0(DisasContext *ctx)
|
|||
|
||||
/*
|
||||
* if (lpcfg == 1) {
|
||||
* hex_new_pred_value[3] = 0xff;
|
||||
* hex_pred_written |= 1 << 3;
|
||||
* p3 = 0xff;
|
||||
* }
|
||||
*/
|
||||
TCGLabel *label1 = gen_new_label();
|
||||
tcg_gen_brcondi_tl(TCG_COND_NE, lpcfg, 1, label1);
|
||||
{
|
||||
tcg_gen_movi_tl(hex_new_pred_value[3], 0xff);
|
||||
tcg_gen_ori_tl(hex_pred_written, hex_pred_written, 1 << 3);
|
||||
gen_log_pred_write(ctx, 3, tcg_constant_tl(0xff));
|
||||
}
|
||||
gen_set_label(label1);
|
||||
|
||||
|
@ -903,14 +903,12 @@ static void gen_endloop01(DisasContext *ctx)
|
|||
|
||||
/*
|
||||
* if (lpcfg == 1) {
|
||||
* hex_new_pred_value[3] = 0xff;
|
||||
* hex_pred_written |= 1 << 3;
|
||||
* p3 = 0xff;
|
||||
* }
|
||||
*/
|
||||
tcg_gen_brcondi_tl(TCG_COND_NE, lpcfg, 1, label1);
|
||||
{
|
||||
tcg_gen_movi_tl(hex_new_pred_value[3], 0xff);
|
||||
tcg_gen_ori_tl(hex_pred_written, hex_pred_written, 1 << 3);
|
||||
gen_log_pred_write(ctx, 3, tcg_constant_tl(0xff));
|
||||
}
|
||||
gen_set_label(label1);
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue