Title: [239838] trunk

Diff

Modified: trunk/JSTests/ChangeLog (239837 => 239838)


--- trunk/JSTests/ChangeLog	2019-01-10 19:59:15 UTC (rev 239837)
+++ trunk/JSTests/ChangeLog	2019-01-10 20:04:32 UTC (rev 239838)
@@ -1,3 +1,17 @@
+2019-01-10  Commit Queue  <commit-qu...@webkit.org>
+
+        Unreviewed, rolling out r239825.
+        https://bugs.webkit.org/show_bug.cgi?id=193330
+
+        Broke tests on armv7/linux bots (Requested by guijemont on
+        #webkit).
+
+        Reverted changeset:
+
+        "Enable DFG on ARM/Linux again"
+        https://bugs.webkit.org/show_bug.cgi?id=192496
+        https://trac.webkit.org/changeset/239825
+
 2019-01-10  Dominik Infuehr  <dinfu...@igalia.com>
 
         Enable DFG on ARM/Linux again

Modified: trunk/JSTests/stress/regress-192717.js (239837 => 239838)


--- trunk/JSTests/stress/regress-192717.js	2019-01-10 19:59:15 UTC (rev 239837)
+++ trunk/JSTests/stress/regress-192717.js	2019-01-10 20:04:32 UTC (rev 239838)
@@ -1,5 +1,5 @@
+//@ runDefault("--useLLInt=false", "--forceCodeBlockToJettisonDueToOldAge=true", "--maxPerThreadStackUsage=200000", "--exceptionStackTraceLimit=1", "--defaultErrorStackTraceLimit=1")
 //@ skip if $memoryLimited or $buildType == "debug"
-//@ runDefault("--useLLInt=false", "--forceCodeBlockToJettisonDueToOldAge=true", "--maxPerThreadStackUsage=200000", "--exceptionStackTraceLimit=1", "--defaultErrorStackTraceLimit=1")
 
 let foo = 'let a';
 for (let i = 0; i < 400000; i++)

Modified: trunk/LayoutTests/ChangeLog (239837 => 239838)


--- trunk/LayoutTests/ChangeLog	2019-01-10 19:59:15 UTC (rev 239837)
+++ trunk/LayoutTests/ChangeLog	2019-01-10 20:04:32 UTC (rev 239838)
@@ -1,3 +1,17 @@
+2019-01-10  Commit Queue  <commit-qu...@webkit.org>
+
+        Unreviewed, rolling out r239825.
+        https://bugs.webkit.org/show_bug.cgi?id=193330
+
+        Broke tests on armv7/linux bots (Requested by guijemont on
+        #webkit).
+
+        Reverted changeset:
+
+        "Enable DFG on ARM/Linux again"
+        https://bugs.webkit.org/show_bug.cgi?id=192496
+        https://trac.webkit.org/changeset/239825
+
 2019-01-10  Justin Fan  <justin_...@apple.com>
 
         [WebGPU] Fix vertex-buffer-triangle-strip test and small update to GPURenderPipeline

Modified: trunk/LayoutTests/js/script-tests/dfg-float32array.js (239837 => 239838)


--- trunk/LayoutTests/js/script-tests/dfg-float32array.js	2019-01-10 19:59:15 UTC (rev 239837)
+++ trunk/LayoutTests/js/script-tests/dfg-float32array.js	2019-01-10 20:04:32 UTC (rev 239838)
@@ -1,4 +1,4 @@
-//@ noNoLLIntRunLayoutTest if $architecture == "arm"
+//@ noNoLLIntRunLayoutTest if $architecture == "arm" and $hostOS == "darwin"
 
 description(
 "This tests that float32 arrays work in the DFG."

Modified: trunk/LayoutTests/js/script-tests/dfg-float64array.js (239837 => 239838)


--- trunk/LayoutTests/js/script-tests/dfg-float64array.js	2019-01-10 19:59:15 UTC (rev 239837)
+++ trunk/LayoutTests/js/script-tests/dfg-float64array.js	2019-01-10 20:04:32 UTC (rev 239838)
@@ -1,4 +1,4 @@
-//@ noNoLLIntRunLayoutTest if $architecture == "arm"
+//@ noNoLLIntRunLayoutTest if $architecture == "arm" and $hostOS == "darwin"
 
 description(
 "This tests that float64 arrays work in the DFG."

Modified: trunk/LayoutTests/js/script-tests/dfg-int16array.js (239837 => 239838)


--- trunk/LayoutTests/js/script-tests/dfg-int16array.js	2019-01-10 19:59:15 UTC (rev 239837)
+++ trunk/LayoutTests/js/script-tests/dfg-int16array.js	2019-01-10 20:04:32 UTC (rev 239838)
@@ -1,4 +1,4 @@
-//@ noNoLLIntRunLayoutTest if $architecture == "arm"
+//@ noNoLLIntRunLayoutTest if $architecture == "arm" and $hostOS == "darwin"
 
 description(
 "This tests that int16 arrays work in the DFG."

Modified: trunk/LayoutTests/js/script-tests/dfg-int32array-overflow-values.js (239837 => 239838)


--- trunk/LayoutTests/js/script-tests/dfg-int32array-overflow-values.js	2019-01-10 19:59:15 UTC (rev 239837)
+++ trunk/LayoutTests/js/script-tests/dfg-int32array-overflow-values.js	2019-01-10 20:04:32 UTC (rev 239838)
@@ -1,4 +1,4 @@
-//@ noNoLLIntRunLayoutTest if $architecture == "arm"
+//@ noNoLLIntRunLayoutTest if $architecture == "arm" and $hostOS == "darwin"
 
 description(
 "This tests that int32 arrays work in the DFG."

Modified: trunk/LayoutTests/js/script-tests/dfg-int32array.js (239837 => 239838)


--- trunk/LayoutTests/js/script-tests/dfg-int32array.js	2019-01-10 19:59:15 UTC (rev 239837)
+++ trunk/LayoutTests/js/script-tests/dfg-int32array.js	2019-01-10 20:04:32 UTC (rev 239838)
@@ -1,4 +1,4 @@
-//@ noNoLLIntRunLayoutTest if $architecture == "arm"
+//@ noNoLLIntRunLayoutTest if $architecture == "arm" and $hostOS == "darwin"
 
 description(
 "This tests that int32 arrays work in the DFG."

Modified: trunk/LayoutTests/js/script-tests/dfg-int8array.js (239837 => 239838)


--- trunk/LayoutTests/js/script-tests/dfg-int8array.js	2019-01-10 19:59:15 UTC (rev 239837)
+++ trunk/LayoutTests/js/script-tests/dfg-int8array.js	2019-01-10 20:04:32 UTC (rev 239838)
@@ -1,4 +1,4 @@
-//@ noNoLLIntRunLayoutTest if $architecture == "arm"
+//@ noNoLLIntRunLayoutTest if $architecture == "arm" and $hostOS == "darwin"
 
 description(
 "This tests that int8 arrays work in the DFG."

Modified: trunk/LayoutTests/js/script-tests/dfg-uint16array.js (239837 => 239838)


--- trunk/LayoutTests/js/script-tests/dfg-uint16array.js	2019-01-10 19:59:15 UTC (rev 239837)
+++ trunk/LayoutTests/js/script-tests/dfg-uint16array.js	2019-01-10 20:04:32 UTC (rev 239838)
@@ -1,4 +1,4 @@
-//@ noNoLLIntRunLayoutTest if $architecture == "arm"
+//@ noNoLLIntRunLayoutTest if $architecture == "arm" and $hostOS == "darwin"
 
 description(
 "This tests that uint16 arrays work in the DFG."

Modified: trunk/LayoutTests/js/script-tests/dfg-uint32array.js (239837 => 239838)


--- trunk/LayoutTests/js/script-tests/dfg-uint32array.js	2019-01-10 19:59:15 UTC (rev 239837)
+++ trunk/LayoutTests/js/script-tests/dfg-uint32array.js	2019-01-10 20:04:32 UTC (rev 239838)
@@ -1,4 +1,4 @@
-//@ noNoLLIntRunLayoutTest if $architecture == "arm"
+//@ noNoLLIntRunLayoutTest if $architecture == "arm" and $hostOS == "darwin"
 
 description(
 "This tests that uint32 arrays work in the DFG."

Modified: trunk/LayoutTests/js/script-tests/dfg-uint8array.js (239837 => 239838)


--- trunk/LayoutTests/js/script-tests/dfg-uint8array.js	2019-01-10 19:59:15 UTC (rev 239837)
+++ trunk/LayoutTests/js/script-tests/dfg-uint8array.js	2019-01-10 20:04:32 UTC (rev 239838)
@@ -1,4 +1,4 @@
-//@ noNoLLIntRunLayoutTest if $architecture == "arm"
+//@ noNoLLIntRunLayoutTest if $architecture == "arm" and $hostOS == "darwin"
 
 description(
 "This tests that uint8 arrays work in the DFG."

Modified: trunk/Source/_javascript_Core/ChangeLog (239837 => 239838)


--- trunk/Source/_javascript_Core/ChangeLog	2019-01-10 19:59:15 UTC (rev 239837)
+++ trunk/Source/_javascript_Core/ChangeLog	2019-01-10 20:04:32 UTC (rev 239838)
@@ -1,3 +1,17 @@
+2019-01-10  Commit Queue  <commit-qu...@webkit.org>
+
+        Unreviewed, rolling out r239825.
+        https://bugs.webkit.org/show_bug.cgi?id=193330
+
+        Broke tests on armv7/linux bots (Requested by guijemont on
+        #webkit).
+
+        Reverted changeset:
+
+        "Enable DFG on ARM/Linux again"
+        https://bugs.webkit.org/show_bug.cgi?id=192496
+        https://trac.webkit.org/changeset/239825
+
 2019-01-10  Dominik Infuehr  <dinfu...@igalia.com>
 
         Enable DFG on ARM/Linux again

Modified: trunk/Source/_javascript_Core/assembler/AbstractMacroAssembler.h (239837 => 239838)


--- trunk/Source/_javascript_Core/assembler/AbstractMacroAssembler.h	2019-01-10 19:59:15 UTC (rev 239837)
+++ trunk/Source/_javascript_Core/assembler/AbstractMacroAssembler.h	2019-01-10 20:04:32 UTC (rev 239838)
@@ -749,7 +749,7 @@
             m_jumps.append(other.m_jumps.begin(), other.m_jumps.size());
         }
 
-        bool empty() const
+        bool empty()
         {
             return !m_jumps.size();
         }

Modified: trunk/Source/_javascript_Core/dfg/DFGOSRExit.cpp (239837 => 239838)


--- trunk/Source/_javascript_Core/dfg/DFGOSRExit.cpp	2019-01-10 19:59:15 UTC (rev 239837)
+++ trunk/Source/_javascript_Core/dfg/DFGOSRExit.cpp	2019-01-10 20:04:32 UTC (rev 239838)
@@ -75,6 +75,8 @@
 
 #if NUMBER_OF_CALLEE_SAVES_REGISTERS > 0
 
+static_assert(is64Bit(), "we only support callee save registers on 64-bit");
+
 // Based on AssemblyHelpers::emitRestoreCalleeSavesFor().
 static void restoreCalleeSavesFor(Context& context, CodeBlock* codeBlock)
 {
@@ -135,14 +137,8 @@
         size_t uintptrOffset = entry.offset() / sizeof(UCPURegister);
         if (entry.reg().isGPR())
             context.gpr(entry.reg().gpr()) = calleeSaveBuffer[uintptrOffset];
-        else {
-#if USE(JSVALUE64)
+        else
             context.fpr(entry.reg().fpr()) = bitwise_cast<double>(calleeSaveBuffer[uintptrOffset]);
-#else
-            // FIXME: <https://webkit.org/b/193275> support callee-saved floating point registers on 32-bit architectures
-            RELEASE_ASSERT_NOT_REACHED();
-#endif
-        }
     }
 }
 
@@ -165,14 +161,8 @@
             continue;
         if (entry.reg().isGPR())
             stack.set(calleeSaveBuffer, entry.offset(), context.gpr<UCPURegister>(entry.reg().gpr()));
-        else {
-#if USE(JSVALUE64)
+        else
             stack.set(calleeSaveBuffer, entry.offset(), context.fpr<UCPURegister>(entry.reg().fpr()));
-#else
-            // FIXME: <https://webkit.org/b/193275> support callee-saved floating point registers on 32-bit architectures
-            RELEASE_ASSERT_NOT_REACHED();
-#endif
-        }
     }
 }
 

Modified: trunk/Source/_javascript_Core/jit/CallFrameShuffler.cpp (239837 => 239838)


--- trunk/Source/_javascript_Core/jit/CallFrameShuffler.cpp	2019-01-10 19:59:15 UTC (rev 239837)
+++ trunk/Source/_javascript_Core/jit/CallFrameShuffler.cpp	2019-01-10 20:04:32 UTC (rev 239838)
@@ -51,14 +51,8 @@
         m_lockedRegisters.clear(GPRInfo::toRegister(i));
     for (unsigned i = FPRInfo::numberOfRegisters; i--; )
         m_lockedRegisters.clear(FPRInfo::toRegister(i));
-
-#if USE(JSVALUE64)
-    // ... as well as the runtime registers on 64-bit architectures.
-    // However do not use these registers on 32-bit architectures since
-    // saving and restoring callee-saved registers in CallFrameShuffler isn't supported
-    // on 32-bit architectures yet.
+    // ... as well as the runtime registers.
     m_lockedRegisters.exclude(RegisterSet::vmCalleeSaveRegisters());
-#endif
 
     ASSERT(!data.callee.isInJSStack() || data.callee.virtualRegister().isLocal());
     addNew(VirtualRegister(CallFrameSlot::callee), data.callee);

Modified: trunk/Source/_javascript_Core/jit/GPRInfo.h (239837 => 239838)


--- trunk/Source/_javascript_Core/jit/GPRInfo.h	2019-01-10 19:59:15 UTC (rev 239837)
+++ trunk/Source/_javascript_Core/jit/GPRInfo.h	2019-01-10 20:04:32 UTC (rev 239838)
@@ -526,9 +526,13 @@
 
 #endif // CPU(X86_64)
 
+#if CPU(ARM)
+#define NUMBER_OF_ARGUMENT_REGISTERS 4u
 #if CPU(ARM_THUMB2)
-#define NUMBER_OF_ARGUMENT_REGISTERS 4u
 #define NUMBER_OF_CALLEE_SAVES_REGISTERS 1u
+#else
+#define NUMBER_OF_CALLEE_SAVES_REGISTERS 0u
+#endif
 
 class GPRInfo {
 public:
@@ -544,7 +548,11 @@
     static const GPRReg regT4 = ARMRegisters::r8;
     static const GPRReg regT5 = ARMRegisters::r9;
     static const GPRReg regT6 = ARMRegisters::r10;
-    static const GPRReg regT7 = ARMRegisters::r5;
+#if CPU(ARM_THUMB2)
+    static const GPRReg regT7 = ARMRegisters::r11;
+#else 
+    static const GPRReg regT7 = ARMRegisters::r7;
+#endif
     static const GPRReg regT8 = ARMRegisters::r4;
     static const GPRReg regCS0 = ARMRegisters::r11;
     // These registers match the baseline JIT.
@@ -579,7 +587,11 @@
         ASSERT(reg != InvalidGPRReg);
         ASSERT(static_cast<int>(reg) < 16);
         static const unsigned indexForRegister[16] =
-            { 0, 1, 2, 3, 8, 7, InvalidIndex, InvalidIndex, 4, 5, 6, InvalidIndex, InvalidIndex, InvalidIndex, InvalidIndex, InvalidIndex };
+#if CPU(ARM_THUMB2)
+            { 0, 1, 2, 3, 8, InvalidIndex, InvalidIndex, InvalidIndex, 4, 5, 6, 7, InvalidIndex, InvalidIndex, InvalidIndex, InvalidIndex };
+#else
+            { 0, 1, 2, 3, 8, InvalidIndex, InvalidIndex, 7, 4, 5, 6, InvalidIndex, InvalidIndex, InvalidIndex, InvalidIndex, InvalidIndex };
+#endif
         unsigned result = indexForRegister[reg];
         return result;
     }

Modified: trunk/Source/_javascript_Core/llint/LowLevelInterpreter32_64.asm (239837 => 239838)


--- trunk/Source/_javascript_Core/llint/LowLevelInterpreter32_64.asm	2019-01-10 19:59:15 UTC (rev 239837)
+++ trunk/Source/_javascript_Core/llint/LowLevelInterpreter32_64.asm	2019-01-10 20:04:32 UTC (rev 239838)
@@ -2012,11 +2012,6 @@
 
 
 op(llint_throw_from_slow_path_trampoline, macro()
-    loadp Callee[cfr], t1
-    andp MarkedBlockMask, t1
-    loadp MarkedBlockFooterOffset + MarkedBlock::Footer::m_vm[t1], t1
-    copyCalleeSavesToVMEntryFrameCalleeSavesBuffer(t1, t2)
-
     callSlowPath(_llint_slow_path_handle_exception)
 
     # When throwing from the interpreter (i.e. throwing from LLIntSlowPaths), so
@@ -2025,6 +2020,7 @@
     loadp Callee[cfr], t1
     andp MarkedBlockMask, t1
     loadp MarkedBlockFooterOffset + MarkedBlock::Footer::m_vm[t1], t1
+    copyCalleeSavesToVMEntryFrameCalleeSavesBuffer(t1, t2)
     jmp VM::targetMachinePCForThrow[t1]
 end)
 

Modified: trunk/Source/_javascript_Core/offlineasm/arm.rb (239837 => 239838)


--- trunk/Source/_javascript_Core/offlineasm/arm.rb	2019-01-10 19:59:15 UTC (rev 239837)
+++ trunk/Source/_javascript_Core/offlineasm/arm.rb	2019-01-10 20:04:32 UTC (rev 239838)
@@ -34,7 +34,7 @@
 #  x2 => t2, a2, r2
 #  x3 => t3, a3, r3
 #  x6 =>            (callee-save scratch)
-#  x7 => cfr
+#  x7 => cfr        (ARMv7 only)
 #  x8 => t4         (callee-save)
 #  x9 => t5         (callee-save)
 # x10 =>            (callee-save scratch)
@@ -55,6 +55,15 @@
 # d6 =>              (scratch)
 # d7 =>              (scratch)
 
+def isARMv7
+    case $activeBackend
+    when "ARMv7"
+        true
+    else
+        raise "bad value for $activeBackend: #{$activeBackend}"
+    end
+end
+
 class Node
     def armSingle
         doubleOperand = armOperand
@@ -82,11 +91,13 @@
         $asm.puts "mov #{register.armOperand}, \##{value}"
     elsif (~value) >= 0 && (~value) < 256
         $asm.puts "mvn #{register.armOperand}, \##{~value}"
-    else
+    elsif isARMv7
         $asm.puts "movw #{register.armOperand}, \##{value & 0xffff}"
         if (value & 0xffff0000) != 0
             $asm.puts "movt #{register.armOperand}, \##{(value >> 16) & 0xffff}"
         end
+    else
+        $asm.puts "ldr #{register.armOperand}, =#{value}"
     end
 end
 
@@ -108,7 +119,7 @@
         when "t5"
             "r9"
         when "cfr"
-            "r7"
+            isARMv7 ?  "r7" : "r11"
         when "csr0"
             "r11"
         when "lr"
@@ -598,6 +609,9 @@
             else
                 $asm.puts "mov pc, #{operands[0].armOperand}"
             end
+            if not isARMv7 and not isARMv7Traditional
+                $asm.puts ".ltorg"
+            end
         when "call"
             if operands[0].label?
                 if OS_DARWIN
@@ -678,7 +692,7 @@
             $asm.puts "add #{dest.armOperand}, pc, #{dest.armOperand}"
             $asm.puts "ldr #{dest.armOperand}, [#{dest.armOperand}, #{temp.armOperand}]"
 
-            offset = 4
+            offset = $activeBackend == "ARMv7" ? 4 : 8
 
             $asm.deferNextLabelAction {
                 $asm.puts "#{gotLabel}:"

Modified: trunk/Source/WTF/ChangeLog (239837 => 239838)


--- trunk/Source/WTF/ChangeLog	2019-01-10 19:59:15 UTC (rev 239837)
+++ trunk/Source/WTF/ChangeLog	2019-01-10 20:04:32 UTC (rev 239838)
@@ -1,3 +1,17 @@
+2019-01-10  Commit Queue  <commit-qu...@webkit.org>
+
+        Unreviewed, rolling out r239825.
+        https://bugs.webkit.org/show_bug.cgi?id=193330
+
+        Broke tests on armv7/linux bots (Requested by guijemont on
+        #webkit).
+
+        Reverted changeset:
+
+        "Enable DFG on ARM/Linux again"
+        https://bugs.webkit.org/show_bug.cgi?id=192496
+        https://trac.webkit.org/changeset/239825
+
 2019-01-10  John Wilander  <wilan...@apple.com>
 
         Override the session configuration for cookieAcceptPolicy

Modified: trunk/Source/WTF/wtf/Platform.h (239837 => 239838)


--- trunk/Source/WTF/wtf/Platform.h	2019-01-10 19:59:15 UTC (rev 239837)
+++ trunk/Source/WTF/wtf/Platform.h	2019-01-10 20:04:32 UTC (rev 239838)
@@ -760,6 +760,9 @@
 #if !defined(ENABLE_JIT)
 #define ENABLE_JIT 1
 #endif
+/* But still disable DFG for now. */
+#undef ENABLE_DFG_JIT
+#define ENABLE_DFG_JIT 0
 #else
 /* Disable JIT and force C_LOOP on all 32bit-architectures but ARMv7-Thumb2/Linux. */
 #undef ENABLE_JIT

Modified: trunk/Tools/ChangeLog (239837 => 239838)


--- trunk/Tools/ChangeLog	2019-01-10 19:59:15 UTC (rev 239837)
+++ trunk/Tools/ChangeLog	2019-01-10 20:04:32 UTC (rev 239838)
@@ -1,3 +1,17 @@
+2019-01-10  Commit Queue  <commit-qu...@webkit.org>
+
+        Unreviewed, rolling out r239825.
+        https://bugs.webkit.org/show_bug.cgi?id=193330
+
+        Broke tests on armv7/linux bots (Requested by guijemont on
+        #webkit).
+
+        Reverted changeset:
+
+        "Enable DFG on ARM/Linux again"
+        https://bugs.webkit.org/show_bug.cgi?id=192496
+        https://trac.webkit.org/changeset/239825
+
 2019-01-10  Zhifei Fang  <zhifei_f...@apple.com>
 
         Disable the run-jsc-stress-test remote host key check.

Modified: trunk/Tools/Scripts/run-jsc-stress-tests (239837 => 239838)


--- trunk/Tools/Scripts/run-jsc-stress-tests	2019-01-10 19:59:15 UTC (rev 239837)
+++ trunk/Tools/Scripts/run-jsc-stress-tests	2019-01-10 20:04:32 UTC (rev 239838)
@@ -449,7 +449,7 @@
 $architecture = determineArchitecture unless $architecture
 $isFTLPlatform = !($architecture == "x86" || $architecture == "arm" || $architecture == "mips" || $hostOS == "windows")
 
-if ["mips", "x86"].include?($architecture)
+if ["arm", "mips", "x86"].include?($architecture)
     # The JIT is temporarily disabled on these platforms since
     # https://trac.webkit.org/changeset/237547
     $jitTests = false
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to