Changeset 229863 in webkit
- Timestamp:
- Mar 22, 2018, 2:24:15 PM (7 years ago)
- Location:
- trunk/Source/JavaScriptCore
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/ChangeLog
r229860 r229863 1 2018-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 1 33 2018-03-22 Tim Horton <timothy_horton@apple.com> 2 34 -
trunk/Source/JavaScriptCore/assembler/MacroAssemblerARM.h
r229767 r229863 806 806 } 807 807 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 808 812 void moveDoubleToInts(FPRegisterID src, RegisterID dest1, RegisterID dest2) 809 813 { … … 1126 1130 } 1127 1131 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 1128 1136 Call tailRecursiveCall() 1129 1137 { -
trunk/Source/JavaScriptCore/assembler/MacroAssemblerARM64.h
r229609 r229863 3109 3109 } 3110 3110 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 3111 3115 ALWAYS_INLINE Jump jump() 3112 3116 { … … 3139 3143 m_assembler.br(dataTempRegister); 3140 3144 } 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); } 3141 3150 3142 3151 ALWAYS_INLINE Call makeTailRecursiveCall(Jump oldJump) -
trunk/Source/JavaScriptCore/assembler/MacroAssemblerARMv7.h
r229772 r229863 1626 1626 } 1627 1627 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); } 1628 1631 1629 1632 // Arithmetic control flow operations: … … 1812 1815 } 1813 1816 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 1814 1821 ALWAYS_INLINE void ret() 1815 1822 { -
trunk/Source/JavaScriptCore/assembler/MacroAssemblerMIPS.h
r229772 r229863 1926 1926 } 1927 1927 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 1928 1932 void moveDoubleToInts(FPRegisterID src, RegisterID dest1, RegisterID dest2) 1929 1933 { … … 2429 2433 return Call(m_assembler.label(), Call::None); 2430 2434 } 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); } 2431 2439 2432 2440 void ret() -
trunk/Source/JavaScriptCore/assembler/MacroAssemblerX86.h
r229767 r229863 219 219 } 220 220 221 ALWAYS_INLINE Call call(RegisterID callTag) { return UNUSED_PARAM(callTag), call(NoPtrTag); } 222 221 223 // Address is a memory location containing the address to jump to 222 224 void jump(AbsoluteAddress address, PtrTag) … … 224 226 m_assembler.jmp_m(address.m_ptr); 225 227 } 228 229 ALWAYS_INLINE void jump(AbsoluteAddress address, RegisterID jumpTag) { UNUSED_PARAM(jumpTag), jump(address, NoPtrTag); } 226 230 227 231 Call tailRecursiveCall() -
trunk/Source/JavaScriptCore/assembler/MacroAssemblerX86Common.h
r229609 r229863 2714 2714 } 2715 2715 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); } 2716 2719 2717 2720 // Arithmetic control flow operations: … … 2904 2907 m_assembler.call_m(address.offset, address.base); 2905 2908 } 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); } 2906 2912 2907 2913 void ret() -
trunk/Source/JavaScriptCore/assembler/MacroAssemblerX86_64.h
r229797 r229863 224 224 } 225 225 226 ALWAYS_INLINE Call call(RegisterID callTag) { return UNUSED_PARAM(callTag), call(NoPtrTag); } 227 226 228 // Address is a memory location containing the address to jump to 227 229 void jump(AbsoluteAddress address, PtrTag tag) … … 230 232 jump(Address(scratchRegister()), tag); 231 233 } 234 235 ALWAYS_INLINE void jump(AbsoluteAddress address, RegisterID jumpTag) { UNUSED_PARAM(jumpTag), jump(address, NoPtrTag); } 232 236 233 237 Call tailRecursiveCall()
Note:
See TracChangeset
for help on using the changeset viewer.