PREFERRED_STACK_BOUNDARY/function calling code fix
Jan Hubicka
hubicka@atrey.karlin.mff.cuni.cz
Wed Mar 1 03:43:00 GMT 2000
> Hi
>
> Here's a test case which aborts on x86 with this patch installed
>
> Compile with -O1 or above
>
> Graham
This patch ought to fix our problem.
The do_pending_stack_adjustments wasn't doing right job (or job I expected)
with defer_pop set.
OK to install?
Wed Mar 1 12:39:28 MET 2000 Jan Hubicka <jh@suse.cz>
* calls.c (expand_call) Do not attempt to combine stack adjustments
with inhibit_defer_pop set.
Index: egcs/gcc/calls.c
===================================================================
RCS file: /cvs/gcc/egcs/gcc/calls.c,v
retrieving revision 1.86
diff -c -3 -p -r1.86 calls.c
*** calls.c 2000/03/01 00:01:31 1.86
--- calls.c 2000/03/01 11:38:43
*************** expand_call (exp, target, ignore)
*** 2280,2286 ****
{
/* When the stack adjustment is pending,
we get better code by combining the adjustments. */
! if (pending_stack_adjust && !is_const)
{
args_size.constant = (unadjusted_args_size
+ ((pending_stack_adjust + args_size.constant
--- 2280,2287 ----
{
/* When the stack adjustment is pending,
we get better code by combining the adjustments. */
! if (pending_stack_adjust && !is_const
! && !inhibit_defer_pop)
{
args_size.constant = (unadjusted_args_size
+ ((pending_stack_adjust + args_size.constant
More information about the Gcc-patches
mailing list