]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
optabs.c (expand_binop): In multi-word add cases, ensure XTARGET is copied to TARGET...
authorRichard Kenner <kenner@vlsi1.ultra.nyu.edu>
Tue, 15 Apr 2003 13:06:58 +0000 (13:06 +0000)
committerRichard Kenner <kenner@gcc.gnu.org>
Tue, 15 Apr 2003 13:06:58 +0000 (09:06 -0400)
* optabs.c (expand_binop): In multi-word add cases, ensure
XTARGET is copied to TARGET if they are different.

From-SVN: r65632

gcc/ChangeLog
gcc/optabs.c

index 092ae7cc8c1a042e53028db1ad930dbfb31c9dfc..4c375c0b8c6e7529e575b0966e3d616e801796fc 100644 (file)
@@ -1,3 +1,8 @@
+2003-04-15  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * optabs.c (expand_binop): In multi-word add cases, ensure
+       XTARGET is copied to TARGET if they are different.
+
 2003-04-15  Olivier Hainque <hainque@act-europe.fr>
 
        * except.c (resolve_fixup_regions): Avoid dereferencing null pointer
index 59f714714e01f5966e5eb5881bf2bdbb4b6f9f9c..f57c81448dd3500d9a3d2eb2c2b738beeb794c95 100644 (file)
@@ -1299,7 +1299,8 @@ expand_binop (mode, binoptab, op0, op1, target, unsignedp, methods)
 
       if (i == GET_MODE_BITSIZE (mode) / (unsigned) BITS_PER_WORD)
        {
-         if (mov_optab->handlers[(int) mode].insn_code != CODE_FOR_nothing)
+         if (mov_optab->handlers[(int) mode].insn_code != CODE_FOR_nothing
+             || ! rtx_equal_p (target, xtarget))
            {
              rtx temp = emit_move_insn (target, xtarget);