wasm-micro-runtime/core/iwasm/interpreter
Wenyong Huang 313ce8cb61
Fix memory/table segment checks in memory.init/table.init (#3081)
According to the wasm core spec, the checks for the table segments in
`table.init` opcode are similar to the checks for `memory.init` opcode:
- The size of a passive segment is shrunk to zero after `data.drop`
  (or `elem.drop`) opcode is executed, and the segment can be used to do
  `memory.init` (or `table.init`) again
- The `memory.init` only traps when `s+n > len(data.data)` or `d+n > len(mem.data)`
  and `table.init` only traps when `s+n > len(elem.elem)` or `d+n > len(tab.elem)`
- The active segment can also be used to do `memory.init` (or `table.init`),
  while it behaves like a dropped passive segment

https://github.com/WebAssembly/bulk-memory-operations/blob/master/proposals/bulk-memory-operations/Overview.md
```
Segments can also be shrunk to size zero by using the following new instructions:
- data.drop: discard the data in an data segment
- elem.drop: discard the data in an element segment

An active segment is equivalent to a passive segment, but with an implicit
memory.init followed by a data.drop (or table.init followed by a elem.drop)
that is prepended to the module's start function.
```
ps.
https://webassembly.github.io/spec/core/bikeshed/#-hrefsyntax-instr-memorymathsfmemoryinitx%E2%91%A0
https://webassembly.github.io/spec/core/bikeshed/#-hrefsyntax-instr-tablemathsftableinitxy%E2%91%A0
https://github.com/bytecodealliance/wasm-micro-runtime/issues/3020
2024-01-26 09:45:59 +08:00
..
iwasm_interp.cmake Implement wasm mini loader and refine footprint of loader and runtime (#276) 2020-06-08 11:19:09 +08:00
SConscript add porting codes of rt-thread (#494) 2021-01-14 11:26:35 +08:00
wasm_interp_classic.c Fix memory/table segment checks in memory.init/table.init (#3081) 2024-01-26 09:45:59 +08:00
wasm_interp_fast.c Fix memory/table segment checks in memory.init/table.init (#3081) 2024-01-26 09:45:59 +08:00
wasm_interp.h Fix issue of restoring wasm operand stack (#1721) 2022-11-18 18:51:13 +08:00
wasm_loader.c Fix some issues reported by CodeQL (#3064) 2024-01-23 21:38:30 +08:00
wasm_loader.h Fix build error when enable custom section without interpreter (#1229) 2022-06-15 18:14:39 +08:00
wasm_mini_loader.c fast-interp: Fix dynamic offset error issue in else branch (#3058) 2024-01-19 19:58:12 +08:00
wasm_opcode.h classic-interp: Handle SIMD opcode when JIT is enabled (#3046) 2024-01-19 12:31:18 +08:00
wasm_runtime.c Fix memory/table segment checks in memory.init/table.init (#3081) 2024-01-26 09:45:59 +08:00
wasm_runtime.h Enhancements on wasm function execution time statistic (#2985) 2024-01-17 09:51:54 +08:00
wasm.h Register quick call entries to speedup the aot/jit func call process (#2978) 2024-01-10 16:44:09 +08:00