* expr.c (move_by_pieces_1): Extend size before negation.
authorRichard Henderson <rth@redhat.com>
Thu, 24 Jan 2002 01:16:23 +0000 (17:16 -0800)
committerRichard Henderson <rth@gcc.gnu.org>
Thu, 24 Jan 2002 01:16:23 +0000 (17:16 -0800)
From-SVN: r49158

gcc/ChangeLog
gcc/expr.c

index 624aa13e1cb4509437d52b91cd9a67b2de5080de..ff158440aedbb2f54d49f4f976b61f853278784b 100644 (file)
@@ -1,3 +1,7 @@
+2002-01-23  Richard Henderson  <rth@redhat.com>
+
+       * expr.c (move_by_pieces_1): Extend size before negation.
+
 2002-01-23  Bob Wilson  <bob.wilson@acm.org>
 
        * config/xtensa/elf.h: New file.
index bad461ef066d2f39f2f29089aed2cd75abe502db..06914206ae7f7ef0c391afbdeb1cd945dc6f201c 100644 (file)
@@ -1575,9 +1575,11 @@ move_by_pieces_1 (genfun, mode, data)
        from1 = adjust_address (data->from, mode, data->offset);
 
       if (HAVE_PRE_DECREMENT && data->explicit_inc_to < 0)
-       emit_insn (gen_add2_insn (data->to_addr, GEN_INT (-size)));
+       emit_insn (gen_add2_insn (data->to_addr,
+                                 GEN_INT (-(HOST_WIDE_INT)size)));
       if (HAVE_PRE_DECREMENT && data->explicit_inc_from < 0)
-       emit_insn (gen_add2_insn (data->from_addr, GEN_INT (-size)));
+       emit_insn (gen_add2_insn (data->from_addr,
+                                 GEN_INT (-(HOST_WIDE_INT)size)));
 
       if (data->to)
        emit_insn ((*genfun) (to1, from1));