Dietmar Maurer dietmar@ximian.com
03 Oct 2002 19:10:21 +0200

On Thu, 2002-10-03 at 17:12, Ferguson, Neale wrote:
> When you're trampoline is invoked and the routine to be called returns a
> structure what do you return to the caller of the trampoline? For S/390 when
> you are returned a structure, you pass a hidden parameter to the callee
> which points to an area on the stack it can use to return the data. So I
> make room on the stack, point (in S/390's case) R2 to it and call the
> routine. On return that area contains what I'd expect. Now, how do I return
> this information to my caller (which has passed me a pointer to retval)? I
> thought I'd move the structure from the stack to the area addressed by
> retval but, apparently, that's not correct. Do the other architectures
> simply use retval as the "hidden" parameter so the caller puts the data
> directly there?

yes. X86 has the same calling convention, so you can take a look on the
current code how that is implemented (jit.c line 2201, impl. of CALL

- Dietmar