tcg: Fix tcg_reg_alloc_dup*
The assignment to mem_coherent should be done with any modification, not simply with a newly allocated register. Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
parent
7789b16d11
commit
36f5539cfd
|
@ -3498,7 +3498,6 @@ static void tcg_reg_alloc_dup(TCGContext *s, const TCGOp *op)
|
|||
ots->reg = tcg_reg_alloc(s, dup_out_regs, allocated_regs,
|
||||
op->output_pref[0], ots->indirect_base);
|
||||
ots->val_type = TEMP_VAL_REG;
|
||||
ots->mem_coherent = 0;
|
||||
s->reg_to_temp[ots->reg] = ots;
|
||||
}
|
||||
|
||||
|
@ -3552,6 +3551,7 @@ static void tcg_reg_alloc_dup(TCGContext *s, const TCGOp *op)
|
|||
tcg_debug_assert(ok);
|
||||
|
||||
done:
|
||||
ots->mem_coherent = 0;
|
||||
if (IS_DEAD_ARG(1)) {
|
||||
temp_dead(s, its);
|
||||
}
|
||||
|
@ -3779,7 +3779,6 @@ static bool tcg_reg_alloc_dup2(TCGContext *s, const TCGOp *op)
|
|||
ots->reg = tcg_reg_alloc(s, dup_out_regs, allocated_regs,
|
||||
op->output_pref[0], ots->indirect_base);
|
||||
ots->val_type = TEMP_VAL_REG;
|
||||
ots->mem_coherent = 0;
|
||||
s->reg_to_temp[ots->reg] = ots;
|
||||
}
|
||||
|
||||
|
@ -3823,6 +3822,7 @@ static bool tcg_reg_alloc_dup2(TCGContext *s, const TCGOp *op)
|
|||
return false;
|
||||
|
||||
done:
|
||||
ots->mem_coherent = 0;
|
||||
if (IS_DEAD_ARG(1)) {
|
||||
temp_dead(s, itsl);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue