summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDJ Delorie <dj@redhat.com>2005-03-22 22:04:10 -0500
committerDJ Delorie <dj@gcc.gnu.org>2005-03-22 22:04:10 -0500
commit06cd9d722014967a0769f4771edf4a3f3953b087 (patch)
tree4a124f6b7cb1fcf0456b0892e67b160d99b04c1c
parentc5106933db9c5bfd454da9e8cf4f9c578b3c96f5 (diff)
downloadgcc-06cd9d722014967a0769f4771edf4a3f3953b087.tar.gz
optabs.c (expand_binop): Make sure the first subword's result gets stored.
* optabs.c (expand_binop): Make sure the first subword's result gets stored. From-SVN: r96921
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/optabs.c5
2 files changed, 10 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 8f354b5cf2f..61dc2dd4c5c 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2005-03-23 DJ Delorie <dj@redhat.com>
+
+ * optabs.c (expand_binop): Make sure the first subword's result
+ gets stored.
+
2005-03-23 Joseph S. Myers <joseph@codesourcery.com>
* c-common.c (c_common_truthvalue_conversion): Adjust comment.
diff --git a/gcc/optabs.c b/gcc/optabs.c
index 57c3339437b..2a792857fa1 100644
--- a/gcc/optabs.c
+++ b/gcc/optabs.c
@@ -1534,6 +1534,11 @@ expand_binop (enum machine_mode mode, optab binoptab, rtx op0, rtx op1,
}
emit_move_insn (target_piece, newx);
}
+ else
+ {
+ if (x != target_piece)
+ emit_move_insn (target_piece, x);
+ }
carry_in = carry_out;
}