diff options
Diffstat (limited to 'src/s2wasm.h')
-rw-r--r-- | src/s2wasm.h | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/s2wasm.h b/src/s2wasm.h index 1fb61f1f5..e4b7ce841 100644 --- a/src/s2wasm.h +++ b/src/s2wasm.h @@ -396,6 +396,8 @@ private: else if (match("gt_u")) makeBinary(BinaryOp::GtU, i32); else if (match("ge_s")) makeBinary(BinaryOp::GeS, i32); else if (match("ge_u")) makeBinary(BinaryOp::GeU, i32); + else if (match("gt")) makeBinary(BinaryOp::Gt, i32); + else if (match("ge")) makeBinary(BinaryOp::Ge, i32); else abort_on("i32.g"); break; } @@ -405,6 +407,8 @@ private: else if (match("le_s")) makeBinary(BinaryOp::LeS, i32); else if (match("le_u")) makeBinary(BinaryOp::LeU, i32); else if (match("load")) makeLoad(type); + else if (match("lt")) makeBinary(BinaryOp::Lt, i32); + else if (match("le")) makeBinary(BinaryOp::Le, i32); else abort_on("i32.g"); break; } @@ -418,6 +422,11 @@ private: else abort_on("i32.n"); break; } + case 'o': { + if (match("or")) makeBinary(BinaryOp::Or, type); + else abort_on("i32.n"); + break; + } case 'r': { if (match("rem_s")) makeBinary(BinaryOp::RemS, type); else if (match("rem_u")) makeBinary(BinaryOp::RemU, type); @@ -432,6 +441,11 @@ private: else abort_on("i32.s"); break; } + case 'x': { + if (match("or")) makeBinary(BinaryOp::Xor, type); + else abort_on("i32.n"); + break; + } default: abort_on("i32.?"); } }; |