4df3db7b2e
On Windows, the FP stack registers are used with less precision. This causes rounding errors in the uint64 to float32 conversion. This CL replaces the implementation based on FP stack registers with an implementation based on bit operations. This implementation is 2x slower than the original implementation. An alternative would be to change the precision of the FP stack registers just for the uint64 to float32 conversion. However, in a micro-benchmark this is 5-6x slower than the original implementation. It is also not clear if changing the precision could cause side effects. R=clemensh@chromium.org Change-Id: Iaab6b6f258ff01e0c6e93f3632daf516fae3e74b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1708486 Commit-Queue: Andreas Haas <ahaas@chromium.org> Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#62986}
67 lines
2.6 KiB
Plaintext
67 lines
2.6 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.
|
|
'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]],
|
|
# TODO(v8:9144): The MVP behavior when bounds-checking segments changed in
|
|
# the bulk-memory proposal. Since we've enabled bulk-memory by default, we
|
|
# need to update to use its testsuite.
|
|
'tests/linking': [FAIL],
|
|
'tests/elem': [FAIL],
|
|
'tests/data': [FAIL],
|
|
}], # 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],
|
|
'tests/proposals/reference-types/conversions': [SKIP],
|
|
'tests/proposals/bulk-memory-operations/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'
|
|
|
|
##############################################################################
|
|
['lite_mode or variant == jitless', {
|
|
# TODO(v8:7777): Re-enable once wasm is supported in jitless mode.
|
|
'*': [SKIP],
|
|
}], # lite_mode or variant == jitless
|
|
|
|
##############################################################################
|
|
['variant == jitless and not embedded_builtins', {
|
|
'*': [SKIP],
|
|
}], # variant == jitless and not embedded_builtins
|
|
|
|
|
|
]
|