Closed Bug 477228 Opened 16 years ago Closed 16 years ago

Attempting to modify read-only Number.NEGATIVE_INFINITY crashes vm

Categories

(Tamarin Graveyard :: Baseline JIT (CodegenLIR), defect, P3)

ARM
Windows Mobile 6 Professional
defect

Tracking

(Not tracked)

VERIFIED FIXED
flash10.1

People

(Reporter: brbaker, Assigned: rreitmai)

References

Details

Attachments

(2 files)

ecma3/Number/e15_7_3_5_3_rt should produce a runtime error that you can't write to a ready-only property but instead is now crashing the VM. This is a nanojit issue as it produces the proper error when running in -Dinterp Number.NEGATIVE_INFINITY=0;
Flags: in-testsuite+
Flags: flashplayer-triage+
Flags: flashplayer-qrb?
Added expectedfail to the acceptance/testconfig.txt (1407:0c0f3cf40ad0)
Assignee: nobody → edwsmith
Status: NEW → ASSIGNED
Flags: flashplayer-qrb? → flashplayer-qrb+
Priority: -- → P3
Target Milestone: --- → flash10.x
not a blocking issue for 469836; arm nanojit is new so this is not a regression for this platform.
No longer blocks: 469836
Assignee: edwsmith → rreitmai
Blocks: 478870
not easy to isolate out of test scripts...
Agreed, issue is NOT with Number.NEGATIVE_INFINITY=0; but is some combination in the entire abc file. I can run chunks of the test no problem, but running the entire thing on ARM with the JIT is crashing, but using -Dinterp will execute properly....
Turns out that we were releasing the stack slot prior to obtaining the temp register for the load portion of asm_mmq(). A subsequent findRegFor() triggered a spill (since all regs were used in this example; hence we now see why it was hard to repro) and the same stack slot was given for the spill instruction. Blamo! Moving the release of the stack slot to the bottom of the method clears up the issue, although technically we can probably just free the used register. Better to be more conservative for now.
Attachment #367139 - Flags: review?(edwsmith)
In the course of debugging this issue, I cleaned up printActivationState() so it actually works and also tweaked the jitmax code so that it takes an optional range of methods to be jit'd. So you can now specify things like -jitmax 2- or -jitmax 5-6 or -jitmax -5. Both of which proved quite handy in tracking the bug down.
Attachment #367140 - Flags: review?(edwsmith)
Comment on attachment 367139 [details] [diff] [review] ver 1 - fix for bug please add your comments for the attachment into the code (adjusted so a month from now we'll know whats going on in the code)
Attachment #367139 - Flags: review?(edwsmith) → review+
Attachment #367140 - Flags: review?(edwsmith) → review+
pushed dbb0fa875f22: bug 477228 (ARM jit) and jitmax enhancements - rev 1593
Status: ASSIGNED → RESOLVED
Closed: 16 years ago
Resolution: --- → FIXED
Blocks: 473392
Removed the expected fail, pushed as 1596:74e23e3686ef
Status: RESOLVED → VERIFIED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: