summaryrefslogtreecommitdiff
path: root/src/js/binaryen.js-post.js
diff options
context:
space:
mode:
authorDaniel Wirtz <dcode@dcode.io>2021-04-08 23:50:51 +0200
committerGitHub <noreply@github.com>2021-04-08 23:50:51 +0200
commit0efebfe68cb0e2759b88093e1811d034ef3e8a79 (patch)
treea676971fc2f671ea6817b2e218ef440d7847a827 /src/js/binaryen.js-post.js
parent6921dd30dc82b3df2511def7c941f4a1a9aeeec2 (diff)
downloadbinaryen-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.js32
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']);
},