Changeset 87356 in webkit


Ignore:
Timestamp:
May 25, 2011 9:12:41 PM (13 years ago)
Author:
barraclough@apple.com
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):

Location:
trunk/Source/JavaScriptCore
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/ChangeLog

    r87355 r87356  
     12011-05-25  Gavin Barraclough  <barraclough@apple.com>
     2
     3        Reviewed by Sam Weinig.
     4
     5        Bug 61501 - Unify AbstractMacroAssembler::differenceBetween methods.
     6
     7        * assembler/AbstractMacroAssembler.h:
     8        (JSC::AbstractMacroAssembler::Call::Call):
     9        (JSC::AbstractMacroAssembler::Call::fromTailJump):
     10        (JSC::AbstractMacroAssembler::Jump::Jump):
     11        (JSC::AbstractMacroAssembler::Jump::link):
     12        (JSC::AbstractMacroAssembler::Jump::linkTo):
     13        (JSC::AbstractMacroAssembler::Jump::isSet):
     14        (JSC::AbstractMacroAssembler::differenceBetween):
     15        (JSC::AbstractMacroAssembler::linkJump):
     16        (JSC::AbstractMacroAssembler::getLinkerCallReturnOffset):
     17        * assembler/LinkBuffer.h:
     18        (JSC::LinkBuffer::link):
     19        (JSC::LinkBuffer::locationOf):
     20        (JSC::LinkBuffer::locationOfNearCall):
     21        (JSC::LinkBuffer::returnAddressOffset):
     22        * assembler/MacroAssemblerARM.h:
     23        (JSC::MacroAssemblerARM::linkCall):
     24        * assembler/MacroAssemblerARMv7.h:
     25        (JSC::MacroAssemblerARMv7::linkCall):
     26        * assembler/MacroAssemblerMIPS.h:
     27        (JSC::MacroAssemblerMIPS::linkCall):
     28        * assembler/MacroAssemblerSH4.cpp:
     29        (JSC::MacroAssemblerSH4::linkCall):
     30        * assembler/MacroAssemblerX86.h:
     31        (JSC::MacroAssemblerX86::linkCall):
     32        * assembler/MacroAssemblerX86_64.h:
     33        (JSC::MacroAssemblerX86_64::linkCall):
     34
    1352011-05-25  Gavin Barraclough  <barraclough@apple.com>
    236
  • 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
  • trunk/Source/JavaScriptCore/assembler/LinkBuffer.h

    r86699 r87356  
    102102    {
    103103        ASSERT(call.isFlagSet(Call::Linkable));
    104         call.m_jmp = applyOffset(call.m_jmp);
     104        call.m_label = applyOffset(call.m_label);
    105105        MacroAssembler::linkCall(code(), call, function);
    106106    }
     
    108108    void link(Jump jump, CodeLocationLabel label)
    109109    {
    110         jump.m_jmp = applyOffset(jump.m_jmp);
     110        jump.m_label = applyOffset(jump.m_label);
    111111        MacroAssembler::linkJump(code(), jump, label);
    112112    }
     
    136136        ASSERT(call.isFlagSet(Call::Linkable));
    137137        ASSERT(!call.isFlagSet(Call::Near));
    138         return CodeLocationCall(MacroAssembler::getLinkerAddress(code(), applyOffset(call.m_jmp)));
     138        return CodeLocationCall(MacroAssembler::getLinkerAddress(code(), applyOffset(call.m_label)));
    139139    }
    140140
     
    143143        ASSERT(call.isFlagSet(Call::Linkable));
    144144        ASSERT(call.isFlagSet(Call::Near));
    145         return CodeLocationNearCall(MacroAssembler::getLinkerAddress(code(), applyOffset(call.m_jmp)));
     145        return CodeLocationNearCall(MacroAssembler::getLinkerAddress(code(), applyOffset(call.m_label)));
    146146    }
    147147
     
    170170    unsigned returnAddressOffset(Call call)
    171171    {
    172         call.m_jmp = applyOffset(call.m_jmp);
     172        call.m_label = applyOffset(call.m_label);
    173173        return MacroAssembler::getLinkerCallReturnOffset(call);
    174174    }
  • trunk/Source/JavaScriptCore/assembler/MacroAssemblerARM.h

    r86919 r87356  
    10221022    static void linkCall(void* code, Call call, FunctionPtr function)
    10231023    {
    1024         ARMAssembler::linkCall(code, call.m_jmp, function.value());
     1024        ARMAssembler::linkCall(code, call.m_label, function.value());
    10251025    }
    10261026
  • trunk/Source/JavaScriptCore/assembler/MacroAssemblerARMv7.h

    r86999 r87356  
    13461346    static void linkCall(void* code, Call call, FunctionPtr function)
    13471347    {
    1348         ARMv7Assembler::linkCall(code, call.m_jmp, function.value());
     1348        ARMv7Assembler::linkCall(code, call.m_label, function.value());
    13491349    }
    13501350
  • trunk/Source/JavaScriptCore/assembler/MacroAssemblerMIPS.h

    r86919 r87356  
    17871787    static void linkCall(void* code, Call call, FunctionPtr function)
    17881788    {
    1789         MIPSAssembler::linkCall(code, call.m_jmp, function.value());
     1789        MIPSAssembler::linkCall(code, call.m_label, function.value());
    17901790    }
    17911791
  • trunk/Source/JavaScriptCore/assembler/MacroAssemblerSH4.cpp

    r84796 r87356  
    3535void MacroAssemblerSH4::linkCall(void* code, Call call, FunctionPtr function)
    3636{
    37     SH4Assembler::linkCall(code, call.m_jmp, function.value());
     37    SH4Assembler::linkCall(code, call.m_label, function.value());
    3838}
    3939
  • trunk/Source/JavaScriptCore/assembler/MacroAssemblerX86.h

    r84399 r87356  
    176176    static void linkCall(void* code, Call call, FunctionPtr function)
    177177    {
    178         X86Assembler::linkCall(code, call.m_jmp, function.value());
     178        X86Assembler::linkCall(code, call.m_label, function.value());
    179179    }
    180180
  • trunk/Source/JavaScriptCore/assembler/MacroAssemblerX86_64.h

    r86699 r87356  
    465465    {
    466466        if (!call.isFlagSet(Call::Near))
    467             X86Assembler::linkPointer(code, call.m_jmp.labelAtOffset(-REPTACH_OFFSET_CALL_R11), function.value());
     467            X86Assembler::linkPointer(code, call.m_label.labelAtOffset(-REPTACH_OFFSET_CALL_R11), function.value());
    468468        else
    469             X86Assembler::linkCall(code, call.m_jmp, function.value());
     469            X86Assembler::linkCall(code, call.m_label, function.value());
    470470    }
    471471
Note: See TracChangeset for help on using the changeset viewer.