Ignore:
Timestamp:
May 5, 2012, 10:27:29 PM (13 years ago)
Author:
[email protected]
Message:

Remove TrustedImm32::m_isPointer
https://bugs.webkit.org/show_bug.cgi?id=85726

Rubber stamped by Sam Weinig.

We used to rely on being able to generate code with known, fixed offsets – to do so we
would inhibit more optimal code generation for pointers. This is no longer necessary.

  • assembler/AbstractMacroAssembler.h:

(JSC::AbstractMacroAssembler::TrustedImm32::TrustedImm32):
(TrustedImm32):

  • assembler/MacroAssemblerARM.h:

(JSC::MacroAssemblerARM::store32):
(JSC::MacroAssemblerARM::move):
(JSC::MacroAssemblerARM::branch32):

  • assembler/MacroAssemblerARMv7.h:

(JSC::MacroAssemblerARMv7::move):

  • assembler/MacroAssemblerMIPS.h:

(JSC::MacroAssemblerMIPS::add32):
(JSC::MacroAssemblerMIPS::and32):
(JSC::MacroAssemblerMIPS::mul32):
(JSC::MacroAssemblerMIPS::or32):
(JSC::MacroAssemblerMIPS::sub32):
(JSC::MacroAssemblerMIPS::store32):
(JSC::MacroAssemblerMIPS::move):

File:
1 edited

Legend:

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

    r115929 r116233  
    377377    void store32(TrustedImm32 imm, ImplicitAddress address)
    378378    {
    379         if (imm.m_isPointer)
    380             m_assembler.ldr_un_imm(ARMRegisters::S1, imm.m_value);
    381         else
    382             move(imm, ARMRegisters::S1);
     379        move(imm, ARMRegisters::S1);
    383380        store32(ARMRegisters::S1, address);
    384381    }
     
    393390    {
    394391        m_assembler.ldr_un_imm(ARMRegisters::S0, reinterpret_cast<ARMWord>(address));
    395         if (imm.m_isPointer)
    396             m_assembler.ldr_un_imm(ARMRegisters::S1, imm.m_value);
    397         else
    398             m_assembler.moveImm(imm.m_value, ARMRegisters::S1);
     392        m_assembler.moveImm(imm.m_value, ARMRegisters::S1);
    399393        m_assembler.dtr_u(false, ARMRegisters::S1, ARMRegisters::S0, 0);
    400394    }
     
    424418    void move(TrustedImm32 imm, RegisterID dest)
    425419    {
    426         if (imm.m_isPointer)
    427             m_assembler.ldr_un_imm(dest, imm.m_value);
    428         else
    429             m_assembler.moveImm(imm.m_value, dest);
     420        m_assembler.moveImm(imm.m_value, dest);
    430421    }
    431422
     
    480471    Jump branch32(RelationalCondition cond, RegisterID left, TrustedImm32 right, int useConstantPool = 0)
    481472    {
    482         if (right.m_isPointer) {
    483             m_assembler.ldr_un_imm(ARMRegisters::S0, right.m_value);
    484             m_assembler.cmp_r(left, ARMRegisters::S0);
    485         } else {
    486             ARMWord tmp = (right.m_value == 0x80000000) ? ARMAssembler::INVALID_IMM : m_assembler.getOp2(-right.m_value);
    487             if (tmp != ARMAssembler::INVALID_IMM)
    488                 m_assembler.cmn_r(left, tmp);
    489             else
    490                 m_assembler.cmp_r(left, m_assembler.getImm(right.m_value, ARMRegisters::S0));
    491         }
     473        ARMWord tmp = (right.m_value == 0x80000000) ? ARMAssembler::INVALID_IMM : m_assembler.getOp2(-right.m_value);
     474        if (tmp != ARMAssembler::INVALID_IMM)
     475            m_assembler.cmn_r(left, tmp);
     476        else
     477            m_assembler.cmp_r(left, m_assembler.getImm(right.m_value, ARMRegisters::S0));
    492478        return Jump(m_assembler.jmp(ARMCondition(cond), useConstantPool));
    493479    }
Note: See TracChangeset for help on using the changeset viewer.