Created attachment 400450 [details] [diff] [review] patch This patch: - Adds findSpecificRegForUnallocated(), which is like findSpecificRegFor() but requires that the instruction under consideration not have a register allocated to it, a case which occurs surprisingly often. - Applies it throughout the i386 back-end. - Adds RegAlloc::removeFree(). I originally did this change just for comprehensibility's sake -- ie. findSpecificRegForUnallocated() is *much* simpler than findSpecificRegFor() -- but it also looks like it improves SunSpider times by about 2ms. I'm not sure I trust that, but it's certainly fewer instructions executed so can't hurt.
Attachment #400450 - Flags: review?(edwsmith)
Whiteboard: fixed-in-nanojit → fixed-in-nanojit, fixed-in-tracemonkey
Status: ASSIGNED → RESOLVED
Last Resolved: 9 years ago
Resolution: --- → FIXED
Hi guys. My x86 machine is consistently hitting this added nanoassert: NanoAssert(ins->isUnusedOrHasUnknownReg()); (Assembler.cpp:432) OTOH, my amd64 machine works normally. I'm wondering if this could be a compiler bug, because I'm seeing this problem in my own builds (gcc-4.3.4) but not in the nightlies from mozilla.org (gcc-4.1.1, I believe). Any thoughts? I can post the backtrace if it would be useful. Thanks.
Walter, 34692:515d7e584de6 is a follow-up changeset that fixes the assertion problem.
Thanks for the quick reply. I just pulled again from mozilla-central and I don't see that commit anywhere. (I searched 'hg log' for 515d7 and got nada, and "tip" is now at 34912:168606de059d) Am I looking in the wrong branch of the hg repository? Or the wrong repository? Thanks.
It's in the tracemonkey repo, it hasn't made it to the mozilla-central repo yet. The relevant bug is bug 527874.
You need to log in before you can comment on or make changes to this bug.