[kaffe] JIT and JIT3 Floating Point failures on m68k platform
wyattaw at optushome.com.au
Mon May 19 04:47:01 PDT 2003
I'm trying to fix the floating point failures on the Amiga hardware - both
under AmigaOS and under native Linux. The problem is that the JIT engines do
not generate the correct floating point constants in the Constants Pool of
the .class file. The translated Method code and the rest of the .class file
appears to be correct.
For instance, the file "test/regression/DoublePrint.java" or any similar
test prog assigns the value "Float.NaN" to a float variable. However, the
value entered into the Constants Pool (and output to the .class file) is
0x3f400000, rather than the 0x7fc00000 that it should be. The actual value
(0x3f400000) equates to a value of 0.75.
When the compiled class is executed (by the JIT or the interpreter), the
"NaN" value is correctly printed out as "0.75" (it expects "NaN").
Now my question is - where (by which function) is the value "Float.Nan"
evaluated during the compilation of a .java file by the JIT engine? I have
now been looking for some days without finding which function is to blame.
Or is it all performed in kjc? Needless to say, I am using the default kjc.jar
as compiler. But something somewhere is giving different behaviour for
interpreter and JIT.
More information about the kaffe