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>
This commit is contained in:
Richard Henderson 2014-06-08 18:24:14 -07:00
parent d279279e2b
commit bc8d688ff3
1 changed files with 4 additions and 5 deletions

View File

@ -911,12 +911,11 @@ static TCGArg *tcg_constant_folding(TCGContext *s, uint16_t *tcg_opc_ptr,
break; break;
} }
/* 32-bit ops (non 64-bit ops and non load/store ops) generate /* 32-bit ops generate 32-bit results. For the result is zero test
32-bit results. For the result is zero test below, we can below, we can ignore high bits, but for further optimizations we
ignore high bits, but for further optimizations we need to need to record that the high bits contain garbage. */
record that the high bits contain garbage. */
partmask = mask; partmask = mask;
if (!(def->flags & (TCG_OPF_CALL_CLOBBER | TCG_OPF_64BIT))) { if (!(def->flags & TCG_OPF_64BIT)) {
mask |= ~(tcg_target_ulong)0xffffffffu; mask |= ~(tcg_target_ulong)0xffffffffu;
partmask &= 0xffffffffu; partmask &= 0xffffffffu;
affected &= 0xffffffffu; affected &= 0xffffffffu;