]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR target/8407 ([IA-64] ICE in simplify_gen_subreg, at simplify-rtx.c:2711 with...
authorJames E Wilson <wilson@specifixinc.com>
Wed, 3 Dec 2003 19:58:38 +0000 (19:58 +0000)
committerJim Wilson <wilson@gcc.gnu.org>
Wed, 3 Dec 2003 19:58:38 +0000 (11:58 -0800)
PR target/8407
* config/ia64/ia64.c (ia64_function_arg): For single-reg HFA, call
gen_rtx_REG to create new reg with argument mode.

From-SVN: r74241

gcc/ChangeLog
gcc/config/ia64/ia64.c

index e1719167e10ad2716fd072fae8d4f501664c71f5..13d0705a84ed88adf1d9d70d225fd59ff1c7f41a 100644 (file)
@@ -1,3 +1,10 @@
+2003-12-03  James E Wilson  <wilson@specifixinc.com>
+
+       2003-12-01  James E Wilson  <wilson@specifixinc.com>
+       PR target/8407
+       * config/ia64/ia64.c (ia64_function_arg): For single-reg HFA, call
+       gen_rtx_REG to create new reg with argument mode.
+
 2003-12-03  Josef Zlomek  <zlomekj@suse.cz>
 
        Backport from mainline
index 12f3204d95d238c04870a3b44ea2afbd7ef6b7cb..0b1ff2aed88396e6dfe583f3e5a0eef51644c152 100644 (file)
@@ -3434,9 +3434,10 @@ ia64_function_arg (cum, mode, type, named, incoming)
                      ? 1 : GET_MODE_SIZE (gr_mode) / UNITS_PER_WORD;
        }
 
-      /* If we ended up using just one location, just return that one loc.  */
+      /* If we ended up using just one location, just return that one loc, but
+        change the mode back to the argument mode.  */
       if (i == 1)
-       return XEXP (loc[0], 0);
+       return gen_rtx_REG (mode, REGNO (XEXP (loc[0], 0)));
       else
        return gen_rtx_PARALLEL (mode, gen_rtvec_v (i, loc));
     }