summaryrefslogtreecommitdiff
path: root/src/interp/interp.cc
diff options
context:
space:
mode:
authorAsumu Takikawa <asumu@igalia.com>2021-02-18 07:09:32 -0800
committerGitHub <noreply@github.com>2021-02-18 07:09:32 -0800
commitffb22e3c900e8246d806d2e9a765dc14251b33e8 (patch)
tree45c7d2caef95ac03b237e8b3c2f29fe1db9686b6 /src/interp/interp.cc
parent036a632a24679062e7fc891e7743195139bfa0a9 (diff)
downloadwabt-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/interp/interp.cc')
-rw-r--r--src/interp/interp.cc1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/interp/interp.cc b/src/interp/interp.cc
index ce1897bb..5988be1e 100644
--- a/src/interp/interp.cc
+++ b/src/interp/interp.cc
@@ -1736,6 +1736,7 @@ RunResult Thread::StepInternal(Trap::Ptr* out_trap) {
case O::Try:
case O::Catch:
+ case O::CatchAll:
case O::Unwind:
case O::Delegate:
case O::Throw: