Title: [96875] trunk/Source/_javascript_Core
- Revision
- 96875
- Author
- oli...@apple.com
- Date
- 2011-10-06 16:48:06 -0700 (Thu, 06 Oct 2011)
Log Message
Write barrier shouldn't allocate temporaries inside control flow
https://bugs.webkit.org/show_bug.cgi?id=69582
Reviewed by Gavin Barraclough.
Reorder the code to avoid spill-related badness.
* dfg/DFGJITCodeGenerator.cpp:
(JSC::DFG::JITCodeGenerator::writeBarrier):
Modified Paths
Diff
Modified: trunk/Source/_javascript_Core/ChangeLog (96874 => 96875)
--- trunk/Source/_javascript_Core/ChangeLog 2011-10-06 23:42:57 UTC (rev 96874)
+++ trunk/Source/_javascript_Core/ChangeLog 2011-10-06 23:48:06 UTC (rev 96875)
@@ -1,3 +1,15 @@
+2011-10-06 Oliver Hunt <oli...@apple.com>
+
+ Write barrier shouldn't allocate temporaries inside control flow
+ https://bugs.webkit.org/show_bug.cgi?id=69582
+
+ Reviewed by Gavin Barraclough.
+
+ Reorder the code to avoid spill-related badness.
+
+ * dfg/DFGJITCodeGenerator.cpp:
+ (JSC::DFG::JITCodeGenerator::writeBarrier):
+
2011-10-06 Filip Pizlo <fpi...@apple.com>
DFG::shouldSpeculate methods are too complicated
Modified: trunk/Source/_javascript_Core/dfg/DFGJITCodeGenerator.cpp (96874 => 96875)
--- trunk/Source/_javascript_Core/dfg/DFGJITCodeGenerator.cpp 2011-10-06 23:42:57 UTC (rev 96874)
+++ trunk/Source/_javascript_Core/dfg/DFGJITCodeGenerator.cpp 2011-10-06 23:48:06 UTC (rev 96875)
@@ -247,13 +247,6 @@
#endif
#if ENABLE(GGC)
- JITCompiler::Jump rhsNotCell;
- bool hadCellCheck = false;
- if (!isKnownCell(valueIndex) && !isCellPrediction(m_jit.getPrediction(valueIndex))) {
- hadCellCheck = true;
- rhsNotCell = m_jit.branchIfNotCell(valueGPR);
- }
-
GPRTemporary temp1;
GPRTemporary temp2;
if (scratch1 == InvalidGPRReg) {
@@ -266,8 +259,16 @@
temp2.adopt(scratchGPR);
scratch2 = temp2.gpr();
}
+
+ JITCompiler::Jump rhsNotCell;
+ bool hadCellCheck = false;
+ if (!isKnownCell(valueIndex) && !isCellPrediction(m_jit.getPrediction(valueIndex))) {
+ hadCellCheck = true;
+ rhsNotCell = m_jit.branchIfNotCell(valueGPR);
+ }
markCellCard(m_jit, ownerGPR, scratch1, scratch2);
+
if (hadCellCheck)
rhsNotCell.link(&m_jit);
#endif
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes