mirror of
https://github.com/fluencelabs/assemblyscript
synced 2025-06-23 11:41:45 +00:00
alias locals when inlining a tail call
This commit is contained in:
@ -37,7 +37,7 @@
|
||||
(export "memory" (memory $0))
|
||||
(export "table" (table $0))
|
||||
(start $start)
|
||||
(func $~lib/runtime/adjustToBlock (; 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
|
||||
@ -137,7 +137,7 @@
|
||||
(func $~lib/runtime/doAllocate (; 3 ;) (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
|
||||
@ -196,261 +196,252 @@
|
||||
(func $~lib/memory/memory.fill (; 7 ;) (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
|
||||
|
Reference in New Issue
Block a user