diff options
author | J"orn Rennecke <amylaar@cygnus.co.uk> | 1998-06-18 09:33:39 +0000 |
---|---|---|
committer | Joern Rennecke <amylaar@gcc.gnu.org> | 1998-06-18 10:33:39 +0100 |
commit | f9df0a1d520372d709a60b9cc2f8890e38df6e35 (patch) | |
tree | 11397394fc8ba4720b5a53634c9564a2921c2312 /gcc/reload.c | |
parent | 276d5ee0ca27b648187650f1bfeb61b345b5f915 (diff) | |
download | gcc-f9df0a1d520372d709a60b9cc2f8890e38df6e35.zip gcc-f9df0a1d520372d709a60b9cc2f8890e38df6e35.tar.gz gcc-f9df0a1d520372d709a60b9cc2f8890e38df6e35.tar.bz2 |
reload.c (find_reloads): Don't narrow scope of RELOAD_OTHER to RELOAD_FOR_INSN.
* reload.c (find_reloads): Don't narrow scope of RELOAD_OTHER to
RELOAD_FOR_INSN.
From-SVN: r20559
Diffstat (limited to 'gcc/reload.c')
-rw-r--r-- | gcc/reload.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/gcc/reload.c b/gcc/reload.c index 172fa67..a8908a9 100644 --- a/gcc/reload.c +++ b/gcc/reload.c @@ -3574,11 +3574,13 @@ find_reloads (insn, replace, ind_levels, live_known, reload_reg_p) a SCRATCH). In this case, we only need have the reload live through the insn itself, but not for any of our input or output reloads. + But we must not accidentally narrow the scope of an existing + RELOAD_OTHER reload - leave these alone. In any case, anything needed to address this operand can remain however they were previously categorized. */ - if (goal_alternative_earlyclobber[i]) + if (goal_alternative_earlyclobber[i] && operand_type[i] != RELOAD_OTHER) operand_type[i] = (find_reg_note (insn, REG_UNUSED, recog_operand[i]) ? RELOAD_FOR_INSN : RELOAD_OTHER); |