Commit 1db61fb3 authored by Thibaud Michaud's avatar Thibaud Michaud Committed by Commit Bot

[wasm][eh] Stage exception handling

This was staged through a back-merge in v8.9. Also stage it for the
upcoming v9.0 release.

R=ahaas@chromium.org

Bug: v8:8091
Change-Id: Ie9e6d25bbc5d428e5c9128345209f95f2078b733
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2715524
Commit-Queue: Thibaud Michaud <thibaudm@chromium.org>
Reviewed-by: 's avatarAndreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73013}
parent 6b794a42
......@@ -375,6 +375,12 @@ void CheckBailoutAllowed(LiftoffBailoutReason reason, const char* detail,
return;
}
// TODO(v8:8091): Implement exception handling in Liftoff.
if (reason == kExceptionHandling) {
DCHECK(env->enabled_features.has_eh());
return;
}
// Otherwise, bailout is not allowed.
FATAL("Liftoff bailout should not happen. Cause: %s\n", detail);
}
......
......@@ -10,11 +10,6 @@
// Experimental features (disabled by default).
#define FOREACH_WASM_EXPERIMENTAL_FEATURE_FLAG(V) /* (force 80 columns) */ \
/* Exception handling proposal. */ \
/* https://github.com/WebAssembly/exception-handling */ \
/* V8 side owner: thibaudm */ \
V(eh, "exception handling opcodes", false) \
\
/* No official proposal (yet?). */ \
/* V8 side owner: clemensb */ \
V(compilation_hints, "compilation hints section", false) \
......@@ -44,6 +39,12 @@
// be shipped with enough lead time to the next branch to allow for
// stabilization.
#define FOREACH_WASM_STAGING_FEATURE_FLAG(V) /* (force 80 columns) */ \
/* Exception handling proposal. */ \
/* https://github.com/WebAssembly/exception-handling */ \
/* V8 side owner: thibaudm */ \
/* Staged in v8.9 */ \
V(eh, "exception handling opcodes", false) \
\
/* Reference Types, a.k.a. reftypes proposal. */ \
/* https://github.com/WebAssembly/reference-types */ \
/* V8 side owner: ahaas */ \
......
......@@ -44,6 +44,11 @@ proposal_flags = [{
'flags': ['--experimental-wasm-memory64',
'--wasm-staging']
},
{
'name': 'exception-handling',
'flags': ['--experimental-wasm-eh',
'--wasm-staging']
},
]
......
ef30002bb06bd09b91b62d3fa152d1af94b28eaf
\ No newline at end of file
9fa5a66172d126bf24b907411fc84e4826e34c65
\ No newline at end of file
......@@ -25,8 +25,15 @@
'proposals/reference-types/limits': [SKIP],
'proposals/bulk-memory-operations/limits': [SKIP],
'proposals/js-types/limits': [SKIP],
'proposals/exception-handling/limits': [SKIP],
# TODO(wasm): Update memory limit.
'limits': [FAIL],
# TODO(v8:8091): Fix exception handling.
'proposals/exception-handling/assertions': [FAIL],
'proposals/exception-handling/global/value-get-set.any': [FAIL],
'proposals/exception-handling/global/constructor': [FAIL],
'proposals/exception-handling/global/value-get-set': [FAIL],
}], # ALWAYS
['arch == s390 or arch == s390x or system == aix', {
......
......@@ -37,6 +37,11 @@ proposal_flags = [{
'flags': ['--experimental-wasm-memory64',
'--wasm-staging']
},
{
'name': 'exception-handling',
'flags': ['--experimental-wasm-eh',
'--wasm-staging']
},
]
class TestLoader(testsuite.JSTestLoader):
......
4db01ba8549a087ae9adaa8540cec2689c7dad64
\ No newline at end of file
ec43663d26987c344cde4cbc21e5f8f12ad41013
\ No newline at end of file
......@@ -9,6 +9,13 @@
'proposals/simd/imports': [FAIL],
'proposals/simd/data': [FAIL],
'proposals/js-types/data': [FAIL],
'global': [FAIL],
'proposals/simd/simd_i16x8_q15mulr_sat_s': [SKIP],
'proposals/simd/simd_i32x4_trunc_sat_f64x2': [SKIP],
'proposals/simd/simd_store64_lane': [SKIP],
# TODO(v8:8091): Fix exception handling.
'proposals/exception-handling/unreached-invalid': [FAIL],
# 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
......
......@@ -71,7 +71,7 @@ log_and_run cp -r ${TMP_DIR}/spec/test/js-api/* ${JS_API_TEST_DIR}/tests
# Generate the proposal tests.
###############################################################################
repos='bulk-memory-operations reference-types js-types tail-call simd memory64'
repos='bulk-memory-operations reference-types js-types tail-call simd memory64 exception-handling'
for repo in ${repos}; do
echo "Process ${repo}"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment