From af05822029866791f4fb4a241ac5f0bc529c09cf Mon Sep 17 00:00:00 2001 From: Richard Henderson Date: Thu, 28 Oct 1999 12:30:02 -0700 Subject: [PATCH] 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 --- gcc/ChangeLog | 5 +++++ gcc/resource.c | 4 ++++ 2 files changed, 9 insertions(+) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 0cee76fe6e4..5595acc33fb 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 335b14e42c9..1dc830f933f 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--) -- 2.30.2