From: Richard Henderson Date: Thu, 28 Oct 1999 19:30:02 +0000 (-0700) Subject: resource.c (find_free_register): Don't use the frame pointer if frame_pointer_needed. X-Git-Tag: prereleases/libstdc++-2.92~9826 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=af05822029866791f4fb4a241ac5f0bc529c09cf;p=thirdparty%2Fgcc.git 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 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 0cee76fe6e4c..5595acc33fb7 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +Thu Oct 28 12:28:50 1999 Richard Henderson + + * resource.c (find_free_register): Don't use the frame pointer + if frame_pointer_needed. + Thu Oct 28 10:02:00 1999 Jim Wilson * 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 335b14e42c91..1dc830f933f4 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--)