mips.c (mips_build_va_list): Correct TREE_CHAIN setting when hard-float.
authorGeoff Keating <geoffk@cygnus.com>
Mon, 11 Oct 1999 03:35:14 +0000 (03:35 +0000)
committerGeoffrey Keating <geoffk@gcc.gnu.org>
Mon, 11 Oct 1999 03:35:14 +0000 (03:35 +0000)
* config/mips/mips.c (mips_build_va_list): Correct
TREE_CHAIN setting when hard-float.
(mips_va_start): Use corrected setting.
(mips_va_arg): Likewise.  Also pass a tree to build of
POSTINCREMENT_EXPR rather than a naked 'int'.

From-SVN: r29898

gcc/ChangeLog
gcc/config/mips/mips.c

index 0386a21..888a886 100644 (file)
@@ -1,3 +1,11 @@
+Mon Oct 11 13:29:06 1999  Geoffrey Keating  <geoffk@cygnus.com>
+
+       * config/mips/mips.c (mips_build_va_list): Correct
+       TREE_CHAIN setting when hard-float.
+       (mips_va_start): Use corrected setting.
+       (mips_va_arg): Likewise.  Also pass a tree to build of
+       POSTINCREMENT_EXPR rather than a naked 'int'.
+
 Sun Oct 10 18:27:27 1999  Mark Mitchell  <mark@codesourcery.com>
 
        * ggc.h (ggc_push_context): Fix comment.
index c846ac6..0828489 100644 (file)
@@ -4025,7 +4025,7 @@ mips_build_va_list ()
 
       TYPE_FIELDS (record) = f_fpr;
       TREE_CHAIN (f_fpr) = f_rem;
-      TREE_CHAIN (f_gpr) = f_gpr;
+      TREE_CHAIN (f_rem) = f_gpr;
 
       layout_type (record);
 
@@ -4059,7 +4059,7 @@ mips_va_start (stdarg_p, valist, nextarg)
 
          f_fpr = TYPE_FIELDS (va_list_type_node);
          f_rem = TREE_CHAIN (f_fpr);
-         f_gpr = TREE_CHAIN (f_gpr);
+         f_gpr = TREE_CHAIN (f_rem);
 
          fpr = build (COMPONENT_REF, TREE_TYPE (f_fpr), valist, f_fpr);
          rem = build (COMPONENT_REF, TREE_TYPE (f_rem), valist, f_rem);
@@ -4168,7 +4168,7 @@ mips_va_arg (valist, type)
 
          f_fpr = TYPE_FIELDS (va_list_type_node);
          f_rem = TREE_CHAIN (f_fpr);
-         f_gpr = TREE_CHAIN (f_gpr);
+         f_gpr = TREE_CHAIN (f_rem);
 
          fpr = build (COMPONENT_REF, TREE_TYPE (f_fpr), valist, f_fpr);
          rem = build (COMPONENT_REF, TREE_TYPE (f_rem), valist, f_rem);
@@ -4218,7 +4218,7 @@ mips_va_arg (valist, type)
          expand_expr (t, const0_rtx, VOIDmode, EXPAND_NORMAL);
        }
 
-      t = build (POSTINCREMENT_EXPR, TREE_TYPE (gpr), gpr, rsize);
+      t = build (POSTINCREMENT_EXPR, TREE_TYPE (gpr), gpr, size_int (rsize));
       TREE_SIDE_EFFECTS (t) = 1;
       r = expand_expr (t, addr_rtx, Pmode, EXPAND_NORMAL);
       if (r != addr_rtx)