diff options
author | Thomas Lively <7121787+tlively@users.noreply.github.com> | 2019-07-03 15:56:04 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-07-03 15:56:04 -0700 |
commit | 2a138faec4b21ee2eae89f00d1e00987bab6305a (patch) | |
tree | 9a6482a76a5e796fa27fd95e9a299c7b37bf17a3 /src/passes/Print.cpp | |
parent | 256187c823ab6a04b3b55c3d9d3497ae2004d165 (diff) | |
download | binaryen-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.cpp | 13 |
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); |