aboutsummaryrefslogtreecommitdiff
path: root/tcg/tcg.c
diff options
context:
space:
mode:
authorRichard Henderson <richard.henderson@linaro.org>2022-12-01 00:44:13 -0800
committerRichard Henderson <richard.henderson@linaro.org>2023-01-04 16:20:01 -0800
commit36f5539cfd3f09444657e4c1f6b6b461cea2235f (patch)
tree59947695846cd2bbc16612d523b0f15626ef1131 /tcg/tcg.c
parent7789b16d110af4fbf73310fac8fa4012925928ab (diff)
downloadqemu-36f5539cfd3f09444657e4c1f6b6b461cea2235f.zip
qemu-36f5539cfd3f09444657e4c1f6b6b461cea2235f.tar.gz
qemu-36f5539cfd3f09444657e4c1f6b6b461cea2235f.tar.bz2
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>
Diffstat (limited to 'tcg/tcg.c')
-rw-r--r--tcg/tcg.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/tcg/tcg.c b/tcg/tcg.c
index 05d2b70..371908b 100644
--- a/tcg/tcg.c
+++ b/tcg/tcg.c
@@ -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);
}