From 2638126a5db71d18583e3c481658b7e39844694d Mon Sep 17 00:00:00 2001 From: Bernd Schmidt Date: Tue, 2 Jun 1998 21:30:26 +0000 Subject: [PATCH] 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. Re-add patch. From-SVN: r20195 --- gcc/ChangeLog | 5 +++++ gcc/expr.c | 4 ++++ 2 files changed, 9 insertions(+) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index d9955a665bf..1cd5e5b13a4 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +Tue Jun 2 22:28:31 1998 Bernd Schmidt + + * expr.c (emit_move_insn_1): When moving complex values in several + steps, emit a CLOBBER to show the destination dies. + Tue Jun 2 22:17:26 1998 Jeffrey A Law (law@cygnus.com) * expr.c (expand_expr, case ADDR_EXPR): Handle taking the diff --git a/gcc/expr.c b/gcc/expr.c index 2aa514bd994..3370b5d8891 100644 --- a/gcc/expr.c +++ b/gcc/expr.c @@ -2288,6 +2288,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) -- 2.30.2