Sergey Shulepov
19760b5835
Fix counting of the local variables
...
The code assumed that the number of `Local` and number of locals is the
same thing. In reality though it is not. `Local` actually represents a
group of locals with the same type. The group can declare more than one
variable and the number of them is returned by `Local::count`.
In this PR we acknowledge this fact. Along the way we add a checked
arithmetic for locals_count and max_stack_height summation.
2021-06-09 19:22:40 +02:00
NikVolf
3f2935df9c
update wabt
2020-08-03 14:00:07 +03:00
Jim Posen
863744b1fc
Add gas test confirming that br instructions do not end blocks.
2019-07-01 17:02:21 +02:00
Sergey Pepyakin
1b7a5d26ea
A couple of small tests.
2019-04-03 14:24:01 +02:00
Sergey Pepyakin
8db40174ae
Add gas tests.
2018-12-24 20:43:23 +01:00
Sergey Pepyakin
3db0d60e70
Teach stack limiter to handle start fn
2018-12-24 19:20:33 +01:00
Sergey Pepyakin
9527b969a4
Impl stack height limiter ( #64 )
...
* Initial implementation
* Add wasm-stack-height binary
* Fixes and tracing.
* Doc fixes.
* Fix type resolving for thunks.
* Fix thunk numbering.
* Don't generate thunks for fns with stack_cost = 0
* Diff tests.
* Add table tests.
* Add global test.
* Make tests deterministic.
* Refactoring.
* Clean and refactor.
* Rename Context → Stack in stach_height.
* Don't generate call wrappers if stack_cost = 0
* Errors instead of panics.
* Add with_stack_limit function.
* Fix thunk generation.
* Pass the stack height limit as separate value.
* Use .unwrap_or_default() in diff.rs.
* Remove redundant &.
* Remove simple_test.
* Remove variants of the Error.
* `resolve_func_type` returns an Error.
* Don't unwrap for .last()
* Remove stack_limit from rules::Set
* Rename max_height::compute.
2018-02-27 16:52:37 +03:00