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) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s")
(data (i32.const 56) "(\00\00\00\01\00\00\00\01\00\00\00(\00\00\00a\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e")
@@ -25,7 +26,7 @@
(global $~lib/rt/pure/ROOTS (mut i32) (i32.const 0))
(export "memory" (memory $0))
(start $start)
(func $~lib/rt/tlsf/removeBlock (; 4 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/rt/tlsf/removeBlock (; 5 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@@ -39,7 +40,7 @@
if
i32.const 0
i32.const 24
i32.const 275
i32.const 276
i32.const 13
call $~lib/builtins/abort
unreachable
@@ -61,7 +62,7 @@
if
i32.const 0
i32.const 24
i32.const 277
i32.const 278
i32.const 13
call $~lib/builtins/abort
unreachable
@@ -106,7 +107,7 @@
if
i32.const 0
i32.const 24
i32.const 290
i32.const 291
i32.const 13
call $~lib/builtins/abort
unreachable
@@ -191,7 +192,7 @@
end
end
)
(func $~lib/rt/tlsf/insertBlock (; 5 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/rt/tlsf/insertBlock (; 6 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@@ -203,7 +204,7 @@
if
i32.const 0
i32.const 24
i32.const 203
i32.const 204
i32.const 13
call $~lib/builtins/abort
unreachable
@@ -217,7 +218,7 @@
if
i32.const 0
i32.const 24
i32.const 205
i32.const 206
i32.const 13
call $~lib/builtins/abort
unreachable
@@ -290,7 +291,7 @@
if
i32.const 0
i32.const 24
i32.const 226
i32.const 227
i32.const 15
call $~lib/builtins/abort
unreachable
@@ -347,7 +348,7 @@
if
i32.const 0
i32.const 24
i32.const 241
i32.const 242
i32.const 13
call $~lib/builtins/abort
unreachable
@@ -362,7 +363,7 @@
if
i32.const 0
i32.const 24
i32.const 242
i32.const 243
i32.const 13
call $~lib/builtins/abort
unreachable
@@ -412,7 +413,7 @@
if
i32.const 0
i32.const 24
i32.const 258
i32.const 259
i32.const 13
call $~lib/builtins/abort
unreachable
@@ -476,7 +477,7 @@
i32.or
i32.store offset=4
)
(func $~lib/rt/tlsf/addMemory (; 6 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(func $~lib/rt/tlsf/addMemory (; 7 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
(local $4 i32)
local.get $2
@@ -498,7 +499,7 @@
if
i32.const 0
i32.const 24
i32.const 384
i32.const 385
i32.const 4
call $~lib/builtins/abort
unreachable
@@ -515,7 +516,7 @@
if
i32.const 0
i32.const 24
i32.const 394
i32.const 395
i32.const 15
call $~lib/builtins/abort
unreachable
@@ -543,7 +544,7 @@
if
i32.const 0
i32.const 24
i32.const 406
i32.const 407
i32.const 4
call $~lib/builtins/abort
unreachable
@@ -590,7 +591,7 @@
local.get $1
call $~lib/rt/tlsf/insertBlock
)
(func $~lib/rt/tlsf/initializeRoot (; 7 ;) (type $FUNCSIG$v)
(func $~lib/rt/tlsf/initializeRoot (; 8 ;) (type $FUNCSIG$v)
(local $0 i32)
(local $1 i32)
i32.const 1
@@ -673,14 +674,14 @@
i32.const 304
global.set $~lib/rt/tlsf/ROOT
)
(func $~lib/rt/tlsf/prepareSize (; 8 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/rt/tlsf/prepareSize (; 9 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.const 1073741808
i32.ge_u
if
i32.const 72
i32.const 24
i32.const 446
i32.const 447
i32.const 29
call $~lib/builtins/abort
unreachable
@@ -697,7 +698,7 @@
i32.gt_u
select
)
(func $~lib/rt/tlsf/searchBlock (; 9 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/rt/tlsf/searchBlock (; 10 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
local.get $1
i32.const 256
@@ -755,7 +756,7 @@
if
i32.const 0
i32.const 24
i32.const 336
i32.const 337
i32.const 13
call $~lib/builtins/abort
unreachable
@@ -807,7 +808,7 @@
if
i32.const 0
i32.const 24
i32.const 349
i32.const 350
i32.const 17
call $~lib/builtins/abort
unreachable
@@ -828,7 +829,7 @@
end
end
)
(func $~lib/rt/tlsf/growMemory (; 10 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/rt/tlsf/growMemory (; 11 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
memory.size
local.tee $2
@@ -865,7 +866,7 @@
i32.shl
call $~lib/rt/tlsf/addMemory
)
(func $~lib/rt/tlsf/prepareBlock (; 11 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(func $~lib/rt/tlsf/prepareBlock (; 12 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
(local $4 i32)
local.get $1
@@ -877,7 +878,7 @@
if
i32.const 0
i32.const 24
i32.const 363
i32.const 364
i32.const 13
call $~lib/builtins/abort
unreachable
@@ -941,7 +942,7 @@
i32.store
end
)
(func $~lib/rt/tlsf/allocateBlock (; 12 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/rt/tlsf/allocateBlock (; 13 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
(local $3 i32)
local.get $0
@@ -963,7 +964,7 @@
if
i32.const 0
i32.const 24
i32.const 476
i32.const 477
i32.const 15
call $~lib/builtins/abort
unreachable
@@ -978,7 +979,7 @@
if
i32.const 0
i32.const 24
i32.const 478
i32.const 479
i32.const 13
call $~lib/builtins/abort
unreachable
@@ -997,8 +998,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 (; 13 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/rt/tlsf/__alloc (; 14 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
global.get $~lib/rt/tlsf/ROOT
local.tee $2
@@ -1017,7 +1020,7 @@
i32.const 16
i32.add
)
(func $~lib/rt/pure/increment (; 14 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/rt/pure/increment (; 15 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
local.get $0
i32.load offset=4
@@ -1033,7 +1036,7 @@
if
i32.const 0
i32.const 128
i32.const 103
i32.const 104
i32.const 2
call $~lib/builtins/abort
unreachable
@@ -1044,7 +1047,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
@@ -1052,13 +1055,13 @@
if
i32.const 0
i32.const 128
i32.const 106
i32.const 107
i32.const 13
call $~lib/builtins/abort
unreachable
end
)
(func $~lib/rt/pure/__retain (; 15 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/rt/pure/__retain (; 16 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.const 292
i32.gt_u
@@ -1070,13 +1073,13 @@
end
local.get $0
)
(func $rc/logical-and-mismatch/Ref#constructor (; 16 ;) (type $FUNCSIG$i) (result i32)
(func $rc/logical-and-mismatch/Ref#constructor (; 17 ;) (type $FUNCSIG$i) (result i32)
i32.const 0
i32.const 3
call $~lib/rt/tlsf/__alloc
call $~lib/rt/pure/__retain
)
(func $~lib/rt/tlsf/freeBlock (; 17 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/rt/tlsf/freeBlock (; 18 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
local.get $1
i32.load
@@ -1086,7 +1089,7 @@
if
i32.const 0
i32.const 24
i32.const 530
i32.const 531
i32.const 2
call $~lib/builtins/abort
unreachable
@@ -1100,9 +1103,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 (; 18 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/rt/__typeinfo (; 19 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.const 256
i32.load
@@ -1122,7 +1125,7 @@
i32.add
i32.load
)
(func $~lib/memory/memory.copy (; 19 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(func $~lib/memory/memory.copy (; 20 ;) (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
@@ -1295,7 +1298,7 @@
end
end
)
(func $~lib/rt/pure/growRoots (; 20 ;) (type $FUNCSIG$v)
(func $~lib/rt/pure/growRoots (; 21 ;) (type $FUNCSIG$v)
(local $0 i32)
(local $1 i32)
(local $2 i32)
@@ -1331,7 +1334,7 @@
i32.add
global.set $~lib/rt/pure/END
)
(func $~lib/rt/pure/appendRoot (; 21 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/rt/pure/appendRoot (; 22 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
global.get $~lib/rt/pure/CUR
local.tee $1
@@ -1350,7 +1353,7 @@
i32.add
global.set $~lib/rt/pure/CUR
)
(func $~lib/rt/pure/decrement (; 22 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/rt/pure/decrement (; 23 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
(local $2 i32)
local.get $0
@@ -1360,7 +1363,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
@@ -1368,7 +1371,7 @@
if
i32.const 0
i32.const 128
i32.const 114
i32.const 115
i32.const 13
call $~lib/builtins/abort
unreachable
@@ -1401,7 +1404,7 @@
if
i32.const 0
i32.const 128
i32.const 123
i32.const 124
i32.const 15
call $~lib/builtins/abort
unreachable
@@ -1440,7 +1443,7 @@
end
end
)
(func $~lib/rt/pure/__release (; 23 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/rt/pure/__release (; 24 ;) (type $FUNCSIG$vi) (param $0 i32)
local.get $0
i32.const 292
i32.gt_u
@@ -1451,7 +1454,7 @@
call $~lib/rt/pure/decrement
end
)
(func $start:rc/logical-and-mismatch (; 24 ;) (type $FUNCSIG$v)
(func $start:rc/logical-and-mismatch (; 25 ;) (type $FUNCSIG$v)
(local $0 i32)
call $rc/logical-and-mismatch/Ref#constructor
global.set $rc/logical-and-mismatch/gloRef
@@ -1497,10 +1500,10 @@
global.get $rc/logical-and-mismatch/gloRef
call $~lib/rt/pure/__release
)
(func $start (; 25 ;) (type $FUNCSIG$v)
(func $start (; 26 ;) (type $FUNCSIG$v)
call $start:rc/logical-and-mismatch
)
(func $~lib/rt/pure/markGray (; 26 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/rt/pure/markGray (; 27 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
local.get $0
i32.load offset=4
@@ -1524,7 +1527,7 @@
call $~lib/rt/__visit_members
end
)
(func $~lib/rt/pure/scanBlack (; 27 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/rt/pure/scanBlack (; 28 ;) (type $FUNCSIG$vi) (param $0 i32)
local.get $0
local.get $0
i32.load offset=4
@@ -1537,7 +1540,7 @@
i32.const 4
call $~lib/rt/__visit_members
)
(func $~lib/rt/pure/scan (; 28 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/rt/pure/scan (; 29 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
local.get $0
i32.load offset=4
@@ -1571,7 +1574,7 @@
end
end
)
(func $~lib/rt/pure/collectWhite (; 29 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/rt/pure/collectWhite (; 30 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
local.get $0
i32.load offset=4
@@ -1599,7 +1602,7 @@
local.get $0
call $~lib/rt/tlsf/freeBlock
)
(func $~lib/rt/pure/__visit (; 30 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/rt/pure/__visit (; 31 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
local.get $0
i32.const 292
i32.lt_u
@@ -1645,7 +1648,7 @@
if
i32.const 0
i32.const 128
i32.const 74
i32.const 75
i32.const 17
call $~lib/builtins/abort
unreachable
@@ -1678,7 +1681,7 @@
if
i32.const 0
i32.const 128
i32.const 85
i32.const 86
i32.const 6
call $~lib/builtins/abort
unreachable
@@ -1703,13 +1706,13 @@
end
i32.const 0
i32.const 128
i32.const 96
i32.const 97
i32.const 24
call $~lib/builtins/abort
unreachable
end
)
(func $~lib/rt/__visit_members (; 31 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/rt/__visit_members (; 32 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
block $switch$1$default
block $switch$1$case$4
block $switch$1$case$2
@@ -1733,7 +1736,7 @@
end
unreachable
)
(func $null (; 32 ;) (type $FUNCSIG$v)
(func $null (; 33 ;) (type $FUNCSIG$v)
nop
)
)