Closed Bug 516348 Opened 16 years ago Closed 16 years ago

nanojit: add findSpecificRegForUnallocated()

Categories

(Core :: JavaScript Engine, defect)

x86
macOS
defect
Not set
normal

Tracking

()

RESOLVED FIXED

People

(Reporter: n.nethercote, Assigned: n.nethercote)

References

Details

(Whiteboard: fixed-in-nanojit, fixed-in-tracemonkey)

Attachments

(1 file)

Attached patch patchSplinter Review
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)
Blocks: 513616
Attachment #400450 - Flags: review?(edwsmith) → review+
Blocks: 515313
Whiteboard: fixed-in-nanojit → fixed-in-nanojit, fixed-in-tracemonkey
Status: ASSIGNED → RESOLVED
Closed: 16 years ago
Resolution: --- → FIXED
Depends on: 528305
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.
Depends on: 529381
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: