Alex, Thanks for the information about Intel64 conventions for long mode. I spoke losely and inaccurately below. I am the collector of the development items, not the originator of all items :-) It may be a good idea to write a short document describing the calling conventions we support on various platforms and add this to our list of JIT docs. Calling conventions affect both JIT and core VM and clearly stating them is useful. It is also one of the first things one may want to know about how the jit works.
Thanks, Rana
On 10/17/06, Alex Astapchuk <[EMAIL PROTECTED]> wrote: > > A small correction: > > > Currently the IA-32 and Intel-64 CG uses calling conventions > > that pass all parameters on stack. > > Stack-only is about IA-32 calling convention. > Intel64 CG generates a calling convention as per SystemV ABI > recommendations [1]. > This is a variant of fastcall with 6 GP registers and 8 XMM registers > used for arguments passing. > > > > Also, all used calling conventions require returning > > FP values in x87 register stack and > > Again, only on IA-32. Intel64 code returns float-point values on XMM0. > > > do not support callee-saved SSE registers while all > > FP arithmetic is done using SSE/SSE2. > > That's correct. > No convention currently used supports callee-saved XMMs... > > > [1] http://refspecs.freestandards.org/elf/x86_64-SysV-psABI.pdf > > -- > Thanks, > Alex > > >