use gc interface directly, document

This commit is contained in:
dcode
2019-03-26 23:35:08 +01:00
parent 7c0dc66849
commit 3146f8f9e0
95 changed files with 17360 additions and 13504 deletions

View File

@ -3,7 +3,6 @@
(type $FUNCSIG$viiii (func (param i32 i32 i32 i32)))
(type $FUNCSIG$ii (func (param i32) (result i32)))
(type $FUNCSIG$viii (func (param i32 i32 i32)))
(type $FUNCSIG$vi (func (param i32)))
(type $FUNCSIG$iiii (func (param i32 i32 i32) (result i32)))
(type $FUNCSIG$iiiii (func (param i32 i32 i32 i32) (result i32)))
(type $FUNCSIG$v (func))
@ -16,7 +15,6 @@
(data (i32.const 160) "\01\00\00\00 \00\00\00~\00l\00i\00b\00/\00d\00a\00t\00a\00v\00i\00e\00w\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/runtime/MAX_BYTELENGTH i32 (i32.const 1073741816))
@ -128,7 +126,7 @@
end
return
)
(func $~lib/runtime/doAllocate (; 3 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/runtime/allocate (; 3 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
local.get $0
call $~lib/runtime/ADJUSTOBLOCK
@ -401,7 +399,8 @@
end
end
)
(func $~lib/runtime/assertUnregistered (; 5 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/runtime/register (; 5 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
local.get $0
global.get $~lib/memory/HEAP_BASE
i32.gt_u
@ -409,14 +408,16 @@
if
i32.const 0
i32.const 64
i32.const 313
i32.const 2
i32.const 161
i32.const 4
call $~lib/env/abort
unreachable
end
local.get $0
global.get $~lib/runtime/HEADER_SIZE
i32.sub
local.set $2
local.get $2
i32.load
global.get $~lib/runtime/HEADER_MAGIC
i32.eq
@ -424,23 +425,17 @@
if
i32.const 0
i32.const 64
i32.const 314
i32.const 2
i32.const 163
i32.const 4
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 $2
local.get $1
i32.store
local.get $0
)
(func $~lib/arraybuffer/ArrayBuffer#constructor (; 7 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/arraybuffer/ArrayBuffer#constructor (; 6 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
(local $3 i32)
local.get $1
@ -458,7 +453,7 @@
local.get $1
local.set $2
local.get $2
call $~lib/runtime/doAllocate
call $~lib/runtime/allocate
end
local.set $3
local.get $3
@ -470,16 +465,16 @@
local.set $2
local.get $2
i32.const 2
call $~lib/runtime/doRegister
call $~lib/runtime/register
end
)
(func $~lib/arraybuffer/ArrayBuffer#get:byteLength (; 8 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/arraybuffer/ArrayBuffer#get:byteLength (; 7 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
global.get $~lib/runtime/HEADER_SIZE
i32.sub
i32.load offset=4
)
(func $~lib/util/memory/memcpy (; 9 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(func $~lib/util/memory/memcpy (; 8 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
@ -1680,7 +1675,7 @@
i32.store8
end
)
(func $~lib/memory/memory.copy (; 10 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(func $~lib/memory/memory.copy (; 9 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
@ -1911,7 +1906,7 @@
end
end
)
(func $~lib/arraybuffer/ArrayBuffer#slice (; 11 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $~lib/arraybuffer/ArrayBuffer#slice (; 10 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
@ -1985,7 +1980,7 @@
local.get $6
local.set $4
local.get $4
call $~lib/runtime/doAllocate
call $~lib/runtime/allocate
end
local.set $7
local.get $7
@ -1999,24 +1994,24 @@
local.set $4
local.get $4
i32.const 2
call $~lib/runtime/doRegister
call $~lib/runtime/register
end
)
(func $~lib/arraybuffer/ArrayBuffer.isView<Array<i32>> (; 12 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/arraybuffer/ArrayBuffer.isView<Array<i32>> (; 11 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
if
nop
end
i32.const 0
)
(func $~lib/arraybuffer/ArrayBuffer.isView<usize> (; 13 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/arraybuffer/ArrayBuffer.isView<usize> (; 12 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
if
nop
end
i32.const 0
)
(func $~lib/arraybuffer/ArrayBuffer.isView<Uint8Array> (; 14 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/arraybuffer/ArrayBuffer.isView<Uint8Array> (; 13 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
if
i32.const 1
@ -2024,7 +2019,7 @@
end
i32.const 0
)
(func $~lib/arraybuffer/ArrayBuffer.isView<Int32Array> (; 15 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/arraybuffer/ArrayBuffer.isView<Int32Array> (; 14 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
if
i32.const 1
@ -2032,7 +2027,7 @@
end
i32.const 0
)
(func $~lib/arraybuffer/ArrayBuffer.isView<DataView> (; 16 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/arraybuffer/ArrayBuffer.isView<DataView> (; 15 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
if
i32.const 1
@ -2040,7 +2035,7 @@
end
i32.const 0
)
(func $~lib/runtime/ArrayBufferView#constructor (; 17 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $~lib/runtime/ArrayBufferView#constructor (; 16 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(local $3 i32)
(local $4 i32)
local.get $1
@ -2051,7 +2046,7 @@
if
i32.const 0
i32.const 64
i32.const 348
i32.const 244
i32.const 57
call $~lib/env/abort
unreachable
@ -2072,12 +2067,12 @@
i32.const 12
local.set $4
local.get $4
call $~lib/runtime/doAllocate
call $~lib/runtime/allocate
end
local.set $4
local.get $4
i32.const 3
call $~lib/runtime/doRegister
call $~lib/runtime/register
end
local.set $0
end
@ -2102,7 +2097,7 @@
i32.store offset=8
local.get $0
)
(func $~lib/typedarray/Uint8Array#constructor (; 18 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/typedarray/Uint8Array#constructor (; 17 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
local.get $0
if (result i32)
@ -2112,12 +2107,12 @@
i32.const 12
local.set $2
local.get $2
call $~lib/runtime/doAllocate
call $~lib/runtime/allocate
end
local.set $2
local.get $2
i32.const 4
call $~lib/runtime/doRegister
call $~lib/runtime/register
end
local.get $1
i32.const 0
@ -2125,14 +2120,14 @@
local.set $0
local.get $0
)
(func $~lib/runtime/doMakeArray (; 19 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32)
(func $~lib/runtime/makeArray (; 18 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32)
(local $4 i32)
(local $5 i32)
(local $6 i32)
i32.const 16
call $~lib/runtime/doAllocate
call $~lib/runtime/allocate
local.get $2
call $~lib/runtime/doRegister
call $~lib/runtime/register
local.set $4
local.get $0
local.get $3
@ -2141,9 +2136,9 @@
local.get $0
local.get $3
i32.shl
call $~lib/runtime/doAllocate
call $~lib/runtime/allocate
i32.const 2
call $~lib/runtime/doRegister
call $~lib/runtime/register
local.set $6
local.get $4
local.get $6
@ -2166,7 +2161,7 @@
end
local.get $4
)
(func $~lib/typedarray/Int32Array#constructor (; 20 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/typedarray/Int32Array#constructor (; 19 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
local.get $0
if (result i32)
@ -2176,12 +2171,12 @@
i32.const 12
local.set $2
local.get $2
call $~lib/runtime/doAllocate
call $~lib/runtime/allocate
end
local.set $2
local.get $2
i32.const 6
call $~lib/runtime/doRegister
call $~lib/runtime/register
end
local.get $1
i32.const 2
@ -2189,7 +2184,7 @@
local.set $0
local.get $0
)
(func $~lib/dataview/DataView#constructor (; 21 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32)
(func $~lib/dataview/DataView#constructor (; 20 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32)
(local $4 i32)
(local $5 i32)
local.get $3
@ -2229,12 +2224,12 @@
i32.const 12
local.set $4
local.get $4
call $~lib/runtime/doAllocate
call $~lib/runtime/allocate
end
local.set $4
local.get $4
i32.const 7
call $~lib/runtime/doRegister
call $~lib/runtime/register
end
local.set $0
end
@ -2263,11 +2258,11 @@
i32.store offset=8
local.get $0
)
(func $~lib/typedarray/Uint8Array#get:buffer (; 22 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/typedarray/Uint8Array#get:buffer (; 21 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.load
)
(func $start:std/arraybuffer (; 23 ;) (type $FUNCSIG$v)
(func $start:std/arraybuffer (; 22 ;) (type $FUNCSIG$v)
(local $0 i32)
(local $1 i32)
global.get $~lib/memory/HEAP_BASE
@ -2538,7 +2533,7 @@
local.get $1
i32.const 5
i32.const 2
call $~lib/runtime/doMakeArray
call $~lib/runtime/makeArray
end
call $~lib/arraybuffer/ArrayBuffer.isView<Array<i32>>
i32.eqz
@ -2592,9 +2587,9 @@
unreachable
end
)
(func $start (; 24 ;) (type $FUNCSIG$v)
(func $start (; 23 ;) (type $FUNCSIG$v)
call $start:std/arraybuffer
)
(func $null (; 25 ;) (type $FUNCSIG$v)
(func $null (; 24 ;) (type $FUNCSIG$v)
)
)