-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 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. 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. 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. My suspicion is that the mips code doesn't properly free a register or slot, but I wanted to ask if anyone here has any idea why this situation might come up. Secondly: if I hack slotRegister() to fill in ctype if it is blank, I get further, but then Float.isNaN returns false when given NaN, causing toCharArrayWithPrecision to barf. This has got to be a mips-specific bug. Cheers, - -- 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/> iD8DBQFAR3JbgAuWMgRGsWsRAne2AJ9bfa6V3dP8fvP1okzW7a/+zfGeLgCfSW+Q T5aIRsRZGvFrJeBZUoiWDjI= =el1R -----END PGP SIGNATURE----- _______________________________________________ kaffe mailing list [EMAIL PROTECTED] http://kaffe.org/cgi-bin/mailman/listinfo/kaffe