update tests

This commit is contained in:
dcode 2019-05-24 20:42:23 +02:00
parent a6896d7bc2
commit a684bb1f65
12 changed files with 1618 additions and 4406 deletions

View File

@ -1,7 +1,6 @@
(module (module
(type $FUNCSIG$iii (func (param i32 i32) (result i32))) (type $FUNCSIG$iii (func (param i32 i32) (result i32)))
(type $FUNCSIG$v (func)) (type $FUNCSIG$v (func))
(type $FUNCSIG$iiii (func (param i32 i32 i32) (result i32)))
(type $FUNCSIG$viiii (func (param i32 i32 i32 i32))) (type $FUNCSIG$viiii (func (param i32 i32 i32 i32)))
(type $FUNCSIG$vii (func (param i32 i32))) (type $FUNCSIG$vii (func (param i32 i32)))
(type $FUNCSIG$ii (func (param i32) (result i32))) (type $FUNCSIG$ii (func (param i32) (result i32)))
@ -19,15 +18,13 @@
(global $~lib/rt/pure/CUR (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/END (mut i32) (i32.const 0))
(global $~lib/rt/pure/ROOTS (mut i32) (i32.const 0)) (global $~lib/rt/pure/ROOTS (mut i32) (i32.const 0))
(global $~lib/rt/RTTI_BASE i32 (i32.const 256))
(export "memory" (memory $0)) (export "memory" (memory $0))
(export "__alloc" (func $~lib/rt/tlsf/__alloc)) (export "__alloc" (func $~lib/rt/tlsf/__alloc))
(export "__realloc" (func $~lib/rt/tlsf/__realloc))
(export "__free" (func $~lib/rt/tlsf/__free))
(export "__retain" (func $~lib/rt/pure/__retain)) (export "__retain" (func $~lib/rt/pure/__retain))
(export "__release" (func $~lib/rt/pure/__release)) (export "__release" (func $~lib/rt/pure/__release))
(export "__collect" (func $~lib/rt/pure/__collect)) (export "__collect" (func $~lib/rt/pure/__collect))
(export "__instanceof" (func $~lib/rt/__instanceof)) (export "__rtti" (global $~lib/rt/RTTI_BASE))
(export "__typeinfo" (func $~lib/rt/__typeinfo))
(start $start) (start $start)
(func $~lib/rt/tlsf/removeBlock (; 1 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (func $~lib/rt/tlsf/removeBlock (; 1 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32) (local $2 i32)
@ -1021,7 +1018,102 @@
i32.const 16 i32.const 16
i32.add i32.add
) )
(func $~lib/memory/memory.copy (; 11 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (func $~lib/rt/pure/increment (; 11 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
local.get $0
i32.load offset=4
local.tee $1
i32.const -268435456
i32.and
local.get $1
i32.const 1
i32.add
i32.const -268435456
i32.and
i32.ne
if
i32.const 0
i32.const 128
i32.const 104
i32.const 2
call $~lib/builtins/abort
unreachable
end
local.get $0
local.get $1
i32.const 1
i32.add
i32.store offset=4
local.get $0
i32.load
i32.const 1
i32.and
if
i32.const 0
i32.const 128
i32.const 107
i32.const 13
call $~lib/builtins/abort
unreachable
end
)
(func $~lib/rt/pure/__retain (; 12 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.const 292
i32.gt_u
if
local.get $0
i32.const 16
i32.sub
call $~lib/rt/pure/increment
end
local.get $0
)
(func $~lib/rt/tlsf/freeBlock (; 13 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
local.get $1
i32.load
local.tee $2
i32.const 1
i32.and
if
i32.const 0
i32.const 24
i32.const 531
i32.const 2
call $~lib/builtins/abort
unreachable
end
local.get $1
local.get $2
i32.const 1
i32.or
i32.store
local.get $0
local.get $1
call $~lib/rt/tlsf/insertBlock
)
(func $~lib/rt/__typeinfo (; 14 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.const 256
i32.load
i32.gt_u
if
i32.const 176
i32.const 232
i32.const 22
i32.const 27
call $~lib/builtins/abort
unreachable
end
local.get $0
i32.const 3
i32.shl
i32.const 260
i32.add
i32.load
)
(func $~lib/memory/memory.copy (; 15 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32) (local $3 i32)
(local $4 i32) (local $4 i32)
block $~lib/util/memory/memmove|inlined.0 block $~lib/util/memory/memmove|inlined.0
@ -1194,285 +1286,7 @@
end end
end end
) )
(func $~lib/rt/tlsf/reallocateBlock (; 12 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (func $~lib/rt/pure/growRoots (; 16 ;) (type $FUNCSIG$v)
(local $3 i32)
(local $4 i32)
(local $5 i32)
(local $6 i32)
local.get $2
call $~lib/rt/tlsf/prepareSize
local.set $3
local.get $1
i32.load
local.tee $4
i32.const 1
i32.and
if
i32.const 0
i32.const 24
i32.const 493
i32.const 13
call $~lib/builtins/abort
unreachable
end
local.get $3
local.get $4
i32.const -4
i32.and
i32.le_u
if
local.get $0
local.get $1
local.get $3
call $~lib/rt/tlsf/prepareBlock
local.get $1
local.get $2
i32.store offset=12
local.get $1
return
end
local.get $1
i32.const 16
i32.add
local.get $1
i32.load
i32.const -4
i32.and
i32.add
local.tee $6
i32.load
local.tee $5
i32.const 1
i32.and
if
local.get $4
i32.const -4
i32.and
i32.const 16
i32.add
local.get $5
i32.const -4
i32.and
i32.add
local.tee $5
local.get $3
i32.ge_u
if
local.get $0
local.get $6
call $~lib/rt/tlsf/removeBlock
local.get $1
local.get $4
i32.const 3
i32.and
local.get $5
i32.or
i32.store
local.get $1
local.get $2
i32.store offset=12
local.get $0
local.get $1
local.get $3
call $~lib/rt/tlsf/prepareBlock
local.get $1
return
end
end
local.get $0
local.get $2
call $~lib/rt/tlsf/allocateBlock
local.tee $3
local.get $1
i32.load offset=4
i32.store offset=4
local.get $3
local.get $1
i32.load offset=8
i32.store offset=8
local.get $3
i32.const 16
i32.add
local.get $1
i32.const 16
i32.add
local.get $2
call $~lib/memory/memory.copy
local.get $1
local.get $4
i32.const 1
i32.or
i32.store
local.get $0
local.get $1
call $~lib/rt/tlsf/insertBlock
local.get $3
)
(func $~lib/rt/tlsf/__realloc (; 13 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
global.get $~lib/rt/tlsf/ROOT
i32.eqz
if
i32.const 0
i32.const 24
i32.const 553
i32.const 13
call $~lib/builtins/abort
unreachable
end
local.get $0
i32.const 15
i32.and
i32.eqz
i32.const 0
local.get $0
select
i32.eqz
if
i32.const 0
i32.const 24
i32.const 554
i32.const 2
call $~lib/builtins/abort
unreachable
end
global.get $~lib/rt/tlsf/ROOT
local.get $0
i32.const 16
i32.sub
local.get $1
call $~lib/rt/tlsf/reallocateBlock
i32.const 16
i32.add
)
(func $~lib/rt/tlsf/freeBlock (; 14 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
local.get $1
i32.load
local.tee $2
i32.const 1
i32.and
if
i32.const 0
i32.const 24
i32.const 531
i32.const 2
call $~lib/builtins/abort
unreachable
end
local.get $1
local.get $2
i32.const 1
i32.or
i32.store
local.get $0
local.get $1
call $~lib/rt/tlsf/insertBlock
)
(func $~lib/rt/tlsf/__free (; 15 ;) (type $FUNCSIG$vi) (param $0 i32)
global.get $~lib/rt/tlsf/ROOT
i32.eqz
if
i32.const 0
i32.const 24
i32.const 561
i32.const 13
call $~lib/builtins/abort
unreachable
end
local.get $0
i32.const 15
i32.and
i32.eqz
i32.const 0
local.get $0
select
i32.eqz
if
i32.const 0
i32.const 24
i32.const 562
i32.const 2
call $~lib/builtins/abort
unreachable
end
global.get $~lib/rt/tlsf/ROOT
local.get $0
i32.const 16
i32.sub
call $~lib/rt/tlsf/freeBlock
)
(func $~lib/rt/pure/increment (; 16 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
local.get $0
i32.load offset=4
local.tee $1
i32.const -268435456
i32.and
local.get $1
i32.const 1
i32.add
i32.const -268435456
i32.and
i32.ne
if
i32.const 0
i32.const 128
i32.const 104
i32.const 2
call $~lib/builtins/abort
unreachable
end
local.get $0
local.get $1
i32.const 1
i32.add
i32.store offset=4
local.get $0
i32.load
i32.const 1
i32.and
if
i32.const 0
i32.const 128
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)
local.get $0
i32.const 292
i32.gt_u
if
local.get $0
i32.const 16
i32.sub
call $~lib/rt/pure/increment
end
local.get $0
)
(func $~lib/rt/__typeinfo (; 18 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.const 256
i32.load
i32.gt_u
if
i32.const 176
i32.const 232
i32.const 22
i32.const 27
call $~lib/builtins/abort
unreachable
end
local.get $0
i32.const 3
i32.shl
i32.const 260
i32.add
i32.load
)
(func $~lib/rt/pure/growRoots (; 19 ;) (type $FUNCSIG$v)
(local $0 i32) (local $0 i32)
(local $1 i32) (local $1 i32)
(local $2 i32) (local $2 i32)
@ -1508,7 +1322,7 @@
i32.add i32.add
global.set $~lib/rt/pure/END global.set $~lib/rt/pure/END
) )
(func $~lib/rt/pure/appendRoot (; 20 ;) (type $FUNCSIG$vi) (param $0 i32) (func $~lib/rt/pure/appendRoot (; 17 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32) (local $1 i32)
global.get $~lib/rt/pure/CUR global.get $~lib/rt/pure/CUR
local.tee $1 local.tee $1
@ -1527,7 +1341,7 @@
i32.add i32.add
global.set $~lib/rt/pure/CUR global.set $~lib/rt/pure/CUR
) )
(func $~lib/rt/pure/decrement (; 21 ;) (type $FUNCSIG$vi) (param $0 i32) (func $~lib/rt/pure/decrement (; 18 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32) (local $1 i32)
(local $2 i32) (local $2 i32)
local.get $0 local.get $0
@ -1615,7 +1429,7 @@
end end
end end
) )
(func $~lib/rt/pure/__release (; 22 ;) (type $FUNCSIG$vi) (param $0 i32) (func $~lib/rt/pure/__release (; 19 ;) (type $FUNCSIG$vi) (param $0 i32)
local.get $0 local.get $0
i32.const 292 i32.const 292
i32.gt_u i32.gt_u
@ -1626,7 +1440,7 @@
call $~lib/rt/pure/decrement call $~lib/rt/pure/decrement
end end
) )
(func $~lib/rt/pure/markGray (; 23 ;) (type $FUNCSIG$vi) (param $0 i32) (func $~lib/rt/pure/markGray (; 20 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32) (local $1 i32)
local.get $0 local.get $0
i32.load offset=4 i32.load offset=4
@ -1650,7 +1464,7 @@
call $~lib/rt/__visit_members call $~lib/rt/__visit_members
end end
) )
(func $~lib/rt/pure/scanBlack (; 24 ;) (type $FUNCSIG$vi) (param $0 i32) (func $~lib/rt/pure/scanBlack (; 21 ;) (type $FUNCSIG$vi) (param $0 i32)
local.get $0 local.get $0
local.get $0 local.get $0
i32.load offset=4 i32.load offset=4
@ -1663,7 +1477,7 @@
i32.const 4 i32.const 4
call $~lib/rt/__visit_members call $~lib/rt/__visit_members
) )
(func $~lib/rt/pure/scan (; 25 ;) (type $FUNCSIG$vi) (param $0 i32) (func $~lib/rt/pure/scan (; 22 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32) (local $1 i32)
local.get $0 local.get $0
i32.load offset=4 i32.load offset=4
@ -1697,7 +1511,7 @@
end end
end end
) )
(func $~lib/rt/pure/collectWhite (; 26 ;) (type $FUNCSIG$vi) (param $0 i32) (func $~lib/rt/pure/collectWhite (; 23 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32) (local $1 i32)
local.get $0 local.get $0
i32.load offset=4 i32.load offset=4
@ -1725,7 +1539,7 @@
local.get $0 local.get $0
call $~lib/rt/tlsf/freeBlock call $~lib/rt/tlsf/freeBlock
) )
(func $~lib/rt/pure/__collect (; 27 ;) (type $FUNCSIG$v) (func $~lib/rt/pure/__collect (; 24 ;) (type $FUNCSIG$v)
(local $0 i32) (local $0 i32)
(local $1 i32) (local $1 i32)
(local $2 i32) (local $2 i32)
@ -1849,44 +1663,14 @@
local.get $5 local.get $5
global.set $~lib/rt/pure/CUR global.set $~lib/rt/pure/CUR
) )
(func $~lib/rt/__instanceof (; 28 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (func $start (; 25 ;) (type $FUNCSIG$v)
local.get $0
i32.const 16
i32.sub
i32.load offset=8
local.tee $0
i32.const 256
i32.load
i32.le_u
if
loop $continue|0
local.get $0
local.get $1
i32.eq
if
i32.const 1
return
end
local.get $0
i32.const 3
i32.shl
i32.const 260
i32.add
i32.load offset=4
local.tee $0
br_if $continue|0
end
end
i32.const 0
)
(func $start (; 29 ;) (type $FUNCSIG$v)
i32.const 0 i32.const 0
i32.const 3 i32.const 3
call $~lib/rt/tlsf/__alloc call $~lib/rt/tlsf/__alloc
call $~lib/rt/pure/__retain call $~lib/rt/pure/__retain
call $~lib/rt/pure/__release call $~lib/rt/pure/__release
) )
(func $~lib/rt/pure/__visit (; 30 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (func $~lib/rt/pure/__visit (; 26 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
local.get $0 local.get $0
i32.const 292 i32.const 292
i32.lt_u i32.lt_u
@ -1996,7 +1780,7 @@
unreachable unreachable
end end
) )
(func $~lib/rt/__visit_members (; 31 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (func $~lib/rt/__visit_members (; 27 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
block $switch$1$default block $switch$1$default
block $switch$1$case$4 block $switch$1$case$4
block $switch$1$case$2 block $switch$1$case$2
@ -2020,7 +1804,7 @@
end end
unreachable unreachable
) )
(func $null (; 32 ;) (type $FUNCSIG$v) (func $null (; 28 ;) (type $FUNCSIG$v)
nop nop
) )
) )

View File

@ -19,21 +19,18 @@
(table $0 1 funcref) (table $0 1 funcref)
(elem (i32.const 0) $null) (elem (i32.const 0) $null)
(global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0))
(global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0))
(global $~lib/rt/pure/CUR (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/END (mut i32) (i32.const 0))
(global $~lib/rt/pure/ROOTS (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 256)) (global $~lib/rt/RTTI_BASE i32 (i32.const 256))
(global $~lib/heap/HEAP_BASE i32 (i32.const 292)) (global $~lib/heap/HEAP_BASE i32 (i32.const 292))
(export "memory" (memory $0)) (export "memory" (memory $0))
(export "__alloc" (func $~lib/rt/tlsf/__alloc)) (export "__alloc" (func $~lib/rt/tlsf/__alloc))
(export "__realloc" (func $~lib/rt/tlsf/__realloc))
(export "__free" (func $~lib/rt/tlsf/__free))
(export "__retain" (func $~lib/rt/pure/__retain)) (export "__retain" (func $~lib/rt/pure/__retain))
(export "__release" (func $~lib/rt/pure/__release)) (export "__release" (func $~lib/rt/pure/__release))
(export "__collect" (func $~lib/rt/pure/__collect)) (export "__collect" (func $~lib/rt/pure/__collect))
(export "__instanceof" (func $~lib/rt/__instanceof)) (export "__rtti" (global $~lib/rt/RTTI_BASE))
(export "__typeinfo" (func $~lib/rt/__typeinfo))
(start $start) (start $start)
(func $~lib/rt/tlsf/removeBlock (; 1 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (func $~lib/rt/tlsf/removeBlock (; 1 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32) (local $2 i32)
@ -1380,7 +1377,118 @@
i32.const 16 i32.const 16
i32.add i32.add
) )
(func $~lib/util/memory/memcpy (; 11 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (func $~lib/rt/pure/increment (; 11 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
local.get $0
i32.load offset=4
local.set $1
local.get $1
i32.const 268435455
i32.const -1
i32.xor
i32.and
local.get $1
i32.const 1
i32.add
i32.const 268435455
i32.const -1
i32.xor
i32.and
i32.eq
i32.eqz
if
i32.const 0
i32.const 128
i32.const 104
i32.const 2
call $~lib/builtins/abort
unreachable
end
local.get $0
local.get $1
i32.const 1
i32.add
i32.store offset=4
local.get $0
i32.load
i32.const 1
i32.and
i32.eqz
i32.eqz
if
i32.const 0
i32.const 128
i32.const 107
i32.const 13
call $~lib/builtins/abort
unreachable
end
)
(func $~lib/rt/pure/__retain (; 12 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
global.get $~lib/heap/HEAP_BASE
i32.gt_u
if
local.get $0
i32.const 16
i32.sub
call $~lib/rt/pure/increment
end
local.get $0
)
(func $~lib/rt/tlsf/freeBlock (; 13 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
local.get $1
i32.load
local.set $2
local.get $2
i32.const 1
i32.and
i32.eqz
i32.eqz
if
i32.const 0
i32.const 24
i32.const 531
i32.const 2
call $~lib/builtins/abort
unreachable
end
local.get $1
local.get $2
i32.const 1
i32.or
i32.store
local.get $0
local.get $1
call $~lib/rt/tlsf/insertBlock
)
(func $~lib/rt/__typeinfo (; 14 ;) (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 176
i32.const 232
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/util/memory/memcpy (; 15 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32) (local $3 i32)
(local $4 i32) (local $4 i32)
(local $5 i32) (local $5 i32)
@ -2571,7 +2679,7 @@
i32.store8 i32.store8
end end
) )
(func $~lib/memory/memory.copy (; 12 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (func $~lib/memory/memory.copy (; 16 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32) (local $3 i32)
(local $4 i32) (local $4 i32)
(local $5 i32) (local $5 i32)
@ -2798,328 +2906,7 @@
end end
end end
) )
(func $~lib/rt/tlsf/reallocateBlock (; 13 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (func $~lib/rt/pure/growRoots (; 17 ;) (type $FUNCSIG$v)
(local $3 i32)
(local $4 i32)
(local $5 i32)
(local $6 i32)
(local $7 i32)
(local $8 i32)
local.get $2
call $~lib/rt/tlsf/prepareSize
local.set $3
local.get $1
i32.load
local.set $4
local.get $4
i32.const 1
i32.and
i32.eqz
i32.eqz
if
i32.const 0
i32.const 24
i32.const 493
i32.const 13
call $~lib/builtins/abort
unreachable
end
local.get $3
local.get $4
i32.const -4
i32.and
i32.le_u
if
local.get $0
local.get $1
local.get $3
call $~lib/rt/tlsf/prepareBlock
local.get $1
local.get $2
i32.store offset=12
local.get $1
return
end
block $~lib/rt/tlsf/GETRIGHT|inlined.4 (result i32)
local.get $1
local.set $5
local.get $5
i32.const 16
i32.add
local.get $5
i32.load
i32.const 3
i32.const -1
i32.xor
i32.and
i32.add
end
local.set $6
local.get $6
i32.load
local.set $7
local.get $7
i32.const 1
i32.and
if
local.get $4
i32.const 3
i32.const -1
i32.xor
i32.and
i32.const 16
i32.add
local.get $7
i32.const 3
i32.const -1
i32.xor
i32.and
i32.add
local.set $5
local.get $5
local.get $3
i32.ge_u
if
local.get $0
local.get $6
call $~lib/rt/tlsf/removeBlock
local.get $1
local.get $4
i32.const 3
i32.and
local.get $5
i32.or
i32.store
local.get $1
local.get $2
i32.store offset=12
local.get $0
local.get $1
local.get $3
call $~lib/rt/tlsf/prepareBlock
local.get $1
return
end
end
local.get $0
local.get $2
call $~lib/rt/tlsf/allocateBlock
local.set $8
local.get $8
local.get $1
i32.load offset=4
i32.store offset=4
local.get $8
local.get $1
i32.load offset=8
i32.store offset=8
local.get $8
i32.const 16
i32.add
local.get $1
i32.const 16
i32.add
local.get $2
call $~lib/memory/memory.copy
local.get $1
local.get $4
i32.const 1
i32.or
i32.store
local.get $0
local.get $1
call $~lib/rt/tlsf/insertBlock
local.get $8
)
(func $~lib/rt/tlsf/__realloc (; 14 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
global.get $~lib/rt/tlsf/ROOT
i32.eqz
if
i32.const 0
i32.const 24
i32.const 553
i32.const 13
call $~lib/builtins/abort
unreachable
end
local.get $0
i32.const 0
i32.ne
if (result i32)
local.get $0
i32.const 15
i32.and
i32.eqz
else
i32.const 0
end
i32.eqz
if
i32.const 0
i32.const 24
i32.const 554
i32.const 2
call $~lib/builtins/abort
unreachable
end
global.get $~lib/rt/tlsf/ROOT
local.get $0
i32.const 16
i32.sub
local.get $1
call $~lib/rt/tlsf/reallocateBlock
i32.const 16
i32.add
)
(func $~lib/rt/tlsf/freeBlock (; 15 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
local.get $1
i32.load
local.set $2
local.get $2
i32.const 1
i32.and
i32.eqz
i32.eqz
if
i32.const 0
i32.const 24
i32.const 531
i32.const 2
call $~lib/builtins/abort
unreachable
end
local.get $1
local.get $2
i32.const 1
i32.or
i32.store
local.get $0
local.get $1
call $~lib/rt/tlsf/insertBlock
)
(func $~lib/rt/tlsf/__free (; 16 ;) (type $FUNCSIG$vi) (param $0 i32)
global.get $~lib/rt/tlsf/ROOT
i32.eqz
if
i32.const 0
i32.const 24
i32.const 561
i32.const 13
call $~lib/builtins/abort
unreachable
end
local.get $0
i32.const 0
i32.ne
if (result i32)
local.get $0
i32.const 15
i32.and
i32.eqz
else
i32.const 0
end
i32.eqz
if
i32.const 0
i32.const 24
i32.const 562
i32.const 2
call $~lib/builtins/abort
unreachable
end
global.get $~lib/rt/tlsf/ROOT
local.get $0
i32.const 16
i32.sub
call $~lib/rt/tlsf/freeBlock
)
(func $~lib/rt/pure/increment (; 17 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
local.get $0
i32.load offset=4
local.set $1
local.get $1
i32.const 268435455
i32.const -1
i32.xor
i32.and
local.get $1
i32.const 1
i32.add
i32.const 268435455
i32.const -1
i32.xor
i32.and
i32.eq
i32.eqz
if
i32.const 0
i32.const 128
i32.const 104
i32.const 2
call $~lib/builtins/abort
unreachable
end
local.get $0
local.get $1
i32.const 1
i32.add
i32.store offset=4
local.get $0
i32.load
i32.const 1
i32.and
i32.eqz
i32.eqz
if
i32.const 0
i32.const 128
i32.const 107
i32.const 13
call $~lib/builtins/abort
unreachable
end
)
(func $~lib/rt/pure/__retain (; 18 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
global.get $~lib/heap/HEAP_BASE
i32.gt_u
if
local.get $0
i32.const 16
i32.sub
call $~lib/rt/pure/increment
end
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 176
i32.const 232
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/pure/growRoots (; 20 ;) (type $FUNCSIG$v)
(local $0 i32) (local $0 i32)
(local $1 i32) (local $1 i32)
(local $2 i32) (local $2 i32)
@ -3164,7 +2951,7 @@
i32.add i32.add
global.set $~lib/rt/pure/END global.set $~lib/rt/pure/END
) )
(func $~lib/rt/pure/appendRoot (; 21 ;) (type $FUNCSIG$vi) (param $0 i32) (func $~lib/rt/pure/appendRoot (; 18 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32) (local $1 i32)
global.get $~lib/rt/pure/CUR global.get $~lib/rt/pure/CUR
local.set $1 local.set $1
@ -3184,7 +2971,7 @@
i32.add i32.add
global.set $~lib/rt/pure/CUR global.set $~lib/rt/pure/CUR
) )
(func $~lib/rt/pure/decrement (; 22 ;) (type $FUNCSIG$vi) (param $0 i32) (func $~lib/rt/pure/decrement (; 19 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32) (local $1 i32)
(local $2 i32) (local $2 i32)
local.get $0 local.get $0
@ -3286,7 +3073,7 @@
end end
end end
) )
(func $~lib/rt/pure/__release (; 23 ;) (type $FUNCSIG$vi) (param $0 i32) (func $~lib/rt/pure/__release (; 20 ;) (type $FUNCSIG$vi) (param $0 i32)
local.get $0 local.get $0
global.get $~lib/heap/HEAP_BASE global.get $~lib/heap/HEAP_BASE
i32.gt_u i32.gt_u
@ -3297,7 +3084,7 @@
call $~lib/rt/pure/decrement call $~lib/rt/pure/decrement
end end
) )
(func $~lib/rt/pure/markGray (; 24 ;) (type $FUNCSIG$vi) (param $0 i32) (func $~lib/rt/pure/markGray (; 21 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32) (local $1 i32)
local.get $0 local.get $0
i32.load offset=4 i32.load offset=4
@ -3324,7 +3111,7 @@
call $~lib/rt/__visit_members call $~lib/rt/__visit_members
end end
) )
(func $~lib/rt/pure/scanBlack (; 25 ;) (type $FUNCSIG$vi) (param $0 i32) (func $~lib/rt/pure/scanBlack (; 22 ;) (type $FUNCSIG$vi) (param $0 i32)
local.get $0 local.get $0
local.get $0 local.get $0
i32.load offset=4 i32.load offset=4
@ -3341,7 +3128,7 @@
i32.const 4 i32.const 4
call $~lib/rt/__visit_members call $~lib/rt/__visit_members
) )
(func $~lib/rt/pure/scan (; 26 ;) (type $FUNCSIG$vi) (param $0 i32) (func $~lib/rt/pure/scan (; 23 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32) (local $1 i32)
local.get $0 local.get $0
i32.load offset=4 i32.load offset=4
@ -3378,7 +3165,7 @@
end end
end end
) )
(func $~lib/rt/pure/collectWhite (; 27 ;) (type $FUNCSIG$vi) (param $0 i32) (func $~lib/rt/pure/collectWhite (; 24 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32) (local $1 i32)
local.get $0 local.get $0
i32.load offset=4 i32.load offset=4
@ -3407,7 +3194,7 @@
local.get $0 local.get $0
call $~lib/rt/tlsf/freeBlock call $~lib/rt/tlsf/freeBlock
) )
(func $~lib/rt/pure/__collect (; 28 ;) (type $FUNCSIG$v) (func $~lib/rt/pure/__collect (; 25 ;) (type $FUNCSIG$v)
(local $0 i32) (local $0 i32)
(local $1 i32) (local $1 i32)
(local $2 i32) (local $2 i32)
@ -3555,44 +3342,7 @@
local.get $0 local.get $0
global.set $~lib/rt/pure/CUR global.set $~lib/rt/pure/CUR
) )
(func $~lib/rt/__instanceof (; 29 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (func $rc/rereturn/Ref#constructor (; 26 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $2 i32)
(local $3 i32)
local.get $0
i32.const 16
i32.sub
i32.load offset=8
local.set $2
global.get $~lib/rt/RTTI_BASE
local.set $3
local.get $2
local.get $3
i32.load
i32.le_u
if
loop $continue|0
local.get $2
local.get $1
i32.eq
if
i32.const 1
return
end
local.get $3
i32.const 4
i32.add
local.get $2
i32.const 8
i32.mul
i32.add
i32.load offset=4
local.tee $2
br_if $continue|0
end
end
i32.const 0
)
(func $rc/rereturn/Ref#constructor (; 30 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0 local.get $0
i32.eqz i32.eqz
if if
@ -3604,21 +3354,21 @@
end end
local.get $0 local.get $0
) )
(func $rc/rereturn/getRef (; 31 ;) (type $FUNCSIG$i) (result i32) (func $rc/rereturn/getRef (; 27 ;) (type $FUNCSIG$i) (result i32)
i32.const 0 i32.const 0
call $rc/rereturn/Ref#constructor call $rc/rereturn/Ref#constructor
) )
(func $rc/rereturn/rereturnRef (; 32 ;) (type $FUNCSIG$i) (result i32) (func $rc/rereturn/rereturnRef (; 28 ;) (type $FUNCSIG$i) (result i32)
call $rc/rereturn/getRef call $rc/rereturn/getRef
) )
(func $start:rc/rereturn (; 33 ;) (type $FUNCSIG$v) (func $start:rc/rereturn (; 29 ;) (type $FUNCSIG$v)
call $rc/rereturn/rereturnRef call $rc/rereturn/rereturnRef
call $~lib/rt/pure/__release call $~lib/rt/pure/__release
) )
(func $start (; 34 ;) (type $FUNCSIG$v) (func $start (; 30 ;) (type $FUNCSIG$v)
call $start:rc/rereturn call $start:rc/rereturn
) )
(func $~lib/rt/pure/__visit (; 35 ;) (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 $2 i32) (local $2 i32)
(local $3 i32) (local $3 i32)
local.get $0 local.get $0
@ -3772,7 +3522,7 @@
end end
end end
) )
(func $~lib/rt/__visit_members (; 36 ;) (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) (local $2 i32)
block block
end end
@ -3829,6 +3579,6 @@
unreachable unreachable
end end
) )
(func $null (; 37 ;) (type $FUNCSIG$v) (func $null (; 33 ;) (type $FUNCSIG$v)
) )
) )

View File

@ -7,8 +7,8 @@
(data (i32.const 8) "$\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 8) "$\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 64) "\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 64) "\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 104) "\16\00\00\00\01\00\00\00\01\00\00\00\16\00\00\00r\00t\00/\00f\00l\00a\00g\00s\00.\00t\00s") (data (i32.const 104) "\16\00\00\00\01\00\00\00\01\00\00\00\16\00\00\00r\00t\00/\00f\00l\00a\00g\00s\00.\00t\00s")
(data (i32.const 144) "-\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\19\00\00\00\03\00\00\00)\00\00\00\03\00\00\00I\00\00\00\03\00\00\00\89\00\00\00\03\00\00\00\t\01\00\00\03\00\00\00\08\00\00\00\00\00\00\00I\04\00\00\03\00\00\00I\06\00\00\03\00\00\00\1a\00\00\00\00\00\00\00*\00\00\00\00\00\00\00J\00\00\00\00\00\00\00\8a\00\00\00\00\00\00\00\n\01\00\00\00\00\00\00J\04\00\00\00\00\00\00J\06\00\00\00\00\00\00\1c\80\00\00\00\00\00\00,@\00\00\00\00\00\00L \00\00\00\00\00\00\8c\10\00\00\00\00\00\00\0c\t\00\00\00\00\00\00\1c \02\00\00\00\00\00\1c \03\00\00\00\00\00L\0c\00\00\00\00\00\00L\0e\00\00\00\00\00\00L&\03\00\00\00\00\00\08") (data (i32.const 144) "-\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\19\00\00\00\02\00\00\00)\00\00\00\02\00\00\00I\00\00\00\02\00\00\00\89\00\00\00\02\00\00\00\t\01\00\00\02\00\00\00\08\00\00\00\00\00\00\00I\04\00\00\02\00\00\00I\06\00\00\02\00\00\00\1a\00\00\00\00\00\00\00*\00\00\00\00\00\00\00J\00\00\00\00\00\00\00\8a\00\00\00\00\00\00\00\n\01\00\00\00\00\00\00J\04\00\00\00\00\00\00J\06\00\00\00\00\00\00\1c\80\00\00\00\00\00\00,@\00\00\00\00\00\00L \00\00\00\00\00\00\8c\10\00\00\00\00\00\00\0c\t\00\00\00\00\00\00\1c \02\00\00\00\00\00\1c \03\00\00\00\00\00L\0c\00\00\00\00\00\00L\0e\00\00\00\00\00\00L&\03\00\00\00\00\00\08")
(data (i32.const 420) "A\04\00\00\03\00\00\00\08") (data (i32.const 420) "A\04\00\00\02\00\00\00\08")
(data (i32.const 444) "B\04\00\00\00\00\00\00\08") (data (i32.const 444) "B\04\00\00\00\00\00\00\08")
(data (i32.const 468) "D \02") (data (i32.const 468) "D \02")
(data (i32.const 484) "D$\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08") (data (i32.const 484) "D$\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08")

View File

@ -8,7 +8,7 @@
(data (i32.const 8) "$\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 8) "$\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 64) "\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 64) "\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 104) "\16\00\00\00\01\00\00\00\01\00\00\00\16\00\00\00r\00t\00/\00f\00l\00a\00g\00s\00.\00t\00s\00") (data (i32.const 104) "\16\00\00\00\01\00\00\00\01\00\00\00\16\00\00\00r\00t\00/\00f\00l\00a\00g\00s\00.\00t\00s\00")
(data (i32.const 144) "-\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\19\00\00\00\03\00\00\00)\00\00\00\03\00\00\00I\00\00\00\03\00\00\00\89\00\00\00\03\00\00\00\t\01\00\00\03\00\00\00\08\00\00\00\00\00\00\00I\04\00\00\03\00\00\00I\06\00\00\03\00\00\00\1a\00\00\00\00\00\00\00*\00\00\00\00\00\00\00J\00\00\00\00\00\00\00\8a\00\00\00\00\00\00\00\n\01\00\00\00\00\00\00J\04\00\00\00\00\00\00J\06\00\00\00\00\00\00\1c\80\00\00\00\00\00\00,@\00\00\00\00\00\00L \00\00\00\00\00\00\8c\10\00\00\00\00\00\00\0c\t\00\00\00\00\00\00\1c \02\00\00\00\00\00\1c \03\00\00\00\00\00L\0c\00\00\00\00\00\00L\0e\00\00\00\00\00\00L&\03\00\00\00\00\00\08\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00A\04\00\00\03\00\00\00\08\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00B\04\00\00\00\00\00\00\08\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00D \02\00\00\00\00\00\00\00\00\00\00\00\00\00D$\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00") (data (i32.const 144) "-\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\19\00\00\00\02\00\00\00)\00\00\00\02\00\00\00I\00\00\00\02\00\00\00\89\00\00\00\02\00\00\00\t\01\00\00\02\00\00\00\08\00\00\00\00\00\00\00I\04\00\00\02\00\00\00I\06\00\00\02\00\00\00\1a\00\00\00\00\00\00\00*\00\00\00\00\00\00\00J\00\00\00\00\00\00\00\8a\00\00\00\00\00\00\00\n\01\00\00\00\00\00\00J\04\00\00\00\00\00\00J\06\00\00\00\00\00\00\1c\80\00\00\00\00\00\00,@\00\00\00\00\00\00L \00\00\00\00\00\00\8c\10\00\00\00\00\00\00\0c\t\00\00\00\00\00\00\1c \02\00\00\00\00\00\1c \03\00\00\00\00\00L\0c\00\00\00\00\00\00L\0e\00\00\00\00\00\00L&\03\00\00\00\00\00\08\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00A\04\00\00\02\00\00\00\08\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00B\04\00\00\00\00\00\00\08\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00D \02\00\00\00\00\00\00\00\00\00\00\00\00\00D$\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00")
(table $0 1 funcref) (table $0 1 funcref)
(elem (i32.const 0) $null) (elem (i32.const 0) $null)
(global $rt/flags/VALUE_ALIGN_REF i32 (i32.const 64)) (global $rt/flags/VALUE_ALIGN_REF i32 (i32.const 64))

View File

@ -1,7 +1,6 @@
(module (module
(type $FUNCSIG$iii (func (param i32 i32) (result i32))) (type $FUNCSIG$iii (func (param i32 i32) (result i32)))
(type $FUNCSIG$v (func)) (type $FUNCSIG$v (func))
(type $FUNCSIG$iiii (func (param i32 i32 i32) (result i32)))
(type $FUNCSIG$viiii (func (param i32 i32 i32 i32))) (type $FUNCSIG$viiii (func (param i32 i32 i32 i32)))
(type $FUNCSIG$vii (func (param i32 i32))) (type $FUNCSIG$vii (func (param i32 i32)))
(type $FUNCSIG$ii (func (param i32) (result i32))) (type $FUNCSIG$ii (func (param i32) (result i32)))
@ -19,15 +18,13 @@
(global $~lib/rt/pure/CUR (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/END (mut i32) (i32.const 0))
(global $~lib/rt/pure/ROOTS (mut i32) (i32.const 0)) (global $~lib/rt/pure/ROOTS (mut i32) (i32.const 0))
(global $~lib/rt/RTTI_BASE i32 (i32.const 256))
(export "memory" (memory $0)) (export "memory" (memory $0))
(export "__alloc" (func $~lib/rt/tlsf/__alloc)) (export "__alloc" (func $~lib/rt/tlsf/__alloc))
(export "__realloc" (func $~lib/rt/tlsf/__realloc))
(export "__free" (func $~lib/rt/tlsf/__free))
(export "__retain" (func $~lib/rt/pure/__retain)) (export "__retain" (func $~lib/rt/pure/__retain))
(export "__release" (func $~lib/rt/pure/__release)) (export "__release" (func $~lib/rt/pure/__release))
(export "__collect" (func $~lib/rt/pure/__collect)) (export "__collect" (func $~lib/rt/pure/__collect))
(export "__instanceof" (func $~lib/rt/__instanceof)) (export "__rtti" (global $~lib/rt/RTTI_BASE))
(export "__typeinfo" (func $~lib/rt/__typeinfo))
(func $~lib/rt/tlsf/removeBlock (; 1 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (func $~lib/rt/tlsf/removeBlock (; 1 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32) (local $2 i32)
(local $3 i32) (local $3 i32)
@ -1020,7 +1017,102 @@
i32.const 16 i32.const 16
i32.add i32.add
) )
(func $~lib/memory/memory.copy (; 11 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (func $~lib/rt/pure/increment (; 11 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
local.get $0
i32.load offset=4
local.tee $1
i32.const -268435456
i32.and
local.get $1
i32.const 1
i32.add
i32.const -268435456
i32.and
i32.ne
if
i32.const 0
i32.const 128
i32.const 104
i32.const 2
call $~lib/builtins/abort
unreachable
end
local.get $0
local.get $1
i32.const 1
i32.add
i32.store offset=4
local.get $0
i32.load
i32.const 1
i32.and
if
i32.const 0
i32.const 128
i32.const 107
i32.const 13
call $~lib/builtins/abort
unreachable
end
)
(func $~lib/rt/pure/__retain (; 12 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.const 284
i32.gt_u
if
local.get $0
i32.const 16
i32.sub
call $~lib/rt/pure/increment
end
local.get $0
)
(func $~lib/rt/tlsf/freeBlock (; 13 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
local.get $1
i32.load
local.tee $2
i32.const 1
i32.and
if
i32.const 0
i32.const 24
i32.const 531
i32.const 2
call $~lib/builtins/abort
unreachable
end
local.get $1
local.get $2
i32.const 1
i32.or
i32.store
local.get $0
local.get $1
call $~lib/rt/tlsf/insertBlock
)
(func $~lib/rt/__typeinfo (; 14 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.const 256
i32.load
i32.gt_u
if
i32.const 176
i32.const 232
i32.const 22
i32.const 27
call $~lib/builtins/abort
unreachable
end
local.get $0
i32.const 3
i32.shl
i32.const 260
i32.add
i32.load
)
(func $~lib/memory/memory.copy (; 15 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32) (local $3 i32)
(local $4 i32) (local $4 i32)
block $~lib/util/memory/memmove|inlined.0 block $~lib/util/memory/memmove|inlined.0
@ -1193,285 +1285,7 @@
end end
end end
) )
(func $~lib/rt/tlsf/reallocateBlock (; 12 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (func $~lib/rt/pure/growRoots (; 16 ;) (type $FUNCSIG$v)
(local $3 i32)
(local $4 i32)
(local $5 i32)
(local $6 i32)
local.get $2
call $~lib/rt/tlsf/prepareSize
local.set $3
local.get $1
i32.load
local.tee $4
i32.const 1
i32.and
if
i32.const 0
i32.const 24
i32.const 493
i32.const 13
call $~lib/builtins/abort
unreachable
end
local.get $3
local.get $4
i32.const -4
i32.and
i32.le_u
if
local.get $0
local.get $1
local.get $3
call $~lib/rt/tlsf/prepareBlock
local.get $1
local.get $2
i32.store offset=12
local.get $1
return
end
local.get $1
i32.const 16
i32.add
local.get $1
i32.load
i32.const -4
i32.and
i32.add
local.tee $6
i32.load
local.tee $5
i32.const 1
i32.and
if
local.get $4
i32.const -4
i32.and
i32.const 16
i32.add
local.get $5
i32.const -4
i32.and
i32.add
local.tee $5
local.get $3
i32.ge_u
if
local.get $0
local.get $6
call $~lib/rt/tlsf/removeBlock
local.get $1
local.get $4
i32.const 3
i32.and
local.get $5
i32.or
i32.store
local.get $1
local.get $2
i32.store offset=12
local.get $0
local.get $1
local.get $3
call $~lib/rt/tlsf/prepareBlock
local.get $1
return
end
end
local.get $0
local.get $2
call $~lib/rt/tlsf/allocateBlock
local.tee $3
local.get $1
i32.load offset=4
i32.store offset=4
local.get $3
local.get $1
i32.load offset=8
i32.store offset=8
local.get $3
i32.const 16
i32.add
local.get $1
i32.const 16
i32.add
local.get $2
call $~lib/memory/memory.copy
local.get $1
local.get $4
i32.const 1
i32.or
i32.store
local.get $0
local.get $1
call $~lib/rt/tlsf/insertBlock
local.get $3
)
(func $~lib/rt/tlsf/__realloc (; 13 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
global.get $~lib/rt/tlsf/ROOT
i32.eqz
if
i32.const 0
i32.const 24
i32.const 553
i32.const 13
call $~lib/builtins/abort
unreachable
end
local.get $0
i32.const 15
i32.and
i32.eqz
i32.const 0
local.get $0
select
i32.eqz
if
i32.const 0
i32.const 24
i32.const 554
i32.const 2
call $~lib/builtins/abort
unreachable
end
global.get $~lib/rt/tlsf/ROOT
local.get $0
i32.const 16
i32.sub
local.get $1
call $~lib/rt/tlsf/reallocateBlock
i32.const 16
i32.add
)
(func $~lib/rt/tlsf/freeBlock (; 14 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
local.get $1
i32.load
local.tee $2
i32.const 1
i32.and
if
i32.const 0
i32.const 24
i32.const 531
i32.const 2
call $~lib/builtins/abort
unreachable
end
local.get $1
local.get $2
i32.const 1
i32.or
i32.store
local.get $0
local.get $1
call $~lib/rt/tlsf/insertBlock
)
(func $~lib/rt/tlsf/__free (; 15 ;) (type $FUNCSIG$vi) (param $0 i32)
global.get $~lib/rt/tlsf/ROOT
i32.eqz
if
i32.const 0
i32.const 24
i32.const 561
i32.const 13
call $~lib/builtins/abort
unreachable
end
local.get $0
i32.const 15
i32.and
i32.eqz
i32.const 0
local.get $0
select
i32.eqz
if
i32.const 0
i32.const 24
i32.const 562
i32.const 2
call $~lib/builtins/abort
unreachable
end
global.get $~lib/rt/tlsf/ROOT
local.get $0
i32.const 16
i32.sub
call $~lib/rt/tlsf/freeBlock
)
(func $~lib/rt/pure/increment (; 16 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
local.get $0
i32.load offset=4
local.tee $1
i32.const -268435456
i32.and
local.get $1
i32.const 1
i32.add
i32.const -268435456
i32.and
i32.ne
if
i32.const 0
i32.const 128
i32.const 104
i32.const 2
call $~lib/builtins/abort
unreachable
end
local.get $0
local.get $1
i32.const 1
i32.add
i32.store offset=4
local.get $0
i32.load
i32.const 1
i32.and
if
i32.const 0
i32.const 128
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)
local.get $0
i32.const 284
i32.gt_u
if
local.get $0
i32.const 16
i32.sub
call $~lib/rt/pure/increment
end
local.get $0
)
(func $~lib/rt/__typeinfo (; 18 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.const 256
i32.load
i32.gt_u
if
i32.const 176
i32.const 232
i32.const 22
i32.const 27
call $~lib/builtins/abort
unreachable
end
local.get $0
i32.const 3
i32.shl
i32.const 260
i32.add
i32.load
)
(func $~lib/rt/pure/growRoots (; 19 ;) (type $FUNCSIG$v)
(local $0 i32) (local $0 i32)
(local $1 i32) (local $1 i32)
(local $2 i32) (local $2 i32)
@ -1507,7 +1321,7 @@
i32.add i32.add
global.set $~lib/rt/pure/END global.set $~lib/rt/pure/END
) )
(func $~lib/rt/pure/appendRoot (; 20 ;) (type $FUNCSIG$vi) (param $0 i32) (func $~lib/rt/pure/appendRoot (; 17 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32) (local $1 i32)
global.get $~lib/rt/pure/CUR global.get $~lib/rt/pure/CUR
local.tee $1 local.tee $1
@ -1526,7 +1340,7 @@
i32.add i32.add
global.set $~lib/rt/pure/CUR global.set $~lib/rt/pure/CUR
) )
(func $~lib/rt/pure/decrement (; 21 ;) (type $FUNCSIG$vi) (param $0 i32) (func $~lib/rt/pure/decrement (; 18 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32) (local $1 i32)
(local $2 i32) (local $2 i32)
local.get $0 local.get $0
@ -1614,7 +1428,7 @@
end end
end end
) )
(func $~lib/rt/pure/__release (; 22 ;) (type $FUNCSIG$vi) (param $0 i32) (func $~lib/rt/pure/__release (; 19 ;) (type $FUNCSIG$vi) (param $0 i32)
local.get $0 local.get $0
i32.const 284 i32.const 284
i32.gt_u i32.gt_u
@ -1625,7 +1439,7 @@
call $~lib/rt/pure/decrement call $~lib/rt/pure/decrement
end end
) )
(func $~lib/rt/pure/markGray (; 23 ;) (type $FUNCSIG$vi) (param $0 i32) (func $~lib/rt/pure/markGray (; 20 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32) (local $1 i32)
local.get $0 local.get $0
i32.load offset=4 i32.load offset=4
@ -1649,7 +1463,7 @@
call $~lib/rt/__visit_members call $~lib/rt/__visit_members
end end
) )
(func $~lib/rt/pure/scanBlack (; 24 ;) (type $FUNCSIG$vi) (param $0 i32) (func $~lib/rt/pure/scanBlack (; 21 ;) (type $FUNCSIG$vi) (param $0 i32)
local.get $0 local.get $0
local.get $0 local.get $0
i32.load offset=4 i32.load offset=4
@ -1662,7 +1476,7 @@
i32.const 4 i32.const 4
call $~lib/rt/__visit_members call $~lib/rt/__visit_members
) )
(func $~lib/rt/pure/scan (; 25 ;) (type $FUNCSIG$vi) (param $0 i32) (func $~lib/rt/pure/scan (; 22 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32) (local $1 i32)
local.get $0 local.get $0
i32.load offset=4 i32.load offset=4
@ -1696,7 +1510,7 @@
end end
end end
) )
(func $~lib/rt/pure/collectWhite (; 26 ;) (type $FUNCSIG$vi) (param $0 i32) (func $~lib/rt/pure/collectWhite (; 23 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32) (local $1 i32)
local.get $0 local.get $0
i32.load offset=4 i32.load offset=4
@ -1724,7 +1538,7 @@
local.get $0 local.get $0
call $~lib/rt/tlsf/freeBlock call $~lib/rt/tlsf/freeBlock
) )
(func $~lib/rt/pure/__collect (; 27 ;) (type $FUNCSIG$v) (func $~lib/rt/pure/__collect (; 24 ;) (type $FUNCSIG$v)
(local $0 i32) (local $0 i32)
(local $1 i32) (local $1 i32)
(local $2 i32) (local $2 i32)
@ -1848,37 +1662,7 @@
local.get $5 local.get $5
global.set $~lib/rt/pure/CUR global.set $~lib/rt/pure/CUR
) )
(func $~lib/rt/__instanceof (; 28 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (func $~lib/rt/pure/__visit (; 25 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
local.get $0
i32.const 16
i32.sub
i32.load offset=8
local.tee $0
i32.const 256
i32.load
i32.le_u
if
loop $continue|0
local.get $0
local.get $1
i32.eq
if
i32.const 1
return
end
local.get $0
i32.const 3
i32.shl
i32.const 260
i32.add
i32.load offset=4
local.tee $0
br_if $continue|0
end
end
i32.const 0
)
(func $~lib/rt/pure/__visit (; 29 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
local.get $0 local.get $0
i32.const 284 i32.const 284
i32.lt_u i32.lt_u
@ -1988,7 +1772,7 @@
unreachable unreachable
end end
) )
(func $~lib/rt/__visit_members (; 30 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (func $~lib/rt/__visit_members (; 26 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
block $switch$1$default block $switch$1$default
block $switch$1$case$4 block $switch$1$case$4
block $switch$1$case$2 block $switch$1$case$2
@ -2012,7 +1796,7 @@
end end
unreachable unreachable
) )
(func $null (; 31 ;) (type $FUNCSIG$v) (func $null (; 27 ;) (type $FUNCSIG$v)
nop nop
) )
) )

View File

@ -18,21 +18,18 @@
(table $0 1 funcref) (table $0 1 funcref)
(elem (i32.const 0) $null) (elem (i32.const 0) $null)
(global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0))
(global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0))
(global $~lib/rt/pure/CUR (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/END (mut i32) (i32.const 0))
(global $~lib/rt/pure/ROOTS (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 256)) (global $~lib/rt/RTTI_BASE i32 (i32.const 256))
(global $~lib/heap/HEAP_BASE i32 (i32.const 284)) (global $~lib/heap/HEAP_BASE i32 (i32.const 284))
(export "memory" (memory $0)) (export "memory" (memory $0))
(export "__alloc" (func $~lib/rt/tlsf/__alloc)) (export "__alloc" (func $~lib/rt/tlsf/__alloc))
(export "__realloc" (func $~lib/rt/tlsf/__realloc))
(export "__free" (func $~lib/rt/tlsf/__free))
(export "__retain" (func $~lib/rt/pure/__retain)) (export "__retain" (func $~lib/rt/pure/__retain))
(export "__release" (func $~lib/rt/pure/__release)) (export "__release" (func $~lib/rt/pure/__release))
(export "__collect" (func $~lib/rt/pure/__collect)) (export "__collect" (func $~lib/rt/pure/__collect))
(export "__instanceof" (func $~lib/rt/__instanceof)) (export "__rtti" (global $~lib/rt/RTTI_BASE))
(export "__typeinfo" (func $~lib/rt/__typeinfo))
(func $~lib/rt/tlsf/removeBlock (; 1 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (func $~lib/rt/tlsf/removeBlock (; 1 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32) (local $2 i32)
(local $3 i32) (local $3 i32)
@ -1378,7 +1375,118 @@
i32.const 16 i32.const 16
i32.add i32.add
) )
(func $~lib/util/memory/memcpy (; 11 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (func $~lib/rt/pure/increment (; 11 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
local.get $0
i32.load offset=4
local.set $1
local.get $1
i32.const 268435455
i32.const -1
i32.xor
i32.and
local.get $1
i32.const 1
i32.add
i32.const 268435455
i32.const -1
i32.xor
i32.and
i32.eq
i32.eqz
if
i32.const 0
i32.const 128
i32.const 104
i32.const 2
call $~lib/builtins/abort
unreachable
end
local.get $0
local.get $1
i32.const 1
i32.add
i32.store offset=4
local.get $0
i32.load
i32.const 1
i32.and
i32.eqz
i32.eqz
if
i32.const 0
i32.const 128
i32.const 107
i32.const 13
call $~lib/builtins/abort
unreachable
end
)
(func $~lib/rt/pure/__retain (; 12 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
global.get $~lib/heap/HEAP_BASE
i32.gt_u
if
local.get $0
i32.const 16
i32.sub
call $~lib/rt/pure/increment
end
local.get $0
)
(func $~lib/rt/tlsf/freeBlock (; 13 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
local.get $1
i32.load
local.set $2
local.get $2
i32.const 1
i32.and
i32.eqz
i32.eqz
if
i32.const 0
i32.const 24
i32.const 531
i32.const 2
call $~lib/builtins/abort
unreachable
end
local.get $1
local.get $2
i32.const 1
i32.or
i32.store
local.get $0
local.get $1
call $~lib/rt/tlsf/insertBlock
)
(func $~lib/rt/__typeinfo (; 14 ;) (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 176
i32.const 232
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/util/memory/memcpy (; 15 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32) (local $3 i32)
(local $4 i32) (local $4 i32)
(local $5 i32) (local $5 i32)
@ -2569,7 +2677,7 @@
i32.store8 i32.store8
end end
) )
(func $~lib/memory/memory.copy (; 12 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (func $~lib/memory/memory.copy (; 16 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32) (local $3 i32)
(local $4 i32) (local $4 i32)
(local $5 i32) (local $5 i32)
@ -2796,328 +2904,7 @@
end end
end end
) )
(func $~lib/rt/tlsf/reallocateBlock (; 13 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (func $~lib/rt/pure/growRoots (; 17 ;) (type $FUNCSIG$v)
(local $3 i32)
(local $4 i32)
(local $5 i32)
(local $6 i32)
(local $7 i32)
(local $8 i32)
local.get $2
call $~lib/rt/tlsf/prepareSize
local.set $3
local.get $1
i32.load
local.set $4
local.get $4
i32.const 1
i32.and
i32.eqz
i32.eqz
if
i32.const 0
i32.const 24
i32.const 493
i32.const 13
call $~lib/builtins/abort
unreachable
end
local.get $3
local.get $4
i32.const -4
i32.and
i32.le_u
if
local.get $0
local.get $1
local.get $3
call $~lib/rt/tlsf/prepareBlock
local.get $1
local.get $2
i32.store offset=12
local.get $1
return
end
block $~lib/rt/tlsf/GETRIGHT|inlined.4 (result i32)
local.get $1
local.set $5
local.get $5
i32.const 16
i32.add
local.get $5
i32.load
i32.const 3
i32.const -1
i32.xor
i32.and
i32.add
end
local.set $6
local.get $6
i32.load
local.set $7
local.get $7
i32.const 1
i32.and
if
local.get $4
i32.const 3
i32.const -1
i32.xor
i32.and
i32.const 16
i32.add
local.get $7
i32.const 3
i32.const -1
i32.xor
i32.and
i32.add
local.set $5
local.get $5
local.get $3
i32.ge_u
if
local.get $0
local.get $6
call $~lib/rt/tlsf/removeBlock
local.get $1
local.get $4
i32.const 3
i32.and
local.get $5
i32.or
i32.store
local.get $1
local.get $2
i32.store offset=12
local.get $0
local.get $1
local.get $3
call $~lib/rt/tlsf/prepareBlock
local.get $1
return
end
end
local.get $0
local.get $2
call $~lib/rt/tlsf/allocateBlock
local.set $8
local.get $8
local.get $1
i32.load offset=4
i32.store offset=4
local.get $8
local.get $1
i32.load offset=8
i32.store offset=8
local.get $8
i32.const 16
i32.add
local.get $1
i32.const 16
i32.add
local.get $2
call $~lib/memory/memory.copy
local.get $1
local.get $4
i32.const 1
i32.or
i32.store
local.get $0
local.get $1
call $~lib/rt/tlsf/insertBlock
local.get $8
)
(func $~lib/rt/tlsf/__realloc (; 14 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
global.get $~lib/rt/tlsf/ROOT
i32.eqz
if
i32.const 0
i32.const 24
i32.const 553
i32.const 13
call $~lib/builtins/abort
unreachable
end
local.get $0
i32.const 0
i32.ne
if (result i32)
local.get $0
i32.const 15
i32.and
i32.eqz
else
i32.const 0
end
i32.eqz
if
i32.const 0
i32.const 24
i32.const 554
i32.const 2
call $~lib/builtins/abort
unreachable
end
global.get $~lib/rt/tlsf/ROOT
local.get $0
i32.const 16
i32.sub
local.get $1
call $~lib/rt/tlsf/reallocateBlock
i32.const 16
i32.add
)
(func $~lib/rt/tlsf/freeBlock (; 15 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
local.get $1
i32.load
local.set $2
local.get $2
i32.const 1
i32.and
i32.eqz
i32.eqz
if
i32.const 0
i32.const 24
i32.const 531
i32.const 2
call $~lib/builtins/abort
unreachable
end
local.get $1
local.get $2
i32.const 1
i32.or
i32.store
local.get $0
local.get $1
call $~lib/rt/tlsf/insertBlock
)
(func $~lib/rt/tlsf/__free (; 16 ;) (type $FUNCSIG$vi) (param $0 i32)
global.get $~lib/rt/tlsf/ROOT
i32.eqz
if
i32.const 0
i32.const 24
i32.const 561
i32.const 13
call $~lib/builtins/abort
unreachable
end
local.get $0
i32.const 0
i32.ne
if (result i32)
local.get $0
i32.const 15
i32.and
i32.eqz
else
i32.const 0
end
i32.eqz
if
i32.const 0
i32.const 24
i32.const 562
i32.const 2
call $~lib/builtins/abort
unreachable
end
global.get $~lib/rt/tlsf/ROOT
local.get $0
i32.const 16
i32.sub
call $~lib/rt/tlsf/freeBlock
)
(func $~lib/rt/pure/increment (; 17 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
local.get $0
i32.load offset=4
local.set $1
local.get $1
i32.const 268435455
i32.const -1
i32.xor
i32.and
local.get $1
i32.const 1
i32.add
i32.const 268435455
i32.const -1
i32.xor
i32.and
i32.eq
i32.eqz
if
i32.const 0
i32.const 128
i32.const 104
i32.const 2
call $~lib/builtins/abort
unreachable
end
local.get $0
local.get $1
i32.const 1
i32.add
i32.store offset=4
local.get $0
i32.load
i32.const 1
i32.and
i32.eqz
i32.eqz
if
i32.const 0
i32.const 128
i32.const 107
i32.const 13
call $~lib/builtins/abort
unreachable
end
)
(func $~lib/rt/pure/__retain (; 18 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
global.get $~lib/heap/HEAP_BASE
i32.gt_u
if
local.get $0
i32.const 16
i32.sub
call $~lib/rt/pure/increment
end
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 176
i32.const 232
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/pure/growRoots (; 20 ;) (type $FUNCSIG$v)
(local $0 i32) (local $0 i32)
(local $1 i32) (local $1 i32)
(local $2 i32) (local $2 i32)
@ -3162,7 +2949,7 @@
i32.add i32.add
global.set $~lib/rt/pure/END global.set $~lib/rt/pure/END
) )
(func $~lib/rt/pure/appendRoot (; 21 ;) (type $FUNCSIG$vi) (param $0 i32) (func $~lib/rt/pure/appendRoot (; 18 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32) (local $1 i32)
global.get $~lib/rt/pure/CUR global.get $~lib/rt/pure/CUR
local.set $1 local.set $1
@ -3182,7 +2969,7 @@
i32.add i32.add
global.set $~lib/rt/pure/CUR global.set $~lib/rt/pure/CUR
) )
(func $~lib/rt/pure/decrement (; 22 ;) (type $FUNCSIG$vi) (param $0 i32) (func $~lib/rt/pure/decrement (; 19 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32) (local $1 i32)
(local $2 i32) (local $2 i32)
local.get $0 local.get $0
@ -3284,7 +3071,7 @@
end end
end end
) )
(func $~lib/rt/pure/__release (; 23 ;) (type $FUNCSIG$vi) (param $0 i32) (func $~lib/rt/pure/__release (; 20 ;) (type $FUNCSIG$vi) (param $0 i32)
local.get $0 local.get $0
global.get $~lib/heap/HEAP_BASE global.get $~lib/heap/HEAP_BASE
i32.gt_u i32.gt_u
@ -3295,7 +3082,7 @@
call $~lib/rt/pure/decrement call $~lib/rt/pure/decrement
end end
) )
(func $~lib/rt/pure/markGray (; 24 ;) (type $FUNCSIG$vi) (param $0 i32) (func $~lib/rt/pure/markGray (; 21 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32) (local $1 i32)
local.get $0 local.get $0
i32.load offset=4 i32.load offset=4
@ -3322,7 +3109,7 @@
call $~lib/rt/__visit_members call $~lib/rt/__visit_members
end end
) )
(func $~lib/rt/pure/scanBlack (; 25 ;) (type $FUNCSIG$vi) (param $0 i32) (func $~lib/rt/pure/scanBlack (; 22 ;) (type $FUNCSIG$vi) (param $0 i32)
local.get $0 local.get $0
local.get $0 local.get $0
i32.load offset=4 i32.load offset=4
@ -3339,7 +3126,7 @@
i32.const 4 i32.const 4
call $~lib/rt/__visit_members call $~lib/rt/__visit_members
) )
(func $~lib/rt/pure/scan (; 26 ;) (type $FUNCSIG$vi) (param $0 i32) (func $~lib/rt/pure/scan (; 23 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32) (local $1 i32)
local.get $0 local.get $0
i32.load offset=4 i32.load offset=4
@ -3376,7 +3163,7 @@
end end
end end
) )
(func $~lib/rt/pure/collectWhite (; 27 ;) (type $FUNCSIG$vi) (param $0 i32) (func $~lib/rt/pure/collectWhite (; 24 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32) (local $1 i32)
local.get $0 local.get $0
i32.load offset=4 i32.load offset=4
@ -3405,7 +3192,7 @@
local.get $0 local.get $0
call $~lib/rt/tlsf/freeBlock call $~lib/rt/tlsf/freeBlock
) )
(func $~lib/rt/pure/__collect (; 28 ;) (type $FUNCSIG$v) (func $~lib/rt/pure/__collect (; 25 ;) (type $FUNCSIG$v)
(local $0 i32) (local $0 i32)
(local $1 i32) (local $1 i32)
(local $2 i32) (local $2 i32)
@ -3553,44 +3340,7 @@
local.get $0 local.get $0
global.set $~lib/rt/pure/CUR global.set $~lib/rt/pure/CUR
) )
(func $~lib/rt/__instanceof (; 29 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (func $~lib/rt/pure/__visit (; 26 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
(local $3 i32)
local.get $0
i32.const 16
i32.sub
i32.load offset=8
local.set $2
global.get $~lib/rt/RTTI_BASE
local.set $3
local.get $2
local.get $3
i32.load
i32.le_u
if
loop $continue|0
local.get $2
local.get $1
i32.eq
if
i32.const 1
return
end
local.get $3
i32.const 4
i32.add
local.get $2
i32.const 8
i32.mul
i32.add
i32.load offset=4
local.tee $2
br_if $continue|0
end
end
i32.const 0
)
(func $~lib/rt/pure/__visit (; 30 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32) (local $2 i32)
(local $3 i32) (local $3 i32)
local.get $0 local.get $0
@ -3744,7 +3494,7 @@
end end
end end
) )
(func $~lib/rt/__visit_members (; 31 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (func $~lib/rt/__visit_members (; 27 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32) (local $2 i32)
block block
end end
@ -3801,6 +3551,6 @@
unreachable unreachable
end end
) )
(func $null (; 32 ;) (type $FUNCSIG$v) (func $null (; 28 ;) (type $FUNCSIG$v)
) )
) )

View File

@ -1,28 +1,21 @@
(module (module
(type $FUNCSIG$iii (func (param i32 i32) (result i32))) (type $FUNCSIG$iii (func (param i32 i32) (result i32)))
(type $FUNCSIG$viii (func (param i32 i32 i32)))
(type $FUNCSIG$vi (func (param i32)))
(type $FUNCSIG$ii (func (param i32) (result i32))) (type $FUNCSIG$ii (func (param i32) (result i32)))
(type $FUNCSIG$vi (func (param i32)))
(type $FUNCSIG$v (func)) (type $FUNCSIG$v (func))
(type $FUNCSIG$viiii (func (param i32 i32 i32 i32)))
(import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32)))
(memory $0 1) (memory $0 1)
(data (i32.const 8) "$\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 8) "\03\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08")
(data (i32.const 64) "\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 104) "\03\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08")
(global $~lib/rt/stub/startOffset (mut i32) (i32.const 0)) (global $~lib/rt/stub/startOffset (mut i32) (i32.const 0))
(global $~lib/rt/stub/offset (mut i32) (i32.const 0)) (global $~lib/rt/stub/offset (mut i32) (i32.const 0))
(global $~lib/rt/RTTI_BASE i32 (i32.const 8))
(export "memory" (memory $0)) (export "memory" (memory $0))
(export "__alloc" (func $~lib/rt/stub/__alloc)) (export "__alloc" (func $~lib/rt/stub/__alloc))
(export "__realloc" (func $~lib/rt/stub/__realloc))
(export "__free" (func $~lib/rt/stub/__free))
(export "__retain" (func $~lib/rt/stub/__retain)) (export "__retain" (func $~lib/rt/stub/__retain))
(export "__release" (func $~lib/rt/stub/__free)) (export "__release" (func $~lib/rt/stub/__release))
(export "__collect" (func $~lib/rt/stub/__collect)) (export "__collect" (func $~lib/rt/stub/__collect))
(export "__instanceof" (func $~lib/rt/__instanceof)) (export "__rtti" (global $~lib/rt/RTTI_BASE))
(export "__typeinfo" (func $~lib/rt/__typeinfo))
(start $start) (start $start)
(func $~lib/rt/stub/__alloc (; 1 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (func $~lib/rt/stub/__alloc (; 0 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32) (local $2 i32)
(local $3 i32) (local $3 i32)
(local $4 i32) (local $4 i32)
@ -96,269 +89,17 @@
i32.store offset=12 i32.store offset=12
local.get $3 local.get $3
) )
(func $~lib/memory/memory.copy (; 2 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (func $~lib/rt/stub/__retain (; 1 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $3 i32)
(local $4 i32)
block $~lib/util/memory/memmove|inlined.0
local.get $2
local.set $3
local.get $0
local.get $1
i32.eq
br_if $~lib/util/memory/memmove|inlined.0
local.get $0
local.get $1
i32.lt_u
if
local.get $1
i32.const 7
i32.and
local.get $0
i32.const 7
i32.and
i32.eq
if
loop $continue|0
local.get $0
i32.const 7
i32.and
if
local.get $3
i32.eqz
br_if $~lib/util/memory/memmove|inlined.0
local.get $3
i32.const 1
i32.sub
local.set $3
local.get $0
local.tee $2
i32.const 1
i32.add
local.set $0
local.get $1
local.tee $4
i32.const 1
i32.add
local.set $1
local.get $2
local.get $4
i32.load8_u
i32.store8
br $continue|0
end
end
loop $continue|1
local.get $3
i32.const 8
i32.ge_u
if
local.get $0
local.get $1
i64.load
i64.store
local.get $3
i32.const 8
i32.sub
local.set $3
local.get $0
i32.const 8
i32.add
local.set $0
local.get $1
i32.const 8
i32.add
local.set $1
br $continue|1
end
end
end
loop $continue|2
local.get $3
if
local.get $0
local.tee $2
i32.const 1
i32.add
local.set $0
local.get $1
local.tee $4
i32.const 1
i32.add
local.set $1
local.get $2
local.get $4
i32.load8_u
i32.store8
local.get $3
i32.const 1
i32.sub
local.set $3
br $continue|2
end
end
else
local.get $1
i32.const 7
i32.and
local.get $0
i32.const 7
i32.and
i32.eq
if
loop $continue|3
local.get $0
local.get $3
i32.add
i32.const 7
i32.and
if
local.get $3
i32.eqz
br_if $~lib/util/memory/memmove|inlined.0
local.get $0
local.get $3
i32.const 1
i32.sub
local.tee $3
i32.add
local.get $1
local.get $3
i32.add
i32.load8_u
i32.store8
br $continue|3
end
end
loop $continue|4
local.get $3
i32.const 8
i32.ge_u
if
local.get $0
local.get $3
i32.const 8
i32.sub
local.tee $3
i32.add
local.get $1
local.get $3
i32.add
i64.load
i64.store
br $continue|4
end
end
end
loop $continue|5
local.get $3
if
local.get $0
local.get $3
i32.const 1
i32.sub
local.tee $3
i32.add
local.get $1
local.get $3
i32.add
i32.load8_u
i32.store8
br $continue|5
end
end
end
end
)
(func $~lib/rt/stub/__realloc (; 3 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
(local $3 i32)
local.get $1
local.get $0
i32.const 16
i32.sub
local.tee $2
i32.load offset=12
local.tee $3
i32.gt_u
if
local.get $1
local.get $2
i32.load offset=8
call $~lib/rt/stub/__alloc
local.tee $1
local.get $0
local.get $3
call $~lib/memory/memory.copy
local.get $1
local.set $0
else
local.get $2
local.get $1
i32.store offset=12
end
local.get $0 local.get $0
) )
(func $~lib/rt/stub/__free (; 4 ;) (type $FUNCSIG$vi) (param $0 i32) (func $~lib/rt/stub/__release (; 2 ;) (type $FUNCSIG$vi) (param $0 i32)
nop nop
) )
(func $~lib/rt/stub/__retain (; 5 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (func $~lib/rt/stub/__collect (; 3 ;) (type $FUNCSIG$v)
local.get $0
)
(func $~lib/rt/stub/__collect (; 6 ;) (type $FUNCSIG$v)
nop nop
) )
(func $~lib/rt/__instanceof (; 7 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (func $start (; 4 ;) (type $FUNCSIG$v)
local.get $0 i32.const 48
i32.const 16
i32.sub
i32.load offset=8
local.tee $0
i32.const 104
i32.load
i32.le_u
if
loop $continue|0
local.get $0
local.get $1
i32.eq
if
i32.const 1
return
end
local.get $0
i32.const 3
i32.shl
i32.const 108
i32.add
i32.load offset=4
local.tee $0
br_if $continue|0
end
end
i32.const 0
)
(func $~lib/rt/__typeinfo (; 8 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.const 104
i32.load
i32.gt_u
if
i32.const 24
i32.const 80
i32.const 22
i32.const 27
call $~lib/builtins/abort
unreachable
end
local.get $0
i32.const 3
i32.shl
i32.const 108
i32.add
i32.load
)
(func $start (; 9 ;) (type $FUNCSIG$v)
i32.const 144
global.set $~lib/rt/stub/startOffset global.set $~lib/rt/stub/startOffset
global.get $~lib/rt/stub/startOffset global.get $~lib/rt/stub/startOffset
global.set $~lib/rt/stub/offset global.set $~lib/rt/stub/offset

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 one or more lines are too long

File diff suppressed because one or more lines are too long