Wed, 21 Jul 2004 13:39:13 +0200 (CEST)
An alternative solution, which I use on sparc, is to copy the
arguments which are in the incoming registers to the
/stack locations. See mini-sparc.c for more info.
> -----Original Message-----
> From: firstname.lastname@example.org
> [mailto:email@example.com]On Behalf Of ext
> Sent: Thursday, July 15, 2004 5:19 PM
> To: firstname.lastname@example.org
> Subject: [Mono-list] Tailcall
> The implementation of tailc is quite x86-centric in mini.c.
> It assumes that all parameters are on the stack and by simply
> going back to the previous stack frame then the jump to the
> new routine will have access to the parameters that it wants.
> For architectures where parameters can be in registers as
> well as on the stack then this causes problems. The tailc
> needs to be processed like a normal call so that the
> registers get set up properly but the actual call can be like
> "jmp". I'm not sure what the best approach to fixing this
> Neale Ferguson
> Mono-list maillist - Monoemail@example.com