Changeset 260549 in webkit


Ignore:
Timestamp:
Apr 22, 2020 7:14:22 PM (4 years ago)
Author:
sbarati@apple.com
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):

Location:
trunk/Source/JavaScriptCore
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/ChangeLog

    r260522 r260549  
     12020-04-22  Saam Barati  <sbarati@apple.com>
     2
     3        Edge use kind asserts are wrong for BigInt32 on ValueBitLShift
     4        https://bugs.webkit.org/show_bug.cgi?id=210872
     5
     6        Reviewed by Yusuke Suzuki, Mark Lam, and Robin Morisset.
     7
     8        This is already covered by the v8 tests Yusuke checked in.
     9
     10        * dfg/DFGSpeculativeJIT.cpp:
     11        (JSC::DFG::SpeculativeJIT::emitUntypedOrAnyBigIntBitOp):
     12        * ftl/FTLLowerDFGToB3.cpp:
     13        (JSC::FTL::DFG::LowerDFGToB3::compileValueBitLShift):
     14        (JSC::FTL::DFG::LowerDFGToB3::emitBinaryBitOpSnippet):
     15
    1162020-04-22  Yusuke Suzuki  <ysuzuki@apple.com>
    217
  • trunk/Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp

    r260490 r260549  
    36203620    Edge& rightChild = node->child2();
    36213621
    3622     ASSERT(leftChild.useKind() == UntypedUse || leftChild.useKind() == AnyBigIntUse || rightChild.useKind() == UntypedUse || rightChild.useKind() == AnyBigIntUse);
     3622    DFG_ASSERT(m_jit.graph(), node, node->isBinaryUseKind(UntypedUse) || node->isBinaryUseKind(AnyBigIntUse) || node->isBinaryUseKind(HeapBigIntUse) || node->isBinaryUseKind(BigInt32Use));
    36233623
    36243624    if (isKnownNotNumber(leftChild.node()) || isKnownNotNumber(rightChild.node())) {
  • trunk/Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp

    r260517 r260549  
    34713471        }
    34723472
    3473         ASSERT(m_node->isBinaryUseKind(UntypedUse));
     3473        DFG_ASSERT(m_graph, m_node, m_node->isBinaryUseKind(UntypedUse) || m_node->isBinaryUseKind(AnyBigIntUse) || m_node->isBinaryUseKind(BigInt32Use));
    34743474        emitBinaryBitOpSnippet<JITLeftShiftGenerator>(operationValueBitLShift);
    34753475    }
     
    1475314753        Node* node = m_node;
    1475414754       
    14755         ASSERT(node->isBinaryUseKind(UntypedUse) || node->isBinaryUseKind(AnyBigIntUse));
     14755        DFG_ASSERT(m_graph, node, node->isBinaryUseKind(UntypedUse) || node->isBinaryUseKind(AnyBigIntUse) || node->isBinaryUseKind(BigInt32Use));
    1475614756        LValue left = lowJSValue(node->child1(), ManualOperandSpeculation);
    1475714757        LValue right = lowJSValue(node->child2(), ManualOperandSpeculation);
Note: See TracChangeset for help on using the changeset viewer.