Closed Bug 529218 Opened 16 years ago Closed 15 years ago

nanojit: underrunProtect() fixes for X64 backend

Categories

(Core :: JavaScript Engine, defect)

x86
Linux
defect
Not set
normal

Tracking

()

RESOLVED FIXED

People

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

References

Details

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

Attachments

(2 files)

Attached patch patchSplinter Review
Bug 520712 introduced some underrunProtect() problems in the X64 backend. A follow-up patch fixed one of them, but there are several remaining. This patch fixes all of them, AFAICT, and commons out some code in the process hopefully making things less error-prone. (It also fixes a printf-style compile warning.) I tested this by reducing the size of chunks allocated by codeAlloc to only 128 bytes. After doing that, without this patch, Tracemonkey was fairly crashy and Tamarin was totally crashy; with the patch both were fine, albeit slower than usual. (I tried 64 bytes as well but got assertions in the code allocator, that seems to be Just Too Small.)
Attachment #412778 - Flags: review?(edwsmith)
In case anyone wants to try it out.
Comment on attachment 412778 [details] [diff] [review] patch Nice. In the PPC backend, I introduced a PEDANTIC #define, to enable/disable stuff like this to stress-test various things. (small code chunks, limited registers, large displacements for loads, etc). if you like that pattern, you could tie the codealloc chunk size to PEDANTIC. but totally optional and out of scope for this bug, probably.
Attachment #412778 - Flags: review?(edwsmith) → review+
Whiteboard: fixed-in-nanojit fixed-in-tamarin → fixed-in-nanojit fixed-in-tamarin, fixed-in-tracemonkey
Status: ASSIGNED → RESOLVED
Closed: 15 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: