aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeffrey A Law <law@cygnus.com>1997-09-14 17:11:52 +0000
committerJeff Law <law@gcc.gnu.org>1997-09-14 11:11:52 -0600
commit124da27518339cca241634edd70a89126450c78e (patch)
tree0214d9f8fdef29a473fab27b8099805719c098b9
parentfca9d4b0d440e957007bea1bdf9349a4f933dd8d (diff)
downloadgcc-124da27518339cca241634edd70a89126450c78e.zip
gcc-124da27518339cca241634edd70a89126450c78e.tar.gz
gcc-124da27518339cca241634edd70a89126450c78e.tar.bz2
regmove.c (regmove_optimize): If we end up moving the original insn due to lifetime overlaps...
* regmove.c (regmove_optimize): If we end up moving the original insn due to lifetime overlaps, make sure to move REG_NOTES too. Fixes x86 (and maybe h8) failure. From-SVN: r15435
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/regmove.c4
2 files changed, 10 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 25e632f..1aa7627 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+Sun Sep 14 11:11:05 1997 Jeffrey A Law (law@cygnus.com)
+
+ * regmove.c (regmove_optimize): If we end up moving the
+ original insn due to lifetime overlaps, make sure to move
+ REG_NOTES too.
+
Sat Sep 13 15:51:11 1997 Manfred Hollstein <manfred@s-direktnet.de>
* Makefile.in (INSTALL_{PROGRAM,DATA}): Use value found by configure.
diff --git a/gcc/regmove.c b/gcc/regmove.c
index 1efb9ce..0530780 100644
--- a/gcc/regmove.c
+++ b/gcc/regmove.c
@@ -515,6 +515,8 @@ regmove_optimize (f, nregs, regmove_dump_file)
else
#endif
{
+ rtx notes = REG_NOTES (insn);
+
emit_insn_after_with_line_notes
(pat, PREV_INSN (p), insn);
PUT_CODE (insn, NOTE);
@@ -525,6 +527,8 @@ regmove_optimize (f, nregs, regmove_dump_file)
for the new insn. */
for (insn = p; PATTERN (insn) != pat; )
insn = PREV_INSN (insn);
+
+ REG_NOTES (insn) = notes;
}
}
/* Sometimes we'd generate src = const; src += n;