|
@@ -2847,7 +2847,7 @@ VALIDATE_INSTRUCTION(v128_load8_lane)
|
|
|
constexpr auto max_lane = 128 / N;
|
|
|
constexpr auto max_alignment = N / 8;
|
|
|
|
|
|
- if (arg.lane > max_lane)
|
|
|
+ if (arg.lane >= max_lane)
|
|
|
return Errors::out_of_bounds("lane index"sv, arg.lane, 0u, max_lane);
|
|
|
|
|
|
TRY(validate(arg.memory.memory_index));
|
|
@@ -2906,7 +2906,7 @@ VALIDATE_INSTRUCTION(v128_load64_lane)
|
|
|
|
|
|
TRY(validate(arg.memory.memory_index));
|
|
|
|
|
|
- if (arg.memory.align > max_alignment)
|
|
|
+ if ((1 << arg.memory.align) > max_alignment)
|
|
|
return Errors::out_of_bounds("memory op alignment"sv, 1 << arg.memory.align, 0u, max_alignment);
|
|
|
|
|
|
return stack.take_and_put<ValueType::V128, ValueType::I32>(ValueType::V128);
|