⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Changeset 245051 in webkit


Ignore:
Timestamp:
May 7, 2019, 9:56:34 PM (7 years ago)
Author:
ysuzuki@apple.com
Message:

[JSC] DFG_ASSERT failed in lowInt52
https://bugs.webkit.org/show_bug.cgi?id=197569

Reviewed by Saam Barati.

JSTests:

  • stress/getstack-int52.js: Added.

(opt):
(main):

Source/JavaScriptCore:

GetStack with FlushedInt52 should load the flushed value in Int52 form and put the result in m_int52Values / m_strictInt52Values. Previously,
we load it in JSValue / Int32 form and lowInt52 fails to get appropriate one since GetStack does not put the result in m_int52Values / m_strictInt52Values.

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileGetStack):

Location:
trunk
Files:
1 added
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/JSTests/ChangeLog

    r245047 r245051  
     12019-05-07  Yusuke Suzuki  <ysuzuki@apple.com>
     2
     3        [JSC] DFG_ASSERT failed in lowInt52
     4        https://bugs.webkit.org/show_bug.cgi?id=197569
     5
     6        Reviewed by Saam Barati.
     7
     8        * stress/getstack-int52.js: Added.
     9        (opt):
     10        (main):
     11
    1122019-05-07  Yusuke Suzuki  <ysuzuki@apple.com>
    213
  • trunk/Source/JavaScriptCore/ChangeLog

    r245050 r245051  
     12019-05-07  Yusuke Suzuki  <ysuzuki@apple.com>
     2
     3        [JSC] DFG_ASSERT failed in lowInt52
     4        https://bugs.webkit.org/show_bug.cgi?id=197569
     5
     6        Reviewed by Saam Barati.
     7
     8        GetStack with FlushedInt52 should load the flushed value in Int52 form and put the result in m_int52Values / m_strictInt52Values. Previously,
     9        we load it in JSValue / Int32 form and lowInt52 fails to get appropriate one since GetStack does not put the result in m_int52Values / m_strictInt52Values.
     10
     11        * ftl/FTLLowerDFGToB3.cpp:
     12        (JSC::FTL::DFG::LowerDFGToB3::compileGetStack):
     13
    1142019-05-07  Yusuke Suzuki  <ysuzuki@apple.com>
    215
  • trunk/Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp

    r244763 r245051  
    19241924        DFG_ASSERT(m_graph, m_node, isConcrete(data->format), data->format);
    19251925       
    1926         if (data->format == FlushedDouble)
     1926        switch (data->format) {
     1927        case FlushedDouble:
    19271928            setDouble(m_out.loadDouble(addressFor(data->machineLocal)));
    1928         else if (isInt32Speculation(value.m_type))
    1929             setInt32(m_out.load32(payloadFor(data->machineLocal)));
    1930         else
    1931             setJSValue(m_out.load64(addressFor(data->machineLocal)));
     1929            break;
     1930        case FlushedInt52:
     1931            setInt52(m_out.load64(addressFor(data->machineLocal)));
     1932            break;
     1933        default:
     1934            if (isInt32Speculation(value.m_type))
     1935                setInt32(m_out.load32(payloadFor(data->machineLocal)));
     1936            else
     1937                setJSValue(m_out.load64(addressFor(data->machineLocal)));
     1938            break;
     1939        }
    19321940    }
    19331941   
Note: See TracChangeset for help on using the changeset viewer.