This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: Const/libcall function calling tweeks
- To: Jan Hubicka <hubicka at atrey dot karlin dot mff dot cuni dot cz>
- Subject: Re: Const/libcall function calling tweeks
- From: Richard Henderson <rth at cygnus dot com>
- Date: Wed, 8 Mar 2000 14:13:02 -0800
- Cc: egcs-patches at egcs dot cygnus dot com
- References: <20000307150708.D9876@atrey.karlin.mff.cuni.cz>
On Tue, Mar 07, 2000 at 03:07:08PM +0100, Jan Hubicka wrote:
> The expand_call calls NO_DEFER_POP for the const functions.
> I don't see any purpose for doing that, since this only affects
> the nested function calls in the arguments.
Err.. It shouldn't. What's is intended is that the bits in between
the REG_LIBCALL and the REG_RETVAL be self-contained. If we don't
turn on NO_DEFER_POP, the stack adjustment will be dependant on the
context of the surrounding calls.
Of course, I'm quite certain we also get this wrong for stack
alignment to nested calls. Yep, just tested it.
All this is quite ugly. I'm wondering if it wouldn't be simpler to
just give up and un-nest calls before expansion.
r~