improve rtrace and move it to lib

This commit is contained in:
dcode
2019-05-23 16:41:26 +02:00
parent fbba76ef2c
commit a49ab7a706
35 changed files with 3435 additions and 3307 deletions

View File

@ -9,9 +9,10 @@
(type $FUNCSIG$viii (func (param i32 i32 i32)))
(type $FUNCSIG$vi (func (param i32)))
(import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32)))
(import "rtrace" "retain" (func $~lib/rt/pure/onIncrement (param i32)))
(import "rtrace" "release" (func $~lib/rt/pure/onDecrement (param i32)))
(import "rtrace" "free" (func $~lib/rt/tlsf/onFree (param i32)))
(import "rtrace" "onalloc" (func $~lib/rt/rtrace/onalloc (param i32)))
(import "rtrace" "onincrement" (func $~lib/rt/rtrace/onincrement (param i32)))
(import "rtrace" "ondecrement" (func $~lib/rt/rtrace/ondecrement (param i32)))
(import "rtrace" "onfree" (func $~lib/rt/rtrace/onfree (param i32)))
(memory $0 1)
(data (i32.const 8) "\03\00\00\00\01\00\00\00\00\00\00\00\03\00\00\00\00\01\02")
(data (i32.const 32) "\10\00\00\00\01\00\00\00\03\00\00\00\10\00\00\00\18\00\00\00\18\00\00\00\03\00\00\00\03\00\00\00")
@ -45,11 +46,11 @@
(global $~lib/heap/HEAP_BASE i32 (i32.const 604))
(export "memory" (memory $0))
(start $start)
(func $~lib/array/Array<i8>#get:length (; 4 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/array/Array<i8>#get:length (; 5 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.load offset=12
)
(func $~lib/array/Array<i8>#__unchecked_get (; 5 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/array/Array<i8>#__unchecked_get (; 6 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
local.get $0
i32.load offset=4
local.get $1
@ -58,7 +59,7 @@
i32.add
i32.load8_s
)
(func $~lib/array/Array<i8>#__get (; 6 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/array/Array<i8>#__get (; 7 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
local.get $1
local.get $0
i32.load offset=8
@ -77,11 +78,11 @@
local.get $1
call $~lib/array/Array<i8>#__unchecked_get
)
(func $~lib/array/Array<i32>#get:length (; 7 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/array/Array<i32>#get:length (; 8 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.load offset=12
)
(func $~lib/array/Array<i32>#__unchecked_get (; 8 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/array/Array<i32>#__unchecked_get (; 9 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
local.get $0
i32.load offset=4
local.get $1
@ -90,7 +91,7 @@
i32.add
i32.load
)
(func $~lib/array/Array<i32>#__get (; 9 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/array/Array<i32>#__get (; 10 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
local.get $1
local.get $0
i32.load offset=8
@ -109,7 +110,7 @@
local.get $1
call $~lib/array/Array<i32>#__unchecked_get
)
(func $~lib/rt/tlsf/removeBlock (; 10 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/rt/tlsf/removeBlock (; 11 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@ -130,7 +131,7 @@
if
i32.const 0
i32.const 352
i32.const 275
i32.const 276
i32.const 13
call $~lib/builtins/abort
unreachable
@ -155,7 +156,7 @@
if
i32.const 0
i32.const 352
i32.const 277
i32.const 278
i32.const 13
call $~lib/builtins/abort
unreachable
@ -207,7 +208,7 @@
if
i32.const 0
i32.const 352
i32.const 290
i32.const 291
i32.const 13
call $~lib/builtins/abort
unreachable
@ -327,7 +328,7 @@
end
end
)
(func $~lib/rt/tlsf/insertBlock (; 11 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/rt/tlsf/insertBlock (; 12 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@ -345,7 +346,7 @@
if
i32.const 0
i32.const 352
i32.const 203
i32.const 204
i32.const 13
call $~lib/builtins/abort
unreachable
@ -360,7 +361,7 @@
if
i32.const 0
i32.const 352
i32.const 205
i32.const 206
i32.const 13
call $~lib/builtins/abort
unreachable
@ -459,7 +460,7 @@
if
i32.const 0
i32.const 352
i32.const 226
i32.const 227
i32.const 15
call $~lib/builtins/abort
unreachable
@ -522,7 +523,7 @@
if
i32.const 0
i32.const 352
i32.const 241
i32.const 242
i32.const 13
call $~lib/builtins/abort
unreachable
@ -538,7 +539,7 @@
if
i32.const 0
i32.const 352
i32.const 242
i32.const 243
i32.const 13
call $~lib/builtins/abort
unreachable
@ -595,7 +596,7 @@
if
i32.const 0
i32.const 352
i32.const 258
i32.const 259
i32.const 13
call $~lib/builtins/abort
unreachable
@ -691,7 +692,7 @@
i32.store offset=4
end
)
(func $~lib/rt/tlsf/addMemory (; 12 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $~lib/rt/tlsf/addMemory (; 13 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
@ -722,7 +723,7 @@
if
i32.const 0
i32.const 352
i32.const 384
i32.const 385
i32.const 4
call $~lib/builtins/abort
unreachable
@ -747,7 +748,7 @@
if
i32.const 0
i32.const 352
i32.const 394
i32.const 395
i32.const 15
call $~lib/builtins/abort
unreachable
@ -778,7 +779,7 @@
if
i32.const 0
i32.const 352
i32.const 406
i32.const 407
i32.const 4
call $~lib/builtins/abort
unreachable
@ -843,7 +844,7 @@
call $~lib/rt/tlsf/insertBlock
i32.const 1
)
(func $~lib/rt/tlsf/initializeRoot (; 13 ;) (type $FUNCSIG$v)
(func $~lib/rt/tlsf/initializeRoot (; 14 ;) (type $FUNCSIG$v)
(local $0 i32)
(local $1 i32)
(local $2 i32)
@ -996,7 +997,7 @@
local.get $3
global.set $~lib/rt/tlsf/ROOT
)
(func $~lib/rt/tlsf/prepareSize (; 14 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/rt/tlsf/prepareSize (; 15 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
(local $2 i32)
local.get $0
@ -1005,7 +1006,7 @@
if
i32.const 400
i32.const 352
i32.const 446
i32.const 447
i32.const 29
call $~lib/builtins/abort
unreachable
@ -1025,7 +1026,7 @@
i32.gt_u
select
)
(func $~lib/rt/tlsf/searchBlock (; 15 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/rt/tlsf/searchBlock (; 16 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@ -1099,7 +1100,7 @@
if
i32.const 0
i32.const 352
i32.const 336
i32.const 337
i32.const 13
call $~lib/builtins/abort
unreachable
@ -1166,7 +1167,7 @@
if
i32.const 0
i32.const 352
i32.const 349
i32.const 350
i32.const 17
call $~lib/builtins/abort
unreachable
@ -1216,7 +1217,7 @@
end
local.get $7
)
(func $~lib/rt/tlsf/growMemory (; 16 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/rt/tlsf/growMemory (; 17 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@ -1269,7 +1270,7 @@
call $~lib/rt/tlsf/addMemory
drop
)
(func $~lib/rt/tlsf/prepareBlock (; 17 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(func $~lib/rt/tlsf/prepareBlock (; 18 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
@ -1284,7 +1285,7 @@
if
i32.const 0
i32.const 352
i32.const 363
i32.const 364
i32.const 13
call $~lib/builtins/abort
unreachable
@ -1368,7 +1369,7 @@
i32.store
end
)
(func $~lib/rt/tlsf/allocateBlock (; 18 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/rt/tlsf/allocateBlock (; 19 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
(local $3 i32)
local.get $1
@ -1393,7 +1394,7 @@
if
i32.const 0
i32.const 352
i32.const 476
i32.const 477
i32.const 15
call $~lib/builtins/abort
unreachable
@ -1411,7 +1412,7 @@
if
i32.const 0
i32.const 352
i32.const 478
i32.const 479
i32.const 13
call $~lib/builtins/abort
unreachable
@ -1430,8 +1431,10 @@
local.get $2
call $~lib/rt/tlsf/prepareBlock
local.get $3
call $~lib/rt/rtrace/onalloc
local.get $3
)
(func $~lib/rt/tlsf/__alloc (; 19 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/rt/tlsf/__alloc (; 20 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
(local $3 i32)
global.get $~lib/rt/tlsf/ROOT
@ -1454,7 +1457,7 @@
i32.const 16
i32.add
)
(func $~lib/rt/pure/increment (; 20 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/rt/pure/increment (; 21 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
local.get $0
i32.load offset=4
@ -1476,7 +1479,7 @@
if
i32.const 0
i32.const 456
i32.const 103
i32.const 104
i32.const 2
call $~lib/builtins/abort
unreachable
@ -1487,7 +1490,7 @@
i32.add
i32.store offset=4
local.get $0
call $~lib/rt/pure/onIncrement
call $~lib/rt/rtrace/onincrement
local.get $0
i32.load
i32.const 1
@ -1497,13 +1500,13 @@
if
i32.const 0
i32.const 456
i32.const 106
i32.const 107
i32.const 13
call $~lib/builtins/abort
unreachable
end
)
(func $~lib/rt/pure/__retain (; 21 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/rt/pure/__retain (; 22 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
global.get $~lib/heap/HEAP_BASE
i32.gt_u
@ -1515,7 +1518,7 @@
end
local.get $0
)
(func $~lib/memory/memory.copy (; 22 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(func $~lib/memory/memory.copy (; 23 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
@ -1721,7 +1724,7 @@
end
end
)
(func $~lib/rt/__allocArray (; 23 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32)
(func $~lib/rt/__allocArray (; 24 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32)
(local $4 i32)
(local $5 i32)
(local $6 i32)
@ -1759,7 +1762,7 @@
end
local.get $4
)
(func $std/array-literal/Ref#constructor (; 24 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $std/array-literal/Ref#constructor (; 25 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.eqz
if
@ -1771,11 +1774,11 @@
end
local.get $0
)
(func $~lib/array/Array<std/array-literal/Ref>#get:length (; 25 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/array/Array<std/array-literal/Ref>#get:length (; 26 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.load offset=12
)
(func $std/array-literal/RefWithCtor#constructor (; 26 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $std/array-literal/RefWithCtor#constructor (; 27 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.eqz
if
@ -1787,11 +1790,11 @@
end
local.get $0
)
(func $~lib/array/Array<std/array-literal/RefWithCtor>#get:length (; 27 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/array/Array<std/array-literal/RefWithCtor>#get:length (; 28 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.load offset=12
)
(func $~lib/rt/tlsf/freeBlock (; 28 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/rt/tlsf/freeBlock (; 29 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
local.get $1
i32.load
@ -1804,7 +1807,7 @@
if
i32.const 0
i32.const 352
i32.const 530
i32.const 531
i32.const 2
call $~lib/builtins/abort
unreachable
@ -1818,9 +1821,9 @@
local.get $1
call $~lib/rt/tlsf/insertBlock
local.get $1
call $~lib/rt/tlsf/onFree
call $~lib/rt/rtrace/onfree
)
(func $~lib/rt/__typeinfo (; 29 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/rt/__typeinfo (; 30 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
global.get $~lib/rt/RTTI_BASE
local.set $1
@ -1845,7 +1848,7 @@
i32.add
i32.load
)
(func $~lib/rt/pure/growRoots (; 30 ;) (type $FUNCSIG$v)
(func $~lib/rt/pure/growRoots (; 31 ;) (type $FUNCSIG$v)
(local $0 i32)
(local $1 i32)
(local $2 i32)
@ -1890,7 +1893,7 @@
i32.add
global.set $~lib/rt/pure/END
)
(func $~lib/rt/pure/appendRoot (; 31 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/rt/pure/appendRoot (; 32 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
global.get $~lib/rt/pure/CUR
local.set $1
@ -1910,7 +1913,7 @@
i32.add
global.set $~lib/rt/pure/CUR
)
(func $~lib/rt/pure/decrement (; 32 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/rt/pure/decrement (; 33 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
(local $2 i32)
local.get $0
@ -1921,7 +1924,7 @@
i32.and
local.set $2
local.get $0
call $~lib/rt/pure/onDecrement
call $~lib/rt/rtrace/ondecrement
local.get $0
i32.load
i32.const 1
@ -1931,7 +1934,7 @@
if
i32.const 0
i32.const 456
i32.const 114
i32.const 115
i32.const 13
call $~lib/builtins/abort
unreachable
@ -1970,7 +1973,7 @@
if
i32.const 0
i32.const 456
i32.const 123
i32.const 124
i32.const 15
call $~lib/builtins/abort
unreachable
@ -2014,7 +2017,7 @@
end
end
)
(func $~lib/rt/pure/__release (; 33 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/rt/pure/__release (; 34 ;) (type $FUNCSIG$vi) (param $0 i32)
local.get $0
global.get $~lib/heap/HEAP_BASE
i32.gt_u
@ -2025,7 +2028,7 @@
call $~lib/rt/pure/decrement
end
)
(func $start:std/array-literal (; 34 ;) (type $FUNCSIG$v)
(func $start:std/array-literal (; 35 ;) (type $FUNCSIG$v)
(local $0 i32)
(local $1 i32)
(local $2 i32)
@ -2452,16 +2455,16 @@
local.get $7
call $~lib/rt/pure/__release
)
(func $start (; 35 ;) (type $FUNCSIG$v)
(func $start (; 36 ;) (type $FUNCSIG$v)
call $start:std/array-literal
)
(func $~lib/array/Array<i8>#__visit_impl (; 36 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/array/Array<i8>#__visit_impl (; 37 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
nop
)
(func $~lib/array/Array<i32>#__visit_impl (; 37 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/array/Array<i32>#__visit_impl (; 38 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
nop
)
(func $~lib/rt/pure/markGray (; 38 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/rt/pure/markGray (; 39 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
local.get $0
i32.load offset=4
@ -2488,7 +2491,7 @@
call $~lib/rt/__visit_members
end
)
(func $~lib/rt/pure/scanBlack (; 39 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/rt/pure/scanBlack (; 40 ;) (type $FUNCSIG$vi) (param $0 i32)
local.get $0
local.get $0
i32.load offset=4
@ -2505,7 +2508,7 @@
i32.const 4
call $~lib/rt/__visit_members
)
(func $~lib/rt/pure/scan (; 40 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/rt/pure/scan (; 41 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
local.get $0
i32.load offset=4
@ -2542,7 +2545,7 @@
end
end
)
(func $~lib/rt/pure/collectWhite (; 41 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/rt/pure/collectWhite (; 42 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
local.get $0
i32.load offset=4
@ -2571,7 +2574,7 @@
local.get $0
call $~lib/rt/tlsf/freeBlock
)
(func $~lib/rt/pure/__visit (; 42 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/rt/pure/__visit (; 43 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
(local $3 i32)
local.get $0
@ -2634,7 +2637,7 @@
if
i32.const 0
i32.const 456
i32.const 74
i32.const 75
i32.const 17
call $~lib/builtins/abort
unreachable
@ -2681,7 +2684,7 @@
if
i32.const 0
i32.const 456
i32.const 85
i32.const 86
i32.const 6
call $~lib/builtins/abort
unreachable
@ -2718,14 +2721,14 @@
if
i32.const 0
i32.const 456
i32.const 96
i32.const 97
i32.const 24
call $~lib/builtins/abort
unreachable
end
end
)
(func $~lib/array/Array<std/array-literal/Ref>#__visit_impl (; 43 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/array/Array<std/array-literal/Ref>#__visit_impl (; 44 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@ -2761,7 +2764,7 @@
end
end
)
(func $~lib/array/Array<std/array-literal/RefWithCtor>#__visit_impl (; 44 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/array/Array<std/array-literal/RefWithCtor>#__visit_impl (; 45 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@ -2797,7 +2800,7 @@
end
end
)
(func $~lib/rt/__visit_members (; 45 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/rt/__visit_members (; 46 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
block $block$4$break
block
@ -2929,6 +2932,6 @@
end
unreachable
)
(func $null (; 46 ;) (type $FUNCSIG$v)
(func $null (; 47 ;) (type $FUNCSIG$v)
)
)