diff options
author | Thomas Lively <7121787+tlively@users.noreply.github.com> | 2019-09-24 16:57:57 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-09-24 16:57:57 -0700 |
commit | ed2c3cd0892be8a1380a6c6bfddfa3492c16f91c (patch) | |
tree | 32e5f1499f69caa359c130c92e1d28153e7506d3 /src/js/binaryen.js-post.js | |
parent | 034ed383a968204427befda3f9fb8bb5d2f63f75 (diff) | |
download | binaryen-ed2c3cd0892be8a1380a6c6bfddfa3492c16f91c.tar.gz binaryen-ed2c3cd0892be8a1380a6c6bfddfa3492c16f91c.tar.bz2 binaryen-ed2c3cd0892be8a1380a6c6bfddfa3492c16f91c.zip |
SIMD load and extend instructions (#2353)
Adds support for the new load and extend instructions. Also updates
from C++11 to C++17 in order to use generic lambdas in the interpreter
implementation.
Diffstat (limited to 'src/js/binaryen.js-post.js')
-rw-r--r-- | src/js/binaryen.js-post.js | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/src/js/binaryen.js-post.js b/src/js/binaryen.js-post.js index 3e1ccd2f8..8769e1c9e 100644 --- a/src/js/binaryen.js-post.js +++ b/src/js/binaryen.js-post.js @@ -400,6 +400,12 @@ Module['LoadSplatVec8x16'] = Module['_BinaryenLoadSplatVec8x16'](); Module['LoadSplatVec16x8'] = Module['_BinaryenLoadSplatVec16x8'](); Module['LoadSplatVec32x4'] = Module['_BinaryenLoadSplatVec32x4'](); Module['LoadSplatVec64x2'] = Module['_BinaryenLoadSplatVec64x2'](); +Module['LoadExtSVec8x8ToVecI16x8'] = Module['_BinaryenLoadExtSVec8x8ToVecI16x8'](); +Module['LoadExtUVec8x8ToVecI16x8'] = Module['_BinaryenLoadExtUVec8x8ToVecI16x8'](); +Module['LoadExtSVec16x4ToVecI32x4'] = Module['_BinaryenLoadExtSVec16x4ToVecI32x4'](); +Module['LoadExtUVec16x4ToVecI32x4'] = Module['_BinaryenLoadExtUVec16x4ToVecI32x4'](); +Module['LoadExtSVec32x2ToVecI64x2'] = Module['_BinaryenLoadExtSVec32x2ToVecI64x2'](); +Module['LoadExtUVec32x2ToVecI64x2'] = Module['_BinaryenLoadExtUVec32x2ToVecI64x2'](); Module['NarrowSVecI16x8ToVecI8x16'] = Module['_BinaryenNarrowSVecI16x8ToVecI8x16'](); Module['NarrowUVecI16x8ToVecI8x16'] = Module['_BinaryenNarrowUVecI16x8ToVecI8x16'](); Module['NarrowSVecI32x4ToVecI16x8'] = Module['_BinaryenNarrowSVecI32x4ToVecI16x8'](); @@ -1546,6 +1552,12 @@ function wrapModule(module, self) { 'widen_high_i8x16_u': function(value) { return Module['_BinaryenUnary'](module, Module['WidenHighUVecI8x16ToVecI16x8'], value); }, + 'load8x8_s': function(offset, align, ptr) { + return Module['_BinaryenSIMDLoad'](module, Module['LoadExtSVec8x8ToVecI16x8'], offset, align, ptr); + }, + 'load8x8_u': function(offset, align, ptr) { + return Module['_BinaryenSIMDLoad'](module, Module['LoadExtUVec8x8ToVecI16x8'], offset, align, ptr); + }, }; self['i32x4'] = { @@ -1633,6 +1645,12 @@ function wrapModule(module, self) { 'widen_high_i16x8_u': function(value) { return Module['_BinaryenUnary'](module, Module['WidenHighUVecI16x8ToVecI32x4'], value); }, + 'load16x4_s': function(offset, align, ptr) { + return Module['_BinaryenSIMDLoad'](module, Module['LoadExtSVec16x4ToVecI32x4'], offset, align, ptr); + }, + 'load16x4_u': function(offset, align, ptr) { + return Module['_BinaryenSIMDLoad'](module, Module['LoadExtUVec16x4ToVecI32x4'], offset, align, ptr); + }, }; self['i64x2'] = { @@ -1675,6 +1693,12 @@ function wrapModule(module, self) { 'trunc_sat_f64x2_u': function(value) { return Module['_BinaryenUnary'](module, Module['TruncSatUVecF64x2ToVecI64x2'], value); }, + 'load32x2_s': function(offset, align, ptr) { + return Module['_BinaryenSIMDLoad'](module, Module['LoadExtSVec32x2ToVecI64x2'], offset, align, ptr); + }, + 'load32x2_u': function(offset, align, ptr) { + return Module['_BinaryenSIMDLoad'](module, Module['LoadExtUVec32x2ToVecI64x2'], offset, align, ptr); + }, }; self['f32x4'] = { |