mirror of
https://github.com/fluencelabs/assemblyscript
synced 2025-04-25 15:12:12 +00:00
Merge branch 'runtime' into runtime-encoding
This commit is contained in:
commit
5b7193bb45
@ -3,9 +3,6 @@ notifications:
|
||||
email: false
|
||||
before_install: npm config set progress=false && npm i -g npm@latest --no-audit
|
||||
install: npm ci --no-audit
|
||||
cache:
|
||||
directories:
|
||||
- node_modules
|
||||
jobs:
|
||||
include:
|
||||
- node_js: lts/*
|
||||
|
@ -5,13 +5,17 @@
|
||||
(type $FUNCSIG$v (func))
|
||||
(type $FUNCSIG$viii (func (param i32 i32 i32)))
|
||||
(type $FUNCSIG$iiii (func (param i32 i32 i32) (result i32)))
|
||||
(memory $0 0)
|
||||
(import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32)))
|
||||
(memory $0 1)
|
||||
(data (i32.const 8) "\01\00\00\00\1c\00\00\00~\00l\00i\00b\00/\00m\00e\00m\00o\00r\00y\00.\00t\00s")
|
||||
(table $0 1 funcref)
|
||||
(elem (i32.const 0) $null)
|
||||
(global $~lib/memory/memory.implemented i32 (i32.const 1))
|
||||
(global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0))
|
||||
(global $~lib/allocator/arena/offset (mut i32) (i32.const 0))
|
||||
(export "memory" (memory $0))
|
||||
(export "table" (table $0))
|
||||
(export "memory.implemented" (global $~lib/memory/memory.implemented))
|
||||
(export "memory.copy" (func $~lib/memory/memory.copy))
|
||||
(export "memory.init" (func $~lib/memory/memory.init))
|
||||
(export "memory.drop" (func $~lib/memory/memory.drop))
|
||||
@ -21,13 +25,23 @@
|
||||
(export "memory.repeat" (func $~lib/memory/memory.repeat))
|
||||
(export "memory.compare" (func $~lib/memory/memory.compare))
|
||||
(start $start)
|
||||
(func $~lib/memory/memory.init (; 0 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32)
|
||||
(func $~lib/memory/memory.init (; 1 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32)
|
||||
i32.const 0
|
||||
i32.const 16
|
||||
i32.const 46
|
||||
i32.const 4
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
)
|
||||
(func $~lib/memory/memory.drop (; 1 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(func $~lib/memory/memory.drop (; 2 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
i32.const 0
|
||||
i32.const 16
|
||||
i32.const 53
|
||||
i32.const 4
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
)
|
||||
(func $~lib/memory/memory.allocate (; 2 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(func $~lib/allocator/arena/__mem_allocate (; 3 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(local $1 i32)
|
||||
(local $2 i32)
|
||||
(local $3 i32)
|
||||
@ -38,8 +52,6 @@
|
||||
if
|
||||
unreachable
|
||||
end
|
||||
global.get $~lib/allocator/arena/offset
|
||||
local.tee $2
|
||||
local.get $0
|
||||
i32.const 1
|
||||
local.tee $1
|
||||
@ -47,21 +59,23 @@
|
||||
local.get $1
|
||||
i32.gt_u
|
||||
select
|
||||
global.get $~lib/allocator/arena/offset
|
||||
local.tee $0
|
||||
i32.add
|
||||
i32.const 7
|
||||
i32.add
|
||||
i32.const -8
|
||||
i32.and
|
||||
local.tee $0
|
||||
current_memory
|
||||
local.tee $1
|
||||
current_memory
|
||||
local.tee $2
|
||||
i32.const 16
|
||||
i32.shl
|
||||
i32.gt_u
|
||||
if
|
||||
local.get $2
|
||||
local.get $1
|
||||
local.get $0
|
||||
local.get $2
|
||||
i32.sub
|
||||
i32.const 65535
|
||||
i32.add
|
||||
@ -71,7 +85,7 @@
|
||||
i32.shr_u
|
||||
local.tee $3
|
||||
local.tee $4
|
||||
local.get $1
|
||||
local.get $2
|
||||
local.get $4
|
||||
i32.gt_s
|
||||
select
|
||||
@ -88,20 +102,25 @@
|
||||
end
|
||||
end
|
||||
end
|
||||
local.get $0
|
||||
local.get $1
|
||||
global.set $~lib/allocator/arena/offset
|
||||
local.get $2
|
||||
local.get $0
|
||||
)
|
||||
(func $~lib/memory/memory.free (; 3 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(func $~lib/memory/memory.allocate (; 4 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
local.get $0
|
||||
call $~lib/allocator/arena/__mem_allocate
|
||||
)
|
||||
(func $~lib/memory/memory.free (; 5 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
nop
|
||||
)
|
||||
(func $~lib/memory/memory.reset (; 4 ;) (type $FUNCSIG$v)
|
||||
(func $~lib/memory/memory.reset (; 6 ;) (type $FUNCSIG$v)
|
||||
global.get $~lib/allocator/arena/startOffset
|
||||
global.set $~lib/allocator/arena/offset
|
||||
)
|
||||
(func $~lib/util/memory/memcpy (; 5 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
|
||||
(func $~lib/util/memory/memcpy (; 7 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
|
||||
(local $3 i32)
|
||||
(local $4 i32)
|
||||
(local $5 i32)
|
||||
loop $continue|0
|
||||
local.get $1
|
||||
i32.const 3
|
||||
@ -250,14 +269,8 @@
|
||||
i32.and
|
||||
if
|
||||
local.get $0
|
||||
local.set $3
|
||||
local.get $3
|
||||
block (result i32)
|
||||
local.get $1
|
||||
local.set $3
|
||||
local.get $3
|
||||
i32.load8_u
|
||||
end
|
||||
local.get $1
|
||||
i32.load8_u
|
||||
i32.store8
|
||||
end
|
||||
return
|
||||
@ -281,52 +294,40 @@
|
||||
i32.load
|
||||
local.set $4
|
||||
local.get $0
|
||||
local.tee $3
|
||||
local.get $1
|
||||
i32.load8_u
|
||||
i32.store8
|
||||
local.get $0
|
||||
i32.const 1
|
||||
i32.add
|
||||
local.set $0
|
||||
local.get $3
|
||||
local.tee $0
|
||||
i32.const 1
|
||||
i32.add
|
||||
local.set $3
|
||||
local.get $0
|
||||
block (result i32)
|
||||
local.get $1
|
||||
local.tee $3
|
||||
i32.const 1
|
||||
i32.add
|
||||
local.set $1
|
||||
local.get $3
|
||||
local.tee $0
|
||||
i32.const 1
|
||||
i32.add
|
||||
local.set $5
|
||||
local.get $0
|
||||
i32.load8_u
|
||||
end
|
||||
i32.store8
|
||||
local.get $0
|
||||
local.tee $3
|
||||
local.get $3
|
||||
i32.const 1
|
||||
i32.add
|
||||
local.set $0
|
||||
local.get $3
|
||||
block (result i32)
|
||||
local.get $1
|
||||
local.tee $3
|
||||
i32.const 1
|
||||
i32.add
|
||||
local.set $1
|
||||
local.get $3
|
||||
i32.load8_u
|
||||
end
|
||||
i32.store8
|
||||
local.get $0
|
||||
local.tee $3
|
||||
local.get $5
|
||||
i32.const 1
|
||||
i32.add
|
||||
local.set $0
|
||||
local.set $1
|
||||
local.get $3
|
||||
block (result i32)
|
||||
local.get $1
|
||||
local.tee $3
|
||||
i32.const 1
|
||||
i32.add
|
||||
local.set $1
|
||||
local.get $3
|
||||
i32.load8_u
|
||||
end
|
||||
local.get $5
|
||||
i32.load8_u
|
||||
i32.store8
|
||||
local.get $2
|
||||
i32.const 3
|
||||
@ -416,22 +417,12 @@
|
||||
i32.load
|
||||
local.set $4
|
||||
local.get $0
|
||||
local.tee $3
|
||||
i32.const 1
|
||||
i32.add
|
||||
local.set $0
|
||||
local.get $3
|
||||
block (result i32)
|
||||
local.get $1
|
||||
local.tee $3
|
||||
i32.const 1
|
||||
i32.add
|
||||
local.set $1
|
||||
local.get $3
|
||||
i32.load8_u
|
||||
end
|
||||
local.get $1
|
||||
i32.load8_u
|
||||
i32.store8
|
||||
local.get $0
|
||||
i32.const 1
|
||||
i32.add
|
||||
local.tee $3
|
||||
i32.const 1
|
||||
i32.add
|
||||
@ -439,6 +430,8 @@
|
||||
local.get $3
|
||||
block (result i32)
|
||||
local.get $1
|
||||
i32.const 1
|
||||
i32.add
|
||||
local.tee $3
|
||||
i32.const 1
|
||||
i32.add
|
||||
@ -639,6 +632,12 @@
|
||||
i32.and
|
||||
if
|
||||
local.get $0
|
||||
local.get $1
|
||||
i32.load8_u
|
||||
i32.store8
|
||||
local.get $0
|
||||
i32.const 1
|
||||
i32.add
|
||||
local.tee $3
|
||||
i32.const 1
|
||||
i32.add
|
||||
@ -646,6 +645,8 @@
|
||||
local.get $3
|
||||
block (result i32)
|
||||
local.get $1
|
||||
i32.const 1
|
||||
i32.add
|
||||
local.tee $3
|
||||
i32.const 1
|
||||
i32.add
|
||||
@ -655,6 +656,12 @@
|
||||
end
|
||||
i32.store8
|
||||
local.get $0
|
||||
local.get $1
|
||||
i32.load8_u
|
||||
i32.store8
|
||||
local.get $0
|
||||
i32.const 1
|
||||
i32.add
|
||||
local.tee $3
|
||||
i32.const 1
|
||||
i32.add
|
||||
@ -662,6 +669,8 @@
|
||||
local.get $3
|
||||
block (result i32)
|
||||
local.get $1
|
||||
i32.const 1
|
||||
i32.add
|
||||
local.tee $3
|
||||
i32.const 1
|
||||
i32.add
|
||||
@ -671,6 +680,12 @@
|
||||
end
|
||||
i32.store8
|
||||
local.get $0
|
||||
local.get $1
|
||||
i32.load8_u
|
||||
i32.store8
|
||||
local.get $0
|
||||
i32.const 1
|
||||
i32.add
|
||||
local.tee $3
|
||||
i32.const 1
|
||||
i32.add
|
||||
@ -678,6 +693,8 @@
|
||||
local.get $3
|
||||
block (result i32)
|
||||
local.get $1
|
||||
i32.const 1
|
||||
i32.add
|
||||
local.tee $3
|
||||
i32.const 1
|
||||
i32.add
|
||||
@ -687,6 +704,12 @@
|
||||
end
|
||||
i32.store8
|
||||
local.get $0
|
||||
local.get $1
|
||||
i32.load8_u
|
||||
i32.store8
|
||||
local.get $0
|
||||
i32.const 1
|
||||
i32.add
|
||||
local.tee $3
|
||||
i32.const 1
|
||||
i32.add
|
||||
@ -694,6 +717,8 @@
|
||||
local.get $3
|
||||
block (result i32)
|
||||
local.get $1
|
||||
i32.const 1
|
||||
i32.add
|
||||
local.tee $3
|
||||
i32.const 1
|
||||
i32.add
|
||||
@ -703,6 +728,12 @@
|
||||
end
|
||||
i32.store8
|
||||
local.get $0
|
||||
local.get $1
|
||||
i32.load8_u
|
||||
i32.store8
|
||||
local.get $0
|
||||
i32.const 1
|
||||
i32.add
|
||||
local.tee $3
|
||||
i32.const 1
|
||||
i32.add
|
||||
@ -710,6 +741,8 @@
|
||||
local.get $3
|
||||
block (result i32)
|
||||
local.get $1
|
||||
i32.const 1
|
||||
i32.add
|
||||
local.tee $3
|
||||
i32.const 1
|
||||
i32.add
|
||||
@ -719,6 +752,12 @@
|
||||
end
|
||||
i32.store8
|
||||
local.get $0
|
||||
local.get $1
|
||||
i32.load8_u
|
||||
i32.store8
|
||||
local.get $0
|
||||
i32.const 1
|
||||
i32.add
|
||||
local.tee $3
|
||||
i32.const 1
|
||||
i32.add
|
||||
@ -726,6 +765,8 @@
|
||||
local.get $3
|
||||
block (result i32)
|
||||
local.get $1
|
||||
i32.const 1
|
||||
i32.add
|
||||
local.tee $3
|
||||
i32.const 1
|
||||
i32.add
|
||||
@ -735,6 +776,12 @@
|
||||
end
|
||||
i32.store8
|
||||
local.get $0
|
||||
local.get $1
|
||||
i32.load8_u
|
||||
i32.store8
|
||||
local.get $0
|
||||
i32.const 1
|
||||
i32.add
|
||||
local.tee $3
|
||||
i32.const 1
|
||||
i32.add
|
||||
@ -742,6 +789,8 @@
|
||||
local.get $3
|
||||
block (result i32)
|
||||
local.get $1
|
||||
i32.const 1
|
||||
i32.add
|
||||
local.tee $3
|
||||
i32.const 1
|
||||
i32.add
|
||||
@ -751,22 +800,12 @@
|
||||
end
|
||||
i32.store8
|
||||
local.get $0
|
||||
local.tee $3
|
||||
i32.const 1
|
||||
i32.add
|
||||
local.set $0
|
||||
local.get $3
|
||||
block (result i32)
|
||||
local.get $1
|
||||
local.tee $3
|
||||
i32.const 1
|
||||
i32.add
|
||||
local.set $1
|
||||
local.get $3
|
||||
i32.load8_u
|
||||
end
|
||||
local.get $1
|
||||
i32.load8_u
|
||||
i32.store8
|
||||
local.get $0
|
||||
i32.const 1
|
||||
i32.add
|
||||
local.tee $3
|
||||
i32.const 1
|
||||
i32.add
|
||||
@ -774,118 +813,8 @@
|
||||
local.get $3
|
||||
block (result i32)
|
||||
local.get $1
|
||||
local.tee $3
|
||||
i32.const 1
|
||||
i32.add
|
||||
local.set $1
|
||||
local.get $3
|
||||
i32.load8_u
|
||||
end
|
||||
i32.store8
|
||||
local.get $0
|
||||
local.tee $3
|
||||
i32.const 1
|
||||
i32.add
|
||||
local.set $0
|
||||
local.get $3
|
||||
block (result i32)
|
||||
local.get $1
|
||||
local.tee $3
|
||||
i32.const 1
|
||||
i32.add
|
||||
local.set $1
|
||||
local.get $3
|
||||
i32.load8_u
|
||||
end
|
||||
i32.store8
|
||||
local.get $0
|
||||
local.tee $3
|
||||
i32.const 1
|
||||
i32.add
|
||||
local.set $0
|
||||
local.get $3
|
||||
block (result i32)
|
||||
local.get $1
|
||||
local.tee $3
|
||||
i32.const 1
|
||||
i32.add
|
||||
local.set $1
|
||||
local.get $3
|
||||
i32.load8_u
|
||||
end
|
||||
i32.store8
|
||||
local.get $0
|
||||
local.tee $3
|
||||
i32.const 1
|
||||
i32.add
|
||||
local.set $0
|
||||
local.get $3
|
||||
block (result i32)
|
||||
local.get $1
|
||||
local.tee $3
|
||||
i32.const 1
|
||||
i32.add
|
||||
local.set $1
|
||||
local.get $3
|
||||
i32.load8_u
|
||||
end
|
||||
i32.store8
|
||||
local.get $0
|
||||
local.tee $3
|
||||
i32.const 1
|
||||
i32.add
|
||||
local.set $0
|
||||
local.get $3
|
||||
block (result i32)
|
||||
local.get $1
|
||||
local.tee $3
|
||||
i32.const 1
|
||||
i32.add
|
||||
local.set $1
|
||||
local.get $3
|
||||
i32.load8_u
|
||||
end
|
||||
i32.store8
|
||||
local.get $0
|
||||
local.tee $3
|
||||
i32.const 1
|
||||
i32.add
|
||||
local.set $0
|
||||
local.get $3
|
||||
block (result i32)
|
||||
local.get $1
|
||||
local.tee $3
|
||||
i32.const 1
|
||||
i32.add
|
||||
local.set $1
|
||||
local.get $3
|
||||
i32.load8_u
|
||||
end
|
||||
i32.store8
|
||||
local.get $0
|
||||
local.tee $3
|
||||
i32.const 1
|
||||
i32.add
|
||||
local.set $0
|
||||
local.get $3
|
||||
block (result i32)
|
||||
local.get $1
|
||||
local.tee $3
|
||||
i32.const 1
|
||||
i32.add
|
||||
local.set $1
|
||||
local.get $3
|
||||
i32.load8_u
|
||||
end
|
||||
i32.store8
|
||||
local.get $0
|
||||
local.tee $3
|
||||
i32.const 1
|
||||
i32.add
|
||||
local.set $0
|
||||
local.get $3
|
||||
block (result i32)
|
||||
local.get $1
|
||||
local.tee $3
|
||||
i32.const 1
|
||||
i32.add
|
||||
@ -900,6 +829,12 @@
|
||||
i32.and
|
||||
if
|
||||
local.get $0
|
||||
local.get $1
|
||||
i32.load8_u
|
||||
i32.store8
|
||||
local.get $0
|
||||
i32.const 1
|
||||
i32.add
|
||||
local.tee $3
|
||||
i32.const 1
|
||||
i32.add
|
||||
@ -907,6 +842,8 @@
|
||||
local.get $3
|
||||
block (result i32)
|
||||
local.get $1
|
||||
i32.const 1
|
||||
i32.add
|
||||
local.tee $3
|
||||
i32.const 1
|
||||
i32.add
|
||||
@ -916,6 +853,12 @@
|
||||
end
|
||||
i32.store8
|
||||
local.get $0
|
||||
local.get $1
|
||||
i32.load8_u
|
||||
i32.store8
|
||||
local.get $0
|
||||
i32.const 1
|
||||
i32.add
|
||||
local.tee $3
|
||||
i32.const 1
|
||||
i32.add
|
||||
@ -923,6 +866,8 @@
|
||||
local.get $3
|
||||
block (result i32)
|
||||
local.get $1
|
||||
i32.const 1
|
||||
i32.add
|
||||
local.tee $3
|
||||
i32.const 1
|
||||
i32.add
|
||||
@ -932,6 +877,12 @@
|
||||
end
|
||||
i32.store8
|
||||
local.get $0
|
||||
local.get $1
|
||||
i32.load8_u
|
||||
i32.store8
|
||||
local.get $0
|
||||
i32.const 1
|
||||
i32.add
|
||||
local.tee $3
|
||||
i32.const 1
|
||||
i32.add
|
||||
@ -939,6 +890,8 @@
|
||||
local.get $3
|
||||
block (result i32)
|
||||
local.get $1
|
||||
i32.const 1
|
||||
i32.add
|
||||
local.tee $3
|
||||
i32.const 1
|
||||
i32.add
|
||||
@ -948,22 +901,12 @@
|
||||
end
|
||||
i32.store8
|
||||
local.get $0
|
||||
local.tee $3
|
||||
i32.const 1
|
||||
i32.add
|
||||
local.set $0
|
||||
local.get $3
|
||||
block (result i32)
|
||||
local.get $1
|
||||
local.tee $3
|
||||
i32.const 1
|
||||
i32.add
|
||||
local.set $1
|
||||
local.get $3
|
||||
i32.load8_u
|
||||
end
|
||||
local.get $1
|
||||
i32.load8_u
|
||||
i32.store8
|
||||
local.get $0
|
||||
i32.const 1
|
||||
i32.add
|
||||
local.tee $3
|
||||
i32.const 1
|
||||
i32.add
|
||||
@ -971,54 +914,8 @@
|
||||
local.get $3
|
||||
block (result i32)
|
||||
local.get $1
|
||||
local.tee $3
|
||||
i32.const 1
|
||||
i32.add
|
||||
local.set $1
|
||||
local.get $3
|
||||
i32.load8_u
|
||||
end
|
||||
i32.store8
|
||||
local.get $0
|
||||
local.tee $3
|
||||
i32.const 1
|
||||
i32.add
|
||||
local.set $0
|
||||
local.get $3
|
||||
block (result i32)
|
||||
local.get $1
|
||||
local.tee $3
|
||||
i32.const 1
|
||||
i32.add
|
||||
local.set $1
|
||||
local.get $3
|
||||
i32.load8_u
|
||||
end
|
||||
i32.store8
|
||||
local.get $0
|
||||
local.tee $3
|
||||
i32.const 1
|
||||
i32.add
|
||||
local.set $0
|
||||
local.get $3
|
||||
block (result i32)
|
||||
local.get $1
|
||||
local.tee $3
|
||||
i32.const 1
|
||||
i32.add
|
||||
local.set $1
|
||||
local.get $3
|
||||
i32.load8_u
|
||||
end
|
||||
i32.store8
|
||||
local.get $0
|
||||
local.tee $3
|
||||
i32.const 1
|
||||
i32.add
|
||||
local.set $0
|
||||
local.get $3
|
||||
block (result i32)
|
||||
local.get $1
|
||||
local.tee $3
|
||||
i32.const 1
|
||||
i32.add
|
||||
@ -1033,6 +930,12 @@
|
||||
i32.and
|
||||
if
|
||||
local.get $0
|
||||
local.get $1
|
||||
i32.load8_u
|
||||
i32.store8
|
||||
local.get $0
|
||||
i32.const 1
|
||||
i32.add
|
||||
local.tee $3
|
||||
i32.const 1
|
||||
i32.add
|
||||
@ -1040,6 +943,8 @@
|
||||
local.get $3
|
||||
block (result i32)
|
||||
local.get $1
|
||||
i32.const 1
|
||||
i32.add
|
||||
local.tee $3
|
||||
i32.const 1
|
||||
i32.add
|
||||
@ -1049,22 +954,12 @@
|
||||
end
|
||||
i32.store8
|
||||
local.get $0
|
||||
local.tee $3
|
||||
i32.const 1
|
||||
i32.add
|
||||
local.set $0
|
||||
local.get $3
|
||||
block (result i32)
|
||||
local.get $1
|
||||
local.tee $3
|
||||
i32.const 1
|
||||
i32.add
|
||||
local.set $1
|
||||
local.get $3
|
||||
i32.load8_u
|
||||
end
|
||||
local.get $1
|
||||
i32.load8_u
|
||||
i32.store8
|
||||
local.get $0
|
||||
i32.const 1
|
||||
i32.add
|
||||
local.tee $3
|
||||
i32.const 1
|
||||
i32.add
|
||||
@ -1072,22 +967,8 @@
|
||||
local.get $3
|
||||
block (result i32)
|
||||
local.get $1
|
||||
local.tee $3
|
||||
i32.const 1
|
||||
i32.add
|
||||
local.set $1
|
||||
local.get $3
|
||||
i32.load8_u
|
||||
end
|
||||
i32.store8
|
||||
local.get $0
|
||||
local.tee $3
|
||||
i32.const 1
|
||||
i32.add
|
||||
local.set $0
|
||||
local.get $3
|
||||
block (result i32)
|
||||
local.get $1
|
||||
local.tee $3
|
||||
i32.const 1
|
||||
i32.add
|
||||
@ -1102,22 +983,12 @@
|
||||
i32.and
|
||||
if
|
||||
local.get $0
|
||||
local.tee $3
|
||||
i32.const 1
|
||||
i32.add
|
||||
local.set $0
|
||||
local.get $3
|
||||
block (result i32)
|
||||
local.get $1
|
||||
local.tee $3
|
||||
i32.const 1
|
||||
i32.add
|
||||
local.set $1
|
||||
local.get $3
|
||||
i32.load8_u
|
||||
end
|
||||
local.get $1
|
||||
i32.load8_u
|
||||
i32.store8
|
||||
local.get $0
|
||||
i32.const 1
|
||||
i32.add
|
||||
local.tee $3
|
||||
i32.const 1
|
||||
i32.add
|
||||
@ -1125,6 +996,8 @@
|
||||
local.get $3
|
||||
block (result i32)
|
||||
local.get $1
|
||||
i32.const 1
|
||||
i32.add
|
||||
local.tee $3
|
||||
i32.const 1
|
||||
i32.add
|
||||
@ -1139,18 +1012,12 @@
|
||||
i32.and
|
||||
if
|
||||
local.get $0
|
||||
local.set $3
|
||||
local.get $3
|
||||
block (result i32)
|
||||
local.get $1
|
||||
local.set $3
|
||||
local.get $3
|
||||
i32.load8_u
|
||||
end
|
||||
local.get $1
|
||||
i32.load8_u
|
||||
i32.store8
|
||||
end
|
||||
)
|
||||
(func $~lib/memory/memory.copy (; 6 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
|
||||
(func $~lib/memory/memory.copy (; 8 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
|
||||
(local $3 i32)
|
||||
block $~lib/util/memory/memmove|inlined.0
|
||||
local.get $0
|
||||
@ -1346,7 +1213,7 @@
|
||||
end
|
||||
end
|
||||
)
|
||||
(func $~lib/memory/memory.repeat (; 7 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32)
|
||||
(func $~lib/memory/memory.repeat (; 9 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32)
|
||||
(local $4 i32)
|
||||
local.get $2
|
||||
local.get $3
|
||||
@ -1371,7 +1238,7 @@
|
||||
end
|
||||
end
|
||||
)
|
||||
(func $~lib/memory/memory.compare (; 8 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
|
||||
(func $~lib/memory/memory.compare (; 10 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
|
||||
(local $3 i32)
|
||||
local.get $0
|
||||
local.get $1
|
||||
@ -1421,13 +1288,13 @@
|
||||
end
|
||||
end
|
||||
)
|
||||
(func $start (; 9 ;) (type $FUNCSIG$v)
|
||||
i32.const 8
|
||||
(func $start (; 11 ;) (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 (; 10 ;) (type $FUNCSIG$v)
|
||||
(func $null (; 12 ;) (type $FUNCSIG$v)
|
||||
nop
|
||||
)
|
||||
)
|
||||
|
@ -5,14 +5,18 @@
|
||||
(type $FUNCSIG$v (func))
|
||||
(type $FUNCSIG$viii (func (param i32 i32 i32)))
|
||||
(type $FUNCSIG$iiii (func (param i32 i32 i32) (result i32)))
|
||||
(memory $0 0)
|
||||
(import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32)))
|
||||
(memory $0 1)
|
||||
(data (i32.const 8) "\01\00\00\00\1c\00\00\00~\00l\00i\00b\00/\00m\00e\00m\00o\00r\00y\00.\00t\00s\00")
|
||||
(table $0 1 funcref)
|
||||
(elem (i32.const 0) $null)
|
||||
(global $~lib/memory/memory.implemented i32 (i32.const 1))
|
||||
(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/memory/HEAP_BASE i32 (i32.const 44))
|
||||
(export "memory" (memory $0))
|
||||
(export "table" (table $0))
|
||||
(export "memory.implemented" (global $~lib/memory/memory.implemented))
|
||||
(export "memory.copy" (func $~lib/memory/memory.copy))
|
||||
(export "memory.init" (func $~lib/memory/memory.init))
|
||||
(export "memory.drop" (func $~lib/memory/memory.drop))
|
||||
@ -22,107 +26,121 @@
|
||||
(export "memory.repeat" (func $~lib/memory/memory.repeat))
|
||||
(export "memory.compare" (func $~lib/memory/memory.compare))
|
||||
(start $start)
|
||||
(func $~lib/memory/memory.init (; 0 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32)
|
||||
(func $~lib/memory/memory.init (; 1 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32)
|
||||
i32.const 0
|
||||
i32.const 16
|
||||
i32.const 46
|
||||
i32.const 4
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
)
|
||||
(func $~lib/memory/memory.drop (; 1 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(func $~lib/memory/memory.drop (; 2 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
i32.const 0
|
||||
i32.const 16
|
||||
i32.const 53
|
||||
i32.const 4
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
)
|
||||
(func $~lib/memory/memory.allocate (; 2 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(func $~lib/allocator/arena/__mem_allocate (; 3 ;) (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 $7 i32)
|
||||
block $~lib/allocator/arena/__memory_allocate|inlined.0 (result i32)
|
||||
local.get $0
|
||||
local.set $1
|
||||
local.get $1
|
||||
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 $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
|
||||
i32.gt_u
|
||||
select
|
||||
local.get $1
|
||||
i32.sub
|
||||
i32.const 65535
|
||||
i32.add
|
||||
i32.const 7
|
||||
i32.add
|
||||
i32.const 7
|
||||
i32.const 65535
|
||||
i32.const -1
|
||||
i32.xor
|
||||
i32.and
|
||||
local.set $3
|
||||
current_memory
|
||||
local.set $4
|
||||
local.get $3
|
||||
local.get $4
|
||||
i32.const 16
|
||||
i32.shl
|
||||
i32.gt_u
|
||||
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
|
||||
local.get $3
|
||||
grow_memory
|
||||
i32.const 0
|
||||
i32.lt_s
|
||||
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
|
||||
local.get $5
|
||||
grow_memory
|
||||
i32.const 0
|
||||
i32.lt_s
|
||||
if
|
||||
unreachable
|
||||
end
|
||||
unreachable
|
||||
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 (; 4 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
local.get $0
|
||||
call $~lib/allocator/arena/__mem_allocate
|
||||
return
|
||||
)
|
||||
(func $~lib/memory/memory.free (; 3 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(local $1 i32)
|
||||
local.get $0
|
||||
local.set $1
|
||||
(func $~lib/allocator/arena/__mem_free (; 5 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
nop
|
||||
)
|
||||
(func $~lib/memory/memory.reset (; 4 ;) (type $FUNCSIG$v)
|
||||
(func $~lib/memory/memory.free (; 6 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
local.get $0
|
||||
call $~lib/allocator/arena/__mem_free
|
||||
)
|
||||
(func $~lib/allocator/arena/__mem_reset (; 7 ;) (type $FUNCSIG$v)
|
||||
global.get $~lib/allocator/arena/startOffset
|
||||
global.set $~lib/allocator/arena/offset
|
||||
)
|
||||
(func $~lib/util/memory/memcpy (; 5 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
|
||||
(func $~lib/memory/memory.reset (; 8 ;) (type $FUNCSIG$v)
|
||||
call $~lib/allocator/arena/__mem_reset
|
||||
)
|
||||
(func $~lib/util/memory/memcpy (; 9 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
|
||||
(local $3 i32)
|
||||
(local $4 i32)
|
||||
(local $5 i32)
|
||||
@ -1323,7 +1341,7 @@
|
||||
i32.store8
|
||||
end
|
||||
)
|
||||
(func $~lib/memory/memory.copy (; 6 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
|
||||
(func $~lib/memory/memory.copy (; 10 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
|
||||
(local $3 i32)
|
||||
(local $4 i32)
|
||||
(local $5 i32)
|
||||
@ -1554,7 +1572,7 @@
|
||||
end
|
||||
end
|
||||
)
|
||||
(func $~lib/memory/memory.repeat (; 7 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32)
|
||||
(func $~lib/memory/memory.repeat (; 11 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32)
|
||||
(local $4 i32)
|
||||
(local $5 i32)
|
||||
i32.const 0
|
||||
@ -1586,7 +1604,7 @@
|
||||
end
|
||||
end
|
||||
)
|
||||
(func $~lib/memory/memory.compare (; 8 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
|
||||
(func $~lib/memory/memory.compare (; 12 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
|
||||
(local $3 i32)
|
||||
(local $4 i32)
|
||||
(local $5 i32)
|
||||
@ -1651,7 +1669,7 @@
|
||||
end
|
||||
end
|
||||
)
|
||||
(func $start (; 9 ;) (type $FUNCSIG$v)
|
||||
(func $start (; 13 ;) (type $FUNCSIG$v)
|
||||
global.get $~lib/memory/HEAP_BASE
|
||||
i32.const 7
|
||||
i32.add
|
||||
@ -1663,6 +1681,6 @@
|
||||
global.get $~lib/allocator/arena/startOffset
|
||||
global.set $~lib/allocator/arena/offset
|
||||
)
|
||||
(func $null (; 10 ;) (type $FUNCSIG$v)
|
||||
(func $null (; 14 ;) (type $FUNCSIG$v)
|
||||
)
|
||||
)
|
||||
|
@ -335,7 +335,7 @@ function lower_bucket_limit(bucket: usize): u32 {
|
||||
|
||||
// Memory allocator interface
|
||||
|
||||
@global export function __memory_allocate(request: usize): usize {
|
||||
@global export function __mem_allocate(request: usize): usize {
|
||||
var original_bucket: usize, bucket: usize;
|
||||
|
||||
/*
|
||||
@ -469,7 +469,7 @@ function lower_bucket_limit(bucket: usize): u32 {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@global export function __memory_free(ptr: usize): void {
|
||||
@global export function __mem_free(ptr: usize): void {
|
||||
var bucket: usize, i: usize;
|
||||
|
||||
/*
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -9,7 +9,8 @@
|
||||
(type $FUNCSIG$iiii (func (param i32 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\"\00\00\00a\00s\00s\00e\00m\00b\00l\00y\00/\00b\00u\00d\00d\00y\00.\00t\00s\00")
|
||||
(data (i32.const 8) "\01\00\00\00\1c\00\00\00~\00l\00i\00b\00/\00m\00e\00m\00o\00r\00y\00.\00t\00s\00")
|
||||
(data (i32.const 48) "\01\00\00\00\"\00\00\00a\00s\00s\00e\00m\00b\00l\00y\00/\00b\00u\00d\00d\00y\00.\00t\00s\00")
|
||||
(table $0 1 funcref)
|
||||
(elem (i32.const 0) $null)
|
||||
(global $assembly/buddy/HEADER_SIZE i32 (i32.const 8))
|
||||
@ -27,9 +28,11 @@
|
||||
(global $assembly/buddy/NODE_IS_SPLIT_END (mut i32) (i32.const 0))
|
||||
(global $assembly/buddy/base_ptr (mut i32) (i32.const 0))
|
||||
(global $assembly/buddy/max_ptr (mut i32) (i32.const 0))
|
||||
(global $~lib/memory/HEAP_BASE i32 (i32.const 52))
|
||||
(global $~lib/memory/memory.implemented i32 (i32.const 1))
|
||||
(global $~lib/memory/HEAP_BASE i32 (i32.const 92))
|
||||
(export "memory" (memory $0))
|
||||
(export "table" (table $0))
|
||||
(export "memory.implemented" (global $~lib/memory/memory.implemented))
|
||||
(export "memory.copy" (func $~lib/memory/memory.copy))
|
||||
(export "memory.init" (func $~lib/memory/memory.init))
|
||||
(export "memory.drop" (func $~lib/memory/memory.drop))
|
||||
@ -61,9 +64,19 @@
|
||||
call $start:assembly/buddy
|
||||
)
|
||||
(func $~lib/memory/memory.init (; 3 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32)
|
||||
i32.const 0
|
||||
i32.const 16
|
||||
i32.const 46
|
||||
i32.const 4
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
)
|
||||
(func $~lib/memory/memory.drop (; 4 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
i32.const 0
|
||||
i32.const 16
|
||||
i32.const 53
|
||||
i32.const 4
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
)
|
||||
(func $assembly/buddy/update_max_ptr (; 5 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
@ -91,7 +104,7 @@
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 16
|
||||
i32.const 56
|
||||
i32.const 176
|
||||
i32.const 4
|
||||
call $~lib/env/abort
|
||||
@ -121,7 +134,7 @@
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 16
|
||||
i32.const 56
|
||||
i32.const 96
|
||||
i32.const 2
|
||||
call $~lib/env/abort
|
||||
@ -212,7 +225,7 @@
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 16
|
||||
i32.const 56
|
||||
i32.const 142
|
||||
i32.const 2
|
||||
call $~lib/env/abort
|
||||
@ -281,7 +294,7 @@
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 16
|
||||
i32.const 56
|
||||
i32.const 147
|
||||
i32.const 2
|
||||
call $~lib/env/abort
|
||||
@ -418,7 +431,7 @@
|
||||
call $assembly/buddy/list_remove
|
||||
local.get $1
|
||||
)
|
||||
(func $assembly/buddy/__memory_allocate (; 19 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(func $assembly/buddy/__mem_allocate (; 19 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(local $1 i32)
|
||||
(local $2 i32)
|
||||
(local $3 i32)
|
||||
@ -625,10 +638,10 @@
|
||||
)
|
||||
(func $~lib/memory/memory.allocate (; 20 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
local.get $0
|
||||
call $assembly/buddy/__memory_allocate
|
||||
call $assembly/buddy/__mem_allocate
|
||||
return
|
||||
)
|
||||
(func $assembly/buddy/__memory_free (; 21 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(func $assembly/buddy/__mem_free (; 21 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(local $1 i32)
|
||||
(local $2 i32)
|
||||
(local $3 i32)
|
||||
@ -707,9 +720,14 @@
|
||||
)
|
||||
(func $~lib/memory/memory.free (; 22 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
local.get $0
|
||||
call $assembly/buddy/__memory_free
|
||||
call $assembly/buddy/__mem_free
|
||||
)
|
||||
(func $~lib/memory/memory.reset (; 23 ;) (type $FUNCSIG$v)
|
||||
i32.const 0
|
||||
i32.const 16
|
||||
i32.const 77
|
||||
i32.const 9
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
)
|
||||
(func $~lib/util/memory/memcpy (; 24 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
|
||||
|
@ -14,10 +14,15 @@ function test(file) {
|
||||
}
|
||||
}).exports;
|
||||
|
||||
const RUNTIME_HEADER_SIZE = exports[".capabilities"] & 2 ? 16 : 8;
|
||||
|
||||
function getString(ptr) {
|
||||
var len = new Uint32Array(exports.memory.buffer, ptr)[0];
|
||||
var str = new Uint16Array(exports.memory.buffer, ptr + 4).subarray(0, len);
|
||||
return String.fromCharCode.apply(String, str);
|
||||
if (!ptr) return "null";
|
||||
var U32 = new Uint32Array(exports.memory.buffer);
|
||||
var U16 = new Uint16Array(exports.memory.buffer);
|
||||
var len16 = U32[(ptr - RUNTIME_HEADER_SIZE + 4) >>> 2] >>> 1;
|
||||
var ptr16 = ptr >>> 1;
|
||||
return String.fromCharCode.apply(String, U16.subarray(ptr16, ptr16 + len16));
|
||||
}
|
||||
|
||||
require("./runner")(exports, 20, 20000);
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -10,6 +10,7 @@
|
||||
(import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32)))
|
||||
(memory $0 1)
|
||||
(data (i32.const 8) "\01\00\00\00,\00\00\00~\00l\00i\00b\00/\00a\00l\00l\00o\00c\00a\00t\00o\00r\00/\00t\00l\00s\00f\00.\00t\00s\00")
|
||||
(data (i32.const 64) "\01\00\00\00\1c\00\00\00~\00l\00i\00b\00/\00m\00e\00m\00o\00r\00y\00.\00t\00s\00")
|
||||
(table $0 1 funcref)
|
||||
(elem (i32.const 0) $null)
|
||||
(global $~lib/allocator/tlsf/SL_BITS i32 (i32.const 5))
|
||||
@ -29,9 +30,11 @@
|
||||
(global $~lib/allocator/tlsf/Root.HL_END i32 (i32.const 2912))
|
||||
(global $~lib/allocator/tlsf/Root.SIZE i32 (i32.const 2916))
|
||||
(global $~lib/allocator/tlsf/ROOT (mut i32) (i32.const 0))
|
||||
(global $~lib/memory/HEAP_BASE i32 (i32.const 60))
|
||||
(global $~lib/memory/memory.implemented i32 (i32.const 1))
|
||||
(global $~lib/memory/HEAP_BASE i32 (i32.const 100))
|
||||
(export "memory" (memory $0))
|
||||
(export "table" (table $0))
|
||||
(export "memory.implemented" (global $~lib/memory/memory.implemented))
|
||||
(export "memory.copy" (func $~lib/memory/memory.copy))
|
||||
(export "memory.init" (func $~lib/memory/memory.init))
|
||||
(export "memory.drop" (func $~lib/memory/memory.drop))
|
||||
@ -61,9 +64,19 @@
|
||||
call $start:~lib/allocator/tlsf
|
||||
)
|
||||
(func $~lib/memory/memory.init (; 3 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32)
|
||||
i32.const 0
|
||||
i32.const 72
|
||||
i32.const 46
|
||||
i32.const 4
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
)
|
||||
(func $~lib/memory/memory.drop (; 4 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
i32.const 0
|
||||
i32.const 72
|
||||
i32.const 53
|
||||
i32.const 4
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
)
|
||||
(func $~lib/allocator/tlsf/Root#set:tailRef (; 5 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
|
||||
@ -1190,7 +1203,7 @@
|
||||
global.get $~lib/allocator/tlsf/Block.INFO
|
||||
i32.add
|
||||
)
|
||||
(func $~lib/memory/memory.allocate (; 22 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(func $~lib/allocator/tlsf/__mem_allocate (; 22 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(local $1 i32)
|
||||
(local $2 i32)
|
||||
(local $3 i32)
|
||||
@ -1198,261 +1211,257 @@
|
||||
(local $5 i32)
|
||||
(local $6 i32)
|
||||
(local $7 i32)
|
||||
(local $8 i32)
|
||||
block $~lib/allocator/tlsf/__memory_allocate|inlined.0 (result i32)
|
||||
local.get $0
|
||||
local.set $1
|
||||
global.get $~lib/allocator/tlsf/ROOT
|
||||
local.set $2
|
||||
local.get $2
|
||||
i32.eqz
|
||||
if
|
||||
global.get $~lib/memory/HEAP_BASE
|
||||
i32.const 7
|
||||
i32.add
|
||||
i32.const 7
|
||||
i32.const -1
|
||||
i32.xor
|
||||
i32.and
|
||||
local.set $3
|
||||
current_memory
|
||||
local.set $4
|
||||
local.get $3
|
||||
global.get $~lib/allocator/tlsf/Root.SIZE
|
||||
i32.add
|
||||
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 $5
|
||||
local.get $4
|
||||
i32.gt_s
|
||||
local.tee $6
|
||||
if (result i32)
|
||||
local.get $5
|
||||
local.get $4
|
||||
i32.sub
|
||||
grow_memory
|
||||
i32.const 0
|
||||
i32.lt_s
|
||||
else
|
||||
local.get $6
|
||||
end
|
||||
if
|
||||
unreachable
|
||||
end
|
||||
local.get $3
|
||||
local.tee $2
|
||||
global.set $~lib/allocator/tlsf/ROOT
|
||||
local.get $2
|
||||
i32.const 0
|
||||
call $~lib/allocator/tlsf/Root#set:tailRef
|
||||
local.get $2
|
||||
i32.const 0
|
||||
i32.store
|
||||
block $break|0
|
||||
i32.const 0
|
||||
local.set $6
|
||||
loop $repeat|0
|
||||
local.get $6
|
||||
global.get $~lib/allocator/tlsf/FL_BITS
|
||||
i32.lt_u
|
||||
i32.eqz
|
||||
br_if $break|0
|
||||
block
|
||||
local.get $2
|
||||
local.get $6
|
||||
i32.const 0
|
||||
call $~lib/allocator/tlsf/Root#setSLMap
|
||||
block $break|1
|
||||
i32.const 0
|
||||
local.set $7
|
||||
loop $repeat|1
|
||||
local.get $7
|
||||
global.get $~lib/allocator/tlsf/SL_SIZE
|
||||
i32.lt_u
|
||||
i32.eqz
|
||||
br_if $break|1
|
||||
local.get $2
|
||||
local.get $6
|
||||
local.get $7
|
||||
i32.const 0
|
||||
call $~lib/allocator/tlsf/Root#setHead
|
||||
local.get $7
|
||||
i32.const 1
|
||||
i32.add
|
||||
local.set $7
|
||||
br $repeat|1
|
||||
unreachable
|
||||
end
|
||||
unreachable
|
||||
end
|
||||
end
|
||||
local.get $6
|
||||
i32.const 1
|
||||
i32.add
|
||||
local.set $6
|
||||
br $repeat|0
|
||||
unreachable
|
||||
end
|
||||
unreachable
|
||||
end
|
||||
local.get $2
|
||||
local.get $3
|
||||
global.get $~lib/allocator/tlsf/Root.SIZE
|
||||
i32.add
|
||||
i32.const 7
|
||||
i32.add
|
||||
i32.const 7
|
||||
i32.const -1
|
||||
i32.xor
|
||||
i32.and
|
||||
current_memory
|
||||
i32.const 16
|
||||
i32.shl
|
||||
call $~lib/allocator/tlsf/Root#addMemory
|
||||
drop
|
||||
end
|
||||
local.get $1
|
||||
global.get $~lib/allocator/tlsf/Block.MAX_SIZE
|
||||
i32.gt_u
|
||||
if
|
||||
unreachable
|
||||
end
|
||||
local.get $1
|
||||
global.get $~lib/allocator/tlsf/ROOT
|
||||
local.set $1
|
||||
local.get $1
|
||||
i32.eqz
|
||||
if
|
||||
global.get $~lib/memory/HEAP_BASE
|
||||
i32.const 7
|
||||
i32.add
|
||||
i32.const 7
|
||||
i32.const -1
|
||||
i32.xor
|
||||
i32.and
|
||||
local.tee $5
|
||||
global.get $~lib/allocator/tlsf/Block.MIN_SIZE
|
||||
local.tee $4
|
||||
local.get $5
|
||||
local.get $4
|
||||
i32.gt_u
|
||||
select
|
||||
local.set $1
|
||||
local.set $2
|
||||
current_memory
|
||||
local.set $3
|
||||
local.get $2
|
||||
local.get $1
|
||||
call $~lib/allocator/tlsf/Root#search
|
||||
local.set $5
|
||||
local.get $5
|
||||
i32.eqz
|
||||
if
|
||||
current_memory
|
||||
local.set $4
|
||||
local.get $1
|
||||
i32.const 65535
|
||||
i32.add
|
||||
i32.const 65535
|
||||
i32.const -1
|
||||
i32.xor
|
||||
i32.and
|
||||
i32.const 16
|
||||
i32.shr_u
|
||||
local.set $3
|
||||
global.get $~lib/allocator/tlsf/Root.SIZE
|
||||
i32.add
|
||||
i32.const 65535
|
||||
i32.add
|
||||
i32.const 65535
|
||||
i32.const -1
|
||||
i32.xor
|
||||
i32.and
|
||||
i32.const 16
|
||||
i32.shr_u
|
||||
local.set $4
|
||||
local.get $4
|
||||
local.get $3
|
||||
i32.gt_s
|
||||
local.tee $5
|
||||
if (result i32)
|
||||
local.get $4
|
||||
local.tee $6
|
||||
local.get $3
|
||||
local.tee $7
|
||||
local.get $6
|
||||
local.get $7
|
||||
i32.gt_s
|
||||
select
|
||||
local.set $6
|
||||
local.get $6
|
||||
i32.sub
|
||||
grow_memory
|
||||
i32.const 0
|
||||
i32.lt_s
|
||||
else
|
||||
local.get $5
|
||||
end
|
||||
if
|
||||
unreachable
|
||||
end
|
||||
local.get $2
|
||||
local.tee $1
|
||||
global.set $~lib/allocator/tlsf/ROOT
|
||||
local.get $1
|
||||
i32.const 0
|
||||
call $~lib/allocator/tlsf/Root#set:tailRef
|
||||
local.get $1
|
||||
i32.const 0
|
||||
i32.store
|
||||
block $break|0
|
||||
i32.const 0
|
||||
local.set $5
|
||||
loop $repeat|0
|
||||
local.get $5
|
||||
global.get $~lib/allocator/tlsf/FL_BITS
|
||||
i32.lt_u
|
||||
i32.eqz
|
||||
br_if $break|0
|
||||
block
|
||||
local.get $1
|
||||
local.get $5
|
||||
i32.const 0
|
||||
call $~lib/allocator/tlsf/Root#setSLMap
|
||||
block $break|1
|
||||
i32.const 0
|
||||
local.set $6
|
||||
loop $repeat|1
|
||||
local.get $6
|
||||
global.get $~lib/allocator/tlsf/SL_SIZE
|
||||
i32.lt_u
|
||||
i32.eqz
|
||||
br_if $break|1
|
||||
local.get $1
|
||||
local.get $5
|
||||
local.get $6
|
||||
i32.const 0
|
||||
call $~lib/allocator/tlsf/Root#setHead
|
||||
local.get $6
|
||||
i32.const 1
|
||||
i32.add
|
||||
local.set $6
|
||||
br $repeat|1
|
||||
unreachable
|
||||
end
|
||||
unreachable
|
||||
end
|
||||
end
|
||||
local.get $5
|
||||
i32.const 1
|
||||
i32.add
|
||||
local.set $5
|
||||
br $repeat|0
|
||||
unreachable
|
||||
end
|
||||
unreachable
|
||||
end
|
||||
local.get $1
|
||||
local.get $2
|
||||
global.get $~lib/allocator/tlsf/Root.SIZE
|
||||
i32.add
|
||||
i32.const 7
|
||||
i32.add
|
||||
i32.const 7
|
||||
i32.const -1
|
||||
i32.xor
|
||||
i32.and
|
||||
current_memory
|
||||
i32.const 16
|
||||
i32.shl
|
||||
call $~lib/allocator/tlsf/Root#addMemory
|
||||
drop
|
||||
end
|
||||
local.get $0
|
||||
global.get $~lib/allocator/tlsf/Block.MAX_SIZE
|
||||
i32.gt_u
|
||||
if
|
||||
unreachable
|
||||
end
|
||||
local.get $0
|
||||
i32.const 7
|
||||
i32.add
|
||||
i32.const 7
|
||||
i32.const -1
|
||||
i32.xor
|
||||
i32.and
|
||||
local.tee $4
|
||||
global.get $~lib/allocator/tlsf/Block.MIN_SIZE
|
||||
local.tee $3
|
||||
local.get $4
|
||||
local.get $3
|
||||
i32.gt_u
|
||||
select
|
||||
local.set $0
|
||||
local.get $1
|
||||
local.get $0
|
||||
call $~lib/allocator/tlsf/Root#search
|
||||
local.set $7
|
||||
local.get $7
|
||||
i32.eqz
|
||||
if
|
||||
current_memory
|
||||
local.set $4
|
||||
local.get $0
|
||||
i32.const 65535
|
||||
i32.add
|
||||
i32.const 65535
|
||||
i32.const -1
|
||||
i32.xor
|
||||
i32.and
|
||||
i32.const 16
|
||||
i32.shr_u
|
||||
local.set $3
|
||||
local.get $4
|
||||
local.tee $2
|
||||
local.get $3
|
||||
local.tee $5
|
||||
local.get $2
|
||||
local.get $5
|
||||
i32.gt_s
|
||||
select
|
||||
local.set $2
|
||||
local.get $2
|
||||
grow_memory
|
||||
i32.const 0
|
||||
i32.lt_s
|
||||
if
|
||||
local.get $3
|
||||
grow_memory
|
||||
i32.const 0
|
||||
i32.lt_s
|
||||
if
|
||||
local.get $3
|
||||
grow_memory
|
||||
i32.const 0
|
||||
i32.lt_s
|
||||
if
|
||||
unreachable
|
||||
end
|
||||
end
|
||||
current_memory
|
||||
local.set $7
|
||||
local.get $2
|
||||
local.get $4
|
||||
i32.const 16
|
||||
i32.shl
|
||||
local.get $7
|
||||
i32.const 16
|
||||
i32.shl
|
||||
call $~lib/allocator/tlsf/Root#addMemory
|
||||
drop
|
||||
local.get $2
|
||||
local.get $1
|
||||
call $~lib/allocator/tlsf/Root#search
|
||||
local.tee $8
|
||||
i32.eqz
|
||||
if (result i32)
|
||||
i32.const 0
|
||||
i32.const 16
|
||||
i32.const 472
|
||||
i32.const 12
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
else
|
||||
local.get $8
|
||||
end
|
||||
local.set $5
|
||||
end
|
||||
local.get $5
|
||||
i32.load
|
||||
global.get $~lib/allocator/tlsf/TAGS
|
||||
i32.const -1
|
||||
i32.xor
|
||||
i32.and
|
||||
current_memory
|
||||
local.set $5
|
||||
local.get $1
|
||||
i32.ge_u
|
||||
local.get $4
|
||||
i32.const 16
|
||||
i32.shl
|
||||
local.get $5
|
||||
i32.const 16
|
||||
i32.shl
|
||||
call $~lib/allocator/tlsf/Root#addMemory
|
||||
drop
|
||||
local.get $1
|
||||
local.get $0
|
||||
call $~lib/allocator/tlsf/Root#search
|
||||
local.tee $6
|
||||
i32.eqz
|
||||
if
|
||||
if (result i32)
|
||||
i32.const 0
|
||||
i32.const 16
|
||||
i32.const 475
|
||||
i32.const 2
|
||||
i32.const 472
|
||||
i32.const 12
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
else
|
||||
local.get $6
|
||||
end
|
||||
local.get $2
|
||||
local.get $5
|
||||
local.get $1
|
||||
call $~lib/allocator/tlsf/Root#use
|
||||
local.set $7
|
||||
end
|
||||
local.get $7
|
||||
i32.load
|
||||
global.get $~lib/allocator/tlsf/TAGS
|
||||
i32.const -1
|
||||
i32.xor
|
||||
i32.and
|
||||
local.get $0
|
||||
i32.ge_u
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 16
|
||||
i32.const 475
|
||||
i32.const 2
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
end
|
||||
local.get $1
|
||||
local.get $7
|
||||
local.get $0
|
||||
call $~lib/allocator/tlsf/Root#use
|
||||
)
|
||||
(func $~lib/memory/memory.allocate (; 23 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
local.get $0
|
||||
call $~lib/allocator/tlsf/__mem_allocate
|
||||
return
|
||||
)
|
||||
(func $~lib/memory/memory.free (; 23 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(func $~lib/allocator/tlsf/__mem_free (; 24 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(local $1 i32)
|
||||
(local $2 i32)
|
||||
(local $3 i32)
|
||||
(local $4 i32)
|
||||
local.get $0
|
||||
local.set $1
|
||||
local.get $1
|
||||
if
|
||||
global.get $~lib/allocator/tlsf/ROOT
|
||||
local.set $2
|
||||
local.get $2
|
||||
local.set $1
|
||||
local.get $1
|
||||
if
|
||||
local.get $1
|
||||
local.get $0
|
||||
global.get $~lib/allocator/tlsf/Block.INFO
|
||||
i32.sub
|
||||
local.set $2
|
||||
local.get $2
|
||||
i32.load
|
||||
local.set $3
|
||||
local.get $3
|
||||
i32.load
|
||||
local.set $4
|
||||
local.get $4
|
||||
global.get $~lib/allocator/tlsf/FREE
|
||||
i32.and
|
||||
i32.eqz
|
||||
@ -1465,23 +1474,32 @@
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
end
|
||||
local.get $2
|
||||
local.get $3
|
||||
local.get $4
|
||||
global.get $~lib/allocator/tlsf/FREE
|
||||
i32.or
|
||||
i32.store
|
||||
local.get $2
|
||||
local.get $1
|
||||
local.get $0
|
||||
global.get $~lib/allocator/tlsf/Block.INFO
|
||||
i32.sub
|
||||
call $~lib/allocator/tlsf/Root#insert
|
||||
end
|
||||
end
|
||||
)
|
||||
(func $~lib/memory/memory.reset (; 24 ;) (type $FUNCSIG$v)
|
||||
(func $~lib/memory/memory.free (; 25 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
local.get $0
|
||||
call $~lib/allocator/tlsf/__mem_free
|
||||
)
|
||||
(func $~lib/memory/memory.reset (; 26 ;) (type $FUNCSIG$v)
|
||||
i32.const 0
|
||||
i32.const 72
|
||||
i32.const 77
|
||||
i32.const 9
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
)
|
||||
(func $~lib/util/memory/memcpy (; 25 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
|
||||
(func $~lib/util/memory/memcpy (; 27 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
|
||||
(local $3 i32)
|
||||
(local $4 i32)
|
||||
(local $5 i32)
|
||||
@ -2682,7 +2700,7 @@
|
||||
i32.store8
|
||||
end
|
||||
)
|
||||
(func $~lib/memory/memory.copy (; 26 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
|
||||
(func $~lib/memory/memory.copy (; 28 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
|
||||
(local $3 i32)
|
||||
(local $4 i32)
|
||||
(local $5 i32)
|
||||
@ -2913,7 +2931,7 @@
|
||||
end
|
||||
end
|
||||
)
|
||||
(func $~lib/memory/memory.repeat (; 27 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32)
|
||||
(func $~lib/memory/memory.repeat (; 29 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32)
|
||||
(local $4 i32)
|
||||
(local $5 i32)
|
||||
i32.const 0
|
||||
@ -2945,7 +2963,7 @@
|
||||
end
|
||||
end
|
||||
)
|
||||
(func $~lib/memory/memory.compare (; 28 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
|
||||
(func $~lib/memory/memory.compare (; 30 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
|
||||
(local $3 i32)
|
||||
(local $4 i32)
|
||||
(local $5 i32)
|
||||
@ -3010,9 +3028,9 @@
|
||||
end
|
||||
end
|
||||
)
|
||||
(func $start (; 29 ;) (type $FUNCSIG$v)
|
||||
(func $start (; 31 ;) (type $FUNCSIG$v)
|
||||
call $start:assembly/index
|
||||
)
|
||||
(func $null (; 30 ;) (type $FUNCSIG$v)
|
||||
(func $null (; 32 ;) (type $FUNCSIG$v)
|
||||
)
|
||||
)
|
||||
|
Loading…
x
Reference in New Issue
Block a user