On Sun, Oct 04, 2009 at 03:31:57PM +0100, David Chisnall wrote:
> A few of these are expected fails.

Okay. Are the expected failures documented somewhere? I somehow figure
that the unexpected fails are at least the *Boxing tests.

> Those that are not are the result of ABI mismatch (calling functions
> with the wrong calling convention).  You can fix this quite easily by
> adding the correct values for x86-64 to ABI.h in LanguageKit; the
> slight catch is that I have no idea what the correct values are, but
> hopefully you can work it out using the power of guesswork...

The x86_64 ABI documentation is available online [0]. But the
conventions for passing arguments are a bit beyond me. (There is an
algorithm to be followed in order to determine whether you need to pass
a structure on the stack, but it's to late tonight for me to grok that.)
At least I think I could successfully determine that you use 6 registers
for passing integers and 8 for passing floats. Also setting
SMALL_FLOAT_STRUCTS_ON_STACK and PASS_STRUCTS_AS_POINTER to 'true' (just
guessing) seems to improve things, but still fails for some boxing tests
(i.e. NS(Range|Rect)).
Anyways: Thanks for the pointer. I think I know where I need to be
heading...

Cheers,


Niels

[0] http://www.x86-64.org/documentation.html

_______________________________________________
Etoile-dev mailing list
Etoile-dev@gna.org
https://mail.gna.org/listinfo/etoile-dev

Reply via email to