summaryrefslogtreecommitdiff
path: root/src/binary-reader-interp.cc
diff options
context:
space:
mode:
authorlizhengxing <unixhaha@gmail.com>2018-03-15 20:46:46 -0700
committerBen Smith <binjimin@gmail.com>2018-03-15 20:46:46 -0700
commitbff679779509ab1bb0c923bc4e67cf88eaadfa42 (patch)
tree2f2c48150fad07aa1479a8a90f5540a95f318596 /src/binary-reader-interp.cc
parente31a5623815a545e57db3eb0ec3988025b1b0f0e (diff)
downloadwabt-bff679779509ab1bb0c923bc4e67cf88eaadfa42.tar.gz
wabt-bff679779509ab1bb0c923bc4e67cf88eaadfa42.tar.bz2
wabt-bff679779509ab1bb0c923bc4e67cf88eaadfa42.zip
SIMD v8x16.shuffle implementation. (#811)
Diffstat (limited to 'src/binary-reader-interp.cc')
-rw-r--r--src/binary-reader-interp.cc9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/binary-reader-interp.cc b/src/binary-reader-interp.cc
index c8fcc6e1..6766ce38 100644
--- a/src/binary-reader-interp.cc
+++ b/src/binary-reader-interp.cc
@@ -196,6 +196,7 @@ class BinaryReaderInterp : public BinaryReaderNop {
wabt::Result OnUnreachableExpr() override;
wabt::Result EndFunctionBody(Index index) override;
wabt::Result OnSimdLaneOpExpr(wabt::Opcode opcode, uint64_t value) override;
+ wabt::Result OnSimdShuffleOpExpr(wabt::Opcode opcode, v128 value) override;
wabt::Result EndElemSegmentInitExpr(Index index) override;
wabt::Result OnElemSegmentFunctionIndexCount(Index index,
@@ -1188,6 +1189,14 @@ wabt::Result BinaryReaderInterp::OnSimdLaneOpExpr(wabt::Opcode opcode,
return wabt::Result::Ok;
}
+wabt::Result BinaryReaderInterp::OnSimdShuffleOpExpr(wabt::Opcode opcode,
+ v128 value) {
+ CHECK_RESULT(typechecker_.OnSimdShuffleOp(opcode, value));
+ CHECK_RESULT(EmitOpcode(opcode));
+ CHECK_RESULT(EmitV128(value));
+ return wabt::Result::Ok;
+}
+
wabt::Result BinaryReaderInterp::OnAtomicLoadExpr(Opcode opcode,
uint32_t alignment_log2,
Address offset) {