reload1.c (choose_reload_regs): When inheriting from the frame pointer, don't clobber it.
authorJ"orn Rennecke <amylaar@cygnus.co.uk>
Wed, 10 Mar 1999 10:59:54 +0000 (10:59 +0000)
committerJoern Rennecke <amylaar@gcc.gnu.org>
Wed, 10 Mar 1999 10:59:54 +0000 (10:59 +0000)
* reload1.c (choose_reload_regs): When inheriting from the frame
pointer, don't clobber it.

From-SVN: r25669

gcc/ChangeLog
gcc/reload1.c

index eeb5e185c7a96780fc6c320605d858a624580efe..f69c8304991d551e435705d2c0e320f82213f0bd 100644 (file)
@@ -1,3 +1,8 @@
+Wed Mar 10 18:56:31 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
+
+       * reload1.c (choose_reload_regs): When inheriting from the frame
+       pointer, don't clobber it.
+
 Wed Mar 10 08:01:52 1999  Bruce Korb <korb@datadesign.com>
 
        * fixinc/fixinc.*: Resync-ed with the files in this
index df62341c2cf2d22493e0ea089303c3c769c1a694..910961408cdbeebfb2368d461d2d4493e7235692 100644 (file)
@@ -5930,6 +5930,9 @@ choose_reload_regs (chain)
                              || (TEST_HARD_REG_BIT (reg_used_in_insn, i)
                                  && reload_out[r]
                                  && ! TEST_HARD_REG_BIT (reg_reloaded_dead, i))
+                             /* Don't clobber the frame pointer.  */
+                             || (i == HARD_FRAME_POINTER_REGNUM
+                                 && reload_out[r])
                              /* Don't really use the inherited spill reg
                                 if we need it wider than we've got it.  */
                              || (GET_MODE_SIZE (reload_mode[r])