+2006-07-06 David Edelsohn <edelsohn@gnu.org>
+
+ PR target/28150
+ * config/rs6000/rs6000.c (rs6000_legitimate_address): Do not allow
+ PRE_{INC,DEC} of TFmode.
+
+2006-07-06 David Edelsohn <edelsohn@gnu.org>
+ Alan Modra <amodra@bigpond.net.au>
+
+ PR target/28170
+ * config/rs6000/rs6000.c (insvdi_rshift_rlwimi_p): Correct shiftop
+ bounds. Simplify.
+
2006-07-06 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
PR target/28285
if ((GET_CODE (x) == PRE_INC || GET_CODE (x) == PRE_DEC)
&& !ALTIVEC_VECTOR_MODE (mode)
&& !SPE_VECTOR_MODE (mode)
+ && mode != TFmode
/* Restrict addressing for DI because of our SUBREG hackery. */
&& !(TARGET_E500_DOUBLE && (mode == DFmode || mode == DImode))
&& TARGET_UPDATE
int
insvdi_rshift_rlwimi_p (rtx sizeop, rtx startop, rtx shiftop)
{
- if (INTVAL (startop) < 64
- && INTVAL (startop) > 32
- && (INTVAL (sizeop) + INTVAL (startop) < 64)
- && (INTVAL (sizeop) + INTVAL (startop) > 33)
- && (INTVAL (sizeop) + INTVAL (startop) + INTVAL (shiftop) < 96)
- && (INTVAL (sizeop) + INTVAL (startop) + INTVAL (shiftop) >= 64)
+ if (INTVAL (startop) > 32
+ && INTVAL (startop) < 64
+ && INTVAL (sizeop) > 1
+ && INTVAL (sizeop) + INTVAL (startop) < 64
+ && INTVAL (shiftop) > 0
+ && INTVAL (sizeop) + INTVAL (shiftop) < 32
&& (64 - (INTVAL (shiftop) & 63)) >= INTVAL (sizeop))
return 1;