aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJ"orn Rennecke <amylaar@cygnus.co.uk>1998-06-18 09:33:39 +0000
committerJoern Rennecke <amylaar@gcc.gnu.org>1998-06-18 10:33:39 +0100
commitf9df0a1d520372d709a60b9cc2f8890e38df6e35 (patch)
tree11397394fc8ba4720b5a53634c9564a2921c2312 /gcc
parent276d5ee0ca27b648187650f1bfeb61b345b5f915 (diff)
downloadgcc-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')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/reload.c4
2 files changed, 8 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 31bc065..f0127ad 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+Thu Jun 18 17:30:39 1998 J"orn Rennecke <amylaar@cygnus.co.uk>
+
+ * reload.c (find_reloads): Don't narrow scope of RELOAD_OTHER to
+ RELOAD_FOR_INSN.
+
Thu Jun 18 09:36:50 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* Makefile.in (c-lang.o): Depend on output.h.
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);