[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: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#73013}
This commit is contained in:
parent
6b794a420a
commit
1db61fb30b
@ -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']
|
||||
},
|
||||
]
|
||||
|
||||
|
||||
|
@ -1 +1 @@
|
||||
ef30002bb06bd09b91b62d3fa152d1af94b28eaf
|
||||
9fa5a66172d126bf24b907411fc84e4826e34c65
|
@ -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):
|
||||
|
@ -1 +1 @@
|
||||
4db01ba8549a087ae9adaa8540cec2689c7dad64
|
||||
ec43663d26987c344cde4cbc21e5f8f12ad41013
|
@ -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}"
|
||||
|
Loading…
Reference in New Issue
Block a user