[kaffe] mips jit3 bug
inaba at src.ricoh.co.jp
Wed Sep 15 18:51:00 PDT 2010
Even we have long silence on the list, someone may continue some effort
to improve kaffe...
For this summer, my SOC (summer of code) was to tackle arm jit3 code.
# Oh, this topic is same as the last summer :-)
Of course, the released version has a workable jit3 code for this arch,
if you think even no 'global registers' are defined ;-<
But while trying to determine why it does not work, I installed qemu for
mips and noticed mips-jit3 also does not work. So actually, I spent long
time to find out why mips code does not work properly.
Still, I can not print 'Hello World' by using the first regression test,
but 'verbosejit' flag (which can be the easiest way to see how many methods
are jit-compiled and executed) tells me so many methods becomes to be able
to be compiled.
I put diff's against official 1.1.8 release (rather than the latest 1.1.9)
on 'http://www.kaffe.org/~inaba/kaffe-1.1.8-0915.patch' and if you are
interested, please see what I did.
There are three fixes I did
1) Trampoline code are modified incorrectly. A guy forgot mips needs
delayed slot when you call subrouting. I reverted to older version.
2) Conversion routine are modified inproperly. If you need cvtif or
something, you have to think proper return value register. I reverted
to older version.
3) When you have exceptions, 'callee saved' registers shall be restored
from callee method's stack. But original code handles it differently.
And I have no smarter and generic way to handle this situation for
the time being, the patched version restored the contents by VERY VERY
ugly way. I hesitate to put this 'fix' back to the repository and
this is the main reason I just let you know on the ML.
Since, 'HelloWorldApp.main' method are jit-compiled by this mod, I hope
we may have only one more bug before we can display the 'Hello World' on
mips with jit3 technology.
More information about the kaffe