Closed Bug 517038 Opened 15 years ago Closed 13 years ago

Any time 0 is multiplied by an integer, we end up taking an OVERFLOW_EXIT (== BRANCH_EXIT for branching purposes and such)

Categories

(Core :: JavaScript Engine, defect)

x86
macOS
defect
Not set
normal

Tracking

()

RESOLVED WONTFIX

People

(Reporter: bzbarsky, Unassigned)

References

Details

Attachments

(1 file)

(deleted), application/x-javascript
Details
Attached file Testcase (deleted) —
The attached testcase hits two OVERFLOW_EXITs and one trace abort, presumably due to this guard in TraceRecorder::alu in the |default| case: if (v == LIR_mul) // make sure we don't lose a -0 guard(false, lir->ins_eq0(result), exit); This causes issues in a real-life testcase that has the following structure (after inlining): function renderLevel(minimumLevel,level,y){ for (var x=0;x<243/level;x++){ node.style.left =(x*level)+'px'; } } In particular, the second time renderLevel is called, we will side-exit the loop with an OVERFLOW_EXIT because the multiplication by x will give 0. I ran into this while looking at bug 424715.
Obsolete with the removal of tracejit.
Status: NEW → RESOLVED
Closed: 13 years ago
Resolution: --- → WONTFIX
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: