2064c1f920
This is the ia32 implementation of the CL https://codereview.chromium.org/2763593002 Original message: [wasm][arm] Add an additional stack check for functions with big frames. Stack overflow checks are typically implemented as part of the TurboFan graph of a function. This means that the stack check code is executed after frame construction. When a frame is too big, though, there may not be enough space on the stack anymore to throw the stack overflow exception after frame construction. With this CL we do an additional stack check before frame construction for functions with big frames. As discussed offline with mstarzinger, I do this change currently only for WebAssembly. This CL contains only the changes for arm. I will do the other platforms in separate CLs. Bug:v8:6318 R=neis@chromium.org, titzer@chromium.org Change-Id: Ibeedc5c4c4571cffd3a9c58016ddc44b64e2bf02 Reviewed-on: https://chromium-review.googlesource.com/568305 Commit-Queue: Andreas Haas <ahaas@chromium.org> Reviewed-by: Georg Neis <neis@chromium.org> Reviewed-by: Ben Titzer <titzer@chromium.org> Cr-Commit-Position: refs/heads/master@{#46711}
48 lines
1.9 KiB
Plaintext
48 lines
1.9 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, {
|
|
#TODO(ahaas): Add additional stack checks on mips.
|
|
# Issue 6318: Stack checks for functions with huge stack frames fail on x64 and ia32
|
|
'tests/skip-stack-guard-page': [PASS, ['arch == mipsel or arch == mips64el or ((arch == ppc or arch == ppc64 or arch == s390 or arch == s390x) and simulator_run)', SKIP]],
|
|
}], # ALWAYS
|
|
|
|
['arch == mipsel or arch == mips64el or arch == mips or arch == mips64', {
|
|
# These tests fail because mips does not support the correct NaN bit patterns.
|
|
'tests/float_misc': [SKIP],
|
|
'tests/float_exprs': [SKIP],
|
|
'tests/f32': [SKIP],
|
|
'tests/f64': [SKIP],
|
|
'tests/f32_bitwise': [SKIP],
|
|
'tests/f64_bitwise': [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.
|
|
'tests/conversions': [SKIP],
|
|
}], # '(arch == mipsel or arch == mips64el or arch == mips or arch == mips64) and not simulator_run'
|
|
|
|
['arch == arm and not simulator_run', {
|
|
# Too slow on chromebooks.
|
|
'tests/br_table': [SKIP],
|
|
}], # 'arch == arm and not simulator_run'
|
|
|
|
['arch == ppc or arch == ppc64', {
|
|
# These tests fail because ppc float min and max doesn't convert sNaN to qNaN.
|
|
'tests/f32': [SKIP],
|
|
'tests/f64': [SKIP],
|
|
# This test fails because ppc float to double doesn't convert sNaN to qNaN.
|
|
'tests/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.
|
|
'tests/f32': [SKIP],
|
|
'tests/f64': [SKIP],
|
|
}], # 'arch == s390 or arch == s390x'
|
|
|
|
]
|