IA-64 structure passing
Jakub Jelinek
jakub@redhat.com
Mon Mar 18 10:26:00 GMT 2002
Hi!
PR 5977 and 5911 show that IA-64 structure passing was broken by
http://gcc.gnu.org/ml/gcc-patches/2002-03/msg00056.html
patch.
I've tried today to fix this by the patch below, but it didn't
even bootstrap.
Wouldn't it be possible to assume argument pointer to be only 8 bytes
aligned if current_function_pretend_args_size != 0 and 16 bytes otherwise?
--- gcc/config/ia64/ia64.h.jj Tue Jan 22 14:15:18 2002
+++ gcc/config/ia64/ia64.h Tue Jan 22 14:15:18 2002
@@ -1087,7 +1087,7 @@ enum reg_class
/* Offset from the argument pointer register to the first
argument's address.
On some machines it may depend on the data type of the function. */
-#define FIRST_PARM_OFFSET(FUNDECL) 0
+#define FIRST_PARM_OFFSET(FUNDECL) (- current_function_pretend_args_size)
/* A C expression whose value is RTL representing the value of the return
address for the frame COUNT steps up from the current frame, after the
Jakub
More information about the Gcc
mailing list