stack pointer adjustment problem
Joern Rennecke
amylaar@cambridge.redhat.com
Mon Feb 26 16:14:00 GMT 2001
> the reason i want to do such a thing is this: i've been working on
> implementing proper tail calls. to this end i had to implement a new
> calling convention in which the callee pops the arguments. on most
> risc machines, like the alpha, space for outgoing arguments is
> allocated in the prologue of the caller. now, if a function with the
> new calling convention is called (without the call being a proper tail
> call), the stack pointer is modified when the function returns. this
> modification (the popping of the arguments by the callee) has to be
> reverted.
How about explicitly setting the stack pointer to ints new value in
the call insn?
E.g. for call_value:
(call_insn (parallel [(set (reg foo) (call ...))
(set (sp) (plus (sp) (const_int bar)))]))
More information about the Gcc
mailing list