Ignore:
Timestamp:
May 25, 2011, 9:12:41 PM (14 years ago)
Author:
[email protected]
Message:

Bug 61501 - Unify AbstractMacroAssembler::differenceBetween methods.

Reviewed by Sam Weinig.

  • assembler/AbstractMacroAssembler.h:

(JSC::AbstractMacroAssembler::Call::Call):
(JSC::AbstractMacroAssembler::Call::fromTailJump):
(JSC::AbstractMacroAssembler::Jump::Jump):
(JSC::AbstractMacroAssembler::Jump::link):
(JSC::AbstractMacroAssembler::Jump::linkTo):
(JSC::AbstractMacroAssembler::Jump::isSet):
(JSC::AbstractMacroAssembler::differenceBetween):
(JSC::AbstractMacroAssembler::linkJump):
(JSC::AbstractMacroAssembler::getLinkerCallReturnOffset):

  • assembler/LinkBuffer.h:

(JSC::LinkBuffer::link):
(JSC::LinkBuffer::locationOf):
(JSC::LinkBuffer::locationOfNearCall):
(JSC::LinkBuffer::returnAddressOffset):

  • assembler/MacroAssemblerARM.h:

(JSC::MacroAssemblerARM::linkCall):

  • assembler/MacroAssemblerARMv7.h:

(JSC::MacroAssemblerARMv7::linkCall):

  • assembler/MacroAssemblerMIPS.h:

(JSC::MacroAssemblerMIPS::linkCall):

  • assembler/MacroAssemblerSH4.cpp:

(JSC::MacroAssemblerSH4::linkCall):

  • assembler/MacroAssemblerX86.h:

(JSC::MacroAssemblerX86::linkCall):

  • assembler/MacroAssemblerX86_64.h:

(JSC::MacroAssemblerX86_64::linkCall):

File:
1 edited

Legend:

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

    r86699 r87356  
    362362       
    363363        Call(AssemblerLabel jmp, Flags flags)
    364             : m_jmp(jmp)
     364            : m_label(jmp)
    365365            , m_flags(flags)
    366366        {
     
    374374        static Call fromTailJump(Jump jump)
    375375        {
    376             return Call(jump.m_jmp, Linkable);
    377         }
    378 
    379         AssemblerLabel m_jmp;
     376            return Call(jump.m_label, Linkable);
     377        }
     378
     379        AssemblerLabel m_label;
    380380    private:
    381381        Flags m_flags;
     
    401401        // Fixme: this information should be stored in the instruction stream, not in the Jump object.
    402402        Jump(AssemblerLabel jmp, ARMv7Assembler::JumpType type, ARMv7Assembler::Condition condition = ARMv7Assembler::ConditionInvalid)
    403             : m_jmp(jmp)
     403            : m_label(jmp)
    404404            , m_type(type)
    405405            , m_condition(condition)
     
    408408#else
    409409        Jump(AssemblerLabel jmp)   
    410             : m_jmp(jmp)
     410            : m_label(jmp)
    411411        {
    412412        }
     
    416416        {
    417417#if CPU(ARM_THUMB2)
    418             masm->m_assembler.linkJump(m_jmp, masm->m_assembler.label(), m_type, m_condition);
     418            masm->m_assembler.linkJump(m_label, masm->m_assembler.label(), m_type, m_condition);
    419419#else
    420             masm->m_assembler.linkJump(m_jmp, masm->m_assembler.label());
     420            masm->m_assembler.linkJump(m_label, masm->m_assembler.label());
    421421#endif
    422422        }
     
    425425        {
    426426#if CPU(ARM_THUMB2)
    427             masm->m_assembler.linkJump(m_jmp, label.m_label, m_type, m_condition);
     427            masm->m_assembler.linkJump(m_label, label.m_label, m_type, m_condition);
    428428#else
    429             masm->m_assembler.linkJump(m_jmp, label.m_label);
    430 #endif
    431         }
    432 
    433         bool isSet() const { return m_jmp.isSet(); }
    434 
    435     private:
    436         AssemblerLabel m_jmp;
     429            masm->m_assembler.linkJump(m_label, label.m_label);
     430#endif
     431        }
     432
     433        bool isSet() const { return m_label.isSet(); }
     434
     435    private:
     436        AssemblerLabel m_label;
    437437#if CPU(ARM_THUMB2)
    438438        ARMv7Assembler::JumpType m_type;
     
    506506    }
    507507
    508     ptrdiff_t differenceBetween(Label from, Jump to)
    509     {
    510         return AssemblerType::getDifferenceBetweenLabels(from.m_label, to.m_jmp);
    511     }
    512 
    513     ptrdiff_t differenceBetween(Label from, Call to)
    514     {
    515         return AssemblerType::getDifferenceBetweenLabels(from.m_label, to.m_jmp);
    516     }
    517 
    518     ptrdiff_t differenceBetween(Label from, Label to)
     508    template<typename T, typename U>
     509    ptrdiff_t differenceBetween(T from, U to)
    519510    {
    520511        return AssemblerType::getDifferenceBetweenLabels(from.m_label, to.m_label);
    521     }
    522 
    523     ptrdiff_t differenceBetween(Label from, DataLabelPtr to)
    524     {
    525         return AssemblerType::getDifferenceBetweenLabels(from.m_label, to.m_label);
    526     }
    527 
    528     ptrdiff_t differenceBetween(Label from, DataLabel32 to)
    529     {
    530         return AssemblerType::getDifferenceBetweenLabels(from.m_label, to.m_label);
    531     }
    532    
    533     ptrdiff_t differenceBetween(Label from, DataLabelCompact to)
    534     {
    535         return AssemblerType::getDifferenceBetweenLabels(from.m_label, to.m_label);
    536     }
    537 
    538     ptrdiff_t differenceBetween(DataLabelPtr from, Jump to)
    539     {
    540         return AssemblerType::getDifferenceBetweenLabels(from.m_label, to.m_jmp);
    541     }
    542 
    543     ptrdiff_t differenceBetween(DataLabelPtr from, DataLabelPtr to)
    544     {
    545         return AssemblerType::getDifferenceBetweenLabels(from.m_label, to.m_label);
    546     }
    547 
    548     ptrdiff_t differenceBetween(DataLabelPtr from, Call to)
    549     {
    550         return AssemblerType::getDifferenceBetweenLabels(from.m_label, to.m_jmp);
    551512    }
    552513
     
    571532    static void linkJump(void* code, Jump jump, CodeLocationLabel target)
    572533    {
    573         AssemblerType::linkJump(code, jump.m_jmp, target.dataLocation());
     534        AssemblerType::linkJump(code, jump.m_label, target.dataLocation());
    574535    }
    575536
     
    586547    static unsigned getLinkerCallReturnOffset(Call call)
    587548    {
    588         return AssemblerType::getCallReturnOffset(call.m_jmp);
     549        return AssemblerType::getCallReturnOffset(call.m_label);
    589550    }
    590551
Note: See TracChangeset for help on using the changeset viewer.