Changeset 194669 in webkit


Ignore:
Timestamp:
Jan 6, 2016 2:21:20 PM (8 years ago)
Author:
mark.lam@apple.com
Message:

REGRESSION(r194613): JITMulGenerator needs a scratch GPR on 32-bit too.
https://bugs.webkit.org/show_bug.cgi?id=152805

Reviewed by Michael Saboff.

There aren't enough registers on x86 32-bit to allocate the needed scratch GPR.
So, we'll continue to use one of the result registers as the scratch, and
re-compute the result at the end.

  • jit/JITMulGenerator.cpp:

(JSC::JITMulGenerator::generateFastPath):

Location:
trunk/Source/JavaScriptCore
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/ChangeLog

    r194665 r194669  
     12016-01-06  Mark Lam  <mark.lam@apple.com>
     2
     3        REGRESSION(r194613): JITMulGenerator needs a scratch GPR on 32-bit too.
     4        https://bugs.webkit.org/show_bug.cgi?id=152805
     5
     6        Reviewed by Michael Saboff.
     7
     8        There aren't enough registers on x86 32-bit to allocate the needed scratch GPR.
     9        So, we'll continue to use one of the result registers as the scratch, and
     10        re-compute the result at the end.
     11
     12        * jit/JITMulGenerator.cpp:
     13        (JSC::JITMulGenerator::generateFastPath):
     14
    1152016-01-06  Anders Carlsson  <andersca@apple.com>
    216
  • trunk/Source/JavaScriptCore/jit/JITMulGenerator.cpp

    r194613 r194669  
    3636    ASSERT(m_scratchGPR != m_left.payloadGPR());
    3737    ASSERT(m_scratchGPR != m_right.payloadGPR());
     38#if USE(JSVALUE64)
    3839    ASSERT(m_scratchGPR != m_result.payloadGPR());
    39 #if USE(JSVALUE32_64)
     40#else
    4041    ASSERT(m_scratchGPR != m_left.tagGPR());
    4142    ASSERT(m_scratchGPR != m_right.tagGPR());
     
    181182
    182183        m_endJumpList.append(noInt52Overflow);
     184        if (m_scratchGPR == m_result.tagGPR() || m_scratchGPR == m_result.payloadGPR())
     185            jit.boxDouble(m_leftFPR, m_result);
     186
    183187        m_endJumpList.append(done);
    184188#endif
Note: See TracChangeset for help on using the changeset viewer.