aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJ"orn Rennecke <joern.rennecke@st.com>2005-08-05 16:06:35 +0000
committerJoern Rennecke <amylaar@gcc.gnu.org>2005-08-05 17:06:35 +0100
commit50aa8e71b7caa281f77b032aa7d8592e77e19b00 (patch)
treefc6e599c62b1cd2005eaff49316676581f18236f
parentceb0feb33026d2d286eec15eb885214aed643f0f (diff)
downloadgcc-50aa8e71b7caa281f77b032aa7d8592e77e19b00.zip
gcc-50aa8e71b7caa281f77b032aa7d8592e77e19b00.tar.gz
gcc-50aa8e71b7caa281f77b032aa7d8592e77e19b00.tar.bz2
re PR middle-end/23135 (find_reloads_toplev -> find_reloads_subreg_address uses wrong reload type)
PR middle-end/23135 * reload.c (find_reloads_subreg_address): Pass down TYPE unchanged. Change all callers except find_reloads_toplev. From-SVN: r102772
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/reload.c5
2 files changed, 9 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index c332799..95076b9 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2005-08-05 J"orn Rennecke <joern.rennecke@st.com>
+
+ PR middle-end/23135
+ * reload.c (find_reloads_subreg_address): Pass down TYPE
+ unchanged. Change all callers except find_reloads_toplev.
+
2005-08-05 Michael Matz <matz@suse.de>
* genattrtab.c (current_alternative_string): Remove.
diff --git a/gcc/reload.c b/gcc/reload.c
index 378db66..c8e8c07 100644
--- a/gcc/reload.c
+++ b/gcc/reload.c
@@ -5804,7 +5804,8 @@ find_reloads_address_1 (enum machine_mode mode, rtx x, int context,
if ((unsigned) CLASS_MAX_NREGS (class, GET_MODE (SUBREG_REG (x)))
> reg_class_size[class])
{
- x = find_reloads_subreg_address (x, 0, opnum, type,
+ x = find_reloads_subreg_address (x, 0, opnum,
+ ADDR_TYPE (type),
ind_levels, insn);
push_reload (x, NULL_RTX, loc, (rtx*) 0, class,
GET_MODE (x), VOIDmode, 0, 0, opnum, type);
@@ -5964,7 +5965,7 @@ find_reloads_subreg_address (rtx x, int force_replace, int opnum,
}
find_reloads_address (GET_MODE (tem), &tem, XEXP (tem, 0),
- &XEXP (tem, 0), opnum, ADDR_TYPE (type),
+ &XEXP (tem, 0), opnum, type,
ind_levels, insn);
/* If this is not a toplevel operand, find_reloads doesn't see