static inline void gen_log_pred_write(DisasContext *ctx, int pnum, TCGv val)
{
- TCGv zero = tcg_const_tl(0);
TCGv base_val = tcg_temp_new();
- TCGv and_val = tcg_temp_new();
- TCGv pred_written = tcg_temp_new();
tcg_gen_andi_tl(base_val, val, 0xff);
}
tcg_gen_ori_tl(hex_pred_written, hex_pred_written, 1 << pnum);
- tcg_temp_free(zero);
tcg_temp_free(base_val);
- tcg_temp_free(and_val);
- tcg_temp_free(pred_written);
}
static inline void gen_read_p3_0(TCGv control_reg)
static void gen_pred_writes(DisasContext *ctx, Packet *pkt)
{
- TCGv zero, control_reg, pval;
int i;
/* Early exit if the log is empty */
return;
}
- zero = tcg_const_tl(0);
- control_reg = tcg_temp_new();
- pval = tcg_temp_new();
-
/*
* Only endloop instructions will conditionally
* write a predicate. If there are no endloop
* write of the predicates.
*/
if (pkt->pkt_has_endloop) {
+ TCGv zero = tcg_const_tl(0);
TCGv pred_written = tcg_temp_new();
for (i = 0; i < ctx->preg_log_idx; i++) {
int pred_num = ctx->preg_log[i];
hex_new_pred_value[pred_num],
hex_pred[pred_num]);
}
+ tcg_temp_free(zero);
tcg_temp_free(pred_written);
} else {
for (i = 0; i < ctx->preg_log_idx; i++) {
}
}
}
-
- tcg_temp_free(zero);
- tcg_temp_free(control_reg);
- tcg_temp_free(pval);
}
static void gen_check_store_width(DisasContext *ctx, int slot_num)