This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Patch for varargs handling on MIPS in hard-float.



This made my tree somewhat happier.

-- 
Geoffrey Keating <geoffk@cygnus.com>

===File ~/patches/cygnus/tx49-egcs-vararg.patch=============
md5sum: 3fe0bd7ce737a285 4f3bf43688c1a37c 324913
Index: egcs/gcc/ChangeLog
0a
Sun Oct 10 15:22:34 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'.

.
Changed files:
egcs/gcc/ChangeLog
egcs/gcc/cstamp-h.in
egcs/gcc/config/mips/mips.c
md5sum: 1ded054093de910d 1ded054093de910d 10
md5sum: 2068e4519a71950a e6c97e89f4025b2f 262379
--- /sloth/disk0/co/egcs-mainline/egcs/gcc/config/mips/mips.c	Sun Oct 10 13:02:30 1999
+++ egcs/gcc/config/mips/mips.c	Sun Oct 10 16:55:28 1999
@@ -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)
============================================================


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]