aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorDenis Chertykov <denisc@overta.ru>2001-05-19 05:59:52 +0000
committerDenis Chertykov <denisc@gcc.gnu.org>2001-05-19 09:59:52 +0400
commit65599eb413529a0f326f1ef938163fb5e4d5b229 (patch)
tree97a86ce1f4a3594766217671fb4f513f086b1f01 /gcc
parentec54a908e5fdac6ce663157b9cad121e1f593b58 (diff)
downloadgcc-65599eb413529a0f326f1ef938163fb5e4d5b229.zip
gcc-65599eb413529a0f326f1ef938163fb5e4d5b229.tar.gz
gcc-65599eb413529a0f326f1ef938163fb5e4d5b229.tar.bz2
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
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/regrename.c11
2 files changed, 13 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index cc19c90..4595878 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+Sat May 19 09:40:45 2001 Denis Chertykov <denisc@overta.ru>
+
+ * regrename.c (regrename_optimize): frame pointer register can
+ use a few hardregs.
+
2001-05-18 Jason Merrill <jason_merrill@redhat.com>
* README.DWARF: Move into dwarfout.c.
diff --git a/gcc/regrename.c b/gcc/regrename.c
index bad6624..b34e7c5 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
}