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
(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$viiii (func (param i32 i32 i32 i32)))
(type $FUNCSIG$vii (func (param i32 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/END (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 "__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 "__release" (func $~lib/rt/pure/__release))
(export "__collect" (func $~lib/rt/pure/__collect))
(export "__instanceof" (func $~lib/rt/__instanceof))
(export "__typeinfo" (func $~lib/rt/__typeinfo))
(export "__rtti" (global $~lib/rt/RTTI_BASE))
(start $start)
(func $~lib/rt/tlsf/removeBlock (; 1 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
@ -1021,7 +1018,102 @@
i32.const 16
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 $4 i32)
block $~lib/util/memory/memmove|inlined.0
@ -1194,285 +1286,7 @@
end
end
)
(func $~lib/rt/tlsf/reallocateBlock (; 12 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(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)
(func $~lib/rt/pure/growRoots (; 16 ;) (type $FUNCSIG$v)
(local $0 i32)
(local $1 i32)
(local $2 i32)
@ -1508,7 +1322,7 @@
i32.add
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)
global.get $~lib/rt/pure/CUR
local.tee $1
@ -1527,7 +1341,7 @@
i32.add
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 $2 i32)
local.get $0
@ -1615,7 +1429,7 @@
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
i32.const 292
i32.gt_u
@ -1626,7 +1440,7 @@
call $~lib/rt/pure/decrement
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.get $0
i32.load offset=4
@ -1650,7 +1464,7 @@
call $~lib/rt/__visit_members
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
i32.load offset=4
@ -1663,7 +1477,7 @@
i32.const 4
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.get $0
i32.load offset=4
@ -1697,7 +1511,7 @@
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.get $0
i32.load offset=4
@ -1725,7 +1539,7 @@
local.get $0
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 $1 i32)
(local $2 i32)
@ -1849,44 +1663,14 @@
local.get $5
global.set $~lib/rt/pure/CUR
)
(func $~lib/rt/__instanceof (; 28 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result 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 $start (; 29 ;) (type $FUNCSIG$v)
(func $start (; 25 ;) (type $FUNCSIG$v)
i32.const 0
i32.const 3
call $~lib/rt/tlsf/__alloc
call $~lib/rt/pure/__retain
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
i32.const 292
i32.lt_u
@ -1996,7 +1780,7 @@
unreachable
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$case$4
block $switch$1$case$2
@ -2020,7 +1804,7 @@
end
unreachable
)
(func $null (; 32 ;) (type $FUNCSIG$v)
(func $null (; 28 ;) (type $FUNCSIG$v)
nop
)
)

View File

@ -19,21 +19,18 @@
(table $0 1 funcref)
(elem (i32.const 0) $null)
(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/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 256))
(global $~lib/heap/HEAP_BASE i32 (i32.const 292))
(export "memory" (memory $0))
(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 "__release" (func $~lib/rt/pure/__release))
(export "__collect" (func $~lib/rt/pure/__collect))
(export "__instanceof" (func $~lib/rt/__instanceof))
(export "__typeinfo" (func $~lib/rt/__typeinfo))
(export "__rtti" (global $~lib/rt/RTTI_BASE))
(start $start)
(func $~lib/rt/tlsf/removeBlock (; 1 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
@ -1380,7 +1377,118 @@
i32.const 16
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 $4 i32)
(local $5 i32)
@ -2571,7 +2679,7 @@
i32.store8
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 $4 i32)
(local $5 i32)
@ -2798,328 +2906,7 @@
end
end
)
(func $~lib/rt/tlsf/reallocateBlock (; 13 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(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)
(func $~lib/rt/pure/growRoots (; 17 ;) (type $FUNCSIG$v)
(local $0 i32)
(local $1 i32)
(local $2 i32)
@ -3164,7 +2951,7 @@
i32.add
global.set $~lib/rt/pure/END
)
(func $~lib/rt/pure/appendRoot (; 21 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/rt/pure/appendRoot (; 18 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
global.get $~lib/rt/pure/CUR
local.set $1
@ -3184,7 +2971,7 @@
i32.add
global.set $~lib/rt/pure/CUR
)
(func $~lib/rt/pure/decrement (; 22 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/rt/pure/decrement (; 19 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
(local $2 i32)
local.get $0
@ -3286,7 +3073,7 @@
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
global.get $~lib/heap/HEAP_BASE
i32.gt_u
@ -3297,7 +3084,7 @@
call $~lib/rt/pure/decrement
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.get $0
i32.load offset=4
@ -3324,7 +3111,7 @@
call $~lib/rt/__visit_members
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
i32.load offset=4
@ -3341,7 +3128,7 @@
i32.const 4
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.get $0
i32.load offset=4
@ -3378,7 +3165,7 @@
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.get $0
i32.load offset=4
@ -3407,7 +3194,7 @@
local.get $0
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 $1 i32)
(local $2 i32)
@ -3555,44 +3342,7 @@
local.get $0
global.set $~lib/rt/pure/CUR
)
(func $~lib/rt/__instanceof (; 29 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 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)
(func $rc/rereturn/Ref#constructor (; 26 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.eqz
if
@ -3604,21 +3354,21 @@
end
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
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
)
(func $start:rc/rereturn (; 33 ;) (type $FUNCSIG$v)
(func $start:rc/rereturn (; 29 ;) (type $FUNCSIG$v)
call $rc/rereturn/rereturnRef
call $~lib/rt/pure/__release
)
(func $start (; 34 ;) (type $FUNCSIG$v)
(func $start (; 30 ;) (type $FUNCSIG$v)
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 $3 i32)
local.get $0
@ -3772,7 +3522,7 @@
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)
block
end
@ -3829,6 +3579,6 @@
unreachable
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 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 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 420) "A\04\00\00\03\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\02\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 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 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 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)
(elem (i32.const 0) $null)
(global $rt/flags/VALUE_ALIGN_REF i32 (i32.const 64))

View File

@ -1,7 +1,6 @@
(module
(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$viiii (func (param i32 i32 i32 i32)))
(type $FUNCSIG$vii (func (param i32 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/END (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 "__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 "__release" (func $~lib/rt/pure/__release))
(export "__collect" (func $~lib/rt/pure/__collect))
(export "__instanceof" (func $~lib/rt/__instanceof))
(export "__typeinfo" (func $~lib/rt/__typeinfo))
(export "__rtti" (global $~lib/rt/RTTI_BASE))
(func $~lib/rt/tlsf/removeBlock (; 1 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
(local $3 i32)
@ -1020,7 +1017,102 @@
i32.const 16
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 $4 i32)
block $~lib/util/memory/memmove|inlined.0
@ -1193,285 +1285,7 @@
end
end
)
(func $~lib/rt/tlsf/reallocateBlock (; 12 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(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)
(func $~lib/rt/pure/growRoots (; 16 ;) (type $FUNCSIG$v)
(local $0 i32)
(local $1 i32)
(local $2 i32)
@ -1507,7 +1321,7 @@
i32.add
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)
global.get $~lib/rt/pure/CUR
local.tee $1
@ -1526,7 +1340,7 @@
i32.add
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 $2 i32)
local.get $0
@ -1614,7 +1428,7 @@
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
i32.const 284
i32.gt_u
@ -1625,7 +1439,7 @@
call $~lib/rt/pure/decrement
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.get $0
i32.load offset=4
@ -1649,7 +1463,7 @@
call $~lib/rt/__visit_members
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
i32.load offset=4
@ -1662,7 +1476,7 @@
i32.const 4
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.get $0
i32.load offset=4
@ -1696,7 +1510,7 @@
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.get $0
i32.load offset=4
@ -1724,7 +1538,7 @@
local.get $0
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 $1 i32)
(local $2 i32)
@ -1848,37 +1662,7 @@
local.get $5
global.set $~lib/rt/pure/CUR
)
(func $~lib/rt/__instanceof (; 28 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result 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)
(func $~lib/rt/pure/__visit (; 25 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
local.get $0
i32.const 284
i32.lt_u
@ -1988,7 +1772,7 @@
unreachable
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$case$4
block $switch$1$case$2
@ -2012,7 +1796,7 @@
end
unreachable
)
(func $null (; 31 ;) (type $FUNCSIG$v)
(func $null (; 27 ;) (type $FUNCSIG$v)
nop
)
)

View File

@ -18,21 +18,18 @@
(table $0 1 funcref)
(elem (i32.const 0) $null)
(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/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 256))
(global $~lib/heap/HEAP_BASE i32 (i32.const 284))
(export "memory" (memory $0))
(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 "__release" (func $~lib/rt/pure/__release))
(export "__collect" (func $~lib/rt/pure/__collect))
(export "__instanceof" (func $~lib/rt/__instanceof))
(export "__typeinfo" (func $~lib/rt/__typeinfo))
(export "__rtti" (global $~lib/rt/RTTI_BASE))
(func $~lib/rt/tlsf/removeBlock (; 1 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
(local $3 i32)
@ -1378,7 +1375,118 @@
i32.const 16
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 $4 i32)
(local $5 i32)
@ -2569,7 +2677,7 @@
i32.store8
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 $4 i32)
(local $5 i32)
@ -2796,328 +2904,7 @@
end
end
)
(func $~lib/rt/tlsf/reallocateBlock (; 13 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(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)
(func $~lib/rt/pure/growRoots (; 17 ;) (type $FUNCSIG$v)
(local $0 i32)
(local $1 i32)
(local $2 i32)
@ -3162,7 +2949,7 @@
i32.add
global.set $~lib/rt/pure/END
)
(func $~lib/rt/pure/appendRoot (; 21 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/rt/pure/appendRoot (; 18 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
global.get $~lib/rt/pure/CUR
local.set $1
@ -3182,7 +2969,7 @@
i32.add
global.set $~lib/rt/pure/CUR
)
(func $~lib/rt/pure/decrement (; 22 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/rt/pure/decrement (; 19 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
(local $2 i32)
local.get $0
@ -3284,7 +3071,7 @@
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
global.get $~lib/heap/HEAP_BASE
i32.gt_u
@ -3295,7 +3082,7 @@
call $~lib/rt/pure/decrement
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.get $0
i32.load offset=4
@ -3322,7 +3109,7 @@
call $~lib/rt/__visit_members
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
i32.load offset=4
@ -3339,7 +3126,7 @@
i32.const 4
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.get $0
i32.load offset=4
@ -3376,7 +3163,7 @@
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.get $0
i32.load offset=4
@ -3405,7 +3192,7 @@
local.get $0
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 $1 i32)
(local $2 i32)
@ -3553,44 +3340,7 @@
local.get $0
global.set $~lib/rt/pure/CUR
)
(func $~lib/rt/__instanceof (; 29 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 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 $~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 $2 i32)
(local $3 i32)
local.get $0
@ -3744,7 +3494,7 @@
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)
block
end
@ -3801,6 +3551,6 @@
unreachable
end
)
(func $null (; 32 ;) (type $FUNCSIG$v)
(func $null (; 28 ;) (type $FUNCSIG$v)
)
)

View File

@ -1,28 +1,21 @@
(module
(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$vi (func (param i32)))
(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)
(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 104) "\03\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08")
(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")
(global $~lib/rt/stub/startOffset (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 "__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 "__release" (func $~lib/rt/stub/__free))
(export "__release" (func $~lib/rt/stub/__release))
(export "__collect" (func $~lib/rt/stub/__collect))
(export "__instanceof" (func $~lib/rt/__instanceof))
(export "__typeinfo" (func $~lib/rt/__typeinfo))
(export "__rtti" (global $~lib/rt/RTTI_BASE))
(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 $3 i32)
(local $4 i32)
@ -96,269 +89,17 @@
i32.store offset=12
local.get $3
)
(func $~lib/memory/memory.copy (; 2 ;) (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
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
(func $~lib/rt/stub/__retain (; 1 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
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
)
(func $~lib/rt/stub/__retain (; 5 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
)
(func $~lib/rt/stub/__collect (; 6 ;) (type $FUNCSIG$v)
(func $~lib/rt/stub/__collect (; 3 ;) (type $FUNCSIG$v)
nop
)
(func $~lib/rt/__instanceof (; 7 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
local.get $0
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
(func $start (; 4 ;) (type $FUNCSIG$v)
i32.const 48
global.set $~lib/rt/stub/startOffset
global.get $~lib/rt/stub/startOffset
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