Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support delegate instruction and update other exception instructions #223

Merged
merged 4 commits into from
Feb 17, 2021

Conversation

takikawa
Copy link
Contributor

This PR adds support for the delegate instruction that's part of the exception handling proposal. It was previously left out because it didn't have an opcode assignment, but the latest spec explainer (WebAssembly/exception-handling#137 (comment)) includes it.

It also updates/fixes support for other instructions to match recent spec updates. For example, catch_all is no longer sharing an opcode with else.

With these patches, exception support should also match the behavior in wabt's tests (when including these pending PRs: WebAssembly/wabt#1608 and WebAssembly/wabt#1605). I can submit a PR later to enable exception handling tests that are currently disabled once wabt PRs are merged and the submodule can be updated.

The spec now specifies that `catch_all` has a separate opcode
from `else`.
The end of an unwind should check that the block was
empty, but it needs to push the try block type as the
result.
@alexcrichton alexcrichton merged commit fb6b54e into bytecodealliance:main Feb 17, 2021
@alexcrichton
Copy link
Member

Thanks!

And yeah a submodule update would be great! That can be tricky sometimes though so let me know if there's any trouble

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants