diff options
author | Alon Zakai <alonzakai@gmail.com> | 2015-10-29 17:19:55 -0700 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2015-10-29 17:19:55 -0700 |
commit | 4d319b84d83ad3168ee798c52071e4b4b831e042 (patch) | |
tree | 992a4d5724d142353b3bf6f13806fb953ff4c511 /src | |
parent | 19abe35b2c6d191e14170c993e757cee786867cb (diff) | |
download | binaryen-4d319b84d83ad3168ee798c52071e4b4b831e042.tar.gz binaryen-4d319b84d83ad3168ee798c52071e4b4b831e042.tar.bz2 binaryen-4d319b84d83ad3168ee798c52071e4b4b831e042.zip |
use Nop
Diffstat (limited to 'src')
-rw-r--r-- | src/asm2wasm.cpp | 9 | ||||
-rw-r--r-- | src/wasm.h | 2 |
2 files changed, 7 insertions, 4 deletions
diff --git a/src/asm2wasm.cpp b/src/asm2wasm.cpp index e3fb23c4f..28ff7d563 100644 --- a/src/asm2wasm.cpp +++ b/src/asm2wasm.cpp @@ -77,6 +77,7 @@ struct WasmWalker { virtual Expression* walkCompare(Compare *curr) { return curr; }; virtual Expression* walkConvert(Convert *curr) { return curr; }; virtual Expression* walkHost(Host *curr) { return curr; }; + virtual Expression* walkNop(Nop *curr) { return curr; }; // children-first Expression *walk(Expression *curr) { @@ -181,6 +182,10 @@ struct WasmWalker { } return walkHost(cast); } + if (Nop *cast = dynamic_cast<Nop*>(curr)) { + return walkNop(cast); + } + abort(); } void startWalk(Function *func) { @@ -1040,9 +1045,7 @@ Function* Asm2WasmModule::processFunction(Ref ast) { return ret; } else if (what == SWITCH) { // XXX switch is still in flux in the spec repo, just emit a placeholder - auto ret = allocator.alloc<Block>(); - ret->var = IString("SWITCH_PLACEHOLDER"); - return ret; + return allocator.alloc<Nop>(); #if 0 IString name = getNextId("switch"); breakStack.push_back(name); diff --git a/src/wasm.h b/src/wasm.h index ff273e5c0..6aa568210 100644 --- a/src/wasm.h +++ b/src/wasm.h @@ -251,7 +251,7 @@ typedef std::vector<Expression*> ExpressionList; // TODO: optimize class Nop : public Expression { std::ostream& print(std::ostream &o, unsigned indent) override { - o << "nop"; + printMinorOpening(o, "nop") << ')'; return o; } }; |