summaryrefslogtreecommitdiff
path: root/src/binary-reader-interp.cc
diff options
context:
space:
mode:
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) {