summaryrefslogtreecommitdiff
path: root/src/ir/ExpressionManipulator.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/ir/ExpressionManipulator.cpp')
-rw-r--r--src/ir/ExpressionManipulator.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/ir/ExpressionManipulator.cpp b/src/ir/ExpressionManipulator.cpp
index acea09bad..590d0c1ba 100644
--- a/src/ir/ExpressionManipulator.cpp
+++ b/src/ir/ExpressionManipulator.cpp
@@ -261,6 +261,16 @@ flexibleCopy(Expression* original, Module& wasm, CustomCopier custom) {
return builder.makePush(copy(curr->value));
}
Expression* visitPop(Pop* curr) { return builder.makePop(curr->type); }
+ Expression* visitTupleMake(TupleMake* curr) {
+ std::vector<Expression*> operands;
+ for (auto* op : curr->operands) {
+ operands.push_back(copy(op));
+ }
+ return builder.makeTupleMake(std::move(operands));
+ }
+ Expression* visitTupleExtract(TupleExtract* curr) {
+ return builder.makeTupleExtract(copy(curr->tuple), curr->index);
+ }
};
Copier copier(wasm, custom);