mirror of
https://github.com/fluencelabs/assemblyscript
synced 2025-06-14 15:31:31 +00:00
local flow flags, see what works
This commit is contained in:
@ -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
|
||||
)
|
||||
)
|
||||
|
@ -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)
|
||||
)
|
||||
)
|
||||
|
@ -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
|
||||
)
|
||||
)
|
||||
|
@ -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)
|
||||
)
|
||||
)
|
||||
|
@ -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
|
||||
)
|
||||
)
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
)
|
||||
)
|
||||
|
@ -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)
|
||||
)
|
||||
)
|
||||
|
@ -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
|
||||
)
|
||||
)
|
||||
|
@ -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)
|
||||
)
|
||||
)
|
||||
|
@ -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))
|
||||
|
@ -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
@ -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
|
||||
)
|
||||
)
|
||||
|
@ -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)
|
||||
)
|
||||
)
|
||||
|
@ -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
|
||||
)
|
||||
)
|
||||
|
@ -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)
|
||||
)
|
||||
)
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
)
|
||||
)
|
||||
|
@ -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)
|
||||
)
|
||||
)
|
||||
|
@ -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)
|
||||
|
@ -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
@ -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
|
||||
)
|
||||
)
|
||||
|
@ -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)
|
||||
)
|
||||
)
|
||||
|
@ -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
|
||||
)
|
||||
)
|
||||
|
@ -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)
|
||||
)
|
||||
)
|
||||
|
@ -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
@ -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))
|
||||
|
@ -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
@ -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
|
||||
|
@ -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
|
||||
|
Reference in New Issue
Block a user