aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/expr.c7
2 files changed, 11 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 7a495fa..f1dbb9e 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,7 @@
+2003-06-11 J"orn Rennecke <joern.rennecke@superh.com>
+
+ * expr.c (convert_move): Handle moves between two CONCATs.
+
2003-06-11 Kazu Hirata <kazu@cs.umass.edu>
* config/h8300/h8300.h (RETURN_IN_MEMORY): Accept DImode if
diff --git a/gcc/expr.c b/gcc/expr.c
index 4bcd978..eca5a95 100644
--- a/gcc/expr.c
+++ b/gcc/expr.c
@@ -606,6 +606,13 @@ convert_move (to, from, unsignedp)
return;
}
+ if (GET_CODE (to) == CONCAT && GET_CODE (from) == CONCAT)
+ {
+ convert_move (XEXP (to, 0), XEXP (from, 0), unsignedp);
+ convert_move (XEXP (to, 1), XEXP (from, 1), unsignedp);
+ return;
+ }
+
if (to_real != from_real)
abort ();