Changeset 229863 in webkit


Ignore:
Timestamp:
Mar 22, 2018, 2:24:15 PM (7 years ago)
Author:
mark.lam@apple.com
Message:

Add placeholder call and jump MacroAssembler emitters that take PtrTag in a register.
https://bugs.webkit.org/show_bug.cgi?id=183914
<rdar://problem/38763536>

Reviewed by Saam Barati and JF Bastien.

This is in preparation for supporting pointer profiling work.

  • assembler/MacroAssemblerARM.h:

(JSC::MacroAssemblerARM::jump):
(JSC::MacroAssemblerARM::call):

  • assembler/MacroAssemblerARM64.h:

(JSC::MacroAssemblerARM64::call):
(JSC::MacroAssemblerARM64::jump):

  • assembler/MacroAssemblerARMv7.h:

(JSC::MacroAssemblerARMv7::jump):
(JSC::MacroAssemblerARMv7::call):

  • assembler/MacroAssemblerMIPS.h:

(JSC::MacroAssemblerMIPS::jump):
(JSC::MacroAssemblerMIPS::call):

  • assembler/MacroAssemblerX86.h:

(JSC::MacroAssemblerX86::call):
(JSC::MacroAssemblerX86::jump):

  • assembler/MacroAssemblerX86Common.h:

(JSC::MacroAssemblerX86Common::jump):
(JSC::MacroAssemblerX86Common::call):

  • assembler/MacroAssemblerX86_64.h:

(JSC::MacroAssemblerX86_64::call):
(JSC::MacroAssemblerX86_64::jump):

Location:
trunk/Source/JavaScriptCore
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/ChangeLog

    r229860 r229863  
     12018-03-22  Mark Lam  <mark.lam@apple.com>
     2
     3        Add placeholder call and jump MacroAssembler emitters that take PtrTag in a register.
     4        https://bugs.webkit.org/show_bug.cgi?id=183914
     5        <rdar://problem/38763536>
     6
     7        Reviewed by Saam Barati and JF Bastien.
     8
     9        This is in preparation for supporting pointer profiling work.
     10
     11        * assembler/MacroAssemblerARM.h:
     12        (JSC::MacroAssemblerARM::jump):
     13        (JSC::MacroAssemblerARM::call):
     14        * assembler/MacroAssemblerARM64.h:
     15        (JSC::MacroAssemblerARM64::call):
     16        (JSC::MacroAssemblerARM64::jump):
     17        * assembler/MacroAssemblerARMv7.h:
     18        (JSC::MacroAssemblerARMv7::jump):
     19        (JSC::MacroAssemblerARMv7::call):
     20        * assembler/MacroAssemblerMIPS.h:
     21        (JSC::MacroAssemblerMIPS::jump):
     22        (JSC::MacroAssemblerMIPS::call):
     23        * assembler/MacroAssemblerX86.h:
     24        (JSC::MacroAssemblerX86::call):
     25        (JSC::MacroAssemblerX86::jump):
     26        * assembler/MacroAssemblerX86Common.h:
     27        (JSC::MacroAssemblerX86Common::jump):
     28        (JSC::MacroAssemblerX86Common::call):
     29        * assembler/MacroAssemblerX86_64.h:
     30        (JSC::MacroAssemblerX86_64::call):
     31        (JSC::MacroAssemblerX86_64::jump):
     32
    1332018-03-22  Tim Horton  <timothy_horton@apple.com>
    234
  • trunk/Source/JavaScriptCore/assembler/MacroAssemblerARM.h

    r229767 r229863  
    806806    }
    807807
     808    ALWAYS_INLINE void jump(RegisterID target, RegisterID jumpTag) { UNUSED_PARAM(jumpTag), jump(target, NoPtrTag); }
     809    ALWAYS_INLINE void jump(Address address, RegisterID jumpTag) { UNUSED_PARAM(jumpTag), jump(address, NoPtrTag); }
     810    ALWAYS_INLINE void jump(AbsoluteAddress address, RegisterID jumpTag) { UNUSED_PARAM(jumpTag), jump(address, NoPtrTag); }
     811
    808812    void moveDoubleToInts(FPRegisterID src, RegisterID dest1, RegisterID dest2)
    809813    {
     
    11261130    }
    11271131
     1132    ALWAYS_INLINE Call call(RegisterID callTag) { return UNUSED_PARAM(callTag), call(NoPtrTag); }
     1133    ALWAYS_INLINE Call call(RegisterID target, RegisterID callTag) { return UNUSED_PARAM(callTag), call(target, NoPtrTag); }
     1134    ALWAYS_INLINE void call(Address address, RegisterID callTag) { UNUSED_PARAM(callTag), call(address, NoPtrTag); }
     1135
    11281136    Call tailRecursiveCall()
    11291137    {
  • trunk/Source/JavaScriptCore/assembler/MacroAssemblerARM64.h

    r229609 r229863  
    31093109    }
    31103110
     3111    ALWAYS_INLINE Call call(RegisterID callTag) { return UNUSED_PARAM(callTag), call(NoPtrTag); }
     3112    ALWAYS_INLINE Call call(RegisterID target, RegisterID callTag) { return UNUSED_PARAM(callTag), call(target, NoPtrTag); }
     3113    ALWAYS_INLINE Call call(Address address, RegisterID callTag) { return UNUSED_PARAM(callTag), call(address, NoPtrTag); }
     3114
    31113115    ALWAYS_INLINE Jump jump()
    31123116    {
     
    31393143        m_assembler.br(dataTempRegister);
    31403144    }
     3145
     3146    ALWAYS_INLINE void jump(RegisterID target, RegisterID jumpTag) { UNUSED_PARAM(jumpTag), jump(target, NoPtrTag); }
     3147    ALWAYS_INLINE void jump(Address address, RegisterID jumpTag) { UNUSED_PARAM(jumpTag), jump(address, NoPtrTag); }
     3148    ALWAYS_INLINE void jump(BaseIndex address, RegisterID jumpTag) { UNUSED_PARAM(jumpTag), jump(address, NoPtrTag); }
     3149    ALWAYS_INLINE void jump(AbsoluteAddress address, RegisterID jumpTag) { UNUSED_PARAM(jumpTag), jump(address, NoPtrTag); }
    31413150
    31423151    ALWAYS_INLINE Call makeTailRecursiveCall(Jump oldJump)
  • trunk/Source/JavaScriptCore/assembler/MacroAssemblerARMv7.h

    r229772 r229863  
    16261626    }
    16271627
     1628    ALWAYS_INLINE void jump(RegisterID target, RegisterID jumpTag) { UNUSED_PARAM(jumpTag), jump(target, NoPtrTag); }
     1629    ALWAYS_INLINE void jump(Address address, RegisterID jumpTag) { UNUSED_PARAM(jumpTag), jump(address, NoPtrTag); }
     1630    ALWAYS_INLINE void jump(AbsoluteAddress address, RegisterID jumpTag) { UNUSED_PARAM(jumpTag), jump(address, NoPtrTag); }
    16281631
    16291632    // Arithmetic control flow operations:
     
    18121815    }
    18131816
     1817    ALWAYS_INLINE Call call(RegisterID callTag) { return UNUSED_PARAM(callTag), call(NoPtrTag); }
     1818    ALWAYS_INLINE Call call(RegisterID target, RegisterID callTag) { return UNUSED_PARAM(callTag), call(target, NoPtrTag); }
     1819    ALWAYS_INLINE Call call(Address address, RegisterID callTag) { return UNUSED_PARAM(callTag), call(address, NoPtrTag); }
     1820
    18141821    ALWAYS_INLINE void ret()
    18151822    {
  • trunk/Source/JavaScriptCore/assembler/MacroAssemblerMIPS.h

    r229772 r229863  
    19261926    }
    19271927
     1928    ALWAYS_INLINE void jump(RegisterID target, RegisterID jumpTag) { UNUSED_PARAM(jumpTag), jump(target, NoPtrTag); }
     1929    ALWAYS_INLINE void jump(Address address, RegisterID jumpTag) { UNUSED_PARAM(jumpTag), jump(address, NoPtrTag); }
     1930    ALWAYS_INLINE void jump(AbsoluteAddress address, RegisterID jumpTag) { UNUSED_PARAM(jumpTag), jump(address, NoPtrTag); }
     1931
    19281932    void moveDoubleToInts(FPRegisterID src, RegisterID dest1, RegisterID dest2)
    19291933    {
     
    24292433        return Call(m_assembler.label(), Call::None);
    24302434    }
     2435
     2436    ALWAYS_INLINE Call call(RegisterID callTag) { return UNUSED_PARAM(callTag), call(NoPtrTag); }
     2437    ALWAYS_INLINE Call call(RegisterID target, RegisterID callTag) { return UNUSED_PARAM(callTag), call(target, NoPtrTag); }
     2438    ALWAYS_INLINE Call call(Address address, RegisterID callTag) { return UNUSED_PARAM(callTag), call(address, NoPtrTag); }
    24312439
    24322440    void ret()
  • trunk/Source/JavaScriptCore/assembler/MacroAssemblerX86.h

    r229767 r229863  
    219219    }
    220220
     221    ALWAYS_INLINE Call call(RegisterID callTag) { return UNUSED_PARAM(callTag), call(NoPtrTag); }
     222
    221223    // Address is a memory location containing the address to jump to
    222224    void jump(AbsoluteAddress address, PtrTag)
     
    224226        m_assembler.jmp_m(address.m_ptr);
    225227    }
     228
     229    ALWAYS_INLINE void jump(AbsoluteAddress address, RegisterID jumpTag) { UNUSED_PARAM(jumpTag), jump(address, NoPtrTag); }
    226230
    227231    Call tailRecursiveCall()
  • trunk/Source/JavaScriptCore/assembler/MacroAssemblerX86Common.h

    r229609 r229863  
    27142714    }
    27152715
     2716    ALWAYS_INLINE void jump(RegisterID target, RegisterID jumpTag) { UNUSED_PARAM(jumpTag), jump(target, NoPtrTag); }
     2717    ALWAYS_INLINE void jump(Address address, RegisterID jumpTag) { UNUSED_PARAM(jumpTag), jump(address, NoPtrTag); }
     2718    ALWAYS_INLINE void jump(BaseIndex address, RegisterID jumpTag) { UNUSED_PARAM(jumpTag), jump(address, NoPtrTag); }
    27162719
    27172720    // Arithmetic control flow operations:
     
    29042907        m_assembler.call_m(address.offset, address.base);
    29052908    }
     2909
     2910    ALWAYS_INLINE Call call(RegisterID target, RegisterID callTag) { return UNUSED_PARAM(callTag), call(target, NoPtrTag); }
     2911    ALWAYS_INLINE void call(Address address, RegisterID callTag) { UNUSED_PARAM(callTag), call(address, NoPtrTag); }
    29062912
    29072913    void ret()
  • trunk/Source/JavaScriptCore/assembler/MacroAssemblerX86_64.h

    r229797 r229863  
    224224    }
    225225
     226    ALWAYS_INLINE Call call(RegisterID callTag) { return UNUSED_PARAM(callTag), call(NoPtrTag); }
     227
    226228    // Address is a memory location containing the address to jump to
    227229    void jump(AbsoluteAddress address, PtrTag tag)
     
    230232        jump(Address(scratchRegister()), tag);
    231233    }
     234
     235    ALWAYS_INLINE void jump(AbsoluteAddress address, RegisterID jumpTag) { UNUSED_PARAM(jumpTag), jump(address, NoPtrTag); }
    232236
    233237    Call tailRecursiveCall()
Note: See TracChangeset for help on using the changeset viewer.