mirror of
https://github.com/fluencelabs/assemblyscript
synced 2025-06-14 15:31:31 +00:00
alias locals when inlining a tail call
This commit is contained in:
@ -35,7 +35,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
|
||||
@ -135,7 +135,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
|
||||
@ -194,261 +194,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
|
||||
|
@ -11,12 +11,18 @@
|
||||
(import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32)))
|
||||
(import "env" "trace" (func $~lib/env/trace (param i32 i32 f64 f64 f64 f64 f64)))
|
||||
(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")
|
||||
(data (i32.const 64) "\01\00\00\00\1c\00\00\00s\00t\00d\00/\00r\00u\00n\00t\00i\00m\00e\00.\00t\00s")
|
||||
(data (i32.const 104) "\01\00\00\00\10\00\00\00b\00a\00r\00r\00i\00e\00r\001")
|
||||
(data (i32.const 128) "\01\00\00\00\10\00\00\00b\00a\00r\00r\00i\00e\00r\002")
|
||||
(data (i32.const 152) "\01\00\00\00\10\00\00\00b\00a\00r\00r\00i\00e\00r\003")
|
||||
(data (i32.const 176) "\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 8) "\01\00\00\00,")
|
||||
(data (i32.const 24) "~\00l\00i\00b\00/\00a\00l\00l\00o\00c\00a\00t\00o\00r\00/\00t\00l\00s\00f\00.\00t\00s")
|
||||
(data (i32.const 72) "\01\00\00\00\1c")
|
||||
(data (i32.const 88) "s\00t\00d\00/\00r\00u\00n\00t\00i\00m\00e\00.\00t\00s")
|
||||
(data (i32.const 120) "\01\00\00\00\10")
|
||||
(data (i32.const 136) "b\00a\00r\00r\00i\00e\00r\001")
|
||||
(data (i32.const 152) "\01\00\00\00\10")
|
||||
(data (i32.const 168) "b\00a\00r\00r\00i\00e\00r\002")
|
||||
(data (i32.const 184) "\01\00\00\00\10")
|
||||
(data (i32.const 200) "b\00a\00r\00r\00i\00e\00r\003")
|
||||
(data (i32.const 216) "\01\00\00\00\1e")
|
||||
(data (i32.const 232) "~\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/tlsf/ROOT (mut i32) (i32.const 0))
|
||||
@ -41,7 +47,7 @@
|
||||
i32.ge_u
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 16
|
||||
i32.const 24
|
||||
i32.const 130
|
||||
i32.const 4
|
||||
call $~lib/env/abort
|
||||
@ -61,7 +67,7 @@
|
||||
i32.ge_u
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 16
|
||||
i32.const 24
|
||||
i32.const 153
|
||||
i32.const 4
|
||||
call $~lib/env/abort
|
||||
@ -72,7 +78,7 @@
|
||||
i32.ge_u
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 16
|
||||
i32.const 24
|
||||
i32.const 154
|
||||
i32.const 4
|
||||
call $~lib/env/abort
|
||||
@ -98,7 +104,7 @@
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 16
|
||||
i32.const 24
|
||||
i32.const 76
|
||||
i32.const 4
|
||||
call $~lib/env/abort
|
||||
@ -116,7 +122,7 @@
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 16
|
||||
i32.const 24
|
||||
i32.const 77
|
||||
i32.const 11
|
||||
call $~lib/env/abort
|
||||
@ -129,7 +135,7 @@
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 16
|
||||
i32.const 24
|
||||
i32.const 414
|
||||
i32.const 2
|
||||
call $~lib/env/abort
|
||||
@ -146,7 +152,7 @@
|
||||
i32.ge_u
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 16
|
||||
i32.const 24
|
||||
i32.const 144
|
||||
i32.const 4
|
||||
call $~lib/env/abort
|
||||
@ -157,7 +163,7 @@
|
||||
i32.ge_u
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 16
|
||||
i32.const 24
|
||||
i32.const 145
|
||||
i32.const 4
|
||||
call $~lib/env/abort
|
||||
@ -180,7 +186,7 @@
|
||||
i32.ge_u
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 16
|
||||
i32.const 24
|
||||
i32.const 124
|
||||
i32.const 4
|
||||
call $~lib/env/abort
|
||||
@ -206,7 +212,7 @@
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 16
|
||||
i32.const 24
|
||||
i32.const 244
|
||||
i32.const 4
|
||||
call $~lib/env/abort
|
||||
@ -229,7 +235,7 @@
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 16
|
||||
i32.const 24
|
||||
i32.const 246
|
||||
i32.const 4
|
||||
call $~lib/env/abort
|
||||
@ -330,7 +336,7 @@
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 16
|
||||
i32.const 24
|
||||
i32.const 68
|
||||
i32.const 4
|
||||
call $~lib/env/abort
|
||||
@ -344,7 +350,7 @@
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 16
|
||||
i32.const 24
|
||||
i32.const 69
|
||||
i32.const 11
|
||||
call $~lib/env/abort
|
||||
@ -360,7 +366,7 @@
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 16
|
||||
i32.const 24
|
||||
i32.const 320
|
||||
i32.const 4
|
||||
call $~lib/env/abort
|
||||
@ -372,7 +378,7 @@
|
||||
i32.ne
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 16
|
||||
i32.const 24
|
||||
i32.const 321
|
||||
i32.const 4
|
||||
call $~lib/env/abort
|
||||
@ -385,7 +391,7 @@
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 16
|
||||
i32.const 24
|
||||
i32.const 322
|
||||
i32.const 4
|
||||
call $~lib/env/abort
|
||||
@ -407,7 +413,7 @@
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 16
|
||||
i32.const 24
|
||||
i32.const 175
|
||||
i32.const 4
|
||||
call $~lib/env/abort
|
||||
@ -421,7 +427,7 @@
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 16
|
||||
i32.const 24
|
||||
i32.const 177
|
||||
i32.const 4
|
||||
call $~lib/env/abort
|
||||
@ -445,7 +451,7 @@
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 16
|
||||
i32.const 24
|
||||
i32.const 179
|
||||
i32.const 4
|
||||
call $~lib/env/abort
|
||||
@ -457,7 +463,7 @@
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 16
|
||||
i32.const 24
|
||||
i32.const 183
|
||||
i32.const 23
|
||||
call $~lib/env/abort
|
||||
@ -499,7 +505,7 @@
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 16
|
||||
i32.const 24
|
||||
i32.const 197
|
||||
i32.const 24
|
||||
call $~lib/env/abort
|
||||
@ -513,7 +519,7 @@
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 16
|
||||
i32.const 24
|
||||
i32.const 199
|
||||
i32.const 6
|
||||
call $~lib/env/abort
|
||||
@ -562,7 +568,7 @@
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 16
|
||||
i32.const 24
|
||||
i32.const 212
|
||||
i32.const 4
|
||||
call $~lib/env/abort
|
||||
@ -641,7 +647,7 @@
|
||||
i32.gt_u
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 16
|
||||
i32.const 24
|
||||
i32.const 363
|
||||
i32.const 4
|
||||
call $~lib/env/abort
|
||||
@ -652,7 +658,7 @@
|
||||
i32.and
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 16
|
||||
i32.const 24
|
||||
i32.const 364
|
||||
i32.const 4
|
||||
call $~lib/env/abort
|
||||
@ -663,7 +669,7 @@
|
||||
i32.and
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 16
|
||||
i32.const 24
|
||||
i32.const 365
|
||||
i32.const 4
|
||||
call $~lib/env/abort
|
||||
@ -680,7 +686,7 @@
|
||||
i32.lt_u
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 16
|
||||
i32.const 24
|
||||
i32.const 370
|
||||
i32.const 6
|
||||
call $~lib/env/abort
|
||||
@ -708,7 +714,7 @@
|
||||
i32.lt_u
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 16
|
||||
i32.const 24
|
||||
i32.const 379
|
||||
i32.const 6
|
||||
call $~lib/env/abort
|
||||
@ -761,7 +767,7 @@
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 16
|
||||
i32.const 24
|
||||
i32.const 408
|
||||
i32.const 2
|
||||
call $~lib/env/abort
|
||||
@ -786,7 +792,7 @@
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 16
|
||||
i32.const 24
|
||||
i32.const 282
|
||||
i32.const 4
|
||||
call $~lib/env/abort
|
||||
@ -866,7 +872,7 @@
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 16
|
||||
i32.const 24
|
||||
i32.const 309
|
||||
i32.const 16
|
||||
call $~lib/env/abort
|
||||
@ -894,7 +900,7 @@
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 16
|
||||
i32.const 24
|
||||
i32.const 334
|
||||
i32.const 4
|
||||
call $~lib/env/abort
|
||||
@ -914,7 +920,7 @@
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 16
|
||||
i32.const 24
|
||||
i32.const 335
|
||||
i32.const 4
|
||||
call $~lib/env/abort
|
||||
@ -925,7 +931,7 @@
|
||||
i32.and
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 16
|
||||
i32.const 24
|
||||
i32.const 336
|
||||
i32.const 4
|
||||
call $~lib/env/abort
|
||||
@ -977,7 +983,7 @@
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 16
|
||||
i32.const 24
|
||||
i32.const 354
|
||||
i32.const 25
|
||||
call $~lib/env/abort
|
||||
@ -1022,14 +1028,14 @@
|
||||
if
|
||||
unreachable
|
||||
end
|
||||
i32.const 216
|
||||
i32.const 264
|
||||
local.set $3
|
||||
i32.const 216
|
||||
i32.const 264
|
||||
global.set $~lib/allocator/tlsf/ROOT
|
||||
i32.const 2912
|
||||
i32.const 0
|
||||
i32.store
|
||||
i32.const 216
|
||||
i32.const 264
|
||||
i32.const 0
|
||||
i32.store
|
||||
i32.const 0
|
||||
@ -1039,7 +1045,7 @@
|
||||
i32.const 22
|
||||
i32.lt_u
|
||||
if
|
||||
i32.const 216
|
||||
i32.const 264
|
||||
local.get $0
|
||||
i32.const 0
|
||||
call $~lib/allocator/tlsf/Root#setSLMap
|
||||
@ -1050,7 +1056,7 @@
|
||||
i32.const 32
|
||||
i32.lt_u
|
||||
if
|
||||
i32.const 216
|
||||
i32.const 264
|
||||
local.get $0
|
||||
local.get $1
|
||||
i32.const 0
|
||||
@ -1069,8 +1075,8 @@
|
||||
br $repeat|0
|
||||
end
|
||||
end
|
||||
i32.const 216
|
||||
i32.const 3136
|
||||
i32.const 264
|
||||
i32.const 3184
|
||||
current_memory
|
||||
i32.const 16
|
||||
i32.shl
|
||||
@ -1140,7 +1146,7 @@
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 16
|
||||
i32.const 24
|
||||
i32.const 467
|
||||
i32.const 12
|
||||
call $~lib/env/abort
|
||||
@ -1155,7 +1161,7 @@
|
||||
i32.lt_u
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 16
|
||||
i32.const 24
|
||||
i32.const 470
|
||||
i32.const 2
|
||||
call $~lib/env/abort
|
||||
@ -1166,7 +1172,7 @@
|
||||
local.get $2
|
||||
call $~lib/allocator/tlsf/Root#use
|
||||
)
|
||||
(func $~lib/runtime/ALLOCATE (; 17 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(func $~lib/runtime/doAllocate (; 17 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(local $1 i32)
|
||||
i32.const 1
|
||||
i32.const 32
|
||||
@ -2094,94 +2100,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
|
||||
@ -2191,26 +2194,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
|
||||
@ -2218,29 +2221,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
|
||||
@ -2248,18 +2251,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
|
||||
@ -2268,16 +2271,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
|
||||
@ -2517,7 +2520,7 @@
|
||||
i32.and
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 16
|
||||
i32.const 24
|
||||
i32.const 483
|
||||
i32.const 6
|
||||
call $~lib/env/abort
|
||||
@ -2536,7 +2539,7 @@
|
||||
end
|
||||
end
|
||||
)
|
||||
(func $~lib/runtime/REALLOCATE (; 22 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
(func $~lib/runtime/doReallocate (; 22 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
(local $2 i32)
|
||||
(local $3 i32)
|
||||
(local $4 i32)
|
||||
@ -2560,7 +2563,7 @@
|
||||
i32.shl
|
||||
i32.const 0
|
||||
local.get $0
|
||||
i32.const 216
|
||||
i32.const 264
|
||||
i32.gt_u
|
||||
select
|
||||
i32.const 1
|
||||
@ -2606,12 +2609,12 @@
|
||||
i32.eq
|
||||
if
|
||||
local.get $0
|
||||
i32.const 216
|
||||
i32.const 264
|
||||
i32.le_u
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 184
|
||||
i32.const 92
|
||||
i32.const 232
|
||||
i32.const 100
|
||||
i32.const 8
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -2641,14 +2644,14 @@
|
||||
i32.store offset=4
|
||||
local.get $0
|
||||
)
|
||||
(func $~lib/runtime/ASSERT_UNREGISTERED (; 23 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(func $~lib/runtime/assertUnregistered (; 23 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
local.get $0
|
||||
i32.const 216
|
||||
i32.const 264
|
||||
i32.le_u
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 184
|
||||
i32.const 145
|
||||
i32.const 232
|
||||
i32.const 188
|
||||
i32.const 2
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -2661,8 +2664,8 @@
|
||||
i32.ne
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 184
|
||||
i32.const 146
|
||||
i32.const 232
|
||||
i32.const 189
|
||||
i32.const 2
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -2673,41 +2676,41 @@
|
||||
(local $1 i32)
|
||||
(local $2 i32)
|
||||
loop $repeat|0
|
||||
local.get $0
|
||||
local.get $1
|
||||
i32.const 9000
|
||||
i32.lt_s
|
||||
if
|
||||
i32.const 1
|
||||
i32.const 32
|
||||
local.get $0
|
||||
local.get $1
|
||||
i32.const 15
|
||||
i32.add
|
||||
i32.clz
|
||||
i32.sub
|
||||
i32.shl
|
||||
local.tee $1
|
||||
local.tee $2
|
||||
i32.const 0
|
||||
i32.ne
|
||||
local.tee $2
|
||||
if (result i32)
|
||||
local.get $1
|
||||
local.tee $0
|
||||
if
|
||||
local.get $2
|
||||
i32.const 1
|
||||
i32.sub
|
||||
local.get $1
|
||||
local.get $2
|
||||
i32.and
|
||||
i32.eqz
|
||||
else
|
||||
local.get $2
|
||||
local.set $0
|
||||
end
|
||||
local.get $0
|
||||
if
|
||||
local.get $0
|
||||
local.get $1
|
||||
i32.const 1
|
||||
i32.add
|
||||
local.set $0
|
||||
local.set $1
|
||||
br $repeat|0
|
||||
else
|
||||
i32.const 0
|
||||
i32.const 72
|
||||
i32.const 88
|
||||
i32.const 31
|
||||
i32.const 2
|
||||
call $~lib/env/abort
|
||||
@ -2726,6 +2729,7 @@
|
||||
i32.const 1
|
||||
i32.const 32
|
||||
global.get $std/runtime/barrier2
|
||||
local.tee $0
|
||||
i32.const 16
|
||||
i32.add
|
||||
i32.clz
|
||||
@ -2733,7 +2737,7 @@
|
||||
i32.shl
|
||||
i32.const 1
|
||||
i32.const 32
|
||||
global.get $std/runtime/barrier2
|
||||
local.get $0
|
||||
i32.const 15
|
||||
i32.add
|
||||
i32.clz
|
||||
@ -2756,6 +2760,7 @@
|
||||
i32.const 1
|
||||
i32.const 32
|
||||
global.get $std/runtime/barrier3
|
||||
local.tee $0
|
||||
i32.const 16
|
||||
i32.add
|
||||
i32.clz
|
||||
@ -2763,7 +2768,7 @@
|
||||
i32.shl
|
||||
i32.const 1
|
||||
i32.const 32
|
||||
global.get $std/runtime/barrier3
|
||||
local.get $0
|
||||
i32.const 15
|
||||
i32.add
|
||||
i32.clz
|
||||
@ -2778,7 +2783,7 @@
|
||||
br $continue|2
|
||||
end
|
||||
end
|
||||
i32.const 112
|
||||
i32.const 136
|
||||
i32.const 1
|
||||
global.get $std/runtime/barrier1
|
||||
f64.convert_i32_u
|
||||
@ -2787,7 +2792,7 @@
|
||||
f64.const 0
|
||||
f64.const 0
|
||||
call $~lib/env/trace
|
||||
i32.const 136
|
||||
i32.const 168
|
||||
i32.const 1
|
||||
global.get $std/runtime/barrier2
|
||||
f64.convert_i32_u
|
||||
@ -2796,7 +2801,7 @@
|
||||
f64.const 0
|
||||
f64.const 0
|
||||
call $~lib/env/trace
|
||||
i32.const 160
|
||||
i32.const 200
|
||||
i32.const 1
|
||||
global.get $std/runtime/barrier3
|
||||
f64.convert_i32_u
|
||||
@ -2806,7 +2811,7 @@
|
||||
f64.const 0
|
||||
call $~lib/env/trace
|
||||
i32.const 1
|
||||
call $~lib/runtime/ALLOCATE
|
||||
call $~lib/runtime/doAllocate
|
||||
global.set $std/runtime/ref1
|
||||
global.get $std/runtime/ref1
|
||||
i32.const 16
|
||||
@ -2818,7 +2823,7 @@
|
||||
i32.ne
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 72
|
||||
i32.const 88
|
||||
i32.const 46
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
@ -2830,21 +2835,23 @@
|
||||
i32.ne
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 72
|
||||
i32.const 88
|
||||
i32.const 47
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
end
|
||||
global.get $std/runtime/ref1
|
||||
local.tee $0
|
||||
local.get $0
|
||||
local.tee $1
|
||||
global.get $std/runtime/barrier1
|
||||
call $~lib/runtime/REALLOCATE
|
||||
call $~lib/runtime/doReallocate
|
||||
local.set $2
|
||||
local.get $1
|
||||
local.get $2
|
||||
i32.ne
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 72
|
||||
i32.const 88
|
||||
i32.const 48
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
@ -2856,7 +2863,7 @@
|
||||
i32.ne
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 72
|
||||
i32.const 88
|
||||
i32.const 49
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
@ -2864,14 +2871,14 @@
|
||||
end
|
||||
global.get $std/runtime/ref1
|
||||
global.get $std/runtime/barrier2
|
||||
call $~lib/runtime/REALLOCATE
|
||||
call $~lib/runtime/doReallocate
|
||||
global.set $std/runtime/ref2
|
||||
global.get $std/runtime/ref1
|
||||
global.get $std/runtime/ref2
|
||||
i32.eq
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 72
|
||||
i32.const 88
|
||||
i32.const 51
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
@ -2887,39 +2894,39 @@
|
||||
i32.ne
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 72
|
||||
i32.const 88
|
||||
i32.const 53
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
end
|
||||
global.get $std/runtime/ref2
|
||||
local.tee $0
|
||||
call $~lib/runtime/ASSERT_UNREGISTERED
|
||||
local.get $0
|
||||
local.tee $1
|
||||
call $~lib/runtime/assertUnregistered
|
||||
local.get $1
|
||||
i32.const 16
|
||||
i32.sub
|
||||
call $~lib/memory/memory.free
|
||||
global.get $std/runtime/barrier2
|
||||
call $~lib/runtime/ALLOCATE
|
||||
call $~lib/runtime/doAllocate
|
||||
global.set $std/runtime/ref3
|
||||
global.get $std/runtime/ref1
|
||||
global.get $std/runtime/ref3
|
||||
i32.ne
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 72
|
||||
i32.const 88
|
||||
i32.const 56
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
end
|
||||
global.get $std/runtime/barrier1
|
||||
call $~lib/runtime/ALLOCATE
|
||||
call $~lib/runtime/doAllocate
|
||||
global.set $std/runtime/ref4
|
||||
global.get $std/runtime/ref4
|
||||
local.tee $0
|
||||
call $~lib/runtime/ASSERT_UNREGISTERED
|
||||
call $~lib/runtime/assertUnregistered
|
||||
local.get $0
|
||||
i32.const 16
|
||||
i32.sub
|
||||
@ -2932,7 +2939,7 @@
|
||||
i32.ne
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 72
|
||||
i32.const 88
|
||||
i32.const 60
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
@ -2948,7 +2955,7 @@
|
||||
i32.ne
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 72
|
||||
i32.const 88
|
||||
i32.const 62
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
@ -2960,14 +2967,14 @@
|
||||
i32.ne
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 72
|
||||
i32.const 88
|
||||
i32.const 63
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
end
|
||||
i32.const 10
|
||||
call $~lib/runtime/ALLOCATE
|
||||
call $~lib/runtime/doAllocate
|
||||
global.set $std/runtime/ref5
|
||||
global.get $std/runtime/ref5
|
||||
i32.const 16
|
||||
@ -2977,7 +2984,7 @@
|
||||
i32.ne
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 72
|
||||
i32.const 88
|
||||
i32.const 66
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
@ -2993,7 +3000,7 @@
|
||||
i32.ne
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 72
|
||||
i32.const 88
|
||||
i32.const 67
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
|
@ -1,5 +1,5 @@
|
||||
import "allocator/tlsf";
|
||||
import { CLASSID, ADJUST, ALLOCATE, REALLOCATE, REGISTER, DISCARD, HEADER, HEADER_SIZE, HEADER_MAGIC } from "runtime";
|
||||
import { CLASSID, ADJUSTOBLOCK, ALLOCATE, REALLOCATE, REGISTER, DISCARD, HEADER, HEADER_SIZE, HEADER_MAGIC } from "runtime";
|
||||
|
||||
var register_ref: usize = 0;
|
||||
|
||||
@ -26,16 +26,16 @@ function isPowerOf2(x: i32): bool {
|
||||
return x != 0 && (x & (x - 1)) == 0;
|
||||
}
|
||||
|
||||
assert(ADJUST(0) > 0);
|
||||
assert(ADJUSTOBLOCK(0) > 0);
|
||||
for (let i = 0; i < 9000; ++i) {
|
||||
assert(isPowerOf2(ADJUST(i)));
|
||||
assert(isPowerOf2(ADJUSTOBLOCK(i)));
|
||||
}
|
||||
|
||||
var barrier1 = ADJUST(0);
|
||||
var barrier1 = ADJUSTOBLOCK(0);
|
||||
var barrier2 = barrier1 + 1;
|
||||
while (ADJUST(barrier2 + 1) == ADJUST(barrier2)) ++barrier2;
|
||||
while (ADJUSTOBLOCK(barrier2 + 1) == ADJUSTOBLOCK(barrier2)) ++barrier2;
|
||||
var barrier3 = barrier2 + 1;
|
||||
while (ADJUST(barrier3 + 1) == ADJUST(barrier3)) ++barrier3;
|
||||
while (ADJUSTOBLOCK(barrier3 + 1) == ADJUSTOBLOCK(barrier3)) ++barrier3;
|
||||
|
||||
trace("barrier1", 1, barrier1);
|
||||
trace("barrier2", 1, barrier2);
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -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
|
||||
|
@ -1571,94 +1571,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
|
||||
@ -1668,26 +1665,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
|
||||
@ -1695,29 +1692,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
|
||||
@ -1725,18 +1722,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
|
||||
@ -1745,16 +1742,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
|
||||
|
@ -245,7 +245,7 @@
|
||||
i32.add
|
||||
i32.load16_u
|
||||
)
|
||||
(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
|
||||
@ -345,7 +345,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
|
||||
@ -2014,87 +2014,78 @@
|
||||
)
|
||||
(func $~lib/memory/memory.copy (; 16 ;) (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
|
||||
@ -2105,27 +2096,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
|
||||
@ -2134,67 +2125,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
|
||||
@ -2205,20 +2196,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
|
||||
@ -2230,16 +2221,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
|
||||
@ -3515,261 +3506,252 @@
|
||||
(func $~lib/memory/memory.fill (; 33 ;) (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
|
||||
@ -3928,10 +3910,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
|
||||
|
@ -2717,94 +2717,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
|
||||
@ -2814,26 +2811,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
|
||||
@ -2841,29 +2838,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
|
||||
@ -2871,18 +2868,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
|
||||
@ -2891,16 +2888,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
|
||||
|
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user