diff options
Diffstat (limited to 'src/interp/binary-reader-interp.cc')
-rw-r--r-- | src/interp/binary-reader-interp.cc | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/interp/binary-reader-interp.cc b/src/interp/binary-reader-interp.cc index cf4436f6..25f4d84f 100644 --- a/src/interp/binary-reader-interp.cc +++ b/src/interp/binary-reader-interp.cc @@ -238,10 +238,12 @@ class BinaryReaderInterp : public BinaryReaderNop { Result EndFunctionBody(Index index) override; Result OnSimdLaneOpExpr(Opcode opcode, uint64_t value) override; Result OnSimdLoadLaneExpr(Opcode opcode, + Index memidx, Address alignment_log2, Address offset, uint64_t value) override; Result OnSimdStoreLaneExpr(Opcode opcode, + Index memidx, Address alignment_log2, Address offset, uint64_t value) override; @@ -901,22 +903,24 @@ uint32_t GetAlignment(Address alignment_log2) { } Result BinaryReaderInterp::OnSimdLoadLaneExpr(Opcode opcode, + Index memidx, Address alignment_log2, Address offset, uint64_t value) { CHECK_RESULT(validator_.OnSimdLoadLane(GetLocation(), opcode, GetAlignment(alignment_log2), value)); - istream_.Emit(opcode, kMemoryIndex0, offset, static_cast<u8>(value)); + istream_.Emit(opcode, memidx, offset, static_cast<u8>(value)); return Result::Ok; } Result BinaryReaderInterp::OnSimdStoreLaneExpr(Opcode opcode, + Index memidx, Address alignment_log2, Address offset, uint64_t value) { CHECK_RESULT(validator_.OnSimdStoreLane(GetLocation(), opcode, GetAlignment(alignment_log2), value)); - istream_.Emit(opcode, kMemoryIndex0, offset, static_cast<u8>(value)); + istream_.Emit(opcode, memidx, offset, static_cast<u8>(value)); return Result::Ok; } |