diff options
author | Daniel Wirtz <dcode@dcode.io> | 2021-04-08 23:50:51 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-04-08 23:50:51 +0200 |
commit | 0efebfe68cb0e2759b88093e1811d034ef3e8a79 (patch) | |
tree | a676971fc2f671ea6817b2e218ef440d7847a827 /src/js/binaryen.js-post.js | |
parent | 6921dd30dc82b3df2511def7c941f4a1a9aeeec2 (diff) | |
download | binaryen-0efebfe68cb0e2759b88093e1811d034ef3e8a79.tar.gz binaryen-0efebfe68cb0e2759b88093e1811d034ef3e8a79.tar.bz2 binaryen-0efebfe68cb0e2759b88093e1811d034ef3e8a79.zip |
Add v128.load/storeN_lane SIMD instructions to C/JS API (#3784)
Adds C/JS APIs for the SIMD instructions
* Load8LaneVec128 (was LoadLaneVec8x16)
* Load16LaneVec128 (was LoadLaneVec16x8)
* Load32LaneVec128 (was LoadLaneVec32x4)
* Load64LaneVec128 (was LoadLaneVec64x2)
* Store8LaneVec128 (was StoreLaneVec8x16)
* Store16LaneVec128 (was StoreLaneVec16x8)
* Store32LaneVec128 (was StoreLaneVec32x4)
* Store64LaneVec128 (was StoreLaneVec64x2)
Diffstat (limited to 'src/js/binaryen.js-post.js')
-rw-r--r-- | src/js/binaryen.js-post.js | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/src/js/binaryen.js-post.js b/src/js/binaryen.js-post.js index cfd37e9db..261b20cab 100644 --- a/src/js/binaryen.js-post.js +++ b/src/js/binaryen.js-post.js @@ -492,6 +492,14 @@ function initializeConstants() { 'LoadExtUVec32x2ToVecI64x2', 'Load32Zero', 'Load64Zero', + 'Load8LaneVec128', + 'Load16LaneVec128', + 'Load32LaneVec128', + 'Load64LaneVec128', + 'Store8LaneVec128', + 'Store16LaneVec128', + 'Store32LaneVec128', + 'Store64LaneVec128', 'NarrowSVecI16x8ToVecI8x16', 'NarrowUVecI16x8ToVecI8x16', 'NarrowSVecI32x4ToVecI16x8', @@ -1498,6 +1506,30 @@ function wrapModule(module, self = {}) { 'load64_zero'(offset, align, ptr) { return Module['_BinaryenSIMDLoad'](module, Module['Load64Zero'], offset, align, ptr); }, + 'load8_lane'(offset, align, index, ptr, vec) { + return Module['_BinaryenSIMDLoadStoreLane'](module, Module['Load8LaneVec128'], offset, align, index, ptr, vec); + }, + 'load16_lane'(offset, align, index, ptr, vec) { + return Module['_BinaryenSIMDLoadStoreLane'](module, Module['Load16LaneVec128'], offset, align, index, ptr, vec); + }, + 'load32_lane'(offset, align, index, ptr, vec) { + return Module['_BinaryenSIMDLoadStoreLane'](module, Module['Load32LaneVec128'], offset, align, index, ptr, vec); + }, + 'load64_lane'(offset, align, index, ptr, vec) { + return Module['_BinaryenSIMDLoadStoreLane'](module, Module['Load64LaneVec128'], offset, align, index, ptr, vec); + }, + 'store8_lane'(offset, align, index, ptr, vec) { + return Module['_BinaryenSIMDLoadStoreLane'](module, Module['Store8LaneVec128'], offset, align, index, ptr, vec); + }, + 'store16_lane'(offset, align, index, ptr, vec) { + return Module['_BinaryenSIMDLoadStoreLane'](module, Module['Store16LaneVec128'], offset, align, index, ptr, vec); + }, + 'store32_lane'(offset, align, index, ptr, vec) { + return Module['_BinaryenSIMDLoadStoreLane'](module, Module['Store32LaneVec128'], offset, align, index, ptr, vec); + }, + 'store64_lane'(offset, align, index, ptr, vec) { + return Module['_BinaryenSIMDLoadStoreLane'](module, Module['Store64LaneVec128'], offset, align, index, ptr, vec); + }, 'store'(offset, align, ptr, value) { return Module['_BinaryenStore'](module, 16, offset, align, ptr, value, Module['v128']); }, |