Title: [158822] trunk/Source/_javascript_Core
- Revision
- 158822
- Author
- [email protected]
- Date
- 2013-11-06 21:38:16 -0800 (Wed, 06 Nov 2013)
Log Message
FTL should support CheckFunction
https://bugs.webkit.org/show_bug.cgi?id=123862
Reviewed by Sam Weinig.
* ftl/FTLCapabilities.cpp:
(JSC::FTL::canCompile):
* ftl/FTLLowerDFGToLLVM.cpp:
(JSC::FTL::LowerDFGToLLVM::compileNode):
(JSC::FTL::LowerDFGToLLVM::compileCheckFunction):
Modified Paths
Diff
Modified: trunk/Source/_javascript_Core/ChangeLog (158821 => 158822)
--- trunk/Source/_javascript_Core/ChangeLog 2013-11-07 05:26:23 UTC (rev 158821)
+++ trunk/Source/_javascript_Core/ChangeLog 2013-11-07 05:38:16 UTC (rev 158822)
@@ -1,3 +1,16 @@
+2013-11-05 Filip Pizlo <[email protected]>
+
+ FTL should support CheckFunction
+ https://bugs.webkit.org/show_bug.cgi?id=123862
+
+ Reviewed by Sam Weinig.
+
+ * ftl/FTLCapabilities.cpp:
+ (JSC::FTL::canCompile):
+ * ftl/FTLLowerDFGToLLVM.cpp:
+ (JSC::FTL::LowerDFGToLLVM::compileNode):
+ (JSC::FTL::LowerDFGToLLVM::compileCheckFunction):
+
2013-11-06 Filip Pizlo <[email protected]>
IC code should handle the call frame register not being the callFrameRegister
Modified: trunk/Source/_javascript_Core/ftl/FTLCapabilities.cpp (158821 => 158822)
--- trunk/Source/_javascript_Core/ftl/FTLCapabilities.cpp 2013-11-07 05:26:23 UTC (rev 158821)
+++ trunk/Source/_javascript_Core/ftl/FTLCapabilities.cpp 2013-11-07 05:38:16 UTC (rev 158822)
@@ -98,6 +98,7 @@
case Int52ToValue:
case InvalidationPoint:
case StringCharAt:
+ case CheckFunction:
case StringCharCodeAt:
// These are OK.
break;
Modified: trunk/Source/_javascript_Core/ftl/FTLLowerDFGToLLVM.cpp (158821 => 158822)
--- trunk/Source/_javascript_Core/ftl/FTLLowerDFGToLLVM.cpp 2013-11-07 05:26:23 UTC (rev 158821)
+++ trunk/Source/_javascript_Core/ftl/FTLLowerDFGToLLVM.cpp 2013-11-07 05:38:16 UTC (rev 158822)
@@ -331,6 +331,9 @@
case StructureTransitionWatchpoint:
compileStructureTransitionWatchpoint();
break;
+ case CheckFunction:
+ compileCheckFunction();
+ break;
case ArrayifyToStructure:
compileArrayifyToStructure();
break;
@@ -1165,6 +1168,15 @@
speculateCell(m_node->child1());
}
+ void compileCheckFunction()
+ {
+ LValue cell = lowCell(m_node->child1());
+
+ speculate(
+ BadFunction, jsValueValue(cell), m_node->child1().node(),
+ m_out.notEqual(cell, weakPointer(m_node->function())));
+ }
+
void compileArrayifyToStructure()
{
LValue cell = lowCell(m_node->child1());
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes