mirror of
https://github.com/pezkuwichain/wasm-instrument.git
synced 2026-06-09 20:11:06 +00:00
Consider activation frame for stack height metering (#2)
* Charge a base cost for calling a function * Added regression test for empty functions * Satisfy clippy
This commit is contained in:
committed by
GitHub
parent
4e3e6b598a
commit
57da96fb50
@@ -0,0 +1,52 @@
|
||||
(module
|
||||
(type (;0;) (func))
|
||||
(func (;0;) (type 0)
|
||||
global.get 0
|
||||
i32.const 2
|
||||
i32.add
|
||||
global.set 0
|
||||
global.get 0
|
||||
i32.const 1024
|
||||
i32.gt_u
|
||||
if ;; label = @1
|
||||
unreachable
|
||||
end
|
||||
call 0
|
||||
global.get 0
|
||||
i32.const 2
|
||||
i32.sub
|
||||
global.set 0)
|
||||
(func (;1;) (type 0)
|
||||
global.get 0
|
||||
i32.const 2
|
||||
i32.add
|
||||
global.set 0
|
||||
global.get 0
|
||||
i32.const 1024
|
||||
i32.gt_u
|
||||
if ;; label = @1
|
||||
unreachable
|
||||
end
|
||||
call 0
|
||||
global.get 0
|
||||
i32.const 2
|
||||
i32.sub
|
||||
global.set 0)
|
||||
(func (;2;) (type 0)
|
||||
global.get 0
|
||||
i32.const 2
|
||||
i32.add
|
||||
global.set 0
|
||||
global.get 0
|
||||
i32.const 1024
|
||||
i32.gt_u
|
||||
if ;; label = @1
|
||||
unreachable
|
||||
end
|
||||
call 1
|
||||
global.get 0
|
||||
i32.const 2
|
||||
i32.sub
|
||||
global.set 0)
|
||||
(global (;0;) (mut i32) (i32.const 0))
|
||||
(export "main" (func 2)))
|
||||
@@ -17,7 +17,7 @@
|
||||
local.get 1
|
||||
local.get 0
|
||||
global.get 1
|
||||
i32.const 2
|
||||
i32.const 4
|
||||
i32.add
|
||||
global.set 1
|
||||
global.get 1
|
||||
@@ -28,7 +28,7 @@
|
||||
end
|
||||
call 1
|
||||
global.get 1
|
||||
i32.const 2
|
||||
i32.const 4
|
||||
i32.sub
|
||||
global.set 1
|
||||
drop)
|
||||
@@ -36,7 +36,7 @@
|
||||
local.get 0
|
||||
local.get 1
|
||||
global.get 1
|
||||
i32.const 2
|
||||
i32.const 4
|
||||
i32.add
|
||||
global.set 1
|
||||
global.get 1
|
||||
@@ -47,7 +47,7 @@
|
||||
end
|
||||
call 1
|
||||
global.get 1
|
||||
i32.const 2
|
||||
i32.const 4
|
||||
i32.sub
|
||||
global.set 1)
|
||||
(global (;0;) (mut i32) (i32.const 1))
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
local.get 0
|
||||
local.get 1
|
||||
global.get 0
|
||||
i32.const 2
|
||||
i32.const 4
|
||||
i32.add
|
||||
global.set 0
|
||||
global.get 0
|
||||
@@ -24,7 +24,7 @@
|
||||
end
|
||||
call 2
|
||||
global.get 0
|
||||
i32.const 2
|
||||
i32.const 4
|
||||
i32.sub
|
||||
global.set 0)
|
||||
(global (;0;) (mut i32) (i32.const 0))
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
(local i64 i64 i32))
|
||||
(func (;1;) (type 0)
|
||||
global.get 0
|
||||
i32.const 3
|
||||
i32.const 5
|
||||
i32.add
|
||||
global.set 0
|
||||
global.get 0
|
||||
@@ -15,7 +15,7 @@
|
||||
end
|
||||
call 0
|
||||
global.get 0
|
||||
i32.const 3
|
||||
i32.const 5
|
||||
i32.sub
|
||||
global.set 0)
|
||||
(global (;0;) (mut i32) (i32.const 0)))
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
drop)
|
||||
(func (;1;) (type 0)
|
||||
global.get 0
|
||||
i32.const 1
|
||||
i32.const 3
|
||||
i32.add
|
||||
global.set 0
|
||||
global.get 0
|
||||
@@ -16,7 +16,7 @@
|
||||
end
|
||||
call 0
|
||||
global.get 0
|
||||
i32.const 1
|
||||
i32.const 3
|
||||
i32.sub
|
||||
global.set 0)
|
||||
(global (;0;) (mut i32) (i32.const 0))
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
(func (;2;) (type 1))
|
||||
(func (;3;) (type 1)
|
||||
global.get 0
|
||||
i32.const 1
|
||||
i32.const 3
|
||||
i32.add
|
||||
global.set 0
|
||||
global.get 0
|
||||
@@ -19,10 +19,25 @@
|
||||
end
|
||||
call 1
|
||||
global.get 0
|
||||
i32.const 1
|
||||
i32.const 3
|
||||
i32.sub
|
||||
global.set 0)
|
||||
(func (;4;) (type 1)
|
||||
global.get 0
|
||||
i32.const 2
|
||||
i32.add
|
||||
global.set 0
|
||||
global.get 0
|
||||
i32.const 1024
|
||||
i32.gt_u
|
||||
if ;; label = @1
|
||||
unreachable
|
||||
end
|
||||
call 2
|
||||
global.get 0
|
||||
i32.const 2
|
||||
i32.sub
|
||||
global.set 0)
|
||||
(global (;0;) (mut i32) (i32.const 0))
|
||||
(export "exported_start" (func 3))
|
||||
(export "call" (func 2))
|
||||
(export "call" (func 4))
|
||||
(start 3))
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
local.get 0
|
||||
i32.const 0
|
||||
global.get 0
|
||||
i32.const 2
|
||||
i32.const 4
|
||||
i32.add
|
||||
global.set 0
|
||||
global.get 0
|
||||
@@ -18,7 +18,7 @@
|
||||
end
|
||||
call 2
|
||||
global.get 0
|
||||
i32.const 2
|
||||
i32.const 4
|
||||
i32.sub
|
||||
global.set 0
|
||||
drop)
|
||||
@@ -29,7 +29,7 @@
|
||||
(func (;3;) (type 1) (param i32)
|
||||
local.get 0
|
||||
global.get 0
|
||||
i32.const 2
|
||||
i32.const 4
|
||||
i32.add
|
||||
global.set 0
|
||||
global.get 0
|
||||
@@ -40,14 +40,14 @@
|
||||
end
|
||||
call 1
|
||||
global.get 0
|
||||
i32.const 2
|
||||
i32.const 4
|
||||
i32.sub
|
||||
global.set 0)
|
||||
(func (;4;) (type 2) (param i32 i32) (result i32)
|
||||
local.get 0
|
||||
local.get 1
|
||||
global.get 0
|
||||
i32.const 2
|
||||
i32.const 4
|
||||
i32.add
|
||||
global.set 0
|
||||
global.get 0
|
||||
@@ -58,7 +58,7 @@
|
||||
end
|
||||
call 2
|
||||
global.get 0
|
||||
i32.const 2
|
||||
i32.const 4
|
||||
i32.sub
|
||||
global.set 0)
|
||||
(table (;0;) 10 funcref)
|
||||
|
||||
Reference in New Issue
Block a user