diff options
author | Eric Botcazou <ebotcazou@adacore.com> | 2011-10-27 18:19:54 +0000 |
---|---|---|
committer | Eric Botcazou <ebotcazou@gcc.gnu.org> | 2011-10-27 18:19:54 +0000 |
commit | 2286a26f57ccfc760cc1582effeda293aae4ec00 (patch) | |
tree | 6b66cc38664e4bc7b4012fcfac787bd432077dd7 | |
parent | 859ed2a79ee502dcc986be3e18f66462a6577cb0 (diff) | |
download | gcc-2286a26f57ccfc760cc1582effeda293aae4ec00.zip gcc-2286a26f57ccfc760cc1582effeda293aae4ec00.tar.gz gcc-2286a26f57ccfc760cc1582effeda293aae4ec00.tar.bz2 |
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
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/reload.c | 8 |
2 files changed, 15 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 1672de9..297192b 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -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 diff --git a/gcc/reload.c b/gcc/reload.c index 307bc3a..7dbc163 100644 --- a/gcc/reload.c +++ b/gcc/reload.c @@ -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)) |