summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPeter Maydell2015-07-27 20:37:09 +0200
committerPeter Maydell2015-07-27 20:37:09 +0200
commitf8787f8723eaca1be99e3b1873e54de163fffa93 (patch)
tree88ca67e85245317476d34ce55260232a22b7009c
parentmain-loop: fix qemu_notify_event for aio_notify optimization (diff)
parenttcg: mark temps as mem_coherent = 0 for mov with a constant (diff)
downloadqemu-f8787f8723eaca1be99e3b1873e54de163fffa93.tar.gz
qemu-f8787f8723eaca1be99e3b1873e54de163fffa93.tar.xz
qemu-f8787f8723eaca1be99e3b1873e54de163fffa93.zip
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. */