Commit 26ecfc76 by Richard Kenner

(subst, case SUBREG): Don't make a new REG for stack, frame, or arg

pointer.

From-SVN: r2381
parent d9983d6c
...@@ -2900,10 +2900,16 @@ subst (x, from, to, in_dest, unique_copy) ...@@ -2900,10 +2900,16 @@ subst (x, from, to, in_dest, unique_copy)
/* SUBREG of a hard register => just change the register number /* SUBREG of a hard register => just change the register number
and/or mode. If the hard register is not valid in that mode, and/or mode. If the hard register is not valid in that mode,
suppress this combination. */ suppress this combination. If the hard register is the stack,
frame, or argument pointer, leave this as a SUBREG. */
if (GET_CODE (SUBREG_REG (x)) == REG if (GET_CODE (SUBREG_REG (x)) == REG
&& REGNO (SUBREG_REG (x)) < FIRST_PSEUDO_REGISTER) && REGNO (SUBREG_REG (x)) < FIRST_PSEUDO_REGISTER
&& REGNO (SUBREG_REG (x)) != FRAME_POINTER_REGNUM
#if FRAME_POINTER_REGNUM != ARG_POINTER_REGNUM
&& REGNO (SUBREG_REG (x)) != ARG_POINTER_REGNUM
#endif
&& REGNO (SUBREG_REG (x)) != STACK_POINTER_REGNUM)
{ {
if (HARD_REGNO_MODE_OK (REGNO (SUBREG_REG (x)) + SUBREG_WORD (x), if (HARD_REGNO_MODE_OK (REGNO (SUBREG_REG (x)) + SUBREG_WORD (x),
mode)) mode))
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment