Title: [96980] trunk/Source/_javascript_Core
Revision
96980
Author
[email protected]
Date
2011-10-07 13:52:56 -0700 (Fri, 07 Oct 2011)

Log Message

DFG ConvertThis speculation logic is wrong
https://bugs.webkit.org/show_bug.cgi?id=69663

Reviewed by Oliver Hunt.

* dfg/DFGPropagator.cpp:
(JSC::DFG::Propagator::fixupNode):
* dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
* dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile):

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (96979 => 96980)


--- trunk/Source/_javascript_Core/ChangeLog	2011-10-07 20:43:41 UTC (rev 96979)
+++ trunk/Source/_javascript_Core/ChangeLog	2011-10-07 20:52:56 UTC (rev 96980)
@@ -1,3 +1,17 @@
+2011-10-07  Filip Pizlo  <[email protected]>
+
+        DFG ConvertThis speculation logic is wrong
+        https://bugs.webkit.org/show_bug.cgi?id=69663
+
+        Reviewed by Oliver Hunt.
+
+        * dfg/DFGPropagator.cpp:
+        (JSC::DFG::Propagator::fixupNode):
+        * dfg/DFGSpeculativeJIT32_64.cpp:
+        (JSC::DFG::SpeculativeJIT::compile):
+        * dfg/DFGSpeculativeJIT64.cpp:
+        (JSC::DFG::SpeculativeJIT::compile):
+
 2011-10-07  Oliver Hunt  <[email protected]>
 
         Verify that our call speculation is valid.

Modified: trunk/Source/_javascript_Core/dfg/DFGPropagator.cpp (96979 => 96980)


--- trunk/Source/_javascript_Core/dfg/DFGPropagator.cpp	2011-10-07 20:43:41 UTC (rev 96979)
+++ trunk/Source/_javascript_Core/dfg/DFGPropagator.cpp	2011-10-07 20:52:56 UTC (rev 96980)
@@ -720,7 +720,7 @@
                 break;
             
 #if ENABLE(DFG_DEBUG_PROPAGATION_VERBOSE)
-            printf("  @%u -> %s", nodeIndex, isArray ? "GetArrayLength" : "GetStringLength");
+            printf("  @%u -> %s", m_compileIndex, isArray ? "GetArrayLength" : "GetStringLength");
 #endif
             node.op = isArray ? GetArrayLength : GetStringLength;
             break;

Modified: trunk/Source/_javascript_Core/dfg/DFGSpeculativeJIT32_64.cpp (96979 => 96980)


--- trunk/Source/_javascript_Core/dfg/DFGSpeculativeJIT32_64.cpp	2011-10-07 20:43:41 UTC (rev 96979)
+++ trunk/Source/_javascript_Core/dfg/DFGSpeculativeJIT32_64.cpp	2011-10-07 20:52:56 UTC (rev 96980)
@@ -1710,7 +1710,7 @@
     }
         
     case ConvertThis: {
-        if (isOtherPrediction(node.prediction())) {
+        if (isOtherPrediction(at(node.child1()).prediction())) {
             JSValueOperand thisValue(this, node.child1());
             GPRTemporary scratch(this, thisValue);
             
@@ -1726,7 +1726,7 @@
             break;
         }
         
-        if (isObjectPrediction(node.prediction())) {
+        if (isObjectPrediction(at(node.child1()).prediction())) {
             SpeculateCellOperand thisValue(this, node.child1());
             
             speculationCheck(m_jit.branchPtr(JITCompiler::Equal, JITCompiler::Address(thisValue.gpr()), JITCompiler::TrustedImmPtr(m_jit.globalData()->jsStringVPtr)));

Modified: trunk/Source/_javascript_Core/dfg/DFGSpeculativeJIT64.cpp (96979 => 96980)


--- trunk/Source/_javascript_Core/dfg/DFGSpeculativeJIT64.cpp	2011-10-07 20:43:41 UTC (rev 96979)
+++ trunk/Source/_javascript_Core/dfg/DFGSpeculativeJIT64.cpp	2011-10-07 20:52:56 UTC (rev 96980)
@@ -1786,7 +1786,7 @@
     }
         
     case ConvertThis: {
-        if (isOtherPrediction(node.prediction())) {
+        if (isOtherPrediction(at(node.child1()).prediction())) {
             JSValueOperand thisValue(this, node.child1());
             GPRTemporary scratch(this, thisValue);
             GPRReg thisValueGPR = thisValue.gpr();
@@ -1801,7 +1801,7 @@
             break;
         }
         
-        if (isObjectPrediction(node.prediction())) {
+        if (isObjectPrediction(at(node.child1()).prediction())) {
             SpeculateCellOperand thisValue(this, node.child1());
             
             speculationCheck(m_jit.branchPtr(JITCompiler::Equal, JITCompiler::Address(thisValue.gpr()), JITCompiler::TrustedImmPtr(m_jit.globalData()->jsStringVPtr)));
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to