diff options
author | Alon Zakai <alonzakai@gmail.com> | 2015-12-12 12:11:39 -0500 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2015-12-12 12:11:39 -0500 |
commit | b330c295d6ca2b2787bf99f0e036b3a46f9e4448 (patch) | |
tree | da70e39bf0a46965c070d4713ac24f2db6a0656c /src | |
parent | d4727a75ad4c199d5fa59002b10341936b895b91 (diff) | |
download | binaryen-b330c295d6ca2b2787bf99f0e036b3a46f9e4448.tar.gz binaryen-b330c295d6ca2b2787bf99f0e036b3a46f9e4448.tar.bz2 binaryen-b330c295d6ca2b2787bf99f0e036b3a46f9e4448.zip |
many more ops
Diffstat (limited to 'src')
-rw-r--r-- | src/s2wasm.h | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/src/s2wasm.h b/src/s2wasm.h index 12434a545..e6991e103 100644 --- a/src/s2wasm.h +++ b/src/s2wasm.h @@ -406,6 +406,7 @@ private: case 'a': { if (match("add")) makeBinary(BinaryOp::Add, type); else if (match("and")) makeBinary(BinaryOp::And, type); + else if (match("abs")) makeUnary(UnaryOp::Abs, type); else abort_on("type.a"); break; } @@ -430,6 +431,8 @@ private: else if (match("convert_u/i64")) makeUnary(UnaryOp::ConvertUInt64, type); else if (match("clz")) makeUnary(UnaryOp::Clz, type); else if (match("ctz")) makeUnary(UnaryOp::Ctz, type); + else if (match("copysign")) makeBinary(BinaryOp::CopySign, type); + else if (match("ceil")) makeUnary(UnaryOp::Ceil, type); else abort_on("type.c"); break; } @@ -448,6 +451,11 @@ private: else abort_on("type.e"); break; } + case 'f': { + if (match("floor")) makeUnary(UnaryOp::Floor, type); + else abort_on("type.e"); + break; + } case 'g': { if (match("gt_s")) makeBinary(BinaryOp::GtS, i32); else if (match("gt_u")) makeBinary(BinaryOp::GtU, i32); @@ -471,11 +479,15 @@ private: } case 'm': { if (match("mul")) makeBinary(BinaryOp::Mul, type); + else if (match("min")) makeBinary(BinaryOp::Min, type); + else if (match("max")) makeBinary(BinaryOp::Max, type); else abort_on("type.m"); break; } case 'n': { - if (match("ne")) makeBinary(BinaryOp::Ne, i32); + if (match("neg")) makeUnary(UnaryOp::Neg, i32); + else if (match("nearest")) makeUnary(UnaryOp::Nearest, i32); + else if (match("ne")) makeBinary(BinaryOp::Ne, i32); else abort_on("type.n"); break; } @@ -505,6 +517,7 @@ private: else if (match("sub")) makeBinary(BinaryOp::Sub, type); else if (match("store")) makeStore(type); else if (match("select")) makeSelect(type); + else if (match("sqrt")) makeUnary(UnaryOp::Sqrt, type); else abort_on("type.s"); break; } @@ -513,6 +526,7 @@ private: else if (match("trunc_u/f32")) makeUnary(UnaryOp::TruncUFloat32, type); else if (match("trunc_s/f64")) makeUnary(UnaryOp::TruncSFloat64, type); else if (match("trunc_u/f64")) makeUnary(UnaryOp::TruncUFloat64, type); + else if (match("trunc")) makeUnary(UnaryOp::Trunc, type); else abort_on("type.t"); break; } |