summaryrefslogtreecommitdiff
path: root/src/passes/Print.cpp
diff options
context:
space:
mode:
authorThomas Lively <7121787+tlively@users.noreply.github.com>2019-07-03 15:56:04 -0700
committerGitHub <noreply@github.com>2019-07-03 15:56:04 -0700
commit2a138faec4b21ee2eae89f00d1e00987bab6305a (patch)
tree9a6482a76a5e796fa27fd95e9a299c7b37bf17a3 /src/passes/Print.cpp
parent256187c823ab6a04b3b55c3d9d3497ae2004d165 (diff)
downloadbinaryen-2a138faec4b21ee2eae89f00d1e00987bab6305a.tar.gz
binaryen-2a138faec4b21ee2eae89f00d1e00987bab6305a.tar.bz2
binaryen-2a138faec4b21ee2eae89f00d1e00987bab6305a.zip
Initial tail call implementation (#2197)
Including parsing, printing, assembling, disassembling. TODO: - interpreting - effects - finalization and typing - fuzzing - JS/C API
Diffstat (limited to 'src/passes/Print.cpp')
-rw-r--r--src/passes/Print.cpp13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/passes/Print.cpp b/src/passes/Print.cpp
index e1ed788c4..bae5b25d4 100644
--- a/src/passes/Print.cpp
+++ b/src/passes/Print.cpp
@@ -106,11 +106,20 @@ struct PrintExpressionContents
o << ' ' << curr->default_;
}
void visitCall(Call* curr) {
- printMedium(o, "call ");
+ if (curr->isReturn) {
+ printMedium(o, "return_call ");
+ } else {
+ printMedium(o, "call ");
+ }
printName(curr->target, o);
}
void visitCallIndirect(CallIndirect* curr) {
- printMedium(o, "call_indirect (type ") << curr->fullType << ')';
+ if (curr->isReturn) {
+ printMedium(o, "return_call_indirect (type ");
+ } else {
+ printMedium(o, "call_indirect (type ");
+ }
+ o << curr->fullType << ')';
}
void visitLocalGet(LocalGet* curr) {
printMedium(o, "local.get ") << printableLocal(curr->index, currFunction);