summaryrefslogtreecommitdiff
path: root/src/passes/Print.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/passes/Print.cpp')
-rw-r--r--src/passes/Print.cpp22
1 files changed, 14 insertions, 8 deletions
diff --git a/src/passes/Print.cpp b/src/passes/Print.cpp
index 694b1b118..4007b6daa 100644
--- a/src/passes/Print.cpp
+++ b/src/passes/Print.cpp
@@ -1692,12 +1692,12 @@ struct PrintExpressionContents
}
}
void visitRefTest(RefTest* curr) {
- printMedium(o, "ref.test");
- WASM_UNREACHABLE("TODO (gc): ref.test");
+ printMedium(o, "ref.test ");
+ printHeapTypeName(o, curr->rtt->type.getHeapType());
}
void visitRefCast(RefCast* curr) {
- printMedium(o, "ref.cast");
- WASM_UNREACHABLE("TODO (gc): ref.cast");
+ printMedium(o, "ref.cast ");
+ printHeapTypeName(o, curr->rtt->type.getHeapType());
}
void visitBrOnCast(BrOnCast* curr) {
printMedium(o, "br_on_cast");
@@ -1717,7 +1717,7 @@ struct PrintExpressionContents
o << "default_";
}
o << "with_rtt ";
- printHeapTypeName(o, curr->rtt->type.getRtt().heapType);
+ printHeapTypeName(o, curr->rtt->type.getHeapType());
}
void visitStructGet(StructGet* curr) {
const auto& field =
@@ -1747,7 +1747,7 @@ struct PrintExpressionContents
o << "default_";
}
o << "with_rtt ";
- printHeapTypeName(o, curr->rtt->type.getRtt().heapType);
+ printHeapTypeName(o, curr->rtt->type.getHeapType());
}
void visitArrayGet(ArrayGet* curr) {
const auto& element = curr->ref->type.getHeapType().getArray().element;
@@ -2394,12 +2394,18 @@ struct PrintSExpression : public OverriddenVisitor<PrintSExpression> {
void visitRefTest(RefTest* curr) {
o << '(';
PrintExpressionContents(currFunction, o).visit(curr);
- WASM_UNREACHABLE("TODO (gc): ref.test");
+ incIndent();
+ printFullLine(curr->ref);
+ printFullLine(curr->rtt);
+ decIndent();
}
void visitRefCast(RefCast* curr) {
o << '(';
PrintExpressionContents(currFunction, o).visit(curr);
- WASM_UNREACHABLE("TODO (gc): ref.cast");
+ incIndent();
+ printFullLine(curr->ref);
+ printFullLine(curr->rtt);
+ decIndent();
}
void visitBrOnCast(BrOnCast* curr) {
o << '(';