summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Maydell <peter.maydell@linaro.org>2015-07-27 19:37:09 +0100
committerPeter Maydell <peter.maydell@linaro.org>2015-07-27 19:37:09 +0100
commitf8787f8723eaca1be99e3b1873e54de163fffa93 (patch)
tree88ca67e85245317476d34ce55260232a22b7009c
parentedec47cfef96209987cb7922286cb384916aae02 (diff)
parentbbeb82395eaca0e3c38b433b2d2a5bad4a5fbd81 (diff)
downloadqemu-f8787f8723eaca1be99e3b1873e54de163fffa93.tar.gz
Merge remote-tracking branch 'remotes/rth/tags/pull-tcg-20150727' into staging
Fix buglets for 2.4 # gpg: Signature made Mon Jul 27 15:26:48 2015 BST using RSA key ID 4DD0279B # gpg: Good signature from "Richard Henderson <rth7680@gmail.com>" # gpg: aka "Richard Henderson <rth@redhat.com>" # gpg: aka "Richard Henderson <rth@twiddle.net>" * remotes/rth/tags/pull-tcg-20150727: tcg: mark temps as mem_coherent = 0 for mov with a constant tcg: correctly mark dead inputs for mov with a constant Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
-rw-r--r--tcg/tcg.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/tcg/tcg.c b/tcg/tcg.c
index 7e088b1f28..0892a9bbf6 100644
--- a/tcg/tcg.c
+++ b/tcg/tcg.c
@@ -1894,6 +1894,7 @@ static void tcg_reg_alloc_mov(TCGContext *s, const TCGOpDef *def,
ts->mem_coherent = 1;
} else if (ts->val_type == TEMP_VAL_CONST) {
tcg_out_movi(s, itype, ts->reg, ts->val);
+ ts->mem_coherent = 0;
}
s->reg_to_temp[ts->reg] = args[1];
ts->val_type = TEMP_VAL_REG;
@@ -1920,6 +1921,9 @@ static void tcg_reg_alloc_mov(TCGContext *s, const TCGOpDef *def,
}
ots->val_type = TEMP_VAL_CONST;
ots->val = ts->val;
+ if (IS_DEAD_ARG(1)) {
+ temp_dead(s, args[1]);
+ }
} else {
/* The code in the first if block should have moved the
temp to a register. */