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

    r113934 r116233  
    117117    void add32(TrustedImm32 imm, RegisterID src, RegisterID dest)
    118118    {
    119         if (!imm.m_isPointer && imm.m_value >= -32768 && imm.m_value <= 32767
     119        if (imm.m_value >= -32768 && imm.m_value <= 32767
    120120            && !m_fixedWidth) {
    121121            /*
     
    149149            */
    150150            m_assembler.lw(dataTempRegister, address.base, address.offset);
    151             if (!imm.m_isPointer
    152                 && imm.m_value >= -32768 && imm.m_value <= 32767
     151            if (imm.m_value >= -32768 && imm.m_value <= 32767
    153152                && !m_fixedWidth)
    154153                m_assembler.addiu(dataTempRegister, dataTempRegister,
     
    229228        move(TrustedImmPtr(address.m_ptr), addrTempRegister);
    230229        m_assembler.lw(dataTempRegister, addrTempRegister, 0);
    231         if (!imm.m_isPointer && imm.m_value >= -32768 && imm.m_value <= 32767
     230        if (imm.m_value >= -32768 && imm.m_value <= 32767
    232231            && !m_fixedWidth)
    233232            m_assembler.addiu(dataTempRegister, dataTempRegister, imm.m_value);
     
    246245    void and32(TrustedImm32 imm, RegisterID dest)
    247246    {
    248         if (!imm.m_isPointer && !imm.m_value && !m_fixedWidth)
     247        if (!imm.m_value && !m_fixedWidth)
    249248            move(MIPSRegisters::zero, dest);
    250         else if (!imm.m_isPointer && imm.m_value > 0 && imm.m_value < 65535
     249        else if (imm.m_value > 0 && imm.m_value < 65535
    251250                 && !m_fixedWidth)
    252251            m_assembler.andi(dest, dest, imm.m_value);
     
    278277    void mul32(TrustedImm32 imm, RegisterID src, RegisterID dest)
    279278    {
    280         if (!imm.m_isPointer && !imm.m_value && !m_fixedWidth)
     279        if (!imm.m_value && !m_fixedWidth)
    281280            move(MIPSRegisters::zero, dest);
    282         else if (!imm.m_isPointer && imm.m_value == 1 && !m_fixedWidth)
     281        else if (imm.m_value == 1 && !m_fixedWidth)
    283282            move(src, dest);
    284283        else {
     
    309308    void or32(TrustedImm32 imm, RegisterID dest)
    310309    {
    311         if (!imm.m_isPointer && !imm.m_value && !m_fixedWidth)
     310        if (!imm.m_value && !m_fixedWidth)
    312311            return;
    313312
    314         if (!imm.m_isPointer && imm.m_value > 0 && imm.m_value < 65535
     313        if (imm.m_value > 0 && imm.m_value < 65535
    315314            && !m_fixedWidth) {
    316315            m_assembler.ori(dest, dest, imm.m_value);
     
    358357    void sub32(TrustedImm32 imm, RegisterID dest)
    359358    {
    360         if (!imm.m_isPointer && imm.m_value >= -32767 && imm.m_value <= 32768
     359        if (imm.m_value >= -32767 && imm.m_value <= 32768
    361360            && !m_fixedWidth) {
    362361            /*
     
    376375    void sub32(RegisterID src, TrustedImm32 imm, RegisterID dest)
    377376    {
    378         if (!imm.m_isPointer && imm.m_value >= -32767 && imm.m_value <= 32768
     377        if (imm.m_value >= -32767 && imm.m_value <= 32768
    379378            && !m_fixedWidth) {
    380379            /*
     
    403402            */
    404403            m_assembler.lw(dataTempRegister, address.base, address.offset);
    405             if (!imm.m_isPointer
    406                 && imm.m_value >= -32767 && imm.m_value <= 32768
     404            if (imm.m_value >= -32767 && imm.m_value <= 32768
    407405                && !m_fixedWidth)
    408406                m_assembler.addiu(dataTempRegister, dataTempRegister,
     
    427425            m_assembler.lw(dataTempRegister, addrTempRegister, address.offset);
    428426
    429             if (!imm.m_isPointer
    430                 && imm.m_value >= -32767 && imm.m_value <= 32768
     427            if (imm.m_value >= -32767 && imm.m_value <= 32768
    431428                && !m_fixedWidth)
    432429                m_assembler.addiu(dataTempRegister, dataTempRegister,
     
    459456        m_assembler.lw(dataTempRegister, addrTempRegister, 0);
    460457
    461         if (!imm.m_isPointer && imm.m_value >= -32767 && imm.m_value <= 32768
     458        if (imm.m_value >= -32767 && imm.m_value <= 32768
    462459            && !m_fixedWidth) {
    463460            m_assembler.addiu(dataTempRegister, dataTempRegister,
     
    808805        if (address.offset >= -32768 && address.offset <= 32767
    809806            && !m_fixedWidth) {
    810             if (!imm.m_isPointer && !imm.m_value)
     807            if (!imm.m_value)
    811808                m_assembler.sw(MIPSRegisters::zero, address.base,
    812809                               address.offset);
     
    823820            m_assembler.lui(addrTempRegister, (address.offset + 0x8000) >> 16);
    824821            m_assembler.addu(addrTempRegister, addrTempRegister, address.base);
    825             if (!imm.m_isPointer && !imm.m_value && !m_fixedWidth)
     822            if (!imm.m_value && !m_fixedWidth)
    826823                m_assembler.sw(MIPSRegisters::zero, addrTempRegister,
    827824                               address.offset);
     
    851848            sw  src, 0(addrTemp)
    852849        */
    853         if (!imm.m_isPointer && !imm.m_value && !m_fixedWidth) {
     850        if (!imm.m_value && !m_fixedWidth) {
    854851            move(TrustedImmPtr(address), addrTempRegister);
    855852            m_assembler.sw(MIPSRegisters::zero, addrTempRegister, 0);
     
    929926    void move(TrustedImm32 imm, RegisterID dest)
    930927    {
    931         if (!imm.m_isPointer && !imm.m_value && !m_fixedWidth)
     928        if (!imm.m_value && !m_fixedWidth)
    932929            move(MIPSRegisters::zero, dest);
    933         else if (imm.m_isPointer || m_fixedWidth) {
     930        else if (m_fixedWidth) {
    934931            m_assembler.lui(dest, imm.m_value >> 16);
    935932            m_assembler.ori(dest, dest, imm.m_value);
Note: See TracChangeset for help on using the changeset viewer.