diff options
Diffstat (limited to 'src/passes/Print.cpp')
-rw-r--r-- | src/passes/Print.cpp | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/src/passes/Print.cpp b/src/passes/Print.cpp index a8e5b0f9c..42dccb4bf 100644 --- a/src/passes/Print.cpp +++ b/src/passes/Print.cpp @@ -499,6 +499,43 @@ struct PrintExpressionContents o << " align=" << curr->align; } } + void visitSIMDLoadStoreLane(SIMDLoadStoreLane* curr) { + prepareColor(o); + switch (curr->op) { + case LoadLaneVec8x16: + o << "v128.load8_lane"; + break; + case LoadLaneVec16x8: + o << "v128.load16_lane"; + break; + case LoadLaneVec32x4: + o << "v128.load32_lane"; + break; + case LoadLaneVec64x2: + o << "v128.load64_lane"; + break; + case StoreLaneVec8x16: + o << "v128.store8_lane"; + break; + case StoreLaneVec16x8: + o << "v128.store16_lane"; + break; + case StoreLaneVec32x4: + o << "v128.store32_lane"; + break; + case StoreLaneVec64x2: + o << "v128.store64_lane"; + break; + } + restoreNormalColor(o); + if (curr->offset) { + o << " offset=" << curr->offset; + } + if (curr->align != curr->getMemBytes()) { + o << " align=" << curr->align; + } + o << " " << int(curr->index); + } void visitMemoryInit(MemoryInit* curr) { prepareColor(o); o << "memory.init " << curr->segment; @@ -1908,6 +1945,14 @@ struct PrintSExpression : public OverriddenVisitor<PrintSExpression> { printFullLine(curr->ptr); decIndent(); } + void visitSIMDLoadStoreLane(SIMDLoadStoreLane* curr) { + o << '('; + PrintExpressionContents(currFunction, o).visit(curr); + incIndent(); + printFullLine(curr->ptr); + printFullLine(curr->vec); + decIndent(); + } void visitMemoryInit(MemoryInit* curr) { o << '('; PrintExpressionContents(currFunction, o).visit(curr); |