Changeset 260517 in webkit


Ignore:
Timestamp:
Apr 22, 2020, 9:34:47 AM (5 years ago)
Author:
sbarati@apple.com
Message:

ValueBitNot is wrong in FTL with AnyBigIntUse
https://bugs.webkit.org/show_bug.cgi?id=210846

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/big-int-value-bit-not-spec-any-big-int.js: Added.

(assert):
(foo):

Source/JavaScriptCore:

We forgot to speculate.

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileValueBitNot):

Location:
trunk
Files:
1 added
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/JSTests/ChangeLog

    r260512 r260517  
     12020-04-22  Saam Barati  <sbarati@apple.com>
     2
     3        ValueBitNot is wrong in FTL with AnyBigIntUse
     4        https://bugs.webkit.org/show_bug.cgi?id=210846
     5
     6        Reviewed by Yusuke Suzuki.
     7
     8        * stress/big-int-value-bit-not-spec-any-big-int.js: Added.
     9        (assert):
     10        (foo):
     11
    1122020-04-22  Yusuke Suzuki  <ysuzuki@apple.com>
    213
  • trunk/Source/JavaScriptCore/ChangeLog

    r260512 r260517  
     12020-04-22  Saam Barati  <sbarati@apple.com>
     2
     3        ValueBitNot is wrong in FTL with AnyBigIntUse
     4        https://bugs.webkit.org/show_bug.cgi?id=210846
     5
     6        Reviewed by Yusuke Suzuki.
     7
     8        We forgot to speculate.
     9
     10        * ftl/FTLLowerDFGToB3.cpp:
     11        (JSC::FTL::DFG::LowerDFGToB3::compileValueBitNot):
     12
    1132020-04-22  Yusuke Suzuki  <ysuzuki@apple.com>
    214
  • trunk/Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp

    r260512 r260517  
    33023302        }
    33033303
    3304         LValue operand = lowJSValue(m_node->child1());
     3304        DFG_ASSERT(m_graph, m_node, m_node->child1().useKind() == UntypedUse || m_node->child1().useKind() == AnyBigIntUse);
     3305        LValue operand = lowJSValue(m_node->child1(), ManualOperandSpeculation);
     3306        speculate(m_node, m_node->child1());
    33053307        LValue result = vmCall(Int64, operationValueBitNot, weakPointer(globalObject), operand);
    33063308        setJSValue(result);
Note: See TracChangeset for help on using the changeset viewer.