Rename memory instructions; Rework constant handling

This commit is contained in:
dcodeIO
2018-07-18 23:49:32 +02:00
parent 34e8facfdc
commit a1b75b69b7
170 changed files with 26392 additions and 5185 deletions

View File

@ -1,6 +1,7 @@
(module
(type $ii (func (param i32) (result i32)))
(type $iiiiv (func (param i32 i32 i32 i32)))
(type $i (func (result i32)))
(type $iv (func (param i32)))
(type $iiii (func (param i32 i32 i32) (result i32)))
(type $iiiv (func (param i32 i32 i32)))
@ -21,7 +22,6 @@
(global $std/symbol/key2 (mut i32) (i32.const 0))
(global $std/symbol/key3 (mut i32) (i32.const 0))
(global $std/symbol/key4 (mut i32) (i32.const 0))
(global $HEAP_BASE i32 (i32.const 156))
(memory $0 1)
(data (i32.const 8) "\03\00\00\001\002\003")
(data (i32.const 20) "\0d\00\00\00s\00t\00d\00/\00s\00y\00m\00b\00o\00l\00.\00t\00s")
@ -46,7 +46,15 @@
)
(get_local $0)
)
(func $~lib/allocator/arena/allocate_memory (; 2 ;) (type $ii) (param $0 i32) (result i32)
(func $~lib/memory/memory.size (; 2 ;) (type $i) (result i32)
(current_memory)
)
(func $~lib/memory/memory.grow (; 3 ;) (type $ii) (param $0 i32) (result i32)
(grow_memory
(get_local $0)
)
)
(func $~lib/allocator/arena/__memory_allocate (; 4 ;) (type $ii) (param $0 i32) (result i32)
(local $1 i32)
(local $2 i32)
(local $3 i32)
@ -78,14 +86,14 @@
)
(i32.shl
(tee_local $2
(current_memory)
(call $~lib/memory/memory.size)
)
(i32.const 16)
)
)
(if
(i32.lt_s
(grow_memory
(call $~lib/memory/memory.grow
(select
(get_local $2)
(tee_local $3
@ -113,7 +121,7 @@
)
(if
(i32.lt_s
(grow_memory
(call $~lib/memory/memory.grow
(get_local $3)
)
(i32.const 0)
@ -132,7 +140,12 @@
)
(i32.const 0)
)
(func $~lib/internal/arraybuffer/computeSize (; 3 ;) (type $ii) (param $0 i32) (result i32)
(func $~lib/memory/memory.allocate (; 5 ;) (type $ii) (param $0 i32) (result i32)
(call $~lib/allocator/arena/__memory_allocate
(get_local $0)
)
)
(func $~lib/internal/arraybuffer/computeSize (; 6 ;) (type $ii) (param $0 i32) (result i32)
(i32.shl
(i32.const 1)
(i32.sub
@ -146,7 +159,7 @@
)
)
)
(func $~lib/internal/arraybuffer/allocUnsafe (; 4 ;) (type $ii) (param $0 i32) (result i32)
(func $~lib/internal/arraybuffer/allocUnsafe (; 7 ;) (type $ii) (param $0 i32) (result i32)
(local $1 i32)
(if
(i32.gt_u
@ -165,7 +178,7 @@
)
(i32.store
(tee_local $1
(call $~lib/allocator/arena/allocate_memory
(call $~lib/memory/memory.allocate
(call $~lib/internal/arraybuffer/computeSize
(get_local $0)
)
@ -175,7 +188,7 @@
)
(get_local $1)
)
(func $~lib/memory/set_memory (; 5 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32)
(func $~lib/memory/memset (; 8 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
(local $4 i64)
(if
@ -505,7 +518,14 @@
)
)
)
(func $~lib/arraybuffer/ArrayBuffer#constructor (; 6 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $~lib/memory/memory.fill (; 9 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32)
(call $~lib/memory/memset
(get_local $0)
(get_local $1)
(get_local $2)
)
)
(func $~lib/arraybuffer/ArrayBuffer#constructor (; 10 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(local $3 i32)
(if
(i32.gt_u
@ -534,7 +554,7 @@
(i32.const 1)
)
)
(call $~lib/memory/set_memory
(call $~lib/memory/memory.fill
(i32.add
(get_local $3)
(i32.const 8)
@ -545,7 +565,7 @@
)
(get_local $3)
)
(func $~lib/map/Map<String,usize>#clear (; 7 ;) (type $iv) (param $0 i32)
(func $~lib/map/Map<String,usize>#clear (; 11 ;) (type $iv) (param $0 i32)
(i32.store
(get_local $0)
(call $~lib/arraybuffer/ArrayBuffer#constructor
@ -579,7 +599,7 @@
(i32.const 0)
)
)
(func $~lib/map/Map<String,usize>#constructor (; 8 ;) (type $ii) (param $0 i32) (result i32)
(func $~lib/map/Map<String,usize>#constructor (; 12 ;) (type $ii) (param $0 i32) (result i32)
(if
(i32.eqz
(get_local $0)
@ -587,7 +607,7 @@
(block
(i32.store
(tee_local $0
(call $~lib/allocator/arena/allocate_memory
(call $~lib/memory/memory.allocate
(i32.const 24)
)
)
@ -620,7 +640,7 @@
)
(get_local $0)
)
(func $~lib/internal/hash/hashStr (; 9 ;) (type $ii) (param $0 i32) (result i32)
(func $~lib/internal/hash/hashStr (; 13 ;) (type $ii) (param $0 i32) (result i32)
(local $1 i32)
(local $2 i32)
(local $3 i32)
@ -668,7 +688,8 @@
)
(get_local $2)
)
(func $~lib/memory/compare_memory (; 10 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $~lib/memory/memcmp (; 14 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(local $3 i32)
(if
(i32.eq
(get_local $0)
@ -680,8 +701,13 @@
)
(loop $continue|0
(if
(if (result i32)
(get_local $2)
(tee_local $3
(i32.ne
(get_local $2)
(i32.const 0)
)
)
(set_local $3
(i32.eq
(i32.load8_u
(get_local $0)
@ -690,8 +716,10 @@
(get_local $1)
)
)
(get_local $2)
)
)
(if
(get_local $3)
(block
(set_local $2
(i32.sub
@ -730,7 +758,14 @@
)
)
)
(func $~lib/string/String.__eq (; 11 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/memory/memory.compare (; 15 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(call $~lib/memory/memcmp
(get_local $0)
(get_local $1)
(get_local $2)
)
)
(func $~lib/string/String.__eq (; 16 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
(if
(i32.eq
@ -777,7 +812,7 @@
)
)
(i32.eqz
(call $~lib/memory/compare_memory
(call $~lib/memory/memory.compare
(i32.add
(get_local $0)
(i32.const 4)
@ -793,7 +828,7 @@
)
)
)
(func $~lib/map/Map<String,usize>#find (; 12 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $~lib/map/Map<String,usize>#find (; 17 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(set_local $2
(i32.load offset=8
(i32.add
@ -856,7 +891,7 @@
)
(i32.const 0)
)
(func $~lib/map/Map<String,usize>#has (; 13 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/map/Map<String,usize>#has (; 18 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(i32.ne
(call $~lib/map/Map<String,usize>#find
(get_local $0)
@ -868,7 +903,7 @@
(i32.const 0)
)
)
(func $~lib/map/Map<String,usize>#get (; 14 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/map/Map<String,usize>#get (; 19 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(tee_local $0
(if (result i32)
(tee_local $0
@ -887,7 +922,7 @@
)
)
)
(func $~lib/map/Map<String,usize>#rehash (; 15 ;) (type $iiv) (param $0 i32) (param $1 i32)
(func $~lib/map/Map<String,usize>#rehash (; 20 ;) (type $iiv) (param $0 i32) (param $1 i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@ -1050,7 +1085,7 @@
)
)
)
(func $~lib/map/Map<String,usize>#set (; 16 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32)
(func $~lib/map/Map<String,usize>#set (; 21 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
@ -1187,7 +1222,7 @@
)
)
)
(func $~lib/internal/hash/hash32 (; 17 ;) (type $ii) (param $0 i32) (result i32)
(func $~lib/internal/hash/hash32 (; 22 ;) (type $ii) (param $0 i32) (result i32)
(i32.mul
(i32.xor
(i32.mul
@ -1232,7 +1267,7 @@
(i32.const 16777619)
)
)
(func $~lib/map/Map<usize,String>#find (; 18 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $~lib/map/Map<usize,String>#find (; 23 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(set_local $2
(i32.load offset=8
(i32.add
@ -1295,7 +1330,7 @@
)
(i32.const 0)
)
(func $~lib/map/Map<usize,String>#rehash (; 19 ;) (type $iiv) (param $0 i32) (param $1 i32)
(func $~lib/map/Map<usize,String>#rehash (; 24 ;) (type $iiv) (param $0 i32) (param $1 i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@ -1458,7 +1493,7 @@
)
)
)
(func $~lib/map/Map<usize,String>#set (; 20 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32)
(func $~lib/map/Map<usize,String>#set (; 25 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
@ -1595,7 +1630,7 @@
)
)
)
(func $~lib/symbol/Symbol.for (; 21 ;) (type $ii) (param $0 i32) (result i32)
(func $~lib/symbol/Symbol.for (; 26 ;) (type $ii) (param $0 i32) (result i32)
(local $1 i32)
(if
(get_global $~lib/symbol/stringToId)
@ -1650,7 +1685,7 @@
)
(get_local $1)
)
(func $~lib/map/Map<usize,String>#has (; 22 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/map/Map<usize,String>#has (; 27 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(i32.ne
(call $~lib/map/Map<usize,String>#find
(get_local $0)
@ -1662,7 +1697,7 @@
(i32.const 0)
)
)
(func $~lib/map/Map<usize,String>#get (; 23 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/map/Map<usize,String>#get (; 28 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(tee_local $0
(if (result i32)
(tee_local $0
@ -1681,7 +1716,7 @@
)
)
)
(func $~lib/symbol/Symbol.keyFor (; 24 ;) (type $ii) (param $0 i32) (result i32)
(func $~lib/symbol/Symbol.keyFor (; 29 ;) (type $ii) (param $0 i32) (result i32)
(local $1 i32)
(if
(tee_local $1
@ -1708,15 +1743,9 @@
)
)
)
(func $start (; 25 ;) (type $v)
(func $start (; 30 ;) (type $v)
(set_global $~lib/allocator/arena/startOffset
(i32.and
(i32.add
(get_global $HEAP_BASE)
(i32.const 7)
)
(i32.const -8)
)
(i32.const 160)
)
(set_global $~lib/allocator/arena/offset
(get_global $~lib/allocator/arena/startOffset)