From 550fd0fce50a489dedacc128c7a5c84b15c05e11 Mon Sep 17 00:00:00 2001 From: rth Date: Thu, 28 Oct 1999 19:30:02 +0000 Subject: [PATCH] * resource.c (find_free_register): Don't use the frame pointer if frame_pointer_needed. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@30246 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog | 5 +++++ gcc/resource.c | 4 ++++ 2 files changed, 9 insertions(+) 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 + + * 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 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--) -- 2.7.4