WebKit Bugzilla
Attachment 357953 Details for
Bug 192983
: [JSC] Reenable baseline JIT on mips
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
bug-192983-20181221184622.patch (text/plain), 29.94 KB, created by
Guillaume Emont
on 2018-12-21 09:46:24 PST
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Guillaume Emont
Created:
2018-12-21 09:46:24 PST
Size:
29.94 KB
patch
obsolete
>Subversion Revision: 239503 >diff --git a/Source/JavaScriptCore/ChangeLog b/Source/JavaScriptCore/ChangeLog >index 5f116701d091550e6c534081df0c71a5382cc584..eaf1416b9ed2f167c4244085f64146042706d40e 100644 >--- a/Source/JavaScriptCore/ChangeLog >+++ b/Source/JavaScriptCore/ChangeLog >@@ -1,3 +1,22 @@ >+2018-12-21 Guillaume Emont <guijemont@igalia.com> >+ >+ [JSC] Fix llint with offlineassembler for mips >+ https://bugs.webkit.org/show_bug.cgi?id=192983 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ Use $s0 as metadata register and make sure it's properly saved and >+ restored. >+ >+ * jit/GPRInfo.h: >+ (JSC::GPRInfo::toRegister): >+ (JSC::GPRInfo::toIndex): >+ * jit/RegisterSet.cpp: >+ (JSC::RegisterSet::vmCalleeSaveRegisters): >+ (JSC::RegisterSet::llintBaselineCalleeSaveRegisters): >+ * llint/LowLevelInterpreter.asm: >+ * offlineasm/mips.rb: >+ > 2018-12-20 Chris Dumez <cdumez@apple.com> > > Use Optional::hasValue() instead of Optional::has_value() >diff --git a/Source/WTF/ChangeLog b/Source/WTF/ChangeLog >index d6ba904f93d34d432f2b91fd924bbf3ba42a0932..7ddb6020fc0124eb45215a2fc8f75ea27e9156b9 100644 >--- a/Source/WTF/ChangeLog >+++ b/Source/WTF/ChangeLog >@@ -1,3 +1,14 @@ >+2018-12-21 Guillaume Emont <guijemont@igalia.com> >+ >+ [JSC] Fix llint with offlineassembler for mips >+ https://bugs.webkit.org/show_bug.cgi?id=192983 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ Do not use CLoop as default on MIPS any more. >+ >+ * wtf/Platform.h: >+ > 2018-12-20 Brent Fulgham <bfulgham@apple.com> > > Show punycode if URL contains Latin small letter dotless i >diff --git a/Source/bmalloc/ChangeLog b/Source/bmalloc/ChangeLog >index ae0fde23722122c9c999c52e1630b4ef43a2e230..58d9eef2e11a2bec6c0548afb1705be1a1af3324 100644 >--- a/Source/bmalloc/ChangeLog >+++ b/Source/bmalloc/ChangeLog >@@ -1,3 +1,16 @@ >+2018-12-21 Guillaume Emont <guijemont@igalia.com> >+ >+ [JSC] Fix llint with offlineassembler for mips >+ https://bugs.webkit.org/show_bug.cgi?id=192983 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ Make sure g_gigacageBasePtrs is properly initialized when gigacage is >+ disabled too. >+ >+ * bmalloc/Gigacage.cpp: >+ (Gigacage::ensureGigacage): >+ > 2018-12-15 Yusuke Suzuki <yusukesuzuki@slowstart.org> > > Unreviewed, suppress warnings in Linux >diff --git a/Source/JavaScriptCore/jit/GPRInfo.h b/Source/JavaScriptCore/jit/GPRInfo.h >index 1a0a5c9742b4db7cdea8c8965536c30e9b9fa765..4dd253467ce07fe6ab73d4b73aef35cf4cd2de1d 100644 >--- a/Source/JavaScriptCore/jit/GPRInfo.h >+++ b/Source/JavaScriptCore/jit/GPRInfo.h >@@ -728,12 +728,12 @@ public: > > #if CPU(MIPS) > #define NUMBER_OF_ARGUMENT_REGISTERS 4u >-#define NUMBER_OF_CALLEE_SAVES_REGISTERS 0u >+#define NUMBER_OF_CALLEE_SAVES_REGISTERS 1u > > class GPRInfo { > public: > typedef GPRReg RegisterType; >- static const unsigned numberOfRegisters = 11; >+ static const unsigned numberOfRegisters = 12; > static const unsigned numberOfArgumentRegisters = NUMBER_OF_ARGUMENT_REGISTERS; > > // regT0 must be v0 for returning a 32-bit value. >@@ -762,11 +762,12 @@ public: > static const GPRReg returnValueGPR = regT0; > static const GPRReg returnValueGPR2 = regT1; > static const GPRReg nonPreservedNonReturnGPR = regT2; >+ static const GPRReg regCS0 = MIPSRegisters::s0; > > static GPRReg toRegister(unsigned index) > { > ASSERT(index < numberOfRegisters); >- static const GPRReg registerForIndex[numberOfRegisters] = { regT0, regT1, regT2, regT3, regT4, regT5, regT6, regT7, regT8, regT9, regT10 }; >+ static const GPRReg registerForIndex[numberOfRegisters] = { regT0, regT1, regT2, regT3, regT4, regT5, regT6, regT7, regT8, regT9, regT10, regCS0 }; > return registerForIndex[index]; > } > >@@ -784,7 +785,7 @@ public: > static const unsigned indexForRegister[32] = { > InvalidIndex, InvalidIndex, 0, 1, 7, 8, 9, 10, > InvalidIndex, InvalidIndex, 2, 3, 4, 5, 6, InvalidIndex, >- InvalidIndex, InvalidIndex, InvalidIndex, InvalidIndex, InvalidIndex, InvalidIndex, InvalidIndex, InvalidIndex, >+ 11, InvalidIndex, InvalidIndex, InvalidIndex, InvalidIndex, InvalidIndex, InvalidIndex, InvalidIndex, > InvalidIndex, InvalidIndex, InvalidIndex, InvalidIndex, InvalidIndex, InvalidIndex, InvalidIndex, InvalidIndex > }; > unsigned result = indexForRegister[reg]; >diff --git a/Source/JavaScriptCore/jit/RegisterSet.cpp b/Source/JavaScriptCore/jit/RegisterSet.cpp >index 7c94804a1341af86973cb89bce52d9565c8f8c37..3d02317d9354698b58ea256df0e4becd842a0e21 100644 >--- a/Source/JavaScriptCore/jit/RegisterSet.cpp >+++ b/Source/JavaScriptCore/jit/RegisterSet.cpp >@@ -192,7 +192,7 @@ RegisterSet RegisterSet::vmCalleeSaveRegisters() > result.set(FPRInfo::fpRegCS5); > result.set(FPRInfo::fpRegCS6); > result.set(FPRInfo::fpRegCS7); >-#elif CPU(ARM_THUMB2) >+#elif CPU(ARM_THUMB2) || CPU(MIPS) > result.set(GPRInfo::regCS0); > #endif > return result; >@@ -238,6 +238,7 @@ RegisterSet RegisterSet::llintBaselineCalleeSaveRegisters() > result.set(GPRInfo::regCS8); > result.set(GPRInfo::regCS9); > #elif CPU(MIPS) >+ result.set(GPRInfo::regCS0); > #else > UNREACHABLE_FOR_PLATFORM(); > #endif >diff --git a/Source/JavaScriptCore/llint/LowLevelInterpreter.asm b/Source/JavaScriptCore/llint/LowLevelInterpreter.asm >index ec2a32e833d626e788f42ea029a6fb6670160841..1b8e5e72efc11faebd2263b6e4e626699a2382c1 100644 >--- a/Source/JavaScriptCore/llint/LowLevelInterpreter.asm >+++ b/Source/JavaScriptCore/llint/LowLevelInterpreter.asm >@@ -231,6 +231,8 @@ elsif C_LOOP > const CalleeSaveSpaceAsVirtualRegisters = 1 > elsif ARMv7 > const CalleeSaveSpaceAsVirtualRegisters = 1 >+elsif MIPS >+ const CalleeSaveSpaceAsVirtualRegisters = 1 > else > const CalleeSaveSpaceAsVirtualRegisters = 0 > end >@@ -297,6 +299,8 @@ else > const metadataTable = csr3 > elsif ARMv7 > const metadataTable = csr0 >+ elsif MIPS >+ const metadataTable = csr0 > else > error > end >@@ -631,7 +635,7 @@ if C_LOOP or ARM64 or ARM64E or X86_64 or X86_64_WIN > elsif ARMv7 > const CalleeSaveRegisterCount = 7 > elsif MIPS >- const CalleeSaveRegisterCount = 1 >+ const CalleeSaveRegisterCount = 2 > elsif X86 or X86_WIN > const CalleeSaveRegisterCount = 3 > end >@@ -647,8 +651,9 @@ macro pushCalleeSaves() > elsif ARMv7 > emit "push {r4-r6, r8-r11}" > elsif MIPS >- emit "addiu $sp, $sp, -4" >- emit "sw $s4, 0($sp)" >+ emit "addiu $sp, $sp, -8" >+ emit "sw $s0, 0($sp)" # csr0/metaData >+ emit "sw $s4, 4($sp)" > # save $gp to $s4 so that we can restore it after a function call > emit "move $s4, $gp" > elsif X86 >@@ -667,8 +672,9 @@ macro popCalleeSaves() > elsif ARMv7 > emit "pop {r4-r6, r8-r11}" > elsif MIPS >- emit "lw $s4, 0($sp)" >- emit "addiu $sp, $sp, 4" >+ emit "lw $s0, 0($sp)" >+ emit "lw $s4, 4($sp)" >+ emit "addiu $sp, $sp, 8" > elsif X86 > emit "pop %ebx" > emit "pop %edi" >@@ -710,12 +716,11 @@ macro preserveCalleeSavesUsedByLLInt() > subp CalleeSaveSpaceStackAligned, sp > if C_LOOP > storep metadataTable, -PtrSize[cfr] >- elsif ARMv7 >+ elsif ARMv7 or MIPS > storep metadataTable, -4[cfr] > elsif ARM64 or ARM64E > emit "stp x27, x28, [x29, #-16]" > emit "stp x25, x26, [x29, #-32]" >- elsif MIPS > elsif X86 > elsif X86_WIN > elsif X86_64 >@@ -734,12 +739,11 @@ end > macro restoreCalleeSavesUsedByLLInt() > if C_LOOP > loadp -PtrSize[cfr], metadataTable >- elsif ARMv7 >+ elsif ARMv7 or MIPS > loadp -4[cfr], metadataTable > elsif ARM64 or ARM64E > emit "ldp x25, x26, [x29, #-32]" > emit "ldp x27, x28, [x29, #-16]" >- elsif MIPS > elsif X86 > elsif X86_WIN > elsif X86_64 >@@ -756,7 +760,7 @@ macro restoreCalleeSavesUsedByLLInt() > end > > macro copyCalleeSavesToVMEntryFrameCalleeSavesBuffer(vm, temp) >- if ARM64 or ARM64E or X86_64 or X86_64_WIN or ARMv7 >+ if ARM64 or ARM64E or X86_64 or X86_64_WIN or ARMv7 or MIPS > loadp VM::topEntryFrame[vm], temp > vmEntryRecord(temp, temp) > leap VMEntryRecord::calleeSaveRegistersBuffer[temp], temp >@@ -793,14 +797,14 @@ macro copyCalleeSavesToVMEntryFrameCalleeSavesBuffer(vm, temp) > storeq csr4, 32[temp] > storeq csr5, 40[temp] > storeq csr6, 48[temp] >- elsif ARMv7 >+ elsif ARMv7 or MIPS > storep csr0, [temp] > end > end > end > > macro restoreCalleeSavesFromVMEntryFrameCalleeSavesBuffer(vm, temp) >- if ARM64 or ARM64E or X86_64 or X86_64_WIN or ARMv7 >+ if ARM64 or ARM64E or X86_64 or X86_64_WIN or ARMv7 or MIPS > loadp VM::topEntryFrame[vm], temp > vmEntryRecord(temp, temp) > leap VMEntryRecord::calleeSaveRegistersBuffer[temp], temp >@@ -837,7 +841,7 @@ macro restoreCalleeSavesFromVMEntryFrameCalleeSavesBuffer(vm, temp) > loadq 32[temp], csr4 > loadq 40[temp], csr5 > loadq 48[temp], csr6 >- elsif ARMv7 >+ elsif ARMv7 or MIPS > loadp [temp], csr0 > end > end >diff --git a/Source/JavaScriptCore/offlineasm/mips.rb b/Source/JavaScriptCore/offlineasm/mips.rb >index df19c6ba03e159fcb9339df1ef8204baa2102a68..36e1fb7e3febe5474223aabd347e001add04c09f 100644 >--- a/Source/JavaScriptCore/offlineasm/mips.rb >+++ b/Source/JavaScriptCore/offlineasm/mips.rb >@@ -135,6 +135,8 @@ class RegisterID > "$t5" > when "cfr" > "$fp" >+ when "csr0" >+ "$s0" > when "lr" > "$ra" > when "sp" >@@ -878,7 +880,7 @@ class Instruction > $asm.puts "sw #{mipsOperands(operands)}" > when "loadb" > $asm.puts "lbu #{mipsFlippedOperands(operands)}" >- when "loadbs" >+ when "loadbs", "loadbsp" > $asm.puts "lb #{mipsFlippedOperands(operands)}" > when "storeb" > $asm.puts "sb #{mipsOperands(operands)}" >@@ -1035,7 +1037,14 @@ class Instruction > when /^bnz/ > $asm.puts "bne #{operands[0].mipsOperand}, #{operands[1].mipsOperand}, #{operands[2].asmLabel}" > when "leai", "leap" >- operands[0].mipsEmitLea(operands[1]) >+ if operands[0].is_a? LabelReference >+ labelRef = operands[0] >+ raise unless labelRef.offset == 0 >+ $asm.puts "lw #{operands[1].mipsOperand}, %got(#{labelRef.asmLabel})($gp)" >+ else >+ operands[0].mipsEmitLea(operands[1]) >+ end >+ > when "smulli" > raise "Wrong number of arguments to smull in #{self.inspect} at #{codeOriginString}" unless operands.length == 4 > $asm.puts "mult #{operands[0].mipsOperand}, #{operands[1].mipsOperand}" >diff --git a/Source/WTF/wtf/Platform.h b/Source/WTF/wtf/Platform.h >index c68b2aeca15b85ba5202e6581c5410bd529af3f7..2483c50846e49cb3928e2dd076938ee383eb47dc 100644 >--- a/Source/WTF/wtf/Platform.h >+++ b/Source/WTF/wtf/Platform.h >@@ -763,8 +763,11 @@ > /* But still disable DFG for now. */ > #undef ENABLE_DFG_JIT > #define ENABLE_DFG_JIT 0 >+#elif CPU(MIPS) && OS(LINUX) >+#undef ENABLE_JIT >+#define ENABLE_JIT 0 > #else >-/* Disable JIT and force C_LOOP on all 32bit-architectures but ARMv7-Thumb2/Linux. */ >+/* Disable JIT and force C_LOOP on all 32bit-architectures but ARMv7-Thumb2 and MIPS on Linux. */ > #undef ENABLE_JIT > #define ENABLE_JIT 0 > #undef ENABLE_C_LOOP >diff --git a/Source/bmalloc/bmalloc/Gigacage.cpp b/Source/bmalloc/bmalloc/Gigacage.cpp >index 434c519babdda78e2a9900e62378a4a2b452489c..c8ecea7fffeee6a4df11a0e83799d8a3aa94af41 100644 >--- a/Source/bmalloc/bmalloc/Gigacage.cpp >+++ b/Source/bmalloc/bmalloc/Gigacage.cpp >@@ -116,11 +116,11 @@ size_t runwaySize(Kind kind) > > void ensureGigacage() > { >-#if GIGACAGE_ENABLED > static std::once_flag onceFlag; > std::call_once( > onceFlag, > [] { >+#if GIGACAGE_ENABLED > if (!shouldBeEnabled()) > return; > >@@ -184,8 +184,12 @@ void ensureGigacage() > vmDeallocatePhysicalPages(base, totalSize); > protectGigacageBasePtrs(); > g_wasEnabled = true; >- }); >+#else >+ basePtr(Primitive) = nullptr; >+ basePtr(JSValue) = nullptr; >+ g_wasEnabled = false; > #endif // GIGACAGE_ENABLED >+ }); > } > > void disablePrimitiveGigacage() >diff --git a/Source/cmake/WebKitFeatures.cmake b/Source/cmake/WebKitFeatures.cmake >index 657ed0cfbf47f876614a75739a6c5f8ef02a8dcb..1afd18278335a2676843df53c3e508151c30453d 100644 >--- a/Source/cmake/WebKitFeatures.cmake >+++ b/Source/cmake/WebKitFeatures.cmake >@@ -74,6 +74,12 @@ macro(WEBKIT_OPTION_BEGIN) > set(USE_SYSTEM_MALLOC_DEFAULT OFF) > set(ENABLE_C_LOOP_DEFAULT OFF) > set(ENABLE_SAMPLING_PROFILER_DEFAULT ON) >+ elseif (WTF_CPU_MIPS AND WTF_OS_LINUX) >+ set(ENABLE_JIT_DEFAULT OFF) >+ set(ENABLE_FTL_DEFAULT OFF) >+ set(USE_SYSTEM_MALLOC_DEFAULT OFF) >+ set(ENABLE_C_LOOP_DEFAULT OFF) >+ set(ENABLE_SAMPLING_PROFILER_DEFAULT OFF) > else () > set(ENABLE_JIT_DEFAULT OFF) > set(ENABLE_FTL_DEFAULT OFF) >diff --git a/ChangeLog b/ChangeLog >index e99303f7b303debcaa84addbf9aa4e414776c6e6..b6195ae66ee15172653ff74efc307d96a05339b2 100644 >--- a/ChangeLog >+++ b/ChangeLog >@@ -1,3 +1,14 @@ >+2018-12-21 Guillaume Emont <guijemont@igalia.com> >+ >+ [JSC] Fix llint with offlineassembler for mips >+ https://bugs.webkit.org/show_bug.cgi?id=192983 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ Compile LLInt with the mips backend by default on mips. >+ >+ * Source/cmake/WebKitFeatures.cmake: >+ > 2018-12-19 Adrian Perez de Castro <aperez@igalia.com> > > [GTK] Cannot build with CMake <3.7 >diff --git a/JSTests/ChangeLog b/JSTests/ChangeLog >index 54771be4d5695e2518dbb661bfb76e7d79f13dba..9f43c8bada9faf319269bab1d0d4718dfe90d206 100644 >--- a/JSTests/ChangeLog >+++ b/JSTests/ChangeLog >@@ -1,3 +1,40 @@ >+2018-12-21 Guillaume Emont <guijemont@igalia.com> >+ >+ [JSC] Fix llint with offlineassembler for mips >+ https://bugs.webkit.org/show_bug.cgi?id=192983 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ Added a new test for a case that was triggering a RELEASE_ASSERT when >+ testing. >+ Disable some slow tests that were already disabled for arm and x86. >+ >+ * stress/json-parse-big-object.js: Added. >+ * stress/op_add.js: >+ * stress/op_bitand.js: >+ * stress/op_bitor.js: >+ * stress/op_bitxor.js: >+ * stress/op_lshift-ConstVar.js: >+ * stress/op_lshift-VarConst.js: >+ * stress/op_lshift-VarVar.js: >+ * stress/op_mod-ConstVar.js: >+ * stress/op_mod-VarConst.js: >+ * stress/op_mod-VarVar.js: >+ * stress/op_mul-ConstVar.js: >+ * stress/op_mul-VarConst.js: >+ * stress/op_mul-VarVar.js: >+ * stress/op_rshift-ConstVar.js: >+ * stress/op_rshift-VarConst.js: >+ * stress/op_rshift-VarVar.js: >+ * stress/op_sub-ConstVar.js: >+ * stress/op_sub-VarConst.js: >+ * stress/op_sub-VarVar.js: >+ * stress/op_urshift-ConstVar.js: >+ * stress/op_urshift-VarConst.js: >+ * stress/op_urshift-VarVar.js: >+ * stress/sampling-profiler-richards.js: >+ * stress/spread-forward-call-varargs-stack-overflow.js: >+ > 2018-12-20 Keith Miller <keith_miller@apple.com> > > Add support for globalThis >diff --git a/JSTests/stress/json-parse-big-object.js b/JSTests/stress/json-parse-big-object.js >new file mode 100644 >index 0000000000000000000000000000000000000000..d70b3eceae5a4cf9527cab91ab62c80f5a025af5 >--- /dev/null >+++ b/JSTests/stress/json-parse-big-object.js >@@ -0,0 +1,15 @@ >+ >+var obj = { >+ "foo1": { "foo2": { "foo3": { "foo4": { "foo5": { "foo6": { "foo7": [ >+ { "bar1": "a".repeat(670)}, >+ { "bar2": "a".repeat(15771)}, >+ ] >+ }}}}}}}; >+ >+function doTest(x) { >+ for (let i=1; i<10000; i++) { >+ var s = JSON.stringify(x); >+ } >+} >+ >+doTest(obj); >diff --git a/JSTests/stress/op_add.js b/JSTests/stress/op_add.js >index c6290406cc662bb9291f6aedb9bd26fdb55bf2f0..ce799de387b630e12fb87d2efd3e2e1db0d796f1 100644 >--- a/JSTests/stress/op_add.js >+++ b/JSTests/stress/op_add.js >@@ -1,6 +1,6 @@ > // FIXME: unskip when this is solved > // https://bugs.webkit.org/show_bug.cgi?id=191163 >-//@ skip if $architecture == "arm" or $architecture == "x86" >+//@ skip if ["arm", "mips", "x86"].include?($architecture) > //@ runFTLNoCJIT > > // If all goes well, this test module will terminate silently. If not, it will print >diff --git a/JSTests/stress/op_bitand.js b/JSTests/stress/op_bitand.js >index a4586034d31687e229a4263f4414cb748e3f2e5c..d014aa6e9d855916a18632d5d2c33b775614b416 100644 >--- a/JSTests/stress/op_bitand.js >+++ b/JSTests/stress/op_bitand.js >@@ -1,6 +1,6 @@ > // FIXME: unskip when this is solved > // https://bugs.webkit.org/show_bug.cgi?id=191163 >-//@ skip if $architecture == "arm" or $architecture == "x86" >+//@ skip if ["arm", "mips", "x86"].include?($architecture) > //@ runFTLNoCJIT > > // If all goes well, this test module will terminate silently. If not, it will print >diff --git a/JSTests/stress/op_bitor.js b/JSTests/stress/op_bitor.js >index 2668a999970e0764cd2ea4a43e3a24d26eb235f2..ad3bfaa431d5785936815d75966dade1bc88b486 100644 >--- a/JSTests/stress/op_bitor.js >+++ b/JSTests/stress/op_bitor.js >@@ -1,6 +1,6 @@ > // FIXME: unskip when this is solved > // https://bugs.webkit.org/show_bug.cgi?id=191163 >-//@ skip if $architecture == "arm" or $architecture == "x86" >+//@ skip if ["arm", "mips", "x86"].include?($architecture) > //@ runFTLNoCJIT > > // If all goes well, this test module will terminate silently. If not, it will print >diff --git a/JSTests/stress/op_bitxor.js b/JSTests/stress/op_bitxor.js >index 769c5520ec4e248f3ab17fb16c553672cc176297..f22fa04ca6afb2bb577ca46ca098a73b4b6d7dcd 100644 >--- a/JSTests/stress/op_bitxor.js >+++ b/JSTests/stress/op_bitxor.js >@@ -1,6 +1,6 @@ > // FIXME: unskip when this is solved > // https://bugs.webkit.org/show_bug.cgi?id=191163 >-//@ skip if $architecture == "arm" or $architecture == "x86" >+//@ skip if ["arm", "mips", "x86"].include?($architecture) > //@ runFTLNoCJIT > > // If all goes well, this test module will terminate silently. If not, it will print >diff --git a/JSTests/stress/op_lshift-ConstVar.js b/JSTests/stress/op_lshift-ConstVar.js >index 79b46c11d48a469a20277f23a854ff9bb0b0516e..1648c25cb8922022cb58ad93c143de192e8a98fc 100644 >--- a/JSTests/stress/op_lshift-ConstVar.js >+++ b/JSTests/stress/op_lshift-ConstVar.js >@@ -1,6 +1,6 @@ > // FIXME: unskip when this is solved > // https://bugs.webkit.org/show_bug.cgi?id=191163 >-//@ skip if $architecture == "arm" or $architecture == "x86" >+//@ skip if ["arm", "mips", "x86"].include?($architecture) > //@ runFTLNoCJIT > > // If all goes well, this test module will terminate silently. If not, it will print >diff --git a/JSTests/stress/op_lshift-VarConst.js b/JSTests/stress/op_lshift-VarConst.js >index da7e06f10eabe3a8d68b39b59127b21cf868bc29..bfce6c15f758e34c91c521ae7e0c6ca589e8d644 100644 >--- a/JSTests/stress/op_lshift-VarConst.js >+++ b/JSTests/stress/op_lshift-VarConst.js >@@ -1,6 +1,6 @@ > // FIXME: unskip when this is solved > // https://bugs.webkit.org/show_bug.cgi?id=191163 >-//@ skip if $architecture == "arm" or $architecture == "x86" >+//@ skip if ["arm", "mips", "x86"].include?($architecture) > //@ runFTLNoCJIT > > // If all goes well, this test module will terminate silently. If not, it will print >diff --git a/JSTests/stress/op_lshift-VarVar.js b/JSTests/stress/op_lshift-VarVar.js >index 26b8688d1a7aeaffdfd53766f35c0f0224e3db5e..43f763073afbf766905b18d3583b7da7e68d8a5b 100644 >--- a/JSTests/stress/op_lshift-VarVar.js >+++ b/JSTests/stress/op_lshift-VarVar.js >@@ -1,6 +1,6 @@ > // FIXME: unskip when this is solved > // https://bugs.webkit.org/show_bug.cgi?id=191163 >-//@ skip if $architecture == "arm" or $architecture == "x86" >+//@ skip if ["arm", "mips", "x86"].include?($architecture) > //@ runFTLNoCJIT > > // If all goes well, this test module will terminate silently. If not, it will print >diff --git a/JSTests/stress/op_mod-ConstVar.js b/JSTests/stress/op_mod-ConstVar.js >index 6052bb2a76807b9cb9d790a5c981bdd87f270a6e..c0f2cb341e9c2945f1567d67f59136c06cbf4194 100644 >--- a/JSTests/stress/op_mod-ConstVar.js >+++ b/JSTests/stress/op_mod-ConstVar.js >@@ -1,6 +1,6 @@ > // FIXME: unskip when this is solved > // https://bugs.webkit.org/show_bug.cgi?id=191163 >-//@ skip if $architecture == "arm" or $architecture == "x86" >+//@ skip if ["arm", "mips", "x86"].include?($architecture) > //@ runFTLNoCJIT("--timeoutMultiplier=1.5") > > // If all goes well, this test module will terminate silently. If not, it will print >diff --git a/JSTests/stress/op_mod-VarConst.js b/JSTests/stress/op_mod-VarConst.js >index 3ecc67dc707f267eed221fd1ea8612fa9d419e76..68303fbfbbb01ff1cc44cc90ff4874d07ab2ef76 100644 >--- a/JSTests/stress/op_mod-VarConst.js >+++ b/JSTests/stress/op_mod-VarConst.js >@@ -1,6 +1,6 @@ > // FIXME: unskip when this is solved > // https://bugs.webkit.org/show_bug.cgi?id=191163 >-//@ skip if $architecture == "arm" or $architecture == "x86" >+//@ skip if ["arm", "mips", "x86"].include?($architecture) > //@ runFTLNoCJIT("--timeoutMultiplier=1.5") > > // If all goes well, this test module will terminate silently. If not, it will print >diff --git a/JSTests/stress/op_mod-VarVar.js b/JSTests/stress/op_mod-VarVar.js >index 1f09be897ccb4939df3fe339350b8cedaf2cd8e3..29bdccba4fc6571fcb16932aa6148aaf5e94bc91 100644 >--- a/JSTests/stress/op_mod-VarVar.js >+++ b/JSTests/stress/op_mod-VarVar.js >@@ -1,6 +1,6 @@ > // FIXME: unskip when this is solved > // https://bugs.webkit.org/show_bug.cgi?id=191163 >-//@ skip if $architecture == "arm" or $architecture == "x86" >+//@ skip if ["arm", "mips", "x86"].include?($architecture) > //@ runFTLNoCJIT("--timeoutMultiplier=1.5") > > // If all goes well, this test module will terminate silently. If not, it will print >diff --git a/JSTests/stress/op_mul-ConstVar.js b/JSTests/stress/op_mul-ConstVar.js >index f1ca9b55e7b0a1d6ba3559fdf7c71e1b7af07492..364144db3f8e76abb85dd941c08af3d6cf211f06 100644 >--- a/JSTests/stress/op_mul-ConstVar.js >+++ b/JSTests/stress/op_mul-ConstVar.js >@@ -1,6 +1,6 @@ > // FIXME: unskip when this is solved > // https://bugs.webkit.org/show_bug.cgi?id=191163 >-//@ skip if $architecture == "arm" or $architecture == "x86" >+//@ skip if ["arm", "mips", "x86"].include?($architecture) > //@ runFTLNoCJIT > > // If all goes well, this test module will terminate silently. If not, it will print >diff --git a/JSTests/stress/op_mul-VarConst.js b/JSTests/stress/op_mul-VarConst.js >index 1de41fed68d5b9f4a52c1118774ead4b34936206..441b35cac57f87976aadaf3cf83d234eb2c44497 100644 >--- a/JSTests/stress/op_mul-VarConst.js >+++ b/JSTests/stress/op_mul-VarConst.js >@@ -1,6 +1,6 @@ > // FIXME: unskip when this is solved > // https://bugs.webkit.org/show_bug.cgi?id=191163 >-//@ skip if $architecture == "arm" or $architecture == "x86" >+//@ skip if ["arm", "mips", "x86"].include?($architecture) > //@ runFTLNoCJIT > > // If all goes well, this test module will terminate silently. If not, it will print >diff --git a/JSTests/stress/op_mul-VarVar.js b/JSTests/stress/op_mul-VarVar.js >index fd9f1d0eebbb1f760dd6d67b8c6c270c3c374110..042fbb87424dfcdcabc9c973a47b31664fb0f43b 100644 >--- a/JSTests/stress/op_mul-VarVar.js >+++ b/JSTests/stress/op_mul-VarVar.js >@@ -1,6 +1,6 @@ > // FIXME: unskip when this is solved > // https://bugs.webkit.org/show_bug.cgi?id=191163 >-//@ skip if $architecture == "arm" or $architecture == "x86" >+//@ skip if ["arm", "mips", "x86"].include?($architecture) > //@ runFTLNoCJIT > > // If all goes well, this test module will terminate silently. If not, it will print >diff --git a/JSTests/stress/op_rshift-ConstVar.js b/JSTests/stress/op_rshift-ConstVar.js >index 721856c2423dbd8c892d3680eb554bfefac55245..a34515b4d6bb28118aa605a298881fbd13a3e370 100644 >--- a/JSTests/stress/op_rshift-ConstVar.js >+++ b/JSTests/stress/op_rshift-ConstVar.js >@@ -1,6 +1,6 @@ > // FIXME: unskip when this is solved > // https://bugs.webkit.org/show_bug.cgi?id=191163 >-//@ skip if $architecture == "arm" or $architecture == "x86" >+//@ skip if ["arm", "mips", "x86"].include?($architecture) > //@ runFTLNoCJIT > > // If all goes well, this test module will terminate silently. If not, it will print >diff --git a/JSTests/stress/op_rshift-VarConst.js b/JSTests/stress/op_rshift-VarConst.js >index b2bf2da248ae166a80c9e73ef318015c49a15d96..715aea6c51c7679925c4be9b99311c9919f20f5c 100644 >--- a/JSTests/stress/op_rshift-VarConst.js >+++ b/JSTests/stress/op_rshift-VarConst.js >@@ -1,6 +1,6 @@ > // FIXME: unskip when this is solved > // https://bugs.webkit.org/show_bug.cgi?id=191163 >-//@ skip if $architecture == "arm" or $architecture == "x86" >+//@ skip if ["arm", "mips", "x86"].include?($architecture) > //@ runFTLNoCJIT > > // If all goes well, this test module will terminate silently. If not, it will print >diff --git a/JSTests/stress/op_rshift-VarVar.js b/JSTests/stress/op_rshift-VarVar.js >index a6a1bfc87a4196ea4f2747b33f706a0a4225de6a..f1f4166a55afbb8cd66f8ee4518ac33ca9cd8500 100644 >--- a/JSTests/stress/op_rshift-VarVar.js >+++ b/JSTests/stress/op_rshift-VarVar.js >@@ -1,6 +1,6 @@ > // FIXME: unskip when this is solved > // https://bugs.webkit.org/show_bug.cgi?id=191163 >-//@ skip if $architecture == "arm" or $architecture == "x86" >+//@ skip if ["arm", "mips", "x86"].include?($architecture) > //@ runFTLNoCJIT > > // If all goes well, this test module will terminate silently. If not, it will print >diff --git a/JSTests/stress/op_sub-ConstVar.js b/JSTests/stress/op_sub-ConstVar.js >index f651df2e655f4244e4f768e3e451866c59010b5d..1f4e7b416f4d17553677df1a44eed652d1bcd454 100644 >--- a/JSTests/stress/op_sub-ConstVar.js >+++ b/JSTests/stress/op_sub-ConstVar.js >@@ -1,6 +1,6 @@ > // FIXME: unskip when this is solved > // https://bugs.webkit.org/show_bug.cgi?id=191163 >-//@ skip if $architecture == "arm" or $architecture == "x86" >+//@ skip if ["arm", "mips", "x86"].include?($architecture) > //@ runFTLNoCJIT > > // If all goes well, this test module will terminate silently. If not, it will print >diff --git a/JSTests/stress/op_sub-VarConst.js b/JSTests/stress/op_sub-VarConst.js >index f590d0ed8e4852a9e11783fadb8dd738d4a96a8e..9e7ed1a900c700e66eec81671242d9fd882cc2f1 100644 >--- a/JSTests/stress/op_sub-VarConst.js >+++ b/JSTests/stress/op_sub-VarConst.js >@@ -1,6 +1,6 @@ > // FIXME: unskip when this is solved > // https://bugs.webkit.org/show_bug.cgi?id=191163 >-//@ skip if $architecture == "arm" or $architecture == "x86" >+//@ skip if ["arm", "mips", "x86"].include?($architecture) > //@ runFTLNoCJIT > > // If all goes well, this test module will terminate silently. If not, it will print >diff --git a/JSTests/stress/op_sub-VarVar.js b/JSTests/stress/op_sub-VarVar.js >index f194861e6bdb81f906e0b8c697e40dadd068681f..3bb0b2d251b8f1aad10e12c0e48b161cb17de9d8 100644 >--- a/JSTests/stress/op_sub-VarVar.js >+++ b/JSTests/stress/op_sub-VarVar.js >@@ -1,6 +1,6 @@ > // FIXME: unskip when this is solved > // https://bugs.webkit.org/show_bug.cgi?id=191163 >-//@ skip if $architecture == "arm" or $architecture == "x86" >+//@ skip if ["arm", "mips", "x86"].include?($architecture) > //@ runFTLNoCJIT > > // If all goes well, this test module will terminate silently. If not, it will print >diff --git a/JSTests/stress/op_urshift-ConstVar.js b/JSTests/stress/op_urshift-ConstVar.js >index d427c1f294b8718b7995925547de2788a67b926c..b136be38af5408447148b21d643a097b7c28f263 100644 >--- a/JSTests/stress/op_urshift-ConstVar.js >+++ b/JSTests/stress/op_urshift-ConstVar.js >@@ -1,6 +1,6 @@ > // FIXME: unskip when this is solved > // https://bugs.webkit.org/show_bug.cgi?id=191163 >-//@ skip if $architecture == "arm" or $architecture == "x86" >+//@ skip if ["arm", "mips", "x86"].include?($architecture) > //@ runFTLNoCJIT > > // If all goes well, this test module will terminate silently. If not, it will print >diff --git a/JSTests/stress/op_urshift-VarConst.js b/JSTests/stress/op_urshift-VarConst.js >index 1bf063c5457088b5f494329da13f9677865f5bba..8c4308f50782688314971e59c6b535923e05cd2f 100644 >--- a/JSTests/stress/op_urshift-VarConst.js >+++ b/JSTests/stress/op_urshift-VarConst.js >@@ -1,6 +1,6 @@ > // FIXME: unskip when this is solved > // https://bugs.webkit.org/show_bug.cgi?id=191163 >-//@ skip if $architecture == "arm" or $architecture == "x86" >+//@ skip if ["arm", "mips", "x86"].include?($architecture) > //@ runFTLNoCJIT > > // If all goes well, this test module will terminate silently. If not, it will print >diff --git a/JSTests/stress/op_urshift-VarVar.js b/JSTests/stress/op_urshift-VarVar.js >index bc22b997e692edb491607f29e55c4aa720634290..466d47b6ae2ef3af91044a046ac8ecf3beed2de6 100644 >--- a/JSTests/stress/op_urshift-VarVar.js >+++ b/JSTests/stress/op_urshift-VarVar.js >@@ -1,6 +1,6 @@ > // FIXME: unskip when this is solved > // https://bugs.webkit.org/show_bug.cgi?id=191163 >-//@ skip if $architecture == "arm" or $architecture == "x86" >+//@ skip if ["arm", "mips", "x86"].include?($architecture) > //@ runFTLNoCJIT > > // If all goes well, this test module will terminate silently. If not, it will print >diff --git a/JSTests/stress/sampling-profiler-richards.js b/JSTests/stress/sampling-profiler-richards.js >index 475063b37b66c7bc28aeaa4cb333934f5f7037f8..5ea41bd71496a336447de9b66c66f5f3d2302865 100644 >--- a/JSTests/stress/sampling-profiler-richards.js >+++ b/JSTests/stress/sampling-profiler-richards.js >@@ -1,6 +1,6 @@ > // [JSC] [Armv7] stress/sampling-profiler-richards.js crashes > // https://bugs.webkit.org/show_bug.cgi?id=190426 >-//@ skip if $architecture == "arm" and $hostOS == "linux" >+//@ skip if ["arm", "mips"].include?($architecture) and $hostOS == "linux" > //@ skip if $architecture == "x86" > //@ runDefault("--collectContinuously=1", "--useSamplingProfiler=1", "--collectSamplingProfilerDataForJSCShell=1") > >diff --git a/JSTests/stress/spread-forward-call-varargs-stack-overflow.js b/JSTests/stress/spread-forward-call-varargs-stack-overflow.js >index ec1339b5cac544753146d51c7e3e54f9719088d3..2b76c8740e053780ecb8376320f2ee47830d9f21 100644 >--- a/JSTests/stress/spread-forward-call-varargs-stack-overflow.js >+++ b/JSTests/stress/spread-forward-call-varargs-stack-overflow.js >@@ -1,7 +1,6 @@ > // FIXME: unskip when this is solved > // https://bugs.webkit.org/show_bug.cgi?id=191163 >-//@ skip if $architecture == "arm" >-//@ skip if $architecture == "x86" >+//@ skip if ["arm", "mips", "x86"].include?($architecture) > function assert(b) { > if (!b) > throw new Error("Bad assertion");
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 192983
:
357953
|
358312
|
358503
|
358798
|
359728