diff options
author | Richard Henderson <rth@cygnus.com> | 1999-10-28 12:30:02 -0700 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 1999-10-28 12:30:02 -0700 |
commit | af05822029866791f4fb4a241ac5f0bc529c09cf (patch) | |
tree | b83ed4b521e7a4fa9b38e5cd033b00687073f073 /gcc | |
parent | c9fc373cf093aa8e63a225a38a033bd961806d75 (diff) | |
download | gcc-af05822029866791f4fb4a241ac5f0bc529c09cf.zip gcc-af05822029866791f4fb4a241ac5f0bc529c09cf.tar.gz gcc-af05822029866791f4fb4a241ac5f0bc529c09cf.tar.bz2 |
resource.c (find_free_register): Don't use the frame pointer if frame_pointer_needed.
* resource.c (find_free_register): Don't use the frame pointer
if frame_pointer_needed.
From-SVN: r30246
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/resource.c | 4 |
2 files changed, 9 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 0cee76f..5595acc 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +Thu Oct 28 12:28:50 1999 Richard Henderson <rth@cygnus.com> + + * resource.c (find_free_register): Don't use the frame pointer + if frame_pointer_needed. + Thu Oct 28 10:02:00 1999 Jim Wilson <wilson@cygnus.com> * config/mips/mips.c (mips_va_arg): Delete gen_jump as emit_jump arg. diff --git a/gcc/resource.c b/gcc/resource.c index 335b14e..1dc830f 100644 --- a/gcc/resource.c +++ b/gcc/resource.c @@ -1261,6 +1261,10 @@ find_free_register (current_insn, last_insn, class_str, mode, reg_set) /* And that we don't create an extra save/restore. */ if (! call_used_regs[regno] && ! regs_ever_live[regno]) continue; + /* And we don't clobber traceback for noreturn functions. */ + if ((regno == FRAME_POINTER_REGNUM || regno == HARD_FRAME_POINTER_REGNUM) + && (! reload_completed || frame_pointer_needed)) + continue; success = 1; for (j = HARD_REGNO_NREGS (regno, mode) - 1; j >= 0; j--) |