aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJ"orn Rennecke <joern.rennecke@superh.com>2003-06-11 12:32:47 +0000
committerJoern Rennecke <amylaar@gcc.gnu.org>2003-06-11 13:32:47 +0100
commit06765df19545ddb8ce0eded8bf58fd73a2a5b92e (patch)
treeb95824f1a8d1d2416d03022a8177024dfc0b84d0
parentcf874806a6c277bc1e61131f94645db282915dc3 (diff)
downloadgcc-06765df19545ddb8ce0eded8bf58fd73a2a5b92e.zip
gcc-06765df19545ddb8ce0eded8bf58fd73a2a5b92e.tar.gz
gcc-06765df19545ddb8ce0eded8bf58fd73a2a5b92e.tar.bz2
* expr.c (convert_move): Handle moves between two CONCATs.
From-SVN: r67760
-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 ();