mirror of
https://gcc.gnu.org/git/gcc.git
synced 2025-01-13 14:33:45 +08:00
m68hc11.c (m68hc11_gen_highpart): Don't use gen_highpart.
* config/m68hc11/m68hc11.c (m68hc11_gen_highpart): Don't use gen_highpart. From-SVN: r44206
This commit is contained in:
parent
1c432a87d9
commit
d74e9142ac
@ -1,3 +1,8 @@
|
||||
2001-07-20 Stephane Carrez <Stephane.Carrez@worldnet.fr>
|
||||
|
||||
* config/m68hc11/m68hc11.c (m68hc11_gen_highpart): Don't use
|
||||
gen_highpart.
|
||||
|
||||
2001-07-20 Daniel Berlin <dan@cgsoftware.com>
|
||||
|
||||
* params.def: Change default max inline insns to 100.
|
||||
|
@ -1922,18 +1922,30 @@ m68hc11_gen_highpart (mode, x)
|
||||
}
|
||||
|
||||
/* gen_highpart crashes when it is called with a SUBREG. */
|
||||
if (GET_CODE (x) == SUBREG && SUBREG_BYTE (x) != 0)
|
||||
if (GET_CODE (x) == SUBREG)
|
||||
{
|
||||
return gen_rtx (SUBREG, mode, XEXP (x, 0), XEXP (x, 1));
|
||||
}
|
||||
x = gen_highpart (mode, x);
|
||||
if (GET_CODE (x) == REG)
|
||||
{
|
||||
if (REGNO (x) < FIRST_PSEUDO_REGISTER)
|
||||
return gen_rtx (REG, mode, REGNO (x));
|
||||
else
|
||||
return gen_rtx_SUBREG (mode, x, 0);
|
||||
}
|
||||
|
||||
/* Return a different rtx to avoid to share it in several insns
|
||||
(when used by a split pattern). Sharing addresses within
|
||||
a MEM breaks the Z register replacement (and reloading). */
|
||||
if (GET_CODE (x) == MEM)
|
||||
x = copy_rtx (x);
|
||||
return x;
|
||||
{
|
||||
x = change_address (x, mode, 0);
|
||||
|
||||
/* Return a different rtx to avoid to share it in several insns
|
||||
(when used by a split pattern). Sharing addresses within
|
||||
a MEM breaks the Z register replacement (and reloading). */
|
||||
if (GET_CODE (x) == MEM)
|
||||
x = copy_rtx (x);
|
||||
return x;
|
||||
}
|
||||
abort ();
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user