diff options
author | Asumu Takikawa <asumu@igalia.com> | 2021-02-18 07:09:32 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-02-18 07:09:32 -0800 |
commit | ffb22e3c900e8246d806d2e9a765dc14251b33e8 (patch) | |
tree | 45c7d2caef95ac03b237e8b3c2f29fe1db9686b6 /src/binary-writer.cc | |
parent | 036a632a24679062e7fc891e7743195139bfa0a9 (diff) | |
download | wabt-ffb22e3c900e8246d806d2e9a765dc14251b33e8.tar.gz wabt-ffb22e3c900e8246d806d2e9a765dc14251b33e8.tar.bz2 wabt-ffb22e3c900e8246d806d2e9a765dc14251b33e8.zip |
Update rethrow depth handling and catch_all opcode (#1608)
Give `catch_all` its own opcode:
Previously `catch_all` shared an opcode with `else`, but
the spec now allocates it the 0x19 opcode.
Adjust rethrow depth semantics:
Previously this had interpreted the rethrow depth argument
as counting only catch blocks, but the spec has clarified that
it should count all blocks (in a similar fashion as `br` and
related instructions).
Diffstat (limited to 'src/binary-writer.cc')
-rw-r--r-- | src/binary-writer.cc | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/binary-writer.cc b/src/binary-writer.cc index 6ef3e71d..c744aca4 100644 --- a/src/binary-writer.cc +++ b/src/binary-writer.cc @@ -976,7 +976,7 @@ void BinaryWriter::WriteExpr(const Func* func, const Expr* expr) { case TryKind::Catch: for (const Catch& catch_ : try_expr->catches) { if (catch_.IsCatchAll()) { - WriteOpcode(stream_, Opcode::Else); + WriteOpcode(stream_, Opcode::CatchAll); } else { WriteOpcode(stream_, Opcode::Catch); WriteU32Leb128(stream_, GetEventVarDepth(&catch_.var), |