diff options
| -rw-r--r-- | gcc/ChangeLog | 5 | ||||
| -rw-r--r-- | gcc/regrename.c | 6 |
2 files changed, 11 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index b5937f0..2ab8703 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2001-05-14 Mark Mitchell <mark@codesourcery.com> + + * regrename.c (regrename_optimize): Do not rename registers to + leaf registers. + 2001-05-14 Alexandre Oliva <aoliva@redhat.com> * rtl.texi (CALL_INSN_FUNCTION_USAGE): Note that (and when) it may diff --git a/gcc/regrename.c b/gcc/regrename.c index ae25e21..bad6624 100644 --- a/gcc/regrename.c +++ b/gcc/regrename.c @@ -292,6 +292,12 @@ regrename_optimize () /* Can't use regs which aren't saved by the prologue. */ || (! regs_ever_live[new_reg + i] && ! call_used_regs[new_reg + i]) +#ifdef LEAF_REGISTERS + /* We can't use a non-leaf register if we're in a + leaf function. */ + || (current_function_is_leaf + && !LEAF_REGISTERS[new_reg + i]) +#endif #ifdef HARD_REGNO_RENAME_OK || ! HARD_REGNO_RENAME_OK (reg + i, new_reg + i) #endif |
