Commit 600a5d88 by Richard Kenner

(gen_rtx, case REG): Don't use frame_pointer_rtx or arg_pointer_rtx if

reload is in progress.

From-SVN: r1758
parent 0782cd71
...@@ -271,15 +271,21 @@ gen_rtx (va_alist) ...@@ -271,15 +271,21 @@ gen_rtx (va_alist)
If we have eliminated the frame pointer or arg pointer, we will If we have eliminated the frame pointer or arg pointer, we will
be using it as a normal register, for example as a spill register. be using it as a normal register, for example as a spill register.
In such cases, we might be accessing it in a mode that is not In such cases, we might be accessing it in a mode that is not
Pmode and therefore cannot use the pre-allocated rtx. */ Pmode and therefore cannot use the pre-allocated rtx.
if (frame_pointer_rtx && regno == FRAME_POINTER_REGNUM && mode == Pmode) Also don't do this when we are making new REGs in reload,
since we don't want to get confused with the real pointers. */
if (frame_pointer_rtx && regno == FRAME_POINTER_REGNUM && mode == Pmode
&& ! reload_in_progress)
return frame_pointer_rtx; return frame_pointer_rtx;
#if FRAME_POINTER_REGNUM != ARG_POINTER_REGNUM #if FRAME_POINTER_REGNUM != ARG_POINTER_REGNUM
if (arg_pointer_rtx && regno == ARG_POINTER_REGNUM && mode == Pmode) if (arg_pointer_rtx && regno == ARG_POINTER_REGNUM && mode == Pmode
&& ! reload_in_progress)
return arg_pointer_rtx; return arg_pointer_rtx;
#endif #endif
if (stack_pointer_rtx && regno == STACK_POINTER_REGNUM && mode == Pmode) if (stack_pointer_rtx && regno == STACK_POINTER_REGNUM && mode == Pmode
&& ! reload_in_progress)
return stack_pointer_rtx; return stack_pointer_rtx;
else else
{ {
......
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