mirror of
https://github.com/pezkuwichain/wasm-instrument.git
synced 2026-04-22 14:57:55 +00:00
9527b969a4
* 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.
89 lines
1.7 KiB
WebAssembly Text Format
89 lines
1.7 KiB
WebAssembly Text Format
(module
|
|
(type (;0;) (func))
|
|
(type (;1;) (func (param i32)))
|
|
(type (;2;) (func (param i32 i32) (result i32)))
|
|
(type (;3;) (func (param i32 i32) (result i32)))
|
|
(type (;4;) (func (param i32)))
|
|
(type (;5;) (func (param i32 i32) (result i32)))
|
|
(import "env" "foo" (func (;0;) (type 0)))
|
|
(func (;1;) (type 1) (param i32)
|
|
get_local 0
|
|
i32.const 0
|
|
get_global 0
|
|
i32.const 2
|
|
i32.add
|
|
set_global 0
|
|
get_global 0
|
|
i32.const 1024
|
|
i32.gt_u
|
|
if ;; label = @1
|
|
unreachable
|
|
end
|
|
call 2
|
|
get_global 0
|
|
i32.const 2
|
|
i32.sub
|
|
set_global 0
|
|
drop)
|
|
(func (;2;) (type 2) (param i32 i32) (result i32)
|
|
get_local 0
|
|
get_local 1
|
|
i32.add)
|
|
(func (;3;) (type 3) (param i32 i32) (result i32)
|
|
get_local 0
|
|
get_local 1
|
|
get_global 0
|
|
i32.const 2
|
|
i32.add
|
|
set_global 0
|
|
get_global 0
|
|
i32.const 1024
|
|
i32.gt_u
|
|
if ;; label = @1
|
|
unreachable
|
|
end
|
|
call 2
|
|
get_global 0
|
|
i32.const 2
|
|
i32.sub
|
|
set_global 0)
|
|
(func (;4;) (type 4) (param i32)
|
|
get_local 0
|
|
get_global 0
|
|
i32.const 2
|
|
i32.add
|
|
set_global 0
|
|
get_global 0
|
|
i32.const 1024
|
|
i32.gt_u
|
|
if ;; label = @1
|
|
unreachable
|
|
end
|
|
call 1
|
|
get_global 0
|
|
i32.const 2
|
|
i32.sub
|
|
set_global 0)
|
|
(func (;5;) (type 5) (param i32 i32) (result i32)
|
|
get_local 0
|
|
get_local 1
|
|
get_global 0
|
|
i32.const 2
|
|
i32.add
|
|
set_global 0
|
|
get_global 0
|
|
i32.const 1024
|
|
i32.gt_u
|
|
if ;; label = @1
|
|
unreachable
|
|
end
|
|
call 2
|
|
get_global 0
|
|
i32.const 2
|
|
i32.sub
|
|
set_global 0)
|
|
(table (;0;) 10 anyfunc)
|
|
(global (;0;) (mut i32) (i32.const 0))
|
|
(export "i32.add" (func 5))
|
|
(elem (i32.const 0) 0 4 5))
|