summaryrefslogtreecommitdiff
path: root/src/passes/Print.cpp
diff options
context:
space:
mode:
authorAlon Zakai <azakai@google.com>2021-06-02 13:24:22 -0700
committerGitHub <noreply@github.com>2021-06-02 13:24:22 -0700
commitd8f2ddd4d680b059c2daded7f57051bf21d77297 (patch)
tree11a1f5d1e2621152bdfcef385201b950c379f0c5 /src/passes/Print.cpp
parente40396003798678803f4091ac4132aefa3905d7a (diff)
downloadbinaryen-d8f2ddd4d680b059c2daded7f57051bf21d77297.tar.gz
binaryen-d8f2ddd4d680b059c2daded7f57051bf21d77297.tar.bz2
binaryen-d8f2ddd4d680b059c2daded7f57051bf21d77297.zip
[Wasm GC] Add negated BrOn* operations (#3913)
They are basically the flip versions. The only interesting part in the impl is that their returned typed and sent types are different. Spec: https://docs.google.com/document/d/1DklC3qVuOdLHSXB5UXghM_syCh-4cMinQ50ICiXnK3Q/edit
Diffstat (limited to 'src/passes/Print.cpp')
-rw-r--r--src/passes/Print.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/passes/Print.cpp b/src/passes/Print.cpp
index df408fdf3..47db029ab 100644
--- a/src/passes/Print.cpp
+++ b/src/passes/Print.cpp
@@ -1888,18 +1888,33 @@ struct PrintExpressionContents
case BrOnNull:
printMedium(o, "br_on_null ");
break;
+ case BrOnNonNull:
+ printMedium(o, "br_on_non_null ");
+ break;
case BrOnCast:
printMedium(o, "br_on_cast ");
break;
+ case BrOnCastFail:
+ printMedium(o, "br_on_cast_fail ");
+ break;
case BrOnFunc:
printMedium(o, "br_on_func ");
break;
+ case BrOnNonFunc:
+ printMedium(o, "br_on_non_func ");
+ break;
case BrOnData:
printMedium(o, "br_on_data ");
break;
+ case BrOnNonData:
+ printMedium(o, "br_on_non_data ");
+ break;
case BrOnI31:
printMedium(o, "br_on_i31 ");
break;
+ case BrOnNonI31:
+ printMedium(o, "br_on_non_i31 ");
+ break;
default:
WASM_UNREACHABLE("invalid ref.is_*");
}