Title: [178788] trunk/Source/_javascript_Core
Revision
178788
Author
mmir...@apple.com
Date
2015-01-20 17:12:51 -0800 (Tue, 20 Jan 2015)

Log Message

Made Identity in the DFG allocate a new temp register and move
the old data to it.
https://bugs.webkit.org/show_bug.cgi?id=140700
<rdar://problem/19339106>

Reviewed by Filip Pizlo.

* dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
Added scratch registers for Identity.
* tests/mozilla/mozilla-tests.yaml: enabled previously failing test

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (178787 => 178788)


--- trunk/Source/_javascript_Core/ChangeLog	2015-01-21 01:10:51 UTC (rev 178787)
+++ trunk/Source/_javascript_Core/ChangeLog	2015-01-21 01:12:51 UTC (rev 178788)
@@ -1,3 +1,17 @@
+2015-01-20  Matthew Mirman  <mmir...@apple.com>
+
+        Made Identity in the DFG allocate a new temp register and move 
+        the old data to it.
+        https://bugs.webkit.org/show_bug.cgi?id=140700
+        <rdar://problem/19339106>
+
+        Reviewed by Filip Pizlo.
+
+        * dfg/DFGSpeculativeJIT64.cpp:
+        (JSC::DFG::SpeculativeJIT::compile): 
+        Added scratch registers for Identity. 
+        * tests/mozilla/mozilla-tests.yaml: enabled previously failing test
+
 2015-01-20  Joseph Pecoraro  <pecor...@apple.com>
 
         Web Inspector: Expanding event objects in console shows undefined for most values, it should have real values

Modified: trunk/Source/_javascript_Core/dfg/DFGSpeculativeJIT64.cpp (178787 => 178788)


--- trunk/Source/_javascript_Core/dfg/DFGSpeculativeJIT64.cpp	2015-01-21 01:10:51 UTC (rev 178787)
+++ trunk/Source/_javascript_Core/dfg/DFGSpeculativeJIT64.cpp	2015-01-21 01:12:51 UTC (rev 178788)
@@ -1799,17 +1799,23 @@
         case DoubleRepRealUse:
         case DoubleRepMachineIntUse: {
             SpeculateDoubleOperand op(this, node->child1());
-            doubleResult(op.fpr(), node);
+            FPRTemporary scratch(this, op);
+            m_jit.moveDouble(op.fpr(), scratch.fpr());
+            doubleResult(scratch.fpr(), node);
             break;
         }
         case Int52RepUse: {
             SpeculateInt52Operand op(this, node->child1());
-            int52Result(op.gpr(), node);
+            GPRTemporary result(this, Reuse, op);
+            m_jit.move(op.gpr(), result.gpr());
+            int52Result(result.gpr(), node);
             break;
         }
         default: {
             JSValueOperand op(this, node->child1());
-            jsValueResult(op.gpr(), node);
+            GPRTemporary result(this, Reuse, op);
+            m_jit.move(op.gpr(), result.gpr());
+            jsValueResult(result.gpr(), node);
             break;
         }
         } // switch

Modified: trunk/Source/_javascript_Core/tests/mozilla/mozilla-tests.yaml (178787 => 178788)


--- trunk/Source/_javascript_Core/tests/mozilla/mozilla-tests.yaml	2015-01-21 01:10:51 UTC (rev 178787)
+++ trunk/Source/_javascript_Core/tests/mozilla/mozilla-tests.yaml	2015-01-21 01:12:51 UTC (rev 178788)
@@ -789,9 +789,8 @@
   cmd: defaultRunMozillaTest :normal, "../shell.js"
 - path: ecma/LexicalConventions/7.7.3-2.js
   cmd: defaultRunMozillaTest :normal, "../shell.js"
-# Test fails due to rdar://problem/19339106
-# - path: ecma/LexicalConventions/7.7.3.js
-#   cmd: defaultRunMozillaTest :normal, "../shell.js"
+- path: ecma/LexicalConventions/7.7.3.js
+  cmd: defaultRunMozillaTest :normal, "../shell.js"
 - path: ecma/LexicalConventions/7.7.4.js
   cmd: defaultRunMozillaTest :normal, "../shell.js"
 - path: ecma/LexicalConventions/7.8.2-n.js
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to