Title: [156919] trunk/Source/_javascript_Core
Revision
156919
Author
[email protected]
Date
2013-10-04 15:45:09 -0700 (Fri, 04 Oct 2013)

Log Message

FTL: Add support for ValueToInt32(bool(x))
https://bugs.webkit.org/show_bug.cgi?id=122346

Patch by Nadav Rotem <[email protected]> on 2013-10-04
Reviewed by Geoffrey Garen.

* ftl/FTLCapabilities.cpp:
(JSC::FTL::canCompile):
* ftl/FTLLowerDFGToLLVM.cpp:
(JSC::FTL::LowerDFGToLLVM::compileNode):
(JSC::FTL::LowerDFGToLLVM::compileValueToInt32):

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (156918 => 156919)


--- trunk/Source/_javascript_Core/ChangeLog	2013-10-04 22:41:11 UTC (rev 156918)
+++ trunk/Source/_javascript_Core/ChangeLog	2013-10-04 22:45:09 UTC (rev 156919)
@@ -1,3 +1,16 @@
+2013-10-04  Nadav Rotem  <[email protected]>
+
+        FTL: Add support for ValueToInt32(bool(x))
+        https://bugs.webkit.org/show_bug.cgi?id=122346
+
+        Reviewed by Geoffrey Garen.
+
+        * ftl/FTLCapabilities.cpp:
+        (JSC::FTL::canCompile):
+        * ftl/FTLLowerDFGToLLVM.cpp:
+        (JSC::FTL::LowerDFGToLLVM::compileNode):
+        (JSC::FTL::LowerDFGToLLVM::compileValueToInt32):
+
 2013-10-04  Oliver Hunt  <[email protected]>
 
         Build fix.

Modified: trunk/Source/_javascript_Core/ftl/FTLCapabilities.cpp (156918 => 156919)


--- trunk/Source/_javascript_Core/ftl/FTLCapabilities.cpp	2013-10-04 22:41:11 UTC (rev 156918)
+++ trunk/Source/_javascript_Core/ftl/FTLCapabilities.cpp	2013-10-04 22:45:09 UTC (rev 156919)
@@ -203,6 +203,10 @@
             return CannotCompile;
         }
         break;
+    case ValueToInt32:
+        if (node->child1().useKind() != BooleanUse)
+            return CannotCompile;
+        break;
     default:
         // Don't know how to handle anything else.
         return CannotCompile;

Modified: trunk/Source/_javascript_Core/ftl/FTLLowerDFGToLLVM.cpp (156918 => 156919)


--- trunk/Source/_javascript_Core/ftl/FTLLowerDFGToLLVM.cpp	2013-10-04 22:41:11 UTC (rev 156918)
+++ trunk/Source/_javascript_Core/ftl/FTLLowerDFGToLLVM.cpp	2013-10-04 22:45:09 UTC (rev 156919)
@@ -437,6 +437,9 @@
         case ForceOSRExit:
             compileForceOSRExit();
             break;
+        case ValueToInt32:
+            compileValueToInt32();
+            break;
         default:
             RELEASE_ASSERT_NOT_REACHED();
             break;
@@ -453,6 +456,12 @@
         
         return true;
     }
+
+    void compileValueToInt32()
+    {
+        ASSERT(m_node->child1().useKind() == BooleanUse);
+        setInt32(m_out.zeroExt(lowBoolean(m_node->child1()), m_out.int32));
+    }
     
     void compileUpsilon()
     {
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to