[kaffe] mipsel JIT3
rsdio at metastatic.org
Thu Mar 4 12:02:02 PST 2004
-----BEGIN PGP SIGNED MESSAGE-----
>>>>> "Timothy" == Timothy Stack <stack at cs.utah.edu> writes:
>> I've started hacking around the JIT3 sources, and have found at
>> least the first point of failure: spill() in jit3/register.c is
>> being called in such a way that reginfo[s->regno].ctype is 0,
>> i.e. it's type field is unset. This causes an immediate ABORT
>> because there is (obviously) no way to spill an untyped
>> register. s->regno has always been 12 when this happens, and this
>> is the first time this register is ever spilled.
Timothy> What method is being jitted? Does the MIPS jitter pass all
Timothy> of the tests in the test/internal directory?
java.lang.Float.toString. I can't seem to get jitBasic to staticly
link, and thusfar all errors appear when kaffe is loading the core
>> Along the culprit's trail is a call to slotAlias (jit3/machine.c),
>> which increments the reference count of reginfo, but leaves the
>> ctype field untouched, so when that register is requested
>> (push_float does this) it will be incorrectly spilled.
Timothy> Hmm, I'm a little concerned that the register set
Timothy> specification (REGISTER_SET in jit.h) is not quite right.
Timothy> Specifically, the regno fields are not unique, but the jitter
Timothy> is using them as an index into reginfo. Looking at the
Timothy> other jitters, I see both cases:
Timothy> The ARM and MIPS ones reuses the regno numbers. The i386,
Timothy> alpha, m68k, powerpc, and probably a few others use unique
Timothy> The safest bet is probably to renumber them and make sure any
Timothy> code that outputs floating point does the correct thing.
I tried that (I changed the regno fields to go from 0 to 63) and I get
a bus error. If this really is the solution then there are some other
bugs. With these register infos changed the failure happens at
>> So far I can't tell whether or not this is the fault of the
>> mips-specific code, since I can't really get a stack trace far back
Timothy> This isn't really related, but are you using the xdebugging
Timothy> infrastructure (see FAQ/FAQ.xdebugging)? I've found it quite
Timothy> helpful when working on the jitter.
The GDB I am using isn't entirely functional, and so far everything
I've been using needs to be staticly linked.
Casey Marshall || rsdio at metastatic.org
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.3 (GNU/Linux)
Comment: Processed by Mailcrypt 3.5.7 <http://mailcrypt.sourceforge.net/>
-----END PGP SIGNATURE-----
More information about the kaffe