mirror of
https://github.com/fluencelabs/assemblyscript
synced 2025-06-22 03:01:55 +00:00
Investigate custom try-catch support
This commit is contained in:
@ -3,8 +3,8 @@
|
||||
(type $FUNCSIG$vi (func (param i32)))
|
||||
(type $FUNCSIG$viiii (func (param i32 i32 i32 i32)))
|
||||
(type $FUNCSIG$vii (func (param i32 i32)))
|
||||
(type $FUNCSIG$v (func))
|
||||
(type $FUNCSIG$iii (func (param i32 i32) (result i32)))
|
||||
(type $FUNCSIG$v (func))
|
||||
(type $FUNCSIG$viii (func (param i32 i32 i32)))
|
||||
(import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32)))
|
||||
(import "rtrace" "onincrement" (func $~lib/rt/rtrace/onincrement (param i32)))
|
||||
@ -15,10 +15,11 @@
|
||||
(data (i32.const 12) "\01\00\00\00\01")
|
||||
(data (i32.const 24) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00p\00u\00r\00e\00.\00t\00s")
|
||||
(data (i32.const 72) "\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 120) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e")
|
||||
(data (i32.const 176) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s")
|
||||
(data (i32.const 216) "(\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")
|
||||
(data (i32.const 272) "\03\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10")
|
||||
(data (i32.const 120) "(\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")
|
||||
(data (i32.const 176) "\n\00\00\00\01\00\00\00\01\00\00\00\n\00\00\00E\00r\00r\00o\00r")
|
||||
(data (i32.const 208) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e")
|
||||
(data (i32.const 264) "\04\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10")
|
||||
(global $~lib/error (mut i32) (i32.const 0))
|
||||
(global $rc/global-init/a (mut i32) (i32.const 0))
|
||||
(global $rc/global-init/b (mut i32) (i32.const 0))
|
||||
(global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0))
|
||||
@ -557,27 +558,7 @@
|
||||
local.get $1
|
||||
call $~lib/rt/rtrace/onfree
|
||||
)
|
||||
(func $~lib/rt/__typeinfo (; 10 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
local.get $0
|
||||
i32.const 272
|
||||
i32.load
|
||||
i32.gt_u
|
||||
if
|
||||
i32.const 136
|
||||
i32.const 192
|
||||
i32.const 22
|
||||
i32.const 27
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
end
|
||||
local.get $0
|
||||
i32.const 3
|
||||
i32.shl
|
||||
i32.const 276
|
||||
i32.add
|
||||
i32.load
|
||||
)
|
||||
(func $~lib/rt/tlsf/addMemory (; 11 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
|
||||
(func $~lib/rt/tlsf/addMemory (; 10 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
|
||||
(local $3 i32)
|
||||
(local $4 i32)
|
||||
local.get $2
|
||||
@ -691,7 +672,7 @@
|
||||
local.get $1
|
||||
call $~lib/rt/tlsf/insertBlock
|
||||
)
|
||||
(func $~lib/rt/tlsf/initializeRoot (; 12 ;) (type $FUNCSIG$v)
|
||||
(func $~lib/rt/tlsf/initializeRoot (; 11 ;) (type $FUNCSIG$v)
|
||||
(local $0 i32)
|
||||
(local $1 i32)
|
||||
i32.const 1
|
||||
@ -774,17 +755,16 @@
|
||||
i32.const 304
|
||||
global.set $~lib/rt/tlsf/ROOT
|
||||
)
|
||||
(func $~lib/rt/tlsf/prepareSize (; 13 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(func $~lib/rt/tlsf/prepareSize (; 12 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
local.get $0
|
||||
i32.const 1073741808
|
||||
i32.ge_u
|
||||
if
|
||||
i32.const 232
|
||||
i32.const 88
|
||||
i32.const 447
|
||||
i32.const 29
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
i32.const 136
|
||||
call $~lib/error/Error#constructor
|
||||
global.set $~lib/error
|
||||
i32.const 0
|
||||
return
|
||||
end
|
||||
local.get $0
|
||||
i32.const 15
|
||||
@ -798,7 +778,7 @@
|
||||
i32.gt_u
|
||||
select
|
||||
)
|
||||
(func $~lib/rt/tlsf/searchBlock (; 14 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
(func $~lib/rt/tlsf/searchBlock (; 13 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
(local $2 i32)
|
||||
local.get $1
|
||||
i32.const 256
|
||||
@ -929,7 +909,7 @@
|
||||
end
|
||||
end
|
||||
)
|
||||
(func $~lib/rt/tlsf/growMemory (; 15 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
|
||||
(func $~lib/rt/tlsf/growMemory (; 14 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
|
||||
(local $2 i32)
|
||||
memory.size
|
||||
local.tee $2
|
||||
@ -966,7 +946,7 @@
|
||||
i32.shl
|
||||
call $~lib/rt/tlsf/addMemory
|
||||
)
|
||||
(func $~lib/rt/tlsf/prepareBlock (; 16 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
|
||||
(func $~lib/rt/tlsf/prepareBlock (; 15 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
|
||||
(local $3 i32)
|
||||
(local $4 i32)
|
||||
local.get $1
|
||||
@ -1042,13 +1022,19 @@
|
||||
i32.store
|
||||
end
|
||||
)
|
||||
(func $~lib/rt/tlsf/allocateBlock (; 17 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
(func $~lib/rt/tlsf/allocateBlock (; 16 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
(local $2 i32)
|
||||
(local $3 i32)
|
||||
local.get $0
|
||||
local.get $1
|
||||
call $~lib/rt/tlsf/prepareSize
|
||||
local.tee $3
|
||||
local.set $3
|
||||
global.get $~lib/error
|
||||
if
|
||||
i32.const 0
|
||||
return
|
||||
end
|
||||
local.get $0
|
||||
local.get $3
|
||||
call $~lib/rt/tlsf/searchBlock
|
||||
local.tee $2
|
||||
i32.eqz
|
||||
@ -1101,27 +1087,75 @@
|
||||
call $~lib/rt/rtrace/onalloc
|
||||
local.get $2
|
||||
)
|
||||
(func $~lib/rt/tlsf/__alloc (; 18 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(local $1 i32)
|
||||
(func $~lib/rt/tlsf/__alloc (; 17 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
(local $2 i32)
|
||||
global.get $~lib/rt/tlsf/ROOT
|
||||
local.tee $1
|
||||
i32.eqz
|
||||
if
|
||||
local.tee $2
|
||||
if (result i32)
|
||||
local.get $2
|
||||
else
|
||||
call $~lib/rt/tlsf/initializeRoot
|
||||
global.get $~lib/rt/tlsf/ROOT
|
||||
local.set $1
|
||||
end
|
||||
local.get $1
|
||||
local.get $0
|
||||
call $~lib/rt/tlsf/allocateBlock
|
||||
local.tee $0
|
||||
i32.const 0
|
||||
local.set $0
|
||||
global.get $~lib/error
|
||||
if
|
||||
i32.const 0
|
||||
return
|
||||
end
|
||||
local.get $0
|
||||
local.get $1
|
||||
i32.store offset=8
|
||||
local.get $0
|
||||
i32.const 16
|
||||
i32.add
|
||||
)
|
||||
(func $~lib/memory/memory.copy (; 19 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
|
||||
(func $~lib/error/Error#constructor (; 18 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(local $1 i32)
|
||||
local.get $0
|
||||
call $~lib/rt/pure/__retain
|
||||
drop
|
||||
i32.const 12
|
||||
i32.const 3
|
||||
call $~lib/rt/tlsf/__alloc
|
||||
call $~lib/rt/pure/__retain
|
||||
local.tee $1
|
||||
i32.const 192
|
||||
call $~lib/rt/pure/__retain
|
||||
i32.store
|
||||
local.get $1
|
||||
i32.const 24
|
||||
call $~lib/rt/pure/__retain
|
||||
i32.store offset=4
|
||||
local.get $1
|
||||
local.get $0
|
||||
i32.store offset=8
|
||||
local.get $0
|
||||
call $~lib/rt/pure/__release
|
||||
local.get $1
|
||||
)
|
||||
(func $~lib/rt/__typeinfo (; 19 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
local.get $0
|
||||
i32.const 264
|
||||
i32.load
|
||||
i32.gt_u
|
||||
if
|
||||
i32.const 224
|
||||
call $~lib/error/Error#constructor
|
||||
global.set $~lib/error
|
||||
i32.const 0
|
||||
return
|
||||
end
|
||||
local.get $0
|
||||
i32.const 3
|
||||
i32.shl
|
||||
i32.const 268
|
||||
i32.add
|
||||
i32.load
|
||||
)
|
||||
(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
|
||||
@ -1296,7 +1330,7 @@
|
||||
end
|
||||
end
|
||||
)
|
||||
(func $~lib/rt/tlsf/__free (; 20 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(func $~lib/rt/tlsf/__free (; 21 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
global.get $~lib/rt/tlsf/ROOT
|
||||
i32.eqz
|
||||
if
|
||||
@ -1329,7 +1363,7 @@
|
||||
i32.sub
|
||||
call $~lib/rt/tlsf/freeBlock
|
||||
)
|
||||
(func $~lib/rt/pure/growRoots (; 21 ;) (type $FUNCSIG$v)
|
||||
(func $~lib/rt/pure/growRoots (; 22 ;) (type $FUNCSIG$v)
|
||||
(local $0 i32)
|
||||
(local $1 i32)
|
||||
(local $2 i32)
|
||||
@ -1348,8 +1382,14 @@
|
||||
i32.gt_u
|
||||
select
|
||||
local.tee $3
|
||||
i32.const 0
|
||||
call $~lib/rt/tlsf/__alloc
|
||||
local.tee $0
|
||||
local.set $0
|
||||
global.get $~lib/error
|
||||
if
|
||||
return
|
||||
end
|
||||
local.get $0
|
||||
i32.const 16
|
||||
i32.sub
|
||||
call $~lib/rt/rtrace/onfree
|
||||
@ -1377,7 +1417,7 @@
|
||||
i32.add
|
||||
global.set $~lib/rt/pure/END
|
||||
)
|
||||
(func $~lib/rt/pure/appendRoot (; 22 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(func $~lib/rt/pure/appendRoot (; 23 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(local $1 i32)
|
||||
global.get $~lib/rt/pure/CUR
|
||||
local.tee $1
|
||||
@ -1385,6 +1425,10 @@
|
||||
i32.ge_u
|
||||
if
|
||||
call $~lib/rt/pure/growRoots
|
||||
global.get $~lib/error
|
||||
if
|
||||
return
|
||||
end
|
||||
global.get $~lib/rt/pure/CUR
|
||||
local.set $1
|
||||
end
|
||||
@ -1396,9 +1440,10 @@
|
||||
i32.add
|
||||
global.set $~lib/rt/pure/CUR
|
||||
)
|
||||
(func $~lib/rt/pure/decrement (; 23 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(func $~lib/rt/pure/decrement (; 24 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(local $1 i32)
|
||||
(local $2 i32)
|
||||
(local $3 i32)
|
||||
local.get $0
|
||||
i32.load offset=4
|
||||
local.tee $2
|
||||
@ -1455,6 +1500,10 @@
|
||||
local.get $0
|
||||
i32.load offset=8
|
||||
call $~lib/rt/__typeinfo
|
||||
global.get $~lib/error
|
||||
if
|
||||
return
|
||||
end
|
||||
i32.const 16
|
||||
i32.and
|
||||
if
|
||||
@ -1486,7 +1535,7 @@
|
||||
end
|
||||
end
|
||||
)
|
||||
(func $~lib/rt/pure/__release (; 24 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(func $~lib/rt/pure/__release (; 25 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
local.get $0
|
||||
i32.const 300
|
||||
i32.gt_u
|
||||
@ -1497,7 +1546,7 @@
|
||||
call $~lib/rt/pure/decrement
|
||||
end
|
||||
)
|
||||
(func $start:rc/global-init (; 25 ;) (type $FUNCSIG$v)
|
||||
(func $start:rc/global-init (; 26 ;) (type $FUNCSIG$v)
|
||||
(local $0 i32)
|
||||
i32.const 24
|
||||
call $~lib/rt/pure/__retain
|
||||
@ -1528,10 +1577,10 @@
|
||||
i32.const 0
|
||||
global.set $rc/global-init/b
|
||||
)
|
||||
(func $start (; 26 ;) (type $FUNCSIG$v)
|
||||
(func $start (; 27 ;) (type $FUNCSIG$v)
|
||||
call $start:rc/global-init
|
||||
)
|
||||
(func $~lib/rt/pure/markGray (; 27 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(func $~lib/rt/pure/markGray (; 28 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(local $1 i32)
|
||||
local.get $0
|
||||
i32.load offset=4
|
||||
@ -1555,7 +1604,7 @@
|
||||
call $~lib/rt/__visit_members
|
||||
end
|
||||
)
|
||||
(func $~lib/rt/pure/scanBlack (; 28 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(func $~lib/rt/pure/scanBlack (; 29 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
local.get $0
|
||||
local.get $0
|
||||
i32.load offset=4
|
||||
@ -1568,7 +1617,7 @@
|
||||
i32.const 4
|
||||
call $~lib/rt/__visit_members
|
||||
)
|
||||
(func $~lib/rt/pure/scan (; 29 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(func $~lib/rt/pure/scan (; 30 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(local $1 i32)
|
||||
local.get $0
|
||||
i32.load offset=4
|
||||
@ -1602,7 +1651,7 @@
|
||||
end
|
||||
end
|
||||
)
|
||||
(func $~lib/rt/pure/collectWhite (; 30 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(func $~lib/rt/pure/collectWhite (; 31 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(local $1 i32)
|
||||
local.get $0
|
||||
i32.load offset=4
|
||||
@ -1635,7 +1684,7 @@
|
||||
call $~lib/rt/tlsf/freeBlock
|
||||
end
|
||||
)
|
||||
(func $~lib/rt/pure/__visit (; 31 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
|
||||
(func $~lib/rt/pure/__visit (; 32 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
|
||||
local.get $0
|
||||
i32.const 300
|
||||
i32.lt_u
|
||||
@ -1670,6 +1719,10 @@
|
||||
end
|
||||
local.get $0
|
||||
call $~lib/rt/pure/decrement
|
||||
global.get $~lib/error
|
||||
if
|
||||
return
|
||||
end
|
||||
br $break|0
|
||||
end
|
||||
local.get $0
|
||||
@ -1745,20 +1798,48 @@
|
||||
unreachable
|
||||
end
|
||||
)
|
||||
(func $~lib/rt/__visit_members (; 32 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
|
||||
(func $~lib/rt/__visit_members (; 33 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
|
||||
(local $2 i32)
|
||||
block $switch$1$default
|
||||
block $switch$1$case$4
|
||||
block $switch$1$case$2
|
||||
block $switch$1$case$5
|
||||
block $switch$1$case$4
|
||||
block $switch$1$case$2
|
||||
local.get $0
|
||||
i32.const 8
|
||||
i32.sub
|
||||
i32.load
|
||||
br_table $switch$1$case$2 $switch$1$case$2 $switch$1$case$4 $switch$1$case$5 $switch$1$default
|
||||
end
|
||||
return
|
||||
end
|
||||
local.get $0
|
||||
i32.load
|
||||
local.tee $0
|
||||
if
|
||||
local.get $0
|
||||
i32.const 8
|
||||
i32.sub
|
||||
i32.load
|
||||
br_table $switch$1$case$2 $switch$1$case$2 $switch$1$case$4 $switch$1$default
|
||||
local.get $1
|
||||
call $~lib/rt/pure/__visit
|
||||
end
|
||||
return
|
||||
end
|
||||
local.get $0
|
||||
i32.load
|
||||
local.tee $2
|
||||
if
|
||||
local.get $2
|
||||
local.get $1
|
||||
call $~lib/rt/pure/__visit
|
||||
end
|
||||
local.get $0
|
||||
i32.load offset=4
|
||||
local.tee $2
|
||||
if
|
||||
local.get $2
|
||||
local.get $1
|
||||
call $~lib/rt/pure/__visit
|
||||
end
|
||||
local.get $0
|
||||
i32.load offset=8
|
||||
local.tee $0
|
||||
if
|
||||
local.get $0
|
||||
@ -1769,7 +1850,7 @@
|
||||
end
|
||||
unreachable
|
||||
)
|
||||
(func $null (; 33 ;) (type $FUNCSIG$v)
|
||||
(func $null (; 34 ;) (type $FUNCSIG$v)
|
||||
nop
|
||||
)
|
||||
)
|
||||
|
@ -4,8 +4,8 @@
|
||||
(type $FUNCSIG$vi (func (param i32)))
|
||||
(type $FUNCSIG$viiii (func (param i32 i32 i32 i32)))
|
||||
(type $FUNCSIG$vii (func (param i32 i32)))
|
||||
(type $FUNCSIG$v (func))
|
||||
(type $FUNCSIG$iii (func (param i32 i32) (result i32)))
|
||||
(type $FUNCSIG$v (func))
|
||||
(type $FUNCSIG$iiii (func (param i32 i32 i32) (result i32)))
|
||||
(type $FUNCSIG$viii (func (param i32 i32 i32)))
|
||||
(import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32)))
|
||||
@ -17,12 +17,13 @@
|
||||
(data (i32.const 8) "\00\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00")
|
||||
(data (i32.const 24) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00p\00u\00r\00e\00.\00t\00s\00")
|
||||
(data (i32.const 72) "\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\00")
|
||||
(data (i32.const 120) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e\00")
|
||||
(data (i32.const 176) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00")
|
||||
(data (i32.const 216) "(\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\00")
|
||||
(data (i32.const 272) "\03\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00")
|
||||
(data (i32.const 120) "(\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\00")
|
||||
(data (i32.const 176) "\n\00\00\00\01\00\00\00\01\00\00\00\n\00\00\00E\00r\00r\00o\00r\00")
|
||||
(data (i32.const 208) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e\00")
|
||||
(data (i32.const 264) "\04\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00")
|
||||
(table $0 1 funcref)
|
||||
(elem (i32.const 0) $null)
|
||||
(global $~lib/error (mut i32) (i32.const 0))
|
||||
(global $rc/global-init/a (mut i32) (i32.const 0))
|
||||
(global $rc/global-init/b (mut i32) (i32.const 0))
|
||||
(global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0))
|
||||
@ -30,7 +31,7 @@
|
||||
(global $~lib/rt/pure/END (mut i32) (i32.const 0))
|
||||
(global $~lib/rt/pure/ROOTS (mut i32) (i32.const 0))
|
||||
(global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0))
|
||||
(global $~lib/rt/__rtti_base i32 (i32.const 272))
|
||||
(global $~lib/rt/__rtti_base i32 (i32.const 264))
|
||||
(global $~lib/heap/__heap_base i32 (i32.const 300))
|
||||
(export "memory" (memory $0))
|
||||
(start $start)
|
||||
@ -688,32 +689,7 @@
|
||||
local.get $1
|
||||
call $~lib/rt/rtrace/onfree
|
||||
)
|
||||
(func $~lib/rt/__typeinfo (; 11 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(local $1 i32)
|
||||
global.get $~lib/rt/__rtti_base
|
||||
local.set $1
|
||||
local.get $0
|
||||
local.get $1
|
||||
i32.load
|
||||
i32.gt_u
|
||||
if
|
||||
i32.const 136
|
||||
i32.const 192
|
||||
i32.const 22
|
||||
i32.const 27
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
end
|
||||
local.get $1
|
||||
i32.const 4
|
||||
i32.add
|
||||
local.get $0
|
||||
i32.const 8
|
||||
i32.mul
|
||||
i32.add
|
||||
i32.load
|
||||
)
|
||||
(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 (; 11 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
|
||||
(local $3 i32)
|
||||
(local $4 i32)
|
||||
(local $5 i32)
|
||||
@ -861,7 +837,7 @@
|
||||
call $~lib/rt/tlsf/insertBlock
|
||||
i32.const 1
|
||||
)
|
||||
(func $~lib/rt/tlsf/initializeRoot (; 13 ;) (type $FUNCSIG$v)
|
||||
(func $~lib/rt/tlsf/initializeRoot (; 12 ;) (type $FUNCSIG$v)
|
||||
(local $0 i32)
|
||||
(local $1 i32)
|
||||
(local $2 i32)
|
||||
@ -1006,19 +982,19 @@
|
||||
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 (; 13 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(local $1 i32)
|
||||
(local $2 i32)
|
||||
local.get $0
|
||||
i32.const 1073741808
|
||||
i32.ge_u
|
||||
if
|
||||
i32.const 232
|
||||
i32.const 88
|
||||
i32.const 447
|
||||
i32.const 29
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
i32.const 0
|
||||
i32.const 136
|
||||
call $~lib/error/Error#constructor
|
||||
global.set $~lib/error
|
||||
i32.const 0
|
||||
return
|
||||
end
|
||||
local.get $0
|
||||
i32.const 15
|
||||
@ -1035,7 +1011,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 (; 14 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
(local $2 i32)
|
||||
(local $3 i32)
|
||||
(local $4 i32)
|
||||
@ -1218,7 +1194,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 (; 15 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
|
||||
(local $2 i32)
|
||||
(local $3 i32)
|
||||
(local $4 i32)
|
||||
@ -1271,7 +1247,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 (; 16 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
|
||||
(local $3 i32)
|
||||
(local $4 i32)
|
||||
(local $5 i32)
|
||||
@ -1366,27 +1342,35 @@
|
||||
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 (; 17 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
(local $2 i32)
|
||||
(local $3 i32)
|
||||
(local $4 i32)
|
||||
local.get $1
|
||||
call $~lib/rt/tlsf/prepareSize
|
||||
local.set $2
|
||||
local.get $0
|
||||
global.get $~lib/error
|
||||
if
|
||||
i32.const 0
|
||||
return
|
||||
end
|
||||
local.get $2
|
||||
call $~lib/rt/tlsf/searchBlock
|
||||
local.set $3
|
||||
local.get $0
|
||||
local.get $3
|
||||
call $~lib/rt/tlsf/searchBlock
|
||||
local.set $4
|
||||
local.get $4
|
||||
i32.eqz
|
||||
if
|
||||
local.get $0
|
||||
local.get $2
|
||||
local.get $3
|
||||
call $~lib/rt/tlsf/growMemory
|
||||
local.get $0
|
||||
local.get $2
|
||||
call $~lib/rt/tlsf/searchBlock
|
||||
local.set $3
|
||||
local.get $3
|
||||
call $~lib/rt/tlsf/searchBlock
|
||||
local.set $4
|
||||
local.get $4
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
@ -1397,13 +1381,13 @@
|
||||
unreachable
|
||||
end
|
||||
end
|
||||
local.get $3
|
||||
local.get $4
|
||||
i32.load
|
||||
i32.const 3
|
||||
i32.const -1
|
||||
i32.xor
|
||||
i32.and
|
||||
local.get $2
|
||||
local.get $3
|
||||
i32.ge_u
|
||||
i32.eqz
|
||||
if
|
||||
@ -1414,26 +1398,27 @@
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
end
|
||||
local.get $3
|
||||
local.get $4
|
||||
i32.const 0
|
||||
i32.store offset=4
|
||||
local.get $3
|
||||
local.get $4
|
||||
local.get $1
|
||||
i32.store offset=12
|
||||
local.get $0
|
||||
local.get $3
|
||||
local.get $4
|
||||
call $~lib/rt/tlsf/removeBlock
|
||||
local.get $0
|
||||
local.get $4
|
||||
local.get $3
|
||||
local.get $2
|
||||
call $~lib/rt/tlsf/prepareBlock
|
||||
local.get $3
|
||||
local.get $4
|
||||
call $~lib/rt/rtrace/onalloc
|
||||
local.get $3
|
||||
local.get $4
|
||||
)
|
||||
(func $~lib/rt/tlsf/__alloc (; 19 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
(func $~lib/rt/tlsf/__alloc (; 18 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
(local $2 i32)
|
||||
(local $3 i32)
|
||||
(local $4 i32)
|
||||
global.get $~lib/rt/tlsf/ROOT
|
||||
local.set $2
|
||||
local.get $2
|
||||
@ -1447,14 +1432,74 @@
|
||||
local.get $0
|
||||
call $~lib/rt/tlsf/allocateBlock
|
||||
local.set $3
|
||||
global.get $~lib/error
|
||||
if
|
||||
i32.const 0
|
||||
return
|
||||
end
|
||||
local.get $3
|
||||
local.set $4
|
||||
local.get $4
|
||||
local.get $1
|
||||
i32.store offset=8
|
||||
local.get $3
|
||||
local.get $4
|
||||
i32.const 16
|
||||
i32.add
|
||||
)
|
||||
(func $~lib/util/memory/memcpy (; 20 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
|
||||
(func $~lib/error/Error#constructor (; 19 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
local.get $1
|
||||
call $~lib/rt/pure/__retain
|
||||
drop
|
||||
local.get $0
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 12
|
||||
i32.const 3
|
||||
call $~lib/rt/tlsf/__alloc
|
||||
call $~lib/rt/pure/__retain
|
||||
local.set $0
|
||||
end
|
||||
local.get $0
|
||||
i32.const 192
|
||||
call $~lib/rt/pure/__retain
|
||||
i32.store
|
||||
local.get $0
|
||||
i32.const 24
|
||||
call $~lib/rt/pure/__retain
|
||||
i32.store offset=4
|
||||
local.get $0
|
||||
local.get $1
|
||||
i32.store offset=8
|
||||
local.get $1
|
||||
call $~lib/rt/pure/__release
|
||||
local.get $0
|
||||
)
|
||||
(func $~lib/rt/__typeinfo (; 20 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(local $1 i32)
|
||||
global.get $~lib/rt/__rtti_base
|
||||
local.set $1
|
||||
local.get $0
|
||||
local.get $1
|
||||
i32.load
|
||||
i32.gt_u
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 224
|
||||
call $~lib/error/Error#constructor
|
||||
global.set $~lib/error
|
||||
i32.const 0
|
||||
return
|
||||
end
|
||||
local.get $1
|
||||
i32.const 4
|
||||
i32.add
|
||||
local.get $0
|
||||
i32.const 8
|
||||
i32.mul
|
||||
i32.add
|
||||
i32.load
|
||||
)
|
||||
(func $~lib/util/memory/memcpy (; 21 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
|
||||
(local $3 i32)
|
||||
(local $4 i32)
|
||||
(local $5 i32)
|
||||
@ -2482,7 +2527,7 @@
|
||||
i32.store8
|
||||
end
|
||||
)
|
||||
(func $~lib/memory/memory.copy (; 21 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
|
||||
(func $~lib/memory/memory.copy (; 22 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
|
||||
(local $3 i32)
|
||||
(local $4 i32)
|
||||
(local $5 i32)
|
||||
@ -2707,7 +2752,7 @@
|
||||
end
|
||||
end
|
||||
)
|
||||
(func $~lib/rt/tlsf/__free (; 22 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(func $~lib/rt/tlsf/__free (; 23 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
global.get $~lib/rt/tlsf/ROOT
|
||||
i32.eqz
|
||||
if
|
||||
@ -2744,7 +2789,7 @@
|
||||
i32.sub
|
||||
call $~lib/rt/tlsf/freeBlock
|
||||
)
|
||||
(func $~lib/rt/pure/growRoots (; 23 ;) (type $FUNCSIG$v)
|
||||
(func $~lib/rt/pure/growRoots (; 24 ;) (type $FUNCSIG$v)
|
||||
(local $0 i32)
|
||||
(local $1 i32)
|
||||
(local $2 i32)
|
||||
@ -2773,6 +2818,12 @@
|
||||
local.get $4
|
||||
i32.const 0
|
||||
call $~lib/rt/tlsf/__alloc
|
||||
local.set $2
|
||||
global.get $~lib/error
|
||||
if
|
||||
return
|
||||
end
|
||||
local.get $2
|
||||
local.set $5
|
||||
local.get $5
|
||||
i32.const 16
|
||||
@ -2802,7 +2853,7 @@
|
||||
i32.add
|
||||
global.set $~lib/rt/pure/END
|
||||
)
|
||||
(func $~lib/rt/pure/appendRoot (; 24 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(func $~lib/rt/pure/appendRoot (; 25 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(local $1 i32)
|
||||
global.get $~lib/rt/pure/CUR
|
||||
local.set $1
|
||||
@ -2811,6 +2862,10 @@
|
||||
i32.ge_u
|
||||
if
|
||||
call $~lib/rt/pure/growRoots
|
||||
global.get $~lib/error
|
||||
if
|
||||
return
|
||||
end
|
||||
global.get $~lib/rt/pure/CUR
|
||||
local.set $1
|
||||
end
|
||||
@ -2822,9 +2877,10 @@
|
||||
i32.add
|
||||
global.set $~lib/rt/pure/CUR
|
||||
)
|
||||
(func $~lib/rt/pure/decrement (; 25 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(func $~lib/rt/pure/decrement (; 26 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(local $1 i32)
|
||||
(local $2 i32)
|
||||
(local $3 i32)
|
||||
local.get $0
|
||||
i32.load offset=4
|
||||
local.set $1
|
||||
@ -2890,6 +2946,12 @@
|
||||
local.get $0
|
||||
i32.load offset=8
|
||||
call $~lib/rt/__typeinfo
|
||||
local.set $3
|
||||
global.get $~lib/error
|
||||
if
|
||||
return
|
||||
end
|
||||
local.get $3
|
||||
i32.const 16
|
||||
i32.and
|
||||
i32.eqz
|
||||
@ -2910,6 +2972,10 @@
|
||||
if
|
||||
local.get $0
|
||||
call $~lib/rt/pure/appendRoot
|
||||
global.get $~lib/error
|
||||
if
|
||||
return
|
||||
end
|
||||
end
|
||||
else
|
||||
local.get $0
|
||||
@ -2926,7 +2992,7 @@
|
||||
end
|
||||
end
|
||||
)
|
||||
(func $~lib/rt/pure/__release (; 26 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(func $~lib/rt/pure/__release (; 27 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
local.get $0
|
||||
global.get $~lib/heap/__heap_base
|
||||
i32.gt_u
|
||||
@ -2935,9 +3001,13 @@
|
||||
i32.const 16
|
||||
i32.sub
|
||||
call $~lib/rt/pure/decrement
|
||||
global.get $~lib/error
|
||||
if
|
||||
return
|
||||
end
|
||||
end
|
||||
)
|
||||
(func $start:rc/global-init (; 27 ;) (type $FUNCSIG$v)
|
||||
(func $start:rc/global-init (; 28 ;) (type $FUNCSIG$v)
|
||||
(local $0 i32)
|
||||
(local $1 i32)
|
||||
call $rc/global-init/getRef
|
||||
@ -2973,10 +3043,10 @@
|
||||
local.get $1
|
||||
global.set $rc/global-init/b
|
||||
)
|
||||
(func $start (; 28 ;) (type $FUNCSIG$v)
|
||||
(func $start (; 29 ;) (type $FUNCSIG$v)
|
||||
call $start:rc/global-init
|
||||
)
|
||||
(func $~lib/rt/pure/markGray (; 29 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(func $~lib/rt/pure/markGray (; 30 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(local $1 i32)
|
||||
local.get $0
|
||||
i32.load offset=4
|
||||
@ -3003,7 +3073,7 @@
|
||||
call $~lib/rt/__visit_members
|
||||
end
|
||||
)
|
||||
(func $~lib/rt/pure/scanBlack (; 30 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(func $~lib/rt/pure/scanBlack (; 31 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
local.get $0
|
||||
local.get $0
|
||||
i32.load offset=4
|
||||
@ -3020,7 +3090,7 @@
|
||||
i32.const 4
|
||||
call $~lib/rt/__visit_members
|
||||
)
|
||||
(func $~lib/rt/pure/scan (; 31 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(func $~lib/rt/pure/scan (; 32 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(local $1 i32)
|
||||
local.get $0
|
||||
i32.load offset=4
|
||||
@ -3057,7 +3127,7 @@
|
||||
end
|
||||
end
|
||||
)
|
||||
(func $~lib/rt/pure/collectWhite (; 32 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(func $~lib/rt/pure/collectWhite (; 33 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(local $1 i32)
|
||||
local.get $0
|
||||
i32.load offset=4
|
||||
@ -3095,7 +3165,7 @@
|
||||
call $~lib/rt/tlsf/freeBlock
|
||||
end
|
||||
)
|
||||
(func $~lib/rt/pure/__visit (; 33 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
|
||||
(func $~lib/rt/pure/__visit (; 34 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
|
||||
(local $2 i32)
|
||||
(local $3 i32)
|
||||
local.get $0
|
||||
@ -3141,6 +3211,10 @@
|
||||
end
|
||||
local.get $2
|
||||
call $~lib/rt/pure/decrement
|
||||
global.get $~lib/error
|
||||
if
|
||||
return
|
||||
end
|
||||
br $break|0
|
||||
end
|
||||
local.get $2
|
||||
@ -3229,16 +3303,27 @@
|
||||
end
|
||||
end
|
||||
)
|
||||
(func $~lib/rt/__visit_members (; 34 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
|
||||
(func $~lib/rt/__visit_members (; 35 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
|
||||
(local $2 i32)
|
||||
block $switch$1$default
|
||||
block $switch$1$case$4
|
||||
block $switch$1$case$2
|
||||
local.get $0
|
||||
i32.const 8
|
||||
i32.sub
|
||||
i32.load
|
||||
br_table $switch$1$case$2 $switch$1$case$2 $switch$1$case$4 $switch$1$default
|
||||
block $switch$1$case$5
|
||||
block $switch$1$case$4
|
||||
block $switch$1$case$2
|
||||
local.get $0
|
||||
i32.const 8
|
||||
i32.sub
|
||||
i32.load
|
||||
br_table $switch$1$case$2 $switch$1$case$2 $switch$1$case$4 $switch$1$case$5 $switch$1$default
|
||||
end
|
||||
return
|
||||
end
|
||||
local.get $0
|
||||
i32.load
|
||||
local.tee $2
|
||||
if
|
||||
local.get $2
|
||||
local.get $1
|
||||
call $~lib/rt/pure/__visit
|
||||
end
|
||||
return
|
||||
end
|
||||
@ -3250,10 +3335,26 @@
|
||||
local.get $1
|
||||
call $~lib/rt/pure/__visit
|
||||
end
|
||||
local.get $0
|
||||
i32.load offset=4
|
||||
local.tee $2
|
||||
if
|
||||
local.get $2
|
||||
local.get $1
|
||||
call $~lib/rt/pure/__visit
|
||||
end
|
||||
local.get $0
|
||||
i32.load offset=8
|
||||
local.tee $2
|
||||
if
|
||||
local.get $2
|
||||
local.get $1
|
||||
call $~lib/rt/pure/__visit
|
||||
end
|
||||
return
|
||||
end
|
||||
unreachable
|
||||
)
|
||||
(func $null (; 35 ;) (type $FUNCSIG$v)
|
||||
(func $null (; 36 ;) (type $FUNCSIG$v)
|
||||
)
|
||||
)
|
||||
|
@ -3,8 +3,8 @@
|
||||
(type $FUNCSIG$vi (func (param i32)))
|
||||
(type $FUNCSIG$viiii (func (param i32 i32 i32 i32)))
|
||||
(type $FUNCSIG$vii (func (param i32 i32)))
|
||||
(type $FUNCSIG$v (func))
|
||||
(type $FUNCSIG$iii (func (param i32 i32) (result i32)))
|
||||
(type $FUNCSIG$v (func))
|
||||
(type $FUNCSIG$viii (func (param i32 i32 i32)))
|
||||
(import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32)))
|
||||
(import "rtrace" "onincrement" (func $~lib/rt/rtrace/onincrement (param i32)))
|
||||
@ -15,10 +15,11 @@
|
||||
(data (i32.const 12) "\01\00\00\00\01")
|
||||
(data (i32.const 24) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00p\00u\00r\00e\00.\00t\00s")
|
||||
(data (i32.const 72) "\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 120) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e")
|
||||
(data (i32.const 176) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s")
|
||||
(data (i32.const 216) "(\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")
|
||||
(data (i32.const 272) "\04\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10")
|
||||
(data (i32.const 120) "(\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")
|
||||
(data (i32.const 176) "\n\00\00\00\01\00\00\00\01\00\00\00\n\00\00\00E\00r\00r\00o\00r")
|
||||
(data (i32.const 208) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e")
|
||||
(data (i32.const 264) "\05\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10")
|
||||
(global $~lib/error (mut i32) (i32.const 0))
|
||||
(global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0))
|
||||
(global $~lib/rt/pure/CUR (mut i32) (i32.const 0))
|
||||
(global $~lib/rt/pure/END (mut i32) (i32.const 0))
|
||||
@ -555,27 +556,7 @@
|
||||
local.get $1
|
||||
call $~lib/rt/rtrace/onfree
|
||||
)
|
||||
(func $~lib/rt/__typeinfo (; 10 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
local.get $0
|
||||
i32.const 272
|
||||
i32.load
|
||||
i32.gt_u
|
||||
if
|
||||
i32.const 136
|
||||
i32.const 192
|
||||
i32.const 22
|
||||
i32.const 27
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
end
|
||||
local.get $0
|
||||
i32.const 3
|
||||
i32.shl
|
||||
i32.const 276
|
||||
i32.add
|
||||
i32.load
|
||||
)
|
||||
(func $~lib/rt/tlsf/addMemory (; 11 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
|
||||
(func $~lib/rt/tlsf/addMemory (; 10 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
|
||||
(local $3 i32)
|
||||
(local $4 i32)
|
||||
local.get $2
|
||||
@ -689,7 +670,7 @@
|
||||
local.get $1
|
||||
call $~lib/rt/tlsf/insertBlock
|
||||
)
|
||||
(func $~lib/rt/tlsf/initializeRoot (; 12 ;) (type $FUNCSIG$v)
|
||||
(func $~lib/rt/tlsf/initializeRoot (; 11 ;) (type $FUNCSIG$v)
|
||||
(local $0 i32)
|
||||
(local $1 i32)
|
||||
i32.const 1
|
||||
@ -772,17 +753,16 @@
|
||||
i32.const 320
|
||||
global.set $~lib/rt/tlsf/ROOT
|
||||
)
|
||||
(func $~lib/rt/tlsf/prepareSize (; 13 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(func $~lib/rt/tlsf/prepareSize (; 12 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
local.get $0
|
||||
i32.const 1073741808
|
||||
i32.ge_u
|
||||
if
|
||||
i32.const 232
|
||||
i32.const 88
|
||||
i32.const 447
|
||||
i32.const 29
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
i32.const 136
|
||||
call $~lib/error/Error#constructor
|
||||
global.set $~lib/error
|
||||
i32.const 0
|
||||
return
|
||||
end
|
||||
local.get $0
|
||||
i32.const 15
|
||||
@ -796,7 +776,7 @@
|
||||
i32.gt_u
|
||||
select
|
||||
)
|
||||
(func $~lib/rt/tlsf/searchBlock (; 14 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
(func $~lib/rt/tlsf/searchBlock (; 13 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
(local $2 i32)
|
||||
local.get $1
|
||||
i32.const 256
|
||||
@ -927,7 +907,7 @@
|
||||
end
|
||||
end
|
||||
)
|
||||
(func $~lib/rt/tlsf/growMemory (; 15 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
|
||||
(func $~lib/rt/tlsf/growMemory (; 14 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
|
||||
(local $2 i32)
|
||||
memory.size
|
||||
local.tee $2
|
||||
@ -964,7 +944,7 @@
|
||||
i32.shl
|
||||
call $~lib/rt/tlsf/addMemory
|
||||
)
|
||||
(func $~lib/rt/tlsf/prepareBlock (; 16 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
|
||||
(func $~lib/rt/tlsf/prepareBlock (; 15 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
|
||||
(local $3 i32)
|
||||
(local $4 i32)
|
||||
local.get $1
|
||||
@ -1040,13 +1020,19 @@
|
||||
i32.store
|
||||
end
|
||||
)
|
||||
(func $~lib/rt/tlsf/allocateBlock (; 17 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
(func $~lib/rt/tlsf/allocateBlock (; 16 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
(local $2 i32)
|
||||
(local $3 i32)
|
||||
local.get $0
|
||||
local.get $1
|
||||
call $~lib/rt/tlsf/prepareSize
|
||||
local.tee $3
|
||||
local.set $3
|
||||
global.get $~lib/error
|
||||
if
|
||||
i32.const 0
|
||||
return
|
||||
end
|
||||
local.get $0
|
||||
local.get $3
|
||||
call $~lib/rt/tlsf/searchBlock
|
||||
local.tee $2
|
||||
i32.eqz
|
||||
@ -1099,7 +1085,7 @@
|
||||
call $~lib/rt/rtrace/onalloc
|
||||
local.get $2
|
||||
)
|
||||
(func $~lib/rt/tlsf/__alloc (; 18 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
(func $~lib/rt/tlsf/__alloc (; 17 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
(local $2 i32)
|
||||
global.get $~lib/rt/tlsf/ROOT
|
||||
local.tee $2
|
||||
@ -1111,14 +1097,63 @@
|
||||
end
|
||||
local.get $0
|
||||
call $~lib/rt/tlsf/allocateBlock
|
||||
local.tee $0
|
||||
local.set $0
|
||||
global.get $~lib/error
|
||||
if
|
||||
i32.const 0
|
||||
return
|
||||
end
|
||||
local.get $0
|
||||
local.get $1
|
||||
i32.store offset=8
|
||||
local.get $0
|
||||
i32.const 16
|
||||
i32.add
|
||||
)
|
||||
(func $~lib/memory/memory.copy (; 19 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
|
||||
(func $~lib/error/Error#constructor (; 18 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(local $1 i32)
|
||||
local.get $0
|
||||
call $~lib/rt/pure/__retain
|
||||
drop
|
||||
i32.const 12
|
||||
i32.const 3
|
||||
call $~lib/rt/tlsf/__alloc
|
||||
call $~lib/rt/pure/__retain
|
||||
local.tee $1
|
||||
i32.const 192
|
||||
call $~lib/rt/pure/__retain
|
||||
i32.store
|
||||
local.get $1
|
||||
i32.const 24
|
||||
call $~lib/rt/pure/__retain
|
||||
i32.store offset=4
|
||||
local.get $1
|
||||
local.get $0
|
||||
i32.store offset=8
|
||||
local.get $0
|
||||
call $~lib/rt/pure/__release
|
||||
local.get $1
|
||||
)
|
||||
(func $~lib/rt/__typeinfo (; 19 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
local.get $0
|
||||
i32.const 264
|
||||
i32.load
|
||||
i32.gt_u
|
||||
if
|
||||
i32.const 224
|
||||
call $~lib/error/Error#constructor
|
||||
global.set $~lib/error
|
||||
i32.const 0
|
||||
return
|
||||
end
|
||||
local.get $0
|
||||
i32.const 3
|
||||
i32.shl
|
||||
i32.const 268
|
||||
i32.add
|
||||
i32.load
|
||||
)
|
||||
(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
|
||||
@ -1293,7 +1328,7 @@
|
||||
end
|
||||
end
|
||||
)
|
||||
(func $~lib/rt/tlsf/__free (; 20 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(func $~lib/rt/tlsf/__free (; 21 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
global.get $~lib/rt/tlsf/ROOT
|
||||
i32.eqz
|
||||
if
|
||||
@ -1326,7 +1361,7 @@
|
||||
i32.sub
|
||||
call $~lib/rt/tlsf/freeBlock
|
||||
)
|
||||
(func $~lib/rt/pure/growRoots (; 21 ;) (type $FUNCSIG$v)
|
||||
(func $~lib/rt/pure/growRoots (; 22 ;) (type $FUNCSIG$v)
|
||||
(local $0 i32)
|
||||
(local $1 i32)
|
||||
(local $2 i32)
|
||||
@ -1347,7 +1382,12 @@
|
||||
local.tee $3
|
||||
i32.const 0
|
||||
call $~lib/rt/tlsf/__alloc
|
||||
local.tee $0
|
||||
local.set $0
|
||||
global.get $~lib/error
|
||||
if
|
||||
return
|
||||
end
|
||||
local.get $0
|
||||
i32.const 16
|
||||
i32.sub
|
||||
call $~lib/rt/rtrace/onfree
|
||||
@ -1375,7 +1415,7 @@
|
||||
i32.add
|
||||
global.set $~lib/rt/pure/END
|
||||
)
|
||||
(func $~lib/rt/pure/appendRoot (; 22 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(func $~lib/rt/pure/appendRoot (; 23 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(local $1 i32)
|
||||
global.get $~lib/rt/pure/CUR
|
||||
local.tee $1
|
||||
@ -1383,6 +1423,10 @@
|
||||
i32.ge_u
|
||||
if
|
||||
call $~lib/rt/pure/growRoots
|
||||
global.get $~lib/error
|
||||
if
|
||||
return
|
||||
end
|
||||
global.get $~lib/rt/pure/CUR
|
||||
local.set $1
|
||||
end
|
||||
@ -1394,9 +1438,10 @@
|
||||
i32.add
|
||||
global.set $~lib/rt/pure/CUR
|
||||
)
|
||||
(func $~lib/rt/pure/decrement (; 23 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(func $~lib/rt/pure/decrement (; 24 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(local $1 i32)
|
||||
(local $2 i32)
|
||||
(local $3 i32)
|
||||
local.get $0
|
||||
i32.load offset=4
|
||||
local.tee $2
|
||||
@ -1453,6 +1498,10 @@
|
||||
local.get $0
|
||||
i32.load offset=8
|
||||
call $~lib/rt/__typeinfo
|
||||
global.get $~lib/error
|
||||
if
|
||||
return
|
||||
end
|
||||
i32.const 16
|
||||
i32.and
|
||||
if
|
||||
@ -1484,7 +1533,7 @@
|
||||
end
|
||||
end
|
||||
)
|
||||
(func $~lib/rt/pure/__release (; 24 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(func $~lib/rt/pure/__release (; 25 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
local.get $0
|
||||
i32.const 308
|
||||
i32.gt_u
|
||||
@ -1495,7 +1544,7 @@
|
||||
call $~lib/rt/pure/decrement
|
||||
end
|
||||
)
|
||||
(func $start (; 25 ;) (type $FUNCSIG$v)
|
||||
(func $start (; 26 ;) (type $FUNCSIG$v)
|
||||
i32.const 24
|
||||
call $~lib/rt/pure/__retain
|
||||
call $~lib/rt/pure/__release
|
||||
@ -1503,12 +1552,12 @@
|
||||
call $~lib/rt/pure/__retain
|
||||
call $~lib/rt/pure/__release
|
||||
i32.const 0
|
||||
i32.const 3
|
||||
i32.const 4
|
||||
call $~lib/rt/tlsf/__alloc
|
||||
call $~lib/rt/pure/__retain
|
||||
call $~lib/rt/pure/__release
|
||||
)
|
||||
(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
|
||||
@ -1532,7 +1581,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
|
||||
@ -1545,7 +1594,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
|
||||
@ -1579,7 +1628,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
|
||||
@ -1612,7 +1661,7 @@
|
||||
call $~lib/rt/tlsf/freeBlock
|
||||
end
|
||||
)
|
||||
(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 308
|
||||
i32.lt_u
|
||||
@ -1647,6 +1696,10 @@
|
||||
end
|
||||
local.get $0
|
||||
call $~lib/rt/pure/decrement
|
||||
global.get $~lib/error
|
||||
if
|
||||
return
|
||||
end
|
||||
br $break|0
|
||||
end
|
||||
local.get $0
|
||||
@ -1722,20 +1775,48 @@
|
||||
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)
|
||||
(local $2 i32)
|
||||
block $switch$1$default
|
||||
block $switch$1$case$4
|
||||
block $switch$1$case$2
|
||||
block $switch$1$case$5
|
||||
block $switch$1$case$4
|
||||
block $switch$1$case$2
|
||||
local.get $0
|
||||
i32.const 8
|
||||
i32.sub
|
||||
i32.load
|
||||
br_table $switch$1$case$2 $switch$1$case$2 $switch$1$case$4 $switch$1$case$5 $switch$1$case$2 $switch$1$default
|
||||
end
|
||||
return
|
||||
end
|
||||
local.get $0
|
||||
i32.load
|
||||
local.tee $0
|
||||
if
|
||||
local.get $0
|
||||
i32.const 8
|
||||
i32.sub
|
||||
i32.load
|
||||
br_table $switch$1$case$2 $switch$1$case$2 $switch$1$case$4 $switch$1$case$2 $switch$1$default
|
||||
local.get $1
|
||||
call $~lib/rt/pure/__visit
|
||||
end
|
||||
return
|
||||
end
|
||||
local.get $0
|
||||
i32.load
|
||||
local.tee $2
|
||||
if
|
||||
local.get $2
|
||||
local.get $1
|
||||
call $~lib/rt/pure/__visit
|
||||
end
|
||||
local.get $0
|
||||
i32.load offset=4
|
||||
local.tee $2
|
||||
if
|
||||
local.get $2
|
||||
local.get $1
|
||||
call $~lib/rt/pure/__visit
|
||||
end
|
||||
local.get $0
|
||||
i32.load offset=8
|
||||
local.tee $0
|
||||
if
|
||||
local.get $0
|
||||
@ -1746,7 +1827,7 @@
|
||||
end
|
||||
unreachable
|
||||
)
|
||||
(func $null (; 32 ;) (type $FUNCSIG$v)
|
||||
(func $null (; 33 ;) (type $FUNCSIG$v)
|
||||
nop
|
||||
)
|
||||
)
|
||||
|
@ -3,8 +3,8 @@
|
||||
(type $FUNCSIG$vi (func (param i32)))
|
||||
(type $FUNCSIG$viiii (func (param i32 i32 i32 i32)))
|
||||
(type $FUNCSIG$vii (func (param i32 i32)))
|
||||
(type $FUNCSIG$v (func))
|
||||
(type $FUNCSIG$iii (func (param i32 i32) (result i32)))
|
||||
(type $FUNCSIG$v (func))
|
||||
(type $FUNCSIG$iiii (func (param i32 i32 i32) (result i32)))
|
||||
(type $FUNCSIG$viii (func (param i32 i32 i32)))
|
||||
(type $FUNCSIG$i (func (result i32)))
|
||||
@ -17,18 +17,19 @@
|
||||
(data (i32.const 8) "\00\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00")
|
||||
(data (i32.const 24) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00p\00u\00r\00e\00.\00t\00s\00")
|
||||
(data (i32.const 72) "\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\00")
|
||||
(data (i32.const 120) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e\00")
|
||||
(data (i32.const 176) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00")
|
||||
(data (i32.const 216) "(\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\00")
|
||||
(data (i32.const 272) "\04\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00")
|
||||
(data (i32.const 120) "(\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\00")
|
||||
(data (i32.const 176) "\n\00\00\00\01\00\00\00\01\00\00\00\n\00\00\00E\00r\00r\00o\00r\00")
|
||||
(data (i32.const 208) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e\00")
|
||||
(data (i32.const 264) "\05\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00")
|
||||
(table $0 1 funcref)
|
||||
(elem (i32.const 0) $null)
|
||||
(global $~lib/error (mut i32) (i32.const 0))
|
||||
(global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0))
|
||||
(global $~lib/rt/pure/CUR (mut i32) (i32.const 0))
|
||||
(global $~lib/rt/pure/END (mut i32) (i32.const 0))
|
||||
(global $~lib/rt/pure/ROOTS (mut i32) (i32.const 0))
|
||||
(global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0))
|
||||
(global $~lib/rt/__rtti_base i32 (i32.const 272))
|
||||
(global $~lib/rt/__rtti_base i32 (i32.const 264))
|
||||
(global $~lib/heap/__heap_base i32 (i32.const 308))
|
||||
(export "memory" (memory $0))
|
||||
(start $start)
|
||||
@ -682,32 +683,7 @@
|
||||
local.get $1
|
||||
call $~lib/rt/rtrace/onfree
|
||||
)
|
||||
(func $~lib/rt/__typeinfo (; 10 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(local $1 i32)
|
||||
global.get $~lib/rt/__rtti_base
|
||||
local.set $1
|
||||
local.get $0
|
||||
local.get $1
|
||||
i32.load
|
||||
i32.gt_u
|
||||
if
|
||||
i32.const 136
|
||||
i32.const 192
|
||||
i32.const 22
|
||||
i32.const 27
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
end
|
||||
local.get $1
|
||||
i32.const 4
|
||||
i32.add
|
||||
local.get $0
|
||||
i32.const 8
|
||||
i32.mul
|
||||
i32.add
|
||||
i32.load
|
||||
)
|
||||
(func $~lib/rt/tlsf/addMemory (; 11 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
|
||||
(func $~lib/rt/tlsf/addMemory (; 10 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
|
||||
(local $3 i32)
|
||||
(local $4 i32)
|
||||
(local $5 i32)
|
||||
@ -855,7 +831,7 @@
|
||||
call $~lib/rt/tlsf/insertBlock
|
||||
i32.const 1
|
||||
)
|
||||
(func $~lib/rt/tlsf/initializeRoot (; 12 ;) (type $FUNCSIG$v)
|
||||
(func $~lib/rt/tlsf/initializeRoot (; 11 ;) (type $FUNCSIG$v)
|
||||
(local $0 i32)
|
||||
(local $1 i32)
|
||||
(local $2 i32)
|
||||
@ -1000,19 +976,19 @@
|
||||
local.get $3
|
||||
global.set $~lib/rt/tlsf/ROOT
|
||||
)
|
||||
(func $~lib/rt/tlsf/prepareSize (; 13 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(func $~lib/rt/tlsf/prepareSize (; 12 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(local $1 i32)
|
||||
(local $2 i32)
|
||||
local.get $0
|
||||
i32.const 1073741808
|
||||
i32.ge_u
|
||||
if
|
||||
i32.const 232
|
||||
i32.const 88
|
||||
i32.const 447
|
||||
i32.const 29
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
i32.const 0
|
||||
i32.const 136
|
||||
call $~lib/error/Error#constructor
|
||||
global.set $~lib/error
|
||||
i32.const 0
|
||||
return
|
||||
end
|
||||
local.get $0
|
||||
i32.const 15
|
||||
@ -1029,7 +1005,7 @@
|
||||
i32.gt_u
|
||||
select
|
||||
)
|
||||
(func $~lib/rt/tlsf/searchBlock (; 14 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
(func $~lib/rt/tlsf/searchBlock (; 13 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
(local $2 i32)
|
||||
(local $3 i32)
|
||||
(local $4 i32)
|
||||
@ -1212,7 +1188,7 @@
|
||||
end
|
||||
local.get $7
|
||||
)
|
||||
(func $~lib/rt/tlsf/growMemory (; 15 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
|
||||
(func $~lib/rt/tlsf/growMemory (; 14 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
|
||||
(local $2 i32)
|
||||
(local $3 i32)
|
||||
(local $4 i32)
|
||||
@ -1265,7 +1241,7 @@
|
||||
call $~lib/rt/tlsf/addMemory
|
||||
drop
|
||||
)
|
||||
(func $~lib/rt/tlsf/prepareBlock (; 16 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
|
||||
(func $~lib/rt/tlsf/prepareBlock (; 15 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
|
||||
(local $3 i32)
|
||||
(local $4 i32)
|
||||
(local $5 i32)
|
||||
@ -1360,27 +1336,35 @@
|
||||
i32.store
|
||||
end
|
||||
)
|
||||
(func $~lib/rt/tlsf/allocateBlock (; 17 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
(func $~lib/rt/tlsf/allocateBlock (; 16 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
(local $2 i32)
|
||||
(local $3 i32)
|
||||
(local $4 i32)
|
||||
local.get $1
|
||||
call $~lib/rt/tlsf/prepareSize
|
||||
local.set $2
|
||||
local.get $0
|
||||
global.get $~lib/error
|
||||
if
|
||||
i32.const 0
|
||||
return
|
||||
end
|
||||
local.get $2
|
||||
call $~lib/rt/tlsf/searchBlock
|
||||
local.set $3
|
||||
local.get $0
|
||||
local.get $3
|
||||
call $~lib/rt/tlsf/searchBlock
|
||||
local.set $4
|
||||
local.get $4
|
||||
i32.eqz
|
||||
if
|
||||
local.get $0
|
||||
local.get $2
|
||||
local.get $3
|
||||
call $~lib/rt/tlsf/growMemory
|
||||
local.get $0
|
||||
local.get $2
|
||||
call $~lib/rt/tlsf/searchBlock
|
||||
local.set $3
|
||||
local.get $3
|
||||
call $~lib/rt/tlsf/searchBlock
|
||||
local.set $4
|
||||
local.get $4
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
@ -1391,13 +1375,13 @@
|
||||
unreachable
|
||||
end
|
||||
end
|
||||
local.get $3
|
||||
local.get $4
|
||||
i32.load
|
||||
i32.const 3
|
||||
i32.const -1
|
||||
i32.xor
|
||||
i32.and
|
||||
local.get $2
|
||||
local.get $3
|
||||
i32.ge_u
|
||||
i32.eqz
|
||||
if
|
||||
@ -1408,26 +1392,27 @@
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
end
|
||||
local.get $3
|
||||
local.get $4
|
||||
i32.const 0
|
||||
i32.store offset=4
|
||||
local.get $3
|
||||
local.get $4
|
||||
local.get $1
|
||||
i32.store offset=12
|
||||
local.get $0
|
||||
local.get $3
|
||||
local.get $4
|
||||
call $~lib/rt/tlsf/removeBlock
|
||||
local.get $0
|
||||
local.get $4
|
||||
local.get $3
|
||||
local.get $2
|
||||
call $~lib/rt/tlsf/prepareBlock
|
||||
local.get $3
|
||||
local.get $4
|
||||
call $~lib/rt/rtrace/onalloc
|
||||
local.get $3
|
||||
local.get $4
|
||||
)
|
||||
(func $~lib/rt/tlsf/__alloc (; 18 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
(func $~lib/rt/tlsf/__alloc (; 17 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
(local $2 i32)
|
||||
(local $3 i32)
|
||||
(local $4 i32)
|
||||
global.get $~lib/rt/tlsf/ROOT
|
||||
local.set $2
|
||||
local.get $2
|
||||
@ -1441,14 +1426,74 @@
|
||||
local.get $0
|
||||
call $~lib/rt/tlsf/allocateBlock
|
||||
local.set $3
|
||||
global.get $~lib/error
|
||||
if
|
||||
i32.const 0
|
||||
return
|
||||
end
|
||||
local.get $3
|
||||
local.set $4
|
||||
local.get $4
|
||||
local.get $1
|
||||
i32.store offset=8
|
||||
local.get $3
|
||||
local.get $4
|
||||
i32.const 16
|
||||
i32.add
|
||||
)
|
||||
(func $~lib/util/memory/memcpy (; 19 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
|
||||
(func $~lib/error/Error#constructor (; 18 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
local.get $1
|
||||
call $~lib/rt/pure/__retain
|
||||
drop
|
||||
local.get $0
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 12
|
||||
i32.const 3
|
||||
call $~lib/rt/tlsf/__alloc
|
||||
call $~lib/rt/pure/__retain
|
||||
local.set $0
|
||||
end
|
||||
local.get $0
|
||||
i32.const 192
|
||||
call $~lib/rt/pure/__retain
|
||||
i32.store
|
||||
local.get $0
|
||||
i32.const 24
|
||||
call $~lib/rt/pure/__retain
|
||||
i32.store offset=4
|
||||
local.get $0
|
||||
local.get $1
|
||||
i32.store offset=8
|
||||
local.get $1
|
||||
call $~lib/rt/pure/__release
|
||||
local.get $0
|
||||
)
|
||||
(func $~lib/rt/__typeinfo (; 19 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(local $1 i32)
|
||||
global.get $~lib/rt/__rtti_base
|
||||
local.set $1
|
||||
local.get $0
|
||||
local.get $1
|
||||
i32.load
|
||||
i32.gt_u
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 224
|
||||
call $~lib/error/Error#constructor
|
||||
global.set $~lib/error
|
||||
i32.const 0
|
||||
return
|
||||
end
|
||||
local.get $1
|
||||
i32.const 4
|
||||
i32.add
|
||||
local.get $0
|
||||
i32.const 8
|
||||
i32.mul
|
||||
i32.add
|
||||
i32.load
|
||||
)
|
||||
(func $~lib/util/memory/memcpy (; 20 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
|
||||
(local $3 i32)
|
||||
(local $4 i32)
|
||||
(local $5 i32)
|
||||
@ -2476,7 +2521,7 @@
|
||||
i32.store8
|
||||
end
|
||||
)
|
||||
(func $~lib/memory/memory.copy (; 20 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
|
||||
(func $~lib/memory/memory.copy (; 21 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
|
||||
(local $3 i32)
|
||||
(local $4 i32)
|
||||
(local $5 i32)
|
||||
@ -2701,7 +2746,7 @@
|
||||
end
|
||||
end
|
||||
)
|
||||
(func $~lib/rt/tlsf/__free (; 21 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(func $~lib/rt/tlsf/__free (; 22 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
global.get $~lib/rt/tlsf/ROOT
|
||||
i32.eqz
|
||||
if
|
||||
@ -2738,7 +2783,7 @@
|
||||
i32.sub
|
||||
call $~lib/rt/tlsf/freeBlock
|
||||
)
|
||||
(func $~lib/rt/pure/growRoots (; 22 ;) (type $FUNCSIG$v)
|
||||
(func $~lib/rt/pure/growRoots (; 23 ;) (type $FUNCSIG$v)
|
||||
(local $0 i32)
|
||||
(local $1 i32)
|
||||
(local $2 i32)
|
||||
@ -2767,6 +2812,12 @@
|
||||
local.get $4
|
||||
i32.const 0
|
||||
call $~lib/rt/tlsf/__alloc
|
||||
local.set $2
|
||||
global.get $~lib/error
|
||||
if
|
||||
return
|
||||
end
|
||||
local.get $2
|
||||
local.set $5
|
||||
local.get $5
|
||||
i32.const 16
|
||||
@ -2796,7 +2847,7 @@
|
||||
i32.add
|
||||
global.set $~lib/rt/pure/END
|
||||
)
|
||||
(func $~lib/rt/pure/appendRoot (; 23 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(func $~lib/rt/pure/appendRoot (; 24 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(local $1 i32)
|
||||
global.get $~lib/rt/pure/CUR
|
||||
local.set $1
|
||||
@ -2805,6 +2856,10 @@
|
||||
i32.ge_u
|
||||
if
|
||||
call $~lib/rt/pure/growRoots
|
||||
global.get $~lib/error
|
||||
if
|
||||
return
|
||||
end
|
||||
global.get $~lib/rt/pure/CUR
|
||||
local.set $1
|
||||
end
|
||||
@ -2816,9 +2871,10 @@
|
||||
i32.add
|
||||
global.set $~lib/rt/pure/CUR
|
||||
)
|
||||
(func $~lib/rt/pure/decrement (; 24 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(func $~lib/rt/pure/decrement (; 25 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(local $1 i32)
|
||||
(local $2 i32)
|
||||
(local $3 i32)
|
||||
local.get $0
|
||||
i32.load offset=4
|
||||
local.set $1
|
||||
@ -2884,6 +2940,12 @@
|
||||
local.get $0
|
||||
i32.load offset=8
|
||||
call $~lib/rt/__typeinfo
|
||||
local.set $3
|
||||
global.get $~lib/error
|
||||
if
|
||||
return
|
||||
end
|
||||
local.get $3
|
||||
i32.const 16
|
||||
i32.and
|
||||
i32.eqz
|
||||
@ -2904,6 +2966,10 @@
|
||||
if
|
||||
local.get $0
|
||||
call $~lib/rt/pure/appendRoot
|
||||
global.get $~lib/error
|
||||
if
|
||||
return
|
||||
end
|
||||
end
|
||||
else
|
||||
local.get $0
|
||||
@ -2920,7 +2986,7 @@
|
||||
end
|
||||
end
|
||||
)
|
||||
(func $~lib/rt/pure/__release (; 25 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(func $~lib/rt/pure/__release (; 26 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
local.get $0
|
||||
global.get $~lib/heap/__heap_base
|
||||
i32.gt_u
|
||||
@ -2929,25 +2995,29 @@
|
||||
i32.const 16
|
||||
i32.sub
|
||||
call $~lib/rt/pure/decrement
|
||||
global.get $~lib/error
|
||||
if
|
||||
return
|
||||
end
|
||||
end
|
||||
)
|
||||
(func $rc/local-init/getRef (; 26 ;) (type $FUNCSIG$i) (result i32)
|
||||
(func $rc/local-init/getRef (; 27 ;) (type $FUNCSIG$i) (result i32)
|
||||
i32.const 24
|
||||
call $~lib/rt/pure/__retain
|
||||
)
|
||||
(func $rc/local-init/Ref#constructor (; 27 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(func $rc/local-init/Ref#constructor (; 28 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
local.get $0
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 3
|
||||
i32.const 4
|
||||
call $~lib/rt/tlsf/__alloc
|
||||
call $~lib/rt/pure/__retain
|
||||
local.set $0
|
||||
end
|
||||
local.get $0
|
||||
)
|
||||
(func $start:rc/local-init (; 28 ;) (type $FUNCSIG$v)
|
||||
(func $start:rc/local-init (; 29 ;) (type $FUNCSIG$v)
|
||||
(local $0 i32)
|
||||
i32.const 24
|
||||
call $~lib/rt/pure/__retain
|
||||
@ -2964,10 +3034,10 @@
|
||||
local.get $0
|
||||
call $~lib/rt/pure/__release
|
||||
)
|
||||
(func $start (; 29 ;) (type $FUNCSIG$v)
|
||||
(func $start (; 30 ;) (type $FUNCSIG$v)
|
||||
call $start:rc/local-init
|
||||
)
|
||||
(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
|
||||
@ -2994,7 +3064,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
|
||||
@ -3011,7 +3081,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
|
||||
@ -3048,7 +3118,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
|
||||
@ -3086,7 +3156,7 @@
|
||||
call $~lib/rt/tlsf/freeBlock
|
||||
end
|
||||
)
|
||||
(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 $2 i32)
|
||||
(local $3 i32)
|
||||
local.get $0
|
||||
@ -3132,6 +3202,10 @@
|
||||
end
|
||||
local.get $2
|
||||
call $~lib/rt/pure/decrement
|
||||
global.get $~lib/error
|
||||
if
|
||||
return
|
||||
end
|
||||
br $break|0
|
||||
end
|
||||
local.get $2
|
||||
@ -3220,16 +3294,27 @@
|
||||
end
|
||||
end
|
||||
)
|
||||
(func $~lib/rt/__visit_members (; 35 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
|
||||
(func $~lib/rt/__visit_members (; 36 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
|
||||
(local $2 i32)
|
||||
block $switch$1$default
|
||||
block $switch$1$case$4
|
||||
block $switch$1$case$2
|
||||
local.get $0
|
||||
i32.const 8
|
||||
i32.sub
|
||||
i32.load
|
||||
br_table $switch$1$case$2 $switch$1$case$2 $switch$1$case$4 $switch$1$case$2 $switch$1$default
|
||||
block $switch$1$case$5
|
||||
block $switch$1$case$4
|
||||
block $switch$1$case$2
|
||||
local.get $0
|
||||
i32.const 8
|
||||
i32.sub
|
||||
i32.load
|
||||
br_table $switch$1$case$2 $switch$1$case$2 $switch$1$case$4 $switch$1$case$5 $switch$1$case$2 $switch$1$default
|
||||
end
|
||||
return
|
||||
end
|
||||
local.get $0
|
||||
i32.load
|
||||
local.tee $2
|
||||
if
|
||||
local.get $2
|
||||
local.get $1
|
||||
call $~lib/rt/pure/__visit
|
||||
end
|
||||
return
|
||||
end
|
||||
@ -3241,10 +3326,26 @@
|
||||
local.get $1
|
||||
call $~lib/rt/pure/__visit
|
||||
end
|
||||
local.get $0
|
||||
i32.load offset=4
|
||||
local.tee $2
|
||||
if
|
||||
local.get $2
|
||||
local.get $1
|
||||
call $~lib/rt/pure/__visit
|
||||
end
|
||||
local.get $0
|
||||
i32.load offset=8
|
||||
local.tee $2
|
||||
if
|
||||
local.get $2
|
||||
local.get $1
|
||||
call $~lib/rt/pure/__visit
|
||||
end
|
||||
return
|
||||
end
|
||||
unreachable
|
||||
)
|
||||
(func $null (; 36 ;) (type $FUNCSIG$v)
|
||||
(func $null (; 37 ;) (type $FUNCSIG$v)
|
||||
)
|
||||
)
|
||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user