hasting2 02/08/30 09:34:26
Modified: gcc Tag: dizzy-kitty-branch expr.c
Log:
Fix for 3015029. Will be superceded by FSF/rth patch on 29aug2002.
Revision Changes Path
No revision
No revision
1.50.8.1 +12 -0 gcc3/gcc/expr.c
Index: expr.c
===================================================================
RCS file: /cvs/Darwin/gcc3/gcc/expr.c,v
retrieving revision 1.50
retrieving revision 1.50.8.1
diff -u -r1.50 -r1.50.8.1
--- expr.c 2002/05/14 00:48:04 1.50
+++ expr.c 2002/08/30 16:34:25 1.50.8.1
@@ -3359,6 +3359,8 @@
#endif /* PUSH_ROUNDING */
{
rtx target;
+ /* APPLE LOCAL passing big structs by value */
+ int saved_ACCUMULATE_OUTGOING_ARGS;
/* Otherwise make space on the stack and copy the data
to the address of that space. */
@@ -3458,6 +3460,11 @@
}
}
+ /* APPLE LOCAL start passing big structs by value */
+ saved_ACCUMULATE_OUTGOING_ARGS = ACCUMULATE_OUTGOING_ARGS;
+ target_flags &= ~MASK_ACCUMULATE_OUTGOING_ARGS;
+ /* APPLE LOCAL end passing big structs by value */
+
if (!ACCUMULATE_OUTGOING_ARGS)
{
/* If the source is referenced relative to the stack pointer,
@@ -3487,6 +3494,11 @@
TYPE_MODE (integer_type_node));
#endif
OK_DEFER_POP;
+
+ /* APPLE LOCAL start passing big structs by value */
+ if (saved_ACCUMULATE_OUTGOING_ARGS)
+ target_flags |= MASK_ACCUMULATE_OUTGOING_ARGS;
+ /* APPLE LOCAL end passing big structs by value */
}
}
else if (partial > 0)