(push_secondary_reload): If X is a paradoxical SUBREG, get mode and
thing to reload from inside. From-SVN: r10283
This commit is contained in:
parent
e5cfb88fc9
commit
67340b0310
1 changed files with 10 additions and 0 deletions
10
gcc/reload.c
10
gcc/reload.c
|
@ -356,6 +356,16 @@ push_secondary_reload (in_p, x, opnum, optional, reload_class, reload_mode,
|
||||||
|
|
||||||
*picode = CODE_FOR_nothing;
|
*picode = CODE_FOR_nothing;
|
||||||
|
|
||||||
|
/* If X is a paradoxical SUBREG, use the inner value to determine both the
|
||||||
|
mode and object being reloaded. */
|
||||||
|
if (GET_CODE (x) == SUBREG
|
||||||
|
&& (GET_MODE_SIZE (GET_MODE (x))
|
||||||
|
> GET_MODE_SIZE (GET_MODE (SUBREG_REG (x)))))
|
||||||
|
{
|
||||||
|
x = SUBREG_REG (x);
|
||||||
|
reload_mode = GET_MODE (x);
|
||||||
|
}
|
||||||
|
|
||||||
/* If X is a pseudo-register that has an equivalent MEM (actually, if it
|
/* If X is a pseudo-register that has an equivalent MEM (actually, if it
|
||||||
is still a pseudo-register by now, it *must* have an equivalent MEM
|
is still a pseudo-register by now, it *must* have an equivalent MEM
|
||||||
but we don't want to assume that), use that equivalent when seeing if
|
but we don't want to assume that), use that equivalent when seeing if
|
||||||
|
|
Loading…
Add table
Reference in a new issue