Changeset 199261 in webkit


Ignore:
Timestamp:
Apr 8, 2016 6:20:29 PM (8 years ago)
Author:
commit-queue@webkit.org
Message:

MIPS: support Signed cond in branchTest32()
https://bugs.webkit.org/show_bug.cgi?id=156260

This is needed since r197688 makes use of it.

Patch by Guillaume Emont <guijemont@igalia.com> on 2016-04-08
Reviewed by Mark Lam.

  • assembler/MacroAssemblerMIPS.h:

(JSC::MacroAssemblerMIPS::branchTest32):

Location:
trunk/Source/JavaScriptCore
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/ChangeLog

    r199257 r199261  
     12016-04-08  Guillaume Emont  <guijemont@igalia.com>
     2
     3        MIPS: support Signed cond in branchTest32()
     4        https://bugs.webkit.org/show_bug.cgi?id=156260
     5
     6        This is needed since r197688 makes use of it.
     7
     8        Reviewed by Mark Lam.
     9
     10        * assembler/MacroAssemblerMIPS.h:
     11        (JSC::MacroAssemblerMIPS::branchTest32):
     12
    1132016-04-08  Alex Christensen  <achristensen@webkit.org>
    214
  • trunk/Source/JavaScriptCore/assembler/MacroAssemblerMIPS.h

    r198981 r199261  
    15001500    Jump branchTest32(ResultCondition cond, RegisterID reg, RegisterID mask)
    15011501    {
    1502         ASSERT((cond == Zero) || (cond == NonZero));
     1502        ASSERT((cond == Zero) || (cond == NonZero) || (cond == Signed));
    15031503        m_assembler.andInsn(cmpTempRegister, reg, mask);
    1504         if (cond == Zero)
     1504        switch (cond) {
     1505        case Zero:
    15051506            return branchEqual(cmpTempRegister, MIPSRegisters::zero);
    1506         return branchNotEqual(cmpTempRegister, MIPSRegisters::zero);
     1507        case NonZero:
     1508            return branchNotEqual(cmpTempRegister, MIPSRegisters::zero);
     1509        case Signed:
     1510            m_assembler.slt(cmpTempRegister, cmpTempRegister, MIPSRegisters::zero);
     1511            return branchNotEqual(cmpTempRegister, MIPSRegisters::zero);
     1512        default:
     1513            RELEASE_ASSERT_NOT_REACHED();
     1514        }
    15071515    }
    15081516
    15091517    Jump branchTest32(ResultCondition cond, RegisterID reg, TrustedImm32 mask = TrustedImm32(-1))
    15101518    {
    1511         ASSERT((cond == Zero) || (cond == NonZero));
     1519        ASSERT((cond == Zero) || (cond == NonZero) || (cond == Signed));
    15121520        if (mask.m_value == -1 && !m_fixedWidth) {
    1513             if (cond == Zero)
     1521            switch (cond) {
     1522            case Zero:
    15141523                return branchEqual(reg, MIPSRegisters::zero);
    1515             return branchNotEqual(reg, MIPSRegisters::zero);
     1524            case NonZero:
     1525                return branchNotEqual(reg, MIPSRegisters::zero);
     1526            case Signed:
     1527                m_assembler.slt(cmpTempRegister, reg, MIPSRegisters::zero);
     1528                return branchNotEqual(cmpTempRegister, MIPSRegisters::zero);
     1529            default:
     1530                RELEASE_ASSERT_NOT_REACHED();
     1531            }
    15161532        }
    15171533        move(mask, immTempRegister);
Note: See TracChangeset for help on using the changeset viewer.