aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Kenner <kenner@vlsi1.ultra.nyu.edu>2001-12-15 23:00:00 +0000
committerRichard Kenner <kenner@gcc.gnu.org>2001-12-15 18:00:00 -0500
commitf79a65c0870717e4f66fcc204b434aed182d4316 (patch)
treeb14ba91649818f4412dce925a0216bc09c169979 /gcc
parentb0287a9034ba44e3a3dae9728a765ab1e03e5450 (diff)
downloadgcc-f79a65c0870717e4f66fcc204b434aed182d4316.zip
gcc-f79a65c0870717e4f66fcc204b434aed182d4316.tar.gz
gcc-f79a65c0870717e4f66fcc204b434aed182d4316.tar.bz2
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
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/calls.c7
2 files changed, 10 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index abed16b..1717d7f 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+Sat Dec 15 17:53:03 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
+
+ * calls.c (emit_call_1): If ECF_SP_DEPRESSED, pretend have adjusted
+ for rounded_stack_size.
+
2001-12-15 Joseph S. Myers <jsm28@cam.ac.uk>
* c-typeck.c, config/i386/i386.h, config/mcore/mcore.h,
diff --git a/gcc/calls.c b/gcc/calls.c
index c7f5d99..6a22820 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