re PR rtl-optimization/46603 (gcc.dg/vect/slp-multitypes-2.c execution failure)

PR rtl-optimization/46603
	PR bootstrap/50879
	* reload.c (push_reload): In the out case, restore previous behavior
	for subregs that don't have word mode.

From-SVN: r180572
This commit is contained in:
Eric Botcazou 2011-10-27 18:19:54 +00:00 committed by Eric Botcazou
parent 859ed2a79e
commit 2286a26f57
2 changed files with 15 additions and 0 deletions

View File

@ -1,3 +1,10 @@
2011-10-27 Eric Botcazou <ebotcazou@adacore.com>
PR rtl-optimization/46603
PR bootstrap/50879
* reload.c (push_reload): In the out case, restore previous behavior
for subregs that don't have word mode.
2011-10-27 Ian Lance Taylor <iant@google.com>
* cppdefault.c: Undef NATIVE_SYSTEM_HEADER_DIR if

View File

@ -1140,6 +1140,14 @@ push_reload (rtx in, rtx out, rtx *inloc, rtx *outloc,
/ UNITS_PER_WORD)))
#endif
))
|| (REG_P (SUBREG_REG (out))
&& REGNO (SUBREG_REG (out)) < FIRST_PSEUDO_REGISTER
/* The case of a word mode subreg
is handled differently in the following statement. */
&& ! (GET_MODE_SIZE (outmode) <= UNITS_PER_WORD
&& (GET_MODE_SIZE (GET_MODE (SUBREG_REG (out)))
> UNITS_PER_WORD))
&& ! HARD_REGNO_MODE_OK (subreg_regno (out), outmode))
|| (secondary_reload_class (0, rclass, outmode, out) != NO_REGS
&& (secondary_reload_class (0, rclass, GET_MODE (SUBREG_REG (out)),
SUBREG_REG (out))