Title: [232719] trunk
Revision
232719
Author
msab...@apple.com
Date
2018-06-11 09:39:49 -0700 (Mon, 11 Jun 2018)

Log Message

_javascript_Core: Disable 32-bit JIT on Windows
https://bugs.webkit.org/show_bug.cgi?id=185989

Reviewed by Mark Lam.

.:

* Source/cmake/OptionsWin.cmake:

Source/_javascript_Core:

Fixed the CLOOP so it can work when COMPUTED_GOTOs are not supported.

* llint/LLIntData.h:
(JSC::LLInt::getCodePtr): Used a reinterpret_cast since Opcode could be an int.
* llint/LowLevelInterpreter.cpp: Changed the definition of OFFLINE_ASM_GLOBAL_LABEL to not
have a case label because these aren't opcodes.
* runtime/Options.cpp: Made assembler related Windows conditional code also conditional
on the JIT being enabled.
(JSC::recomputeDependentOptions):

Source/WTF:

Fixed the CLOOP so it can work when COMPUTED_GOTOs are not supported.

* wtf/Platform.h:

Modified Paths

Diff

Modified: trunk/ChangeLog (232718 => 232719)


--- trunk/ChangeLog	2018-06-11 16:32:21 UTC (rev 232718)
+++ trunk/ChangeLog	2018-06-11 16:39:49 UTC (rev 232719)
@@ -1,3 +1,12 @@
+2018-06-11  Michael Saboff  <msab...@apple.com>
+
+        _javascript_Core: Disable 32-bit JIT on Windows
+        https://bugs.webkit.org/show_bug.cgi?id=185989
+
+        Reviewed by Mark Lam.
+
+        * Source/cmake/OptionsWin.cmake:
+
 2018-06-10  Carlos Garcia Campos  <cgar...@igalia.com>
 
         [WPE] Add a MiniBrowser and use it to run WebDriver tests

Modified: trunk/LayoutTests/js/script-tests/regexp-zero-length-alternatives.js (232718 => 232719)


--- trunk/LayoutTests/js/script-tests/regexp-zero-length-alternatives.js	2018-06-11 16:32:21 UTC (rev 232718)
+++ trunk/LayoutTests/js/script-tests/regexp-zero-length-alternatives.js	2018-06-11 16:39:49 UTC (rev 232719)
@@ -229,6 +229,7 @@
 shouldBe('s4.match(re31)', '["abab"]');
 
 // Non-capturing two possibly empty non-greedy alternatives non-greedy '*'
+//var re32 = new RegExp(/(?:a*?|b*?)*/);
 var re32 = new RegExp(/(?:a*?|b*?)*/);
 shouldBe('emptyStr.match(re32)', '[""]');
 shouldBe('s1.match(re32)', '[""]');

Modified: trunk/Source/_javascript_Core/ChangeLog (232718 => 232719)


--- trunk/Source/_javascript_Core/ChangeLog	2018-06-11 16:32:21 UTC (rev 232718)
+++ trunk/Source/_javascript_Core/ChangeLog	2018-06-11 16:39:49 UTC (rev 232719)
@@ -1,5 +1,22 @@
 2018-06-11  Michael Saboff  <msab...@apple.com>
 
+        _javascript_Core: Disable 32-bit JIT on Windows
+        https://bugs.webkit.org/show_bug.cgi?id=185989
+
+        Reviewed by Mark Lam.
+
+        Fixed the CLOOP so it can work when COMPUTED_GOTOs are not supported.
+
+        * llint/LLIntData.h:
+        (JSC::LLInt::getCodePtr): Used a reinterpret_cast since Opcode could be an int.
+        * llint/LowLevelInterpreter.cpp: Changed the definition of OFFLINE_ASM_GLOBAL_LABEL to not
+        have a case label because these aren't opcodes.
+        * runtime/Options.cpp: Made assembler related Windows conditional code also conditional
+        on the JIT being enabled.
+        (JSC::recomputeDependentOptions):
+
+2018-06-11  Michael Saboff  <msab...@apple.com>
+
         Test js/regexp-zero-length-alternatives.html fails when RegExpJIT is disabled
         https://bugs.webkit.org/show_bug.cgi?id=186477
 

Modified: trunk/Source/_javascript_Core/llint/LLIntData.h (232718 => 232719)


--- trunk/Source/_javascript_Core/llint/LLIntData.h	2018-06-11 16:32:21 UTC (rev 232718)
+++ trunk/Source/_javascript_Core/llint/LLIntData.h	2018-06-11 16:39:49 UTC (rev 232719)
@@ -83,7 +83,7 @@
 template<PtrTag tag>
 ALWAYS_INLINE MacroAssemblerCodePtr<tag> getCodePtr(OpcodeID opcodeID)
 {
-    void* address = getOpcode(opcodeID);
+    void* address = reinterpret_cast<void*>(getOpcode(opcodeID));
     address = retagCodePtr<BytecodePtrTag, tag>(address);
     return MacroAssemblerCodePtr<tag>::createFromExecutableAddress(address);
 }

Modified: trunk/Source/_javascript_Core/llint/LowLevelInterpreter.cpp (232718 => 232719)


--- trunk/Source/_javascript_Core/llint/LowLevelInterpreter.cpp	2018-06-11 16:32:21 UTC (rev 232718)
+++ trunk/Source/_javascript_Core/llint/LowLevelInterpreter.cpp	2018-06-11 16:39:49 UTC (rev 232719)
@@ -106,7 +106,7 @@
 
 #define OFFLINE_ASM_OPCODE_LABEL(opcode) DEFINE_OPCODE(opcode) USE_LABEL(opcode); TRACE_OPCODE(opcode);
 
-#define OFFLINE_ASM_GLOBAL_LABEL(label)  OFFLINE_ASM_GLUE_LABEL(label)
+#define OFFLINE_ASM_GLOBAL_LABEL(label)  label: USE_LABEL(label);
 
 #if ENABLE(COMPUTED_GOTO_OPCODES)
 #define OFFLINE_ASM_GLUE_LABEL(label)  label: USE_LABEL(label);

Modified: trunk/Source/_javascript_Core/runtime/Options.cpp (232718 => 232719)


--- trunk/Source/_javascript_Core/runtime/Options.cpp	2018-06-11 16:32:21 UTC (rev 232718)
+++ trunk/Source/_javascript_Core/runtime/Options.cpp	2018-06-11 16:39:49 UTC (rev 232719)
@@ -48,7 +48,7 @@
 #include <crt_externs.h>
 #endif
 
-#if OS(WINDOWS)
+#if OS(WINDOWS) && ENABLE(JIT)
 #include "MacroAssembler.h"
 #endif
 
@@ -392,7 +392,7 @@
     Options::useConcurrentGC() = false;
 #endif
     
-#if OS(WINDOWS) && CPU(X86) 
+#if OS(WINDOWS) && ENABLE(JIT) && CPU(X86) 
     // Disable JIT on Windows if SSE2 is not present 
     if (!MacroAssemblerX86::supportsFloatingPoint())
         Options::useJIT() = false;

Modified: trunk/Source/WTF/ChangeLog (232718 => 232719)


--- trunk/Source/WTF/ChangeLog	2018-06-11 16:32:21 UTC (rev 232718)
+++ trunk/Source/WTF/ChangeLog	2018-06-11 16:39:49 UTC (rev 232719)
@@ -1,3 +1,14 @@
+2018-06-11  Michael Saboff  <msab...@apple.com>
+
+        _javascript_Core: Disable 32-bit JIT on Windows
+        https://bugs.webkit.org/show_bug.cgi?id=185989
+
+        Reviewed by Mark Lam.
+
+        Fixed the CLOOP so it can work when COMPUTED_GOTOs are not supported.
+
+        * wtf/Platform.h:
+
 2018-06-09  Dan Bernstein  <m...@apple.com>
 
         [Xcode] Clean up and modernize some build setting definitions

Modified: trunk/Source/WTF/wtf/Platform.h (232718 => 232719)


--- trunk/Source/WTF/wtf/Platform.h	2018-06-11 16:32:21 UTC (rev 232718)
+++ trunk/Source/WTF/wtf/Platform.h	2018-06-11 16:39:49 UTC (rev 232719)
@@ -732,6 +732,12 @@
 #define ENABLE_JIT 0
 #endif
 
+/* Disable the JIT for 32-bit Windows builds. */
+#if USE(JSVALUE32_64) && OS(WINDOWS)
+#undef ENABLE_JIT
+#define ENABLE_JIT 0
+#endif
+
 /* The FTL *does not* work on 32-bit platforms. Disable it even if someone asked us to enable it. */
 #if USE(JSVALUE32_64)
 #undef ENABLE_FTL_JIT

Modified: trunk/Source/cmake/OptionsWin.cmake (232718 => 232719)


--- trunk/Source/cmake/OptionsWin.cmake	2018-06-11 16:32:21 UTC (rev 232718)
+++ trunk/Source/cmake/OptionsWin.cmake	2018-06-11 16:39:49 UTC (rev 232719)
@@ -45,6 +45,9 @@
 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_INPUT_TYPE_MONTH PUBLIC OFF)
 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_INPUT_TYPE_TIME PUBLIC OFF)
 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_INPUT_TYPE_WEEK PUBLIC OFF)
+if (${WTF_CPU_X86})
+    WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_JIT PUBLIC OFF)
+endif ()
 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_LEGACY_CSS_VENDOR_PREFIXES PUBLIC ON)
 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_MATHML PUBLIC ON)
 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_MEDIA_CONTROLS_SCRIPT PUBLIC ON)
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to