diff options
Diffstat (limited to 'src/passes/Print.cpp')
-rw-r--r-- | src/passes/Print.cpp | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/src/passes/Print.cpp b/src/passes/Print.cpp index 3de8b5c01..761c9e3d4 100644 --- a/src/passes/Print.cpp +++ b/src/passes/Print.cpp @@ -293,6 +293,22 @@ struct PrintExpressionContents : public Visitor<PrintExpressionContents> { case ShrUVecI64x2: o << "i64x2.shr_u"; break; } } + void visitMemoryInit(MemoryInit* curr) { + prepareColor(o); + o << "memory.init " << curr->segment; + } + void visitDataDrop(DataDrop* curr) { + prepareColor(o); + o << "data.drop " << curr->segment; + } + void visitMemoryCopy(MemoryCopy* curr) { + prepareColor(o); + o << "memory.copy"; + } + void visitMemoryFill(MemoryFill* curr) { + prepareColor(o); + o << "memory.fill"; + } void visitConst(Const* curr) { o << curr->value; } @@ -936,6 +952,38 @@ struct PrintSExpression : public Visitor<PrintSExpression> { printFullLine(curr->shift); decIndent(); } + void visitMemoryInit(MemoryInit* curr) { + o << '('; + PrintExpressionContents(currFunction, o).visit(curr); + incIndent(); + printFullLine(curr->dest); + printFullLine(curr->offset); + printFullLine(curr->size); + decIndent(); + } + void visitDataDrop(DataDrop* curr) { + o << '('; + PrintExpressionContents(currFunction, o).visit(curr); + o << ')'; + } + void visitMemoryCopy(MemoryCopy* curr) { + o << '('; + PrintExpressionContents(currFunction, o).visit(curr); + incIndent(); + printFullLine(curr->dest); + printFullLine(curr->source); + printFullLine(curr->size); + decIndent(); + } + void visitMemoryFill(MemoryFill* curr) { + o << '('; + PrintExpressionContents(currFunction, o).visit(curr); + incIndent(); + printFullLine(curr->dest); + printFullLine(curr->value); + printFullLine(curr->size); + decIndent(); + } void visitConst(Const* curr) { o << '('; PrintExpressionContents(currFunction, o).visit(curr); |