Title: [146263] trunk
- Revision
- 146263
- Author
- mhahnenb...@apple.com
- Date
- 2013-03-19 14:49:34 -0700 (Tue, 19 Mar 2013)
Log Message
Crash in SpeculativeJIT::fillSpeculateIntInternal<false> on http://bellard.org/jslinux
https://bugs.webkit.org/show_bug.cgi?id=112738
Reviewed by Filip Pizlo.
Source/_javascript_Core:
* dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixIntEdge): We shouldn't be killing this node because it could be
referenced by other people.
LayoutTests:
* fast/js/dfg-rshift-by-zero-eliminate-valuetoint32-expected.txt: Added.
* fast/js/dfg-rshift-by-zero-eliminate-valuetoint32.html: Added.
* fast/js/script-tests/dfg-rshift-by-zero-eliminate-valuetoint32.js: Added.
(f):
Modified Paths
Added Paths
Diff
Modified: trunk/LayoutTests/ChangeLog (146262 => 146263)
--- trunk/LayoutTests/ChangeLog 2013-03-19 21:45:52 UTC (rev 146262)
+++ trunk/LayoutTests/ChangeLog 2013-03-19 21:49:34 UTC (rev 146263)
@@ -1,3 +1,15 @@
+2013-03-19 Mark Hahnenberg <mhahnenb...@apple.com>
+
+ Crash in SpeculativeJIT::fillSpeculateIntInternal<false> on http://bellard.org/jslinux
+ https://bugs.webkit.org/show_bug.cgi?id=112738
+
+ Reviewed by Filip Pizlo.
+
+ * fast/js/dfg-rshift-by-zero-eliminate-valuetoint32-expected.txt: Added.
+ * fast/js/dfg-rshift-by-zero-eliminate-valuetoint32.html: Added.
+ * fast/js/script-tests/dfg-rshift-by-zero-eliminate-valuetoint32.js: Added.
+ (f):
+
2013-03-19 Dean Jackson <d...@apple.com>
Allow PlugIn Snapshotting to be tested
Added: trunk/LayoutTests/fast/js/dfg-rshift-by-zero-eliminate-valuetoint32-expected.txt (0 => 146263)
--- trunk/LayoutTests/fast/js/dfg-rshift-by-zero-eliminate-valuetoint32-expected.txt (rev 0)
+++ trunk/LayoutTests/fast/js/dfg-rshift-by-zero-eliminate-valuetoint32-expected.txt 2013-03-19 21:49:34 UTC (rev 146263)
@@ -0,0 +1,1009 @@
+Tests that right shifting by zero and then doing other bitops doesn't eliminate the ValueToInt32 node.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS f() is undefined
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
Added: trunk/LayoutTests/fast/js/dfg-rshift-by-zero-eliminate-valuetoint32.html (0 => 146263)
--- trunk/LayoutTests/fast/js/dfg-rshift-by-zero-eliminate-valuetoint32.html (rev 0)
+++ trunk/LayoutTests/fast/js/dfg-rshift-by-zero-eliminate-valuetoint32.html 2013-03-19 21:49:34 UTC (rev 146263)
@@ -0,0 +1,10 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+<head>
+<script src=""
+</head>
+<body>
+<script src=""
+<script src=""
+</body>
+</html>
Added: trunk/LayoutTests/fast/js/script-tests/dfg-rshift-by-zero-eliminate-valuetoint32.js (0 => 146263)
--- trunk/LayoutTests/fast/js/script-tests/dfg-rshift-by-zero-eliminate-valuetoint32.js (rev 0)
+++ trunk/LayoutTests/fast/js/script-tests/dfg-rshift-by-zero-eliminate-valuetoint32.js 2013-03-19 21:49:34 UTC (rev 146263)
@@ -0,0 +1,15 @@
+description(
+"Tests that right shifting by zero and then doing other bitops doesn't eliminate the ValueToInt32 node."
+);
+
+global = 32;
+
+function f() {
+ var Ha, fa;
+ Ha = global >> 0;
+ fa = Ha & 2;
+ global = Ha & 2;
+}
+
+for (var i = 0; i < 1000; ++i)
+ shouldBe("f()", "undefined");
Modified: trunk/Source/_javascript_Core/ChangeLog (146262 => 146263)
--- trunk/Source/_javascript_Core/ChangeLog 2013-03-19 21:45:52 UTC (rev 146262)
+++ trunk/Source/_javascript_Core/ChangeLog 2013-03-19 21:49:34 UTC (rev 146263)
@@ -1,3 +1,14 @@
+2013-03-19 Mark Hahnenberg <mhahnenb...@apple.com>
+
+ Crash in SpeculativeJIT::fillSpeculateIntInternal<false> on http://bellard.org/jslinux
+ https://bugs.webkit.org/show_bug.cgi?id=112738
+
+ Reviewed by Filip Pizlo.
+
+ * dfg/DFGFixupPhase.cpp:
+ (JSC::DFG::FixupPhase::fixIntEdge): We shouldn't be killing this node because it could be
+ referenced by other people.
+
2013-03-19 Oliver Hunt <oli...@apple.com>
RELEASE_ASSERT fires in exception handler lookup
Modified: trunk/Source/_javascript_Core/dfg/DFGFixupPhase.cpp (146262 => 146263)
--- trunk/Source/_javascript_Core/dfg/DFGFixupPhase.cpp 2013-03-19 21:45:52 UTC (rev 146262)
+++ trunk/Source/_javascript_Core/dfg/DFGFixupPhase.cpp 2013-03-19 21:49:34 UTC (rev 146263)
@@ -1240,12 +1240,6 @@
}
ASSERT(newEdge->shouldSpeculateInteger());
-
- // Completely kill the ValueToInt32. We wouldn't have to do crazy things like this
- // if it weren't for https://bugs.webkit.org/show_bug.cgi?id=111238.
- node->setOpAndDefaultFlags(Nop);
- node->child1() = Edge();
-
edge = newEdge;
}
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes