diff options
author | Alon Zakai <alonzakai@gmail.com> | 2015-11-04 19:55:28 -0800 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2015-11-04 19:55:28 -0800 |
commit | e0023d29a8beade034a219b060ddf00b7c4302e9 (patch) | |
tree | 8766de9423f03ed977a082fa40da90a0b8d09379 /src/wasm-s-parser.h | |
parent | c4fb7473071da6b26e2d1f3f32101e77e8aed26f (diff) | |
download | binaryen-e0023d29a8beade034a219b060ddf00b7c4302e9.tar.gz binaryen-e0023d29a8beade034a219b060ddf00b7c4302e9.tar.bz2 binaryen-e0023d29a8beade034a219b060ddf00b7c4302e9.zip |
more conversion ops
Diffstat (limited to 'src/wasm-s-parser.h')
-rw-r--r-- | src/wasm-s-parser.h | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/wasm-s-parser.h b/src/wasm-s-parser.h index d90c10ca6..4bc2c9f10 100644 --- a/src/wasm-s-parser.h +++ b/src/wasm-s-parser.h @@ -298,10 +298,12 @@ public: if (op[3] == '_') return makeBinary(s, op[4] == 'u' ? BinaryOp::DivU : BinaryOp::DivS, type); if (op[3] == 0) return makeBinary(s, BinaryOp::Div, type); } + if (op[1] == 'e') return makeConvert(s, ConvertOp::DemoteFloat64, type); abort_on(op); } case 'e': { if (op[1] == 'q') return makeCompare(s, RelationalOp::Eq, type); + if (op[1] == 'x') return makeConvert(s, op[7] == 'u' ? ConvertOp::ExtendUInt32 : ConvertOp::ExtendSInt32, type); abort_on(op); } case 'f': { @@ -348,6 +350,10 @@ public: if (op[1] == 'r') return makeBinary(s, BinaryOp::Or, type); abort_on(op); } + case 'p': { + if (op[1] == 'r') return makeConvert(s, ConvertOp::PromoteFloat32, type); + abort_on(op); + } case 'r': { if (op[1] == 'e') { return makeBinary(s, op[4] == 'u' ? BinaryOp::RemU : BinaryOp::RemS, type); @@ -367,6 +373,10 @@ public: if (op[1] == 'r') return makeConvert(s, ConvertOp::TruncSFloat64, type); abort_on(op); } + case 'w': { + if (op[1] == 'r') return makeConvert(s, ConvertOp::WrapInt64, type); + abort_on(op); + } case 'x': { if (op[1] == 'o') return makeBinary(s, BinaryOp::Xor, type); abort_on(op); |