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 b8907458..c8fcc6e1 100644
--- a/src/binary-reader-interp.cc
+++ b/src/binary-reader-interp.cc
@@ -195,6 +195,7 @@ class BinaryReaderInterp : public BinaryReaderNop {
wabt::Result OnTernaryExpr(wabt::Opcode opcode) override;
wabt::Result OnUnreachableExpr() override;
wabt::Result EndFunctionBody(Index index) override;
+ wabt::Result OnSimdLaneOpExpr(wabt::Opcode opcode, uint64_t value) override;
wabt::Result EndElemSegmentInitExpr(Index index) override;
wabt::Result OnElemSegmentFunctionIndexCount(Index index,
@@ -1179,6 +1180,14 @@ wabt::Result BinaryReaderInterp::OnTernaryExpr(wabt::Opcode opcode) {
return wabt::Result::Ok;
}
+wabt::Result BinaryReaderInterp::OnSimdLaneOpExpr(wabt::Opcode opcode,
+ uint64_t value) {
+ CHECK_RESULT(typechecker_.OnSimdLaneOp(opcode, value));
+ CHECK_RESULT(EmitOpcode(opcode));
+ CHECK_RESULT(EmitI8(static_cast<uint8_t>(value)));
+ return wabt::Result::Ok;
+}
+
wabt::Result BinaryReaderInterp::OnAtomicLoadExpr(Opcode opcode,
uint32_t alignment_log2,
Address offset) {