[kaffe] mipsel JIT3

Kevin D. Kissell kevink at mips.com
Thu Mar 4 15:33:02 PST 2004

> So this actually doesn't surprise me much: there appear to be bugs in
> the way float parameters are passed (and this, like isNaN, is static,
> so this probably limits the possibilities of what's wrong).

In the period before kaffe 1.1.0, I identified a FP parameter passing
problems in JIT3 for MIPS and fixed them in a couple of different
ways, to the point where the TestNative regression test finally passed,
and looking at my archives, as I posted to the mailing list last May,
someone had checked in one of the effective fixes into kaffe.org.
However, in looking at the CVSweb, it looks as if that fix never
made it into the 1.1.0 tree.  See my emails to the mailing list from March 
to June 2003 (there weren't that many of them).  The minimalist fix
was to flag f12 and f14 as Reserved and not just RFD in mips/jit.h, 
but the other fix, which involved replacing uses of rreg_float and rreg_double
with uses of rreg_ideal_float and rreg_ideal_double in jit3-mips.def , 
would save a lot of useless spills.

1.1.0 was distinctly worse for JIT on MIPS than 1.0.7+.  With
a few fixes to 1.0.7, I was passing most of the regression tests, and
I could even run the embedded Caffeinemark on a MIPSel Linux platform
and get fairly decent performance.  With 1.1.0, things went completely to hell.

More information about the kaffe mailing list