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

Reply via email to