Changeset 70642 in webkit


Ignore:
Timestamp:
Oct 27, 2010 6:48:11 AM (13 years ago)
Author:
loki@webkit.org
Message:

2010-10-27 Gabor Loki <loki@webkit.org>

Reviewed by Csaba Osztrogonác.

Add cmn to branch32(reg, imm) on ARM
https://bugs.webkit.org/show_bug.cgi?id=48062

The conditional comparison can be done with cmn if the imm value is
negative and can fit into the cmn instruction.

  • assembler/MacroAssemblerARM.h: (JSC::MacroAssemblerARM::branch32):
Location:
trunk/JavaScriptCore
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/JavaScriptCore/ChangeLog

    r70588 r70642  
     12010-10-27  Gabor Loki  <loki@webkit.org>
     2
     3        Reviewed by Csaba Osztrogonác.
     4
     5        Add cmn to branch32(reg, imm) on ARM
     6        https://bugs.webkit.org/show_bug.cgi?id=48062
     7
     8        The conditional comparison can be done with cmn if the imm value is
     9        negative and can fit into the cmn instruction.
     10
     11        * assembler/MacroAssemblerARM.h:
     12        (JSC::MacroAssemblerARM::branch32):
     13
    1142010-10-26  Oliver Hunt  <oliver@apple.com>
    215
  • trunk/JavaScriptCore/assembler/MacroAssemblerARM.h

    r65993 r70642  
    401401            m_assembler.ldr_un_imm(ARMRegisters::S0, right.m_value);
    402402            m_assembler.cmp_r(left, ARMRegisters::S0);
    403         } else
    404             m_assembler.cmp_r(left, m_assembler.getImm(right.m_value, ARMRegisters::S0));
     403        } else {
     404            ARMWord tmp = m_assembler.getOp2(-right.m_value);
     405            if (tmp != ARMAssembler::INVALID_IMM)
     406                m_assembler.cmn_r(left, tmp);
     407            else
     408                m_assembler.cmp_r(left, m_assembler.getImm(right.m_value, ARMRegisters::S0));
     409        }
    405410        return Jump(m_assembler.jmp(ARMCondition(cond), useConstantPool));
    406411    }
Note: See TracChangeset for help on using the changeset viewer.