mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-09-29 16:21:29 +00:00
LibWasm: Validate stack correctly in v128_store*_lane
instructions
Previously the validator put a `v128` on the stack, which is not what the spec defines.
This commit is contained in:
parent
906fa04822
commit
3efb11f5d8
Notes:
sideshowbarker
2024-07-17 07:09:53 +09:00
Author: https://github.com/dzfrias Commit: https://github.com/LadybirdBrowser/ladybird/commit/3efb11f5d8 Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/603
|
@ -2927,7 +2927,7 @@ VALIDATE_INSTRUCTION(v128_store8_lane)
|
|||
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);
|
||||
return stack.take<ValueType::V128, ValueType::I32>();
|
||||
}
|
||||
|
||||
VALIDATE_INSTRUCTION(v128_store16_lane)
|
||||
|
@ -2945,7 +2945,7 @@ VALIDATE_INSTRUCTION(v128_store16_lane)
|
|||
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);
|
||||
return stack.take<ValueType::V128, ValueType::I32>();
|
||||
}
|
||||
|
||||
VALIDATE_INSTRUCTION(v128_store32_lane)
|
||||
|
@ -2963,7 +2963,7 @@ VALIDATE_INSTRUCTION(v128_store32_lane)
|
|||
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);
|
||||
return stack.take<ValueType::V128, ValueType::I32>();
|
||||
}
|
||||
|
||||
VALIDATE_INSTRUCTION(v128_store64_lane)
|
||||
|
@ -2981,7 +2981,7 @@ VALIDATE_INSTRUCTION(v128_store64_lane)
|
|||
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);
|
||||
return stack.take<ValueType::V128, ValueType::I32>();
|
||||
}
|
||||
|
||||
VALIDATE_INSTRUCTION(v128_load32_zero)
|
||||
|
|
Loading…
Reference in a new issue