diff options
author | Alon Zakai <alonzakai@gmail.com> | 2016-02-01 14:43:19 -0800 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2016-02-01 15:01:19 -0800 |
commit | 5a2217d4d50c5302562ba29fb38a60edbe84d262 (patch) | |
tree | 25ee847d1d3d18361a3cbd89515723f448ac5c8b /src/wasm-binary.h | |
parent | f18096a0d7d355499a218e1ff4196b296a1f82b1 (diff) | |
download | binaryen-5a2217d4d50c5302562ba29fb38a60edbe84d262.tar.gz binaryen-5a2217d4d50c5302562ba29fb38a60edbe84d262.tar.bz2 binaryen-5a2217d4d50c5302562ba29fb38a60edbe84d262.zip |
add return node
Diffstat (limited to 'src/wasm-binary.h')
-rw-r--r-- | src/wasm-binary.h | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/wasm-binary.h b/src/wasm-binary.h index 26673a966..1cc6f0673 100644 --- a/src/wasm-binary.h +++ b/src/wasm-binary.h @@ -916,6 +916,15 @@ public: recurse(curr->ifFalse); recurse(curr->condition); } + void visitReturn(Return *curr) { + if (debug) std::cerr << "zz node: Return" << std::endl; + o << int8_t(BinaryConsts::Return); + if (curr->value) { + recurse(curr->value); + } else { + visitNop(nullptr); + } + } void visitHost(Host *curr) { if (debug) std::cerr << "zz node: Host" << std::endl; switch (curr->op) { @@ -1263,6 +1272,7 @@ public: case BinaryConsts::GetLocal: visitGetLocal((curr = allocator.alloc<GetLocal>())->cast<GetLocal>()); break; case BinaryConsts::SetLocal: visitSetLocal((curr = allocator.alloc<SetLocal>())->cast<SetLocal>()); break; case BinaryConsts::Select: visitSelect((curr = allocator.alloc<Select>())->cast<Select>()); break; + case BinaryConsts::Return: visitReturn((curr = allocator.alloc<Return>())->cast<Return>()); break; case BinaryConsts::Nop: visitNop((curr = allocator.alloc<Nop>())->cast<Nop>()); break; case BinaryConsts::Unreachable: visitUnreachable((curr = allocator.alloc<Unreachable>())->cast<Unreachable>()); break; default: { @@ -1603,6 +1613,10 @@ public: readExpression(curr->condition); curr->finalize(); } + void visitReturn(Return *curr) { + if (debug) std::cerr << "zz node: Return" << std::endl; + readExpression(curr->value); + } bool maybeVisitImpl(Host *curr, uint8_t code) { switch (code) { case BinaryConsts::MemorySize: { |