зеркало из https://github.com/mozilla/gecko-dev.git
Merge mozilla-inbound to mozilla-central a=merge
This commit is contained in:
Коммит
17a96a3646
|
@ -215,20 +215,6 @@ def main(argv):
|
|||
test_list = []
|
||||
read_all = True
|
||||
|
||||
# No point in adding in noasmjs and wasm-baseline variants if the
|
||||
# jitflags forbid asmjs in the first place. (This is to avoid getting a
|
||||
# wasm-baseline run when requesting --jitflags=interp, but the test
|
||||
# contains test-also-noasmjs.)
|
||||
test_flags = get_jitflags(options.jitflags)
|
||||
options.asmjs_enabled = True
|
||||
options.wasm_enabled = True
|
||||
if all(['--no-asmjs' in flags for flags in test_flags]):
|
||||
options.asmjs_enabled = False
|
||||
options.wasm_enabled = False
|
||||
if all(['--wasm-compiler=none' in flags for flags in test_flags]):
|
||||
options.asmjs_enabled = False
|
||||
options.wasm_enabled = False
|
||||
|
||||
if options.run_binast:
|
||||
code = 'print(getBuildConfiguration().binast)'
|
||||
is_binast_enabled = subprocess.check_output([js_shell, '-e', code])
|
||||
|
@ -329,6 +315,8 @@ def main(argv):
|
|||
sys.exit(0)
|
||||
|
||||
# The full test list is ready. Now create copies for each JIT configuration.
|
||||
test_flags = get_jitflags(options.jitflags)
|
||||
|
||||
test_list = [_ for test in test_list for _ in test.copy_variants(test_flags)]
|
||||
|
||||
job_list = (test for test in test_list)
|
||||
|
|
|
@ -1 +1 @@
|
|||
|jit-test| test-also-noasmjs
|
||||
|jit-test| test-also=--no-asmjs
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// |jit-test| test-also-wasm-compiler-ion; error: TestComplete
|
||||
// |jit-test| test-also=--wasm-compiler=ion; error: TestComplete
|
||||
|
||||
if (!wasmDebuggingIsSupported())
|
||||
throw "TestComplete";
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// |jit-test| test-also-wasm-compiler-ion; error: TestComplete
|
||||
// |jit-test| test-also=--wasm-compiler=ion; error: TestComplete
|
||||
|
||||
load(libdir + "asserts.js");
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// |jit-test| test-also-wasm-compiler-ion; error: TestComplete
|
||||
// |jit-test| test-also=--wasm-compiler=ion; error: TestComplete
|
||||
|
||||
load(libdir + "asserts.js");
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// |jit-test| test-also-wasm-compiler-ion; error: TestComplete
|
||||
// |jit-test| test-also=--wasm-compiler=ion; error: TestComplete
|
||||
|
||||
if (!wasmDebuggingIsSupported())
|
||||
throw "TestComplete";
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// |jit-test| test-also-wasm-compiler-ion; exitstatus: 3; skip-if: !wasmDebuggingIsSupported()
|
||||
// |jit-test| test-also=--wasm-compiler=ion; exitstatus: 3; skip-if: !wasmDebuggingIsSupported()
|
||||
|
||||
load(libdir + "asserts.js");
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// |jit-test| test-also-wasm-compiler-ion; error: TestComplete
|
||||
// |jit-test| test-also=--wasm-compiler=ion; error: TestComplete
|
||||
|
||||
if (!wasmDebuggingIsSupported())
|
||||
throw "TestComplete";
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// |jit-test| test-also-wasm-compiler-ion; exitstatus: 3; skip-if: !wasmDebuggingIsSupported()
|
||||
// |jit-test| test-also=--wasm-compiler=ion; exitstatus: 3; skip-if: !wasmDebuggingIsSupported()
|
||||
// Checking in debug frame is initialized properly during stack overflow.
|
||||
|
||||
var dbg;
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// |jit-test| test-also-wasm-compiler-ion; skip-if: !wasmDebuggingIsSupported()
|
||||
// |jit-test| test-also=--wasm-compiler=ion; skip-if: !wasmDebuggingIsSupported()
|
||||
// Checking if Debugger.Script.isInCatchScope return false for wasm.
|
||||
|
||||
load(libdir + "wasm.js");
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// |jit-test| test-also-wasm-compiler-ion; exitstatus: 3; skip-if: !wasmDebuggingIsSupported()
|
||||
// |jit-test| test-also=--wasm-compiler=ion; exitstatus: 3; skip-if: !wasmDebuggingIsSupported()
|
||||
// Checking resumption values for 'null' at onEnterFrame.
|
||||
|
||||
load(libdir + "asserts.js");
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// |jit-test| test-also-wasm-compiler-ion; exitstatus: 3; skip-if: !wasmDebuggingIsSupported()
|
||||
// |jit-test| test-also=--wasm-compiler=ion; exitstatus: 3; skip-if: !wasmDebuggingIsSupported()
|
||||
// Checking resumption values for 'null' at frame's onPop.
|
||||
|
||||
load(libdir + "asserts.js");
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// |jit-test| test-also-wasm-compiler-ion; error: TestComplete; skip-if: !wasmDebuggingIsSupported()
|
||||
// |jit-test| test-also=--wasm-compiler=ion; error: TestComplete; skip-if: !wasmDebuggingIsSupported()
|
||||
// Tests that wasm module scripts raises onEnterFrame and onLeaveFrame events.
|
||||
|
||||
load(libdir + "asserts.js");
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// |jit-test| test-also-wasm-compiler-ion; skip-if: !wasmDebuggingIsSupported()
|
||||
// |jit-test| test-also=--wasm-compiler=ion; skip-if: !wasmDebuggingIsSupported()
|
||||
|
||||
// Checking existence of all frame.offset references during onEnterFrame,
|
||||
// onLeaveFrame and onStep events in the source code, and that we can
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// |jit-test| test-also-wasm-compiler-ion; skip-if: !wasmDebuggingIsSupported()
|
||||
// |jit-test| test-also=--wasm-compiler=ion; skip-if: !wasmDebuggingIsSupported()
|
||||
// Checking if we destroying work registers by breakpoint/step handler.
|
||||
|
||||
load(libdir + "wasm.js");
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// |jit-test| test-also-wasm-compiler-ion; skip-if: !wasmDebuggingIsSupported()
|
||||
// |jit-test| test-also=--wasm-compiler=ion; skip-if: !wasmDebuggingIsSupported()
|
||||
// Tests debugEnabled state of wasm when allowUnobservedAsmJS == true.
|
||||
|
||||
load(libdir + "asserts.js");
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// |jit-test| test-also-wasm-compiler-ion; skip-if: !wasmDebuggingIsSupported()
|
||||
// |jit-test| test-also=--wasm-compiler=ion; skip-if: !wasmDebuggingIsSupported()
|
||||
// Tests that wasm module scripts has inspectable locals.
|
||||
|
||||
load(libdir + "wasm.js");
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// |jit-test| test-also-wasm-compiler-ion; skip-if: !wasmDebuggingIsSupported()
|
||||
// |jit-test| test-also=--wasm-compiler=ion; skip-if: !wasmDebuggingIsSupported()
|
||||
|
||||
// Test single-stepping where the TLS register can be evicted by a non-trivial
|
||||
// function body.
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// |jit-test| test-also-wasm-compiler-ion; skip-if: !wasmDebuggingIsSupported()
|
||||
// |jit-test| test-also=--wasm-compiler=ion; skip-if: !wasmDebuggingIsSupported()
|
||||
|
||||
// Tests that wasm module scripts have special URLs.
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// |jit-test| test-also-wasm-compiler-ion; skip-if: !wasmDebuggingIsSupported()
|
||||
// |jit-test| test-also=--wasm-compiler=ion; skip-if: !wasmDebuggingIsSupported()
|
||||
// Tests that wasm module scripts handles basic breakpoint operations.
|
||||
|
||||
load(libdir + "wasm.js");
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// |jit-test| test-also-wasm-compiler-ion; skip-if: !wasmDebuggingIsSupported()
|
||||
// |jit-test| test-also=--wasm-compiler=ion; skip-if: !wasmDebuggingIsSupported()
|
||||
// Tests that wasm frame opPop event can access function resumption value.
|
||||
|
||||
load(libdir + "wasm.js");
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// |jit-test| test-also-wasm-compiler-ion; skip-if: !wasmDebuggingIsSupported()
|
||||
// |jit-test| test-also=--wasm-compiler=ion; skip-if: !wasmDebuggingIsSupported()
|
||||
|
||||
// Tests that wasm module scripts have column and line to bytecode offset
|
||||
// information when source text is generated.
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// |jit-test| test-also-wasm-compiler-ion; skip-if: !wasmDebuggingIsSupported()
|
||||
// |jit-test| test-also=--wasm-compiler=ion; skip-if: !wasmDebuggingIsSupported()
|
||||
// Tests that wasm module can accept URL and sourceMapURL from response
|
||||
// when instantiateStreaming is used.
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// |jit-test| test-also-wasm-compiler-ion; skip-if: !wasmDebuggingIsSupported()
|
||||
// |jit-test| test-also=--wasm-compiler=ion; skip-if: !wasmDebuggingIsSupported()
|
||||
|
||||
// Tests that wasm module sourceMappingURL section is parsed.
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// |jit-test| test-also-wasm-compiler-ion; skip-if: !wasmDebuggingIsSupported()
|
||||
// |jit-test| test-also=--wasm-compiler=ion; skip-if: !wasmDebuggingIsSupported()
|
||||
|
||||
// Tests that wasm module scripts raises onEnterFrame and onLeaveFrame events.
|
||||
|
||||
|
|
|
@ -1 +1 @@
|
|||
|jit-test| test-also-wasm-compiler-ion; test-also-wasm-compiler-baseline; test-also-wasm-tiering; include:wasm.js
|
||||
|jit-test| test-also=--wasm-compiler=ion; test-also=--wasm-compiler=baseline; test-also=--test-wasm-await-tier2; include:wasm.js
|
||||
|
|
|
@ -1 +1 @@
|
|||
|jit-test| test-also-wasm-compiler-ion; test-also-wasm-compiler-baseline; test-also-wasm-tiering; include:wasm.js
|
||||
|jit-test| test-also=--wasm-compiler=ion; test-also=--wasm-compiler=baseline; test-also=--test-wasm-await-tier2; include:wasm.js
|
||||
|
|
|
@ -1 +1 @@
|
|||
|jit-test| test-also-wasm-compiler-ion; test-also-wasm-compiler-baseline; test-also-wasm-tiering; include:wasm.js
|
||||
|jit-test| test-also=--wasm-compiler=ion; test-also=--wasm-compiler=baseline; test-also=--test-wasm-await-tier2; include:wasm.js
|
||||
|
|
|
@ -1 +1 @@
|
|||
|jit-test| test-also-wasm-compiler-ion; test-also-wasm-compiler-baseline; test-also-wasm-tiering; include:wasm-testharness.js
|
||||
|jit-test| test-also=--wasm-compiler=ion; test-also=--wasm-compiler=baseline; test-also=--test-wasm-await-tier2; include:wasm-testharness.js
|
||||
|
|
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
|
@ -1,2 +1,2 @@
|
|||
|jit-test| test-also-wasm-compiler-ion; test-also-wasm-compiler-baseline; test-also-wasm-tiering
|
||||
|jit-test| test-also=--wasm-compiler=ion; test-also=--wasm-compiler=baseline; test-also=--test-wasm-await-tier2
|
||||
|
||||
|
|
|
@ -1115,6 +1115,9 @@ VFPRegister VFPRegister::singleOverlay(unsigned int which) const {
|
|||
return VFPRegister(code_, Single);
|
||||
}
|
||||
|
||||
static_assert(FloatRegisters::TotalDouble <= 16,
|
||||
"We assume that every Double register also has an Integer personality");
|
||||
|
||||
VFPRegister VFPRegister::sintOverlay(unsigned int which) const {
|
||||
MOZ_ASSERT(!_isInvalid);
|
||||
if (kind == Double) {
|
||||
|
|
|
@ -2854,14 +2854,12 @@ void MacroAssemblerARMCompat::boolValueToDouble(const ValueOperand& operand,
|
|||
|
||||
void MacroAssemblerARMCompat::int32ValueToDouble(const ValueOperand& operand,
|
||||
FloatRegister dest) {
|
||||
VFPRegister vfpdest = VFPRegister(dest);
|
||||
ScratchFloat32Scope scratch(asMasm());
|
||||
|
||||
// Transfer the integral value to a floating point register.
|
||||
as_vxfer(operand.payloadReg(), InvalidReg, scratch.sintOverlay(),
|
||||
VFPRegister vfpdest = VFPRegister(dest);
|
||||
as_vxfer(operand.payloadReg(), InvalidReg, vfpdest.sintOverlay(),
|
||||
CoreToFloat);
|
||||
// Convert the value to a double.
|
||||
as_vcvt(vfpdest, scratch.sintOverlay());
|
||||
as_vcvt(vfpdest, vfpdest.sintOverlay());
|
||||
}
|
||||
|
||||
void MacroAssemblerARMCompat::boolValueToFloat32(const ValueOperand& operand,
|
||||
|
|
|
@ -52,41 +52,27 @@
|
|||
// want WebAssembly support you can always just lie about the lock-freedom.
|
||||
// After all, you're already feeling lucky.
|
||||
|
||||
#if defined(__ppc__) || defined(__PPC__)
|
||||
# define GNUC_COMPATIBLE
|
||||
#if defined(JS_SIMULATOR_ARM64) || defined(JS_SIMULATOR_ARM)
|
||||
// On some x86 (32-bit) systems this will not work because the compiler does not
|
||||
// open-code 64-bit atomics. If so, try linking with -latomic. If that doesn't
|
||||
// work, you're mostly on your own.
|
||||
# define HAS_64BIT_ATOMICS
|
||||
# define HAS_64BIT_LOCKFREE
|
||||
#endif
|
||||
|
||||
#if defined(__ppc64__) || defined(__PPC64__) || defined(__ppc64le__) || \
|
||||
defined(__PPC64LE__)
|
||||
# define HAS_64BIT_ATOMICS
|
||||
# define HAS_64BIT_LOCKFREE
|
||||
# define GNUC_COMPATIBLE
|
||||
#endif
|
||||
|
||||
#ifdef __sparc__
|
||||
# define GNUC_COMPATIBLE
|
||||
# ifdef __LP64__
|
||||
# define HAS_64BIT_ATOMICS
|
||||
# define HAS_64BIT_LOCKFREE
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifdef __alpha__
|
||||
# define GNUC_COMPATIBLE
|
||||
#endif
|
||||
|
||||
#ifdef __hppa__
|
||||
# define GNUC_COMPATIBLE
|
||||
#endif
|
||||
|
||||
#ifdef __sh__
|
||||
# define GNUC_COMPATIBLE
|
||||
#endif
|
||||
|
||||
#ifdef __s390__
|
||||
# define GNUC_COMPATIBLE
|
||||
#endif
|
||||
|
||||
// The default implementation tactic for gcc/clang is to use the newer __atomic
|
||||
// intrinsics added for use in C++11 <atomic>. Where that isn't available, we
|
||||
// use GCC's older __sync functions instead.
|
||||
|
|
|
@ -127,11 +127,6 @@ class JitTest:
|
|||
self.valgrind = False
|
||||
# True means force Pacific time for the test
|
||||
self.tz_pacific = False
|
||||
# True means run with and without asm.js
|
||||
self.test_also_noasmjs = False
|
||||
# enabled.
|
||||
# True means run with and and without wasm baseline compiler enabled.
|
||||
self.test_also_wasm_baseline = False
|
||||
# Additional files to include, in addition to prologue.js
|
||||
self.other_includes = []
|
||||
# List of other configurations to test with.
|
||||
|
@ -165,8 +160,6 @@ class JitTest:
|
|||
t.allow_overrecursed = self.allow_overrecursed
|
||||
t.valgrind = self.valgrind
|
||||
t.tz_pacific = self.tz_pacific
|
||||
t.test_also_noasmjs = self.test_also_noasmjs
|
||||
t.test_also_wasm_baseline = self.test_also_wasm_baseline
|
||||
t.other_includes = self.other_includes[:]
|
||||
t.test_also = self.test_also
|
||||
t.test_join = self.test_join
|
||||
|
@ -301,18 +294,6 @@ class JitTest:
|
|||
test.valgrind = options.valgrind
|
||||
elif name == 'tz-pacific':
|
||||
test.tz_pacific = True
|
||||
elif name == 'test-also-noasmjs':
|
||||
if options.asmjs_enabled:
|
||||
test.test_also.append(['--no-asmjs'])
|
||||
elif name == 'test-also-wasm-compiler-ion':
|
||||
if options.wasm_enabled:
|
||||
test.test_also.append(['--wasm-compiler=ion'])
|
||||
elif name == 'test-also-wasm-compiler-baseline':
|
||||
if options.wasm_enabled:
|
||||
test.test_also.append(['--wasm-compiler=baseline'])
|
||||
elif name == 'test-also-wasm-tiering':
|
||||
if options.wasm_enabled:
|
||||
test.test_also.append(['--test-wasm-await-tier2'])
|
||||
elif name.startswith('test-also='):
|
||||
test.test_also.append([name[len('test-also='):]])
|
||||
elif name.startswith('test-join='):
|
||||
|
|
|
@ -23,7 +23,7 @@ update:
|
|||
--use-sync \
|
||||
--js ../jit-test/tests/wasm/spec \
|
||||
--html ../../../testing/web-platform/mozilla/tests/wasm
|
||||
echo "|jit-test| test-also-wasm-compiler-ion; test-also-wasm-compiler-baseline; test-also-wasm-tiering; include:wasm-testharness.js" > ../jit-test/tests/wasm/spec/directives.txt
|
||||
echo "|jit-test| test-also=--wasm-compiler=ion; test-also=--wasm-compiler=baseline; test-also=--test-wasm-await-tier2; include:wasm-testharness.js" > ../jit-test/tests/wasm/spec/directives.txt
|
||||
echo "|jit-test| skip-if:true" > ../jit-test/tests/wasm/spec/harness/directives.txt
|
||||
|
||||
run:
|
||||
|
|
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Загрузка…
Ссылка в новой задаче