diff options
Diffstat (limited to 'src/binary-reader.cc')
-rw-r--r-- | src/binary-reader.cc | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/binary-reader.cc b/src/binary-reader.cc index 289e7ba2..b7f7a351 100644 --- a/src/binary-reader.cc +++ b/src/binary-reader.cc @@ -1318,6 +1318,21 @@ Result BinaryReader::ReadFunctionBody(Offset end_offset) { CALLBACK(OnOpcodeUint32Uint32, alignment_log2, offset); break; } + case Opcode::V128Load8Lane: + case Opcode::V128Load16Lane: + case Opcode::V128Load32Lane: + case Opcode::V128Load64Lane: { + Address alignment_log2; + CHECK_RESULT(ReadAlignment(&alignment_log2, "load alignment")); + Address offset; + CHECK_RESULT(ReadAddress(&offset, 0, "load offset")); + uint8_t lane_val; + CHECK_RESULT(ReadU8(&lane_val, "Lane idx")); + + CALLBACK(OnSimdLoadLaneExpr, opcode, alignment_log2, offset, lane_val); + CALLBACK(OnOpcodeUint32Uint32Uint32, alignment_log2, offset, lane_val); + break; + } case Opcode::V128Load32Zero: case Opcode::V128Load64Zero: { Address alignment_log2; |