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.cpp45
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);