Title: [204209] trunk/Source/_javascript_Core
Revision
204209
Author
[email protected]
Date
2016-08-05 18:05:15 -0700 (Fri, 05 Aug 2016)

Log Message

32-bit JSC test failure: stress/instanceof-late-constant-folding.js
https://bugs.webkit.org/show_bug.cgi?id=160620

Reviewed by Filip Pizlo.

* dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compile):

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (204208 => 204209)


--- trunk/Source/_javascript_Core/ChangeLog	2016-08-06 00:53:29 UTC (rev 204208)
+++ trunk/Source/_javascript_Core/ChangeLog	2016-08-06 01:05:15 UTC (rev 204209)
@@ -1,3 +1,13 @@
+2016-08-05  Keith Miller  <[email protected]>
+
+        32-bit JSC test failure: stress/instanceof-late-constant-folding.js
+        https://bugs.webkit.org/show_bug.cgi?id=160620
+
+        Reviewed by Filip Pizlo.
+
+        * dfg/DFGSpeculativeJIT32_64.cpp:
+        (JSC::DFG::SpeculativeJIT::compile):
+
 2016-08-05  Benjamin Poulain  <[email protected]>
 
         [JSC] Remove the first LocalCSE

Modified: trunk/Source/_javascript_Core/dfg/DFGSpeculativeJIT32_64.cpp (204208 => 204209)


--- trunk/Source/_javascript_Core/dfg/DFGSpeculativeJIT32_64.cpp	2016-08-06 00:53:29 UTC (rev 204208)
+++ trunk/Source/_javascript_Core/dfg/DFGSpeculativeJIT32_64.cpp	2016-08-06 01:05:15 UTC (rev 204209)
@@ -4627,8 +4627,7 @@
         Node* hasInstanceValueNode = node->child2().node();
         JSFunction* defaultHasInstanceFunction = jsCast<JSFunction*>(node->cellOperand()->value());
 
-        MacroAssembler::Jump notDefaulthasInstanceValue;
-        MacroAssembler::Jump hasInstanceValueNotCell;
+        MacroAssembler::JumpList notDefaultHasInstanceValue;
         SpeculateCellOperand base(this, node->child1());
         JSValueOperand hasInstanceValue(this, node->child2());
         GPRTemporary result(this);
@@ -4641,8 +4640,8 @@
         // since it relies on OSR information. https://bugs.webkit.org/show_bug.cgi?id=154832
         if (!hasInstanceValueNode->isCellConstant() || defaultHasInstanceFunction != hasInstanceValueNode->asCell()) {
             JSValueRegs hasInstanceValueRegs = hasInstanceValue.jsValueRegs();
-            hasInstanceValueNotCell = m_jit.branchIfNotCell(hasInstanceValueRegs);
-            notDefaulthasInstanceValue = m_jit.branchPtr(MacroAssembler::NotEqual, hasInstanceValueRegs.payloadGPR(), TrustedImmPtr(defaultHasInstanceFunction));
+            notDefaultHasInstanceValue.append(m_jit.branchIfNotCell(hasInstanceValueRegs));
+            notDefaultHasInstanceValue.append(m_jit.branchPtr(MacroAssembler::NotEqual, hasInstanceValueRegs.payloadGPR(), TrustedImmPtr(defaultHasInstanceFunction)));
         }
 
         // Check that constructor 'ImplementsDefaultHasInstance'.
@@ -4649,9 +4648,8 @@
         m_jit.test8(MacroAssembler::Zero, MacroAssembler::Address(baseGPR, JSCell::typeInfoFlagsOffset()), MacroAssembler::TrustedImm32(ImplementsDefaultHasInstance), resultGPR);
         MacroAssembler::Jump done = m_jit.jump();
 
-        if (!hasInstanceValueNode->isCellConstant()) {
-            hasInstanceValueNotCell.link(&m_jit);
-            notDefaulthasInstanceValue.link(&m_jit);
+        if (!notDefaultHasInstanceValue.empty()) {
+            notDefaultHasInstanceValue.link(&m_jit);
             moveTrueTo(resultGPR);
         }
 
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to