Title: [157482] trunk/Source/_javascript_Core
Revision
157482
Author
[email protected]
Date
2013-10-15 20:59:12 -0700 (Tue, 15 Oct 2013)

Log Message

FTL: add support for Int52ToValue and fix putByVal of int52s.
https://bugs.webkit.org/show_bug.cgi?id=122873

Patch by Nadav Rotem <[email protected]> on 2013-10-15
Reviewed by Filip Pizlo.

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

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (157481 => 157482)


--- trunk/Source/_javascript_Core/ChangeLog	2013-10-16 03:10:46 UTC (rev 157481)
+++ trunk/Source/_javascript_Core/ChangeLog	2013-10-16 03:59:12 UTC (rev 157482)
@@ -1,3 +1,17 @@
+2013-10-15  Nadav Rotem  <[email protected]>
+
+        FTL: add support for Int52ToValue and fix putByVal of int52s.
+        https://bugs.webkit.org/show_bug.cgi?id=122873
+
+        Reviewed by Filip Pizlo.
+
+        * ftl/FTLCapabilities.cpp:
+        (JSC::FTL::canCompile):
+        * ftl/FTLLowerDFGToLLVM.cpp:
+        (JSC::FTL::LowerDFGToLLVM::compileNode):
+        (JSC::FTL::LowerDFGToLLVM::compileInt52ToValue):
+        (JSC::FTL::LowerDFGToLLVM::compilePutByVal):
+
 2013-10-15  Filip Pizlo  <[email protected]>
 
         Get rid of the UNINTERRUPTED_SEQUENCE thing

Modified: trunk/Source/_javascript_Core/ftl/FTLCapabilities.cpp (157481 => 157482)


--- trunk/Source/_javascript_Core/ftl/FTLCapabilities.cpp	2013-10-16 03:10:46 UTC (rev 157481)
+++ trunk/Source/_javascript_Core/ftl/FTLCapabilities.cpp	2013-10-16 03:59:12 UTC (rev 157482)
@@ -95,6 +95,7 @@
     case GetClosureVar:
     case PutClosureVar:
     case GetById:
+    case Int52ToValue:
         // These are OK.
         break;
     case GetIndexedPropertyStorage:

Modified: trunk/Source/_javascript_Core/ftl/FTLLowerDFGToLLVM.cpp (157481 => 157482)


--- trunk/Source/_javascript_Core/ftl/FTLLowerDFGToLLVM.cpp	2013-10-16 03:10:46 UTC (rev 157481)
+++ trunk/Source/_javascript_Core/ftl/FTLLowerDFGToLLVM.cpp	2013-10-16 03:59:12 UTC (rev 157482)
@@ -449,6 +449,9 @@
         case ValueToInt32:
             compileValueToInt32();
             break;
+        case Int52ToValue:
+            compileInt52ToValue();
+            break;
         default:
             RELEASE_ASSERT_NOT_REACHED();
             break;
@@ -471,7 +474,12 @@
         ASSERT(m_node->child1().useKind() == BooleanUse);
         setInt32(m_out.zeroExt(lowBoolean(m_node->child1()), m_out.int32));
     }
-    
+
+    void compileInt52ToValue()
+    {
+        setJSValue(lowJSValue(m_node->child1()));
+    }
+
     void compileUpsilon()
     {
         LValue destination = m_phis.get(m_node->phi());
@@ -1530,8 +1538,13 @@
                 if (isInt(type)) {
                     LValue intValue;
                     switch (child3.useKind()) {
+                    case MachineIntUse:
                     case Int32Use: {
-                        intValue = lowInt32(child3);
+                        if (child3.useKind() == Int32Use)
+                            intValue = lowInt32(child3);
+                        else
+                            intValue = m_out.castToInt32(lowInt52(child3));
+
                         if (isClamped(type)) {
                             ASSERT(elementSize(type) == 1);
                             
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to