summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBernd Schmidt <crux@ohara.Informatik.RWTH-Aachen.DE>1998-02-22 19:44:08 +0000
committerJeff Law <law@gcc.gnu.org>1998-02-22 12:44:08 -0700
commit6afaaa98053b41647d6b39385b2bbd897d1c9407 (patch)
treeac9123fbe55e5f400f0b3c7454f89deac6532ec9
parentffaffba589a38db746b1edaac0d174fe5f1358b0 (diff)
downloadgcc-6afaaa98053b41647d6b39385b2bbd897d1c9407.tar.gz
expr.c (emit_move_insn_1): When moving complex values in several steps...
* expr.c (emit_move_insn_1): When moving complex values in several steps, emit a CLOBBER to show the destination dies. From-SVN: r18192
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/expr.c4
2 files changed, 9 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index a55b878250b..8dfec412117 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+Sun Feb 22 20:46:31 1998 Bernd Schmidt <crux@ohara.Informatik.RWTH-Aachen.DE>
+
+ * expr.c (emit_move_insn_1): When moving complex values in several
+ steps, emit a CLOBBER to show the destination dies.
+
Sun Feb 22 20:06:34 1998 Jim Wilson <wilson@cygnus.com>
* iris5.h (DWARF2_UNWIND_INFO): Define to 0.
diff --git a/gcc/expr.c b/gcc/expr.c
index 02ce45fe9fb..75eda425397 100644
--- a/gcc/expr.c
+++ b/gcc/expr.c
@@ -2259,6 +2259,10 @@ emit_move_insn_1 (x, y)
}
else
{
+ /* Show the output dies here. */
+ if (x != y)
+ emit_insn (gen_rtx_CLOBBER (VOIDmode, x));
+
emit_insn (GEN_FCN (mov_optab->handlers[(int) submode].insn_code)
(gen_realpart (submode, x), gen_realpart (submode, y)));
emit_insn (GEN_FCN (mov_optab->handlers[(int) submode].insn_code)