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
This commit is contained in:
J"orn Rennecke 2005-08-05 16:06:35 +00:00 committed by Joern Rennecke
parent ceb0feb330
commit 50aa8e71b7
2 changed files with 9 additions and 2 deletions

View File

@ -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.

View File

@ -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