I was on vacation a little while ago and my DNS provider had a brief failure. Some mail bounced, and as a result, I was unsubscribed from this list. I am now replying to the mail that I missed (read from the archives). Re: why does Kaffe need to respect callee-save registers. For kaffe->kaffe calls, it must respect the Kaffe JIT convention, whatever that may be. sysdepCallMethod must perform any necessary bridging between the C and JIT calling conventions, including saving callee-save registers if Kaffe does not. My point was, Kaffe is NOT directly compatible with C for this reason. Bridging must be used. Since we are NOT compatible with C, we are free to do whatever we please. And that means that we can return floating point results in fp0 on NetBSD, even though the C libraries don't. When Kaffe JIT code calls a JNI function, does the JNI bridge do anything special about floating-point? Re: Can you point to a specific example of where kaffe doesn't respect the callee-save registers convention? On the M68K, for NetBSD at least, d2-d7/a2-a5 are callee-save. The C compiler expects that any values it places in these registers will be preserved across a function call. Since Kaffe clobbers these registers, unless some arrangement is made to save them, the VM will fail. Indeed this is what was happening when java.lang.Runtime was being initialized. Re: versions of gas: There is no such thing as "native as and gas for netbsd". NetBSD uses gas as its native assembler. If a NetBSD user downloads gas, configures it for a different syntax, then installs it as `as' and Kaffe fails, then the user deserves to lose. :-) In any case, can we take a definitive decision on how JIT code is to return floating-point results on the M68K, for all OSes? I want to know so I can go ahead and do the fixes for NetBSD as well as Linux, and test them.