Title: [220579] trunk/Source
Revision
220579
Author
mark....@apple.com
Date
2017-08-10 22:31:32 -0700 (Thu, 10 Aug 2017)

Log Message

Make the MASM_PROBE mechanism mandatory for DFG and FTL builds.
https://bugs.webkit.org/show_bug.cgi?id=175446
<rdar://problem/33836545>

Reviewed by Saam Barati.

Source/_javascript_Core:

* assembler/AbstractMacroAssembler.h:
* assembler/MacroAssembler.cpp:
(JSC::MacroAssembler::probe):
* assembler/MacroAssembler.h:
* assembler/MacroAssemblerARM.cpp:
(JSC::MacroAssembler::probe):
* assembler/MacroAssemblerARM.h:
(JSC::MacroAssemblerARM::trustedImm32FromPtr):
* assembler/MacroAssemblerARM64.cpp:
(JSC::MacroAssembler::probe):
* assembler/MacroAssemblerARMv7.cpp:
(JSC::MacroAssembler::probe):
* assembler/MacroAssemblerARMv7.h:
(JSC::MacroAssemblerARMv7::trustedImm32FromPtr):
* assembler/MacroAssemblerPrinter.cpp:
* assembler/MacroAssemblerPrinter.h:
* assembler/MacroAssemblerX86Common.cpp:
* assembler/testmasm.cpp:
(JSC::isSpecialGPR):
(JSC::testProbeModifiesProgramCounter):
(JSC::run):
* b3/B3LowerToAir.cpp:
(JSC::B3::Air::LowerToAir::print):
* b3/air/AirPrintSpecial.cpp:
* b3/air/AirPrintSpecial.h:

Source/WTF:

This is needed in order to support https://bugs.webkit.org/show_bug.cgi?id=174645.
One consequence of this is that the DFG will now be disabled for the MIPS and
Windows ports. See:
    https://bugs.webkit.org/show_bug.cgi?id=175447
    https://bugs.webkit.org/show_bug.cgi?id=175449

Also, we should only ENABLE_SIGNAL_BASED_VM_TRAPS if the DFG is enabled.  It was
never meaningful to use SIGNAL_BASED_VM_TRAPS with the baseline JIT anyway.  This
is a mis-configuration error that is now fixed.

* wtf/Platform.h:

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (220578 => 220579)


--- trunk/Source/_javascript_Core/ChangeLog	2017-08-11 04:47:06 UTC (rev 220578)
+++ trunk/Source/_javascript_Core/ChangeLog	2017-08-11 05:31:32 UTC (rev 220579)
@@ -1,5 +1,39 @@
 2017-08-10  Mark Lam  <mark....@apple.com>
 
+        Make the MASM_PROBE mechanism mandatory for DFG and FTL builds.
+        https://bugs.webkit.org/show_bug.cgi?id=175446
+        <rdar://problem/33836545>
+
+        Reviewed by Saam Barati.
+
+        * assembler/AbstractMacroAssembler.h:
+        * assembler/MacroAssembler.cpp:
+        (JSC::MacroAssembler::probe):
+        * assembler/MacroAssembler.h:
+        * assembler/MacroAssemblerARM.cpp:
+        (JSC::MacroAssembler::probe):
+        * assembler/MacroAssemblerARM.h:
+        (JSC::MacroAssemblerARM::trustedImm32FromPtr):
+        * assembler/MacroAssemblerARM64.cpp:
+        (JSC::MacroAssembler::probe):
+        * assembler/MacroAssemblerARMv7.cpp:
+        (JSC::MacroAssembler::probe):
+        * assembler/MacroAssemblerARMv7.h:
+        (JSC::MacroAssemblerARMv7::trustedImm32FromPtr):
+        * assembler/MacroAssemblerPrinter.cpp:
+        * assembler/MacroAssemblerPrinter.h:
+        * assembler/MacroAssemblerX86Common.cpp:
+        * assembler/testmasm.cpp:
+        (JSC::isSpecialGPR):
+        (JSC::testProbeModifiesProgramCounter):
+        (JSC::run):
+        * b3/B3LowerToAir.cpp:
+        (JSC::B3::Air::LowerToAir::print):
+        * b3/air/AirPrintSpecial.cpp:
+        * b3/air/AirPrintSpecial.h:
+
+2017-08-10  Mark Lam  <mark....@apple.com>
+
         Apply the UNLIKELY macro to some unlikely things.
         https://bugs.webkit.org/show_bug.cgi?id=175440
         <rdar://problem/33834767>

Modified: trunk/Source/_javascript_Core/assembler/AbstractMacroAssembler.h (220578 => 220579)


--- trunk/Source/_javascript_Core/assembler/AbstractMacroAssembler.h	2017-08-11 04:47:06 UTC (rev 220578)
+++ trunk/Source/_javascript_Core/assembler/AbstractMacroAssembler.h	2017-08-11 05:31:32 UTC (rev 220579)
@@ -43,10 +43,8 @@
 
 #if ENABLE(ASSEMBLER)
 
-#if ENABLE(MASM_PROBE)
 struct ProbeContext;
 typedef void (*ProbeFunction)(struct ProbeContext*);
-#endif
     
 class AllowMacroScratchRegisterUsage;
 class DisallowMacroScratchRegisterUsage;

Modified: trunk/Source/_javascript_Core/assembler/MacroAssembler.cpp (220578 => 220579)


--- trunk/Source/_javascript_Core/assembler/MacroAssembler.cpp	2017-08-11 04:47:06 UTC (rev 220578)
+++ trunk/Source/_javascript_Core/assembler/MacroAssembler.cpp	2017-08-11 05:31:32 UTC (rev 220579)
@@ -34,7 +34,6 @@
 
 const double MacroAssembler::twoToThe32 = (double)0x100000000ull;
 
-#if ENABLE(MASM_PROBE)
 static void stdFunctionCallback(ProbeContext* context)
 {
     auto func = static_cast<const std::function<void(ProbeContext*)>*>(context->arg);
@@ -45,7 +44,6 @@
 {
     probe(stdFunctionCallback, new std::function<void(ProbeContext*)>(func));
 }
-#endif // ENABLE(MASM_PROBE)
 
 } // namespace JSC
 

Modified: trunk/Source/_javascript_Core/assembler/MacroAssembler.h (220578 => 220579)


--- trunk/Source/_javascript_Core/assembler/MacroAssembler.h	2017-08-11 04:47:06 UTC (rev 220578)
+++ trunk/Source/_javascript_Core/assembler/MacroAssembler.h	2017-08-11 05:31:32 UTC (rev 220579)
@@ -1824,7 +1824,6 @@
         urshift32(src, trustedImm32ForShift(amount), dest);
     }
 
-#if ENABLE(MASM_PROBE)
     struct CPUState;
 
     // This function emits code to preserve the CPUState (e.g. registers),
@@ -1848,10 +1847,8 @@
     void probe(ProbeFunction, void* arg);
 
     JS_EXPORT_PRIVATE void probe(std::function<void(ProbeContext*)>);
-#endif // ENABLE(MASM_PROBE)
 
     // Let's you print from your JIT generated code.
-    // This only works if ENABLE(MASM_PROBE). Otherwise, print() is a no-op.
     // See comments in MacroAssemblerPrinter.h for examples of how to use this.
     template<typename... Arguments>
     void print(Arguments&&... args);
@@ -1859,8 +1856,6 @@
     void print(Printer::PrintRecordList*);
 };
 
-#if ENABLE(MASM_PROBE)
-
 struct MacroAssembler::CPUState {
     static inline const char* gprName(RegisterID id) { return MacroAssembler::gprName(id); }
     static inline const char* sprName(SPRegisterID id) { return MacroAssembler::sprName(id); }
@@ -1963,7 +1958,6 @@
     void*& fp() { return cpu.fp(); }
     void*& sp() { return cpu.sp(); }
 };
-#endif // ENABLE(MASM_PROBE)
     
 } // namespace JSC
 

Modified: trunk/Source/_javascript_Core/assembler/MacroAssemblerARM.cpp (220578 => 220579)


--- trunk/Source/_javascript_Core/assembler/MacroAssemblerARM.cpp	2017-08-11 04:47:06 UTC (rev 220578)
+++ trunk/Source/_javascript_Core/assembler/MacroAssemblerARM.cpp	2017-08-11 05:31:32 UTC (rev 220579)
@@ -96,8 +96,6 @@
 }
 #endif // CPU(ARMV5_OR_LOWER)
 
-#if ENABLE(MASM_PROBE)
-
 extern "C" void ctiMasmProbeTrampoline();
 
 #if COMPILER(GCC_OR_CLANG)
@@ -382,7 +380,6 @@
     m_assembler.blx(RegisterID::S0);
 
 }
-#endif // ENABLE(MASM_PROBE)
 
 } // namespace JSC
 

Modified: trunk/Source/_javascript_Core/assembler/MacroAssemblerARM.h (220578 => 220579)


--- trunk/Source/_javascript_Core/assembler/MacroAssemblerARM.h	2017-08-11 04:47:06 UTC (rev 220578)
+++ trunk/Source/_javascript_Core/assembler/MacroAssemblerARM.h	2017-08-11 05:31:32 UTC (rev 220579)
@@ -1586,7 +1586,6 @@
         m_assembler.blx(ARMRegisters::S1);
     }
 
-#if ENABLE(MASM_PROBE)
     inline TrustedImm32 trustedImm32FromPtr(void* ptr)
     {
         return TrustedImm32(TrustedImmPtr(ptr));
@@ -1601,7 +1600,6 @@
     {
         return TrustedImm32(TrustedImmPtr(reinterpret_cast<void*>(function)));
     }
-#endif
 
 private:
     friend class LinkBuffer;

Modified: trunk/Source/_javascript_Core/assembler/MacroAssemblerARM64.cpp (220578 => 220579)


--- trunk/Source/_javascript_Core/assembler/MacroAssemblerARM64.cpp	2017-08-11 04:47:06 UTC (rev 220578)
+++ trunk/Source/_javascript_Core/assembler/MacroAssemblerARM64.cpp	2017-08-11 05:31:32 UTC (rev 220579)
@@ -32,8 +32,6 @@
 
 namespace JSC {
 
-#if ENABLE(MASM_PROBE)
-
 extern "C" void ctiMasmProbeTrampoline();
 
 using namespace ARM64Registers;
@@ -551,7 +549,6 @@
     load64(Address(sp, offsetof(OutgoingProbeRecord, lr)), lr);
     add64(TrustedImm32(sizeof(OutgoingProbeRecord)), sp);
 }
-#endif // ENABLE(MASM_PROBE)
 
 } // namespace JSC
 

Modified: trunk/Source/_javascript_Core/assembler/MacroAssemblerARMv7.cpp (220578 => 220579)


--- trunk/Source/_javascript_Core/assembler/MacroAssemblerARMv7.cpp	2017-08-11 04:47:06 UTC (rev 220578)
+++ trunk/Source/_javascript_Core/assembler/MacroAssemblerARMv7.cpp	2017-08-11 05:31:32 UTC (rev 220579)
@@ -32,8 +32,6 @@
 
 namespace JSC {
 
-#if ENABLE(MASM_PROBE)
-
 extern "C" void ctiMasmProbeTrampoline();
 
 #if COMPILER(GCC_OR_CLANG)
@@ -359,7 +357,6 @@
     move(trustedImm32FromPtr(ctiMasmProbeTrampoline), RegisterID::ip);
     m_assembler.blx(RegisterID::ip);
 }
-#endif // ENABLE(MASM_PROBE)
 
 } // namespace JSC
 

Modified: trunk/Source/_javascript_Core/assembler/MacroAssemblerARMv7.h (220578 => 220579)


--- trunk/Source/_javascript_Core/assembler/MacroAssemblerARMv7.h	2017-08-11 04:47:06 UTC (rev 220578)
+++ trunk/Source/_javascript_Core/assembler/MacroAssemblerARMv7.h	2017-08-11 05:31:32 UTC (rev 220579)
@@ -2107,7 +2107,6 @@
         return static_cast<ARMv7Assembler::Condition>(cond);
     }
     
-#if ENABLE(MASM_PROBE)
     inline TrustedImm32 trustedImm32FromPtr(void* ptr)
     {
         return TrustedImm32(TrustedImmPtr(ptr));
@@ -2122,7 +2121,6 @@
     {
         return TrustedImm32(TrustedImmPtr(reinterpret_cast<void*>(function)));
     }
-#endif
 
 private:
     friend class LinkBuffer;

Modified: trunk/Source/_javascript_Core/assembler/MacroAssemblerPrinter.cpp (220578 => 220579)


--- trunk/Source/_javascript_Core/assembler/MacroAssemblerPrinter.cpp	2017-08-11 04:47:06 UTC (rev 220578)
+++ trunk/Source/_javascript_Core/assembler/MacroAssemblerPrinter.cpp	2017-08-11 05:31:32 UTC (rev 220579)
@@ -26,9 +26,8 @@
 #include "config.h"
 #include "MacroAssemblerPrinter.h"
 
-#if ENABLE(MASM_PROBE)
-
 #include "MacroAssembler.h"
+#include <inttypes.h>
 
 namespace JSC {
 namespace Printer {
@@ -53,18 +52,18 @@
     INDENT, out.print("cpu: {\n");
 
 #if USE(JSVALUE32_64)
-    #define INTPTR_HEX_VALUE_FORMAT "0x%08lx"
+    #define INTPTR_HEX_VALUE_FORMAT "0x%08" PRIxPTR
 #else
-    #define INTPTR_HEX_VALUE_FORMAT "0x%016lx"
+    #define INTPTR_HEX_VALUE_FORMAT "0x%016" PRIxPTR
 #endif
 
     for (auto id = MacroAssembler::firstRegister(); id <= MacroAssembler::lastRegister(); id = nextID(id)) {
         intptr_t value = static_cast<intptr_t>(cpu.gpr(id));
-        INDENT, out.printf("    %6s: " INTPTR_HEX_VALUE_FORMAT "  %ld\n", cpu.gprName(id), value, value);
+        INDENT, out.printf("    %6s: " INTPTR_HEX_VALUE_FORMAT "  %" PRIdPTR "\n", cpu.gprName(id), value, value);
     }
     for (auto id = MacroAssembler::firstSPRegister(); id <= MacroAssembler::lastSPRegister(); id = nextID(id)) {
         intptr_t value = static_cast<intptr_t>(cpu.spr(id));
-        INDENT, out.printf("    %6s: " INTPTR_HEX_VALUE_FORMAT "  %ld\n", cpu.sprName(id), value, value);
+        INDENT, out.printf("    %6s: " INTPTR_HEX_VALUE_FORMAT "  %" PRIdPTR "\n", cpu.sprName(id), value, value);
     }
     #undef INTPTR_HEX_VALUE_FORMAT
 
@@ -71,7 +70,7 @@
     for (auto id = MacroAssembler::firstFPRegister(); id <= MacroAssembler::lastFPRegister(); id = nextID(id)) {
         uint64_t u = bitwise_cast<uint64_t>(cpu.fpr(id));
         double d = cpu.fpr(id);
-        INDENT, out.printf("    %6s: 0x%016llx  %.13g\n", cpu.fprName(id), u, d);
+        INDENT, out.printf("    %6s: 0x%016" PRIx64 "  %.13g\n", cpu.fprName(id), u, d);
     }
 
     INDENT, out.print("}\n");
@@ -99,7 +98,7 @@
     FPRegisterID regID = context.data.as<FPRegisterID>();
     const char* name = CPUState::fprName(regID);
     double value = context.probeContext.fpr(regID);
-    out.printf("%s:<0x%016llx %.13g>", name, bitwise_cast<uint64_t>(value), value);
+    out.printf("%s:<0x%016" PRIx64 " %.13g>", name, bitwise_cast<uint64_t>(value), value);
 }
 
 void printAddress(PrintStream& out, Context& context)
@@ -146,7 +145,7 @@
         }
         if (memory.numBytes == sizeof(int64_t)) {
             auto p = reinterpret_cast<int64_t*>(ptr);
-            out.printf("%p:<0x%016llx %lld>", p, *p, *p);
+            out.printf("%p:<0x%016" PRIx64 " %" PRId64 ">", p, *p, *p);
             return;
         }
         // Else, unknown word size. Fall thru and dump in the generic way.
@@ -183,4 +182,3 @@
 } // namespace Printer
 } // namespace JSC
 
-#endif // ENABLE(MASM_PROBE)

Modified: trunk/Source/_javascript_Core/assembler/MacroAssemblerPrinter.h (220578 => 220579)


--- trunk/Source/_javascript_Core/assembler/MacroAssemblerPrinter.h	2017-08-11 04:47:06 UTC (rev 220578)
+++ trunk/Source/_javascript_Core/assembler/MacroAssemblerPrinter.h	2017-08-11 05:31:32 UTC (rev 220579)
@@ -32,8 +32,6 @@
 
 #if ENABLE(ASSEMBLER)
 
-#if ENABLE(MASM_PROBE)
-    
 // What is MacroAssembler::print()?
 // ===============================
 // The MacroAsssembler::print() makes it easy to add print logging
@@ -240,15 +238,6 @@
     probe(Printer::printCallback, printRecordList);
 }
 
-#else // ENABLE(MASM_PROBE)
-
-template<typename... Arguments>
-inline void MacroAssembler::print(Arguments&&...) { }
-
-inline void MacroAssembler::print(Printer::PrintRecordList*) { }
-
-#endif // ENABLE(MASM_PROBE)
-
 #endif // ENABLE(ASSEMBLER)
 
 } // namespace JSC

Modified: trunk/Source/_javascript_Core/assembler/MacroAssemblerX86Common.cpp (220578 => 220579)


--- trunk/Source/_javascript_Core/assembler/MacroAssemblerX86Common.cpp	2017-08-11 04:47:06 UTC (rev 220578)
+++ trunk/Source/_javascript_Core/assembler/MacroAssemblerX86Common.cpp	2017-08-11 05:31:32 UTC (rev 220579)
@@ -32,8 +32,6 @@
 
 namespace JSC {
 
-#if ENABLE(MASM_PROBE)
-
 extern "C" void ctiMasmProbeTrampoline();
 
 #if COMPILER(GCC_OR_CLANG)
@@ -524,6 +522,13 @@
 
 #endif // COMPILER(GCC_OR_CLANG)
 
+#if OS(WINDOWS)
+extern "C" NO_RETURN_DUE_TO_ASSERT void ctiMasmProbeTrampoline()
+{
+    RELEASE_ASSERT_NOT_REACHED();
+}
+#endif // OS(WINDOWS)
+
 // What code is emitted for the probe?
 // ==================================
 // We want to keep the size of the emitted probe invocation code as compact as
@@ -575,8 +580,6 @@
     call(RegisterID::eax);
 }
 
-#endif // ENABLE(MASM_PROBE)
-
 #if CPU(X86) && !OS(MAC_OS_X)
 MacroAssemblerX86Common::SSE2CheckState MacroAssemblerX86Common::s_sse2CheckState = NotCheckedSSE2;
 #endif

Modified: trunk/Source/_javascript_Core/assembler/testmasm.cpp (220578 => 220579)


--- trunk/Source/_javascript_Core/assembler/testmasm.cpp	2017-08-11 04:47:06 UTC (rev 220578)
+++ trunk/Source/_javascript_Core/assembler/testmasm.cpp	2017-08-11 05:31:32 UTC (rev 220579)
@@ -85,7 +85,6 @@
 #define CHECK_DOUBLE_BITWISE_EQ(a, b) \
     CHECK(bitwise_cast<uint64_t>(a) == bitwise_cast<uint64_t>(a))
 
-#if ENABLE(MASM_PROBE)
 bool isPC(MacroAssembler::RegisterID id)
 {
 #if CPU(ARM_THUMB2) || CPU(ARM_TRADITIONAL)
@@ -116,7 +115,6 @@
 #endif
     return false;
 }
-#endif // ENABLE(MASM_PROBE)
 
 MacroAssemblerCodeRef compile(Generator&& generate)
 {
@@ -149,7 +147,6 @@
     }) == 42);
 }
 
-#if ENABLE(MASM_PROBE)
 void testProbeReadsArgumentRegisters()
 {
     bool probeWasCalled = false;
@@ -493,7 +490,6 @@
     CHECK(probeCallCount == 2);
     CHECK(continuationWasReached);
 }
-#endif // ENABLE(MASM_PROBE)
 
 #define RUN(test) do {                          \
         if (!shouldRun(#test))                  \
@@ -519,7 +515,6 @@
 
     RUN(testSimple());
 
-#if ENABLE(MASM_PROBE)
     RUN(testProbeReadsArgumentRegisters());
     RUN(testProbeWritesArgumentRegisters());
     RUN(testProbePreservesGPRS());
@@ -526,7 +521,6 @@
     RUN(testProbeModifiesStackPointerToInsideProbeContextOnStack());
     RUN(testProbeModifiesStackPointerToNBytesBelowSP());
     RUN(testProbeModifiesProgramCounter());
-#endif
 
     if (tasks.isEmpty())
         usage();

Modified: trunk/Source/_javascript_Core/b3/B3LowerToAir.cpp (220578 => 220579)


--- trunk/Source/_javascript_Core/b3/B3LowerToAir.cpp	2017-08-11 04:47:06 UTC (rev 220578)
+++ trunk/Source/_javascript_Core/b3/B3LowerToAir.cpp	2017-08-11 05:31:32 UTC (rev 220579)
@@ -1149,7 +1149,6 @@
         return Air::Oops;
     }
 
-#if ENABLE(MASM_PROBE)
     template<typename... Arguments>
     void print(Arguments&&... arguments)
     {
@@ -1166,10 +1165,6 @@
         Printer::appendAirArgs(inst, std::forward<Arguments>(arguments)...);
         append(WTFMove(inst));
     }
-#else
-    template<typename... Arguments>
-    void print(Arguments&&...) { }
-#endif // ENABLE(MASM_PROBE)
 
     template<typename... Arguments>
     void append(Air::Kind kind, Arguments&&... arguments)

Modified: trunk/Source/_javascript_Core/b3/air/AirPrintSpecial.cpp (220578 => 220579)


--- trunk/Source/_javascript_Core/b3/air/AirPrintSpecial.cpp	2017-08-11 04:47:06 UTC (rev 220578)
+++ trunk/Source/_javascript_Core/b3/air/AirPrintSpecial.cpp	2017-08-11 05:31:32 UTC (rev 220579)
@@ -27,7 +27,6 @@
 #include "AirPrintSpecial.h"
 
 #if ENABLE(B3_JIT)
-#if ENABLE(MASM_PROBE)
 
 #include "MacroAssemblerPrinter.h"
 
@@ -125,5 +124,4 @@
 
 } // namespace JSC
 
-#endif // ENABLE(MASM_PROBE)
 #endif // ENABLE(B3_JIT)

Modified: trunk/Source/_javascript_Core/b3/air/AirPrintSpecial.h (220578 => 220579)


--- trunk/Source/_javascript_Core/b3/air/AirPrintSpecial.h	2017-08-11 04:47:06 UTC (rev 220578)
+++ trunk/Source/_javascript_Core/b3/air/AirPrintSpecial.h	2017-08-11 05:31:32 UTC (rev 220579)
@@ -26,7 +26,6 @@
 #pragma once
 
 #if ENABLE(B3_JIT)
-#if ENABLE(MASM_PROBE)
 
 #include "AirInst.h"
 #include "AirSpecial.h"
@@ -129,5 +128,4 @@
 
 } } } // namespace JSC::B3::Air
 
-#endif // ENABLE(MASM_PROBE)
 #endif // ENABLE(B3_JIT)

Modified: trunk/Source/WTF/ChangeLog (220578 => 220579)


--- trunk/Source/WTF/ChangeLog	2017-08-11 04:47:06 UTC (rev 220578)
+++ trunk/Source/WTF/ChangeLog	2017-08-11 05:31:32 UTC (rev 220579)
@@ -1,3 +1,23 @@
+2017-08-10  Mark Lam  <mark....@apple.com>
+
+        Make the MASM_PROBE mechanism mandatory for DFG and FTL builds.
+        https://bugs.webkit.org/show_bug.cgi?id=175446
+        <rdar://problem/33836545>
+
+        Reviewed by Saam Barati.
+
+        This is needed in order to support https://bugs.webkit.org/show_bug.cgi?id=174645.
+        One consequence of this is that the DFG will now be disabled for the MIPS and
+        Windows ports. See:
+            https://bugs.webkit.org/show_bug.cgi?id=175447
+            https://bugs.webkit.org/show_bug.cgi?id=175449
+
+        Also, we should only ENABLE_SIGNAL_BASED_VM_TRAPS if the DFG is enabled.  It was
+        never meaningful to use SIGNAL_BASED_VM_TRAPS with the baseline JIT anyway.  This
+        is a mis-configuration error that is now fixed.
+
+        * wtf/Platform.h:
+
 2017-08-10  Brady Eidson  <beid...@apple.com>
 
         Rename the source files for the WTF persistent coders.

Modified: trunk/Source/WTF/wtf/Platform.h (220578 => 220579)


--- trunk/Source/WTF/wtf/Platform.h	2017-08-11 04:47:06 UTC (rev 220578)
+++ trunk/Source/WTF/wtf/Platform.h	2017-08-11 05:31:32 UTC (rev 220579)
@@ -770,7 +770,7 @@
 
 #if !defined(ENABLE_DFG_JIT) && ENABLE(JIT)
 /* Enable the DFG JIT on X86 and X86_64. */
-#if (CPU(X86) || CPU(X86_64)) && (OS(DARWIN) || OS(LINUX) || OS(FREEBSD) || OS(WINDOWS) || OS(HURD))
+#if (CPU(X86) || CPU(X86_64)) && (OS(DARWIN) || OS(LINUX) || OS(FREEBSD) || OS(HURD))
 #define ENABLE_DFG_JIT 1
 #endif
 /* Enable the DFG JIT on ARMv7.  Only tested on iOS and Qt/GTK+ Linux. */
@@ -777,10 +777,16 @@
 #if (CPU(ARM_THUMB2) || CPU(ARM64)) && (PLATFORM(IOS) || PLATFORM(GTK) || PLATFORM(WPE))
 #define ENABLE_DFG_JIT 1
 #endif
-/* Enable the DFG JIT on ARM and MIPS. */
-#if CPU(ARM_TRADITIONAL) || CPU(MIPS)
+/* Enable the DFG JIT on ARM. */
+#if CPU(ARM_TRADITIONAL)
 #define ENABLE_DFG_JIT 1
 #endif
+/* FIXME: MIPS cannot enable the DFG until it has support for MacroAssembler::probe().
+   https://bugs.webkit.org/show_bug.cgi?id=175447
+*/
+/* FIXME: Windows cannot enable the DFG until it has support for MacroAssembler::probe().
+   https://bugs.webkit.org/show_bug.cgi?id=175449
+*/
 #endif
 
 /* Concurrent JS only works on 64-bit platforms because it requires that
@@ -799,21 +805,25 @@
 #define ENABLE_FAST_TLS_JIT 1
 #endif
 
-/* This controls whether B3 is built. B3 is needed for FTL JIT and WebAssembly */
-#if ENABLE(FTL_JIT) || ENABLE(WEBASSEMBLY)
-#define ENABLE_B3_JIT 1
-#endif
-
 /* If the baseline jit is not available, then disable upper tiers as well: */
 #if !ENABLE(JIT)
 #undef ENABLE_DFG_JIT
 #undef ENABLE_FTL_JIT
-#undef ENABLE_B3_JIT
 #define ENABLE_DFG_JIT 0
 #define ENABLE_FTL_JIT 0
-#define ENABLE_B3_JIT 0
 #endif
 
+/* If the DFG jit is not available, then disable upper tiers as well: */
+#if !ENABLE(DFG_JIT)
+#undef ENABLE_FTL_JIT
+#define ENABLE_FTL_JIT 0
+#endif
+
+/* This controls whether B3 is built. B3 is needed for FTL JIT and WebAssembly */
+#if ENABLE(FTL_JIT) || ENABLE(WEBASSEMBLY)
+#define ENABLE_B3_JIT 1
+#endif
+
 /* The SamplingProfiler is the probabilistic and low-overhead profiler used by
  * JSC to measure where time is spent inside a _javascript_ program.
  * In configurations other than Windows and Darwin, because layout of mcontext_t depends on standard libraries (like glibc),
@@ -948,14 +958,6 @@
 #endif
 #endif
 
-/* Enable the following if you want to use the MacroAssembler::probe() facility
-   to do JIT debugging. */
-#if (CPU(X86) || CPU(X86_64) || CPU(ARM64) || (CPU(ARM_THUMB2) && PLATFORM(IOS))) && ENABLE(JIT) && OS(DARWIN)
-#define ENABLE_MASM_PROBE 1
-#else
-#define ENABLE_MASM_PROBE 0
-#endif
-
 #ifndef ENABLE_EXCEPTION_SCOPE_VERIFICATION
 #ifdef NDEBUG
 #define ENABLE_EXCEPTION_SCOPE_VERIFICATION 0
@@ -964,7 +966,7 @@
 #endif
 #endif
 
-#if ENABLE(JIT) && HAVE(MACHINE_CONTEXT) && (CPU(X86) || CPU(X86_64) || CPU(ARM64))
+#if ENABLE(DFG_JIT) && HAVE(MACHINE_CONTEXT) && (CPU(X86) || CPU(X86_64) || CPU(ARM64))
 #define ENABLE_SIGNAL_BASED_VM_TRAPS 1
 #endif
 
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to