942a67ca01
This is a reland of commit 491de34bcc
co-authors: Ji Qiu <qiuji@iscas.ac.cn>
Alvise De Faveri Tron <elvisilde@gmail.com>
Usman Zain <uszain@gmail.com>
Zheng Quan <vitalyankh@gmail.com>
Original change's description:
> [riscv32] Add RISCV32 backend
>
> This very large changeset adds support for RISCV32.
>
> Bug: v8:13025
> Change-Id: Ieacc857131e6620f0fcfd7daa88a0f8d77056aa9
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3736732
> Reviewed-by: Michael Achenbach <machenbach@chromium.org>
> Commit-Queue: Yahan Lu <yahan@iscas.ac.cn>
> Reviewed-by: ji qiu <qiuji@iscas.ac.cn>
> Reviewed-by: Andreas Haas <ahaas@chromium.org>
> Reviewed-by: Hannes Payer <hpayer@chromium.org>
> Reviewed-by: Nico Hartmann <nicohartmann@chromium.org>
> Cr-Commit-Position: refs/heads/main@{#82053}
Bug: v8:13025
Change-Id: I220fae4b8e2679bdc111724e08817b079b373bd5
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3807124
Commit-Queue: Yahan Lu <yahan@iscas.ac.cn>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: ji qiu <qiuji@iscas.ac.cn>
Reviewed-by: Hannes Payer <hpayer@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/main@{#82198}
180 lines
6.8 KiB
Plaintext
180 lines
6.8 KiB
Plaintext
# Copyright 2016 the V8 project authors. All rights reserved.
|
|
# Use of this source code is governed by a BSD-style license that can be
|
|
# found in the LICENSE file.
|
|
|
|
[
|
|
[ALWAYS, {
|
|
'skip-stack-guard-page': [PASS, ['((arch == ppc or arch == ppc64 or arch == s390 or arch == s390x) and simulator_run)', SKIP]],
|
|
# TODO(v8:10994): Failing spec test after update.
|
|
'proposals/js-types/data': [FAIL],
|
|
|
|
# Missing rebase in the proposal repository.
|
|
'proposals/js-types/table': [FAIL],
|
|
'proposals/memory64/linking': [FAIL],
|
|
'proposals/memory64/table': [FAIL],
|
|
'proposals/memory64/unreached-invalid': [FAIL],
|
|
|
|
# TODO(wasm): Roll newest tests into "js-types" repository.
|
|
'proposals/js-types/elem': [FAIL],
|
|
'proposals/js-types/globals': [FAIL],
|
|
'proposals/js-types/imports': [FAIL],
|
|
'proposals/js-types/linking': [FAIL],
|
|
|
|
# TODO(wasm): Roll newest tests into "tail-call" repository.
|
|
'proposals/tail-call/exports': [FAIL],
|
|
'proposals/tail-call/func': [FAIL],
|
|
'proposals/tail-call/globals': [FAIL],
|
|
'proposals/tail-call/linking': [FAIL],
|
|
|
|
# TODO(v8:11401): Fix memory64 spec tests / the v8 implementation (whatever
|
|
# is broken).
|
|
'proposals/memory64/data': [FAIL],
|
|
'proposals/memory64/elem': [FAIL],
|
|
'proposals/memory64/imports': [FAIL],
|
|
|
|
# Tests that need to run sequentially (e.g. due to memory consumption).
|
|
'simd_f32x4*': [PASS, HEAVY],
|
|
'simd_f64x2*': [PASS, HEAVY],
|
|
'f32*': [PASS, HEAVY],
|
|
'f64*': [PASS, HEAVY],
|
|
}], # ALWAYS
|
|
|
|
['arch == arm and not simulator_run', {
|
|
# See https://crbug.com/v8/10938 denormals not handled correctly on ARM.
|
|
'simd_f32x4': [PASS, FAIL],
|
|
'simd_f32x4_arith': [PASS, FAIL],
|
|
'simd_f32x4_cmp': [PASS, FAIL],
|
|
# This test only has 1 problematic use of f32x4.min and f32x4.div, consider
|
|
# removing it from upstream, then we can run this test.
|
|
'simd_splat' : [PASS, FAIL],
|
|
'simd_f32x4_pmin_pmax' : [PASS, FAIL],
|
|
}], # arch == arm and not simulator_run
|
|
|
|
['arch == mipsel or arch == mips64el or arch == mips or arch == mips64', {
|
|
# These tests fail because mips does not support the correct NaN bit patterns.
|
|
'float_misc': [SKIP],
|
|
'float_exprs': [SKIP],
|
|
'f32': [SKIP],
|
|
'f64': [SKIP],
|
|
'f32_bitwise': [SKIP],
|
|
'f64_bitwise': [SKIP],
|
|
'proposals/reference-types/conversions': [SKIP],
|
|
'proposals/bulk-memory-operations/conversions': [SKIP],
|
|
'proposals/js-types/f32': [SKIP],
|
|
'proposals/js-types/f64': [SKIP],
|
|
'proposals/js-types/f32_bitwise': [SKIP],
|
|
'proposals/js-types/f64_bitwise': [SKIP],
|
|
'proposals/js-types/float_exprs': [SKIP],
|
|
'proposals/js-types/float_misc': [SKIP],
|
|
'proposals/js-types/conversions': [SKIP],
|
|
'proposals/bulk-memory-operations/f32': [SKIP],
|
|
'proposals/bulk-memory-operations/f64': [SKIP],
|
|
'proposals/reference-types/f32': [SKIP],
|
|
'proposals/reference-types/f64': [SKIP],
|
|
'proposals/bulk-memory-operations/float_misc': [SKIP],
|
|
'proposals/reference-types/float_misc': [SKIP],
|
|
'proposals/tail-call/f32': [SKIP],
|
|
'proposals/tail-call/f32_bitwise': [SKIP],
|
|
'proposals/tail-call/f64': [SKIP],
|
|
'proposals/tail-call/f64_bitwise': [SKIP],
|
|
'proposals/tail-call/float_exprs': [SKIP],
|
|
'proposals/tail-call/float_misc': [SKIP],
|
|
'proposals/tail-call/conversions': [SKIP],
|
|
}], # 'arch == mipsel or arch == mips64el or arch == mips or arch == mips64'
|
|
|
|
['(arch == mipsel or arch == mips64el or arch == mips or arch == mips64) and not simulator_run', {
|
|
# This test fail because mips does not support the correct NaN bit patterns.
|
|
# But it doesn't fail in simulator.
|
|
'conversions': [SKIP],
|
|
}], # '(arch == mipsel or arch == mips64el or arch == mips or arch == mips64) and not simulator_run'
|
|
|
|
['(arch == mipsel or arch == mips64el or arch == loong64) and simulator_run', {
|
|
# These tests need larger stack size on simulator.
|
|
'skip-stack-guard-page': '--sim-stack-size=8192',
|
|
'proposals/tail-call/skip-stack-guard-page': '--sim-stack-size=8192',
|
|
}], # '(arch == mipsel or arch == mips64el) and simulator_run'
|
|
|
|
['arch == riscv64', {
|
|
# These tests need larger stack size on simulator.
|
|
'skip-stack-guard-page': '--sim-stack-size=8192',
|
|
'proposals/tail-call/skip-stack-guard-page': '--sim-stack-size=8192',
|
|
|
|
# SIMD is not fully implemented yet.
|
|
'simd*': [SKIP],
|
|
}], # 'arch == riscv64'
|
|
|
|
|
|
|
|
['arch == riscv32', {
|
|
# These tests need larger stack size on simulator.
|
|
'skip-stack-guard-page': '--sim-stack-size=8192',
|
|
'proposals/tail-call/skip-stack-guard-page': '--sim-stack-size=8192',
|
|
|
|
# SIMD is not fully implemented yet.
|
|
'simd*': [SKIP],
|
|
|
|
'func': ['variant == stress', SKIP],
|
|
'i64': ['variant == stress', SKIP],
|
|
'proposals/js-types/i64': ['variant == stress', SKIP],
|
|
'proposals/memory64/i64': ['variant == stress', SKIP],
|
|
}], # 'arch == riscv32'
|
|
|
|
['arch == ppc or arch == ppc64', {
|
|
# These tests fail because ppc float min and max doesn't convert sNaN to qNaN.
|
|
'f32': [SKIP],
|
|
'f64': [SKIP],
|
|
'proposals/js-types/f32': [SKIP],
|
|
'proposals/js-types/f64': [SKIP],
|
|
'proposals/bulk-memory-operations/f32': [SKIP],
|
|
'proposals/bulk-memory-operations/f64': [SKIP],
|
|
'proposals/reference-types/f32': [SKIP],
|
|
'proposals/reference-types/f64': [SKIP],
|
|
'proposals/tail-call/f32': [SKIP],
|
|
'proposals/tail-call/f64': [SKIP],
|
|
# This test fails because ppc float to double doesn't convert sNaN to qNaN.
|
|
'conversions': [SKIP],
|
|
'proposals/js-types/conversions': [SKIP],
|
|
'proposals/bulk-memory-operations/conversions': [SKIP],
|
|
'proposals/reference-types/conversions': [SKIP],
|
|
'proposals/tail-call/conversions': [SKIP],
|
|
}], # 'arch == ppc or arch == ppc64'
|
|
|
|
['arch == s390 or arch == s390x', {
|
|
# These tests fail because s390 float min and max doesn't convert sNaN to qNaN.
|
|
'f32': [SKIP],
|
|
'f64': [SKIP],
|
|
'proposals/js-types/f32': [SKIP],
|
|
'proposals/js-types/f64': [SKIP],
|
|
'proposals/bulk-memory-operations/f32': [SKIP],
|
|
'proposals/bulk-memory-operations/f64': [SKIP],
|
|
'proposals/reference-types/f32': [SKIP],
|
|
'proposals/reference-types/f64': [SKIP],
|
|
'proposals/tail-call/f32': [SKIP],
|
|
'proposals/tail-call/f64': [SKIP],
|
|
}], # 'arch == s390 or arch == s390x'
|
|
|
|
##############################################################################
|
|
# TODO(v8:7777): Change this once wasm is supported in jitless mode.
|
|
['not has_webassembly or variant == jitless', {
|
|
'*': [SKIP],
|
|
}], # not has_webassembly or variant == jitless
|
|
|
|
################################################################################
|
|
['variant == stress_snapshot', {
|
|
'*': [SKIP], # only relevant for mjsunit tests.
|
|
}],
|
|
|
|
##############################################################################
|
|
['no_simd_hardware == True', {
|
|
'simd*': [SKIP],
|
|
}], # no_simd_hardware == True
|
|
|
|
##############################################################################
|
|
# Skip tests that require a large amount of virtual address space (inside the
|
|
# sandbox if that is enabled) if tsan is enabled.
|
|
['tsan == True', {
|
|
'memory_copy': [SKIP],
|
|
}],
|
|
|
|
]
|