Title: [98063] trunk/Source/_javascript_Core
Revision
98063
Author
commit-qu...@webkit.org
Date
2011-10-20 21:01:28 -0700 (Thu, 20 Oct 2011)

Log Message

DFG JIT 32_64 - Fix ByteArray speculation
https://bugs.webkit.org/show_bug.cgi?id=70571

Patch by Yuqiang Xian <yuqiang.x...@intel.com> on 2011-10-20
Reviewed by Filip Pizlo.

* dfg/DFGSpeculativeJIT.h:
(JSC::DFG::ValueSource::forPrediction):
* dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compile):

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (98062 => 98063)


--- trunk/Source/_javascript_Core/ChangeLog	2011-10-21 03:35:50 UTC (rev 98062)
+++ trunk/Source/_javascript_Core/ChangeLog	2011-10-21 04:01:28 UTC (rev 98063)
@@ -1,3 +1,15 @@
+2011-10-20  Yuqiang Xian  <yuqiang.x...@intel.com>
+
+        DFG JIT 32_64 - Fix ByteArray speculation
+        https://bugs.webkit.org/show_bug.cgi?id=70571
+
+        Reviewed by Filip Pizlo.
+
+        * dfg/DFGSpeculativeJIT.h:
+        (JSC::DFG::ValueSource::forPrediction):
+        * dfg/DFGSpeculativeJIT32_64.cpp:
+        (JSC::DFG::SpeculativeJIT::compile):
+
 2011-10-20  Vincent Scheib  <sch...@chromium.org>
 
         MouseLock compile and run time flags.

Modified: trunk/Source/_javascript_Core/dfg/DFGSpeculativeJIT.h (98062 => 98063)


--- trunk/Source/_javascript_Core/dfg/DFGSpeculativeJIT.h	2011-10-21 03:35:50 UTC (rev 98062)
+++ trunk/Source/_javascript_Core/dfg/DFGSpeculativeJIT.h	2011-10-21 04:01:28 UTC (rev 98063)
@@ -99,7 +99,7 @@
     {
         if (isInt32Prediction(prediction))
             return ValueSource(Int32InRegisterFile);
-        if (isArrayPrediction(prediction))
+        if (isArrayPrediction(prediction) || isByteArrayPrediction(prediction))
             return ValueSource(CellInRegisterFile);
         return ValueSource(ValueInRegisterFile);
     }

Modified: trunk/Source/_javascript_Core/dfg/DFGSpeculativeJIT32_64.cpp (98062 => 98063)


--- trunk/Source/_javascript_Core/dfg/DFGSpeculativeJIT32_64.cpp	2011-10-21 03:35:50 UTC (rev 98062)
+++ trunk/Source/_javascript_Core/dfg/DFGSpeculativeJIT32_64.cpp	2011-10-21 04:01:28 UTC (rev 98063)
@@ -696,13 +696,13 @@
             break;
         }
 
-        if (isArrayPrediction(prediction)) {
+        if (isArrayPrediction(prediction) || isByteArrayPrediction(prediction)) {
             m_jit.load32(JITCompiler::payloadFor(node.local()), result.gpr());
 
             // Like cellResult, but don't useChildren - our children are phi nodes,
             // and don't represent values within this dataflow with virtual registers.
             VirtualRegister virtualRegister = node.virtualRegister();
-            m_gprs.retain(result.gpr(), virtualRegister, SpillOrderInteger);
+            m_gprs.retain(result.gpr(), virtualRegister, SpillOrderCell);
             m_generationInfo[virtualRegister].initCell(m_compileIndex, node.refCount(), result.gpr());
             break;
         }
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to