summaryrefslogtreecommitdiff
path: root/tcg
diff options
context:
space:
mode:
authorRichard Henderson <rth@twiddle.net>2014-06-08 18:24:14 -0700
committerRichard Henderson <rth@twiddle.net>2014-06-18 11:39:02 -0700
commitbc8d688ff3c164fa717a0411e77621d590c87e3f (patch)
tree45c0f5386525f6a0c739f4b8ab4731f96b4c316e /tcg
parentd279279e2b5cd40dbcc863fb66a695990f304077 (diff)
downloadqemu-bc8d688ff3c164fa717a0411e77621d590c87e3f.tar.gz
tcg/optimize: Don't special case TCG_OPF_CALL_CLOBBER
With the "old" ldst ops we didn't know the real width of the result of the load, but with the "new" ldst ops we do. Signed-off-by: Richard Henderson <rth@twiddle.net>
Diffstat (limited to 'tcg')
-rw-r--r--tcg/optimize.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/tcg/optimize.c b/tcg/optimize.c
index 16cebbe16d..34ae3c2857 100644
--- a/tcg/optimize.c
+++ b/tcg/optimize.c
@@ -911,12 +911,11 @@ static TCGArg *tcg_constant_folding(TCGContext *s, uint16_t *tcg_opc_ptr,
break;
}
- /* 32-bit ops (non 64-bit ops and non load/store ops) generate
- 32-bit results. For the result is zero test below, we can
- ignore high bits, but for further optimizations we need to
- record that the high bits contain garbage. */
+ /* 32-bit ops generate 32-bit results. For the result is zero test
+ below, we can ignore high bits, but for further optimizations we
+ need to record that the high bits contain garbage. */
partmask = mask;
- if (!(def->flags & (TCG_OPF_CALL_CLOBBER | TCG_OPF_64BIT))) {
+ if (!(def->flags & TCG_OPF_64BIT)) {
mask |= ~(tcg_target_ulong)0xffffffffu;
partmask &= 0xffffffffu;
affected &= 0xffffffffu;