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