Title: [260549] trunk/Source/_javascript_Core
Revision
260549
Author
sbar...@apple.com
Date
2020-04-22 19:14:22 -0700 (Wed, 22 Apr 2020)

Log Message

Edge use kind asserts are wrong for BigInt32 on ValueBitLShift
https://bugs.webkit.org/show_bug.cgi?id=210872

Reviewed by Yusuke Suzuki, Mark Lam, and Robin Morisset.

This is already covered by the v8 tests Yusuke checked in.

* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::emitUntypedOrAnyBigIntBitOp):
* ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileValueBitLShift):
(JSC::FTL::DFG::LowerDFGToB3::emitBinaryBitOpSnippet):

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (260548 => 260549)


--- trunk/Source/_javascript_Core/ChangeLog	2020-04-23 01:22:36 UTC (rev 260548)
+++ trunk/Source/_javascript_Core/ChangeLog	2020-04-23 02:14:22 UTC (rev 260549)
@@ -1,3 +1,18 @@
+2020-04-22  Saam Barati  <sbar...@apple.com>
+
+        Edge use kind asserts are wrong for BigInt32 on ValueBitLShift
+        https://bugs.webkit.org/show_bug.cgi?id=210872
+
+        Reviewed by Yusuke Suzuki, Mark Lam, and Robin Morisset.
+
+        This is already covered by the v8 tests Yusuke checked in.
+
+        * dfg/DFGSpeculativeJIT.cpp:
+        (JSC::DFG::SpeculativeJIT::emitUntypedOrAnyBigIntBitOp):
+        * ftl/FTLLowerDFGToB3.cpp:
+        (JSC::FTL::DFG::LowerDFGToB3::compileValueBitLShift):
+        (JSC::FTL::DFG::LowerDFGToB3::emitBinaryBitOpSnippet):
+
 2020-04-22  Yusuke Suzuki  <ysuz...@apple.com>
 
         [JSC] JSBigInt inc operation does not produce right HeapBigInt zero

Modified: trunk/Source/_javascript_Core/dfg/DFGSpeculativeJIT.cpp (260548 => 260549)


--- trunk/Source/_javascript_Core/dfg/DFGSpeculativeJIT.cpp	2020-04-23 01:22:36 UTC (rev 260548)
+++ trunk/Source/_javascript_Core/dfg/DFGSpeculativeJIT.cpp	2020-04-23 02:14:22 UTC (rev 260549)
@@ -3619,7 +3619,7 @@
     Edge& leftChild = node->child1();
     Edge& rightChild = node->child2();
 
-    ASSERT(leftChild.useKind() == UntypedUse || leftChild.useKind() == AnyBigIntUse || rightChild.useKind() == UntypedUse || rightChild.useKind() == AnyBigIntUse);
+    DFG_ASSERT(m_jit.graph(), node, node->isBinaryUseKind(UntypedUse) || node->isBinaryUseKind(AnyBigIntUse) || node->isBinaryUseKind(HeapBigIntUse) || node->isBinaryUseKind(BigInt32Use));
 
     if (isKnownNotNumber(leftChild.node()) || isKnownNotNumber(rightChild.node())) {
         JSValueOperand left(this, leftChild, ManualOperandSpeculation);

Modified: trunk/Source/_javascript_Core/ftl/FTLLowerDFGToB3.cpp (260548 => 260549)


--- trunk/Source/_javascript_Core/ftl/FTLLowerDFGToB3.cpp	2020-04-23 01:22:36 UTC (rev 260548)
+++ trunk/Source/_javascript_Core/ftl/FTLLowerDFGToB3.cpp	2020-04-23 02:14:22 UTC (rev 260549)
@@ -3470,7 +3470,7 @@
             return;
         }
 
-        ASSERT(m_node->isBinaryUseKind(UntypedUse));
+        DFG_ASSERT(m_graph, m_node, m_node->isBinaryUseKind(UntypedUse) || m_node->isBinaryUseKind(AnyBigIntUse) || m_node->isBinaryUseKind(BigInt32Use));
         emitBinaryBitOpSnippet<JITLeftShiftGenerator>(operationValueBitLShift);
     }
 
@@ -14752,7 +14752,7 @@
     {
         Node* node = m_node;
         
-        ASSERT(node->isBinaryUseKind(UntypedUse) || node->isBinaryUseKind(AnyBigIntUse));
+        DFG_ASSERT(m_graph, node, node->isBinaryUseKind(UntypedUse) || node->isBinaryUseKind(AnyBigIntUse) || node->isBinaryUseKind(BigInt32Use));
         LValue left = lowJSValue(node->child1(), ManualOperandSpeculation);
         LValue right = lowJSValue(node->child2(), ManualOperandSpeculation);
         speculate(node, node->child1());
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to