Ignore:
Timestamp:
Mar 7, 2012, 3:30:29 AM (13 years ago)
Author:
Simon Hausmann
Message:

ARM build fix.

Reviewed by Zoltan Herczeg.

Implement three-argument branch(Add,Sub)32.

  • assembler/MacroAssemblerARM.h:

(JSC::MacroAssemblerARM::add32):
(MacroAssemblerARM):
(JSC::MacroAssemblerARM::sub32):
(JSC::MacroAssemblerARM::branchAdd32):
(JSC::MacroAssemblerARM::branchSub32):

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/assembler/MacroAssemblerARM.h

    r109883 r110044  
    109109    }
    110110
     111    void add32(RegisterID src, TrustedImm32 imm, RegisterID dest)
     112    {
     113        m_assembler.adds_r(dest, src, m_assembler.getImm(imm.m_value, ARMRegisters::S0));
     114    }
     115
    111116    void and32(RegisterID src, RegisterID dest)
    112117    {
     
    235240        load32(src, ARMRegisters::S1);
    236241        sub32(ARMRegisters::S1, dest);
     242    }
     243
     244    void sub32(RegisterID src, TrustedImm32 imm, RegisterID dest)
     245    {
     246        m_assembler.subs_r(dest, src, m_assembler.getImm(imm.m_value, ARMRegisters::S0));
    237247    }
    238248
     
    555565    }
    556566
     567    Jump branchAdd32(ResultCondition cond, RegisterID src, TrustedImm32 imm, RegisterID dest)
     568    {
     569        ASSERT((cond == Overflow) || (cond == Signed) || (cond == Zero) || (cond == NonZero));
     570        add32(src, imm, dest);
     571        return Jump(m_assembler.jmp(ARMCondition(cond)));
     572    }
     573
    557574    void mull32(RegisterID src1, RegisterID src2, RegisterID dest)
    558575    {
     
    601618        ASSERT((cond == Overflow) || (cond == Signed) || (cond == Zero) || (cond == NonZero));
    602619        sub32(imm, dest);
     620        return Jump(m_assembler.jmp(ARMCondition(cond)));
     621    }
     622
     623    Jump branchSub32(ResultCondition cond, RegisterID src, TrustedImm32 imm, RegisterID dest)
     624    {
     625        ASSERT((cond == Overflow) || (cond == Signed) || (cond == Zero) || (cond == NonZero));
     626        sub32(src, imm, dest);
    603627        return Jump(m_assembler.jmp(ARMCondition(cond)));
    604628    }
Note: See TracChangeset for help on using the changeset viewer.