Title: [134310] branches/safari-536.28-branch/Source/_javascript_Core
Revision
134310
Author
[email protected]
Date
2012-11-12 14:36:07 -0800 (Mon, 12 Nov 2012)

Log Message

Merge part 1 of <rdar://problem/12486142>.

Modified Paths


Diff

Modified: branches/safari-536.28-branch/Source/_javascript_Core/ChangeLog (134309 => 134310)


--- branches/safari-536.28-branch/Source/_javascript_Core/ChangeLog	2012-11-12 22:36:01 UTC (rev 134309)
+++ branches/safari-536.28-branch/Source/_javascript_Core/ChangeLog	2012-11-12 22:36:07 UTC (rev 134310)
@@ -1,5 +1,37 @@
 2012-11-12  Lucas Forschler  <[email protected]>
 
+        Merge fix for <rdar://problem/12486142>.
+
+    2012-08-13  Filip Pizlo  <[email protected]>
+
+            Value recovery for arguments should always just indicate that the argument is in the register file, and
+            not attempt to claim anything about the tag.
+            <rdar://problem/12046032>
+
+            The code previously attempted to base the value recovery on the VariableAccessData prediction. This is
+            wrong for two reasons: first, SetLocals speculate on the argument-aware prediction, which is different
+            from the prediction, if the argument was used to store different types; and second, even if the
+            argument-aware prediction indicates some unboxed type (int, bool, or cell) then it must be the case
+            that the tag that was stored by the caller would be identical to the tag implied by the prediction -
+            so OSR can just assume that the argument already holds a fully decorated JSValue. Of special note are
+            double predictions: the DFG has never stored unboxed doubles into arguments, so those don't need
+            special treatment here.
+
+            * dfg/DFGSpeculativeJIT.cpp:
+            (JSC::DFG::SpeculativeJIT::compile):
+
+    2012-07-24  Filip Pizlo  <[email protected]>
+
+            DFG method checks should keep the receiver of the property access alive until all checks complete.
+            <rdar://problem/11781190>
+
+            Reviewed by Gavin Barraclough.
+
+            * dfg/DFGByteCodeParser.cpp:
+            (JSC::DFG::ByteCodeParser::parseBlock):
+
+2012-11-12  Lucas Forschler  <[email protected]>
+
         Merge r129440
 
     2012-09-24  Filip Pizlo  <[email protected]>

Modified: branches/safari-536.28-branch/Source/_javascript_Core/dfg/DFGSpeculativeJIT.cpp (134309 => 134310)


--- branches/safari-536.28-branch/Source/_javascript_Core/dfg/DFGSpeculativeJIT.cpp	2012-11-12 22:36:01 UTC (rev 134309)
+++ branches/safari-536.28-branch/Source/_javascript_Core/dfg/DFGSpeculativeJIT.cpp	2012-11-12 22:36:07 UTC (rev 134310)
@@ -937,13 +937,8 @@
     m_jit.jitAssertHasValidCallFrame();
 
     ASSERT(m_arguments.size() == block.variablesAtHead.numberOfArguments());
-    for (size_t i = 0; i < m_arguments.size(); ++i) {
-        NodeIndex nodeIndex = block.variablesAtHead.argument(i);
-        if (nodeIndex == NoNode || m_jit.graph().argumentIsCaptured(i))
-            m_arguments[i] = ValueSource(ValueInRegisterFile);
-        else
-            m_arguments[i] = ValueSource::forPrediction(at(nodeIndex).variableAccessData()->prediction());
-    }
+    for (size_t i = 0; i < m_arguments.size(); ++i)
+        m_arguments[i] = ValueSource(ValueInRegisterFile);
     
     m_state.reset();
     m_state.beginBasicBlock(&block);
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to