summaryrefslogtreecommitdiff
path: root/src/passes/Print.cpp
diff options
context:
space:
mode:
authorDaniel Wirtz <dcode@dcode.io>2020-09-21 09:45:58 +0200
committerGitHub <noreply@github.com>2020-09-21 09:45:58 +0200
commit51350a8d2e7a361cf658951798351fc242420328 (patch)
tree8bc71e9126b719c4d1785d0f5bbb6248a601176f /src/passes/Print.cpp
parente35cdb97adf6eb2ade2be7734d1c6c397d440dc1 (diff)
downloadbinaryen-51350a8d2e7a361cf658951798351fc242420328.tar.gz
binaryen-51350a8d2e7a361cf658951798351fc242420328.tar.bz2
binaryen-51350a8d2e7a361cf658951798351fc242420328.zip
GC: Add ref.eq instruction (#3145)
With `eqref` now integrated, the `ref.eq` instruction can be implemented. The only valid LHS and RHS value is `(ref.null eq)` for now, but implementation and fuzzer integration is otherwise complete.
Diffstat (limited to 'src/passes/Print.cpp')
-rw-r--r--src/passes/Print.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/passes/Print.cpp b/src/passes/Print.cpp
index 6955a7a5e..27c3e327c 100644
--- a/src/passes/Print.cpp
+++ b/src/passes/Print.cpp
@@ -1441,6 +1441,7 @@ struct PrintExpressionContents
printMedium(o, "ref.func ");
printName(curr->func, o);
}
+ void visitRefEq(RefEq* curr) { printMedium(o, "ref.eq"); }
void visitTry(Try* curr) {
printMedium(o, "try");
if (curr->type.isConcrete()) {
@@ -1968,6 +1969,14 @@ struct PrintSExpression : public OverriddenVisitor<PrintSExpression> {
PrintExpressionContents(currFunction, o).visit(curr);
o << ')';
}
+ void visitRefEq(RefEq* curr) {
+ o << '(';
+ PrintExpressionContents(currFunction, o).visit(curr);
+ incIndent();
+ printFullLine(curr->left);
+ printFullLine(curr->right);
+ decIndent();
+ }
// try-catch-end is written in the folded wat format as
// (try
// (do