diff options
author | Ulrich Weigand <uweigand@de.ibm.com> | 2002-04-10 17:56:02 +0000 |
---|---|---|
committer | Ulrich Weigand <uweigand@gcc.gnu.org> | 2002-04-10 17:56:02 +0000 |
commit | 2f460a0a57bb984d7159f7d40f4cf8724da907ca (patch) | |
tree | 6554b57f5818e4bb7dc50d8933ac6ec89e8552d1 /gcc/reload1.c | |
parent | 6127eac4bdeb3bdd7c03831880a64b3b4a3be34e (diff) | |
download | gcc-2f460a0a57bb984d7159f7d40f4cf8724da907ca.zip gcc-2f460a0a57bb984d7159f7d40f4cf8724da907ca.tar.gz gcc-2f460a0a57bb984d7159f7d40f4cf8724da907ca.tar.bz2 |
reload1.c (choose_reload_regs): HARD_FRAME_POINTER_REGNUM is only used as frame pointer when...
* reload1.c (choose_reload_regs): HARD_FRAME_POINTER_REGNUM
is only used as frame pointer when frame_pointer_needed is true.
From-SVN: r52140
Diffstat (limited to 'gcc/reload1.c')
-rw-r--r-- | gcc/reload1.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/gcc/reload1.c b/gcc/reload1.c index c36799f..cf807af 100644 --- a/gcc/reload1.c +++ b/gcc/reload1.c @@ -5565,6 +5565,7 @@ choose_reload_regs (chain) && ! TEST_HARD_REG_BIT (reg_reloaded_dead, i)) /* Don't clobber the frame pointer. */ || (i == HARD_FRAME_POINTER_REGNUM + && frame_pointer_needed && rld[r].out) /* Don't really use the inherited spill reg if we need it wider than we've got it. */ @@ -5735,7 +5736,9 @@ choose_reload_regs (chain) /* If we found an equivalent reg, say no code need be generated to load it, and use it as our reload reg. */ - if (equiv != 0 && regno != HARD_FRAME_POINTER_REGNUM) + if (equiv != 0 + && (regno != HARD_FRAME_POINTER_REGNUM + || !frame_pointer_needed)) { int nr = HARD_REGNO_NREGS (regno, rld[r].mode); int k; |