local flow flags, see what works

This commit is contained in:
dcode
2019-03-17 01:35:44 +01:00
parent 2d76da9465
commit e63c6bd388
53 changed files with 13472 additions and 16033 deletions

View File

@ -1,11 +1,14 @@
(module
(type $FUNCSIG$v (func))
(type $FUNCSIG$ii (func (param i32) (result i32)))
(type $FUNCSIG$iii (func (param i32 i32) (result i32)))
(type $FUNCSIG$vi (func (param i32)))
(type $FUNCSIG$viiii (func (param i32 i32 i32 i32)))
(type $FUNCSIG$i (func (result i32)))
(import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32)))
(memory $0 1)
(data (i32.const 8) "\01\00\00\00\1a\00\00\00c\00a\00l\00l\00-\00s\00u\00p\00e\00r\00.\00t\00s")
(data (i32.const 8) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00u\00n\00t\00i\00m\00e\00.\00t\00s")
(data (i32.const 48) "\02\00\00\00\1a\00\00\00c\00a\00l\00l\00-\00s\00u\00p\00e\00r\00.\00t\00s")
(table $0 1 funcref)
(elem (i32.const 0) $null)
(global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0))
@ -75,7 +78,7 @@
global.set $~lib/allocator/arena/offset
local.get $1
)
(func $~lib/runtime/ALLOCATE (; 2 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/runtime/doAllocate (; 2 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
i32.const 1
i32.const 32
@ -96,12 +99,51 @@
i32.const 8
i32.add
)
(func $call-super/A#constructor (; 3 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/runtime/assertUnregistered (; 3 ;) (type $FUNCSIG$vi) (param $0 i32)
local.get $0
i32.const 84
i32.le_u
if
i32.const 0
i32.const 16
i32.const 188
i32.const 2
call $~lib/env/abort
unreachable
end
local.get $0
i32.const 8
i32.sub
i32.load
i32.const -1520547049
i32.ne
if
i32.const 0
i32.const 16
i32.const 189
i32.const 2
call $~lib/env/abort
unreachable
end
)
(func $~lib/runtime/doRegister (; 4 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
local.get $0
call $~lib/runtime/assertUnregistered
local.get $0
i32.const 8
i32.sub
local.get $1
i32.store
local.get $0
)
(func $call-super/A#constructor (; 5 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.eqz
if
i32.const 4
call $~lib/runtime/ALLOCATE
call $~lib/runtime/doAllocate
i32.const 1
call $~lib/runtime/doRegister
local.set $0
end
local.get $0
@ -113,7 +155,7 @@
i32.ne
if
i32.const 0
i32.const 16
i32.const 56
i32.const 8
i32.const 4
call $~lib/env/abort
@ -121,10 +163,12 @@
end
local.get $0
)
(func $call-super/B#constructor (; 4 ;) (type $FUNCSIG$i) (result i32)
(func $call-super/B#constructor (; 6 ;) (type $FUNCSIG$i) (result i32)
(local $0 i32)
i32.const 8
call $~lib/runtime/ALLOCATE
call $~lib/runtime/doAllocate
i32.const 3
call $~lib/runtime/doRegister
call $call-super/A#constructor
local.tee $0
i32.const 2
@ -135,7 +179,7 @@
i32.ne
if
i32.const 0
i32.const 16
i32.const 56
i32.const 17
i32.const 4
call $~lib/env/abort
@ -147,7 +191,7 @@
i32.ne
if
i32.const 0
i32.const 16
i32.const 56
i32.const 18
i32.const 4
call $~lib/env/abort
@ -155,7 +199,7 @@
end
local.get $0
)
(func $call-super/test1 (; 5 ;) (type $FUNCSIG$v)
(func $call-super/test1 (; 7 ;) (type $FUNCSIG$v)
(local $0 i32)
call $call-super/B#constructor
local.tee $0
@ -164,7 +208,7 @@
i32.ne
if
i32.const 0
i32.const 16
i32.const 56
i32.const 24
i32.const 2
call $~lib/env/abort
@ -176,32 +220,32 @@
i32.ne
if
i32.const 0
i32.const 16
i32.const 56
i32.const 25
i32.const 2
call $~lib/env/abort
unreachable
end
)
(func $call-super/C#constructor (; 6 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
(func $call-super/D#constructor (; 8 ;) (type $FUNCSIG$i) (result i32)
(local $0 i32)
i32.const 8
call $~lib/runtime/doAllocate
i32.const 5
call $~lib/runtime/doRegister
local.tee $0
i32.eqz
if
i32.const 4
call $~lib/runtime/ALLOCATE
call $~lib/runtime/doAllocate
i32.const 4
call $~lib/runtime/doRegister
local.set $0
end
local.get $0
i32.const 1
i32.store
local.get $0
)
(func $call-super/D#constructor (; 7 ;) (type $FUNCSIG$i) (result i32)
(local $0 i32)
i32.const 8
call $~lib/runtime/ALLOCATE
call $call-super/C#constructor
local.tee $0
i32.const 2
i32.store offset=4
local.get $0
@ -210,7 +254,7 @@
i32.ne
if
i32.const 0
i32.const 16
i32.const 56
i32.const 40
i32.const 4
call $~lib/env/abort
@ -222,7 +266,7 @@
i32.ne
if
i32.const 0
i32.const 16
i32.const 56
i32.const 41
i32.const 4
call $~lib/env/abort
@ -230,7 +274,7 @@
end
local.get $0
)
(func $call-super/test2 (; 8 ;) (type $FUNCSIG$v)
(func $call-super/test2 (; 9 ;) (type $FUNCSIG$v)
(local $0 i32)
call $call-super/D#constructor
local.tee $0
@ -239,7 +283,7 @@
i32.ne
if
i32.const 0
i32.const 16
i32.const 56
i32.const 47
i32.const 2
call $~lib/env/abort
@ -251,19 +295,21 @@
i32.ne
if
i32.const 0
i32.const 16
i32.const 56
i32.const 48
i32.const 2
call $~lib/env/abort
unreachable
end
)
(func $call-super/E#constructor (; 9 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $call-super/E#constructor (; 10 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.eqz
if
i32.const 4
call $~lib/runtime/ALLOCATE
call $~lib/runtime/doAllocate
i32.const 6
call $~lib/runtime/doRegister
local.set $0
end
local.get $0
@ -275,7 +321,7 @@
i32.ne
if
i32.const 0
i32.const 16
i32.const 56
i32.const 58
i32.const 4
call $~lib/env/abort
@ -283,10 +329,12 @@
end
local.get $0
)
(func $call-super/test3 (; 10 ;) (type $FUNCSIG$v)
(func $call-super/test3 (; 11 ;) (type $FUNCSIG$v)
(local $0 i32)
i32.const 8
call $~lib/runtime/ALLOCATE
call $~lib/runtime/doAllocate
i32.const 7
call $~lib/runtime/doRegister
call $call-super/E#constructor
local.tee $0
i32.const 2
@ -297,7 +345,7 @@
i32.ne
if
i32.const 0
i32.const 16
i32.const 56
i32.const 68
i32.const 2
call $~lib/env/abort
@ -309,33 +357,50 @@
i32.ne
if
i32.const 0
i32.const 16
i32.const 56
i32.const 69
i32.const 2
call $~lib/env/abort
unreachable
end
)
(func $call-super/H#constructor (; 11 ;) (type $FUNCSIG$i) (result i32)
(func $call-super/H#constructor (; 12 ;) (type $FUNCSIG$i) (result i32)
(local $0 i32)
i32.const 8
call $~lib/runtime/ALLOCATE
call $call-super/C#constructor
call $~lib/runtime/doAllocate
i32.const 9
call $~lib/runtime/doRegister
local.tee $0
i32.eqz
if
i32.const 4
call $~lib/runtime/doAllocate
i32.const 8
call $~lib/runtime/doRegister
local.set $0
end
local.get $0
i32.const 1
i32.store
local.get $0
i32.const 2
i32.store offset=4
local.get $0
)
(func $call-super/test4 (; 12 ;) (type $FUNCSIG$v)
(func $call-super/test4 (; 13 ;) (type $FUNCSIG$v)
(local $0 i32)
call $call-super/H#constructor
block (result i32)
block (result i32)
call $call-super/H#constructor
end
end
local.tee $0
i32.load
i32.const 1
i32.ne
if
i32.const 0
i32.const 16
i32.const 56
i32.const 86
i32.const 2
call $~lib/env/abort
@ -347,23 +412,50 @@
i32.ne
if
i32.const 0
i32.const 16
i32.const 56
i32.const 87
i32.const 2
call $~lib/env/abort
unreachable
end
)
(func $call-super/test5 (; 13 ;) (type $FUNCSIG$v)
(func $call-super/J#constructor (; 14 ;) (type $FUNCSIG$i) (result i32)
(local $0 i32)
call $call-super/H#constructor
i32.const 8
call $~lib/runtime/doAllocate
i32.const 11
call $~lib/runtime/doRegister
local.tee $0
i32.eqz
if
i32.const 4
call $~lib/runtime/doAllocate
i32.const 10
call $~lib/runtime/doRegister
local.set $0
end
local.get $0
i32.const 1
i32.store
local.get $0
i32.const 2
i32.store offset=4
local.get $0
)
(func $call-super/test5 (; 15 ;) (type $FUNCSIG$v)
(local $0 i32)
block (result i32)
block (result i32)
call $call-super/J#constructor
end
end
local.tee $0
i32.load
i32.const 1
i32.ne
if
i32.const 0
i32.const 16
i32.const 56
i32.const 106
i32.const 2
call $~lib/env/abort
@ -375,15 +467,15 @@
i32.ne
if
i32.const 0
i32.const 16
i32.const 56
i32.const 107
i32.const 2
call $~lib/env/abort
unreachable
end
)
(func $start (; 14 ;) (type $FUNCSIG$v)
i32.const 48
(func $start (; 16 ;) (type $FUNCSIG$v)
i32.const 88
global.set $~lib/allocator/arena/startOffset
global.get $~lib/allocator/arena/startOffset
global.set $~lib/allocator/arena/offset
@ -393,7 +485,7 @@
call $call-super/test4
call $call-super/test5
)
(func $null (; 15 ;) (type $FUNCSIG$v)
(func $null (; 17 ;) (type $FUNCSIG$v)
nop
)
)

View File

@ -1,10 +1,13 @@
(module
(type $FUNCSIG$v (func))
(type $FUNCSIG$ii (func (param i32) (result i32)))
(type $FUNCSIG$iii (func (param i32 i32) (result i32)))
(type $FUNCSIG$vi (func (param i32)))
(type $FUNCSIG$viiii (func (param i32 i32 i32 i32)))
(import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32)))
(memory $0 1)
(data (i32.const 8) "\01\00\00\00\1a\00\00\00c\00a\00l\00l\00-\00s\00u\00p\00e\00r\00.\00t\00s\00")
(data (i32.const 8) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00u\00n\00t\00i\00m\00e\00.\00t\00s\00")
(data (i32.const 48) "\02\00\00\00\1a\00\00\00c\00a\00l\00l\00-\00s\00u\00p\00e\00r\00.\00t\00s\00")
(table $0 1 funcref)
(elem (i32.const 0) $null)
(global $~lib/runtime/GC_IMPLEMENTED i32 (i32.const 0))
@ -12,11 +15,12 @@
(global $~lib/runtime/HEADER_MAGIC i32 (i32.const -1520547049))
(global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0))
(global $~lib/allocator/arena/offset (mut i32) (i32.const 0))
(global $~lib/memory/HEAP_BASE i32 (i32.const 44))
(global $~lib/ASC_NO_ASSERT i32 (i32.const 0))
(global $~lib/memory/HEAP_BASE i32 (i32.const 84))
(export "memory" (memory $0))
(export "table" (table $0))
(start $start)
(func $~lib/runtime/ADJUST (; 1 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/runtime/ADJUSTOBLOCK (; 1 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
i32.const 1
i32.const 32
local.get $0
@ -113,10 +117,10 @@
end
return
)
(func $~lib/runtime/ALLOCATE (; 3 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/runtime/doAllocate (; 3 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
local.get $0
call $~lib/runtime/ADJUST
call $~lib/runtime/ADJUSTOBLOCK
call $~lib/memory/memory.allocate
local.set $1
local.get $1
@ -129,13 +133,63 @@
global.get $~lib/runtime/HEADER_SIZE
i32.add
)
(func $call-super/A#constructor (; 4 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/runtime/ALLOCATE (; 4 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
call $~lib/runtime/doAllocate
)
(func $~lib/runtime/assertUnregistered (; 5 ;) (type $FUNCSIG$vi) (param $0 i32)
local.get $0
global.get $~lib/memory/HEAP_BASE
i32.gt_u
i32.eqz
if
i32.const 0
i32.const 16
i32.const 188
i32.const 2
call $~lib/env/abort
unreachable
end
local.get $0
global.get $~lib/runtime/HEADER_SIZE
i32.sub
i32.load
global.get $~lib/runtime/HEADER_MAGIC
i32.eq
i32.eqz
if
i32.const 0
i32.const 16
i32.const 189
i32.const 2
call $~lib/env/abort
unreachable
end
)
(func $~lib/runtime/doRegister (; 6 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
local.get $0
call $~lib/runtime/assertUnregistered
local.get $0
global.get $~lib/runtime/HEADER_SIZE
i32.sub
local.get $1
i32.store
local.get $0
)
(func $call-super/A#constructor (; 7 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
block (result i32)
local.get $0
i32.eqz
if
i32.const 4
call $~lib/runtime/ALLOCATE
block $~lib/runtime/REGISTER<A>|inlined.0 (result i32)
i32.const 4
call $~lib/runtime/ALLOCATE
local.set $1
local.get $1
i32.const 1
call $~lib/runtime/doRegister
end
local.set $0
end
local.get $0
@ -149,7 +203,7 @@
i32.eqz
if
i32.const 0
i32.const 16
i32.const 56
i32.const 8
i32.const 4
call $~lib/env/abort
@ -157,13 +211,18 @@
end
local.get $0
)
(func $call-super/B#constructor (; 5 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $call-super/B#constructor (; 8 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
local.get $0
if (result i32)
local.get $0
else
i32.const 8
call $~lib/runtime/ALLOCATE
local.set $1
local.get $1
i32.const 3
call $~lib/runtime/doRegister
end
call $call-super/A#constructor
local.set $0
@ -177,7 +236,7 @@
i32.eqz
if
i32.const 0
i32.const 16
i32.const 56
i32.const 17
i32.const 4
call $~lib/env/abort
@ -190,7 +249,7 @@
i32.eqz
if
i32.const 0
i32.const 16
i32.const 56
i32.const 18
i32.const 4
call $~lib/env/abort
@ -198,7 +257,7 @@
end
local.get $0
)
(func $call-super/test1 (; 6 ;) (type $FUNCSIG$v)
(func $call-super/test1 (; 9 ;) (type $FUNCSIG$v)
(local $0 i32)
i32.const 0
call $call-super/B#constructor
@ -210,7 +269,7 @@
i32.eqz
if
i32.const 0
i32.const 16
i32.const 56
i32.const 24
i32.const 2
call $~lib/env/abort
@ -223,19 +282,26 @@
i32.eqz
if
i32.const 0
i32.const 16
i32.const 56
i32.const 25
i32.const 2
call $~lib/env/abort
unreachable
end
)
(func $call-super/C#constructor (; 7 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $call-super/C#constructor (; 10 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
local.get $0
i32.eqz
if
i32.const 4
call $~lib/runtime/ALLOCATE
block $~lib/runtime/REGISTER<C>|inlined.0 (result i32)
i32.const 4
call $~lib/runtime/ALLOCATE
local.set $1
local.get $1
i32.const 4
call $~lib/runtime/doRegister
end
local.set $0
end
local.get $0
@ -243,13 +309,18 @@
i32.store
local.get $0
)
(func $call-super/D#constructor (; 8 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $call-super/D#constructor (; 11 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
local.get $0
if (result i32)
local.get $0
else
i32.const 8
call $~lib/runtime/ALLOCATE
local.set $1
local.get $1
i32.const 5
call $~lib/runtime/doRegister
end
call $call-super/C#constructor
local.set $0
@ -263,7 +334,7 @@
i32.eqz
if
i32.const 0
i32.const 16
i32.const 56
i32.const 40
i32.const 4
call $~lib/env/abort
@ -276,7 +347,7 @@
i32.eqz
if
i32.const 0
i32.const 16
i32.const 56
i32.const 41
i32.const 4
call $~lib/env/abort
@ -284,7 +355,7 @@
end
local.get $0
)
(func $call-super/test2 (; 9 ;) (type $FUNCSIG$v)
(func $call-super/test2 (; 12 ;) (type $FUNCSIG$v)
(local $0 i32)
i32.const 0
call $call-super/D#constructor
@ -296,7 +367,7 @@
i32.eqz
if
i32.const 0
i32.const 16
i32.const 56
i32.const 47
i32.const 2
call $~lib/env/abort
@ -309,20 +380,27 @@
i32.eqz
if
i32.const 0
i32.const 16
i32.const 56
i32.const 48
i32.const 2
call $~lib/env/abort
unreachable
end
)
(func $call-super/E#constructor (; 10 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $call-super/E#constructor (; 13 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
block (result i32)
local.get $0
i32.eqz
if
i32.const 4
call $~lib/runtime/ALLOCATE
block $~lib/runtime/REGISTER<E>|inlined.0 (result i32)
i32.const 4
call $~lib/runtime/ALLOCATE
local.set $1
local.get $1
i32.const 6
call $~lib/runtime/doRegister
end
local.set $0
end
local.get $0
@ -336,7 +414,7 @@
i32.eqz
if
i32.const 0
i32.const 16
i32.const 56
i32.const 58
i32.const 4
call $~lib/env/abort
@ -344,12 +422,19 @@
end
local.get $0
)
(func $call-super/F#constructor (; 11 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $call-super/F#constructor (; 14 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
local.get $0
i32.eqz
if
i32.const 8
call $~lib/runtime/ALLOCATE
block $~lib/runtime/REGISTER<F>|inlined.0 (result i32)
i32.const 8
call $~lib/runtime/ALLOCATE
local.set $1
local.get $1
i32.const 7
call $~lib/runtime/doRegister
end
local.set $0
end
local.get $0
@ -360,7 +445,7 @@
i32.store offset=4
local.get $0
)
(func $call-super/test3 (; 12 ;) (type $FUNCSIG$v)
(func $call-super/test3 (; 15 ;) (type $FUNCSIG$v)
(local $0 i32)
i32.const 0
call $call-super/F#constructor
@ -372,7 +457,7 @@
i32.eqz
if
i32.const 0
i32.const 16
i32.const 56
i32.const 68
i32.const 2
call $~lib/env/abort
@ -385,19 +470,26 @@
i32.eqz
if
i32.const 0
i32.const 16
i32.const 56
i32.const 69
i32.const 2
call $~lib/env/abort
unreachable
end
)
(func $call-super/G#constructor (; 13 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $call-super/G#constructor (; 16 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
local.get $0
i32.eqz
if
i32.const 4
call $~lib/runtime/ALLOCATE
block $~lib/runtime/REGISTER<G>|inlined.0 (result i32)
i32.const 4
call $~lib/runtime/ALLOCATE
local.set $1
local.get $1
i32.const 8
call $~lib/runtime/doRegister
end
local.set $0
end
local.get $0
@ -405,12 +497,19 @@
i32.store
local.get $0
)
(func $call-super/H#constructor (; 14 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $call-super/H#constructor (; 17 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
local.get $0
i32.eqz
if
i32.const 8
call $~lib/runtime/ALLOCATE
block $~lib/runtime/REGISTER<H>|inlined.0 (result i32)
i32.const 8
call $~lib/runtime/ALLOCATE
local.set $1
local.get $1
i32.const 9
call $~lib/runtime/doRegister
end
local.set $0
end
local.get $0
@ -421,7 +520,7 @@
i32.store offset=4
local.get $0
)
(func $call-super/test4 (; 15 ;) (type $FUNCSIG$v)
(func $call-super/test4 (; 18 ;) (type $FUNCSIG$v)
(local $0 i32)
i32.const 0
call $call-super/H#constructor
@ -433,7 +532,7 @@
i32.eqz
if
i32.const 0
i32.const 16
i32.const 56
i32.const 86
i32.const 2
call $~lib/env/abort
@ -446,19 +545,26 @@
i32.eqz
if
i32.const 0
i32.const 16
i32.const 56
i32.const 87
i32.const 2
call $~lib/env/abort
unreachable
end
)
(func $call-super/I#constructor (; 16 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $call-super/I#constructor (; 19 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
local.get $0
i32.eqz
if
i32.const 4
call $~lib/runtime/ALLOCATE
block $~lib/runtime/REGISTER<I>|inlined.0 (result i32)
i32.const 4
call $~lib/runtime/ALLOCATE
local.set $1
local.get $1
i32.const 10
call $~lib/runtime/doRegister
end
local.set $0
end
local.get $0
@ -466,12 +572,19 @@
i32.store
local.get $0
)
(func $call-super/J#constructor (; 17 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $call-super/J#constructor (; 20 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
local.get $0
i32.eqz
if
i32.const 8
call $~lib/runtime/ALLOCATE
block $~lib/runtime/REGISTER<J>|inlined.0 (result i32)
i32.const 8
call $~lib/runtime/ALLOCATE
local.set $1
local.get $1
i32.const 11
call $~lib/runtime/doRegister
end
local.set $0
end
local.get $0
@ -482,7 +595,7 @@
i32.store offset=4
local.get $0
)
(func $call-super/test5 (; 18 ;) (type $FUNCSIG$v)
(func $call-super/test5 (; 21 ;) (type $FUNCSIG$v)
(local $0 i32)
i32.const 0
call $call-super/J#constructor
@ -494,7 +607,7 @@
i32.eqz
if
i32.const 0
i32.const 16
i32.const 56
i32.const 106
i32.const 2
call $~lib/env/abort
@ -507,14 +620,14 @@
i32.eqz
if
i32.const 0
i32.const 16
i32.const 56
i32.const 107
i32.const 2
call $~lib/env/abort
unreachable
end
)
(func $start:call-super (; 19 ;) (type $FUNCSIG$v)
(func $start:call-super (; 22 ;) (type $FUNCSIG$v)
global.get $~lib/memory/HEAP_BASE
i32.const 7
i32.add
@ -531,9 +644,9 @@
call $call-super/test4
call $call-super/test5
)
(func $start (; 20 ;) (type $FUNCSIG$v)
(func $start (; 23 ;) (type $FUNCSIG$v)
call $start:call-super
)
(func $null (; 21 ;) (type $FUNCSIG$v)
(func $null (; 24 ;) (type $FUNCSIG$v)
)
)

View File

@ -1,8 +1,13 @@
(module
(type $FUNCSIG$ii (func (param i32) (result i32)))
(type $FUNCSIG$iii (func (param i32 i32) (result i32)))
(type $FUNCSIG$vi (func (param i32)))
(type $FUNCSIG$viiii (func (param i32 i32 i32 i32)))
(type $FUNCSIG$v (func))
(type $FUNCSIG$i (func (result i32)))
(memory $0 0)
(import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32)))
(memory $0 1)
(data (i32.const 8) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00u\00n\00t\00i\00m\00e\00.\00t\00s")
(table $0 1 funcref)
(elem (i32.const 0) $null)
(global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0))
@ -21,7 +26,7 @@
(export "memory" (memory $0))
(export "table" (table $0))
(start $start)
(func $~lib/memory/memory.allocate (; 0 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/memory/memory.allocate (; 1 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
(local $2 i32)
(local $3 i32)
@ -83,7 +88,7 @@
global.set $~lib/allocator/arena/offset
local.get $1
)
(func $~lib/runtime/ALLOCATE (; 1 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/runtime/doAllocate (; 2 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
i32.const 1
i32.const 32
@ -104,43 +109,117 @@
i32.const 8
i32.add
)
(func $constructor/EmptyCtorWithFieldInit#constructor (; 2 ;) (type $FUNCSIG$i) (result i32)
(local $0 i32)
i32.const 4
call $~lib/runtime/ALLOCATE
local.tee $0
i32.const 1
i32.store
(func $~lib/runtime/assertUnregistered (; 3 ;) (type $FUNCSIG$vi) (param $0 i32)
local.get $0
)
(func $constructor/EmptyCtorWithFieldNoInit#constructor (; 3 ;) (type $FUNCSIG$i) (result i32)
(local $0 i32)
i32.const 4
call $~lib/runtime/ALLOCATE
local.tee $0
i32.const 0
i32.store
i32.const 48
i32.le_u
if
i32.const 0
i32.const 16
i32.const 188
i32.const 2
call $~lib/env/abort
unreachable
end
local.get $0
)
(func $start:constructor (; 4 ;) (type $FUNCSIG$v)
(local $0 i32)
i32.const 8
i32.sub
i32.load
i32.const -1520547049
i32.ne
if
i32.const 0
i32.const 16
i32.const 189
i32.const 2
call $~lib/env/abort
unreachable
end
)
(func $~lib/runtime/doRegister (; 4 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
local.get $0
call $~lib/runtime/assertUnregistered
local.get $0
i32.const 8
i32.sub
local.get $1
i32.store
local.get $0
)
(func $constructor/CtorConditionallyAllocates#constructor (; 5 ;) (type $FUNCSIG$i) (result i32)
(local $0 i32)
block (result i32)
global.get $constructor/b
if
i32.const 0
call $~lib/runtime/doAllocate
i32.const 10
call $~lib/runtime/doRegister
local.set $0
end
local.get $0
i32.eqz
end
if (result i32)
i32.const 0
call $~lib/runtime/doAllocate
i32.const 10
call $~lib/runtime/doRegister
else
local.get $0
end
)
(func $start:constructor (; 6 ;) (type $FUNCSIG$v)
(local $0 i32)
i32.const 48
global.set $~lib/allocator/arena/startOffset
global.get $~lib/allocator/arena/startOffset
global.set $~lib/allocator/arena/offset
i32.const 0
call $~lib/runtime/ALLOCATE
call $~lib/runtime/doAllocate
i32.const 1
call $~lib/runtime/doRegister
global.set $constructor/emptyCtor
call $constructor/EmptyCtorWithFieldInit#constructor
i32.const 4
call $~lib/runtime/doAllocate
i32.const 3
call $~lib/runtime/doRegister
local.tee $0
i32.const 1
i32.store
local.get $0
global.set $constructor/emptyCtorWithFieldInit
call $constructor/EmptyCtorWithFieldNoInit#constructor
i32.const 4
call $~lib/runtime/doAllocate
i32.const 4
call $~lib/runtime/doRegister
local.tee $0
i32.const 0
i32.store
local.get $0
global.set $constructor/emptyCtorWithFieldNoInit
i32.const 0
call $~lib/runtime/ALLOCATE
call $~lib/runtime/doAllocate
i32.const 5
call $~lib/runtime/doRegister
global.set $constructor/none
call $constructor/EmptyCtorWithFieldInit#constructor
i32.const 4
call $~lib/runtime/doAllocate
i32.const 6
call $~lib/runtime/doRegister
local.tee $0
i32.const 1
i32.store
local.get $0
global.set $constructor/justFieldInit
call $constructor/EmptyCtorWithFieldNoInit#constructor
i32.const 4
call $~lib/runtime/doAllocate
i32.const 7
call $~lib/runtime/doRegister
local.tee $0
i32.const 0
i32.store
local.get $0
global.set $constructor/justFieldNoInit
i32.const 0
call $~lib/memory/memory.allocate
@ -153,34 +232,23 @@
br $__inlined_func$constructor/CtorConditionallyReturns#constructor
end
i32.const 0
call $~lib/runtime/ALLOCATE
call $~lib/runtime/doAllocate
i32.const 8
call $~lib/runtime/doRegister
end
global.set $constructor/ctorConditionallyReturns
i32.const 0
call $~lib/runtime/ALLOCATE
call $~lib/runtime/doAllocate
i32.const 9
call $~lib/runtime/doRegister
global.set $constructor/ctorAllocates
block (result i32)
global.get $constructor/b
if
i32.const 0
call $~lib/runtime/ALLOCATE
local.set $0
end
local.get $0
i32.eqz
end
if (result i32)
i32.const 0
call $~lib/runtime/ALLOCATE
else
local.get $0
end
call $constructor/CtorConditionallyAllocates#constructor
global.set $constructor/ctorConditionallyAllocates
)
(func $start (; 5 ;) (type $FUNCSIG$v)
(func $start (; 7 ;) (type $FUNCSIG$v)
call $start:constructor
)
(func $null (; 6 ;) (type $FUNCSIG$v)
(func $null (; 8 ;) (type $FUNCSIG$v)
nop
)
)

View File

@ -1,7 +1,12 @@
(module
(type $FUNCSIG$ii (func (param i32) (result i32)))
(type $FUNCSIG$iii (func (param i32 i32) (result i32)))
(type $FUNCSIG$vi (func (param i32)))
(type $FUNCSIG$viiii (func (param i32 i32 i32 i32)))
(type $FUNCSIG$v (func))
(memory $0 0)
(import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32)))
(memory $0 1)
(data (i32.const 8) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00u\00n\00t\00i\00m\00e\00.\00t\00s\00")
(table $0 1 funcref)
(elem (i32.const 0) $null)
(global $~lib/runtime/GC_IMPLEMENTED i32 (i32.const 0))
@ -9,6 +14,7 @@
(global $~lib/runtime/HEADER_MAGIC i32 (i32.const -1520547049))
(global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0))
(global $~lib/allocator/arena/offset (mut i32) (i32.const 0))
(global $~lib/ASC_NO_ASSERT i32 (i32.const 0))
(global $constructor/emptyCtor (mut i32) (i32.const 0))
(global $constructor/emptyCtorWithFieldInit (mut i32) (i32.const 0))
(global $constructor/emptyCtorWithFieldNoInit (mut i32) (i32.const 0))
@ -20,11 +26,11 @@
(global $constructor/ctorConditionallyReturns (mut i32) (i32.const 0))
(global $constructor/ctorAllocates (mut i32) (i32.const 0))
(global $constructor/ctorConditionallyAllocates (mut i32) (i32.const 0))
(global $~lib/memory/HEAP_BASE i32 (i32.const 8))
(global $~lib/memory/HEAP_BASE i32 (i32.const 48))
(export "memory" (memory $0))
(export "table" (table $0))
(start $start)
(func $~lib/runtime/ADJUST (; 0 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/runtime/ADJUSTOBLOCK (; 1 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
i32.const 1
i32.const 32
local.get $0
@ -36,7 +42,7 @@
i32.sub
i32.shl
)
(func $~lib/memory/memory.allocate (; 1 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/memory/memory.allocate (; 2 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
(local $2 i32)
(local $3 i32)
@ -121,10 +127,10 @@
end
return
)
(func $~lib/runtime/ALLOCATE (; 2 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/runtime/doAllocate (; 3 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
local.get $0
call $~lib/runtime/ADJUST
call $~lib/runtime/ADJUSTOBLOCK
call $~lib/memory/memory.allocate
local.set $1
local.get $1
@ -137,22 +143,79 @@
global.get $~lib/runtime/HEADER_SIZE
i32.add
)
(func $constructor/EmptyCtor#constructor (; 3 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/runtime/ALLOCATE (; 4 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
call $~lib/runtime/doAllocate
)
(func $~lib/runtime/assertUnregistered (; 5 ;) (type $FUNCSIG$vi) (param $0 i32)
local.get $0
global.get $~lib/memory/HEAP_BASE
i32.gt_u
i32.eqz
if
i32.const 0
call $~lib/runtime/ALLOCATE
i32.const 16
i32.const 188
i32.const 2
call $~lib/env/abort
unreachable
end
local.get $0
global.get $~lib/runtime/HEADER_SIZE
i32.sub
i32.load
global.get $~lib/runtime/HEADER_MAGIC
i32.eq
i32.eqz
if
i32.const 0
i32.const 16
i32.const 189
i32.const 2
call $~lib/env/abort
unreachable
end
)
(func $~lib/runtime/doRegister (; 6 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
local.get $0
call $~lib/runtime/assertUnregistered
local.get $0
global.get $~lib/runtime/HEADER_SIZE
i32.sub
local.get $1
i32.store
local.get $0
)
(func $constructor/EmptyCtor#constructor (; 7 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
local.get $0
i32.eqz
if
block $~lib/runtime/REGISTER<EmptyCtor>|inlined.0 (result i32)
i32.const 0
call $~lib/runtime/ALLOCATE
local.set $1
local.get $1
i32.const 1
call $~lib/runtime/doRegister
end
local.set $0
end
local.get $0
)
(func $constructor/EmptyCtorWithFieldInit#constructor (; 4 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $constructor/EmptyCtorWithFieldInit#constructor (; 8 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
local.get $0
i32.eqz
if
i32.const 4
call $~lib/runtime/ALLOCATE
block $~lib/runtime/REGISTER<EmptyCtorWithFieldInit>|inlined.0 (result i32)
i32.const 4
call $~lib/runtime/ALLOCATE
local.set $1
local.get $1
i32.const 3
call $~lib/runtime/doRegister
end
local.set $0
end
local.get $0
@ -160,12 +223,19 @@
i32.store
local.get $0
)
(func $constructor/EmptyCtorWithFieldNoInit#constructor (; 5 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $constructor/EmptyCtorWithFieldNoInit#constructor (; 9 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
local.get $0
i32.eqz
if
i32.const 4
call $~lib/runtime/ALLOCATE
block $~lib/runtime/REGISTER<EmptyCtorWithFieldNoInit>|inlined.0 (result i32)
i32.const 4
call $~lib/runtime/ALLOCATE
local.set $1
local.get $1
i32.const 4
call $~lib/runtime/doRegister
end
local.set $0
end
local.get $0
@ -173,22 +243,36 @@
i32.store
local.get $0
)
(func $constructor/None#constructor (; 6 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $constructor/None#constructor (; 10 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
local.get $0
i32.eqz
if
i32.const 0
call $~lib/runtime/ALLOCATE
block $~lib/runtime/REGISTER<None>|inlined.0 (result i32)
i32.const 0
call $~lib/runtime/ALLOCATE
local.set $1
local.get $1
i32.const 5
call $~lib/runtime/doRegister
end
local.set $0
end
local.get $0
)
(func $constructor/JustFieldInit#constructor (; 7 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $constructor/JustFieldInit#constructor (; 11 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
local.get $0
i32.eqz
if
i32.const 4
call $~lib/runtime/ALLOCATE
block $~lib/runtime/REGISTER<JustFieldInit>|inlined.0 (result i32)
i32.const 4
call $~lib/runtime/ALLOCATE
local.set $1
local.get $1
i32.const 6
call $~lib/runtime/doRegister
end
local.set $0
end
local.get $0
@ -196,12 +280,19 @@
i32.store
local.get $0
)
(func $constructor/JustFieldNoInit#constructor (; 8 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $constructor/JustFieldNoInit#constructor (; 12 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
local.get $0
i32.eqz
if
i32.const 4
call $~lib/runtime/ALLOCATE
block $~lib/runtime/REGISTER<JustFieldNoInit>|inlined.0 (result i32)
i32.const 4
call $~lib/runtime/ALLOCATE
local.set $1
local.get $1
i32.const 7
call $~lib/runtime/doRegister
end
local.set $0
end
local.get $0
@ -209,11 +300,12 @@
i32.store
local.get $0
)
(func $constructor/CtorReturns#constructor (; 9 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $constructor/CtorReturns#constructor (; 13 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
i32.const 0
call $~lib/memory/memory.allocate
)
(func $constructor/CtorConditionallyReturns#constructor (; 10 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $constructor/CtorConditionallyReturns#constructor (; 14 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
global.get $constructor/b
if
i32.const 0
@ -223,19 +315,32 @@
local.get $0
i32.eqz
if
i32.const 0
call $~lib/runtime/ALLOCATE
block $~lib/runtime/REGISTER<CtorConditionallyReturns>|inlined.0 (result i32)
i32.const 0
call $~lib/runtime/ALLOCATE
local.set $1
local.get $1
i32.const 8
call $~lib/runtime/doRegister
end
local.set $0
end
local.get $0
)
(func $constructor/CtorAllocates#constructor (; 11 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $constructor/CtorAllocates#constructor (; 15 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
block (result i32)
local.get $0
i32.eqz
if
i32.const 0
call $~lib/runtime/ALLOCATE
block $~lib/runtime/REGISTER<CtorAllocates>|inlined.0 (result i32)
i32.const 0
call $~lib/runtime/ALLOCATE
local.set $1
local.get $1
i32.const 9
call $~lib/runtime/doRegister
end
local.set $0
end
local.get $0
@ -243,15 +348,22 @@
drop
local.get $0
)
(func $constructor/CtorConditionallyAllocates#constructor (; 12 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $constructor/CtorConditionallyAllocates#constructor (; 16 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
global.get $constructor/b
if
block (result i32)
local.get $0
i32.eqz
if
i32.const 0
call $~lib/runtime/ALLOCATE
block $~lib/runtime/REGISTER<CtorConditionallyAllocates>|inlined.0 (result i32)
i32.const 0
call $~lib/runtime/ALLOCATE
local.set $1
local.get $1
i32.const 10
call $~lib/runtime/doRegister
end
local.set $0
end
local.get $0
@ -261,13 +373,19 @@
local.get $0
i32.eqz
if
i32.const 0
call $~lib/runtime/ALLOCATE
block $~lib/runtime/REGISTER<CtorConditionallyAllocates>|inlined.1 (result i32)
i32.const 0
call $~lib/runtime/ALLOCATE
local.set $1
local.get $1
i32.const 10
call $~lib/runtime/doRegister
end
local.set $0
end
local.get $0
)
(func $start:constructor (; 13 ;) (type $FUNCSIG$v)
(func $start:constructor (; 17 ;) (type $FUNCSIG$v)
global.get $~lib/memory/HEAP_BASE
i32.const 7
i32.add
@ -309,9 +427,9 @@
call $constructor/CtorConditionallyAllocates#constructor
global.set $constructor/ctorConditionallyAllocates
)
(func $start (; 14 ;) (type $FUNCSIG$v)
(func $start (; 18 ;) (type $FUNCSIG$v)
call $start:constructor
)
(func $null (; 15 ;) (type $FUNCSIG$v)
(func $null (; 19 ;) (type $FUNCSIG$v)
)
)

View File

@ -2,10 +2,13 @@
(type $FUNCSIG$iii (func (param i32 i32) (result i32)))
(type $FUNCSIG$i (func (result i32)))
(type $FUNCSIG$ii (func (param i32) (result i32)))
(type $FUNCSIG$vii (func (param i32 i32)))
(type $FUNCSIG$vi (func (param i32)))
(type $FUNCSIG$viiii (func (param i32 i32 i32 i32)))
(type $FUNCSIG$vii (func (param i32 i32)))
(type $FUNCSIG$v (func))
(memory $0 0)
(import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32)))
(memory $0 1)
(data (i32.const 8) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00u\00n\00t\00i\00m\00e\00.\00t\00s")
(table $0 1 funcref)
(elem (i32.const 0) $null)
(global $exports/Animal.CAT i32 (i32.const 0))
@ -46,20 +49,20 @@
(export "vehicles.Car.getNumTires" (func $exports/Car.getNumTires))
(export "outer.inner.a" (global $exports/outer.inner.a))
(start $start)
(func $exports/add (; 0 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $exports/add (; 1 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
local.get $0
local.get $1
i32.add
)
(func $exports/subOpt (; 1 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $exports/subOpt (; 2 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
local.get $0
local.get $1
i32.sub
)
(func $exports/Car.getNumTires (; 2 ;) (type $FUNCSIG$i) (result i32)
(func $exports/Car.getNumTires (; 3 ;) (type $FUNCSIG$i) (result i32)
i32.const 4
)
(func $~lib/memory/memory.allocate (; 3 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/memory/memory.allocate (; 4 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
(local $2 i32)
(local $3 i32)
@ -121,28 +124,86 @@
global.set $~lib/allocator/arena/offset
local.get $1
)
(func $exports/Car#get:numDoors (; 4 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/runtime/assertUnregistered (; 5 ;) (type $FUNCSIG$vi) (param $0 i32)
local.get $0
i32.const 48
i32.le_u
if
i32.const 0
i32.const 16
i32.const 188
i32.const 2
call $~lib/env/abort
unreachable
end
local.get $0
i32.const 8
i32.sub
i32.load
i32.const -1520547049
i32.ne
if
i32.const 0
i32.const 16
i32.const 189
i32.const 2
call $~lib/env/abort
unreachable
end
)
(func $exports/Car#constructor (; 6 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
local.get $0
i32.eqz
if
i32.const 16
call $~lib/memory/memory.allocate
local.tee $0
i32.const -1520547049
i32.store
local.get $0
i32.const 4
i32.store offset=4
local.get $0
i32.const 8
i32.add
local.tee $0
call $~lib/runtime/assertUnregistered
local.get $0
i32.const 8
i32.sub
i32.const 1
i32.store
end
local.get $0
local.get $1
i32.store
local.get $0
local.get $1
i32.store
local.get $0
)
(func $exports/Car#get:numDoors (; 7 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.load
)
(func $exports/Car#set:numDoors (; 5 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $exports/Car#set:numDoors (; 8 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
local.get $0
local.get $1
i32.store
)
(func $exports/Car#openDoors (; 6 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $exports/Car#openDoors (; 9 ;) (type $FUNCSIG$vi) (param $0 i32)
nop
)
(func $start (; 7 ;) (type $FUNCSIG$v)
i32.const 8
(func $start (; 10 ;) (type $FUNCSIG$v)
i32.const 48
global.set $~lib/allocator/arena/startOffset
global.get $~lib/allocator/arena/startOffset
global.set $~lib/allocator/arena/offset
)
(func $null (; 8 ;) (type $FUNCSIG$v)
(func $null (; 11 ;) (type $FUNCSIG$v)
nop
)
(func $exports/subOpt|trampoline (; 9 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $exports/subOpt|trampoline (; 12 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
block $1of1
block $0of1
block $outOfRange
@ -160,11 +221,11 @@
local.get $1
i32.sub
)
(func $~lib/setargc (; 10 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/setargc (; 13 ;) (type $FUNCSIG$vi) (param $0 i32)
local.get $0
global.set $~lib/argc
)
(func $exports/Car#constructor|trampoline (; 11 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $exports/Car#constructor|trampoline (; 14 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
block $1of1
block $0of1
block $outOfRange
@ -176,28 +237,10 @@
i32.const 2
local.set $1
end
local.get $0
i32.eqz
if
i32.const 16
call $~lib/memory/memory.allocate
local.tee $0
i32.const -1520547049
i32.store
block (result i32)
local.get $0
i32.const 4
i32.store offset=4
local.get $0
i32.const 8
i32.add
local.set $0
local.get $1
call $exports/Car#constructor
end
local.get $0
local.get $1
i32.store
local.get $0
local.get $1
i32.store
local.get $0
)
)

View File

@ -2,10 +2,13 @@
(type $FUNCSIG$iii (func (param i32 i32) (result i32)))
(type $FUNCSIG$i (func (result i32)))
(type $FUNCSIG$ii (func (param i32) (result i32)))
(type $FUNCSIG$vii (func (param i32 i32)))
(type $FUNCSIG$vi (func (param i32)))
(type $FUNCSIG$viiii (func (param i32 i32 i32 i32)))
(type $FUNCSIG$vii (func (param i32 i32)))
(type $FUNCSIG$v (func))
(memory $0 0)
(import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32)))
(memory $0 1)
(data (i32.const 8) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00u\00n\00t\00i\00m\00e\00.\00t\00s\00")
(table $0 1 funcref)
(elem (i32.const 0) $null)
(global $exports/Animal.CAT i32 (i32.const 0))
@ -20,7 +23,8 @@
(global $~lib/runtime/HEADER_MAGIC i32 (i32.const -1520547049))
(global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0))
(global $~lib/allocator/arena/offset (mut i32) (i32.const 0))
(global $~lib/memory/HEAP_BASE i32 (i32.const 8))
(global $~lib/ASC_NO_ASSERT i32 (i32.const 0))
(global $~lib/memory/HEAP_BASE i32 (i32.const 48))
(global $~lib/argc (mut i32) (i32.const 0))
(export "memory" (memory $0))
(export "table" (table $0))
@ -50,25 +54,25 @@
(export "vehicles.Car.getNumTires" (func $exports/vehicles.Car.getNumTires))
(export "outer.inner.a" (global $exports/outer.inner.a))
(start $start)
(func $exports/add (; 0 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $exports/add (; 1 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
local.get $0
local.get $1
i32.add
)
(func $exports/subOpt (; 1 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $exports/subOpt (; 2 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
local.get $0
local.get $1
i32.sub
)
(func $exports/math.sub (; 2 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $exports/math.sub (; 3 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
local.get $0
local.get $1
i32.sub
)
(func $exports/Car.getNumTires (; 3 ;) (type $FUNCSIG$i) (result i32)
(func $exports/Car.getNumTires (; 4 ;) (type $FUNCSIG$i) (result i32)
global.get $exports/Car.TIRES
)
(func $~lib/runtime/ADJUST (; 4 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/runtime/ADJUSTOBLOCK (; 5 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
i32.const 1
i32.const 32
local.get $0
@ -80,7 +84,7 @@
i32.sub
i32.shl
)
(func $~lib/memory/memory.allocate (; 5 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/memory/memory.allocate (; 6 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
(local $2 i32)
(local $3 i32)
@ -165,10 +169,10 @@
end
return
)
(func $~lib/runtime/ALLOCATE (; 6 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/runtime/doAllocate (; 7 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
local.get $0
call $~lib/runtime/ADJUST
call $~lib/runtime/ADJUSTOBLOCK
call $~lib/memory/memory.allocate
local.set $1
local.get $1
@ -181,13 +185,63 @@
global.get $~lib/runtime/HEADER_SIZE
i32.add
)
(func $exports/Car#constructor (; 7 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/runtime/ALLOCATE (; 8 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
call $~lib/runtime/doAllocate
)
(func $~lib/runtime/assertUnregistered (; 9 ;) (type $FUNCSIG$vi) (param $0 i32)
local.get $0
global.get $~lib/memory/HEAP_BASE
i32.gt_u
i32.eqz
if
i32.const 0
i32.const 16
i32.const 188
i32.const 2
call $~lib/env/abort
unreachable
end
local.get $0
global.get $~lib/runtime/HEADER_SIZE
i32.sub
i32.load
global.get $~lib/runtime/HEADER_MAGIC
i32.eq
i32.eqz
if
i32.const 0
i32.const 16
i32.const 189
i32.const 2
call $~lib/env/abort
unreachable
end
)
(func $~lib/runtime/doRegister (; 10 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
local.get $0
call $~lib/runtime/assertUnregistered
local.get $0
global.get $~lib/runtime/HEADER_SIZE
i32.sub
local.get $1
i32.store
local.get $0
)
(func $exports/Car#constructor (; 11 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
block (result i32)
local.get $0
i32.eqz
if
i32.const 4
call $~lib/runtime/ALLOCATE
block $~lib/runtime/REGISTER<Car>|inlined.0 (result i32)
i32.const 4
call $~lib/runtime/ALLOCATE
local.set $2
local.get $2
i32.const 1
call $~lib/runtime/doRegister
end
local.set $0
end
local.get $0
@ -199,28 +253,35 @@
i32.store
local.get $0
)
(func $exports/Car#get:numDoors (; 8 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $exports/Car#get:numDoors (; 12 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.load
)
(func $exports/Car#set:numDoors (; 9 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $exports/Car#set:numDoors (; 13 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
local.get $0
local.get $1
i32.store
)
(func $exports/Car#openDoors (; 10 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $exports/Car#openDoors (; 14 ;) (type $FUNCSIG$vi) (param $0 i32)
nop
)
(func $exports/vehicles.Car.getNumTires (; 11 ;) (type $FUNCSIG$i) (result i32)
(func $exports/vehicles.Car.getNumTires (; 15 ;) (type $FUNCSIG$i) (result i32)
global.get $exports/vehicles.Car.TIRES
)
(func $exports/vehicles.Car#constructor (; 12 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $exports/vehicles.Car#constructor (; 16 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
block (result i32)
local.get $0
i32.eqz
if
i32.const 4
call $~lib/runtime/ALLOCATE
block $~lib/runtime/REGISTER<Car>|inlined.1 (result i32)
i32.const 4
call $~lib/runtime/ALLOCATE
local.set $2
local.get $2
i32.const 1
call $~lib/runtime/doRegister
end
local.set $0
end
local.get $0
@ -232,19 +293,19 @@
i32.store
local.get $0
)
(func $exports/vehicles.Car#get:numDoors (; 13 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $exports/vehicles.Car#get:numDoors (; 17 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.load
)
(func $exports/vehicles.Car#set:numDoors (; 14 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $exports/vehicles.Car#set:numDoors (; 18 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
local.get $0
local.get $1
i32.store
)
(func $exports/vehicles.Car#openDoors (; 15 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $exports/vehicles.Car#openDoors (; 19 ;) (type $FUNCSIG$vi) (param $0 i32)
nop
)
(func $start (; 16 ;) (type $FUNCSIG$v)
(func $start (; 20 ;) (type $FUNCSIG$v)
global.get $~lib/memory/HEAP_BASE
i32.const 7
i32.add
@ -256,9 +317,9 @@
global.get $~lib/allocator/arena/startOffset
global.set $~lib/allocator/arena/offset
)
(func $null (; 17 ;) (type $FUNCSIG$v)
(func $null (; 21 ;) (type $FUNCSIG$v)
)
(func $exports/subOpt|trampoline (; 18 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $exports/subOpt|trampoline (; 22 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
block $1of1
block $0of1
block $outOfRange
@ -276,20 +337,20 @@
local.get $1
call $exports/subOpt
)
(func $~lib/setargc (; 19 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/setargc (; 23 ;) (type $FUNCSIG$vi) (param $0 i32)
local.get $0
global.set $~lib/argc
)
(func $Car#get:doors (; 20 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $Car#get:doors (; 24 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.load
)
(func $Car#set:doors (; 21 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $Car#set:doors (; 25 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
local.get $0
local.get $1
i32.store
)
(func $exports/Car#constructor|trampoline (; 22 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $exports/Car#constructor|trampoline (; 26 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
block $1of1
block $0of1
block $outOfRange
@ -305,16 +366,16 @@
local.get $1
call $exports/Car#constructor
)
(func $vehicles.Car#get:doors (; 23 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $vehicles.Car#get:doors (; 27 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.load
)
(func $vehicles.Car#set:doors (; 24 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $vehicles.Car#set:doors (; 28 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
local.get $0
local.get $1
i32.store
)
(func $exports/vehicles.Car#constructor|trampoline (; 25 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $exports/vehicles.Car#constructor|trampoline (; 29 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
block $1of1
block $0of1
block $outOfRange

View File

@ -1,8 +1,12 @@
(module
(type $FUNCSIG$i (func (result i32)))
(type $FUNCSIG$ii (func (param i32) (result i32)))
(type $FUNCSIG$vi (func (param i32)))
(type $FUNCSIG$viiii (func (param i32 i32 i32 i32)))
(type $FUNCSIG$v (func))
(memory $0 0)
(import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32)))
(memory $0 1)
(data (i32.const 8) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00u\00n\00t\00i\00m\00e\00.\00t\00s")
(table $0 2 funcref)
(elem (i32.const 0) $null $getter-call/C#get:x~anonymous|0)
(global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0))
@ -12,7 +16,7 @@
(export "table" (table $0))
(export "test" (func $getter-call/test))
(start $start)
(func $~lib/memory/memory.allocate (; 0 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/memory/memory.allocate (; 1 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
(local $2 i32)
(local $3 i32)
@ -74,10 +78,34 @@
global.set $~lib/allocator/arena/offset
local.get $1
)
(func $getter-call/C#get:x~anonymous|0 (; 1 ;) (type $FUNCSIG$i) (result i32)
i32.const 42
(func $~lib/runtime/assertUnregistered (; 2 ;) (type $FUNCSIG$vi) (param $0 i32)
local.get $0
i32.const 48
i32.le_u
if
i32.const 0
i32.const 16
i32.const 188
i32.const 2
call $~lib/env/abort
unreachable
end
local.get $0
i32.const 8
i32.sub
i32.load
i32.const -1520547049
i32.ne
if
i32.const 0
i32.const 16
i32.const 189
i32.const 2
call $~lib/env/abort
unreachable
end
)
(func $getter-call/test (; 2 ;) (type $FUNCSIG$i) (result i32)
(func $getter-call/C#constructor (; 3 ;) (type $FUNCSIG$i) (result i32)
(local $0 i32)
i32.const 8
call $~lib/memory/memory.allocate
@ -87,18 +115,38 @@
local.get $0
i32.const 0
i32.store offset=4
local.get $0
i32.const 8
i32.add
local.tee $0
call $~lib/runtime/assertUnregistered
local.get $0
i32.const 8
i32.sub
i32.const 1
i32.store
local.get $0
)
(func $getter-call/C#get:x~anonymous|0 (; 4 ;) (type $FUNCSIG$i) (result i32)
i32.const 42
)
(func $getter-call/test (; 5 ;) (type $FUNCSIG$i) (result i32)
block (result i32)
call $getter-call/C#constructor
end
drop
i32.const 0
global.set $~lib/argc
i32.const 1
call_indirect (type $FUNCSIG$i)
)
(func $start (; 3 ;) (type $FUNCSIG$v)
i32.const 8
(func $start (; 6 ;) (type $FUNCSIG$v)
i32.const 48
global.set $~lib/allocator/arena/startOffset
global.get $~lib/allocator/arena/startOffset
global.set $~lib/allocator/arena/offset
)
(func $null (; 4 ;) (type $FUNCSIG$v)
(func $null (; 7 ;) (type $FUNCSIG$v)
nop
)
)

View File

@ -1,8 +1,13 @@
(module
(type $FUNCSIG$i (func (result i32)))
(type $FUNCSIG$ii (func (param i32) (result i32)))
(type $FUNCSIG$iii (func (param i32 i32) (result i32)))
(type $FUNCSIG$vi (func (param i32)))
(type $FUNCSIG$viiii (func (param i32 i32 i32 i32)))
(type $FUNCSIG$v (func))
(memory $0 0)
(import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32)))
(memory $0 1)
(data (i32.const 8) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00u\00n\00t\00i\00m\00e\00.\00t\00s\00")
(table $0 2 funcref)
(elem (i32.const 0) $null $getter-call/C#get:x~anonymous|0)
(global $~lib/runtime/GC_IMPLEMENTED i32 (i32.const 0))
@ -10,13 +15,14 @@
(global $~lib/runtime/HEADER_MAGIC i32 (i32.const -1520547049))
(global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0))
(global $~lib/allocator/arena/offset (mut i32) (i32.const 0))
(global $~lib/ASC_NO_ASSERT i32 (i32.const 0))
(global $~lib/argc (mut i32) (i32.const 0))
(global $~lib/memory/HEAP_BASE i32 (i32.const 8))
(global $~lib/memory/HEAP_BASE i32 (i32.const 48))
(export "memory" (memory $0))
(export "table" (table $0))
(export "test" (func $getter-call/test))
(start $start)
(func $~lib/runtime/ADJUST (; 0 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/runtime/ADJUSTOBLOCK (; 1 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
i32.const 1
i32.const 32
local.get $0
@ -28,7 +34,7 @@
i32.sub
i32.shl
)
(func $~lib/memory/memory.allocate (; 1 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/memory/memory.allocate (; 2 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
(local $2 i32)
(local $3 i32)
@ -113,10 +119,10 @@
end
return
)
(func $~lib/runtime/ALLOCATE (; 2 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/runtime/doAllocate (; 3 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
local.get $0
call $~lib/runtime/ADJUST
call $~lib/runtime/ADJUSTOBLOCK
call $~lib/memory/memory.allocate
local.set $1
local.get $1
@ -129,23 +135,73 @@
global.get $~lib/runtime/HEADER_SIZE
i32.add
)
(func $getter-call/C#constructor (; 3 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/runtime/ALLOCATE (; 4 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
call $~lib/runtime/doAllocate
)
(func $~lib/runtime/assertUnregistered (; 5 ;) (type $FUNCSIG$vi) (param $0 i32)
local.get $0
global.get $~lib/memory/HEAP_BASE
i32.gt_u
i32.eqz
if
i32.const 0
call $~lib/runtime/ALLOCATE
i32.const 16
i32.const 188
i32.const 2
call $~lib/env/abort
unreachable
end
local.get $0
global.get $~lib/runtime/HEADER_SIZE
i32.sub
i32.load
global.get $~lib/runtime/HEADER_MAGIC
i32.eq
i32.eqz
if
i32.const 0
i32.const 16
i32.const 189
i32.const 2
call $~lib/env/abort
unreachable
end
)
(func $~lib/runtime/doRegister (; 6 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
local.get $0
call $~lib/runtime/assertUnregistered
local.get $0
global.get $~lib/runtime/HEADER_SIZE
i32.sub
local.get $1
i32.store
local.get $0
)
(func $getter-call/C#constructor (; 7 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
local.get $0
i32.eqz
if
block $~lib/runtime/REGISTER<C>|inlined.0 (result i32)
i32.const 0
call $~lib/runtime/ALLOCATE
local.set $1
local.get $1
i32.const 1
call $~lib/runtime/doRegister
end
local.set $0
end
local.get $0
)
(func $getter-call/C#get:x~anonymous|0 (; 4 ;) (type $FUNCSIG$i) (result i32)
(func $getter-call/C#get:x~anonymous|0 (; 8 ;) (type $FUNCSIG$i) (result i32)
i32.const 42
)
(func $getter-call/C#get:x (; 5 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $getter-call/C#get:x (; 9 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
i32.const 1
)
(func $getter-call/test (; 6 ;) (type $FUNCSIG$i) (result i32)
(func $getter-call/test (; 10 ;) (type $FUNCSIG$i) (result i32)
(local $0 i32)
i32.const 0
call $getter-call/C#constructor
@ -156,7 +212,7 @@
call $getter-call/C#get:x
call_indirect (type $FUNCSIG$i)
)
(func $start (; 7 ;) (type $FUNCSIG$v)
(func $start (; 11 ;) (type $FUNCSIG$v)
global.get $~lib/memory/HEAP_BASE
i32.const 7
i32.add
@ -168,6 +224,6 @@
global.get $~lib/allocator/arena/startOffset
global.set $~lib/allocator/arena/offset
)
(func $null (; 8 ;) (type $FUNCSIG$v)
(func $null (; 12 ;) (type $FUNCSIG$v)
)
)

View File

@ -3,9 +3,12 @@
(type $FUNCSIG$viiii (func (param i32 i32 i32 i32)))
(type $FUNCSIG$v (func))
(type $FUNCSIG$ii (func (param i32) (result i32)))
(type $FUNCSIG$iii (func (param i32 i32) (result i32)))
(type $FUNCSIG$vi (func (param i32)))
(import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32)))
(memory $0 1)
(data (i32.const 8) "\01\00\00\00\16\00\00\00i\00n\00l\00i\00n\00i\00n\00g\00.\00t\00s")
(data (i32.const 40) "\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00u\00n\00t\00i\00m\00e\00.\00t\00s")
(table $0 2 funcref)
(elem (i32.const 0) $null $inlining/func_fe~anonymous|0)
(global $~lib/argc (mut i32) (i32.const 0))
@ -100,7 +103,7 @@
global.set $~lib/allocator/arena/offset
local.get $1
)
(func $~lib/runtime/ALLOCATE (; 5 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/runtime/doAllocate (; 5 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
i32.const 1
i32.const 32
@ -121,15 +124,56 @@
i32.const 8
i32.add
)
(func $inlining/test_ctor (; 6 ;) (type $FUNCSIG$v)
(func $~lib/runtime/assertUnregistered (; 6 ;) (type $FUNCSIG$vi) (param $0 i32)
local.get $0
i32.const 80
i32.le_u
if
i32.const 0
i32.const 48
i32.const 188
i32.const 2
call $~lib/env/abort
unreachable
end
local.get $0
i32.const 8
i32.sub
i32.load
i32.const -1520547049
i32.ne
if
i32.const 0
i32.const 48
i32.const 189
i32.const 2
call $~lib/env/abort
unreachable
end
)
(func $~lib/runtime/doRegister (; 7 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
local.get $0
call $~lib/runtime/assertUnregistered
local.get $0
i32.const 8
i32.sub
local.get $1
i32.store
local.get $0
)
(func $inlining/test_ctor (; 8 ;) (type $FUNCSIG$v)
(local $0 i32)
i32.const 16
call $~lib/runtime/ALLOCATE
call $~lib/runtime/doAllocate
i32.const 2
call $~lib/runtime/doRegister
local.tee $0
i32.eqz
if
i32.const 8
call $~lib/runtime/ALLOCATE
call $~lib/runtime/doAllocate
i32.const 3
call $~lib/runtime/doRegister
local.set $0
end
local.get $0
@ -199,15 +243,15 @@
unreachable
end
)
(func $start (; 7 ;) (type $FUNCSIG$v)
(func $start (; 9 ;) (type $FUNCSIG$v)
call $inlining/test_funcs
i32.const 40
i32.const 80
global.set $~lib/allocator/arena/startOffset
global.get $~lib/allocator/arena/startOffset
global.set $~lib/allocator/arena/offset
call $inlining/test_ctor
)
(func $null (; 8 ;) (type $FUNCSIG$v)
(func $null (; 10 ;) (type $FUNCSIG$v)
nop
)
)

View File

@ -3,9 +3,12 @@
(type $FUNCSIG$viiii (func (param i32 i32 i32 i32)))
(type $FUNCSIG$v (func))
(type $FUNCSIG$ii (func (param i32) (result i32)))
(type $FUNCSIG$iii (func (param i32 i32) (result i32)))
(type $FUNCSIG$vi (func (param i32)))
(import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32)))
(memory $0 1)
(data (i32.const 8) "\01\00\00\00\16\00\00\00i\00n\00l\00i\00n\00i\00n\00g\00.\00t\00s\00")
(data (i32.const 40) "\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00u\00n\00t\00i\00m\00e\00.\00t\00s\00")
(table $0 2 funcref)
(elem (i32.const 0) $null $inlining/func_fe~anonymous|0)
(global $inlining/constantGlobal i32 (i32.const 1))
@ -15,7 +18,8 @@
(global $~lib/runtime/HEADER_MAGIC i32 (i32.const -1520547049))
(global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0))
(global $~lib/allocator/arena/offset (mut i32) (i32.const 0))
(global $~lib/memory/HEAP_BASE i32 (i32.const 40))
(global $~lib/ASC_NO_ASSERT i32 (i32.const 0))
(global $~lib/memory/HEAP_BASE i32 (i32.const 80))
(export "memory" (memory $0))
(export "table" (table $0))
(export "test" (func $inlining/test))
@ -282,7 +286,7 @@
unreachable
end
)
(func $~lib/runtime/ADJUST (; 4 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/runtime/ADJUSTOBLOCK (; 4 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
i32.const 1
i32.const 32
local.get $0
@ -379,10 +383,10 @@
end
return
)
(func $~lib/runtime/ALLOCATE (; 6 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/runtime/doAllocate (; 6 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
local.get $0
call $~lib/runtime/ADJUST
call $~lib/runtime/ADJUSTOBLOCK
call $~lib/memory/memory.allocate
local.set $1
local.get $1
@ -395,12 +399,56 @@
global.get $~lib/runtime/HEADER_SIZE
i32.add
)
(func $inlining/test_ctor (; 7 ;) (type $FUNCSIG$v)
(func $~lib/runtime/ALLOCATE (; 7 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
call $~lib/runtime/doAllocate
)
(func $~lib/runtime/assertUnregistered (; 8 ;) (type $FUNCSIG$vi) (param $0 i32)
local.get $0
global.get $~lib/memory/HEAP_BASE
i32.gt_u
i32.eqz
if
i32.const 0
i32.const 48
i32.const 188
i32.const 2
call $~lib/env/abort
unreachable
end
local.get $0
global.get $~lib/runtime/HEADER_SIZE
i32.sub
i32.load
global.get $~lib/runtime/HEADER_MAGIC
i32.eq
i32.eqz
if
i32.const 0
i32.const 48
i32.const 189
i32.const 2
call $~lib/env/abort
unreachable
end
)
(func $~lib/runtime/doRegister (; 9 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
local.get $0
call $~lib/runtime/assertUnregistered
local.get $0
global.get $~lib/runtime/HEADER_SIZE
i32.sub
local.get $1
i32.store
local.get $0
)
(func $inlining/test_ctor (; 10 ;) (type $FUNCSIG$v)
(local $0 i32)
(local $1 i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
block $inlining/Bar#constructor|inlined.0 (result i32)
i32.const 0
local.set $0
@ -413,6 +461,10 @@
else
i32.const 16
call $~lib/runtime/ALLOCATE
local.set $2
local.get $2
i32.const 2
call $~lib/runtime/doRegister
end
local.set $2
i32.const 2
@ -421,8 +473,14 @@
local.get $2
i32.eqz
if
i32.const 8
call $~lib/runtime/ALLOCATE
block $~lib/runtime/REGISTER<Baz>|inlined.0 (result i32)
i32.const 8
call $~lib/runtime/ALLOCATE
local.set $4
local.get $4
i32.const 3
call $~lib/runtime/doRegister
end
local.set $2
end
local.get $2
@ -449,8 +507,8 @@
i32.store offset=12
local.get $0
end
local.set $4
local.get $4
local.set $5
local.get $5
i32.load
i32.const 1
i32.eq
@ -463,7 +521,7 @@
call $~lib/env/abort
unreachable
end
local.get $4
local.get $5
i32.load offset=4
i32.const 2
i32.eq
@ -476,7 +534,7 @@
call $~lib/env/abort
unreachable
end
local.get $4
local.get $5
i32.load offset=8
i32.const 3
i32.eq
@ -489,7 +547,7 @@
call $~lib/env/abort
unreachable
end
local.get $4
local.get $5
i32.load offset=12
i32.const 4
i32.eq
@ -503,7 +561,7 @@
unreachable
end
)
(func $start:inlining (; 8 ;) (type $FUNCSIG$v)
(func $start:inlining (; 11 ;) (type $FUNCSIG$v)
call $inlining/test
i32.const 3
i32.eq
@ -529,9 +587,9 @@
global.set $~lib/allocator/arena/offset
call $inlining/test_ctor
)
(func $start (; 9 ;) (type $FUNCSIG$v)
(func $start (; 12 ;) (type $FUNCSIG$v)
call $start:inlining
)
(func $null (; 10 ;) (type $FUNCSIG$v)
(func $null (; 13 ;) (type $FUNCSIG$v)
)
)

View File

@ -1,7 +1,8 @@
(module
(type $FUNCSIG$i (func (result i32)))
(type $FUNCSIG$v (func))
(memory $0 0)
(memory $0 1)
(data (i32.const 8) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00u\00n\00t\00i\00m\00e\00.\00t\00s")
(table $0 1 funcref)
(elem (i32.const 0) $null)
(export "memory" (memory $0))

View File

@ -1,18 +1,24 @@
(module
(type $FUNCSIG$i (func (result i32)))
(type $FUNCSIG$ii (func (param i32) (result i32)))
(type $FUNCSIG$iii (func (param i32 i32) (result i32)))
(type $FUNCSIG$vi (func (param i32)))
(type $FUNCSIG$viiii (func (param i32 i32 i32 i32)))
(type $FUNCSIG$v (func))
(memory $0 0)
(import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32)))
(memory $0 1)
(data (i32.const 8) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00u\00n\00t\00i\00m\00e\00.\00t\00s\00")
(table $0 1 funcref)
(elem (i32.const 0) $null)
(global $~lib/runtime/GC_IMPLEMENTED i32 (i32.const 0))
(global $~lib/runtime/HEADER_SIZE i32 (i32.const 8))
(global $~lib/runtime/HEADER_MAGIC i32 (i32.const -1520547049))
(global $~lib/memory/HEAP_BASE i32 (i32.const 8))
(global $~lib/ASC_NO_ASSERT i32 (i32.const 0))
(global $~lib/memory/HEAP_BASE i32 (i32.const 48))
(export "memory" (memory $0))
(export "table" (table $0))
(export "test" (func $new-without-allocator/test))
(func $~lib/runtime/ADJUST (; 0 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/runtime/ADJUSTOBLOCK (; 1 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
i32.const 1
i32.const 32
local.get $0
@ -24,13 +30,13 @@
i32.sub
i32.shl
)
(func $~lib/memory/memory.allocate (; 1 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/memory/memory.allocate (; 2 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
unreachable
)
(func $~lib/runtime/ALLOCATE (; 2 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/runtime/doAllocate (; 3 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
local.get $0
call $~lib/runtime/ADJUST
call $~lib/runtime/ADJUSTOBLOCK
call $~lib/memory/memory.allocate
local.set $1
local.get $1
@ -43,23 +49,73 @@
global.get $~lib/runtime/HEADER_SIZE
i32.add
)
(func $new-without-allocator/A#constructor (; 3 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/runtime/ALLOCATE (; 4 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
call $~lib/runtime/doAllocate
)
(func $~lib/runtime/assertUnregistered (; 5 ;) (type $FUNCSIG$vi) (param $0 i32)
local.get $0
global.get $~lib/memory/HEAP_BASE
i32.gt_u
i32.eqz
if
i32.const 0
call $~lib/runtime/ALLOCATE
i32.const 16
i32.const 188
i32.const 2
call $~lib/env/abort
unreachable
end
local.get $0
global.get $~lib/runtime/HEADER_SIZE
i32.sub
i32.load
global.get $~lib/runtime/HEADER_MAGIC
i32.eq
i32.eqz
if
i32.const 0
i32.const 16
i32.const 189
i32.const 2
call $~lib/env/abort
unreachable
end
)
(func $~lib/runtime/doRegister (; 6 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
local.get $0
call $~lib/runtime/assertUnregistered
local.get $0
global.get $~lib/runtime/HEADER_SIZE
i32.sub
local.get $1
i32.store
local.get $0
)
(func $new-without-allocator/A#constructor (; 7 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
local.get $0
i32.eqz
if
block $~lib/runtime/REGISTER<A>|inlined.0 (result i32)
i32.const 0
call $~lib/runtime/ALLOCATE
local.set $1
local.get $1
i32.const 1
call $~lib/runtime/doRegister
end
local.set $0
end
local.get $0
)
(func $new-without-allocator/test (; 4 ;) (type $FUNCSIG$i) (result i32)
(func $new-without-allocator/test (; 8 ;) (type $FUNCSIG$i) (result i32)
(local $0 i32)
i32.const 0
call $new-without-allocator/A#constructor
local.set $0
i32.const 3
)
(func $null (; 5 ;) (type $FUNCSIG$v)
(func $null (; 9 ;) (type $FUNCSIG$v)
)
)

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,13 +1,14 @@
(module
(type $FUNCSIG$ii (func (param i32) (result i32)))
(type $FUNCSIG$iii (func (param i32 i32) (result i32)))
(type $FUNCSIG$vi (func (param i32)))
(type $FUNCSIG$viiii (func (param i32 i32 i32 i32)))
(type $FUNCSIG$v (func))
(type $FUNCSIG$iii (func (param i32 i32) (result i32)))
(import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32)))
(memory $0 1)
(data (i32.const 8) "\01\00\00\00\16\00\00\00h\00e\00l\00l\00o\00 \00w\00o\00r\00l\00d")
(data (i32.const 40) "\01\00\00\00\"\00\00\00o\00b\00j\00e\00c\00t\00-\00l\00i\00t\00e\00r\00a\00l\00.\00t\00s")
(data (i32.const 40) "\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00u\00n\00t\00i\00m\00e\00.\00t\00s")
(data (i32.const 80) "\01\00\00\00\"\00\00\00o\00b\00j\00e\00c\00t\00-\00l\00i\00t\00e\00r\00a\00l\00.\00t\00s")
(table $0 1 funcref)
(elem (i32.const 0) $null)
(global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0))
@ -77,7 +78,7 @@
global.set $~lib/allocator/arena/offset
local.get $1
)
(func $~lib/runtime/ALLOCATE (; 2 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/runtime/doAllocate (; 2 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
i32.const 1
i32.const 32
@ -98,7 +99,44 @@
i32.const 8
i32.add
)
(func $~lib/util/string/compareImpl (; 3 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/runtime/assertUnregistered (; 3 ;) (type $FUNCSIG$vi) (param $0 i32)
local.get $0
i32.const 124
i32.le_u
if
i32.const 0
i32.const 48
i32.const 188
i32.const 2
call $~lib/env/abort
unreachable
end
local.get $0
i32.const 8
i32.sub
i32.load
i32.const -1520547049
i32.ne
if
i32.const 0
i32.const 48
i32.const 189
i32.const 2
call $~lib/env/abort
unreachable
end
)
(func $~lib/runtime/doRegister (; 4 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
local.get $0
call $~lib/runtime/assertUnregistered
local.get $0
i32.const 8
i32.sub
local.get $1
i32.store
local.get $0
)
(func $~lib/util/string/compareImpl (; 5 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
(local $3 i32)
i32.const 16
@ -134,7 +172,7 @@
end
local.get $3
)
(func $~lib/string/String.eq (; 4 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/string/String.eq (; 6 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
local.get $0
i32.const 16
@ -177,14 +215,14 @@
call $~lib/util/string/compareImpl
i32.eqz
)
(func $object-literal/bar (; 5 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $object-literal/bar (; 7 ;) (type $FUNCSIG$vi) (param $0 i32)
local.get $0
i32.load
i32.const 1
i32.ne
if
i32.const 0
i32.const 48
i32.const 88
i32.const 9
i32.const 2
call $~lib/env/abort
@ -196,21 +234,23 @@
i32.eqz
if
i32.const 0
i32.const 48
i32.const 88
i32.const 10
i32.const 2
call $~lib/env/abort
unreachable
end
)
(func $start:object-literal (; 6 ;) (type $FUNCSIG$v)
(func $start:object-literal (; 8 ;) (type $FUNCSIG$v)
(local $0 i32)
i32.const 88
i32.const 128
global.set $~lib/allocator/arena/startOffset
global.get $~lib/allocator/arena/startOffset
global.set $~lib/allocator/arena/offset
i32.const 8
call $~lib/runtime/ALLOCATE
call $~lib/runtime/doAllocate
i32.const 2
call $~lib/runtime/doRegister
local.tee $0
i32.const 1
i32.store
@ -220,7 +260,9 @@
local.get $0
call $object-literal/bar
i32.const 4
call $~lib/runtime/ALLOCATE
call $~lib/runtime/doAllocate
i32.const 3
call $~lib/runtime/doRegister
local.tee $0
i32.const 2
i32.store
@ -230,14 +272,16 @@
i32.ne
if
i32.const 0
i32.const 48
i32.const 88
i32.const 26
i32.const 2
call $~lib/env/abort
unreachable
end
i32.const 4
call $~lib/runtime/ALLOCATE
call $~lib/runtime/doAllocate
i32.const 3
call $~lib/runtime/doRegister
local.tee $0
i32.const 3
i32.store
@ -247,17 +291,17 @@
i32.ne
if
i32.const 0
i32.const 48
i32.const 88
i32.const 21
i32.const 4
call $~lib/env/abort
unreachable
end
)
(func $start (; 7 ;) (type $FUNCSIG$v)
(func $start (; 9 ;) (type $FUNCSIG$v)
call $start:object-literal
)
(func $null (; 8 ;) (type $FUNCSIG$v)
(func $null (; 10 ;) (type $FUNCSIG$v)
nop
)
)

View File

@ -1,14 +1,15 @@
(module
(type $FUNCSIG$ii (func (param i32) (result i32)))
(type $FUNCSIG$iii (func (param i32 i32) (result i32)))
(type $FUNCSIG$vi (func (param i32)))
(type $FUNCSIG$viiii (func (param i32 i32 i32 i32)))
(type $FUNCSIG$iii (func (param i32 i32) (result i32)))
(type $FUNCSIG$iiiiii (func (param i32 i32 i32 i32 i32) (result i32)))
(type $FUNCSIG$v (func))
(import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32)))
(memory $0 1)
(data (i32.const 8) "\01\00\00\00\16\00\00\00h\00e\00l\00l\00o\00 \00w\00o\00r\00l\00d\00")
(data (i32.const 40) "\01\00\00\00\"\00\00\00o\00b\00j\00e\00c\00t\00-\00l\00i\00t\00e\00r\00a\00l\00.\00t\00s\00")
(data (i32.const 40) "\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00u\00n\00t\00i\00m\00e\00.\00t\00s\00")
(data (i32.const 80) "\01\00\00\00\"\00\00\00o\00b\00j\00e\00c\00t\00-\00l\00i\00t\00e\00r\00a\00l\00.\00t\00s\00")
(table $0 1 funcref)
(elem (i32.const 0) $null)
(global $~lib/runtime/GC_IMPLEMENTED i32 (i32.const 0))
@ -16,11 +17,12 @@
(global $~lib/runtime/HEADER_MAGIC i32 (i32.const -1520547049))
(global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0))
(global $~lib/allocator/arena/offset (mut i32) (i32.const 0))
(global $~lib/memory/HEAP_BASE i32 (i32.const 84))
(global $~lib/ASC_NO_ASSERT i32 (i32.const 0))
(global $~lib/memory/HEAP_BASE i32 (i32.const 124))
(export "memory" (memory $0))
(export "table" (table $0))
(start $start)
(func $~lib/runtime/ADJUST (; 1 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/runtime/ADJUSTOBLOCK (; 1 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
i32.const 1
i32.const 32
local.get $0
@ -117,10 +119,10 @@
end
return
)
(func $~lib/runtime/ALLOCATE (; 3 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/runtime/doAllocate (; 3 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
local.get $0
call $~lib/runtime/ADJUST
call $~lib/runtime/ADJUSTOBLOCK
call $~lib/memory/memory.allocate
local.set $1
local.get $1
@ -133,7 +135,50 @@
global.get $~lib/runtime/HEADER_SIZE
i32.add
)
(func $~lib/string/String#get:length (; 4 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/runtime/ALLOCATE (; 4 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
call $~lib/runtime/doAllocate
)
(func $~lib/runtime/assertUnregistered (; 5 ;) (type $FUNCSIG$vi) (param $0 i32)
local.get $0
global.get $~lib/memory/HEAP_BASE
i32.gt_u
i32.eqz
if
i32.const 0
i32.const 48
i32.const 188
i32.const 2
call $~lib/env/abort
unreachable
end
local.get $0
global.get $~lib/runtime/HEADER_SIZE
i32.sub
i32.load
global.get $~lib/runtime/HEADER_MAGIC
i32.eq
i32.eqz
if
i32.const 0
i32.const 48
i32.const 189
i32.const 2
call $~lib/env/abort
unreachable
end
)
(func $~lib/runtime/doRegister (; 6 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
local.get $0
call $~lib/runtime/assertUnregistered
local.get $0
global.get $~lib/runtime/HEADER_SIZE
i32.sub
local.get $1
i32.store
local.get $0
)
(func $~lib/string/String#get:length (; 7 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
global.get $~lib/runtime/HEADER_SIZE
i32.sub
@ -141,7 +186,7 @@
i32.const 1
i32.shr_u
)
(func $~lib/util/string/compareImpl (; 5 ;) (type $FUNCSIG$iiiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (result i32)
(func $~lib/util/string/compareImpl (; 8 ;) (type $FUNCSIG$iiiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (result i32)
(local $5 i32)
(local $6 i32)
(local $7 i32)
@ -194,7 +239,7 @@
end
local.get $5
)
(func $~lib/string/String.eq (; 6 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/string/String.eq (; 9 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
(local $3 i32)
local.get $0
@ -238,7 +283,7 @@
call $~lib/util/string/compareImpl
i32.eqz
)
(func $object-literal/bar (; 7 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $object-literal/bar (; 10 ;) (type $FUNCSIG$vi) (param $0 i32)
local.get $0
i32.load
i32.const 1
@ -246,7 +291,7 @@
i32.eqz
if
i32.const 0
i32.const 48
i32.const 88
i32.const 9
i32.const 2
call $~lib/env/abort
@ -259,14 +304,14 @@
i32.eqz
if
i32.const 0
i32.const 48
i32.const 88
i32.const 10
i32.const 2
call $~lib/env/abort
unreachable
end
)
(func $object-literal/bar2 (; 8 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $object-literal/bar2 (; 11 ;) (type $FUNCSIG$vi) (param $0 i32)
local.get $0
i32.load
i32.const 2
@ -274,14 +319,14 @@
i32.eqz
if
i32.const 0
i32.const 48
i32.const 88
i32.const 26
i32.const 2
call $~lib/env/abort
unreachable
end
)
(func $object-literal/Foo2#test (; 9 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $object-literal/Foo2#test (; 12 ;) (type $FUNCSIG$vi) (param $0 i32)
local.get $0
i32.load
i32.const 3
@ -289,17 +334,18 @@
i32.eqz
if
i32.const 0
i32.const 48
i32.const 88
i32.const 21
i32.const 4
call $~lib/env/abort
unreachable
end
)
(func $start:object-literal (; 10 ;) (type $FUNCSIG$v)
(func $start:object-literal (; 13 ;) (type $FUNCSIG$v)
(local $0 i32)
(local $1 i32)
(local $2 i32)
(local $3 i32)
global.get $~lib/memory/HEAP_BASE
i32.const 7
i32.add
@ -311,8 +357,14 @@
global.get $~lib/allocator/arena/startOffset
global.set $~lib/allocator/arena/offset
block (result i32)
i32.const 8
call $~lib/runtime/ALLOCATE
block $~lib/runtime/REGISTER<Foo>|inlined.0 (result i32)
i32.const 8
call $~lib/runtime/ALLOCATE
local.set $1
local.get $1
i32.const 2
call $~lib/runtime/doRegister
end
local.set $0
local.get $0
i32.const 1
@ -324,8 +376,14 @@
end
call $object-literal/bar
block (result i32)
i32.const 4
call $~lib/runtime/ALLOCATE
block $~lib/runtime/REGISTER<Foo2>|inlined.0 (result i32)
i32.const 4
call $~lib/runtime/ALLOCATE
local.set $2
local.get $2
i32.const 3
call $~lib/runtime/doRegister
end
local.set $1
local.get $1
i32.const 2
@ -334,8 +392,14 @@
end
call $object-literal/bar2
block (result i32)
i32.const 4
call $~lib/runtime/ALLOCATE
block $~lib/runtime/REGISTER<Foo2>|inlined.1 (result i32)
i32.const 4
call $~lib/runtime/ALLOCATE
local.set $3
local.get $3
i32.const 3
call $~lib/runtime/doRegister
end
local.set $2
local.get $2
i32.const 3
@ -344,9 +408,9 @@
end
call $object-literal/Foo2#test
)
(func $start (; 11 ;) (type $FUNCSIG$v)
(func $start (; 14 ;) (type $FUNCSIG$v)
call $start:object-literal
)
(func $null (; 12 ;) (type $FUNCSIG$v)
(func $null (; 15 ;) (type $FUNCSIG$v)
)
)

View File

@ -1,8 +1,13 @@
(module
(type $FUNCSIG$ii (func (param i32) (result i32)))
(type $FUNCSIG$iii (func (param i32 i32) (result i32)))
(type $FUNCSIG$vi (func (param i32)))
(type $FUNCSIG$viiii (func (param i32 i32 i32 i32)))
(type $FUNCSIG$v (func))
(type $FUNCSIG$i (func (result i32)))
(memory $0 0)
(import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32)))
(memory $0 1)
(data (i32.const 8) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00u\00n\00t\00i\00m\00e\00.\00t\00s")
(table $0 1 funcref)
(elem (i32.const 0) $null)
(global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0))
@ -12,7 +17,7 @@
(export "memory" (memory $0))
(export "table" (table $0))
(start $start)
(func $~lib/memory/memory.allocate (; 0 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/memory/memory.allocate (; 1 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
(local $2 i32)
(local $3 i32)
@ -74,7 +79,7 @@
global.set $~lib/allocator/arena/offset
local.get $1
)
(func $~lib/runtime/ALLOCATE (; 1 ;) (type $FUNCSIG$i) (result i32)
(func $~lib/runtime/doAllocate (; 2 ;) (type $FUNCSIG$i) (result i32)
(local $0 i32)
i32.const 8
call $~lib/memory/memory.allocate
@ -88,17 +93,58 @@
i32.const 8
i32.add
)
(func $start (; 2 ;) (type $FUNCSIG$v)
(func $~lib/runtime/assertUnregistered (; 3 ;) (type $FUNCSIG$vi) (param $0 i32)
local.get $0
i32.const 48
i32.le_u
if
i32.const 0
i32.const 16
i32.const 188
i32.const 2
call $~lib/env/abort
unreachable
end
local.get $0
i32.const 8
i32.sub
i32.load
i32.const -1520547049
i32.ne
if
i32.const 0
i32.const 16
i32.const 189
i32.const 2
call $~lib/env/abort
unreachable
end
)
(func $~lib/runtime/doRegister (; 4 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
local.get $0
call $~lib/runtime/assertUnregistered
local.get $0
i32.const 8
i32.sub
local.get $1
i32.store
local.get $0
)
(func $start (; 5 ;) (type $FUNCSIG$v)
i32.const 48
global.set $~lib/allocator/arena/startOffset
global.get $~lib/allocator/arena/startOffset
global.set $~lib/allocator/arena/offset
call $~lib/runtime/ALLOCATE
call $~lib/runtime/doAllocate
i32.const 1
call $~lib/runtime/doRegister
global.set $optional-typeparameters/tConcrete
call $~lib/runtime/ALLOCATE
call $~lib/runtime/doAllocate
i32.const 3
call $~lib/runtime/doRegister
global.set $optional-typeparameters/tDerived
)
(func $null (; 3 ;) (type $FUNCSIG$v)
(func $null (; 6 ;) (type $FUNCSIG$v)
nop
)
)

View File

@ -1,9 +1,14 @@
(module
(type $FUNCSIG$ii (func (param i32) (result i32)))
(type $FUNCSIG$iii (func (param i32 i32) (result i32)))
(type $FUNCSIG$vi (func (param i32)))
(type $FUNCSIG$viiii (func (param i32 i32 i32 i32)))
(type $FUNCSIG$iiii (func (param i32 i32 i32) (result i32)))
(type $FUNCSIG$didd (func (param i32 f64 f64) (result f64)))
(type $FUNCSIG$v (func))
(memory $0 0)
(import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32)))
(memory $0 1)
(data (i32.const 8) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00u\00n\00t\00i\00m\00e\00.\00t\00s\00")
(table $0 1 funcref)
(elem (i32.const 0) $null)
(global $~lib/runtime/GC_IMPLEMENTED i32 (i32.const 0))
@ -11,19 +16,20 @@
(global $~lib/runtime/HEADER_MAGIC i32 (i32.const -1520547049))
(global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0))
(global $~lib/allocator/arena/offset (mut i32) (i32.const 0))
(global $~lib/ASC_NO_ASSERT i32 (i32.const 0))
(global $optional-typeparameters/tConcrete (mut i32) (i32.const 0))
(global $optional-typeparameters/tDerived (mut i32) (i32.const 0))
(global $~lib/memory/HEAP_BASE i32 (i32.const 8))
(global $~lib/memory/HEAP_BASE i32 (i32.const 48))
(export "memory" (memory $0))
(export "table" (table $0))
(start $start)
(func $optional-typeparameters/testConcrete<i32,i32> (; 0 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $optional-typeparameters/testConcrete<i32,i32> (; 1 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
)
(func $optional-typeparameters/testDerived<i32,i32> (; 1 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $optional-typeparameters/testDerived<i32,i32> (; 2 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
)
(func $~lib/runtime/ADJUST (; 2 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/runtime/ADJUSTOBLOCK (; 3 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
i32.const 1
i32.const 32
local.get $0
@ -35,7 +41,7 @@
i32.sub
i32.shl
)
(func $~lib/memory/memory.allocate (; 3 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/memory/memory.allocate (; 4 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
(local $2 i32)
(local $3 i32)
@ -120,10 +126,10 @@
end
return
)
(func $~lib/runtime/ALLOCATE (; 4 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/runtime/doAllocate (; 5 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
local.get $0
call $~lib/runtime/ADJUST
call $~lib/runtime/ADJUSTOBLOCK
call $~lib/memory/memory.allocate
local.set $1
local.get $1
@ -136,37 +142,94 @@
global.get $~lib/runtime/HEADER_SIZE
i32.add
)
(func $optional-typeparameters/TestConcrete<i32,i32>#constructor (; 5 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/runtime/ALLOCATE (; 6 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
call $~lib/runtime/doAllocate
)
(func $~lib/runtime/assertUnregistered (; 7 ;) (type $FUNCSIG$vi) (param $0 i32)
local.get $0
global.get $~lib/memory/HEAP_BASE
i32.gt_u
i32.eqz
if
i32.const 0
call $~lib/runtime/ALLOCATE
i32.const 16
i32.const 188
i32.const 2
call $~lib/env/abort
unreachable
end
local.get $0
global.get $~lib/runtime/HEADER_SIZE
i32.sub
i32.load
global.get $~lib/runtime/HEADER_MAGIC
i32.eq
i32.eqz
if
i32.const 0
i32.const 16
i32.const 189
i32.const 2
call $~lib/env/abort
unreachable
end
)
(func $~lib/runtime/doRegister (; 8 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
local.get $0
call $~lib/runtime/assertUnregistered
local.get $0
global.get $~lib/runtime/HEADER_SIZE
i32.sub
local.get $1
i32.store
local.get $0
)
(func $optional-typeparameters/TestConcrete<i32,i32>#constructor (; 9 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
local.get $0
i32.eqz
if
block $~lib/runtime/REGISTER<TestConcrete<i32,i32>>|inlined.0 (result i32)
i32.const 0
call $~lib/runtime/ALLOCATE
local.set $1
local.get $1
i32.const 1
call $~lib/runtime/doRegister
end
local.set $0
end
local.get $0
)
(func $optional-typeparameters/TestConcrete<i32,i32>#test<i32> (; 6 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $optional-typeparameters/TestConcrete<i32,i32>#test<i32> (; 10 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
local.get $1
local.get $2
i32.add
)
(func $optional-typeparameters/TestDerived<f64,f64>#constructor (; 7 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $optional-typeparameters/TestDerived<f64,f64>#constructor (; 11 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
local.get $0
i32.eqz
if
i32.const 0
call $~lib/runtime/ALLOCATE
block $~lib/runtime/REGISTER<TestDerived<f64,f64>>|inlined.0 (result i32)
i32.const 0
call $~lib/runtime/ALLOCATE
local.set $1
local.get $1
i32.const 3
call $~lib/runtime/doRegister
end
local.set $0
end
local.get $0
)
(func $optional-typeparameters/TestDerived<f64,f64>#test<f64> (; 8 ;) (type $FUNCSIG$didd) (param $0 i32) (param $1 f64) (param $2 f64) (result f64)
(func $optional-typeparameters/TestDerived<f64,f64>#test<f64> (; 12 ;) (type $FUNCSIG$didd) (param $0 i32) (param $1 f64) (param $2 f64) (result f64)
local.get $1
local.get $2
f64.add
)
(func $start:optional-typeparameters (; 9 ;) (type $FUNCSIG$v)
(func $start:optional-typeparameters (; 13 ;) (type $FUNCSIG$v)
i32.const 1
call $optional-typeparameters/testConcrete<i32,i32>
drop
@ -200,9 +263,9 @@
call $optional-typeparameters/TestDerived<f64,f64>#test<f64>
drop
)
(func $start (; 10 ;) (type $FUNCSIG$v)
(func $start (; 14 ;) (type $FUNCSIG$v)
call $start:optional-typeparameters
)
(func $null (; 11 ;) (type $FUNCSIG$v)
(func $null (; 15 ;) (type $FUNCSIG$v)
)
)

View File

@ -3,7 +3,7 @@
(type $FUNCSIG$v (func))
(import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32)))
(memory $0 1)
(data (i32.const 8) "\17\00\00\00p\00o\00r\00t\00a\00b\00l\00e\00-\00c\00o\00n\00v\00e\00r\00s\00i\00o\00n\00s\00.\00t\00s")
(data (i32.const 8) "\01\00\00\00.\00\00\00p\00o\00r\00t\00a\00b\00l\00e\00-\00c\00o\00n\00v\00e\00r\00s\00i\00o\00n\00s\00.\00t\00s")
(table $0 1 funcref)
(elem (i32.const 0) $null)
(global $portable-conversions/i (mut i32) (i32.const 1))
@ -20,7 +20,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 6
i32.const 0
call $~lib/env/abort
@ -33,7 +33,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 7
i32.const 0
call $~lib/env/abort
@ -46,7 +46,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 8
i32.const 0
call $~lib/env/abort
@ -59,7 +59,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 9
i32.const 0
call $~lib/env/abort
@ -71,7 +71,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 11
i32.const 0
call $~lib/env/abort
@ -84,7 +84,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 12
i32.const 0
call $~lib/env/abort
@ -97,7 +97,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 13
i32.const 0
call $~lib/env/abort
@ -110,7 +110,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 14
i32.const 0
call $~lib/env/abort
@ -120,7 +120,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 16
i32.const 0
call $~lib/env/abort
@ -131,7 +131,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 17
i32.const 0
call $~lib/env/abort
@ -142,7 +142,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 18
i32.const 0
call $~lib/env/abort
@ -153,7 +153,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 19
i32.const 0
call $~lib/env/abort
@ -164,7 +164,7 @@
i64.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 21
i32.const 0
call $~lib/env/abort
@ -174,7 +174,7 @@
i64.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 22
i32.const 0
call $~lib/env/abort
@ -185,7 +185,7 @@
i64.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 23
i32.const 0
call $~lib/env/abort
@ -196,7 +196,7 @@
i64.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 24
i32.const 0
call $~lib/env/abort
@ -206,7 +206,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 26
i32.const 0
call $~lib/env/abort
@ -217,7 +217,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 27
i32.const 0
call $~lib/env/abort
@ -228,7 +228,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 28
i32.const 0
call $~lib/env/abort
@ -239,7 +239,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 29
i32.const 0
call $~lib/env/abort
@ -251,7 +251,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 31
i32.const 0
call $~lib/env/abort
@ -264,7 +264,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 32
i32.const 0
call $~lib/env/abort
@ -277,7 +277,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 33
i32.const 0
call $~lib/env/abort
@ -290,7 +290,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 34
i32.const 0
call $~lib/env/abort
@ -302,7 +302,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 36
i32.const 0
call $~lib/env/abort
@ -315,7 +315,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 37
i32.const 0
call $~lib/env/abort
@ -328,7 +328,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 38
i32.const 0
call $~lib/env/abort
@ -341,7 +341,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 39
i32.const 0
call $~lib/env/abort
@ -351,7 +351,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 41
i32.const 0
call $~lib/env/abort
@ -362,7 +362,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 42
i32.const 0
call $~lib/env/abort
@ -373,7 +373,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 43
i32.const 0
call $~lib/env/abort
@ -384,7 +384,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 44
i32.const 0
call $~lib/env/abort
@ -395,7 +395,7 @@
i64.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 46
i32.const 0
call $~lib/env/abort
@ -405,7 +405,7 @@
i64.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 47
i32.const 0
call $~lib/env/abort
@ -416,7 +416,7 @@
i64.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 48
i32.const 0
call $~lib/env/abort
@ -427,7 +427,7 @@
i64.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 49
i32.const 0
call $~lib/env/abort
@ -437,7 +437,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 51
i32.const 0
call $~lib/env/abort
@ -448,7 +448,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 52
i32.const 0
call $~lib/env/abort
@ -459,7 +459,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 53
i32.const 0
call $~lib/env/abort
@ -470,7 +470,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 54
i32.const 0
call $~lib/env/abort
@ -480,7 +480,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 56
i32.const 0
call $~lib/env/abort
@ -491,7 +491,7 @@
i64.eq
if
i32.const 0
i32.const 8
i32.const 16
i32.const 57
i32.const 0
call $~lib/env/abort
@ -502,7 +502,7 @@
f32.eq
if
i32.const 0
i32.const 8
i32.const 16
i32.const 58
i32.const 0
call $~lib/env/abort
@ -513,7 +513,7 @@
f64.eq
if
i32.const 0
i32.const 8
i32.const 16
i32.const 59
i32.const 0
call $~lib/env/abort
@ -525,7 +525,7 @@
f32.eq
if
i32.const 0
i32.const 8
i32.const 16
i32.const 61
i32.const 0
call $~lib/env/abort
@ -537,7 +537,7 @@
f32.eq
if
i32.const 0
i32.const 8
i32.const 16
i32.const 62
i32.const 0
call $~lib/env/abort
@ -548,7 +548,7 @@
f32.eq
if
i32.const 0
i32.const 8
i32.const 16
i32.const 63
i32.const 0
call $~lib/env/abort
@ -560,7 +560,7 @@
f32.eq
if
i32.const 0
i32.const 8
i32.const 16
i32.const 64
i32.const 0
call $~lib/env/abort
@ -572,7 +572,7 @@
f64.eq
if
i32.const 0
i32.const 8
i32.const 16
i32.const 66
i32.const 0
call $~lib/env/abort
@ -584,7 +584,7 @@
f64.eq
if
i32.const 0
i32.const 8
i32.const 16
i32.const 67
i32.const 0
call $~lib/env/abort
@ -596,7 +596,7 @@
f64.eq
if
i32.const 0
i32.const 8
i32.const 16
i32.const 68
i32.const 0
call $~lib/env/abort
@ -607,7 +607,7 @@
f64.eq
if
i32.const 0
i32.const 8
i32.const 16
i32.const 69
i32.const 0
call $~lib/env/abort

View File

@ -3,14 +3,14 @@
(type $FUNCSIG$v (func))
(import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32)))
(memory $0 1)
(data (i32.const 8) "\17\00\00\00p\00o\00r\00t\00a\00b\00l\00e\00-\00c\00o\00n\00v\00e\00r\00s\00i\00o\00n\00s\00.\00t\00s\00")
(data (i32.const 8) "\01\00\00\00.\00\00\00p\00o\00r\00t\00a\00b\00l\00e\00-\00c\00o\00n\00v\00e\00r\00s\00i\00o\00n\00s\00.\00t\00s\00")
(table $0 1 funcref)
(elem (i32.const 0) $null)
(global $portable-conversions/i (mut i32) (i32.const 1))
(global $portable-conversions/I (mut i64) (i64.const 1))
(global $portable-conversions/f (mut f32) (f32.const 1))
(global $portable-conversions/F (mut f64) (f64.const 1))
(global $~lib/memory/HEAP_BASE i32 (i32.const 60))
(global $~lib/memory/HEAP_BASE i32 (i32.const 64))
(export "memory" (memory $0))
(export "table" (table $0))
(start $start)
@ -23,7 +23,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 6
i32.const 0
call $~lib/env/abort
@ -38,7 +38,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 7
i32.const 0
call $~lib/env/abort
@ -53,7 +53,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 8
i32.const 0
call $~lib/env/abort
@ -68,7 +68,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 9
i32.const 0
call $~lib/env/abort
@ -82,7 +82,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 11
i32.const 0
call $~lib/env/abort
@ -97,7 +97,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 12
i32.const 0
call $~lib/env/abort
@ -112,7 +112,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 13
i32.const 0
call $~lib/env/abort
@ -127,7 +127,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 14
i32.const 0
call $~lib/env/abort
@ -137,7 +137,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 16
i32.const 0
call $~lib/env/abort
@ -148,7 +148,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 17
i32.const 0
call $~lib/env/abort
@ -159,7 +159,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 18
i32.const 0
call $~lib/env/abort
@ -170,7 +170,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 19
i32.const 0
call $~lib/env/abort
@ -181,7 +181,7 @@
i64.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 21
i32.const 0
call $~lib/env/abort
@ -191,7 +191,7 @@
i64.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 22
i32.const 0
call $~lib/env/abort
@ -202,7 +202,7 @@
i64.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 23
i32.const 0
call $~lib/env/abort
@ -213,7 +213,7 @@
i64.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 24
i32.const 0
call $~lib/env/abort
@ -223,7 +223,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 26
i32.const 0
call $~lib/env/abort
@ -234,7 +234,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 27
i32.const 0
call $~lib/env/abort
@ -245,7 +245,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 28
i32.const 0
call $~lib/env/abort
@ -256,7 +256,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 29
i32.const 0
call $~lib/env/abort
@ -268,7 +268,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 31
i32.const 0
call $~lib/env/abort
@ -281,7 +281,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 32
i32.const 0
call $~lib/env/abort
@ -294,7 +294,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 33
i32.const 0
call $~lib/env/abort
@ -307,7 +307,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 34
i32.const 0
call $~lib/env/abort
@ -319,7 +319,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 36
i32.const 0
call $~lib/env/abort
@ -332,7 +332,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 37
i32.const 0
call $~lib/env/abort
@ -345,7 +345,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 38
i32.const 0
call $~lib/env/abort
@ -358,7 +358,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 39
i32.const 0
call $~lib/env/abort
@ -368,7 +368,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 41
i32.const 0
call $~lib/env/abort
@ -379,7 +379,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 42
i32.const 0
call $~lib/env/abort
@ -390,7 +390,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 43
i32.const 0
call $~lib/env/abort
@ -401,7 +401,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 44
i32.const 0
call $~lib/env/abort
@ -412,7 +412,7 @@
i64.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 46
i32.const 0
call $~lib/env/abort
@ -422,7 +422,7 @@
i64.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 47
i32.const 0
call $~lib/env/abort
@ -433,7 +433,7 @@
i64.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 48
i32.const 0
call $~lib/env/abort
@ -444,7 +444,7 @@
i64.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 49
i32.const 0
call $~lib/env/abort
@ -454,7 +454,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 51
i32.const 0
call $~lib/env/abort
@ -465,7 +465,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 52
i32.const 0
call $~lib/env/abort
@ -476,7 +476,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 53
i32.const 0
call $~lib/env/abort
@ -487,7 +487,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 54
i32.const 0
call $~lib/env/abort
@ -499,7 +499,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 56
i32.const 0
call $~lib/env/abort
@ -511,7 +511,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 57
i32.const 0
call $~lib/env/abort
@ -523,7 +523,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 58
i32.const 0
call $~lib/env/abort
@ -535,7 +535,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 59
i32.const 0
call $~lib/env/abort
@ -547,7 +547,7 @@
f32.eq
if
i32.const 0
i32.const 8
i32.const 16
i32.const 61
i32.const 0
call $~lib/env/abort
@ -559,7 +559,7 @@
f32.eq
if
i32.const 0
i32.const 8
i32.const 16
i32.const 62
i32.const 0
call $~lib/env/abort
@ -570,7 +570,7 @@
f32.eq
if
i32.const 0
i32.const 8
i32.const 16
i32.const 63
i32.const 0
call $~lib/env/abort
@ -582,7 +582,7 @@
f32.eq
if
i32.const 0
i32.const 8
i32.const 16
i32.const 64
i32.const 0
call $~lib/env/abort
@ -594,7 +594,7 @@
f64.eq
if
i32.const 0
i32.const 8
i32.const 16
i32.const 66
i32.const 0
call $~lib/env/abort
@ -606,7 +606,7 @@
f64.eq
if
i32.const 0
i32.const 8
i32.const 16
i32.const 67
i32.const 0
call $~lib/env/abort
@ -618,7 +618,7 @@
f64.eq
if
i32.const 0
i32.const 8
i32.const 16
i32.const 68
i32.const 0
call $~lib/env/abort
@ -629,7 +629,7 @@
f64.eq
if
i32.const 0
i32.const 8
i32.const 16
i32.const 69
i32.const 0
call $~lib/env/abort

View File

@ -3,7 +3,7 @@
(type $FUNCSIG$v (func))
(import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32)))
(memory $0 1)
(data (i32.const 8) "\0d\00\00\00r\00e\00t\00a\00i\00n\00-\00i\003\002\00.\00t\00s")
(data (i32.const 8) "\01\00\00\00\1a\00\00\00r\00e\00t\00a\00i\00n\00-\00i\003\002\00.\00t\00s")
(table $0 1 funcref)
(elem (i32.const 0) $null)
(global $retain-i32/si (mut i32) (i32.const 0))
@ -34,7 +34,7 @@
i32.ne
if
i32.const 0
i32.const 8
i32.const 16
i32.const 78
i32.const 0
call $~lib/env/abort
@ -47,7 +47,7 @@
i32.ne
if
i32.const 0
i32.const 8
i32.const 16
i32.const 81
i32.const 0
call $~lib/env/abort
@ -60,7 +60,7 @@
i32.ne
if
i32.const 0
i32.const 8
i32.const 16
i32.const 84
i32.const 0
call $~lib/env/abort
@ -73,7 +73,7 @@
i32.ne
if
i32.const 0
i32.const 8
i32.const 16
i32.const 87
i32.const 0
call $~lib/env/abort
@ -86,7 +86,7 @@
i32.ne
if
i32.const 0
i32.const 8
i32.const 16
i32.const 90
i32.const 0
call $~lib/env/abort
@ -99,7 +99,7 @@
i32.ne
if
i32.const 0
i32.const 8
i32.const 16
i32.const 93
i32.const 0
call $~lib/env/abort
@ -112,7 +112,7 @@
i32.ne
if
i32.const 0
i32.const 8
i32.const 16
i32.const 96
i32.const 0
call $~lib/env/abort
@ -125,7 +125,7 @@
i32.ne
if
i32.const 0
i32.const 8
i32.const 16
i32.const 99
i32.const 0
call $~lib/env/abort
@ -138,7 +138,7 @@
i32.ne
if
i32.const 0
i32.const 8
i32.const 16
i32.const 102
i32.const 0
call $~lib/env/abort
@ -149,7 +149,7 @@
global.get $retain-i32/si
if
i32.const 0
i32.const 8
i32.const 16
i32.const 105
i32.const 0
call $~lib/env/abort
@ -162,7 +162,7 @@
i32.ne
if
i32.const 0
i32.const 8
i32.const 16
i32.const 108
i32.const 0
call $~lib/env/abort
@ -175,7 +175,7 @@
i32.ne
if
i32.const 0
i32.const 8
i32.const 16
i32.const 113
i32.const 0
call $~lib/env/abort
@ -188,7 +188,7 @@
i32.ne
if
i32.const 0
i32.const 8
i32.const 16
i32.const 116
i32.const 0
call $~lib/env/abort
@ -201,7 +201,7 @@
i32.ne
if
i32.const 0
i32.const 8
i32.const 16
i32.const 119
i32.const 0
call $~lib/env/abort
@ -214,7 +214,7 @@
i32.ne
if
i32.const 0
i32.const 8
i32.const 16
i32.const 122
i32.const 0
call $~lib/env/abort
@ -227,7 +227,7 @@
i32.ne
if
i32.const 0
i32.const 8
i32.const 16
i32.const 125
i32.const 0
call $~lib/env/abort
@ -240,7 +240,7 @@
i32.ne
if
i32.const 0
i32.const 8
i32.const 16
i32.const 128
i32.const 0
call $~lib/env/abort
@ -251,7 +251,7 @@
global.get $retain-i32/ui
if
i32.const 0
i32.const 8
i32.const 16
i32.const 131
i32.const 0
call $~lib/env/abort

View File

@ -4,7 +4,7 @@
(type $FUNCSIG$v (func))
(import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32)))
(memory $0 1)
(data (i32.const 8) "\0d\00\00\00r\00e\00t\00a\00i\00n\00-\00i\003\002\00.\00t\00s\00")
(data (i32.const 8) "\01\00\00\00\1a\00\00\00r\00e\00t\00a\00i\00n\00-\00i\003\002\00.\00t\00s\00")
(table $0 1 funcref)
(elem (i32.const 0) $null)
(global $~lib/builtins/i8.MAX_VALUE i32 (i32.const 127))
@ -18,7 +18,7 @@
(global $~lib/builtins/u32.MAX_VALUE i32 (i32.const -1))
(global $retain-i32/si (mut i32) (i32.const 0))
(global $retain-i32/ui (mut i32) (i32.const 0))
(global $~lib/memory/HEAP_BASE i32 (i32.const 40))
(global $~lib/memory/HEAP_BASE i32 (i32.const 44))
(export "memory" (memory $0))
(export "table" (table $0))
(start $start)
@ -41,7 +41,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 4
i32.const 2
call $~lib/env/abort
@ -65,7 +65,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 5
i32.const 2
call $~lib/env/abort
@ -89,7 +89,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 6
i32.const 2
call $~lib/env/abort
@ -113,7 +113,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 7
i32.const 2
call $~lib/env/abort
@ -137,7 +137,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 8
i32.const 2
call $~lib/env/abort
@ -161,7 +161,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 9
i32.const 2
call $~lib/env/abort
@ -185,7 +185,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 10
i32.const 2
call $~lib/env/abort
@ -205,7 +205,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 13
i32.const 2
call $~lib/env/abort
@ -225,7 +225,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 14
i32.const 2
call $~lib/env/abort
@ -245,7 +245,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 15
i32.const 2
call $~lib/env/abort
@ -265,7 +265,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 16
i32.const 2
call $~lib/env/abort
@ -285,7 +285,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 17
i32.const 2
call $~lib/env/abort
@ -305,7 +305,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 18
i32.const 2
call $~lib/env/abort
@ -325,7 +325,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 19
i32.const 2
call $~lib/env/abort
@ -475,7 +475,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 78
i32.const 0
call $~lib/env/abort
@ -497,7 +497,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 81
i32.const 0
call $~lib/env/abort
@ -517,7 +517,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 84
i32.const 0
call $~lib/env/abort
@ -537,7 +537,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 87
i32.const 0
call $~lib/env/abort
@ -557,7 +557,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 90
i32.const 0
call $~lib/env/abort
@ -577,7 +577,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 93
i32.const 0
call $~lib/env/abort
@ -597,7 +597,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 96
i32.const 0
call $~lib/env/abort
@ -613,7 +613,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 99
i32.const 0
call $~lib/env/abort
@ -629,7 +629,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 102
i32.const 0
call $~lib/env/abort
@ -645,7 +645,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 105
i32.const 0
call $~lib/env/abort
@ -661,7 +661,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 108
i32.const 0
call $~lib/env/abort
@ -681,7 +681,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 113
i32.const 0
call $~lib/env/abort
@ -701,7 +701,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 116
i32.const 0
call $~lib/env/abort
@ -719,7 +719,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 119
i32.const 0
call $~lib/env/abort
@ -737,7 +737,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 122
i32.const 0
call $~lib/env/abort
@ -753,7 +753,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 125
i32.const 0
call $~lib/env/abort
@ -769,7 +769,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 128
i32.const 0
call $~lib/env/abort
@ -785,7 +785,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 131
i32.const 0
call $~lib/env/abort

View File

@ -3,7 +3,7 @@
(type $FUNCSIG$v (func))
(import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32)))
(memory $0 1)
(data (i32.const 8) "\0e\00\00\00s\00t\00a\00t\00i\00c\00-\00t\00h\00i\00s\00.\00t\00s")
(data (i32.const 8) "\01\00\00\00\1c\00\00\00s\00t\00a\00t\00i\00c\00-\00t\00h\00i\00s\00.\00t\00s")
(table $0 1 funcref)
(elem (i32.const 0) $null)
(global $static-this/Foo.bar (mut i32) (i32.const 42))
@ -16,7 +16,7 @@
i32.ne
if
i32.const 0
i32.const 8
i32.const 16
i32.const 8
i32.const 0
call $~lib/env/abort

View File

@ -4,11 +4,11 @@
(type $FUNCSIG$v (func))
(import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32)))
(memory $0 1)
(data (i32.const 8) "\0e\00\00\00s\00t\00a\00t\00i\00c\00-\00t\00h\00i\00s\00.\00t\00s\00")
(data (i32.const 8) "\01\00\00\00\1c\00\00\00s\00t\00a\00t\00i\00c\00-\00t\00h\00i\00s\00.\00t\00s\00")
(table $0 1 funcref)
(elem (i32.const 0) $null)
(global $static-this/Foo.bar (mut i32) (i32.const 42))
(global $~lib/memory/HEAP_BASE i32 (i32.const 40))
(global $~lib/memory/HEAP_BASE i32 (i32.const 44))
(export "memory" (memory $0))
(export "table" (table $0))
(start $start)
@ -22,7 +22,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 8
i32.const 0
call $~lib/env/abort

View File

@ -1,13 +1,12 @@
(module
(type $FUNCSIG$v (func))
(type $FUNCSIG$viiii (func (param i32 i32 i32 i32)))
(type $FUNCSIG$v (func))
(type $FUNCSIG$i (func (result i32)))
(type $FUNCSIG$vi (func (param i32)))
(type $FUNCSIG$vii (func (param i32 i32)))
(type $FUNCSIG$iii (func (param i32 i32) (result i32)))
(import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32)))
(memory $0 1)
(data (i32.const 8) "\16\00\00\00s\00t\00d\00/\00a\00l\00l\00o\00c\00a\00t\00o\00r\00_\00a\00r\00e\00n\00a\00.\00t\00s")
(data (i32.const 8) "\01\00\00\00,\00\00\00s\00t\00d\00/\00a\00l\00l\00o\00c\00a\00t\00o\00r\00_\00a\00r\00e\00n\00a\00.\00t\00s")
(table $0 1 funcref)
(elem (i32.const 0) $null)
(global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0))
@ -18,7 +17,7 @@
(export "memory" (memory $0))
(export "table" (table $0))
(start $start)
(func $~lib/allocator/arena/__memory_allocate (; 1 ;) (type $FUNCSIG$i) (result i32)
(func $~lib/memory/memory.allocate (; 1 ;) (type $FUNCSIG$i) (result i32)
(local $0 i32)
(local $1 i32)
(local $2 i32)
@ -68,200 +67,200 @@
global.set $~lib/allocator/arena/offset
local.get $0
)
(func $~lib/internal/memory/memset (; 2 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/memory/memory.fill (; 2 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
(local $2 i32)
local.get $0
i32.const 18
i32.store8
local.get $0
i32.const 42
i32.add
local.tee $1
i32.const 1
i32.sub
i32.const 18
i32.store8
local.get $0
i32.const 1
i32.add
i32.const 18
i32.store8
local.get $0
i32.const 2
i32.add
i32.const 18
i32.store8
local.get $1
i32.const 2
i32.sub
i32.const 18
i32.store8
local.get $1
i32.const 3
i32.sub
i32.const 18
i32.store8
local.get $0
i32.const 3
i32.add
i32.const 18
i32.store8
local.get $1
i32.const 4
i32.sub
i32.const 18
i32.store8
i32.const 0
local.get $0
i32.sub
i32.const 3
i32.and
local.tee $1
local.get $0
i32.add
local.tee $0
i32.const 303174162
i32.store
i32.const 42
local.get $1
i32.sub
i32.const -4
i32.and
local.tee $2
local.get $0
i32.add
i32.const 4
i32.sub
i32.const 303174162
i32.store
local.get $2
i32.const 8
i32.le_u
if
return
end
local.get $0
i32.const 4
i32.add
i32.const 303174162
i32.store
local.get $0
i32.const 8
i32.add
i32.const 303174162
i32.store
local.get $0
local.get $2
i32.add
local.tee $1
i32.const 12
i32.sub
i32.const 303174162
i32.store
local.get $1
i32.const 8
i32.sub
i32.const 303174162
i32.store
local.get $2
i32.const 24
i32.le_u
if
return
end
local.get $0
i32.const 12
i32.add
i32.const 303174162
i32.store
local.get $0
i32.const 16
i32.add
i32.const 303174162
i32.store
local.get $0
i32.const 20
i32.add
i32.const 303174162
i32.store
local.get $0
i32.const 24
i32.add
i32.const 303174162
i32.store
local.get $0
local.get $2
i32.add
local.tee $1
i32.const 28
i32.sub
i32.const 303174162
i32.store
local.get $1
i32.const 24
i32.sub
i32.const 303174162
i32.store
local.get $1
i32.const 20
i32.sub
i32.const 303174162
i32.store
local.get $1
i32.const 16
i32.sub
i32.const 303174162
i32.store
local.get $0
i32.const 4
i32.and
i32.const 24
i32.add
local.tee $1
local.get $0
i32.add
local.set $0
local.get $2
local.get $1
i32.sub
local.set $2
loop $continue|0
block $~lib/util/memory/memset|inlined.0
local.get $0
i32.const 18
i32.store8
local.get $0
i32.const 42
i32.add
local.tee $1
i32.const 1
i32.sub
i32.const 18
i32.store8
local.get $0
i32.const 1
i32.add
i32.const 18
i32.store8
local.get $0
i32.const 2
i32.add
i32.const 18
i32.store8
local.get $1
i32.const 2
i32.sub
i32.const 18
i32.store8
local.get $1
i32.const 3
i32.sub
i32.const 18
i32.store8
local.get $0
i32.const 3
i32.add
i32.const 18
i32.store8
local.get $1
i32.const 4
i32.sub
i32.const 18
i32.store8
i32.const 42
i32.const 0
local.get $0
i32.sub
i32.const 3
i32.and
local.tee $1
i32.sub
local.set $2
local.get $0
local.get $1
i32.add
local.tee $0
i32.const 303174162
i32.store
local.get $2
i32.const 32
i32.ge_u
if
local.get $0
i64.const 1302123111085380114
i64.store
local.get $0
i32.const 8
i32.add
i64.const 1302123111085380114
i64.store
local.get $0
i32.const 16
i32.add
i64.const 1302123111085380114
i64.store
local.get $0
i32.const 24
i32.add
i64.const 1302123111085380114
i64.store
i32.const -4
i32.and
local.tee $2
local.get $0
i32.add
i32.const 4
i32.sub
i32.const 303174162
i32.store
local.get $2
i32.const 8
i32.le_u
br_if $~lib/util/memory/memset|inlined.0
local.get $0
i32.const 4
i32.add
i32.const 303174162
i32.store
local.get $0
i32.const 8
i32.add
i32.const 303174162
i32.store
local.get $0
local.get $2
i32.add
local.tee $1
i32.const 12
i32.sub
i32.const 303174162
i32.store
local.get $1
i32.const 8
i32.sub
i32.const 303174162
i32.store
local.get $2
i32.const 24
i32.le_u
br_if $~lib/util/memory/memset|inlined.0
local.get $0
i32.const 12
i32.add
i32.const 303174162
i32.store
local.get $0
i32.const 16
i32.add
i32.const 303174162
i32.store
local.get $0
i32.const 20
i32.add
i32.const 303174162
i32.store
local.get $0
i32.const 24
i32.add
i32.const 303174162
i32.store
local.get $0
local.get $2
i32.add
local.tee $1
i32.const 28
i32.sub
i32.const 303174162
i32.store
local.get $1
i32.const 24
i32.sub
i32.const 303174162
i32.store
local.get $1
i32.const 20
i32.sub
i32.const 303174162
i32.store
local.get $1
i32.const 16
i32.sub
i32.const 303174162
i32.store
local.get $0
i32.const 4
i32.and
i32.const 24
i32.add
local.tee $1
local.get $0
i32.add
local.set $0
local.get $2
local.get $1
i32.sub
local.set $2
loop $continue|0
local.get $2
i32.const 32
i32.sub
local.set $2
local.get $0
i32.const 32
i32.add
local.set $0
br $continue|0
i32.ge_u
if
local.get $0
i64.const 1302123111085380114
i64.store
local.get $0
i32.const 8
i32.add
i64.const 1302123111085380114
i64.store
local.get $0
i32.const 16
i32.add
i64.const 1302123111085380114
i64.store
local.get $0
i32.const 24
i32.add
i64.const 1302123111085380114
i64.store
local.get $2
i32.const 32
i32.sub
local.set $2
local.get $0
i32.const 32
i32.add
local.set $0
br $continue|0
end
end
end
)
(func $~lib/internal/memory/memcpy (; 3 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/util/memory/memcpy (; 3 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@ -1111,65 +1110,107 @@
i32.store8
end
)
(func $~lib/internal/memory/memmove (; 4 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/memory/memory.copy (; 4 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
i32.const 42
local.set $2
local.get $0
local.get $1
i32.eq
if
return
end
local.get $1
i32.const 42
i32.add
local.get $0
i32.le_u
local.tee $3
if (result i32)
local.get $3
else
block $~lib/util/memory/memmove|inlined.0
local.get $0
local.get $1
i32.eq
br_if $~lib/util/memory/memmove|inlined.0
local.get $1
i32.const 42
i32.add
local.get $1
local.get $0
i32.le_u
end
if
local.get $0
local.get $1
call $~lib/internal/memory/memcpy
return
end
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
local.tee $3
if (result i32)
local.get $3
else
local.get $0
i32.const 42
i32.add
local.get $1
i32.le_u
end
if
loop $continue|0
local.get $0
i32.const 7
i32.and
if
local.get $2
i32.eqz
local.get $0
local.get $1
call $~lib/util/memory/memcpy
br $~lib/util/memory/memmove|inlined.0
end
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
return
local.get $2
i32.eqz
br_if $~lib/util/memory/memmove|inlined.0
local.get $2
i32.const 1
i32.sub
local.set $2
local.get $0
local.tee $4
i32.const 1
i32.add
local.set $0
local.get $1
local.tee $3
i32.const 1
i32.add
local.set $1
local.get $4
local.get $3
i32.load8_u
i32.store8
br $continue|0
end
end
loop $continue|1
local.get $2
i32.const 1
i32.sub
local.set $2
i32.const 8
i32.ge_u
if
local.get $0
local.get $1
i64.load
i64.store
local.get $2
i32.const 8
i32.sub
local.set $2
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 $2
if
local.get $0
local.tee $4
i32.const 1
@ -1184,79 +1225,69 @@
local.get $3
i32.load8_u
i32.store8
br $continue|0
end
end
loop $continue|1
local.get $2
i32.const 8
i32.ge_u
if
local.get $0
local.get $1
i64.load
i64.store
local.get $2
i32.const 8
i32.const 1
i32.sub
local.set $2
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
br $continue|2
end
end
end
loop $continue|2
local.get $2
else
local.get $1
i32.const 7
i32.and
local.get $0
i32.const 7
i32.and
i32.eq
if
local.get $0
local.tee $4
i32.const 1
i32.add
local.set $0
local.get $1
local.tee $3
i32.const 1
i32.add
local.set $1
local.get $4
local.get $3
i32.load8_u
i32.store8
local.get $2
i32.const 1
i32.sub
local.set $2
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 $2
i32.add
i32.const 7
i32.and
if
loop $continue|3
local.get $0
local.get $2
i32.eqz
i32.add
i32.const 7
i32.and
if
return
local.get $2
i32.eqz
br_if $~lib/util/memory/memmove|inlined.0
local.get $2
i32.const 1
i32.sub
local.tee $2
local.get $0
i32.add
local.get $1
local.get $2
i32.add
i32.load8_u
i32.store8
br $continue|3
end
end
loop $continue|4
local.get $2
i32.const 8
i32.ge_u
if
local.get $2
i32.const 8
i32.sub
local.tee $2
local.get $0
i32.add
local.get $1
local.get $2
i32.add
i64.load
i64.store
br $continue|4
end
end
end
loop $continue|5
local.get $2
if
local.get $2
i32.const 1
i32.sub
@ -1268,123 +1299,38 @@
i32.add
i32.load8_u
i32.store8
br $continue|3
br $continue|5
end
end
loop $continue|4
local.get $2
i32.const 8
i32.ge_u
if
local.get $2
i32.const 8
i32.sub
local.tee $2
local.get $0
i32.add
local.get $1
local.get $2
i32.add
i64.load
i64.store
br $continue|4
end
end
end
loop $continue|5
local.get $2
if
local.get $2
i32.const 1
i32.sub
local.tee $2
local.get $0
i32.add
local.get $1
local.get $2
i32.add
i32.load8_u
i32.store8
br $continue|5
end
end
end
)
(func $~lib/internal/memory/memcmp (; 5 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $start:std/allocator_arena (; 5 ;) (type $FUNCSIG$v)
(local $0 i32)
(local $1 i32)
(local $2 i32)
(local $3 i32)
i32.const 42
local.set $2
local.get $0
local.get $1
i32.eq
if
i32.const 0
return
end
loop $continue|0
local.get $2
i32.const 0
i32.ne
local.tee $3
if (result i32)
local.get $0
i32.load8_u
local.get $1
i32.load8_u
i32.eq
else
local.get $3
end
if
local.get $2
i32.const 1
i32.sub
local.set $2
local.get $0
i32.const 1
i32.add
local.set $0
local.get $1
i32.const 1
i32.add
local.set $1
br $continue|0
end
end
local.get $2
if (result i32)
local.get $0
i32.load8_u
local.get $1
i32.load8_u
i32.sub
else
i32.const 0
end
)
(func $start:std/allocator_arena (; 6 ;) (type $FUNCSIG$v)
i32.const 56
i32.const 64
global.set $~lib/allocator/arena/startOffset
global.get $~lib/allocator/arena/startOffset
global.set $~lib/allocator/arena/offset
call $~lib/allocator/arena/__memory_allocate
call $~lib/memory/memory.allocate
global.set $std/allocator_arena/ptr1
call $~lib/allocator/arena/__memory_allocate
call $~lib/memory/memory.allocate
global.set $std/allocator_arena/ptr2
global.get $std/allocator_arena/ptr1
global.get $std/allocator_arena/ptr2
i32.eq
if
i32.const 0
i32.const 8
i32.const 16
i32.const 7
i32.const 0
call $~lib/env/abort
unreachable
end
global.get $std/allocator_arena/ptr1
call $~lib/internal/memory/memset
call $~lib/memory/memory.fill
i32.const 0
global.set $std/allocator_arena/i
loop $repeat|0
@ -1400,7 +1346,7 @@
i32.ne
if
i32.const 0
i32.const 8
i32.const 16
i32.const 12
i32.const 27
call $~lib/env/abort
@ -1417,7 +1363,7 @@
end
global.get $std/allocator_arena/ptr2
global.get $std/allocator_arena/ptr1
call $~lib/internal/memory/memmove
call $~lib/memory/memory.copy
i32.const 0
global.set $std/allocator_arena/i
loop $repeat|1
@ -1433,7 +1379,7 @@
i32.ne
if
i32.const 0
i32.const 8
i32.const 16
i32.const 16
i32.const 27
call $~lib/env/abort
@ -1448,12 +1394,61 @@
unreachable
end
end
global.get $std/allocator_arena/ptr1
global.get $std/allocator_arena/ptr2
call $~lib/internal/memory/memcmp
block $~lib/util/memory/memcmp|inlined.0 (result i32)
i32.const 42
local.set $0
i32.const 0
global.get $std/allocator_arena/ptr1
local.tee $1
global.get $std/allocator_arena/ptr2
local.tee $2
i32.eq
br_if $~lib/util/memory/memcmp|inlined.0
drop
loop $continue|2
local.get $0
i32.const 0
i32.ne
local.tee $3
if (result i32)
local.get $1
i32.load8_u
local.get $2
i32.load8_u
i32.eq
else
local.get $3
end
if
local.get $0
i32.const 1
i32.sub
local.set $0
local.get $1
i32.const 1
i32.add
local.set $1
local.get $2
i32.const 1
i32.add
local.set $2
br $continue|2
end
end
local.get $0
if (result i32)
local.get $1
i32.load8_u
local.get $2
i32.load8_u
i32.sub
else
i32.const 0
end
end
if
i32.const 0
i32.const 8
i32.const 16
i32.const 18
i32.const 0
call $~lib/env/abort
@ -1461,24 +1456,24 @@
end
global.get $~lib/allocator/arena/startOffset
global.set $~lib/allocator/arena/offset
call $~lib/allocator/arena/__memory_allocate
call $~lib/memory/memory.allocate
global.set $std/allocator_arena/ptr1
global.get $std/allocator_arena/ptr1
i32.const 56
i32.const 64
i32.ne
if
i32.const 0
i32.const 8
i32.const 16
i32.const 25
i32.const 0
call $~lib/env/abort
unreachable
end
)
(func $start (; 7 ;) (type $FUNCSIG$v)
(func $start (; 6 ;) (type $FUNCSIG$v)
call $start:std/allocator_arena
)
(func $null (; 8 ;) (type $FUNCSIG$v)
(func $null (; 7 ;) (type $FUNCSIG$v)
nop
)
)

File diff suppressed because it is too large Load Diff

View File

@ -386,6 +386,7 @@
call $~lib/runtime/doRegister
)
(func $~lib/runtime/ArrayBufferView#constructor (; 7 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
i32.const 3
i32.const 1073741816
local.get $1
@ -402,6 +403,7 @@
i32.const 3
local.get $1
i32.shl
local.tee $2
call $~lib/arraybuffer/ArrayBuffer#constructor
local.set $1
local.get $0
@ -430,7 +432,7 @@
i32.store offset=4
local.get $0
local.get $1
i32.const 3
local.get $2
i32.add
i32.store offset=8
local.get $0
@ -1336,94 +1338,91 @@
(local $3 i32)
(local $4 i32)
block $~lib/util/memory/memmove|inlined.0
local.get $2
local.set $3
local.get $1
local.get $0
local.tee $2
local.get $1
i32.eq
br_if $~lib/util/memory/memmove|inlined.0
local.get $1
local.get $3
i32.add
local.get $2
i32.add
local.get $0
i32.le_u
local.tee $0
local.tee $3
i32.eqz
if
local.get $0
local.get $2
local.get $3
i32.add
local.get $1
i32.le_u
local.set $0
local.set $3
end
local.get $0
local.get $3
if
local.get $2
local.get $0
local.get $1
local.get $3
local.get $2
call $~lib/util/memory/memcpy
br $~lib/util/memory/memmove|inlined.0
end
local.get $2
local.get $0
local.get $1
i32.lt_u
if
local.get $1
i32.const 7
i32.and
local.get $2
local.get $0
i32.const 7
i32.and
i32.eq
if
loop $continue|0
local.get $2
local.get $0
i32.const 7
i32.and
if
local.get $3
local.get $2
i32.eqz
br_if $~lib/util/memory/memmove|inlined.0
local.get $3
local.get $2
i32.const 1
i32.sub
local.set $3
local.get $2
local.set $2
local.get $0
local.tee $4
i32.const 1
i32.add
local.set $2
local.set $0
local.get $1
local.tee $0
local.tee $3
i32.const 1
i32.add
local.set $1
local.get $4
local.get $0
local.get $3
i32.load8_u
i32.store8
br $continue|0
end
end
loop $continue|1
local.get $3
local.get $2
i32.const 8
i32.ge_u
if
local.get $2
local.get $0
local.get $1
i64.load
i64.store
local.get $3
i32.const 8
i32.sub
local.set $3
local.get $2
i32.const 8
i32.add
i32.sub
local.set $2
local.get $0
i32.const 8
i32.add
local.set $0
local.get $1
i32.const 8
i32.add
@ -1433,26 +1432,26 @@
end
end
loop $continue|2
local.get $3
local.get $2
if
local.get $2
local.get $0
local.tee $4
i32.const 1
i32.add
local.set $2
local.set $0
local.get $1
local.tee $0
local.tee $3
i32.const 1
i32.add
local.set $1
local.get $4
local.get $0
local.get $3
i32.load8_u
i32.store8
local.get $3
local.get $2
i32.const 1
i32.sub
local.set $3
local.set $2
br $continue|2
end
end
@ -1460,29 +1459,29 @@
local.get $1
i32.const 7
i32.and
local.get $2
local.get $0
i32.const 7
i32.and
i32.eq
if
loop $continue|3
local.get $0
local.get $2
local.get $3
i32.add
i32.const 7
i32.and
if
local.get $3
local.get $2
i32.eqz
br_if $~lib/util/memory/memmove|inlined.0
local.get $3
local.get $2
i32.const 1
i32.sub
local.tee $3
local.get $2
local.tee $2
local.get $0
i32.add
local.get $1
local.get $3
local.get $2
i32.add
i32.load8_u
i32.store8
@ -1490,18 +1489,18 @@
end
end
loop $continue|4
local.get $3
local.get $2
i32.const 8
i32.ge_u
if
local.get $3
local.get $2
i32.const 8
i32.sub
local.tee $3
local.get $2
local.tee $2
local.get $0
i32.add
local.get $1
local.get $3
local.get $2
i32.add
i64.load
i64.store
@ -1510,16 +1509,16 @@
end
end
loop $continue|5
local.get $3
local.get $2
if
local.get $3
local.get $2
i32.const 1
i32.sub
local.tee $3
local.get $2
local.tee $2
local.get $0
i32.add
local.get $1
local.get $3
local.get $2
i32.add
i32.load8_u
i32.store8

View File

@ -48,7 +48,7 @@
local.get $0
i32.load offset=12
)
(func $~lib/runtime/adjustToBlock (; 3 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/runtime/ADJUSTOBLOCK (; 3 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
i32.const 1
i32.const 32
local.get $0
@ -148,7 +148,7 @@
(func $~lib/runtime/doAllocate (; 5 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
local.get $0
call $~lib/runtime/adjustToBlock
call $~lib/runtime/ADJUSTOBLOCK
call $~lib/memory/memory.allocate
local.set $1
local.get $1
@ -164,261 +164,252 @@
(func $~lib/memory/memory.fill (; 6 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
(local $6 i32)
(local $7 i32)
(local $8 i64)
(local $5 i64)
block $~lib/util/memory/memset|inlined.0
local.get $0
local.set $3
local.get $1
local.set $4
local.get $2
local.set $5
local.get $5
i32.eqz
if
br $~lib/util/memory/memset|inlined.0
end
local.get $3
local.get $4
local.get $0
local.get $1
i32.store8
local.get $3
local.get $5
local.get $0
local.get $2
i32.add
i32.const 1
i32.sub
local.get $4
local.get $1
i32.store8
local.get $5
local.get $2
i32.const 2
i32.le_u
if
br $~lib/util/memory/memset|inlined.0
end
local.get $3
local.get $0
i32.const 1
i32.add
local.get $4
local.get $1
i32.store8
local.get $3
local.get $0
i32.const 2
i32.add
local.get $4
local.get $1
i32.store8
local.get $3
local.get $5
local.get $0
local.get $2
i32.add
i32.const 2
i32.sub
local.get $4
local.get $1
i32.store8
local.get $3
local.get $5
local.get $0
local.get $2
i32.add
i32.const 3
i32.sub
local.get $4
local.get $1
i32.store8
local.get $5
local.get $2
i32.const 6
i32.le_u
if
br $~lib/util/memory/memset|inlined.0
end
local.get $3
local.get $0
i32.const 3
i32.add
local.get $4
local.get $1
i32.store8
local.get $3
local.get $5
local.get $0
local.get $2
i32.add
i32.const 4
i32.sub
local.get $4
local.get $1
i32.store8
local.get $5
local.get $2
i32.const 8
i32.le_u
if
br $~lib/util/memory/memset|inlined.0
end
i32.const 0
local.get $3
local.get $0
i32.sub
i32.const 3
i32.and
local.set $6
local.get $3
local.get $6
i32.add
local.set $3
local.get $5
local.get $6
local.get $0
local.get $3
i32.add
local.set $0
local.get $2
local.get $3
i32.sub
local.set $5
local.get $5
local.set $2
local.get $2
i32.const -4
i32.and
local.set $5
local.set $2
i32.const -1
i32.const 255
i32.div_u
local.get $4
local.get $1
i32.const 255
i32.and
i32.mul
local.set $7
local.get $3
local.get $7
local.set $4
local.get $0
local.get $4
i32.store
local.get $3
local.get $5
local.get $0
local.get $2
i32.add
i32.const 4
i32.sub
local.get $7
local.get $4
i32.store
local.get $5
local.get $2
i32.const 8
i32.le_u
if
br $~lib/util/memory/memset|inlined.0
end
local.get $3
local.get $0
i32.const 4
i32.add
local.get $7
local.get $4
i32.store
local.get $3
local.get $0
i32.const 8
i32.add
local.get $7
local.get $4
i32.store
local.get $3
local.get $5
local.get $0
local.get $2
i32.add
i32.const 12
i32.sub
local.get $7
local.get $4
i32.store
local.get $3
local.get $5
local.get $0
local.get $2
i32.add
i32.const 8
i32.sub
local.get $7
local.get $4
i32.store
local.get $5
local.get $2
i32.const 24
i32.le_u
if
br $~lib/util/memory/memset|inlined.0
end
local.get $3
local.get $0
i32.const 12
i32.add
local.get $7
local.get $4
i32.store
local.get $3
local.get $0
i32.const 16
i32.add
local.get $7
local.get $4
i32.store
local.get $3
local.get $0
i32.const 20
i32.add
local.get $7
local.get $4
i32.store
local.get $3
local.get $0
i32.const 24
i32.add
local.get $7
local.get $4
i32.store
local.get $3
local.get $5
local.get $0
local.get $2
i32.add
i32.const 28
i32.sub
local.get $7
local.get $4
i32.store
local.get $3
local.get $5
local.get $0
local.get $2
i32.add
i32.const 24
i32.sub
local.get $7
local.get $4
i32.store
local.get $3
local.get $5
local.get $0
local.get $2
i32.add
i32.const 20
i32.sub
local.get $7
local.get $4
i32.store
local.get $3
local.get $5
local.get $0
local.get $2
i32.add
i32.const 16
i32.sub
local.get $7
local.get $4
i32.store
i32.const 24
local.get $3
local.get $0
i32.const 4
i32.and
i32.add
local.set $6
local.get $3
local.get $6
i32.add
local.set $3
local.get $5
local.get $6
local.get $0
local.get $3
i32.add
local.set $0
local.get $2
local.get $3
i32.sub
local.set $5
local.get $7
local.set $2
local.get $4
i64.extend_i32_u
local.get $7
local.get $4
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
local.set $8
local.set $5
block $break|0
loop $continue|0
local.get $5
local.get $2
i32.const 32
i32.ge_u
if
block
local.get $3
local.get $8
local.get $0
local.get $5
i64.store
local.get $3
local.get $0
i32.const 8
i32.add
local.get $8
local.get $5
i64.store
local.get $3
local.get $0
i32.const 16
i32.add
local.get $8
local.get $5
i64.store
local.get $3
local.get $0
i32.const 24
i32.add
local.get $8
i64.store
local.get $5
i64.store
local.get $2
i32.const 32
i32.sub
local.set $5
local.get $3
local.set $2
local.get $0
i32.const 32
i32.add
local.set $3
local.set $0
end
br $continue|0
end
@ -522,6 +513,7 @@
local.get $1
local.get $2
i32.shl
local.tee $1
call $~lib/arraybuffer/ArrayBuffer#constructor
local.set $3
block (result i32)
@ -1795,87 +1787,78 @@
)
(func $~lib/memory/memory.copy (; 15 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
(local $6 i32)
block $~lib/util/memory/memmove|inlined.0
local.get $0
local.set $3
local.get $1
local.set $4
local.get $2
local.set $5
local.get $3
local.get $4
i32.eq
if
br $~lib/util/memory/memmove|inlined.0
end
local.get $4
local.get $5
local.get $1
local.get $2
i32.add
local.get $3
local.get $0
i32.le_u
local.tee $6
local.tee $3
if (result i32)
local.get $6
else
local.get $3
local.get $5
else
local.get $0
local.get $2
i32.add
local.get $4
local.get $1
i32.le_u
end
if
local.get $3
local.get $4
local.get $5
local.get $0
local.get $1
local.get $2
call $~lib/util/memory/memcpy
br $~lib/util/memory/memmove|inlined.0
end
local.get $3
local.get $4
local.get $0
local.get $1
i32.lt_u
if
local.get $4
local.get $1
i32.const 7
i32.and
local.get $3
local.get $0
i32.const 7
i32.and
i32.eq
if
block $break|0
loop $continue|0
local.get $3
local.get $0
i32.const 7
i32.and
if
block
local.get $5
local.get $2
i32.eqz
if
br $~lib/util/memory/memmove|inlined.0
end
local.get $5
local.get $2
i32.const 1
i32.sub
local.set $5
local.set $2
block (result i32)
local.get $3
local.tee $6
local.get $0
local.tee $3
i32.const 1
i32.add
local.set $3
local.get $6
local.set $0
local.get $3
end
block (result i32)
local.get $4
local.tee $6
local.get $1
local.tee $3
i32.const 1
i32.add
local.set $4
local.get $6
local.set $1
local.get $3
end
i32.load8_u
i32.store8
@ -1886,27 +1869,27 @@
end
block $break|1
loop $continue|1
local.get $5
local.get $2
i32.const 8
i32.ge_u
if
block
local.get $3
local.get $4
local.get $0
local.get $1
i64.load
i64.store
local.get $5
local.get $2
i32.const 8
i32.sub
local.set $5
local.get $3
local.set $2
local.get $0
i32.const 8
i32.add
local.set $3
local.get $4
local.set $0
local.get $1
i32.const 8
i32.add
local.set $4
local.set $1
end
br $continue|1
end
@ -1915,67 +1898,67 @@
end
block $break|2
loop $continue|2
local.get $5
local.get $2
if
block
block (result i32)
local.get $3
local.tee $6
local.get $0
local.tee $3
i32.const 1
i32.add
local.set $3
local.get $6
local.set $0
local.get $3
end
block (result i32)
local.get $4
local.tee $6
local.get $1
local.tee $3
i32.const 1
i32.add
local.set $4
local.get $6
local.set $1
local.get $3
end
i32.load8_u
i32.store8
local.get $5
local.get $2
i32.const 1
i32.sub
local.set $5
local.set $2
end
br $continue|2
end
end
end
else
local.get $4
local.get $1
i32.const 7
i32.and
local.get $3
local.get $0
i32.const 7
i32.and
i32.eq
if
block $break|3
loop $continue|3
local.get $3
local.get $5
local.get $0
local.get $2
i32.add
i32.const 7
i32.and
if
block
local.get $5
local.get $2
i32.eqz
if
br $~lib/util/memory/memmove|inlined.0
end
local.get $3
local.get $5
local.get $0
local.get $2
i32.const 1
i32.sub
local.tee $5
local.tee $2
i32.add
local.get $4
local.get $5
local.get $1
local.get $2
i32.add
i32.load8_u
i32.store8
@ -1986,20 +1969,20 @@
end
block $break|4
loop $continue|4
local.get $5
local.get $2
i32.const 8
i32.ge_u
if
block
local.get $5
local.get $2
i32.const 8
i32.sub
local.set $5
local.get $3
local.get $5
local.set $2
local.get $0
local.get $2
i32.add
local.get $4
local.get $5
local.get $1
local.get $2
i32.add
i64.load
i64.store
@ -2011,16 +1994,16 @@
end
block $break|5
loop $continue|5
local.get $5
local.get $2
if
local.get $3
local.get $5
local.get $0
local.get $2
i32.const 1
i32.sub
local.tee $5
local.tee $2
i32.add
local.get $4
local.get $5
local.get $1
local.get $2
i32.add
i32.load8_u
i32.store8
@ -2054,10 +2037,10 @@
i32.lt_u
if
local.get $1
call $~lib/runtime/adjustToBlock
call $~lib/runtime/ADJUSTOBLOCK
local.set $4
local.get $3
call $~lib/runtime/adjustToBlock
call $~lib/runtime/ADJUSTOBLOCK
i32.const 0
local.get $0
global.get $~lib/memory/HEAP_BASE

View File

@ -1,35 +1,50 @@
(module
(type $FUNCSIG$v (func))
(type $FUNCSIG$diiiiiid (func (param i32 i32 i32 i32 i32 i32 f64) (result f64)))
(type $FUNCSIG$viiii (func (param i32 i32 i32 i32)))
(type $FUNCSIG$d (func (result f64)))
(type $FUNCSIG$i (func (result i32)))
(type $FUNCSIG$ii (func (param i32) (result i32)))
(type $FUNCSIG$vi (func (param i32)))
(type $FUNCSIG$v (func))
(type $FUNCSIG$ij (func (param i64) (result i32)))
(import "Date" "UTC" (func $~lib/bindings/Date/UTC (param i32 i32 i32 i32 i32 i32 f64) (result f64)))
(import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32)))
(import "Date" "now" (func $~lib/bindings/Date/now (result f64)))
(memory $0 1)
(data (i32.const 8) "\0b\00\00\00s\00t\00d\00/\00d\00a\00t\00e\00.\00t\00s")
(data (i32.const 8) "\01\00\00\00\16\00\00\00s\00t\00d\00/\00d\00a\00t\00e\00.\00t\00s")
(data (i32.const 40) "\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00u\00n\00t\00i\00m\00e\00.\00t\00s")
(table $0 1 funcref)
(elem (i32.const 0) $null)
(global $std/date/creationTime (mut i64) (i64.const 0))
(global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0))
(global $~lib/allocator/arena/offset (mut i32) (i32.const 0))
(global $std/date/creationTime (mut i64) (i64.const 0))
(global $std/date/date (mut i32) (i32.const 0))
(export "memory" (memory $0))
(export "table" (table $0))
(start $start)
(func $~lib/allocator/arena/__memory_allocate (; 3 ;) (type $FUNCSIG$i) (result i32)
(local $0 i32)
(func $~lib/memory/memory.allocate (; 3 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
(local $2 i32)
(local $3 i32)
local.get $0
i32.const 1073741824
i32.gt_u
if
unreachable
end
global.get $~lib/allocator/arena/offset
local.tee $0
i32.const 15
local.tee $1
local.get $0
i32.const 1
local.get $0
i32.const 1
i32.gt_u
select
i32.add
i32.const 7
i32.add
i32.const -8
i32.and
local.tee $1
local.tee $0
current_memory
local.tee $2
i32.const 16
@ -37,8 +52,8 @@
i32.gt_u
if
local.get $2
local.get $1
local.get $0
local.get $1
i32.sub
i32.const 65535
i32.add
@ -64,17 +79,66 @@
end
end
end
local.get $1
global.set $~lib/allocator/arena/offset
local.get $0
)
(func $start:std/date (; 4 ;) (type $FUNCSIG$v)
(local $0 i32)
(local $1 i64)
i32.const 40
global.set $~lib/allocator/arena/startOffset
global.get $~lib/allocator/arena/startOffset
global.set $~lib/allocator/arena/offset
local.get $1
)
(func $~lib/runtime/assertUnregistered (; 4 ;) (type $FUNCSIG$vi) (param $0 i32)
local.get $0
i32.const 80
i32.le_u
if
i32.const 0
i32.const 48
i32.const 188
i32.const 2
call $~lib/env/abort
unreachable
end
local.get $0
i32.const 8
i32.sub
i32.load
i32.const -1520547049
i32.ne
if
i32.const 0
i32.const 48
i32.const 189
i32.const 2
call $~lib/env/abort
unreachable
end
)
(func $~lib/date/Date#constructor (; 5 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32)
(local $1 i32)
i32.const 16
call $~lib/memory/memory.allocate
local.tee $1
i32.const -1520547049
i32.store
local.get $1
i32.const 8
i32.store offset=4
local.get $1
i32.const 8
i32.add
local.tee $1
call $~lib/runtime/assertUnregistered
local.get $1
i32.const 8
i32.sub
i32.const 2
i32.store
local.get $1
i64.const 0
i64.store
local.get $1
local.get $0
i64.store
local.get $1
)
(func $start:std/date (; 6 ;) (type $FUNCSIG$v)
i32.const 1970
i32.const 0
i32.const 1
@ -88,7 +152,7 @@
i64.ne
if
i32.const 0
i32.const 8
i32.const 16
i32.const 3
i32.const 0
call $~lib/env/abort
@ -107,7 +171,7 @@
i64.ne
if
i32.const 0
i32.const 8
i32.const 16
i32.const 4
i32.const 0
call $~lib/env/abort
@ -128,7 +192,7 @@
i64.ne
if
i32.const 0
i32.const 8
i32.const 16
i32.const 7
i32.const 0
call $~lib/env/abort
@ -140,22 +204,18 @@
i64.le_s
if
i32.const 0
i32.const 8
i32.const 16
i32.const 9
i32.const 0
call $~lib/env/abort
unreachable
end
i32.const 80
global.set $~lib/allocator/arena/startOffset
global.get $~lib/allocator/arena/startOffset
global.set $~lib/allocator/arena/offset
global.get $std/date/creationTime
local.set $1
call $~lib/allocator/arena/__memory_allocate
local.tee $0
i64.const 0
i64.store
local.get $0
local.get $1
i64.store
local.get $0
call $~lib/date/Date#constructor
global.set $std/date/date
global.get $std/date/creationTime
global.get $std/date/date
@ -163,36 +223,36 @@
i64.ne
if
i32.const 0
i32.const 8
i32.const 16
i32.const 12
i32.const 0
call $~lib/env/abort
unreachable
end
global.get $std/date/date
local.tee $0
global.get $std/date/creationTime
i64.const 1
i64.add
local.tee $1
i64.store
local.get $0
global.get $std/date/date
i64.load
local.get $1
global.get $std/date/creationTime
i64.const 1
i64.add
i64.ne
if
i32.const 0
i32.const 8
i32.const 16
i32.const 14
i32.const 0
call $~lib/env/abort
unreachable
end
)
(func $start (; 5 ;) (type $FUNCSIG$v)
(func $start (; 7 ;) (type $FUNCSIG$v)
call $start:std/date
)
(func $null (; 6 ;) (type $FUNCSIG$v)
(func $null (; 8 ;) (type $FUNCSIG$v)
nop
)
)

View File

@ -1,130 +1,204 @@
(module
(type $FUNCSIG$v (func))
(type $FUNCSIG$diiiiiid (func (param i32 i32 i32 i32 i32 i32 f64) (result f64)))
(type $FUNCSIG$viiii (func (param i32 i32 i32 i32)))
(type $FUNCSIG$d (func (result f64)))
(type $FUNCSIG$iij (func (param i32 i64) (result i32)))
(type $FUNCSIG$ii (func (param i32) (result i32)))
(type $FUNCSIG$iii (func (param i32 i32) (result i32)))
(type $FUNCSIG$vi (func (param i32)))
(type $FUNCSIG$ji (func (param i32) (result i64)))
(type $FUNCSIG$jij (func (param i32 i64) (result i64)))
(type $FUNCSIG$v (func))
(import "Date" "UTC" (func $~lib/bindings/Date/UTC (param i32 i32 i32 i32 i32 i32 f64) (result f64)))
(import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32)))
(import "Date" "now" (func $~lib/bindings/Date/now (result f64)))
(memory $0 1)
(data (i32.const 8) "\0b\00\00\00s\00t\00d\00/\00d\00a\00t\00e\00.\00t\00s\00")
(data (i32.const 8) "\01\00\00\00\16\00\00\00s\00t\00d\00/\00d\00a\00t\00e\00.\00t\00s\00")
(data (i32.const 40) "\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00u\00n\00t\00i\00m\00e\00.\00t\00s\00")
(table $0 1 funcref)
(elem (i32.const 0) $null)
(global $std/date/creationTime (mut i64) (i64.const 0))
(global $~lib/runtime/GC_IMPLEMENTED i32 (i32.const 0))
(global $~lib/runtime/HEADER_SIZE i32 (i32.const 8))
(global $~lib/runtime/HEADER_MAGIC i32 (i32.const -1520547049))
(global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0))
(global $~lib/allocator/arena/offset (mut i32) (i32.const 0))
(global $std/date/creationTime (mut i64) (i64.const 0))
(global $~lib/ASC_NO_ASSERT i32 (i32.const 0))
(global $std/date/date (mut i32) (i32.const 0))
(global $~lib/memory/HEAP_BASE i32 (i32.const 36))
(global $~lib/memory/HEAP_BASE i32 (i32.const 80))
(export "memory" (memory $0))
(export "table" (table $0))
(start $start)
(func $start:~lib/allocator/arena (; 3 ;) (type $FUNCSIG$v)
global.get $~lib/memory/HEAP_BASE
i32.const 7
(func $~lib/runtime/ADJUSTOBLOCK (; 3 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
i32.const 1
i32.const 32
local.get $0
global.get $~lib/runtime/HEADER_SIZE
i32.add
i32.const 7
i32.const -1
i32.xor
i32.and
global.set $~lib/allocator/arena/startOffset
global.get $~lib/allocator/arena/startOffset
global.set $~lib/allocator/arena/offset
i32.const 1
i32.sub
i32.clz
i32.sub
i32.shl
)
(func $~lib/allocator/arena/__memory_allocate (; 4 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/memory/memory.allocate (; 4 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
(local $6 i32)
local.get $0
i32.const 1073741824
i32.gt_u
if
unreachable
end
global.get $~lib/allocator/arena/offset
local.set $1
local.get $1
local.get $0
local.tee $2
i32.const 1
local.tee $3
local.get $2
local.get $3
i32.gt_u
select
i32.add
i32.const 7
i32.add
i32.const 7
i32.const -1
i32.xor
i32.and
local.set $4
current_memory
local.set $5
local.get $4
local.get $5
i32.const 16
i32.shl
i32.gt_u
if
local.get $4
(local $7 i32)
block $~lib/allocator/arena/__memory_allocate|inlined.0 (result i32)
local.get $0
local.set $1
local.get $1
i32.sub
i32.const 65535
i32.const 1073741824
i32.gt_u
if
unreachable
end
global.get $~lib/allocator/arena/offset
local.set $2
local.get $2
local.get $1
local.tee $3
i32.const 1
local.tee $4
local.get $3
local.get $4
i32.gt_u
select
i32.add
i32.const 65535
i32.const 7
i32.add
i32.const 7
i32.const -1
i32.xor
i32.and
i32.const 16
i32.shr_u
local.set $2
local.get $5
local.tee $3
local.get $2
local.tee $6
local.get $3
local.get $6
i32.gt_s
select
local.set $3
current_memory
local.set $4
local.get $3
grow_memory
i32.const 0
i32.lt_s
local.get $4
i32.const 16
i32.shl
i32.gt_u
if
local.get $3
local.get $2
i32.sub
i32.const 65535
i32.add
i32.const 65535
i32.const -1
i32.xor
i32.and
i32.const 16
i32.shr_u
local.set $5
local.get $4
local.tee $6
local.get $5
local.tee $7
local.get $6
local.get $7
i32.gt_s
select
local.set $6
local.get $6
grow_memory
i32.const 0
i32.lt_s
if
unreachable
local.get $5
grow_memory
i32.const 0
i32.lt_s
if
unreachable
end
end
end
local.get $3
global.set $~lib/allocator/arena/offset
local.get $2
end
local.get $4
global.set $~lib/allocator/arena/offset
local.get $1
)
(func $~lib/memory/memory.allocate (; 5 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
call $~lib/allocator/arena/__memory_allocate
return
)
(func $~lib/date/Date#constructor (; 6 ;) (type $FUNCSIG$iij) (param $0 i32) (param $1 i64) (result i32)
(func $~lib/runtime/doAllocate (; 5 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
local.get $0
call $~lib/runtime/ADJUSTOBLOCK
call $~lib/memory/memory.allocate
local.set $1
local.get $1
global.get $~lib/runtime/HEADER_MAGIC
i32.store
local.get $1
local.get $0
i32.store offset=4
local.get $1
global.get $~lib/runtime/HEADER_SIZE
i32.add
)
(func $~lib/runtime/ALLOCATE (; 6 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
call $~lib/runtime/doAllocate
)
(func $~lib/runtime/assertUnregistered (; 7 ;) (type $FUNCSIG$vi) (param $0 i32)
local.get $0
global.get $~lib/memory/HEAP_BASE
i32.gt_u
i32.eqz
if
i32.const 0
i32.const 48
i32.const 188
i32.const 2
call $~lib/env/abort
unreachable
end
local.get $0
global.get $~lib/runtime/HEADER_SIZE
i32.sub
i32.load
global.get $~lib/runtime/HEADER_MAGIC
i32.eq
i32.eqz
if
i32.const 0
i32.const 48
i32.const 189
i32.const 2
call $~lib/env/abort
unreachable
end
)
(func $~lib/runtime/doRegister (; 8 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
local.get $0
call $~lib/runtime/assertUnregistered
local.get $0
global.get $~lib/runtime/HEADER_SIZE
i32.sub
local.get $1
i32.store
local.get $0
)
(func $~lib/date/Date#constructor (; 9 ;) (type $FUNCSIG$iij) (param $0 i32) (param $1 i64) (result i32)
(local $2 i32)
block (result i32)
local.get $0
i32.eqz
if
i32.const 8
call $~lib/memory/memory.allocate
block $~lib/runtime/REGISTER<Date>|inlined.0 (result i32)
i32.const 8
call $~lib/runtime/ALLOCATE
local.set $2
local.get $2
i32.const 2
call $~lib/runtime/doRegister
end
local.set $0
end
local.get $0
@ -136,17 +210,17 @@
i64.store
local.get $0
)
(func $~lib/date/Date#getTime (; 7 ;) (type $FUNCSIG$ji) (param $0 i32) (result i64)
(func $~lib/date/Date#getTime (; 10 ;) (type $FUNCSIG$ji) (param $0 i32) (result i64)
local.get $0
i64.load
)
(func $~lib/date/Date#setTime (; 8 ;) (type $FUNCSIG$jij) (param $0 i32) (param $1 i64) (result i64)
(func $~lib/date/Date#setTime (; 11 ;) (type $FUNCSIG$jij) (param $0 i32) (param $1 i64) (result i64)
local.get $0
local.get $1
i64.store
local.get $1
)
(func $start:std/date (; 9 ;) (type $FUNCSIG$v)
(func $start:std/date (; 12 ;) (type $FUNCSIG$v)
(local $0 i32)
(local $1 i32)
(local $2 i32)
@ -154,7 +228,6 @@
(local $4 i32)
(local $5 i32)
(local $6 i64)
call $start:~lib/allocator/arena
block $~lib/date/Date.UTC|inlined.0 (result i64)
i32.const 1970
local.set $0
@ -186,7 +259,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 3
i32.const 0
call $~lib/env/abort
@ -223,7 +296,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 4
i32.const 0
call $~lib/env/abort
@ -262,7 +335,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 7
i32.const 0
call $~lib/env/abort
@ -277,12 +350,22 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 9
i32.const 0
call $~lib/env/abort
unreachable
end
global.get $~lib/memory/HEAP_BASE
i32.const 7
i32.add
i32.const 7
i32.const -1
i32.xor
i32.and
global.set $~lib/allocator/arena/startOffset
global.get $~lib/allocator/arena/startOffset
global.set $~lib/allocator/arena/offset
i32.const 0
global.get $std/date/creationTime
call $~lib/date/Date#constructor
@ -294,7 +377,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 12
i32.const 0
call $~lib/env/abort
@ -315,16 +398,16 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 14
i32.const 0
call $~lib/env/abort
unreachable
end
)
(func $start (; 10 ;) (type $FUNCSIG$v)
(func $start (; 13 ;) (type $FUNCSIG$v)
call $start:std/date
)
(func $null (; 11 ;) (type $FUNCSIG$v)
(func $null (; 14 ;) (type $FUNCSIG$v)
)
)

View File

@ -3,50 +3,60 @@
(type $FUNCSIG$ij (func (param i64) (result i32)))
(type $FUNCSIG$v (func))
(memory $0 1)
(data (i32.const 16) "\01\00\00\00a")
(data (i32.const 24) "\02\00\00\00a\00b")
(data (i32.const 32) "\03\00\00\00a\00b\00c")
(data (i32.const 8) "\01")
(data (i32.const 16) "\01\00\00\00\02\00\00\00a")
(data (i32.const 32) "\01\00\00\00\04\00\00\00a\00b")
(data (i32.const 48) "\01\00\00\00\06\00\00\00a\00b\00c")
(table $0 1 funcref)
(elem (i32.const 0) $null)
(export "memory" (memory $0))
(export "table" (table $0))
(start $start)
(func $~lib/internal/hash/hashStr (; 0 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/util/hash/hashStr (; 0 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
(local $2 i32)
(local $3 i32)
i32.const -2128831035
local.set $2
local.set $1
local.get $0
i32.load
i32.const 1
i32.shl
local.set $3
loop $repeat|0
if
block $break|0
local.get $1
local.get $3
i32.ge_u
br_if $break|0
local.get $0
local.get $1
i32.add
i32.load8_u offset=4
local.get $2
i32.xor
i32.const 16777619
i32.mul
local.set $2
local.get $1
i32.const 8
i32.sub
i32.load offset=4
i32.const 1
i32.add
local.set $1
br $repeat|0
i32.shr_u
i32.const 1
i32.shl
local.set $3
loop $repeat|0
local.get $2
local.get $3
i32.ge_u
br_if $break|0
local.get $0
local.get $2
i32.add
i32.load8_u
local.get $1
i32.xor
i32.const 16777619
i32.mul
local.set $1
local.get $2
i32.const 1
i32.add
local.set $2
br $repeat|0
unreachable
end
unreachable
end
end
local.get $2
local.get $1
)
(func $~lib/internal/hash/hash32 (; 1 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/util/hash/hash32 (; 1 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.const 255
i32.and
@ -77,7 +87,7 @@
i32.const 16777619
i32.mul
)
(func $~lib/internal/hash/hash64 (; 2 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32)
(func $~lib/util/hash/hash64 (; 2 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32)
(local $1 i32)
local.get $0
i32.wrap_i64
@ -145,55 +155,55 @@
)
(func $start:std/hash (; 3 ;) (type $FUNCSIG$v)
i32.const 0
call $~lib/internal/hash/hashStr
drop
i32.const 8
call $~lib/internal/hash/hashStr
call $~lib/util/hash/hashStr
drop
i32.const 16
call $~lib/internal/hash/hashStr
call $~lib/util/hash/hashStr
drop
i32.const 24
call $~lib/internal/hash/hashStr
call $~lib/util/hash/hashStr
drop
i32.const 32
call $~lib/internal/hash/hashStr
i32.const 40
call $~lib/util/hash/hashStr
drop
i32.const 56
call $~lib/util/hash/hashStr
drop
i32.const 0
call $~lib/internal/hash/hash32
call $~lib/util/hash/hash32
drop
i32.const 1065353216
call $~lib/internal/hash/hash32
call $~lib/util/hash/hash32
drop
i32.const 1066192077
call $~lib/internal/hash/hash32
call $~lib/util/hash/hash32
drop
i32.const 0
call $~lib/internal/hash/hash32
call $~lib/util/hash/hash32
drop
i32.const 2139095040
call $~lib/internal/hash/hash32
call $~lib/util/hash/hash32
drop
i32.const 2143289344
call $~lib/internal/hash/hash32
call $~lib/util/hash/hash32
drop
i64.const 0
call $~lib/internal/hash/hash64
call $~lib/util/hash/hash64
drop
i64.const 4607182418800017408
call $~lib/internal/hash/hash64
call $~lib/util/hash/hash64
drop
i64.const 4607632778762754458
call $~lib/internal/hash/hash64
call $~lib/util/hash/hash64
drop
i64.const 0
call $~lib/internal/hash/hash64
call $~lib/util/hash/hash64
drop
i64.const 9218868437227405312
call $~lib/internal/hash/hash64
call $~lib/util/hash/hash64
drop
i64.const 9221120237041090560
call $~lib/internal/hash/hash64
call $~lib/util/hash/hash64
drop
)
(func $start (; 4 ;) (type $FUNCSIG$v)

View File

@ -3,62 +3,78 @@
(type $FUNCSIG$ij (func (param i64) (result i32)))
(type $FUNCSIG$v (func))
(memory $0 1)
(data (i32.const 8) "\00\00\00\00")
(data (i32.const 16) "\01\00\00\00a\00")
(data (i32.const 24) "\02\00\00\00a\00b\00")
(data (i32.const 32) "\03\00\00\00a\00b\00c\00")
(data (i32.const 8) "\01\00\00\00\00\00\00\00")
(data (i32.const 16) "\01\00\00\00\02\00\00\00a\00")
(data (i32.const 32) "\01\00\00\00\04\00\00\00a\00b\00")
(data (i32.const 48) "\01\00\00\00\06\00\00\00a\00b\00c\00")
(table $0 1 funcref)
(elem (i32.const 0) $null)
(global $~lib/memory/HEAP_BASE i32 (i32.const 44))
(global $~lib/runtime/GC_IMPLEMENTED i32 (i32.const 0))
(global $~lib/runtime/HEADER_SIZE i32 (i32.const 8))
(global $~lib/runtime/HEADER_MAGIC i32 (i32.const -1520547049))
(global $~lib/memory/HEAP_BASE i32 (i32.const 64))
(export "memory" (memory $0))
(export "table" (table $0))
(start $start)
(func $~lib/internal/hash/hashStr (; 0 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/string/String#get:length (; 0 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
global.get $~lib/runtime/HEADER_SIZE
i32.sub
i32.load offset=4
i32.const 1
i32.shr_u
)
(func $~lib/util/hash/hashStr (; 1 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
(local $2 i32)
(local $3 i32)
i32.const -2128831035
local.set $1
block $break|0
block
i32.const 0
local.set $2
local.get $0
i32.load
i32.const 1
i32.shl
local.set $3
end
loop $repeat|0
local.get $2
local.get $3
i32.lt_u
i32.eqz
br_if $break|0
local.get $1
local.get $0
local.get $2
i32.add
i32.load8_u offset=4
i32.xor
i32.const 16777619
i32.mul
local.set $1
local.get $2
i32.const 1
i32.add
local.set $2
br $repeat|0
local.get $0
i32.const 0
i32.ne
if
block $break|0
block
i32.const 0
local.set $2
local.get $0
call $~lib/string/String#get:length
i32.const 1
i32.shl
local.set $3
end
loop $repeat|0
local.get $2
local.get $3
i32.lt_u
i32.eqz
br_if $break|0
local.get $1
local.get $0
local.get $2
i32.add
i32.load8_u
i32.xor
i32.const 16777619
i32.mul
local.set $1
local.get $2
i32.const 1
i32.add
local.set $2
br $repeat|0
unreachable
end
unreachable
end
unreachable
end
local.get $1
)
(func $std/hash/check (; 1 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $std/hash/check (; 2 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
i32.const 1
)
(func $~lib/internal/hash/hash32 (; 2 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/util/hash/hash32 (; 3 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
i32.const -2128831035
local.set $1
@ -100,7 +116,7 @@
local.set $1
local.get $1
)
(func $~lib/internal/hash/hash64 (; 3 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32)
(func $~lib/util/hash/hash64 (; 4 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32)
(local $1 i32)
(local $2 i32)
(local $3 i32)
@ -188,179 +204,179 @@
local.set $3
local.get $3
)
(func $start:std/hash (; 4 ;) (type $FUNCSIG$v)
(func $start:std/hash (; 5 ;) (type $FUNCSIG$v)
(local $0 i32)
(local $1 f32)
(local $2 f64)
block $~lib/internal/hash/HASH<String>|inlined.0 (result i32)
block $~lib/util/hash/HASH<String>|inlined.0 (result i32)
i32.const 0
local.set $0
local.get $0
call $~lib/internal/hash/hashStr
br $~lib/internal/hash/HASH<String>|inlined.0
call $~lib/util/hash/hashStr
br $~lib/util/hash/HASH<String>|inlined.0
end
call $std/hash/check
drop
block $~lib/internal/hash/HASH<String>|inlined.1 (result i32)
i32.const 8
local.set $0
local.get $0
call $~lib/internal/hash/hashStr
br $~lib/internal/hash/HASH<String>|inlined.1
end
call $std/hash/check
drop
block $~lib/internal/hash/HASH<String>|inlined.2 (result i32)
block $~lib/util/hash/HASH<String>|inlined.1 (result i32)
i32.const 16
local.set $0
local.get $0
call $~lib/internal/hash/hashStr
br $~lib/internal/hash/HASH<String>|inlined.2
call $~lib/util/hash/hashStr
br $~lib/util/hash/HASH<String>|inlined.1
end
call $std/hash/check
drop
block $~lib/internal/hash/HASH<String>|inlined.3 (result i32)
block $~lib/util/hash/HASH<String>|inlined.2 (result i32)
i32.const 24
local.set $0
local.get $0
call $~lib/internal/hash/hashStr
br $~lib/internal/hash/HASH<String>|inlined.3
call $~lib/util/hash/hashStr
br $~lib/util/hash/HASH<String>|inlined.2
end
call $std/hash/check
drop
block $~lib/internal/hash/HASH<String>|inlined.4 (result i32)
i32.const 32
block $~lib/util/hash/HASH<String>|inlined.3 (result i32)
i32.const 40
local.set $0
local.get $0
call $~lib/internal/hash/hashStr
br $~lib/internal/hash/HASH<String>|inlined.4
call $~lib/util/hash/hashStr
br $~lib/util/hash/HASH<String>|inlined.3
end
call $std/hash/check
drop
block $~lib/internal/hash/HASH<f32>|inlined.0 (result i32)
block $~lib/util/hash/HASH<String>|inlined.4 (result i32)
i32.const 56
local.set $0
local.get $0
call $~lib/util/hash/hashStr
br $~lib/util/hash/HASH<String>|inlined.4
end
call $std/hash/check
drop
block $~lib/util/hash/HASH<f32>|inlined.0 (result i32)
f32.const 0
local.set $1
local.get $1
i32.reinterpret_f32
call $~lib/internal/hash/hash32
br $~lib/internal/hash/HASH<f32>|inlined.0
call $~lib/util/hash/hash32
br $~lib/util/hash/HASH<f32>|inlined.0
end
call $std/hash/check
drop
block $~lib/internal/hash/HASH<f32>|inlined.1 (result i32)
block $~lib/util/hash/HASH<f32>|inlined.1 (result i32)
f32.const 1
local.set $1
local.get $1
i32.reinterpret_f32
call $~lib/internal/hash/hash32
br $~lib/internal/hash/HASH<f32>|inlined.1
call $~lib/util/hash/hash32
br $~lib/util/hash/HASH<f32>|inlined.1
end
call $std/hash/check
drop
block $~lib/internal/hash/HASH<f32>|inlined.2 (result i32)
block $~lib/util/hash/HASH<f32>|inlined.2 (result i32)
f32.const 1.100000023841858
local.set $1
local.get $1
i32.reinterpret_f32
call $~lib/internal/hash/hash32
br $~lib/internal/hash/HASH<f32>|inlined.2
call $~lib/util/hash/hash32
br $~lib/util/hash/HASH<f32>|inlined.2
end
call $std/hash/check
drop
block $~lib/internal/hash/HASH<f32>|inlined.3 (result i32)
block $~lib/util/hash/HASH<f32>|inlined.3 (result i32)
f32.const 0
local.set $1
local.get $1
i32.reinterpret_f32
call $~lib/internal/hash/hash32
br $~lib/internal/hash/HASH<f32>|inlined.3
call $~lib/util/hash/hash32
br $~lib/util/hash/HASH<f32>|inlined.3
end
call $std/hash/check
drop
block $~lib/internal/hash/HASH<f32>|inlined.4 (result i32)
block $~lib/util/hash/HASH<f32>|inlined.4 (result i32)
f32.const inf
local.set $1
local.get $1
i32.reinterpret_f32
call $~lib/internal/hash/hash32
br $~lib/internal/hash/HASH<f32>|inlined.4
call $~lib/util/hash/hash32
br $~lib/util/hash/HASH<f32>|inlined.4
end
call $std/hash/check
drop
block $~lib/internal/hash/HASH<f32>|inlined.5 (result i32)
block $~lib/util/hash/HASH<f32>|inlined.5 (result i32)
f32.const nan:0x400000
local.set $1
local.get $1
i32.reinterpret_f32
call $~lib/internal/hash/hash32
br $~lib/internal/hash/HASH<f32>|inlined.5
call $~lib/util/hash/hash32
br $~lib/util/hash/HASH<f32>|inlined.5
end
call $std/hash/check
drop
block $~lib/internal/hash/HASH<f64>|inlined.0 (result i32)
block $~lib/util/hash/HASH<f64>|inlined.0 (result i32)
f64.const 0
local.set $2
local.get $2
i64.reinterpret_f64
call $~lib/internal/hash/hash64
br $~lib/internal/hash/HASH<f64>|inlined.0
call $~lib/util/hash/hash64
br $~lib/util/hash/HASH<f64>|inlined.0
end
call $std/hash/check
drop
block $~lib/internal/hash/HASH<f64>|inlined.1 (result i32)
block $~lib/util/hash/HASH<f64>|inlined.1 (result i32)
f64.const 1
local.set $2
local.get $2
i64.reinterpret_f64
call $~lib/internal/hash/hash64
br $~lib/internal/hash/HASH<f64>|inlined.1
call $~lib/util/hash/hash64
br $~lib/util/hash/HASH<f64>|inlined.1
end
call $std/hash/check
drop
block $~lib/internal/hash/HASH<f64>|inlined.2 (result i32)
block $~lib/util/hash/HASH<f64>|inlined.2 (result i32)
f64.const 1.1
local.set $2
local.get $2
i64.reinterpret_f64
call $~lib/internal/hash/hash64
br $~lib/internal/hash/HASH<f64>|inlined.2
call $~lib/util/hash/hash64
br $~lib/util/hash/HASH<f64>|inlined.2
end
call $std/hash/check
drop
block $~lib/internal/hash/HASH<f64>|inlined.3 (result i32)
block $~lib/util/hash/HASH<f64>|inlined.3 (result i32)
f64.const 0
local.set $2
local.get $2
i64.reinterpret_f64
call $~lib/internal/hash/hash64
br $~lib/internal/hash/HASH<f64>|inlined.3
call $~lib/util/hash/hash64
br $~lib/util/hash/HASH<f64>|inlined.3
end
call $std/hash/check
drop
block $~lib/internal/hash/HASH<f64>|inlined.4 (result i32)
block $~lib/util/hash/HASH<f64>|inlined.4 (result i32)
f64.const inf
local.set $2
local.get $2
i64.reinterpret_f64
call $~lib/internal/hash/hash64
br $~lib/internal/hash/HASH<f64>|inlined.4
call $~lib/util/hash/hash64
br $~lib/util/hash/HASH<f64>|inlined.4
end
call $std/hash/check
drop
block $~lib/internal/hash/HASH<f64>|inlined.5 (result i32)
block $~lib/util/hash/HASH<f64>|inlined.5 (result i32)
f64.const nan:0x8000000000000
local.set $2
local.get $2
i64.reinterpret_f64
call $~lib/internal/hash/hash64
br $~lib/internal/hash/HASH<f64>|inlined.5
call $~lib/util/hash/hash64
br $~lib/util/hash/HASH<f64>|inlined.5
end
call $std/hash/check
drop
)
(func $start (; 5 ;) (type $FUNCSIG$v)
(func $start (; 6 ;) (type $FUNCSIG$v)
call $start:std/hash
)
(func $null (; 6 ;) (type $FUNCSIG$v)
(func $null (; 7 ;) (type $FUNCSIG$v)
)
)

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,7 +1,12 @@
(module
(type $FUNCSIG$ii (func (param i32) (result i32)))
(type $FUNCSIG$vi (func (param i32)))
(type $FUNCSIG$viiii (func (param i32 i32 i32 i32)))
(type $FUNCSIG$v (func))
(type $FUNCSIG$i (func (result i32)))
(memory $0 0)
(import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32)))
(memory $0 1)
(data (i32.const 8) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00u\00n\00t\00i\00m\00e\00.\00t\00s")
(table $0 1 funcref)
(elem (i32.const 0) $null)
(global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0))
@ -10,18 +15,30 @@
(export "memory" (memory $0))
(export "table" (table $0))
(start $start)
(func $~lib/allocator/arena/__memory_allocate (; 0 ;) (type $FUNCSIG$i) (result i32)
(local $0 i32)
(func $~lib/memory/memory.allocate (; 1 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
(local $2 i32)
(local $3 i32)
local.get $0
i32.const 1073741824
i32.gt_u
if
unreachable
end
global.get $~lib/allocator/arena/offset
local.tee $0
i32.const 15
local.tee $1
local.get $0
i32.const 1
local.get $0
i32.const 1
i32.gt_u
select
i32.add
i32.const 7
i32.add
i32.const -8
i32.and
local.tee $1
local.tee $0
current_memory
local.tee $2
i32.const 16
@ -29,8 +46,8 @@
i32.gt_u
if
local.get $2
local.get $1
local.get $0
local.get $1
i32.sub
i32.const 65535
i32.add
@ -56,14 +73,58 @@
end
end
end
local.get $1
global.set $~lib/allocator/arena/offset
local.get $0
global.set $~lib/allocator/arena/offset
local.get $1
)
(func $std/new/AClass#constructor (; 1 ;) (type $FUNCSIG$i) (result i32)
(func $~lib/runtime/assertUnregistered (; 2 ;) (type $FUNCSIG$vi) (param $0 i32)
local.get $0
i32.const 48
i32.le_u
if
i32.const 0
i32.const 16
i32.const 188
i32.const 2
call $~lib/env/abort
unreachable
end
local.get $0
i32.const 8
i32.sub
i32.load
i32.const -1520547049
i32.ne
if
i32.const 0
i32.const 16
i32.const 189
i32.const 2
call $~lib/env/abort
unreachable
end
)
(func $std/new/AClass#constructor (; 3 ;) (type $FUNCSIG$i) (result i32)
(local $0 i32)
call $~lib/allocator/arena/__memory_allocate
i32.const 16
call $~lib/memory/memory.allocate
local.tee $0
i32.const -1520547049
i32.store
local.get $0
i32.const 8
i32.store offset=4
local.get $0
i32.const 8
i32.add
local.tee $0
call $~lib/runtime/assertUnregistered
local.get $0
i32.const 8
i32.sub
i32.const 1
i32.store
local.get $0
i32.const 1
i32.store
local.get $0
@ -80,15 +141,15 @@
f32.store offset=4
local.get $0
)
(func $start (; 2 ;) (type $FUNCSIG$v)
i32.const 8
(func $start (; 4 ;) (type $FUNCSIG$v)
i32.const 48
global.set $~lib/allocator/arena/startOffset
global.get $~lib/allocator/arena/startOffset
global.set $~lib/allocator/arena/offset
call $std/new/AClass#constructor
global.set $std/new/aClass
)
(func $null (; 3 ;) (type $FUNCSIG$v)
(func $null (; 5 ;) (type $FUNCSIG$v)
nop
)
)

View File

@ -1,122 +1,198 @@
(module
(type $FUNCSIG$v (func))
(type $FUNCSIG$iif (func (param i32 f32) (result i32)))
(type $FUNCSIG$ii (func (param i32) (result i32)))
(memory $0 0)
(type $FUNCSIG$iii (func (param i32 i32) (result i32)))
(type $FUNCSIG$vi (func (param i32)))
(type $FUNCSIG$viiii (func (param i32 i32 i32 i32)))
(type $FUNCSIG$v (func))
(import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32)))
(memory $0 1)
(data (i32.const 8) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00u\00n\00t\00i\00m\00e\00.\00t\00s\00")
(table $0 1 funcref)
(elem (i32.const 0) $null)
(global $std/new/AClass.aStaticField (mut i32) (i32.const 0))
(global $~lib/runtime/GC_IMPLEMENTED i32 (i32.const 0))
(global $~lib/runtime/HEADER_SIZE i32 (i32.const 8))
(global $~lib/runtime/HEADER_MAGIC i32 (i32.const -1520547049))
(global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0))
(global $~lib/allocator/arena/offset (mut i32) (i32.const 0))
(global $std/new/AClass.aStaticField (mut i32) (i32.const 0))
(global $~lib/ASC_NO_ASSERT i32 (i32.const 0))
(global $std/new/aClass (mut i32) (i32.const 0))
(global $~lib/memory/HEAP_BASE i32 (i32.const 8))
(global $~lib/memory/HEAP_BASE i32 (i32.const 48))
(export "memory" (memory $0))
(export "table" (table $0))
(start $start)
(func $start:~lib/allocator/arena (; 0 ;) (type $FUNCSIG$v)
global.get $~lib/memory/HEAP_BASE
i32.const 7
(func $~lib/runtime/ADJUSTOBLOCK (; 1 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
i32.const 1
i32.const 32
local.get $0
global.get $~lib/runtime/HEADER_SIZE
i32.add
i32.const 7
i32.const -1
i32.xor
i32.and
global.set $~lib/allocator/arena/startOffset
global.get $~lib/allocator/arena/startOffset
global.set $~lib/allocator/arena/offset
i32.const 1
i32.sub
i32.clz
i32.sub
i32.shl
)
(func $~lib/allocator/arena/__memory_allocate (; 1 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/memory/memory.allocate (; 2 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
(local $6 i32)
local.get $0
i32.const 1073741824
i32.gt_u
if
unreachable
end
global.get $~lib/allocator/arena/offset
local.set $1
local.get $1
local.get $0
local.tee $2
i32.const 1
local.tee $3
local.get $2
local.get $3
i32.gt_u
select
i32.add
i32.const 7
i32.add
i32.const 7
i32.const -1
i32.xor
i32.and
local.set $4
current_memory
local.set $5
local.get $4
local.get $5
i32.const 16
i32.shl
i32.gt_u
if
local.get $4
(local $7 i32)
block $~lib/allocator/arena/__memory_allocate|inlined.0 (result i32)
local.get $0
local.set $1
local.get $1
i32.sub
i32.const 65535
i32.const 1073741824
i32.gt_u
if
unreachable
end
global.get $~lib/allocator/arena/offset
local.set $2
local.get $2
local.get $1
local.tee $3
i32.const 1
local.tee $4
local.get $3
local.get $4
i32.gt_u
select
i32.add
i32.const 65535
i32.const 7
i32.add
i32.const 7
i32.const -1
i32.xor
i32.and
i32.const 16
i32.shr_u
local.set $2
local.get $5
local.tee $3
local.get $2
local.tee $6
local.get $3
local.get $6
i32.gt_s
select
local.set $3
current_memory
local.set $4
local.get $3
grow_memory
i32.const 0
i32.lt_s
local.get $4
i32.const 16
i32.shl
i32.gt_u
if
local.get $3
local.get $2
i32.sub
i32.const 65535
i32.add
i32.const 65535
i32.const -1
i32.xor
i32.and
i32.const 16
i32.shr_u
local.set $5
local.get $4
local.tee $6
local.get $5
local.tee $7
local.get $6
local.get $7
i32.gt_s
select
local.set $6
local.get $6
grow_memory
i32.const 0
i32.lt_s
if
unreachable
local.get $5
grow_memory
i32.const 0
i32.lt_s
if
unreachable
end
end
end
local.get $3
global.set $~lib/allocator/arena/offset
local.get $2
end
local.get $4
global.set $~lib/allocator/arena/offset
local.get $1
)
(func $~lib/memory/memory.allocate (; 2 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
call $~lib/allocator/arena/__memory_allocate
return
)
(func $std/new/AClass#constructor (; 3 ;) (type $FUNCSIG$iif) (param $0 i32) (param $1 f32) (result i32)
(func $~lib/runtime/doAllocate (; 3 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
local.get $0
call $~lib/runtime/ADJUSTOBLOCK
call $~lib/memory/memory.allocate
local.set $1
local.get $1
global.get $~lib/runtime/HEADER_MAGIC
i32.store
local.get $1
local.get $0
i32.store offset=4
local.get $1
global.get $~lib/runtime/HEADER_SIZE
i32.add
)
(func $~lib/runtime/ALLOCATE (; 4 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
call $~lib/runtime/doAllocate
)
(func $~lib/runtime/assertUnregistered (; 5 ;) (type $FUNCSIG$vi) (param $0 i32)
local.get $0
global.get $~lib/memory/HEAP_BASE
i32.gt_u
i32.eqz
if
i32.const 0
i32.const 16
i32.const 188
i32.const 2
call $~lib/env/abort
unreachable
end
local.get $0
global.get $~lib/runtime/HEADER_SIZE
i32.sub
i32.load
global.get $~lib/runtime/HEADER_MAGIC
i32.eq
i32.eqz
if
i32.const 0
i32.const 16
i32.const 189
i32.const 2
call $~lib/env/abort
unreachable
end
)
(func $~lib/runtime/doRegister (; 6 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
local.get $0
call $~lib/runtime/assertUnregistered
local.get $0
global.get $~lib/runtime/HEADER_SIZE
i32.sub
local.get $1
i32.store
local.get $0
)
(func $std/new/AClass#constructor (; 7 ;) (type $FUNCSIG$iif) (param $0 i32) (param $1 f32) (result i32)
(local $2 i32)
local.get $0
block (result i32)
local.get $0
i32.eqz
if
i32.const 8
call $~lib/memory/memory.allocate
block $~lib/runtime/REGISTER<AClass>|inlined.0 (result i32)
i32.const 8
call $~lib/runtime/ALLOCATE
local.set $2
local.get $2
i32.const 1
call $~lib/runtime/doRegister
end
local.set $0
end
local.get $0
@ -136,16 +212,25 @@
f32.store offset=4
local.get $0
)
(func $start:std/new (; 4 ;) (type $FUNCSIG$v)
call $start:~lib/allocator/arena
(func $start:std/new (; 8 ;) (type $FUNCSIG$v)
global.get $~lib/memory/HEAP_BASE
i32.const 7
i32.add
i32.const 7
i32.const -1
i32.xor
i32.and
global.set $~lib/allocator/arena/startOffset
global.get $~lib/allocator/arena/startOffset
global.set $~lib/allocator/arena/offset
i32.const 0
f32.const 3
call $std/new/AClass#constructor
global.set $std/new/aClass
)
(func $start (; 5 ;) (type $FUNCSIG$v)
(func $start (; 9 ;) (type $FUNCSIG$v)
call $start:std/new
)
(func $null (; 6 ;) (type $FUNCSIG$v)
(func $null (; 10 ;) (type $FUNCSIG$v)
)
)

View File

@ -1,13 +1,16 @@
(module
(type $FUNCSIG$v (func))
(type $FUNCSIG$ii (func (param i32) (result i32)))
(type $FUNCSIG$iii (func (param i32 i32) (result i32)))
(type $FUNCSIG$vi (func (param i32)))
(type $FUNCSIG$viiii (func (param i32 i32 i32 i32)))
(type $FUNCSIG$ddd (func (param f64 f64) (result f64)))
(type $FUNCSIG$ddi (func (param f64 i32) (result f64)))
(type $FUNCSIG$v (func))
(type $FUNCSIG$i (func (result i32)))
(import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32)))
(memory $0 1)
(data (i32.const 8) "\1b\00\00\00s\00t\00d\00/\00o\00p\00e\00r\00a\00t\00o\00r\00-\00o\00v\00e\00r\00l\00o\00a\00d\00i\00n\00g\00.\00t\00s")
(data (i32.const 8) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00u\00n\00t\00i\00m\00e\00.\00t\00s")
(data (i32.const 48) "\02\00\00\006\00\00\00s\00t\00d\00/\00o\00p\00e\00r\00a\00t\00o\00r\00-\00o\00v\00e\00r\00l\00o\00a\00d\00i\00n\00g\00.\00t\00s")
(table $0 1 funcref)
(elem (i32.const 0) $null)
(global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0))
@ -81,18 +84,30 @@
(export "memory" (memory $0))
(export "table" (table $0))
(start $start)
(func $~lib/allocator/arena/__memory_allocate (; 1 ;) (type $FUNCSIG$i) (result i32)
(local $0 i32)
(func $~lib/memory/memory.allocate (; 1 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
(local $2 i32)
(local $3 i32)
local.get $0
i32.const 1073741824
i32.gt_u
if
unreachable
end
global.get $~lib/allocator/arena/offset
local.tee $0
i32.const 15
local.tee $1
local.get $0
i32.const 1
local.get $0
i32.const 1
i32.gt_u
select
i32.add
i32.const 7
i32.add
i32.const -8
i32.and
local.tee $1
local.tee $0
current_memory
local.tee $2
i32.const 16
@ -100,8 +115,8 @@
i32.gt_u
if
local.get $2
local.get $1
local.get $0
local.get $1
i32.sub
i32.const 65535
i32.add
@ -127,13 +142,66 @@
end
end
end
local.get $1
local.get $0
global.set $~lib/allocator/arena/offset
local.get $1
)
(func $~lib/runtime/doAllocate (; 2 ;) (type $FUNCSIG$i) (result i32)
(local $0 i32)
i32.const 16
call $~lib/memory/memory.allocate
local.tee $0
i32.const -1520547049
i32.store
local.get $0
i32.const 8
i32.store offset=4
local.get $0
i32.const 8
i32.add
)
(func $~lib/runtime/assertUnregistered (; 3 ;) (type $FUNCSIG$vi) (param $0 i32)
local.get $0
i32.const 112
i32.le_u
if
i32.const 0
i32.const 16
i32.const 188
i32.const 2
call $~lib/env/abort
unreachable
end
local.get $0
i32.const 8
i32.sub
i32.load
i32.const -1520547049
i32.ne
if
i32.const 0
i32.const 16
i32.const 189
i32.const 2
call $~lib/env/abort
unreachable
end
)
(func $~lib/runtime/doRegister (; 4 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
local.get $0
call $~lib/runtime/assertUnregistered
local.get $0
i32.const 8
i32.sub
local.get $1
i32.store
local.get $0
)
(func $std/operator-overloading/Tester#constructor (; 2 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $std/operator-overloading/Tester#constructor (; 5 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
call $~lib/allocator/arena/__memory_allocate
call $~lib/runtime/doAllocate
i32.const 1
call $~lib/runtime/doRegister
local.tee $2
local.get $0
i32.store
@ -142,7 +210,7 @@
i32.store offset=4
local.get $2
)
(func $~lib/math/NativeMath.scalbn (; 3 ;) (type $FUNCSIG$ddi) (param $0 f64) (param $1 i32) (result f64)
(func $~lib/math/NativeMath.scalbn (; 6 ;) (type $FUNCSIG$ddi) (param $0 f64) (param $1 i32) (result f64)
local.get $1
i32.const 1023
i32.gt_s
@ -219,7 +287,7 @@
f64.reinterpret_i64
f64.mul
)
(func $~lib/math/NativeMath.pow (; 4 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64)
(func $~lib/math/NativeMath.pow (; 7 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64)
(local $2 f64)
(local $3 f64)
(local $4 i32)
@ -1158,7 +1226,7 @@
f64.const 1e-300
f64.mul
)
(func $std/operator-overloading/Tester.pow (; 5 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $std/operator-overloading/Tester.pow (; 8 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
local.get $0
i32.load
f64.convert_i32_s
@ -1177,11 +1245,37 @@
i32.trunc_f64_s
call $std/operator-overloading/Tester#constructor
)
(func $start:std/operator-overloading (; 6 ;) (type $FUNCSIG$v)
(func $std/operator-overloading/TesterInlineStatic#constructor (; 9 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
call $~lib/runtime/doAllocate
i32.const 3
call $~lib/runtime/doRegister
local.tee $2
local.get $0
i32.store
local.get $2
local.get $1
i32.store offset=4
local.get $2
)
(func $std/operator-overloading/TesterInlineInstance#constructor (; 10 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
call $~lib/runtime/doAllocate
i32.const 4
call $~lib/runtime/doRegister
local.tee $2
local.get $0
i32.store
local.get $2
local.get $1
i32.store offset=4
local.get $2
)
(func $start:std/operator-overloading (; 11 ;) (type $FUNCSIG$v)
(local $0 i32)
(local $1 i32)
(local $2 i32)
i32.const 72
i32.const 112
global.set $~lib/allocator/arena/startOffset
global.get $~lib/allocator/arena/startOffset
global.set $~lib/allocator/arena/offset
@ -1223,7 +1317,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 56
i32.const 147
i32.const 0
call $~lib/env/abort
@ -1266,7 +1360,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 56
i32.const 153
i32.const 0
call $~lib/env/abort
@ -1310,7 +1404,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 56
i32.const 159
i32.const 0
call $~lib/env/abort
@ -1354,7 +1448,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 56
i32.const 165
i32.const 0
call $~lib/env/abort
@ -1397,7 +1491,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 56
i32.const 171
i32.const 0
call $~lib/env/abort
@ -1431,7 +1525,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 56
i32.const 177
i32.const 0
call $~lib/env/abort
@ -1475,7 +1569,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 56
i32.const 183
i32.const 0
call $~lib/env/abort
@ -1519,7 +1613,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 56
i32.const 189
i32.const 0
call $~lib/env/abort
@ -1563,7 +1657,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 56
i32.const 195
i32.const 0
call $~lib/env/abort
@ -1600,7 +1694,7 @@
i32.ne
if
i32.const 0
i32.const 8
i32.const 56
i32.const 201
i32.const 0
call $~lib/env/abort
@ -1635,7 +1729,7 @@
global.get $std/operator-overloading/eqf
if
i32.const 0
i32.const 8
i32.const 56
i32.const 207
i32.const 0
call $~lib/env/abort
@ -1662,7 +1756,7 @@
global.get $std/operator-overloading/eq
if
i32.const 0
i32.const 8
i32.const 56
i32.const 211
i32.const 0
call $~lib/env/abort
@ -1691,7 +1785,7 @@
i32.ne
if
i32.const 0
i32.const 8
i32.const 56
i32.const 215
i32.const 0
call $~lib/env/abort
@ -1728,7 +1822,7 @@
i32.ne
if
i32.const 0
i32.const 8
i32.const 56
i32.const 221
i32.const 0
call $~lib/env/abort
@ -1765,7 +1859,7 @@
i32.ne
if
i32.const 0
i32.const 8
i32.const 56
i32.const 227
i32.const 0
call $~lib/env/abort
@ -1802,7 +1896,7 @@
i32.ne
if
i32.const 0
i32.const 8
i32.const 56
i32.const 233
i32.const 0
call $~lib/env/abort
@ -1839,7 +1933,7 @@
i32.ne
if
i32.const 0
i32.const 8
i32.const 56
i32.const 239
i32.const 0
call $~lib/env/abort
@ -1876,7 +1970,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 56
i32.const 244
i32.const 0
call $~lib/env/abort
@ -1913,7 +2007,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 56
i32.const 249
i32.const 0
call $~lib/env/abort
@ -1950,7 +2044,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 56
i32.const 254
i32.const 0
call $~lib/env/abort
@ -1985,7 +2079,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 56
i32.const 259
i32.const 0
call $~lib/env/abort
@ -2028,7 +2122,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 56
i32.const 264
i32.const 0
call $~lib/env/abort
@ -2071,7 +2165,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 56
i32.const 269
i32.const 0
call $~lib/env/abort
@ -2111,7 +2205,7 @@
i32.ne
if
i32.const 0
i32.const 8
i32.const 56
i32.const 274
i32.const 0
call $~lib/env/abort
@ -2122,7 +2216,7 @@
i32.ne
if
i32.const 0
i32.const 8
i32.const 56
i32.const 275
i32.const 0
call $~lib/env/abort
@ -2163,7 +2257,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 56
i32.const 281
i32.const 0
call $~lib/env/abort
@ -2199,7 +2293,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 56
i32.const 284
i32.const 0
call $~lib/env/abort
@ -2237,7 +2331,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 56
i32.const 289
i32.const 0
call $~lib/env/abort
@ -2259,7 +2353,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 56
i32.const 290
i32.const 0
call $~lib/env/abort
@ -2294,7 +2388,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 56
i32.const 293
i32.const 0
call $~lib/env/abort
@ -2315,7 +2409,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 56
i32.const 294
i32.const 0
call $~lib/env/abort
@ -2323,7 +2417,7 @@
end
i32.const 1
i32.const 2
call $std/operator-overloading/Tester#constructor
call $std/operator-overloading/TesterInlineStatic#constructor
global.set $std/operator-overloading/ais1
global.get $std/operator-overloading/ais1
local.tee $0
@ -2334,11 +2428,11 @@
i32.load offset=4
i32.const 1
i32.add
call $std/operator-overloading/Tester#constructor
call $std/operator-overloading/TesterInlineStatic#constructor
global.set $std/operator-overloading/ais1
i32.const 2
i32.const 3
call $std/operator-overloading/Tester#constructor
call $std/operator-overloading/TesterInlineStatic#constructor
global.set $std/operator-overloading/ais2
global.get $std/operator-overloading/ais1
local.tee $0
@ -2352,7 +2446,7 @@
local.get $1
i32.load offset=4
i32.add
call $std/operator-overloading/Tester#constructor
call $std/operator-overloading/TesterInlineStatic#constructor
global.set $std/operator-overloading/ais
global.get $std/operator-overloading/ais
i32.load
@ -2370,7 +2464,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 56
i32.const 314
i32.const 0
call $~lib/env/abort
@ -2378,7 +2472,7 @@
end
i32.const 1
i32.const 2
call $std/operator-overloading/Tester#constructor
call $std/operator-overloading/TesterInlineInstance#constructor
global.set $std/operator-overloading/aii1
global.get $std/operator-overloading/aii1
local.tee $1
@ -2389,11 +2483,11 @@
i32.load offset=4
i32.const 1
i32.add
call $std/operator-overloading/Tester#constructor
call $std/operator-overloading/TesterInlineInstance#constructor
global.set $std/operator-overloading/aii1
i32.const 2
i32.const 3
call $std/operator-overloading/Tester#constructor
call $std/operator-overloading/TesterInlineInstance#constructor
global.set $std/operator-overloading/aii2
global.get $std/operator-overloading/aii1
local.tee $1
@ -2407,7 +2501,7 @@
local.get $0
i32.load offset=4
i32.add
call $std/operator-overloading/Tester#constructor
call $std/operator-overloading/TesterInlineInstance#constructor
global.set $std/operator-overloading/aii
global.get $std/operator-overloading/aii
i32.load
@ -2425,17 +2519,17 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 56
i32.const 334
i32.const 0
call $~lib/env/abort
unreachable
end
)
(func $start (; 7 ;) (type $FUNCSIG$v)
(func $start (; 12 ;) (type $FUNCSIG$v)
call $start:std/operator-overloading
)
(func $null (; 8 ;) (type $FUNCSIG$v)
(func $null (; 13 ;) (type $FUNCSIG$v)
nop
)
)

View File

@ -1,18 +1,24 @@
(module
(type $FUNCSIG$v (func))
(type $FUNCSIG$iiii (func (param i32 i32 i32) (result i32)))
(type $FUNCSIG$ii (func (param i32) (result i32)))
(type $FUNCSIG$iii (func (param i32 i32) (result i32)))
(type $FUNCSIG$vi (func (param i32)))
(type $FUNCSIG$viiii (func (param i32 i32 i32 i32)))
(type $FUNCSIG$ddd (func (param f64 f64) (result f64)))
(type $FUNCSIG$ddi (func (param f64 i32) (result f64)))
(type $FUNCSIG$v (func))
(import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32)))
(memory $0 1)
(data (i32.const 8) "\1b\00\00\00s\00t\00d\00/\00o\00p\00e\00r\00a\00t\00o\00r\00-\00o\00v\00e\00r\00l\00o\00a\00d\00i\00n\00g\00.\00t\00s\00")
(data (i32.const 8) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00u\00n\00t\00i\00m\00e\00.\00t\00s\00")
(data (i32.const 48) "\02\00\00\006\00\00\00s\00t\00d\00/\00o\00p\00e\00r\00a\00t\00o\00r\00-\00o\00v\00e\00r\00l\00o\00a\00d\00i\00n\00g\00.\00t\00s\00")
(table $0 1 funcref)
(elem (i32.const 0) $null)
(global $~lib/runtime/GC_IMPLEMENTED i32 (i32.const 0))
(global $~lib/runtime/HEADER_SIZE i32 (i32.const 8))
(global $~lib/runtime/HEADER_MAGIC i32 (i32.const -1520547049))
(global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0))
(global $~lib/allocator/arena/offset (mut i32) (i32.const 0))
(global $~lib/ASC_NO_ASSERT i32 (i32.const 0))
(global $std/operator-overloading/a1 (mut i32) (i32.const 0))
(global $std/operator-overloading/a2 (mut i32) (i32.const 0))
(global $std/operator-overloading/a (mut i32) (i32.const 0))
@ -80,112 +86,179 @@
(global $std/operator-overloading/aii1 (mut i32) (i32.const 0))
(global $std/operator-overloading/aii2 (mut i32) (i32.const 0))
(global $std/operator-overloading/aii (mut i32) (i32.const 0))
(global $~lib/memory/HEAP_BASE i32 (i32.const 68))
(global $~lib/memory/HEAP_BASE i32 (i32.const 112))
(export "memory" (memory $0))
(export "table" (table $0))
(start $start)
(func $start:~lib/allocator/arena (; 1 ;) (type $FUNCSIG$v)
global.get $~lib/memory/HEAP_BASE
i32.const 7
(func $~lib/runtime/ADJUSTOBLOCK (; 1 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
i32.const 1
i32.const 32
local.get $0
global.get $~lib/runtime/HEADER_SIZE
i32.add
i32.const 7
i32.const -1
i32.xor
i32.and
global.set $~lib/allocator/arena/startOffset
global.get $~lib/allocator/arena/startOffset
global.set $~lib/allocator/arena/offset
i32.const 1
i32.sub
i32.clz
i32.sub
i32.shl
)
(func $~lib/allocator/arena/__memory_allocate (; 2 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/memory/memory.allocate (; 2 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
(local $6 i32)
local.get $0
i32.const 1073741824
i32.gt_u
if
unreachable
end
global.get $~lib/allocator/arena/offset
local.set $1
local.get $1
local.get $0
local.tee $2
i32.const 1
local.tee $3
local.get $2
local.get $3
i32.gt_u
select
i32.add
i32.const 7
i32.add
i32.const 7
i32.const -1
i32.xor
i32.and
local.set $4
current_memory
local.set $5
local.get $4
local.get $5
i32.const 16
i32.shl
i32.gt_u
if
local.get $4
(local $7 i32)
block $~lib/allocator/arena/__memory_allocate|inlined.0 (result i32)
local.get $0
local.set $1
local.get $1
i32.sub
i32.const 65535
i32.const 1073741824
i32.gt_u
if
unreachable
end
global.get $~lib/allocator/arena/offset
local.set $2
local.get $2
local.get $1
local.tee $3
i32.const 1
local.tee $4
local.get $3
local.get $4
i32.gt_u
select
i32.add
i32.const 65535
i32.const 7
i32.add
i32.const 7
i32.const -1
i32.xor
i32.and
i32.const 16
i32.shr_u
local.set $2
local.get $5
local.tee $3
local.get $2
local.tee $6
local.get $3
local.get $6
i32.gt_s
select
local.set $3
current_memory
local.set $4
local.get $3
grow_memory
i32.const 0
i32.lt_s
local.get $4
i32.const 16
i32.shl
i32.gt_u
if
local.get $3
local.get $2
i32.sub
i32.const 65535
i32.add
i32.const 65535
i32.const -1
i32.xor
i32.and
i32.const 16
i32.shr_u
local.set $5
local.get $4
local.tee $6
local.get $5
local.tee $7
local.get $6
local.get $7
i32.gt_s
select
local.set $6
local.get $6
grow_memory
i32.const 0
i32.lt_s
if
unreachable
local.get $5
grow_memory
i32.const 0
i32.lt_s
if
unreachable
end
end
end
local.get $3
global.set $~lib/allocator/arena/offset
local.get $2
end
local.get $4
global.set $~lib/allocator/arena/offset
local.get $1
)
(func $~lib/memory/memory.allocate (; 3 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
call $~lib/allocator/arena/__memory_allocate
return
)
(func $std/operator-overloading/Tester#constructor (; 4 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $~lib/runtime/doAllocate (; 3 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
local.get $0
call $~lib/runtime/ADJUSTOBLOCK
call $~lib/memory/memory.allocate
local.set $1
local.get $1
global.get $~lib/runtime/HEADER_MAGIC
i32.store
local.get $1
local.get $0
i32.store offset=4
local.get $1
global.get $~lib/runtime/HEADER_SIZE
i32.add
)
(func $~lib/runtime/ALLOCATE (; 4 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
call $~lib/runtime/doAllocate
)
(func $~lib/runtime/assertUnregistered (; 5 ;) (type $FUNCSIG$vi) (param $0 i32)
local.get $0
global.get $~lib/memory/HEAP_BASE
i32.gt_u
i32.eqz
if
i32.const 0
i32.const 16
i32.const 188
i32.const 2
call $~lib/env/abort
unreachable
end
local.get $0
global.get $~lib/runtime/HEADER_SIZE
i32.sub
i32.load
global.get $~lib/runtime/HEADER_MAGIC
i32.eq
i32.eqz
if
i32.const 0
i32.const 16
i32.const 189
i32.const 2
call $~lib/env/abort
unreachable
end
)
(func $~lib/runtime/doRegister (; 6 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
local.get $0
call $~lib/runtime/assertUnregistered
local.get $0
global.get $~lib/runtime/HEADER_SIZE
i32.sub
local.get $1
i32.store
local.get $0
)
(func $std/operator-overloading/Tester#constructor (; 7 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(local $3 i32)
local.get $0
i32.eqz
if
i32.const 8
call $~lib/memory/memory.allocate
block $~lib/runtime/REGISTER<Tester>|inlined.0 (result i32)
i32.const 8
call $~lib/runtime/ALLOCATE
local.set $3
local.get $3
i32.const 1
call $~lib/runtime/doRegister
end
local.set $0
end
local.get $0
@ -196,7 +269,7 @@
i32.store offset=4
local.get $0
)
(func $std/operator-overloading/Tester.add (; 5 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $std/operator-overloading/Tester.add (; 8 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
i32.const 0
local.get $0
i32.load
@ -210,7 +283,7 @@
i32.add
call $std/operator-overloading/Tester#constructor
)
(func $std/operator-overloading/Tester.sub (; 6 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $std/operator-overloading/Tester.sub (; 9 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
i32.const 0
local.get $0
i32.load
@ -224,7 +297,7 @@
i32.sub
call $std/operator-overloading/Tester#constructor
)
(func $std/operator-overloading/Tester.mul (; 7 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $std/operator-overloading/Tester.mul (; 10 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
i32.const 0
local.get $0
i32.load
@ -238,7 +311,7 @@
i32.mul
call $std/operator-overloading/Tester#constructor
)
(func $std/operator-overloading/Tester.div (; 8 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $std/operator-overloading/Tester.div (; 11 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
i32.const 0
local.get $0
i32.load
@ -252,7 +325,7 @@
i32.div_s
call $std/operator-overloading/Tester#constructor
)
(func $std/operator-overloading/Tester.mod (; 9 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $std/operator-overloading/Tester.mod (; 12 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
i32.const 0
local.get $0
i32.load
@ -266,7 +339,7 @@
i32.rem_s
call $std/operator-overloading/Tester#constructor
)
(func $~lib/math/NativeMath.scalbn (; 10 ;) (type $FUNCSIG$ddi) (param $0 f64) (param $1 i32) (result f64)
(func $~lib/math/NativeMath.scalbn (; 13 ;) (type $FUNCSIG$ddi) (param $0 f64) (param $1 i32) (result f64)
(local $2 f64)
(local $3 i32)
(local $4 i32)
@ -357,7 +430,7 @@
f64.reinterpret_i64
f64.mul
)
(func $~lib/math/NativeMath.pow (; 11 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64)
(func $~lib/math/NativeMath.pow (; 14 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64)
(local $2 i64)
(local $3 i32)
(local $4 i32)
@ -1445,7 +1518,7 @@
local.get $16
f64.mul
)
(func $std/operator-overloading/Tester.pow (; 12 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $std/operator-overloading/Tester.pow (; 15 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
i32.const 0
local.get $0
i32.load
@ -1465,7 +1538,7 @@
i32.trunc_f64_s
call $std/operator-overloading/Tester#constructor
)
(func $std/operator-overloading/Tester.and (; 13 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $std/operator-overloading/Tester.and (; 16 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
i32.const 0
local.get $0
i32.load
@ -1479,7 +1552,7 @@
i32.and
call $std/operator-overloading/Tester#constructor
)
(func $std/operator-overloading/Tester.or (; 14 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $std/operator-overloading/Tester.or (; 17 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
i32.const 0
local.get $0
i32.load
@ -1493,7 +1566,7 @@
i32.or
call $std/operator-overloading/Tester#constructor
)
(func $std/operator-overloading/Tester.xor (; 15 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $std/operator-overloading/Tester.xor (; 18 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
i32.const 0
local.get $0
i32.load
@ -1507,7 +1580,7 @@
i32.xor
call $std/operator-overloading/Tester#constructor
)
(func $std/operator-overloading/Tester.equals (; 16 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $std/operator-overloading/Tester.equals (; 19 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
local.get $0
i32.load
@ -1525,7 +1598,7 @@
local.get $2
end
)
(func $std/operator-overloading/Tester.notEquals (; 17 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $std/operator-overloading/Tester.notEquals (; 20 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
local.get $0
i32.load
@ -1543,7 +1616,7 @@
local.get $2
end
)
(func $std/operator-overloading/Tester.greater (; 18 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $std/operator-overloading/Tester.greater (; 21 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
local.get $0
i32.load
@ -1561,7 +1634,7 @@
local.get $2
end
)
(func $std/operator-overloading/Tester.greaterEquals (; 19 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $std/operator-overloading/Tester.greaterEquals (; 22 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
local.get $0
i32.load
@ -1579,7 +1652,7 @@
local.get $2
end
)
(func $std/operator-overloading/Tester.less (; 20 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $std/operator-overloading/Tester.less (; 23 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
local.get $0
i32.load
@ -1597,7 +1670,7 @@
local.get $2
end
)
(func $std/operator-overloading/Tester.lessEquals (; 21 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $std/operator-overloading/Tester.lessEquals (; 24 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
local.get $0
i32.load
@ -1615,7 +1688,7 @@
local.get $2
end
)
(func $std/operator-overloading/Tester.shr (; 22 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $std/operator-overloading/Tester.shr (; 25 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
i32.const 0
local.get $0
i32.load
@ -1627,7 +1700,7 @@
i32.shr_s
call $std/operator-overloading/Tester#constructor
)
(func $std/operator-overloading/Tester.shu (; 23 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $std/operator-overloading/Tester.shu (; 26 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
i32.const 0
local.get $0
i32.load
@ -1639,7 +1712,7 @@
i32.shr_u
call $std/operator-overloading/Tester#constructor
)
(func $std/operator-overloading/Tester.shl (; 24 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $std/operator-overloading/Tester.shl (; 27 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
i32.const 0
local.get $0
i32.load
@ -1651,7 +1724,7 @@
i32.shl
call $std/operator-overloading/Tester#constructor
)
(func $std/operator-overloading/Tester.pos (; 25 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $std/operator-overloading/Tester.pos (; 28 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
i32.const 0
local.get $0
i32.load
@ -1659,7 +1732,7 @@
i32.load offset=4
call $std/operator-overloading/Tester#constructor
)
(func $std/operator-overloading/Tester.neg (; 26 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $std/operator-overloading/Tester.neg (; 29 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
i32.const 0
i32.const 0
local.get $0
@ -1671,7 +1744,7 @@
i32.sub
call $std/operator-overloading/Tester#constructor
)
(func $std/operator-overloading/Tester.not (; 27 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $std/operator-overloading/Tester.not (; 30 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
i32.const 0
local.get $0
i32.load
@ -1683,7 +1756,7 @@
i32.xor
call $std/operator-overloading/Tester#constructor
)
(func $std/operator-overloading/Tester.excl (; 28 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $std/operator-overloading/Tester.excl (; 31 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
local.get $0
i32.load
@ -1697,7 +1770,7 @@
local.get $1
end
)
(func $std/operator-overloading/Tester#inc (; 29 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $std/operator-overloading/Tester#inc (; 32 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
local.get $0
i32.load
@ -1712,7 +1785,7 @@
i32.store offset=4
local.get $0
)
(func $std/operator-overloading/Tester#dec (; 30 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $std/operator-overloading/Tester#dec (; 33 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
local.get $0
i32.load
@ -1727,7 +1800,7 @@
i32.store offset=4
local.get $0
)
(func $std/operator-overloading/Tester#postInc (; 31 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $std/operator-overloading/Tester#postInc (; 34 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
i32.const 0
local.get $0
i32.load
@ -1739,7 +1812,7 @@
i32.add
call $std/operator-overloading/Tester#constructor
)
(func $std/operator-overloading/Tester#postDec (; 32 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $std/operator-overloading/Tester#postDec (; 35 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
i32.const 0
local.get $0
i32.load
@ -1751,12 +1824,19 @@
i32.sub
call $std/operator-overloading/Tester#constructor
)
(func $std/operator-overloading/TesterInlineStatic#constructor (; 33 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $std/operator-overloading/TesterInlineStatic#constructor (; 36 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(local $3 i32)
local.get $0
i32.eqz
if
i32.const 8
call $~lib/memory/memory.allocate
block $~lib/runtime/REGISTER<TesterInlineStatic>|inlined.0 (result i32)
i32.const 8
call $~lib/runtime/ALLOCATE
local.set $3
local.get $3
i32.const 3
call $~lib/runtime/doRegister
end
local.set $0
end
local.get $0
@ -1767,12 +1847,19 @@
i32.store offset=4
local.get $0
)
(func $std/operator-overloading/TesterInlineInstance#constructor (; 34 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $std/operator-overloading/TesterInlineInstance#constructor (; 37 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(local $3 i32)
local.get $0
i32.eqz
if
i32.const 8
call $~lib/memory/memory.allocate
block $~lib/runtime/REGISTER<TesterInlineInstance>|inlined.0 (result i32)
i32.const 8
call $~lib/runtime/ALLOCATE
local.set $3
local.get $3
i32.const 4
call $~lib/runtime/doRegister
end
local.set $0
end
local.get $0
@ -1783,10 +1870,19 @@
i32.store offset=4
local.get $0
)
(func $start:std/operator-overloading (; 35 ;) (type $FUNCSIG$v)
(func $start:std/operator-overloading (; 38 ;) (type $FUNCSIG$v)
(local $0 i32)
(local $1 i32)
call $start:~lib/allocator/arena
global.get $~lib/memory/HEAP_BASE
i32.const 7
i32.add
i32.const 7
i32.const -1
i32.xor
i32.and
global.set $~lib/allocator/arena/startOffset
global.get $~lib/allocator/arena/startOffset
global.set $~lib/allocator/arena/offset
i32.const 0
i32.const 1
i32.const 2
@ -1817,7 +1913,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 56
i32.const 147
i32.const 0
call $~lib/env/abort
@ -1853,7 +1949,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 56
i32.const 153
i32.const 0
call $~lib/env/abort
@ -1889,7 +1985,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 56
i32.const 159
i32.const 0
call $~lib/env/abort
@ -1925,7 +2021,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 56
i32.const 165
i32.const 0
call $~lib/env/abort
@ -1961,7 +2057,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 56
i32.const 171
i32.const 0
call $~lib/env/abort
@ -1997,7 +2093,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 56
i32.const 177
i32.const 0
call $~lib/env/abort
@ -2033,7 +2129,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 56
i32.const 183
i32.const 0
call $~lib/env/abort
@ -2069,7 +2165,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 56
i32.const 189
i32.const 0
call $~lib/env/abort
@ -2105,7 +2201,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 56
i32.const 195
i32.const 0
call $~lib/env/abort
@ -2131,7 +2227,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 56
i32.const 201
i32.const 0
call $~lib/env/abort
@ -2157,7 +2253,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 56
i32.const 207
i32.const 0
call $~lib/env/abort
@ -2173,7 +2269,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 56
i32.const 211
i32.const 0
call $~lib/env/abort
@ -2189,7 +2285,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 56
i32.const 215
i32.const 0
call $~lib/env/abort
@ -2215,7 +2311,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 56
i32.const 221
i32.const 0
call $~lib/env/abort
@ -2241,7 +2337,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 56
i32.const 227
i32.const 0
call $~lib/env/abort
@ -2267,7 +2363,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 56
i32.const 233
i32.const 0
call $~lib/env/abort
@ -2293,7 +2389,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 56
i32.const 239
i32.const 0
call $~lib/env/abort
@ -2324,7 +2420,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 56
i32.const 244
i32.const 0
call $~lib/env/abort
@ -2355,7 +2451,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 56
i32.const 249
i32.const 0
call $~lib/env/abort
@ -2386,7 +2482,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 56
i32.const 254
i32.const 0
call $~lib/env/abort
@ -2418,7 +2514,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 56
i32.const 259
i32.const 0
call $~lib/env/abort
@ -2454,7 +2550,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 56
i32.const 264
i32.const 0
call $~lib/env/abort
@ -2490,7 +2586,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 56
i32.const 269
i32.const 0
call $~lib/env/abort
@ -2520,7 +2616,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 56
i32.const 274
i32.const 0
call $~lib/env/abort
@ -2532,7 +2628,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 56
i32.const 275
i32.const 0
call $~lib/env/abort
@ -2562,7 +2658,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 56
i32.const 281
i32.const 0
call $~lib/env/abort
@ -2587,7 +2683,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 56
i32.const 284
i32.const 0
call $~lib/env/abort
@ -2622,7 +2718,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 56
i32.const 289
i32.const 0
call $~lib/env/abort
@ -2644,7 +2740,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 56
i32.const 290
i32.const 0
call $~lib/env/abort
@ -2674,7 +2770,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 56
i32.const 293
i32.const 0
call $~lib/env/abort
@ -2696,7 +2792,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 56
i32.const 294
i32.const 0
call $~lib/env/abort
@ -2762,7 +2858,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 56
i32.const 314
i32.const 0
call $~lib/env/abort
@ -2828,16 +2924,16 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 56
i32.const 334
i32.const 0
call $~lib/env/abort
unreachable
end
)
(func $start (; 36 ;) (type $FUNCSIG$v)
(func $start (; 39 ;) (type $FUNCSIG$v)
call $start:std/operator-overloading
)
(func $null (; 37 ;) (type $FUNCSIG$v)
(func $null (; 40 ;) (type $FUNCSIG$v)
)
)

View File

@ -5,7 +5,7 @@
(type $FUNCSIG$vii (func (param i32 i32)))
(import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32)))
(memory $0 1)
(data (i32.const 8) "\0e\00\00\00s\00t\00d\00/\00p\00o\00i\00n\00t\00e\00r\00.\00t\00s")
(data (i32.const 8) "\01\00\00\00\1c\00\00\00s\00t\00d\00/\00p\00o\00i\00n\00t\00e\00r\00.\00t\00s")
(table $0 1 funcref)
(elem (i32.const 0) $null)
(global $std/pointer/one (mut i32) (i32.const 0))
@ -17,7 +17,7 @@
(export "memory" (memory $0))
(export "table" (table $0))
(start $start)
(func $~lib/internal/memory/memset (; 1 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/memory/memory.fill (; 1 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
local.get $0
i32.const 0
@ -61,7 +61,7 @@
i32.const 0
i32.store8
)
(func $~lib/internal/memory/memcpy (; 2 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/util/memory/memcpy (; 2 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@ -911,65 +911,107 @@
i32.store8
end
)
(func $~lib/internal/memory/memmove (; 3 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/memory/memory.copy (; 3 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
i32.const 8
local.set $2
local.get $0
local.get $1
i32.eq
if
return
end
local.get $1
i32.const 8
i32.add
local.get $0
i32.le_u
local.tee $3
if (result i32)
local.get $3
else
block $~lib/util/memory/memmove|inlined.0
local.get $0
local.get $1
i32.eq
br_if $~lib/util/memory/memmove|inlined.0
local.get $1
i32.const 8
i32.add
local.get $1
local.get $0
i32.le_u
end
if
local.get $0
local.get $1
call $~lib/internal/memory/memcpy
return
end
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
local.tee $3
if (result i32)
local.get $3
else
local.get $0
i32.const 8
i32.add
local.get $1
i32.le_u
end
if
loop $continue|0
local.get $0
i32.const 7
i32.and
if
local.get $2
i32.eqz
local.get $0
local.get $1
call $~lib/util/memory/memcpy
br $~lib/util/memory/memmove|inlined.0
end
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
return
local.get $2
i32.eqz
br_if $~lib/util/memory/memmove|inlined.0
local.get $2
i32.const 1
i32.sub
local.set $2
local.get $0
local.tee $4
i32.const 1
i32.add
local.set $0
local.get $1
local.tee $3
i32.const 1
i32.add
local.set $1
local.get $4
local.get $3
i32.load8_u
i32.store8
br $continue|0
end
end
loop $continue|1
local.get $2
i32.const 1
i32.sub
local.set $2
i32.const 8
i32.ge_u
if
local.get $0
local.get $1
i64.load
i64.store
local.get $2
i32.const 8
i32.sub
local.set $2
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 $2
if
local.get $0
local.tee $4
i32.const 1
@ -984,79 +1026,69 @@
local.get $3
i32.load8_u
i32.store8
br $continue|0
end
end
loop $continue|1
local.get $2
i32.const 8
i32.ge_u
if
local.get $0
local.get $1
i64.load
i64.store
local.get $2
i32.const 8
i32.const 1
i32.sub
local.set $2
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
br $continue|2
end
end
end
loop $continue|2
local.get $2
else
local.get $1
i32.const 7
i32.and
local.get $0
i32.const 7
i32.and
i32.eq
if
local.get $0
local.tee $4
i32.const 1
i32.add
local.set $0
local.get $1
local.tee $3
i32.const 1
i32.add
local.set $1
local.get $4
local.get $3
i32.load8_u
i32.store8
local.get $2
i32.const 1
i32.sub
local.set $2
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 $2
i32.add
i32.const 7
i32.and
if
loop $continue|3
local.get $0
local.get $2
i32.eqz
i32.add
i32.const 7
i32.and
if
return
local.get $2
i32.eqz
br_if $~lib/util/memory/memmove|inlined.0
local.get $2
i32.const 1
i32.sub
local.tee $2
local.get $0
i32.add
local.get $1
local.get $2
i32.add
i32.load8_u
i32.store8
br $continue|3
end
end
loop $continue|4
local.get $2
i32.const 8
i32.ge_u
if
local.get $2
i32.const 8
i32.sub
local.tee $2
local.get $0
i32.add
local.get $1
local.get $2
i32.add
i64.load
i64.store
br $continue|4
end
end
end
loop $continue|5
local.get $2
if
local.get $2
i32.const 1
i32.sub
@ -1068,45 +1100,9 @@
i32.add
i32.load8_u
i32.store8
br $continue|3
br $continue|5
end
end
loop $continue|4
local.get $2
i32.const 8
i32.ge_u
if
local.get $2
i32.const 8
i32.sub
local.tee $2
local.get $0
i32.add
local.get $1
local.get $2
i32.add
i64.load
i64.store
br $continue|4
end
end
end
loop $continue|5
local.get $2
if
local.get $2
i32.const 1
i32.sub
local.tee $2
local.get $0
i32.add
local.get $1
local.get $2
i32.add
i32.load8_u
i32.store8
br $continue|5
end
end
end
)
@ -1122,7 +1118,7 @@
i32.ne
if
i32.const 0
i32.const 8
i32.const 16
i32.const 79
i32.const 0
call $~lib/env/abort
@ -1133,7 +1129,7 @@
i32.ne
if
i32.const 0
i32.const 8
i32.const 16
i32.const 80
i32.const 0
call $~lib/env/abort
@ -1152,7 +1148,7 @@
i32.ne
if
i32.const 0
i32.const 8
i32.const 16
i32.const 84
i32.const 0
call $~lib/env/abort
@ -1164,7 +1160,7 @@
i32.ne
if
i32.const 0
i32.const 8
i32.const 16
i32.const 85
i32.const 0
call $~lib/env/abort
@ -1179,7 +1175,7 @@
i32.ne
if
i32.const 0
i32.const 8
i32.const 16
i32.const 88
i32.const 0
call $~lib/env/abort
@ -1194,7 +1190,7 @@
i32.ne
if
i32.const 0
i32.const 8
i32.const 16
i32.const 91
i32.const 0
call $~lib/env/abort
@ -1205,7 +1201,7 @@
i32.ne
if
i32.const 0
i32.const 8
i32.const 16
i32.const 93
i32.const 0
call $~lib/env/abort
@ -1223,7 +1219,7 @@
i32.ne
if
i32.const 0
i32.const 8
i32.const 16
i32.const 95
i32.const 0
call $~lib/env/abort
@ -1234,7 +1230,7 @@
i32.ne
if
i32.const 0
i32.const 8
i32.const 16
i32.const 96
i32.const 0
call $~lib/env/abort
@ -1245,7 +1241,7 @@
i32.ne
if
i32.const 0
i32.const 8
i32.const 16
i32.const 98
i32.const 0
call $~lib/env/abort
@ -1264,7 +1260,7 @@
i32.ne
if
i32.const 0
i32.const 8
i32.const 16
i32.const 101
i32.const 0
call $~lib/env/abort
@ -1276,7 +1272,7 @@
i32.ne
if
i32.const 0
i32.const 8
i32.const 16
i32.const 102
i32.const 0
call $~lib/env/abort
@ -1288,7 +1284,7 @@
i32.ne
if
i32.const 0
i32.const 8
i32.const 16
i32.const 103
i32.const 0
call $~lib/env/abort
@ -1301,17 +1297,17 @@
if
local.get $0
local.get $1
call $~lib/internal/memory/memmove
call $~lib/memory/memory.copy
else
local.get $0
call $~lib/internal/memory/memset
call $~lib/memory/memory.fill
end
global.get $std/pointer/one
global.get $std/pointer/two
i32.eq
if
i32.const 0
i32.const 8
i32.const 16
i32.const 106
i32.const 0
call $~lib/env/abort
@ -1323,7 +1319,7 @@
i32.ne
if
i32.const 0
i32.const 8
i32.const 16
i32.const 107
i32.const 0
call $~lib/env/abort
@ -1335,7 +1331,7 @@
i32.ne
if
i32.const 0
i32.const 8
i32.const 16
i32.const 108
i32.const 0
call $~lib/env/abort
@ -1357,7 +1353,7 @@
f32.ne
if
i32.const 0
i32.const 8
i32.const 16
i32.const 114
i32.const 0
call $~lib/env/abort
@ -1371,7 +1367,7 @@
f32.ne
if
i32.const 0
i32.const 8
i32.const 16
i32.const 115
i32.const 0
call $~lib/env/abort
@ -1383,7 +1379,7 @@
f32.ne
if
i32.const 0
i32.const 8
i32.const 16
i32.const 117
i32.const 0
call $~lib/env/abort
@ -1397,7 +1393,7 @@
f32.ne
if
i32.const 0
i32.const 8
i32.const 16
i32.const 118
i32.const 0
call $~lib/env/abort
@ -1409,7 +1405,7 @@
f32.ne
if
i32.const 0
i32.const 8
i32.const 16
i32.const 120
i32.const 0
call $~lib/env/abort
@ -1421,7 +1417,7 @@
f32.ne
if
i32.const 0
i32.const 8
i32.const 16
i32.const 121
i32.const 0
call $~lib/env/abort
@ -1439,7 +1435,7 @@
f32.ne
if
i32.const 0
i32.const 8
i32.const 16
i32.const 124
i32.const 0
call $~lib/env/abort
@ -1453,7 +1449,7 @@
f32.ne
if
i32.const 0
i32.const 8
i32.const 16
i32.const 125
i32.const 0
call $~lib/env/abort
@ -1465,7 +1461,7 @@
f32.ne
if
i32.const 0
i32.const 8
i32.const 16
i32.const 126
i32.const 0
call $~lib/env/abort
@ -1480,7 +1476,7 @@
f32.ne
if
i32.const 0
i32.const 8
i32.const 16
i32.const 129
i32.const 0
call $~lib/env/abort
@ -1492,7 +1488,7 @@
f32.ne
if
i32.const 0
i32.const 8
i32.const 16
i32.const 130
i32.const 0
call $~lib/env/abort

File diff suppressed because it is too large Load Diff

View File

@ -1,7 +1,7 @@
(module
(type $FUNCSIG$v (func))
(memory $0 1)
(data (i32.const 8) "\10\00\00\00s\00t\00d\00/\00p\00o\00l\00y\00f\00i\00l\00l\00s\00.\00t\00s")
(data (i32.const 8) "\01\00\00\00 \00\00\00s\00t\00d\00/\00p\00o\00l\00y\00f\00i\00l\00l\00s\00.\00t\00s")
(table $0 1 funcref)
(elem (i32.const 0) $start)
(export "memory" (memory $0))

View File

@ -5,10 +5,10 @@
(type $FUNCSIG$v (func))
(import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32)))
(memory $0 1)
(data (i32.const 8) "\10\00\00\00s\00t\00d\00/\00p\00o\00l\00y\00f\00i\00l\00l\00s\00.\00t\00s\00")
(data (i32.const 8) "\01\00\00\00 \00\00\00s\00t\00d\00/\00p\00o\00l\00y\00f\00i\00l\00l\00s\00.\00t\00s\00")
(table $0 1 funcref)
(elem (i32.const 0) $null)
(global $~lib/memory/HEAP_BASE i32 (i32.const 44))
(global $~lib/memory/HEAP_BASE i32 (i32.const 48))
(export "memory" (memory $0))
(export "table" (table $0))
(start $start)
@ -184,8 +184,81 @@
i32.or
return
)
(func $start:std/polyfills (; 11 ;) (type $FUNCSIG$v)
(local $0 i32)
(func $~lib/polyfills/bswap16<u8> (; 11 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
return
)
(func $~lib/polyfills/bswap16<i8> (; 12 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
return
)
(func $~lib/polyfills/bswap16<u16> (; 13 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.const 8
i32.shl
local.get $0
i32.const 65535
i32.and
i32.const 8
i32.shr_u
i32.const 255
i32.and
i32.or
return
)
(func $~lib/polyfills/bswap16<i16> (; 14 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.const 8
i32.shl
local.get $0
i32.const 16
i32.shl
i32.const 16
i32.shr_s
i32.const 8
i32.shr_s
i32.const 255
i32.and
i32.or
return
)
(func $~lib/polyfills/bswap16<u32> (; 15 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.const 8
i32.shl
i32.const 65280
i32.and
local.get $0
i32.const 8
i32.shr_u
i32.const 255
i32.and
i32.or
local.get $0
i32.const -65536
i32.and
i32.or
return
)
(func $~lib/polyfills/bswap16<i32> (; 16 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.const 8
i32.shl
i32.const 65280
i32.and
local.get $0
i32.const 8
i32.shr_s
i32.const 255
i32.and
i32.or
local.get $0
i32.const -65536
i32.and
i32.or
return
)
(func $start:std/polyfills (; 17 ;) (type $FUNCSIG$v)
i32.const 170
call $~lib/polyfills/bswap<u8>
i32.const 255
@ -195,7 +268,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 4
i32.const 0
call $~lib/env/abort
@ -216,7 +289,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 5
i32.const 0
call $~lib/env/abort
@ -231,7 +304,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 8
i32.const 0
call $~lib/env/abort
@ -252,7 +325,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 9
i32.const 0
call $~lib/env/abort
@ -265,7 +338,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 12
i32.const 0
call $~lib/env/abort
@ -278,7 +351,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 13
i32.const 0
call $~lib/env/abort
@ -291,7 +364,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 16
i32.const 0
call $~lib/env/abort
@ -304,7 +377,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 17
i32.const 0
call $~lib/env/abort
@ -317,7 +390,7 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 20
i32.const 0
call $~lib/env/abort
@ -330,18 +403,14 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 21
i32.const 0
call $~lib/env/abort
unreachable
end
block $~lib/polyfills/bswap16<u8>|inlined.0 (result i32)
i32.const 170
local.set $0
local.get $0
br $~lib/polyfills/bswap16<u8>|inlined.0
end
i32.const 170
call $~lib/polyfills/bswap16<u8>
i32.const 255
i32.and
i32.const 170
@ -349,18 +418,14 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 24
i32.const 0
call $~lib/env/abort
unreachable
end
block $~lib/polyfills/bswap16<i8>|inlined.0 (result i32)
i32.const 170
local.set $0
local.get $0
br $~lib/polyfills/bswap16<i8>|inlined.0
end
i32.const 170
call $~lib/polyfills/bswap16<i8>
i32.const 24
i32.shl
i32.const 24
@ -374,26 +439,14 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 25
i32.const 0
call $~lib/env/abort
unreachable
end
block $~lib/polyfills/bswap16<u16>|inlined.0 (result i32)
i32.const 43707
local.set $0
local.get $0
i32.const 8
i32.shl
local.get $0
i32.const 8
i32.shr_u
i32.const 255
i32.and
i32.or
br $~lib/polyfills/bswap16<u16>|inlined.0
end
i32.const 43707
call $~lib/polyfills/bswap16<u16>
i32.const 65535
i32.and
i32.const 48042
@ -401,30 +454,14 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 28
i32.const 0
call $~lib/env/abort
unreachable
end
block $~lib/polyfills/bswap16<i16>|inlined.0 (result i32)
i32.const 43707
local.set $0
local.get $0
i32.const 8
i32.shl
local.get $0
i32.const 16
i32.shl
i32.const 16
i32.shr_s
i32.const 8
i32.shr_s
i32.const 255
i32.and
i32.or
br $~lib/polyfills/bswap16<i16>|inlined.0
end
i32.const 43707
call $~lib/polyfills/bswap16<i16>
i32.const 16
i32.shl
i32.const 16
@ -438,78 +475,42 @@
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 29
i32.const 0
call $~lib/env/abort
unreachable
end
block $~lib/polyfills/bswap16<u32>|inlined.0 (result i32)
i32.const -7820613
local.set $0
local.get $0
i32.const 8
i32.shl
i32.const 65280
i32.and
local.get $0
i32.const 8
i32.shr_u
i32.const 255
i32.and
i32.or
local.get $0
i32.const -65536
i32.and
i32.or
br $~lib/polyfills/bswap16<u32>|inlined.0
end
i32.const -7820613
call $~lib/polyfills/bswap16<u32>
i32.const -7816278
i32.eq
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 32
i32.const 0
call $~lib/env/abort
unreachable
end
block $~lib/polyfills/bswap16<i32>|inlined.0 (result i32)
i32.const -7820613
local.set $0
local.get $0
i32.const 8
i32.shl
i32.const 65280
i32.and
local.get $0
i32.const 8
i32.shr_s
i32.const 255
i32.and
i32.or
local.get $0
i32.const -65536
i32.and
i32.or
br $~lib/polyfills/bswap16<i32>|inlined.0
end
i32.const -7820613
call $~lib/polyfills/bswap16<i32>
i32.const -7816278
i32.eq
i32.eqz
if
i32.const 0
i32.const 8
i32.const 16
i32.const 33
i32.const 0
call $~lib/env/abort
unreachable
end
)
(func $start (; 12 ;) (type $FUNCSIG$v)
(func $start (; 18 ;) (type $FUNCSIG$v)
call $start:std/polyfills
)
(func $null (; 13 ;) (type $FUNCSIG$v)
(func $null (; 19 ;) (type $FUNCSIG$v)
)
)

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -492,33 +492,39 @@
i32.const -2128831035
local.set $1
local.get $0
i32.const 8
i32.sub
i32.load offset=4
i32.const 1
i32.shr_u
i32.const 1
i32.shl
local.set $3
loop $repeat|0
local.get $2
local.get $3
i32.lt_u
if
if
block $break|0
local.get $0
local.get $2
i32.add
i32.load8_u
local.get $1
i32.xor
i32.const 16777619
i32.mul
local.set $1
local.get $2
i32.const 8
i32.sub
i32.load offset=4
i32.const 1
i32.add
local.set $2
br $repeat|0
i32.shr_u
i32.const 1
i32.shl
local.set $3
loop $repeat|0
local.get $2
local.get $3
i32.ge_u
br_if $break|0
local.get $0
local.get $2
i32.add
i32.load8_u
local.get $1
i32.xor
i32.const 16777619
i32.mul
local.set $1
local.get $2
i32.const 1
i32.add
local.set $2
br $repeat|0
unreachable
end
unreachable
end
end
local.get $1
@ -2091,94 +2097,91 @@
(local $3 i32)
(local $4 i32)
block $~lib/util/memory/memmove|inlined.0
local.get $2
local.set $3
local.get $1
local.get $0
local.tee $2
local.get $1
i32.eq
br_if $~lib/util/memory/memmove|inlined.0
local.get $1
local.get $3
i32.add
local.get $2
i32.add
local.get $0
i32.le_u
local.tee $0
local.tee $3
i32.eqz
if
local.get $0
local.get $2
local.get $3
i32.add
local.get $1
i32.le_u
local.set $0
local.set $3
end
local.get $0
local.get $3
if
local.get $2
local.get $0
local.get $1
local.get $3
local.get $2
call $~lib/util/memory/memcpy
br $~lib/util/memory/memmove|inlined.0
end
local.get $2
local.get $0
local.get $1
i32.lt_u
if
local.get $1
i32.const 7
i32.and
local.get $2
local.get $0
i32.const 7
i32.and
i32.eq
if
loop $continue|0
local.get $2
local.get $0
i32.const 7
i32.and
if
local.get $3
local.get $2
i32.eqz
br_if $~lib/util/memory/memmove|inlined.0
local.get $3
local.get $2
i32.const 1
i32.sub
local.set $3
local.get $2
local.set $2
local.get $0
local.tee $4
i32.const 1
i32.add
local.set $2
local.set $0
local.get $1
local.tee $0
local.tee $3
i32.const 1
i32.add
local.set $1
local.get $4
local.get $0
local.get $3
i32.load8_u
i32.store8
br $continue|0
end
end
loop $continue|1
local.get $3
local.get $2
i32.const 8
i32.ge_u
if
local.get $2
local.get $0
local.get $1
i64.load
i64.store
local.get $3
i32.const 8
i32.sub
local.set $3
local.get $2
i32.const 8
i32.add
i32.sub
local.set $2
local.get $0
i32.const 8
i32.add
local.set $0
local.get $1
i32.const 8
i32.add
@ -2188,26 +2191,26 @@
end
end
loop $continue|2
local.get $3
local.get $2
if
local.get $2
local.get $0
local.tee $4
i32.const 1
i32.add
local.set $2
local.set $0
local.get $1
local.tee $0
local.tee $3
i32.const 1
i32.add
local.set $1
local.get $4
local.get $0
local.get $3
i32.load8_u
i32.store8
local.get $3
local.get $2
i32.const 1
i32.sub
local.set $3
local.set $2
br $continue|2
end
end
@ -2215,29 +2218,29 @@
local.get $1
i32.const 7
i32.and
local.get $2
local.get $0
i32.const 7
i32.and
i32.eq
if
loop $continue|3
local.get $0
local.get $2
local.get $3
i32.add
i32.const 7
i32.and
if
local.get $3
local.get $2
i32.eqz
br_if $~lib/util/memory/memmove|inlined.0
local.get $3
local.get $2
i32.const 1
i32.sub
local.tee $3
local.get $2
local.tee $2
local.get $0
i32.add
local.get $1
local.get $3
local.get $2
i32.add
i32.load8_u
i32.store8
@ -2245,18 +2248,18 @@
end
end
loop $continue|4
local.get $3
local.get $2
i32.const 8
i32.ge_u
if
local.get $3
local.get $2
i32.const 8
i32.sub
local.tee $3
local.get $2
local.tee $2
local.get $0
i32.add
local.get $1
local.get $3
local.get $2
i32.add
i64.load
i64.store
@ -2265,16 +2268,16 @@
end
end
loop $continue|5
local.get $3
local.get $2
if
local.get $3
local.get $2
i32.const 1
i32.sub
local.tee $3
local.get $2
local.tee $2
local.get $0
i32.add
local.get $1
local.get $3
local.get $2
i32.add
i32.load8_u
i32.store8

View File

@ -81,7 +81,7 @@
end
local.get $2
)
(func $~lib/runtime/adjustToBlock (; 2 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/runtime/ADJUSTOBLOCK (; 2 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
i32.const 1
i32.const 32
local.get $0
@ -181,7 +181,7 @@
(func $~lib/runtime/doAllocate (; 4 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
local.get $0
call $~lib/runtime/adjustToBlock
call $~lib/runtime/ADJUSTOBLOCK
call $~lib/memory/memory.allocate
local.set $1
local.get $1
@ -240,261 +240,252 @@
(func $~lib/memory/memory.fill (; 8 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
(local $6 i32)
(local $7 i32)
(local $8 i64)
(local $5 i64)
block $~lib/util/memory/memset|inlined.0
local.get $0
local.set $3
local.get $1
local.set $4
local.get $2
local.set $5
local.get $5
i32.eqz
if
br $~lib/util/memory/memset|inlined.0
end
local.get $3
local.get $4
local.get $0
local.get $1
i32.store8
local.get $3
local.get $5
local.get $0
local.get $2
i32.add
i32.const 1
i32.sub
local.get $4
local.get $1
i32.store8
local.get $5
local.get $2
i32.const 2
i32.le_u
if
br $~lib/util/memory/memset|inlined.0
end
local.get $3
local.get $0
i32.const 1
i32.add
local.get $4
local.get $1
i32.store8
local.get $3
local.get $0
i32.const 2
i32.add
local.get $4
local.get $1
i32.store8
local.get $3
local.get $5
local.get $0
local.get $2
i32.add
i32.const 2
i32.sub
local.get $4
local.get $1
i32.store8
local.get $3
local.get $5
local.get $0
local.get $2
i32.add
i32.const 3
i32.sub
local.get $4
local.get $1
i32.store8
local.get $5
local.get $2
i32.const 6
i32.le_u
if
br $~lib/util/memory/memset|inlined.0
end
local.get $3
local.get $0
i32.const 3
i32.add
local.get $4
local.get $1
i32.store8
local.get $3
local.get $5
local.get $0
local.get $2
i32.add
i32.const 4
i32.sub
local.get $4
local.get $1
i32.store8
local.get $5
local.get $2
i32.const 8
i32.le_u
if
br $~lib/util/memory/memset|inlined.0
end
i32.const 0
local.get $3
local.get $0
i32.sub
i32.const 3
i32.and
local.set $6
local.get $3
local.get $6
i32.add
local.set $3
local.get $5
local.get $6
local.get $0
local.get $3
i32.add
local.set $0
local.get $2
local.get $3
i32.sub
local.set $5
local.get $5
local.set $2
local.get $2
i32.const -4
i32.and
local.set $5
local.set $2
i32.const -1
i32.const 255
i32.div_u
local.get $4
local.get $1
i32.const 255
i32.and
i32.mul
local.set $7
local.get $3
local.get $7
local.set $4
local.get $0
local.get $4
i32.store
local.get $3
local.get $5
local.get $0
local.get $2
i32.add
i32.const 4
i32.sub
local.get $7
local.get $4
i32.store
local.get $5
local.get $2
i32.const 8
i32.le_u
if
br $~lib/util/memory/memset|inlined.0
end
local.get $3
local.get $0
i32.const 4
i32.add
local.get $7
local.get $4
i32.store
local.get $3
local.get $0
i32.const 8
i32.add
local.get $7
local.get $4
i32.store
local.get $3
local.get $5
local.get $0
local.get $2
i32.add
i32.const 12
i32.sub
local.get $7
local.get $4
i32.store
local.get $3
local.get $5
local.get $0
local.get $2
i32.add
i32.const 8
i32.sub
local.get $7
local.get $4
i32.store
local.get $5
local.get $2
i32.const 24
i32.le_u
if
br $~lib/util/memory/memset|inlined.0
end
local.get $3
local.get $0
i32.const 12
i32.add
local.get $7
local.get $4
i32.store
local.get $3
local.get $0
i32.const 16
i32.add
local.get $7
local.get $4
i32.store
local.get $3
local.get $0
i32.const 20
i32.add
local.get $7
local.get $4
i32.store
local.get $3
local.get $0
i32.const 24
i32.add
local.get $7
local.get $4
i32.store
local.get $3
local.get $5
local.get $0
local.get $2
i32.add
i32.const 28
i32.sub
local.get $7
local.get $4
i32.store
local.get $3
local.get $5
local.get $0
local.get $2
i32.add
i32.const 24
i32.sub
local.get $7
local.get $4
i32.store
local.get $3
local.get $5
local.get $0
local.get $2
i32.add
i32.const 20
i32.sub
local.get $7
local.get $4
i32.store
local.get $3
local.get $5
local.get $0
local.get $2
i32.add
i32.const 16
i32.sub
local.get $7
local.get $4
i32.store
i32.const 24
local.get $3
local.get $0
i32.const 4
i32.and
i32.add
local.set $6
local.get $3
local.get $6
i32.add
local.set $3
local.get $5
local.get $6
local.get $0
local.get $3
i32.add
local.set $0
local.get $2
local.get $3
i32.sub
local.set $5
local.get $7
local.set $2
local.get $4
i64.extend_i32_u
local.get $7
local.get $4
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
local.set $8
local.set $5
block $break|0
loop $continue|0
local.get $5
local.get $2
i32.const 32
i32.ge_u
if
block
local.get $3
local.get $8
local.get $0
local.get $5
i64.store
local.get $3
local.get $0
i32.const 8
i32.add
local.get $8
local.get $5
i64.store
local.get $3
local.get $0
i32.const 16
i32.add
local.get $8
local.get $5
i64.store
local.get $3
local.get $0
i32.const 24
i32.add
local.get $8
i64.store
local.get $5
i64.store
local.get $2
i32.const 32
i32.sub
local.set $5
local.get $3
local.set $2
local.get $0
i32.const 32
i32.add
local.set $3
local.set $0
end
br $continue|0
end
@ -679,39 +670,44 @@
(local $3 i32)
i32.const -2128831035
local.set $1
block $break|0
block
i32.const 0
local.set $2
local.get $0
call $~lib/string/String#get:length
i32.const 1
i32.shl
local.set $3
end
loop $repeat|0
local.get $2
local.get $3
i32.lt_u
i32.eqz
br_if $break|0
local.get $1
local.get $0
local.get $2
i32.add
i32.load8_u
i32.xor
i32.const 16777619
i32.mul
local.set $1
local.get $2
i32.const 1
i32.add
local.set $2
br $repeat|0
local.get $0
i32.const 0
i32.ne
if
block $break|0
block
i32.const 0
local.set $2
local.get $0
call $~lib/string/String#get:length
i32.const 1
i32.shl
local.set $3
end
loop $repeat|0
local.get $2
local.get $3
i32.lt_u
i32.eqz
br_if $break|0
local.get $1
local.get $0
local.get $2
i32.add
i32.load8_u
i32.xor
i32.const 16777619
i32.mul
local.set $1
local.get $2
i32.const 1
i32.add
local.set $2
br $repeat|0
unreachable
end
unreachable
end
unreachable
end
local.get $1
)
@ -2777,87 +2773,78 @@
)
(func $~lib/memory/memory.copy (; 32 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
(local $6 i32)
block $~lib/util/memory/memmove|inlined.0
local.get $0
local.set $3
local.get $1
local.set $4
local.get $2
local.set $5
local.get $3
local.get $4
i32.eq
if
br $~lib/util/memory/memmove|inlined.0
end
local.get $4
local.get $5
local.get $1
local.get $2
i32.add
local.get $3
local.get $0
i32.le_u
local.tee $6
local.tee $3
if (result i32)
local.get $6
else
local.get $3
local.get $5
else
local.get $0
local.get $2
i32.add
local.get $4
local.get $1
i32.le_u
end
if
local.get $3
local.get $4
local.get $5
local.get $0
local.get $1
local.get $2
call $~lib/util/memory/memcpy
br $~lib/util/memory/memmove|inlined.0
end
local.get $3
local.get $4
local.get $0
local.get $1
i32.lt_u
if
local.get $4
local.get $1
i32.const 7
i32.and
local.get $3
local.get $0
i32.const 7
i32.and
i32.eq
if
block $break|0
loop $continue|0
local.get $3
local.get $0
i32.const 7
i32.and
if
block
local.get $5
local.get $2
i32.eqz
if
br $~lib/util/memory/memmove|inlined.0
end
local.get $5
local.get $2
i32.const 1
i32.sub
local.set $5
local.set $2
block (result i32)
local.get $3
local.tee $6
local.get $0
local.tee $3
i32.const 1
i32.add
local.set $3
local.get $6
local.set $0
local.get $3
end
block (result i32)
local.get $4
local.tee $6
local.get $1
local.tee $3
i32.const 1
i32.add
local.set $4
local.get $6
local.set $1
local.get $3
end
i32.load8_u
i32.store8
@ -2868,27 +2855,27 @@
end
block $break|1
loop $continue|1
local.get $5
local.get $2
i32.const 8
i32.ge_u
if
block
local.get $3
local.get $4
local.get $0
local.get $1
i64.load
i64.store
local.get $5
local.get $2
i32.const 8
i32.sub
local.set $5
local.get $3
local.set $2
local.get $0
i32.const 8
i32.add
local.set $3
local.get $4
local.set $0
local.get $1
i32.const 8
i32.add
local.set $4
local.set $1
end
br $continue|1
end
@ -2897,67 +2884,67 @@
end
block $break|2
loop $continue|2
local.get $5
local.get $2
if
block
block (result i32)
local.get $3
local.tee $6
local.get $0
local.tee $3
i32.const 1
i32.add
local.set $3
local.get $6
local.set $0
local.get $3
end
block (result i32)
local.get $4
local.tee $6
local.get $1
local.tee $3
i32.const 1
i32.add
local.set $4
local.get $6
local.set $1
local.get $3
end
i32.load8_u
i32.store8
local.get $5
local.get $2
i32.const 1
i32.sub
local.set $5
local.set $2
end
br $continue|2
end
end
end
else
local.get $4
local.get $1
i32.const 7
i32.and
local.get $3
local.get $0
i32.const 7
i32.and
i32.eq
if
block $break|3
loop $continue|3
local.get $3
local.get $5
local.get $0
local.get $2
i32.add
i32.const 7
i32.and
if
block
local.get $5
local.get $2
i32.eqz
if
br $~lib/util/memory/memmove|inlined.0
end
local.get $3
local.get $5
local.get $0
local.get $2
i32.const 1
i32.sub
local.tee $5
local.tee $2
i32.add
local.get $4
local.get $5
local.get $1
local.get $2
i32.add
i32.load8_u
i32.store8
@ -2968,20 +2955,20 @@
end
block $break|4
loop $continue|4
local.get $5
local.get $2
i32.const 8
i32.ge_u
if
block
local.get $5
local.get $2
i32.const 8
i32.sub
local.set $5
local.get $3
local.get $5
local.set $2
local.get $0
local.get $2
i32.add
local.get $4
local.get $5
local.get $1
local.get $2
i32.add
i64.load
i64.store
@ -2993,16 +2980,16 @@
end
block $break|5
loop $continue|5
local.get $5
local.get $2
if
local.get $3
local.get $5
local.get $0
local.get $2
i32.const 1
i32.sub
local.tee $5
local.tee $2
i32.add
local.get $4
local.get $5
local.get $1
local.get $2
i32.add
i32.load8_u
i32.store8