From daf0782b7754e225c9063f9fbf5195b4b4a3c7e3 Mon Sep 17 00:00:00 2001 From: Thomas Lively <7121787+tlively@users.noreply.github.com> Date: Thu, 22 Oct 2020 21:47:17 -0700 Subject: 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. --- scripts/gen-s-parser.py | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'scripts/gen-s-parser.py') 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)"), -- cgit v1.2.3