diff options
author | Denis Chertykov <denisc@overta.ru> | 2001-05-19 05:59:52 +0000 |
---|---|---|
committer | Denis Chertykov <denisc@gcc.gnu.org> | 2001-05-19 09:59:52 +0400 |
commit | 65599eb413529a0f326f1ef938163fb5e4d5b229 (patch) | |
tree | 97a86ce1f4a3594766217671fb4f513f086b1f01 /gcc | |
parent | ec54a908e5fdac6ce663157b9cad121e1f593b58 (diff) | |
download | gcc-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/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/regrename.c | 11 |
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 } |