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/MacroAssemblerARMv7.h

    r115363 r116233  
    11361136        uint32_t value = imm.m_value;
    11371137
    1138         if (imm.m_isPointer)
    1139             moveFixedWidthEncoding(imm, dest);
     1138        ARMThumbImmediate armImm = ARMThumbImmediate::makeEncodedImm(value);
     1139
     1140        if (armImm.isValid())
     1141            m_assembler.mov(dest, armImm);
     1142        else if ((armImm = ARMThumbImmediate::makeEncodedImm(~value)).isValid())
     1143            m_assembler.mvn(dest, armImm);
    11401144        else {
    1141             ARMThumbImmediate armImm = ARMThumbImmediate::makeEncodedImm(value);
    1142 
    1143             if (armImm.isValid())
    1144                 m_assembler.mov(dest, armImm);
    1145             else if ((armImm = ARMThumbImmediate::makeEncodedImm(~value)).isValid())
    1146                 m_assembler.mvn(dest, armImm);
    1147             else {
    1148                 m_assembler.mov(dest, ARMThumbImmediate::makeUInt16(value));
    1149                 if (value & 0xffff0000)
    1150                     m_assembler.movt(dest, ARMThumbImmediate::makeUInt16(value >> 16));
    1151             }
     1145            m_assembler.mov(dest, ARMThumbImmediate::makeUInt16(value));
     1146            if (value & 0xffff0000)
     1147                m_assembler.movt(dest, ARMThumbImmediate::makeUInt16(value >> 16));
    11521148        }
    11531149    }
Note: See TracChangeset for help on using the changeset viewer.