[kaffe] More mipsel jit3

Kevin D. Kissell kevink at mips.com
Tue Mar 9 10:45:03 PST 2004

> Kevin> One question about that: Did you implement those operations
> Kevin> because you thought it would be good for performance, or did
> Kevin> you have the impression that the JIT was failing because of
> Kevin> their absence?  They did not seem to be broken when I was
> Kevin> working on jit3 under 1.0.7/1.0.8.  There are a number of
> Kevin> possible jit3 optimizations for MIPS that I noted when I was
> Kevin> working on it (though of course I no longer remember what they
> Kevin> were- sigh), but I'd suggest getting things working correctly
> Kevin> before launching into any optimization campaign!
> Even so, it actually was helpful. I am pretty sure now that the
> problem is with how parameters are being passed to soft_
> functions. The fp comparisons failed (it looks like) because the
> parameters to soft_fcmpl (etc...) were not being called with proper
> arguments. With that out of the way now that this is being done in
> assembler, the call to soft_anewarray fails for a similar reason (you
> can trace this in the constructor to HashMap -- it failed for me first
> at the check of loadFactor, and now fails when the buckets are
> created).
> So now the bug appears to be pretty specific: C functions provided
> internally by Kaffe are not being called properly.

That's not at all surprising.  The trickiest thing that I had to fix to get
the kaffe interpreter working for MIPS was to fix the calling convention
stuff.  Argument passing in MIPS *is* pretty baroque, and worse,
there are variants that we'll have to deal with when we try to support
64-bit MIPS/Linux with kaffe.   Do you have decent documentation
on the MIPS ABI?  I've probably got some ancient documents in
electronic format around here somewhere.  If you've got Dom Sweetman's
"See MIPS Run" (recommended reading for MIPS hackers everywhere),
it's covered pretty well in chapter 10.


            Kevin K.

More information about the kaffe mailing list