From f79a65c0870717e4f66fcc204b434aed182d4316 Mon Sep 17 00:00:00 2001 From: Richard Kenner Date: Sat, 15 Dec 2001 23:00:00 +0000 Subject: [PATCH] calls.c (emit_call_1): If ECF_SP_DEPRESSED, pretend have adjusted for rounded_stack_size. * calls.c (emit_call_1): If ECF_SP_DEPRESSED, pretend have adjusted for rounded_stack_size. From-SVN: r48049 --- gcc/ChangeLog | 5 +++++ gcc/calls.c | 7 +++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index abed16bef59..1717d7f4e35 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +Sat Dec 15 17:53:03 2001 Richard Kenner + + * calls.c (emit_call_1): If ECF_SP_DEPRESSED, pretend have adjusted + for rounded_stack_size. + 2001-12-15 Joseph S. Myers * c-typeck.c, config/i386/i386.h, config/mcore/mcore.h, diff --git a/gcc/calls.c b/gcc/calls.c index c7f5d994cab..6a228201f8f 100644 --- a/gcc/calls.c +++ b/gcc/calls.c @@ -646,9 +646,12 @@ emit_call_1 (funexp, fndecl, funtype, stack_size, rounded_stack_size, If returning from the subroutine does pop the args, indicate that the stack pointer will be changed. */ - if (rounded_stack_size != 0 && ! (ecf_flags & ECF_SP_DEPRESSED)) + if (rounded_stack_size != 0) { - if (flag_defer_pop && inhibit_defer_pop == 0 + if (ecf_flags & ECF_SP_DEPRESSED) + /* Just pretend we did the pop. */ + stack_pointer_delta -= rounded_stack_size; + else if (flag_defer_pop && inhibit_defer_pop == 0 && ! (ecf_flags & (ECF_CONST | ECF_PURE))) pending_stack_adjust += rounded_stack_size; else -- 2.30.2