diff options
author | Alon Zakai <alonzakai@gmail.com> | 2015-12-10 22:54:08 -0500 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2015-12-10 22:54:08 -0500 |
commit | d60ffc7021ecf4dfcf0785362afdd5efffe817c5 (patch) | |
tree | 119700e2c38d61dbead7f6b21aaada431d8a4b0b /src | |
parent | 46041b5b73c0f88e07bf1ed7b5af0ce2c2301267 (diff) | |
download | binaryen-d60ffc7021ecf4dfcf0785362afdd5efffe817c5.tar.gz binaryen-d60ffc7021ecf4dfcf0785362afdd5efffe817c5.tar.bz2 binaryen-d60ffc7021ecf4dfcf0785362afdd5efffe817c5.zip |
more binaries in s2wasm
Diffstat (limited to 'src')
-rw-r--r-- | src/s2wasm.h | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/src/s2wasm.h b/src/s2wasm.h index db241bb4a..ee13aeb75 100644 --- a/src/s2wasm.h +++ b/src/s2wasm.h @@ -212,7 +212,6 @@ private: } }; auto setOutput = [&](Expression* curr, Name assign) { -std::cerr << "assign: " << assign.str << '\n'; if (assign.str[1] == 'p') { // push stack.push_back(curr); } else if (assign.str[1] == 'd') { // discard @@ -242,6 +241,12 @@ std::cerr << "assign: " << assign.str << '\n'; skipWhitespace(); if (match("i32.")) { switch (*s) { + case 'a': { + if (match("add")) makeBinary(BinaryOp::Add, i32); + else if (match("and")) makeBinary(BinaryOp::And, i32); + else abort_on("i32.a"); + break; + } case 'c': { if (match("const")) { mustMatch("$push"); @@ -259,9 +264,15 @@ std::cerr << "assign: " << assign.str << '\n'; } else abort_on("i32.c"); break; } + case 'n': { + if (match("ne")) makeBinary(BinaryOp::Ne, i32); + else abort_on("i32.n"); + break; + } case 's': { if (match("shr_s")) makeBinary(BinaryOp::ShrS, i32); else if (match("shr_u")) makeBinary(BinaryOp::ShrU, i32); + else if (match("sub")) makeBinary(BinaryOp::Sub, i32); else abort_on("i32.s"); break; } |