]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
integrate.c (expand_inline_function): Accept non-CONCAT arguments for CONCAT paramete...
authorEric Botcazou <ebotcazou@adacore.com>
Fri, 3 Dec 2004 22:32:06 +0000 (22:32 +0000)
committerEric Botcazou <ebotcazou@gcc.gnu.org>
Fri, 3 Dec 2004 22:32:06 +0000 (22:32 +0000)
* integrate.c (expand_inline_function): Accept non-CONCAT arguments
for CONCAT parameters and invoke read_complex_part on them.

From-SVN: r91700

gcc/ChangeLog
gcc/integrate.c

index 7c54d740e0927118e5bd8cb8209997b34016dafd..3a0dadbb365a66c667e3111a9c76bbd0983fb63a 100644 (file)
@@ -1,3 +1,8 @@
+2004-12-03  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * integrate.c (expand_inline_function): Accept non-CONCAT arguments
+       for CONCAT parameters and invoke read_complex_part on them.
+
 2004-12-02  Richard Henderson  <rth@redhat.com>
 
         * expr.c (write_complex_part): Use simplify_gen_subreg when the
index d2e883683f4e96b5513455f8fc3ac2278c6ed6f2..eea11afd8aed6607fa3408d8bac53eec370a3d2e 100644 (file)
@@ -958,12 +958,12 @@ expand_inline_function (tree fndecl, tree parms, rtx target, int ignore,
        }
       else if (GET_CODE (loc) == REG)
        process_reg_param (map, loc, copy);
-      else if (GET_CODE (loc) == CONCAT && GET_CODE (copy) == CONCAT)
+      else if (GET_CODE (loc) == CONCAT)
        {
          rtx locreal = XEXP (loc, 0);
          rtx locimag = XEXP (loc, 1);
-         rtx copyreal = XEXP (copy, 0);
-         rtx copyimag = XEXP (copy, 1);
+         rtx copyreal = read_complex_part (copy, false);
+         rtx copyimag = read_complex_part (copy, true);
 
          process_reg_param (map, locreal, copyreal);
          process_reg_param (map, locimag, copyimag);