diff options
author | Joseph Myers <joseph@codesourcery.com> | 2008-07-19 12:14:13 +0100 |
---|---|---|
committer | Joseph Myers <jsm28@gcc.gnu.org> | 2008-07-19 12:14:13 +0100 |
commit | ea471af0b8ecd3979665da8c74f120963254c5cd (patch) | |
tree | 3ea13d8ae72f15d919974c9c7f445f4112ff2f24 /gcc/reload.c | |
parent | fa8884d805ef576b616dbaf062eb882b80efb467 (diff) | |
download | gcc-ea471af0b8ecd3979665da8c74f120963254c5cd.zip gcc-ea471af0b8ecd3979665da8c74f120963254c5cd.tar.gz gcc-ea471af0b8ecd3979665da8c74f120963254c5cd.tar.bz2 |
re PR target/36780 (Wrong reload generated for subreg address on SH)
PR target/36780
PR target/36827
* reload.c (find_reloads_subreg_address): Only reload address if
reloaded == 0, not for reloaded != 1.
Revert:
2008-07-16 Joseph Myers <joseph@codesourcery.com>
* config/m32c/m32c.c (BIG_FB_ADJ): Move definition earlier.
(m32c_legitimate_address_p): Handle "++rii" addresses created by
m32c_legitimize_reload_address.
2008-07-15 Kaz Kojima <kkojima@gcc.gnu.org>
* config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Allow
(plus (plus (reg) (const_int)) (const_int)) when reload_in_progress.
From-SVN: r137976
Diffstat (limited to 'gcc/reload.c')
-rw-r--r-- | gcc/reload.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/reload.c b/gcc/reload.c index a391c45..a6ea4ff 100644 --- a/gcc/reload.c +++ b/gcc/reload.c @@ -6103,7 +6103,7 @@ find_reloads_subreg_address (rtx x, int force_replace, int opnum, doesn't find any, then we may have just converted a valid address into an invalid one. Check for that here. */ - if (reloaded != 1 + if (reloaded == 0 && !strict_memory_address_p (GET_MODE (tem), XEXP (tem, 0))) push_reload (XEXP (tem, 0), NULL_RTX, &XEXP (tem, 0), (rtx*) 0, |