diff options
author | Alon Zakai <alonzakai@gmail.com> | 2016-02-21 12:10:26 -0800 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2016-02-21 12:10:26 -0800 |
commit | ed567a4f49d3296dcf91bdb966c0deb077dacff7 (patch) | |
tree | 736f07fcd61a8c4623938220c6c3768c3d2b5807 /src/asm2wasm.h | |
parent | 7bf31d447bca02947b56f05edf0a171c68c92c7a (diff) | |
parent | 1956794aa5200274d7b67329be55bf97af83f49e (diff) | |
download | binaryen-ed567a4f49d3296dcf91bdb966c0deb077dacff7.tar.gz binaryen-ed567a4f49d3296dcf91bdb966c0deb077dacff7.tar.bz2 binaryen-ed567a4f49d3296dcf91bdb966c0deb077dacff7.zip |
Merge pull request #209 from WebAssembly/asm-fixes
Asm fixes
Diffstat (limited to 'src/asm2wasm.h')
-rw-r--r-- | src/asm2wasm.h | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/asm2wasm.h b/src/asm2wasm.h index 16ed0cf68..353f80413 100644 --- a/src/asm2wasm.h +++ b/src/asm2wasm.h @@ -197,6 +197,7 @@ private: IString Math_fround; IString Math_abs; IString Math_floor; + IString Math_ceil; IString Math_sqrt; // function types. we fill in this information as we see @@ -458,6 +459,10 @@ void Asm2WasmBuilder::processAsm(Ref ast) { assert(Math_floor.isNull()); Math_floor = name; return; + } else if (imported[2] == CEIL) { + assert(Math_ceil.isNull()); + Math_ceil = name; + return; } else if (imported[2] == SQRT) { assert(Math_sqrt.isNull()); Math_sqrt = name; @@ -1126,12 +1131,12 @@ Function* Asm2WasmBuilder::processFunction(Ref ast) { abort(); } } - if (name == Math_floor || name == Math_sqrt) { + if (name == Math_floor || name == Math_sqrt || name == Math_ceil) { // overloaded on type: f32 or f64 Expression* value = process(ast[2][0]); if (value->type == f32 || value->type == f64) { auto ret = allocator.alloc<Unary>(); - ret->op = name == Math_floor ? Floor : Sqrt; + ret->op = name == Math_floor ? Floor : name == Math_ceil ? Ceil : Sqrt; ret->value = value; ret->type = value->type; return ret; |