]> gcc.gnu.org Git - gcc.git/commitdiff
i386.c (ix86_gimplify_va_arg): Also pass the result of type_natural_mode to examine_a...
authorRichard Henderson <rth@redhat.com>
Mon, 27 Dec 2004 03:50:27 +0000 (19:50 -0800)
committerRichard Henderson <rth@gcc.gnu.org>
Mon, 27 Dec 2004 03:50:27 +0000 (19:50 -0800)
        * config/i386/i386.c (ix86_gimplify_va_arg): Also pass the result
        of type_natural_mode to examine_argument.

From-SVN: r92633

gcc/ChangeLog
gcc/config/i386/i386.c

index ef86e1338bfb2712e6c1b5485fa9783aa3e924f8..6d26e5bc3e3e6ec8e0df1ddbf393ee1193290aa0 100644 (file)
@@ -1,3 +1,13 @@
+2004-12-26  Richard Henderson  <rth@redhat.com>
+
+       * config/i386/i386.c (ix86_gimplify_va_arg): Also pass the result
+       of type_natural_mode to examine_argument.
+
+       * config/i386/i386.md (mov<MMXMODEI>_internal_rex64): New.
+       (movv2sf_internal_rex64): New.
+       (mov<MMXMODEI>_internal): Use no register preferences at all.
+       (movv2sf_internal): Likewise.
+
 2004-12-26  Richard Henderson  <rth@redhat.com>
 
        * simplify-rtx.c (simplify_relational_operation_1): Don't simplify
index c146b740132ce7049dad81f84ceeaa1718b183aa..054da85e404137da548c76ea9a2f26d2ab9b6b94 100644 (file)
@@ -3350,6 +3350,7 @@ ix86_gimplify_va_arg (tree valist, tree type, tree *pre_p, tree *post_p)
   rtx container;
   int indirect_p = 0;
   tree ptrtype;
+  enum machine_mode nat_mode;
 
   /* Only 64bit target needs something special.  */
   if (!TARGET_64BIT)
@@ -3372,9 +3373,9 @@ ix86_gimplify_va_arg (tree valist, tree type, tree *pre_p, tree *post_p)
   size = int_size_in_bytes (type);
   rsize = (size + UNITS_PER_WORD - 1) / UNITS_PER_WORD;
 
-  container = construct_container (type_natural_mode (type), TYPE_MODE (type),
-                                  type, 0, REGPARM_MAX, SSE_REGPARM_MAX,
-                                  intreg, 0);
+  nat_mode = type_natural_mode (type);
+  container = construct_container (nat_mode, TYPE_MODE (type), type, 0,
+                                  REGPARM_MAX, SSE_REGPARM_MAX, intreg, 0);
 
   /* Pull the value out of the saved registers.  */
 
@@ -3390,8 +3391,7 @@ ix86_gimplify_va_arg (tree valist, tree type, tree *pre_p, tree *post_p)
       lab_false = create_artificial_label ();
       lab_over = create_artificial_label ();
 
-      examine_argument (TYPE_MODE (type), type, 0,
-                       &needed_intregs, &needed_sseregs);
+      examine_argument (nat_mode, type, 0, &needed_intregs, &needed_sseregs);
 
       need_temp = (!REG_P (container)
                   && ((needed_intregs && TYPE_ALIGN (type) > 64)
This page took 0.095462 seconds and 5 git commands to generate.