Closed
Bug 452884
Opened 18 years ago
Closed 18 years ago
TM: "Assertion failure: (*m != JSVAL_INT) || isInt32(*vp)" with switch
Categories
(Core :: JavaScript Engine, defect)
Tracking
()
RESOLVED
FIXED
People
(Reporter: jruderman, Assigned: dvander)
References
Details
(Keywords: assertion, testcase)
./js -j
js> for (var j=0;j<5;++j) { switch(1.1) { case NaN: case 2: } }
Assertion failed: "Should not move data from GPR to XMM": false (nanojit/Nativei386.cpp:1139)
./js -j
js> for (var j=0;j<5;++j) { switch(1.1) { case 2: case NaN: } }
Assertion failure: (*m != JSVAL_INT) || isInt32(*vp), at jstracer.cpp:1397
(Same assertions as these FIXED bugs: bug 452170, bug 452713.)
| Assignee | ||
Comment 1•18 years ago
|
||
For posterity: Problem here is that the JSOP_CASE and JSOP_CASEX implementations in the recorder don't look at what the interpreter is putting on the stack. The equal() call places a comparison on the tracker, but the interpreter doesn't get a chance to actually update the stack before ifop() is called. This results in a type mismatch and both of these assertions should be related.
| Reporter | ||
Comment 2•18 years ago
|
||
Now I get this instead:
Assertion failed: "need a way to EOT now, since this is trace end": 0 (nanojit/LIR.cpp:868)
| Assignee | ||
Comment 3•18 years ago
|
||
Pushed fix as changeset badf4c84665f.
| Assignee | ||
Updated•18 years ago
|
Status: NEW → RESOLVED
Closed: 18 years ago
Resolution: --- → FIXED
Comment 4•18 years ago
|
||
/cvsroot/mozilla/js/tests/js1_5/Regress/regress-452884-01.js,v <-- regress-452884-01.js
initial revision: 1.1
/cvsroot/mozilla/js/tests/js1_5/Regress/regress-452884-02.js,v <-- regress-452884-02.js
initial revision: 1.1
m-c: changeset: 19312:599eaa25f27e
Flags: in-testsuite+
Flags: in-litmus-
| Reporter | ||
Updated•17 years ago
|
Assignee: general → danderson
You need to log in
before you can comment on or make changes to this bug.
Description
•