-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 >>>>> "Timothy" == Timothy Stack <[EMAIL PROTECTED]> writes:
>> Hi, Timothy> hi, >> 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 classes. >> Along the culprit's trail is a call to slotAlias (jit3/machine.c), >> which increments the reference count of reginfo[12], 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> numbers. 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 Float.isNaN(float). >> 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 >> enough. 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 || [EMAIL PROTECTED] -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (GNU/Linux) Comment: Processed by Mailcrypt 3.5.7 <http://mailcrypt.sourceforge.net/> iD8DBQFAR4regAuWMgRGsWsRAop1AJ9wwa3xaVYQkxLnq4NmeDhcuV9uoACfZCm6 7NkTa4Q7m8D0zYa7UVud3b4= =FB+j -----END PGP SIGNATURE----- _______________________________________________ kaffe mailing list [EMAIL PROTECTED] http://kaffe.org/cgi-bin/mailman/listinfo/kaffe