Changeset 220823 in webkit
- Timestamp:
- Aug 16, 2017, 10:09:06 PM (8 years ago)
- Location:
- trunk/Source
- Files:
-
- 16 edited
Legend:
- Unmodified
- Added
- Removed
-
TabularUnified trunk/Source/JavaScriptCore/ChangeLog ¶
r220822 r220823 1 2017-08-16 Mark Lam <mark.lam@apple.com> 2 3 Add back the ability to disable MASM_PROBE from the build. 4 https://bugs.webkit.org/show_bug.cgi?id=175656 5 <rdar://problem/33933720> 6 7 Reviewed by Yusuke Suzuki. 8 9 This is needed for ports that the existing MASM_PROBE implementation doesn't work 10 well with e.g. GTK with ARM_THUMB2. Note that if the DFG_JIT will be disabled by 11 default if !ENABLE(MASM_PROBE). 12 13 * assembler/AbstractMacroAssembler.h: 14 * assembler/MacroAssembler.cpp: 15 * assembler/MacroAssembler.h: 16 * assembler/MacroAssemblerARM.cpp: 17 * assembler/MacroAssemblerARM64.cpp: 18 * assembler/MacroAssemblerARMv7.cpp: 19 * assembler/MacroAssemblerPrinter.cpp: 20 * assembler/MacroAssemblerPrinter.h: 21 * assembler/MacroAssemblerX86Common.cpp: 22 * assembler/testmasm.cpp: 23 (JSC::run): 24 * b3/B3LowerToAir.cpp: 25 * b3/air/AirPrintSpecial.cpp: 26 * b3/air/AirPrintSpecial.h: 27 1 28 2017-08-16 Dan Bernstein <mitz@apple.com> 2 29 -
TabularUnified trunk/Source/JavaScriptCore/assembler/AbstractMacroAssembler.h ¶
r220579 r220823 44 44 #if ENABLE(ASSEMBLER) 45 45 46 #if ENABLE(MASM_PROBE) 46 47 struct ProbeContext; 47 48 typedef void (*ProbeFunction)(struct ProbeContext*); 49 #endif 48 50 49 51 class AllowMacroScratchRegisterUsage; -
TabularUnified trunk/Source/JavaScriptCore/assembler/MacroAssembler.cpp ¶
r220579 r220823 35 35 const double MacroAssembler::twoToThe32 = (double)0x100000000ull; 36 36 37 #if ENABLE(MASM_PROBE) 37 38 static void stdFunctionCallback(ProbeContext* context) 38 39 { … … 45 46 probe(stdFunctionCallback, new std::function<void(ProbeContext*)>(func)); 46 47 } 48 #endif // ENABLE(MASM_PROBE) 47 49 48 50 } // namespace JSC -
TabularUnified trunk/Source/JavaScriptCore/assembler/MacroAssembler.h ¶
r220807 r220823 1825 1825 } 1826 1826 1827 #if ENABLE(MASM_PROBE) 1827 1828 struct CPUState; 1828 1829 … … 1886 1887 1887 1888 void print(Printer::PrintRecordList*); 1889 #endif // ENABLE(MASM_PROBE) 1888 1890 }; 1889 1891 1892 #if ENABLE(MASM_PROBE) 1890 1893 struct MacroAssembler::CPUState { 1891 1894 static inline const char* gprName(RegisterID id) { return MacroAssembler::gprName(id); } … … 2047 2050 template<typename T> T sp() { return cpu.sp<T>(); } 2048 2051 }; 2049 2052 #endif // ENABLE(MASM_PROBE) 2053 2050 2054 } // namespace JSC 2051 2055 -
TabularUnified trunk/Source/JavaScriptCore/assembler/MacroAssemblerARM.cpp ¶
r220807 r220823 96 96 } 97 97 #endif // CPU(ARMV5_OR_LOWER) 98 99 #if ENABLE(MASM_PROBE) 98 100 99 101 extern "C" void ctiMasmProbeTrampoline(); … … 394 396 395 397 } 398 #endif // ENABLE(MASM_PROBE) 396 399 397 400 } // namespace JSC -
TabularUnified trunk/Source/JavaScriptCore/assembler/MacroAssemblerARM64.cpp ¶
r220807 r220823 32 32 33 33 namespace JSC { 34 35 #if ENABLE(MASM_PROBE) 34 36 35 37 extern "C" void ctiMasmProbeTrampoline(); … … 557 559 } 558 560 561 #endif // ENABLE(MASM_PROBE) 562 559 563 } // namespace JSC 560 564 -
TabularUnified trunk/Source/JavaScriptCore/assembler/MacroAssemblerARMv7.cpp ¶
r220807 r220823 32 32 33 33 namespace JSC { 34 35 #if ENABLE(MASM_PROBE) 34 36 35 37 extern "C" void ctiMasmProbeTrampoline(); … … 337 339 m_assembler.blx(RegisterID::ip); 338 340 } 341 #endif // ENABLE(MASM_PROBE) 339 342 340 343 } // namespace JSC -
TabularUnified trunk/Source/JavaScriptCore/assembler/MacroAssemblerPrinter.cpp ¶
r220600 r220823 28 28 29 29 #if ENABLE(ASSEMBLER) 30 #if ENABLE(MASM_PROBE) 30 31 31 32 #include "MacroAssembler.h" … … 185 186 } // namespace JSC 186 187 188 #endif // ENABLE(MASM_PROBE) 187 189 #endif // ENABLE(ASSEMBLER) -
TabularUnified trunk/Source/JavaScriptCore/assembler/MacroAssemblerPrinter.h ¶
r220579 r220823 32 32 33 33 #if ENABLE(ASSEMBLER) 34 #if ENABLE(MASM_PROBE) 34 35 35 36 // What is MacroAssembler::print()? … … 239 240 } 240 241 242 #endif // ENABLE(MASM_PROBE) 241 243 #endif // ENABLE(ASSEMBLER) 242 244 -
TabularUnified trunk/Source/JavaScriptCore/assembler/MacroAssemblerX86Common.cpp ¶
r220807 r220823 32 32 33 33 namespace JSC { 34 35 #if ENABLE(MASM_PROBE) 34 36 35 37 extern "C" void ctiMasmProbeTrampoline(); … … 576 578 call(RegisterID::eax); 577 579 } 580 #endif // ENABLE(MASM_PROBE) 578 581 579 582 #if CPU(X86) && !OS(MAC_OS_X) -
TabularUnified trunk/Source/JavaScriptCore/assembler/testmasm.cpp ¶
r220807 r220823 51 51 #if ENABLE(JIT) 52 52 53 #if ENABLE(MASM_PROBE) 53 54 namespace WTF { 54 55 … … 59 60 60 61 } // namespace WTF 62 #endif // ENABLE(MASM_PROBE) 61 63 62 64 using namespace JSC; … … 64 66 namespace { 65 67 68 #if ENABLE(MASM_PROBE) 66 69 using CPUState = MacroAssembler::CPUState; 70 #endif 67 71 68 72 StaticLock crashLock; … … 94 98 } while (false) 95 99 100 #if ENABLE(MASM_PROBE) 96 101 bool isPC(MacroAssembler::RegisterID id) 97 102 { … … 124 129 return false; 125 130 } 131 #endif // ENABLE(MASM_PROBE) 126 132 127 133 MacroAssemblerCodeRef compile(Generator&& generate) … … 156 162 } 157 163 164 #if ENABLE(MASM_PROBE) 158 165 void testProbeReadsArgumentRegisters() 159 166 { … … 662 669 CHECK_EQ(probeCallCount, 3); 663 670 } 671 #endif // ENABLE(MASM_PROBE) 664 672 665 673 #define RUN(test) do { \ … … 689 697 RUN(testSimple()); 690 698 699 #if ENABLE(MASM_PROBE) 691 700 RUN(testProbeReadsArgumentRegisters()); 692 701 RUN(testProbeWritesArgumentRegisters()); … … 696 705 RUN(testProbeModifiesProgramCounter()); 697 706 RUN(testProbeModifiesStackWithCallback()); 707 #endif // ENABLE(MASM_PROBE) 698 708 699 709 if (tasks.isEmpty()) -
TabularUnified trunk/Source/JavaScriptCore/b3/B3LowerToAir.cpp ¶
r220625 r220823 1151 1151 } 1152 1152 1153 #if ENABLE(MASM_PROBE) 1153 1154 template<typename... Arguments> 1154 1155 void print(Arguments&&... arguments) … … 1167 1168 append(WTFMove(inst)); 1168 1169 } 1170 #endif // ENABLE(MASM_PROBE) 1169 1171 1170 1172 template<typename... Arguments> -
TabularUnified trunk/Source/JavaScriptCore/b3/air/AirPrintSpecial.cpp ¶
r220579 r220823 28 28 29 29 #if ENABLE(B3_JIT) 30 #if ENABLE(MASM_PROBE) 30 31 31 32 #include "MacroAssemblerPrinter.h" … … 125 126 } // namespace JSC 126 127 128 #endif // ENABLE(MASM_PROBE) 127 129 #endif // ENABLE(B3_JIT) -
TabularUnified trunk/Source/JavaScriptCore/b3/air/AirPrintSpecial.h ¶
r220579 r220823 27 27 28 28 #if ENABLE(B3_JIT) 29 #if ENABLE(MASM_PROBE) 29 30 30 31 #include "AirInst.h" … … 129 130 } } } // namespace JSC::B3::Air 130 131 132 #endif // ENABLE(MASM_PROBE) 131 133 #endif // ENABLE(B3_JIT) -
TabularUnified trunk/Source/WTF/ChangeLog ¶
r220816 r220823 1 2017-08-16 Mark Lam <mark.lam@apple.com> 2 3 Add back the ability to disable MASM_PROBE from the build. 4 https://bugs.webkit.org/show_bug.cgi?id=175656 5 <rdar://problem/33933720> 6 7 Reviewed by Yusuke Suzuki. 8 9 * wtf/Platform.h: 10 1 11 2017-08-16 Mark Lam <mark.lam@apple.com> 2 12 -
TabularUnified trunk/Source/WTF/wtf/Platform.h ¶
r220816 r220823 806 806 #endif 807 807 808 /* If the baseline jit is not available, then disable upper tiers as well: */ 809 #if !ENABLE(JIT) 808 #if CPU(X86) || CPU(X86_64) || CPU(ARM_THUMB2) || CPU(ARM64) || CPU(ARM_TRADITIONAL) 809 #define ENABLE_MASM_PROBE 1 810 #else 811 #define ENABLE_MASM_PROBE 0 812 #endif 813 814 #if OS(WINDOW) 815 #undef ENABLE_MASM_PROBE 816 #define ENABLE_MASM_PROBE 0 817 #endif 818 #if PLATFORM(GTK) && CPU(ARM_THUMB2) 819 /* FIXME: https://bugs.webkit.org/show_bug.cgi?id=175514 */ 820 #undef ENABLE_MASM_PROBE 821 #define ENABLE_MASM_PROBE 0 822 #endif 823 824 /* If the baseline jit is not available, then disable upper tiers as well. 825 The MacroAssembler::probe() is also required for supporting the upper tiers. */ 826 #if !ENABLE(JIT) || !ENABLE(MASM_PROBE) 810 827 #undef ENABLE_DFG_JIT 811 828 #undef ENABLE_FTL_JIT
Note:
See TracChangeset
for help on using the changeset viewer.