diff options
author | Thomas Lively <7121787+tlively@users.noreply.github.com> | 2020-10-22 21:47:17 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-10-22 21:47:17 -0700 |
commit | daf0782b7754e225c9063f9fbf5195b4b4a3c7e3 (patch) | |
tree | d0004ebe92a2559e8bfcd86c4bdfdf972dc81432 /scripts/gen-s-parser.py | |
parent | a2fa37eb94fdd6896f4d90f22e34fbd5f028d742 (diff) | |
download | binaryen-daf0782b7754e225c9063f9fbf5195b4b4a3c7e3.tar.gz binaryen-daf0782b7754e225c9063f9fbf5195b4b4a3c7e3.tar.bz2 binaryen-daf0782b7754e225c9063f9fbf5195b4b4a3c7e3.zip |
Implement v128.{load,store}{8,16,32,64}_lane instructions (#3278)
These instructions are proposed in https://github.com/WebAssembly/simd/pull/350.
This PR implements them throughout Binaryen except in the C/JS APIs and in the
fuzzer, where it leaves TODOs instead. Right now these instructions are just
being implemented for prototyping so adding them to the APIs isn't critical and
they aren't generally available to be fuzzed in Wasm engines.
Diffstat (limited to 'scripts/gen-s-parser.py')
-rwxr-xr-x | scripts/gen-s-parser.py | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/scripts/gen-s-parser.py b/scripts/gen-s-parser.py index 4c33fcf78..7fd3d1ec6 100755 --- a/scripts/gen-s-parser.py +++ b/scripts/gen-s-parser.py @@ -350,6 +350,14 @@ instructions = [ ("v128.xor", "makeBinary(s, BinaryOp::XorVec128)"), ("v128.andnot", "makeBinary(s, BinaryOp::AndNotVec128)"), ("v128.bitselect", "makeSIMDTernary(s, SIMDTernaryOp::Bitselect)"), + ("v128.load8_lane", "makeSIMDLoadStoreLane(s, LoadLaneVec8x16)"), + ("v128.load16_lane", "makeSIMDLoadStoreLane(s, LoadLaneVec16x8)"), + ("v128.load32_lane", "makeSIMDLoadStoreLane(s, LoadLaneVec32x4)"), + ("v128.load64_lane", "makeSIMDLoadStoreLane(s, LoadLaneVec64x2)"), + ("v128.store8_lane", "makeSIMDLoadStoreLane(s, StoreLaneVec8x16)"), + ("v128.store16_lane", "makeSIMDLoadStoreLane(s, StoreLaneVec16x8)"), + ("v128.store32_lane", "makeSIMDLoadStoreLane(s, StoreLaneVec32x4)"), + ("v128.store64_lane", "makeSIMDLoadStoreLane(s, StoreLaneVec64x2)"), ("i8x16.abs", "makeUnary(s, UnaryOp::AbsVecI8x16)"), ("i8x16.neg", "makeUnary(s, UnaryOp::NegVecI8x16)"), ("i8x16.any_true", "makeUnary(s, UnaryOp::AnyTrueVecI8x16)"), |