From 65599eb413529a0f326f1ef938163fb5e4d5b229 Mon Sep 17 00:00:00 2001 From: Denis Chertykov Date: Sat, 19 May 2001 05:59:52 +0000 Subject: [PATCH] regrename.c (regrename_optimize): frame pointer register can use a few hardregs. * regrename.c (regrename_optimize): frame pointer register can use a few hardregs. From-SVN: r42305 --- gcc/ChangeLog | 5 +++++ gcc/regrename.c | 11 ++++++++--- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index cc19c90c9ba..4595878f930 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +Sat May 19 09:40:45 2001 Denis Chertykov + + * regrename.c (regrename_optimize): frame pointer register can + use a few hardregs. + 2001-05-18 Jason Merrill * README.DWARF: Move into dwarfout.c. diff --git a/gcc/regrename.c b/gcc/regrename.c index bad6624f59d..b34e7c56b51 100644 --- a/gcc/regrename.c +++ b/gcc/regrename.c @@ -1,5 +1,5 @@ /* Register renaming for the GNU compiler. - Copyright (C) 2000 Free Software Foundation, Inc. + Copyright (C) 2000, 2001 Free Software Foundation, Inc. This file is part of GNU CC. @@ -219,9 +219,14 @@ regrename_optimize () /* Don't clobber traceback for noreturn functions. */ if (frame_pointer_needed) { - SET_HARD_REG_BIT (unavailable, FRAME_POINTER_REGNUM); + int i; + + for (i = HARD_REGNO_NREGS (FRAME_POINTER_REGNUM, Pmode); i--;) + SET_HARD_REG_BIT (unavailable, FRAME_POINTER_REGNUM + i); + #if FRAME_POINTER_REGNUM != HARD_FRAME_POINTER_REGNUM - SET_HARD_REG_BIT (unavailable, HARD_FRAME_POINTER_REGNUM); + for (i = HARD_REGNO_NREGS (HARD_FRAME_POINTER_REGNUM, Pmode); i--;) + SET_HARD_REG_BIT (unavailable, HARD_FRAME_POINTER_REGNUM + i); #endif }