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

@ -8,9 +8,10 @@
(type $FUNCSIG$vi (func (param i32)))
(type $FUNCSIG$i (func (result 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")
@ -38,7 +39,7 @@
(global $~lib/rt/pure/ROOTS (mut i32) (i32.const 0))
(export "memory" (memory $0))
(start $start)
(func $~lib/array/Array<i8>#__get (; 4 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/array/Array<i8>#__get (; 5 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
local.get $1
local.get $0
i32.load offset=8
@ -57,7 +58,7 @@
i32.add
i32.load8_s
)
(func $~lib/array/Array<i32>#__get (; 5 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/array/Array<i32>#__get (; 6 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
local.get $1
local.get $0
i32.load offset=8
@ -80,7 +81,7 @@
i32.add
i32.load
)
(func $~lib/rt/tlsf/removeBlock (; 6 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/rt/tlsf/removeBlock (; 7 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@ -94,7 +95,7 @@
if
i32.const 0
i32.const 352
i32.const 275
i32.const 276
i32.const 13
call $~lib/builtins/abort
unreachable
@ -116,7 +117,7 @@
if
i32.const 0
i32.const 352
i32.const 277
i32.const 278
i32.const 13
call $~lib/builtins/abort
unreachable
@ -161,7 +162,7 @@
if
i32.const 0
i32.const 352
i32.const 290
i32.const 291
i32.const 13
call $~lib/builtins/abort
unreachable
@ -246,7 +247,7 @@
end
end
)
(func $~lib/rt/tlsf/insertBlock (; 7 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/rt/tlsf/insertBlock (; 8 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@ -258,7 +259,7 @@
if
i32.const 0
i32.const 352
i32.const 203
i32.const 204
i32.const 13
call $~lib/builtins/abort
unreachable
@ -272,7 +273,7 @@
if
i32.const 0
i32.const 352
i32.const 205
i32.const 206
i32.const 13
call $~lib/builtins/abort
unreachable
@ -345,7 +346,7 @@
if
i32.const 0
i32.const 352
i32.const 226
i32.const 227
i32.const 15
call $~lib/builtins/abort
unreachable
@ -402,7 +403,7 @@
if
i32.const 0
i32.const 352
i32.const 241
i32.const 242
i32.const 13
call $~lib/builtins/abort
unreachable
@ -417,7 +418,7 @@
if
i32.const 0
i32.const 352
i32.const 242
i32.const 243
i32.const 13
call $~lib/builtins/abort
unreachable
@ -467,7 +468,7 @@
if
i32.const 0
i32.const 352
i32.const 258
i32.const 259
i32.const 13
call $~lib/builtins/abort
unreachable
@ -531,7 +532,7 @@
i32.or
i32.store offset=4
)
(func $~lib/rt/tlsf/addMemory (; 8 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(func $~lib/rt/tlsf/addMemory (; 9 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
(local $4 i32)
local.get $2
@ -553,7 +554,7 @@
if
i32.const 0
i32.const 352
i32.const 384
i32.const 385
i32.const 4
call $~lib/builtins/abort
unreachable
@ -570,7 +571,7 @@
if
i32.const 0
i32.const 352
i32.const 394
i32.const 395
i32.const 15
call $~lib/builtins/abort
unreachable
@ -598,7 +599,7 @@
if
i32.const 0
i32.const 352
i32.const 406
i32.const 407
i32.const 4
call $~lib/builtins/abort
unreachable
@ -645,7 +646,7 @@
local.get $1
call $~lib/rt/tlsf/insertBlock
)
(func $~lib/rt/tlsf/initializeRoot (; 9 ;) (type $FUNCSIG$v)
(func $~lib/rt/tlsf/initializeRoot (; 10 ;) (type $FUNCSIG$v)
(local $0 i32)
(local $1 i32)
i32.const 1
@ -728,14 +729,14 @@
i32.const 608
global.set $~lib/rt/tlsf/ROOT
)
(func $~lib/rt/tlsf/prepareSize (; 10 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/rt/tlsf/prepareSize (; 11 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.const 1073741808
i32.ge_u
if
i32.const 400
i32.const 352
i32.const 446
i32.const 447
i32.const 29
call $~lib/builtins/abort
unreachable
@ -752,7 +753,7 @@
i32.gt_u
select
)
(func $~lib/rt/tlsf/searchBlock (; 11 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/rt/tlsf/searchBlock (; 12 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
local.get $1
i32.const 256
@ -810,7 +811,7 @@
if
i32.const 0
i32.const 352
i32.const 336
i32.const 337
i32.const 13
call $~lib/builtins/abort
unreachable
@ -862,7 +863,7 @@
if
i32.const 0
i32.const 352
i32.const 349
i32.const 350
i32.const 17
call $~lib/builtins/abort
unreachable
@ -883,7 +884,7 @@
end
end
)
(func $~lib/rt/tlsf/growMemory (; 12 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/rt/tlsf/growMemory (; 13 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
memory.size
local.tee $2
@ -920,7 +921,7 @@
i32.shl
call $~lib/rt/tlsf/addMemory
)
(func $~lib/rt/tlsf/prepareBlock (; 13 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(func $~lib/rt/tlsf/prepareBlock (; 14 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
(local $4 i32)
local.get $1
@ -932,7 +933,7 @@
if
i32.const 0
i32.const 352
i32.const 363
i32.const 364
i32.const 13
call $~lib/builtins/abort
unreachable
@ -996,7 +997,7 @@
i32.store
end
)
(func $~lib/rt/tlsf/allocateBlock (; 14 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/rt/tlsf/allocateBlock (; 15 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
(local $3 i32)
local.get $0
@ -1018,7 +1019,7 @@
if
i32.const 0
i32.const 352
i32.const 476
i32.const 477
i32.const 15
call $~lib/builtins/abort
unreachable
@ -1033,7 +1034,7 @@
if
i32.const 0
i32.const 352
i32.const 478
i32.const 479
i32.const 13
call $~lib/builtins/abort
unreachable
@ -1052,8 +1053,10 @@
local.get $3
call $~lib/rt/tlsf/prepareBlock
local.get $2
call $~lib/rt/rtrace/onalloc
local.get $2
)
(func $~lib/rt/tlsf/__alloc (; 15 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/rt/tlsf/__alloc (; 16 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
global.get $~lib/rt/tlsf/ROOT
local.tee $2
@ -1072,7 +1075,7 @@
i32.const 16
i32.add
)
(func $~lib/rt/pure/increment (; 16 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/rt/pure/increment (; 17 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
local.get $0
i32.load offset=4
@ -1088,7 +1091,7 @@
if
i32.const 0
i32.const 456
i32.const 103
i32.const 104
i32.const 2
call $~lib/builtins/abort
unreachable
@ -1099,7 +1102,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
@ -1107,13 +1110,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 (; 17 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/rt/pure/__retain (; 18 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.const 604
i32.gt_u
@ -1125,7 +1128,7 @@
end
local.get $0
)
(func $~lib/memory/memory.copy (; 18 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(func $~lib/memory/memory.copy (; 19 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
(local $4 i32)
block $~lib/util/memory/memmove|inlined.0
@ -1298,7 +1301,7 @@
end
end
)
(func $~lib/rt/__allocArray (; 19 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/rt/__allocArray (; 20 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
i32.const 16
local.get $1
@ -1324,19 +1327,19 @@
i32.store offset=12
local.get $1
)
(func $std/array-literal/Ref#constructor (; 20 ;) (type $FUNCSIG$i) (result i32)
(func $std/array-literal/Ref#constructor (; 21 ;) (type $FUNCSIG$i) (result i32)
i32.const 0
i32.const 5
call $~lib/rt/tlsf/__alloc
call $~lib/rt/pure/__retain
)
(func $std/array-literal/RefWithCtor#constructor (; 21 ;) (type $FUNCSIG$i) (result i32)
(func $std/array-literal/RefWithCtor#constructor (; 22 ;) (type $FUNCSIG$i) (result i32)
i32.const 0
i32.const 7
call $~lib/rt/tlsf/__alloc
call $~lib/rt/pure/__retain
)
(func $~lib/rt/tlsf/freeBlock (; 22 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/rt/tlsf/freeBlock (; 23 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
local.get $1
i32.load
@ -1346,7 +1349,7 @@
if
i32.const 0
i32.const 352
i32.const 530
i32.const 531
i32.const 2
call $~lib/builtins/abort
unreachable
@ -1360,9 +1363,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 (; 23 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/rt/__typeinfo (; 24 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.const 528
i32.load
@ -1382,7 +1385,7 @@
i32.add
i32.load
)
(func $~lib/rt/pure/growRoots (; 24 ;) (type $FUNCSIG$v)
(func $~lib/rt/pure/growRoots (; 25 ;) (type $FUNCSIG$v)
(local $0 i32)
(local $1 i32)
(local $2 i32)
@ -1418,7 +1421,7 @@
i32.add
global.set $~lib/rt/pure/END
)
(func $~lib/rt/pure/appendRoot (; 25 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/rt/pure/appendRoot (; 26 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
global.get $~lib/rt/pure/CUR
local.tee $1
@ -1437,7 +1440,7 @@
i32.add
global.set $~lib/rt/pure/CUR
)
(func $~lib/rt/pure/decrement (; 26 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/rt/pure/decrement (; 27 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
(local $2 i32)
local.get $0
@ -1447,7 +1450,7 @@
i32.and
local.set $1
local.get $0
call $~lib/rt/pure/onDecrement
call $~lib/rt/rtrace/ondecrement
local.get $0
i32.load
i32.const 1
@ -1455,7 +1458,7 @@
if
i32.const 0
i32.const 456
i32.const 114
i32.const 115
i32.const 13
call $~lib/builtins/abort
unreachable
@ -1488,7 +1491,7 @@
if
i32.const 0
i32.const 456
i32.const 123
i32.const 124
i32.const 15
call $~lib/builtins/abort
unreachable
@ -1527,7 +1530,7 @@
end
end
)
(func $~lib/rt/pure/__release (; 27 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/rt/pure/__release (; 28 ;) (type $FUNCSIG$vi) (param $0 i32)
local.get $0
i32.const 604
i32.gt_u
@ -1538,7 +1541,7 @@
call $~lib/rt/pure/decrement
end
)
(func $start:std/array-literal (; 28 ;) (type $FUNCSIG$v)
(func $start:std/array-literal (; 29 ;) (type $FUNCSIG$v)
(local $0 i32)
(local $1 i32)
(local $2 i32)
@ -1901,10 +1904,10 @@
local.get $0
call $~lib/rt/pure/__release
)
(func $start (; 29 ;) (type $FUNCSIG$v)
(func $start (; 30 ;) (type $FUNCSIG$v)
call $start:std/array-literal
)
(func $~lib/rt/pure/markGray (; 30 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/rt/pure/markGray (; 31 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
local.get $0
i32.load offset=4
@ -1928,7 +1931,7 @@
call $~lib/rt/__visit_members
end
)
(func $~lib/rt/pure/scanBlack (; 31 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/rt/pure/scanBlack (; 32 ;) (type $FUNCSIG$vi) (param $0 i32)
local.get $0
local.get $0
i32.load offset=4
@ -1941,7 +1944,7 @@
i32.const 4
call $~lib/rt/__visit_members
)
(func $~lib/rt/pure/scan (; 32 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/rt/pure/scan (; 33 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
local.get $0
i32.load offset=4
@ -1975,7 +1978,7 @@
end
end
)
(func $~lib/rt/pure/collectWhite (; 33 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/rt/pure/collectWhite (; 34 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
local.get $0
i32.load offset=4
@ -2003,7 +2006,7 @@
local.get $0
call $~lib/rt/tlsf/freeBlock
)
(func $~lib/rt/pure/__visit (; 34 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/rt/pure/__visit (; 35 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
local.get $0
i32.const 604
i32.lt_u
@ -2049,7 +2052,7 @@
if
i32.const 0
i32.const 456
i32.const 74
i32.const 75
i32.const 17
call $~lib/builtins/abort
unreachable
@ -2082,7 +2085,7 @@
if
i32.const 0
i32.const 456
i32.const 85
i32.const 86
i32.const 6
call $~lib/builtins/abort
unreachable
@ -2107,13 +2110,13 @@
end
i32.const 0
i32.const 456
i32.const 96
i32.const 97
i32.const 24
call $~lib/builtins/abort
unreachable
end
)
(func $~lib/array/Array<std/array-literal/Ref>#__visit_impl (; 35 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/array/Array<std/array-literal/Ref>#__visit_impl (; 36 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
(local $3 i32)
local.get $0
@ -2144,7 +2147,7 @@
end
end
)
(func $~lib/rt/__visit_members (; 36 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/rt/__visit_members (; 37 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
block $block$4$break
block $switch$1$default
block $switch$1$case$10
@ -2179,7 +2182,7 @@
call $~lib/rt/pure/__visit
end
)
(func $null (; 37 ;) (type $FUNCSIG$v)
(func $null (; 38 ;) (type $FUNCSIG$v)
nop
)
)