assemblyscript/tests/allocators/buddy/buddy.optimized.wat

1585 lines
35 KiB
Plaintext
Raw Normal View History

(module
(type $ii (func (param i32) (result i32)))
(type $iv (func (param i32)))
(type $iiv (func (param i32 i32)))
(type $iii (func (param i32 i32) (result i32)))
2018-02-19 23:07:35 +01:00
(type $iiiv (func (param i32 i32 i32)))
(type $v (func))
(global $assembly/buddy/BUCKET_START (mut i32) (i32.const 0))
(global $assembly/buddy/BUCKET_END (mut i32) (i32.const 0))
(global $assembly/buddy/bucket_limit (mut i32) (i32.const 0))
(global $assembly/buddy/SPLIT_START (mut i32) (i32.const 0))
(global $assembly/buddy/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 $HEAP_BASE i32 (i32.const 4))
(memory $0 1)
(export "allocate_memory" (func $assembly/buddy/allocate_memory))
(export "free_memory" (func $assembly/buddy/free_memory))
2018-02-19 23:07:35 +01:00
(export "set_memory" (func "$(lib)/memory/set_memory"))
(export "memory" (memory $0))
(start $start)
(func $assembly/buddy/update_max_ptr (; 0 ;) (type $ii) (param $0 i32) (result i32)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:170:2
(if
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:170:6
(i32.gt_u
(get_local $0)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:170:18
(get_global $assembly/buddy/max_ptr)
)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:170:27
(block
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:172:4
(if
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:172:8
(i32.lt_s
(grow_memory
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:171:16
(i32.shr_u
(i32.and
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:171:17
(i32.add
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:171:18
(i32.sub
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:171:19
(get_local $0)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:171:31
(get_global $assembly/buddy/max_ptr)
)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:171:42
(i32.const 65535)
)
(i32.const -65536)
)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:171:65
(i32.const 16)
)
)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:172:29
(i32.const 0)
)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:173:13
(return
(i32.const 0)
)
)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:175:4
(set_global $assembly/buddy/max_ptr
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:175:14
(get_local $0)
)
)
)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:177:9
(i32.const 1)
)
(func $assembly/buddy/get_bucket (; 1 ;) (type $ii) (param $0 i32) (result i32)
;;@ assembly/buddy.ts:97:9
2018-02-19 22:45:31 +01:00
(i32.add
;;@ assembly/buddy.ts:97:26
(get_global $assembly/buddy/BUCKET_START)
;;@ assembly/buddy.ts:97:41
(i32.mul
(get_local $0)
;;@ assembly/buddy.ts:97:49
(i32.const 8)
)
)
)
(func $assembly/buddy/list_init (; 2 ;) (type $iv) (param $0 i32)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:186:2
(i32.store
(get_local $0)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:186:14
(get_local $0)
)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:187:2
(i32.store offset=4
(get_local $0)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:187:14
(get_local $0)
)
)
(func $assembly/buddy/list_push (; 3 ;) (type $iiv) (param $0 i32) (param $1 i32)
(local $2 i32)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:196:2
(i32.store
(get_local $1)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:195:2
(tee_local $2
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:195:13
(i32.load
(get_local $0)
)
)
)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:197:2
(i32.store offset=4
(get_local $1)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:197:15
(get_local $0)
)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:198:2
(i32.store offset=4
(get_local $2)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:198:14
(get_local $1)
)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:199:2
(i32.store
(get_local $0)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:199:14
(get_local $1)
)
)
(func $assembly/buddy/bucket_for_request (; 4 ;) (type $ii) (param $0 i32) (result i32)
(local $1 i32)
(local $2 i32)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:266:2
(set_local $1
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:266:15
(i32.const 27)
)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:267:2
(set_local $2
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:267:13
(i32.const 16)
)
(loop $continue|0
(if
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:269:9
(i32.lt_u
(get_local $2)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:269:16
(get_local $0)
)
(block
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:270:4
(set_local $1
(i32.sub
(get_local $1)
(i32.const 1)
)
)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:271:4
(set_local $2
(i32.mul
(get_local $2)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:271:12
(i32.const 2)
)
)
(br $continue|0)
)
)
)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:274:9
(get_local $1)
)
(func $assembly/buddy/node_for_ptr (; 5 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:241:9
(i32.sub
(i32.add
(i32.shr_u
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:241:10
(i32.sub
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:241:11
(get_local $0)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:241:17
(get_global $assembly/buddy/base_ptr)
)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:241:30
(i32.sub
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:241:31
(i32.const 31)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:241:48
(get_local $1)
)
)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:241:59
(i32.shl
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:241:60
(i32.const 1)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:241:65
(get_local $1)
)
)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:241:75
(i32.const 1)
)
)
(func $assembly/buddy/node_is_split (; 6 ;) (type $ii) (param $0 i32) (result i32)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:143:9
(i32.load8_u
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:143:18
(i32.add
(get_global $assembly/buddy/SPLIT_START)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:143:32
(get_local $0)
)
)
)
(func $assembly/buddy/parent_is_split (; 7 ;) (type $ii) (param $0 i32) (result i32)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:249:9
(i32.and
(i32.shr_s
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:249:10
(call $assembly/buddy/node_is_split
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:249:24
(i32.div_u
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:248:2
(tee_local $0
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:248:10
(i32.div_u
(i32.sub
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:248:11
(get_local $0)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:248:19
(i32.const 1)
)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:248:24
(i32.const 2)
)
)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:249:32
(i32.const 8)
)
)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:249:38
(i32.rem_u
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:249:44
(get_local $0)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:249:52
(i32.const 8)
)
)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:249:58
(i32.const 1)
)
)
(func $assembly/buddy/list_remove (; 8 ;) (type $iv) (param $0 i32)
(local $1 i32)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:211:2
(i32.store offset=4
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:209:2
(tee_local $1
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:209:13
(i32.load
(get_local $0)
)
)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:210:2
(tee_local $0
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:210:13
(i32.load offset=4
(get_local $0)
)
)
)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:212:2
(i32.store
(get_local $0)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:212:14
(get_local $1)
)
)
(func $assembly/buddy/ptr_for_node (; 9 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:232:9
(i32.add
(get_global $assembly/buddy/base_ptr)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:232:20
(i32.shl
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:232:21
(i32.add
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:232:22
(i32.sub
(get_local $0)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:232:30
(i32.shl
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:232:31
(i32.const 1)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:232:36
(get_local $1)
)
)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:232:46
(i32.const 1)
)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:232:52
(i32.sub
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:232:53
(i32.const 31)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:232:70
(get_local $1)
)
)
)
)
(func $assembly/buddy/flip_parent_is_split (; 10 ;) (type $iv) (param $0 i32)
(local $1 i32)
(local $2 i32)
(set_local $2
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:257:2
(tee_local $1
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:257:18
(i32.div_u
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:256:2
(tee_local $0
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:256:10
(i32.div_u
(i32.sub
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:256:11
(get_local $0)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:256:19
(i32.const 1)
)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:256:24
(i32.const 2)
)
)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:257:26
(i32.const 8)
)
)
)
(set_local $0
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:258:28
(i32.xor
(call $assembly/buddy/node_is_split
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:258:42
(get_local $1)
)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:258:55
(i32.shl
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:258:61
(i32.const 1)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:258:66
(i32.rem_u
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:258:67
(get_local $0)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:258:75
(i32.const 8)
)
)
)
)
(i32.store8
(i32.add
(get_global $assembly/buddy/SPLIT_START)
(get_local $2)
)
(get_local $0)
)
)
(func $assembly/buddy/lower_bucket_limit (; 11 ;) (type $ii) (param $0 i32) (result i32)
(local $1 i32)
(local $2 i32)
(loop $continue|0
(if
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:283:9
(i32.lt_u
(get_local $0)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:283:18
(get_global $assembly/buddy/bucket_limit)
)
(block
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:293:4
(if
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:293:8
(i32.eqz
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:293:9
(call $assembly/buddy/parent_is_split
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:284:4
(tee_local $1
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:284:15
(call $assembly/buddy/node_for_ptr
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:284:28
(get_global $assembly/buddy/base_ptr)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:284:38
(get_global $assembly/buddy/bucket_limit)
)
)
)
)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:293:32
(block
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:294:6
(call $assembly/buddy/list_remove
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:294:18
(get_global $assembly/buddy/base_ptr)
)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:295:6
(call $assembly/buddy/list_init
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:295:16
(call $assembly/buddy/get_bucket
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:295:27
(block (result i32)
(set_global $assembly/buddy/bucket_limit
(i32.sub
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:295:29
(get_global $assembly/buddy/bucket_limit)
(i32.const 1)
)
)
(get_global $assembly/buddy/bucket_limit)
)
)
)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:296:6
(call $assembly/buddy/list_push
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:296:16
(call $assembly/buddy/get_bucket
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:296:27
(get_global $assembly/buddy/bucket_limit)
)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:296:42
(get_global $assembly/buddy/base_ptr)
)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:297:6
(br $continue|0)
)
)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:309:4
(if
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:309:8
(i32.eqz
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:309:9
(call $assembly/buddy/update_max_ptr
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:309:24
(i32.add
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:308:4
(tee_local $2
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:308:18
(call $assembly/buddy/ptr_for_node
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:308:31
(i32.add
(get_local $1)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:308:38
(i32.const 1)
)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:308:41
(get_global $assembly/buddy/bucket_limit)
)
)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:309:38
(i32.const 8)
)
)
)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:310:13
(return
(i32.const 0)
)
)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:312:4
(call $assembly/buddy/list_push
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:312:14
(call $assembly/buddy/get_bucket
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:312:25
(get_global $assembly/buddy/bucket_limit)
)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:312:40
(get_local $2)
)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:313:4
(call $assembly/buddy/list_init
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:313:14
(call $assembly/buddy/get_bucket
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:313:25
(block (result i32)
(set_global $assembly/buddy/bucket_limit
(i32.sub
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:313:27
(get_global $assembly/buddy/bucket_limit)
(i32.const 1)
)
)
(get_global $assembly/buddy/bucket_limit)
)
)
)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:320:4
(if
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:319:4
(tee_local $1
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:319:11
(i32.div_u
(i32.sub
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:319:12
(get_local $1)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:319:19
(i32.const 1)
)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:319:24
(i32.const 2)
)
)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:321:6
(call $assembly/buddy/flip_parent_is_split
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:321:27
(get_local $1)
)
)
(br $continue|0)
)
)
)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:325:9
(i32.const 1)
)
(func $assembly/buddy/list_pop (; 12 ;) (type $ii) (param $0 i32) (result i32)
(local $1 i32)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:220:2
(if
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:220:6
(i32.eq
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:219:2
(tee_local $1
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:219:13
(i32.load
(get_local $0)
)
)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:220:14
(get_local $0)
)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:220:27
(return
(i32.const 0)
)
)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:221:2
(call $assembly/buddy/list_remove
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:221:14
(get_local $1)
)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:222:9
(get_local $1)
)
(func $assembly/buddy/allocate_memory (; 13 ;) (type $ii) (param $0 i32) (result i32)
(local $1 i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:339:2
(if
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:339:6
(i32.gt_u
(i32.add
(get_local $0)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:339:16
(i32.const 8)
)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:339:30
(i32.const -2147483648)
)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:340:11
(return
(i32.const 0)
)
)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:348:2
(if
(i32.eqz
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:348:6
(get_global $assembly/buddy/base_ptr)
)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:348:21
(block
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:349:4
(set_global $assembly/buddy/base_ptr
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:349:15
(get_global $assembly/buddy/SPLIT_END)
)
;;@ assembly/buddy.ts:350:4
(set_global $assembly/buddy/max_ptr
;;@ assembly/buddy.ts:350:14
(i32.shl
(current_memory)
;;@ assembly/buddy.ts:350:41
(i32.const 16)
)
)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:351:4
(set_global $assembly/buddy/bucket_limit
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:351:19
(i32.const 27)
)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:352:4
(drop
(call $assembly/buddy/update_max_ptr
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:352:19
(i32.add
(get_global $assembly/buddy/base_ptr)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:352:30
(i32.const 8)
)
)
)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:353:4
(call $assembly/buddy/list_init
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:353:14
(call $assembly/buddy/get_bucket
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:353:25
(i32.const 27)
)
)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:354:4
(call $assembly/buddy/list_push
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:354:14
(call $assembly/buddy/get_bucket
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:354:25
(i32.const 27)
)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:354:44
(get_global $assembly/buddy/base_ptr)
)
)
)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:362:2
(set_local $4
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:361:2
(tee_local $1
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:361:11
(call $assembly/buddy/bucket_for_request
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:361:30
(i32.add
(get_local $0)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:361:40
(i32.const 8)
)
)
)
)
(loop $continue|0
(if
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:369:9
(i32.add
(get_local $1)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:369:18
(i32.const 1)
)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:369:26
(block
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:377:4
(if
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:377:8
(i32.eqz
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:377:9
(call $assembly/buddy/lower_bucket_limit
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:377:28
(get_local $1)
)
)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:378:13
(return
(i32.const 0)
)
)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:386:4
(if
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:386:8
(i32.eqz
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:385:4
(tee_local $2
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:385:10
(call $assembly/buddy/list_pop
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:385:37
(call $assembly/buddy/get_bucket
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:385:48
(get_local $1)
)
)
)
)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:386:14
(block
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:391:6
(if
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:391:10
(i32.and
(if (result i32)
(tee_local $2
(i32.ne
(get_local $1)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:391:20
(get_global $assembly/buddy/bucket_limit)
)
)
(get_local $2)
(i32.eqz
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:391:36
(get_local $1)
)
)
(i32.const 1)
)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:391:49
(block
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:392:8
(set_local $1
(i32.sub
(get_local $1)
(i32.const 1)
)
)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:393:8
(br $continue|0)
)
)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:403:6
(if
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:403:10
(i32.eqz
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:403:11
(call $assembly/buddy/lower_bucket_limit
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:403:30
(i32.sub
(get_local $1)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:403:39
(i32.const 1)
)
)
)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:404:15
(return
(i32.const 0)
)
)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:406:6
(set_local $2
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:406:12
(call $assembly/buddy/list_pop
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:406:39
(call $assembly/buddy/get_bucket
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:406:50
(get_local $1)
)
)
)
)
)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:413:4
(set_local $3
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:413:11
(i32.shl
(i32.const 1)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:413:16
(i32.sub
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:413:17
(i32.const 31)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:413:34
(get_local $1)
)
)
)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:415:4
(if
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:415:8
(i32.eqz
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:415:9
(call $assembly/buddy/update_max_ptr
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:415:24
(i32.add
(get_local $2)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:414:19
(if (result i32)
(i32.lt_u
(get_local $1)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:414:28
(get_local $4)
)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:414:46
(i32.add
(i32.div_u
(get_local $3)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:414:53
(i32.const 2)
)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:414:57
(i32.const 8)
)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:414:69
(get_local $3)
)
)
)
)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:415:45
(block
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:416:6
(call $assembly/buddy/list_push
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:416:16
(call $assembly/buddy/get_bucket
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:416:27
(get_local $1)
)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:416:36
(get_local $2)
)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:417:13
(return
(i32.const 0)
)
)
)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:432:4
(if
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:431:4
(tee_local $3
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:431:8
(call $assembly/buddy/node_for_ptr
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:431:21
(get_local $2)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:431:26
(get_local $1)
)
)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:433:6
(call $assembly/buddy/flip_parent_is_split
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:433:27
(get_local $3)
)
)
(loop $continue|1
(if
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:443:11
(i32.lt_u
(get_local $1)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:443:20
(get_local $4)
)
(block
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:446:6
(call $assembly/buddy/flip_parent_is_split
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:444:6
(tee_local $3
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:444:10
(i32.add
(i32.mul
(get_local $3)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:444:14
(i32.const 2)
)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:444:18
(i32.const 1)
)
)
)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:447:6
(call $assembly/buddy/list_push
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:447:16
(call $assembly/buddy/get_bucket
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:445:6
(tee_local $1
(i32.add
(get_local $1)
(i32.const 1)
)
)
)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:447:36
(call $assembly/buddy/ptr_for_node
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:447:66
(i32.add
(get_local $3)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:447:70
(i32.const 1)
)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:447:73
(get_local $1)
)
)
(br $continue|1)
)
)
)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:454:4
(i32.store
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:454:17
(get_local $2)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:454:22
(get_local $0)
)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:455:17
(return
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:455:11
(i32.add
(get_local $2)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:455:17
(i32.const 8)
)
)
)
)
)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:458:9
(i32.const 0)
)
(func $assembly/buddy/free_memory (; 14 ;) (type $iv) (param $0 i32)
(local $1 i32)
(local $2 i32)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:468:2
(if
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:468:6
(i32.eqz
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:468:7
(get_local $0)
)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:469:4
(return)
)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:478:2
(set_local $1
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:478:11
(call $assembly/buddy/bucket_for_request
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:478:30
(i32.add
(i32.load
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:477:2
(tee_local $0
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:477:8
(i32.sub
(get_local $0)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:477:14
(i32.const 8)
)
)
)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:478:49
(i32.const 8)
)
)
)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:479:2
(set_local $0
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:479:6
(call $assembly/buddy/node_for_ptr
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:479:19
(get_local $0)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:479:24
(get_local $1)
)
)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:485:2
(block $break|0
(loop $continue|0
(if
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:485:9
(get_local $0)
(block
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:492:4
(call $assembly/buddy/flip_parent_is_split
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:492:25
(get_local $0)
)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:503:6
(br_if $break|0
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:502:8
(if (result i32)
(tee_local $2
(call $assembly/buddy/parent_is_split
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:502:24
(get_local $0)
)
)
(get_local $2)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:502:30
(i32.eq
(get_local $1)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:502:40
(get_global $assembly/buddy/bucket_limit)
)
)
)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:513:4
(call $assembly/buddy/list_remove
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:513:16
(call $assembly/buddy/ptr_for_node
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:513:46
(i32.add
(i32.xor
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:513:47
(i32.sub
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:513:48
(get_local $0)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:513:52
(i32.const 1)
)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:513:57
(i32.const 1)
)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:513:62
(i32.const 1)
)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:513:65
(get_local $1)
)
)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:514:4
(set_local $0
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:514:8
(i32.div_u
(i32.sub
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:514:9
(get_local $0)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:514:13
(i32.const 1)
)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:514:18
(i32.const 2)
)
)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:515:4
(set_local $1
(i32.sub
(get_local $1)
(i32.const 1)
)
)
(br $continue|0)
)
)
)
)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:524:2
(call $assembly/buddy/list_push
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:524:12
(call $assembly/buddy/get_bucket
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:524:23
(get_local $1)
)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:524:32
(call $assembly/buddy/ptr_for_node
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:524:62
(get_local $0)
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:524:65
(get_local $1)
)
)
)
2018-02-19 23:07:35 +01:00
(func "$(lib)/memory/set_memory" (; 15 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i64)
(local $4 i32)
;;@ (lib)/memory.ts:196:2
(if
;;@ (lib)/memory.ts:196:6
(i32.eqz
;;@ (lib)/memory.ts:196:7
(get_local $2)
)
;;@ (lib)/memory.ts:197:4
(return)
)
;;@ (lib)/memory.ts:198:2
(i32.store8
;;@ (lib)/memory.ts:198:12
(get_local $0)
;;@ (lib)/memory.ts:198:18
(get_local $1)
)
;;@ (lib)/memory.ts:199:2
(i32.store8
;;@ (lib)/memory.ts:199:12
(i32.sub
(i32.add
(get_local $0)
;;@ (lib)/memory.ts:199:19
(get_local $2)
)
;;@ (lib)/memory.ts:199:23
(i32.const 1)
)
;;@ (lib)/memory.ts:199:26
(get_local $1)
)
;;@ (lib)/memory.ts:200:2
(if
;;@ (lib)/memory.ts:200:6
(i32.le_u
(get_local $2)
;;@ (lib)/memory.ts:200:11
(i32.const 2)
)
;;@ (lib)/memory.ts:201:4
(return)
)
;;@ (lib)/memory.ts:203:2
(i32.store8
;;@ (lib)/memory.ts:203:12
(i32.add
(get_local $0)
;;@ (lib)/memory.ts:203:19
(i32.const 1)
)
;;@ (lib)/memory.ts:203:22
(get_local $1)
)
;;@ (lib)/memory.ts:204:2
(i32.store8
;;@ (lib)/memory.ts:204:12
(i32.add
(get_local $0)
;;@ (lib)/memory.ts:204:19
(i32.const 2)
)
;;@ (lib)/memory.ts:204:22
(get_local $1)
)
;;@ (lib)/memory.ts:205:2
(i32.store8
;;@ (lib)/memory.ts:205:12
(i32.sub
(i32.add
(get_local $0)
;;@ (lib)/memory.ts:205:19
(get_local $2)
)
;;@ (lib)/memory.ts:205:23
(i32.const 2)
)
;;@ (lib)/memory.ts:205:26
(get_local $1)
)
;;@ (lib)/memory.ts:206:2
(i32.store8
;;@ (lib)/memory.ts:206:12
(i32.sub
(i32.add
(get_local $0)
;;@ (lib)/memory.ts:206:19
(get_local $2)
)
;;@ (lib)/memory.ts:206:23
(i32.const 3)
)
;;@ (lib)/memory.ts:206:26
(get_local $1)
)
;;@ (lib)/memory.ts:207:2
(if
;;@ (lib)/memory.ts:207:6
(i32.le_u
(get_local $2)
;;@ (lib)/memory.ts:207:11
(i32.const 6)
)
;;@ (lib)/memory.ts:208:4
(return)
)
;;@ (lib)/memory.ts:209:2
(i32.store8
;;@ (lib)/memory.ts:209:12
(i32.add
(get_local $0)
;;@ (lib)/memory.ts:209:19
(i32.const 3)
)
;;@ (lib)/memory.ts:209:22
(get_local $1)
)
;;@ (lib)/memory.ts:210:2
(i32.store8
;;@ (lib)/memory.ts:210:12
(i32.sub
(i32.add
(get_local $0)
;;@ (lib)/memory.ts:210:19
(get_local $2)
)
;;@ (lib)/memory.ts:210:23
(i32.const 4)
)
;;@ (lib)/memory.ts:210:26
(get_local $1)
)
;;@ (lib)/memory.ts:211:2
(if
;;@ (lib)/memory.ts:211:6
(i32.le_u
(get_local $2)
;;@ (lib)/memory.ts:211:11
(i32.const 8)
)
;;@ (lib)/memory.ts:212:4
(return)
)
;;@ (lib)/memory.ts:223:2
(i32.store
;;@ (lib)/memory.ts:216:2
(tee_local $0
(i32.add
(get_local $0)
;;@ (lib)/memory.ts:215:2
(tee_local $4
;;@ (lib)/memory.ts:215:17
(i32.and
(i32.sub
(i32.const 0)
;;@ (lib)/memory.ts:215:18
(get_local $0)
)
;;@ (lib)/memory.ts:215:25
(i32.const 3)
)
)
)
)
;;@ (lib)/memory.ts:220:2
(tee_local $1
;;@ (lib)/memory.ts:220:17
(i32.mul
;;@ (lib)/memory.ts:220:33
(get_local $1)
(i32.const 16843009)
)
)
)
;;@ (lib)/memory.ts:224:2
(i32.store
;;@ (lib)/memory.ts:224:13
(i32.sub
(i32.add
(get_local $0)
;;@ (lib)/memory.ts:218:2
(tee_local $2
(i32.and
(i32.sub
;;@ (lib)/memory.ts:217:2
(get_local $2)
;;@ (lib)/memory.ts:217:7
(get_local $4)
)
;;@ (lib)/memory.ts:218:7
(i32.const -4)
)
)
)
;;@ (lib)/memory.ts:224:24
(i32.const 4)
)
;;@ (lib)/memory.ts:224:27
(get_local $1)
)
;;@ (lib)/memory.ts:225:2
(if
;;@ (lib)/memory.ts:225:6
(i32.le_u
(get_local $2)
;;@ (lib)/memory.ts:225:11
(i32.const 8)
)
;;@ (lib)/memory.ts:226:4
(return)
)
;;@ (lib)/memory.ts:227:2
(i32.store
;;@ (lib)/memory.ts:227:13
(i32.add
(get_local $0)
;;@ (lib)/memory.ts:227:20
(i32.const 4)
)
;;@ (lib)/memory.ts:227:23
(get_local $1)
)
;;@ (lib)/memory.ts:228:2
(i32.store
;;@ (lib)/memory.ts:228:13
(i32.add
(get_local $0)
;;@ (lib)/memory.ts:228:20
(i32.const 8)
)
;;@ (lib)/memory.ts:228:23
(get_local $1)
)
;;@ (lib)/memory.ts:229:2
(i32.store
;;@ (lib)/memory.ts:229:13
(i32.sub
(i32.add
(get_local $0)
;;@ (lib)/memory.ts:229:20
(get_local $2)
)
;;@ (lib)/memory.ts:229:24
(i32.const 12)
)
;;@ (lib)/memory.ts:229:28
(get_local $1)
)
;;@ (lib)/memory.ts:230:2
(i32.store
;;@ (lib)/memory.ts:230:13
(i32.sub
(i32.add
(get_local $0)
;;@ (lib)/memory.ts:230:20
(get_local $2)
)
;;@ (lib)/memory.ts:230:24
(i32.const 8)
)
;;@ (lib)/memory.ts:230:27
(get_local $1)
)
;;@ (lib)/memory.ts:231:2
(if
;;@ (lib)/memory.ts:231:6
(i32.le_u
(get_local $2)
;;@ (lib)/memory.ts:231:11
(i32.const 24)
)
;;@ (lib)/memory.ts:232:4
(return)
)
;;@ (lib)/memory.ts:233:2
(i32.store
;;@ (lib)/memory.ts:233:13
(i32.add
(get_local $0)
;;@ (lib)/memory.ts:233:20
(i32.const 12)
)
;;@ (lib)/memory.ts:233:24
(get_local $1)
)
;;@ (lib)/memory.ts:234:2
(i32.store
;;@ (lib)/memory.ts:234:13
(i32.add
(get_local $0)
;;@ (lib)/memory.ts:234:20
(i32.const 16)
)
;;@ (lib)/memory.ts:234:24
(get_local $1)
)
;;@ (lib)/memory.ts:235:2
(i32.store
;;@ (lib)/memory.ts:235:13
(i32.add
(get_local $0)
;;@ (lib)/memory.ts:235:20
(i32.const 20)
)
;;@ (lib)/memory.ts:235:24
(get_local $1)
)
;;@ (lib)/memory.ts:236:2
(i32.store
;;@ (lib)/memory.ts:236:13
(i32.add
(get_local $0)
;;@ (lib)/memory.ts:236:20
(i32.const 24)
)
;;@ (lib)/memory.ts:236:24
(get_local $1)
)
;;@ (lib)/memory.ts:237:2
(i32.store
;;@ (lib)/memory.ts:237:13
(i32.sub
(i32.add
(get_local $0)
;;@ (lib)/memory.ts:237:20
(get_local $2)
)
;;@ (lib)/memory.ts:237:24
(i32.const 28)
)
;;@ (lib)/memory.ts:237:28
(get_local $1)
)
;;@ (lib)/memory.ts:238:2
(i32.store
;;@ (lib)/memory.ts:238:13
(i32.sub
(i32.add
(get_local $0)
;;@ (lib)/memory.ts:238:20
(get_local $2)
)
;;@ (lib)/memory.ts:238:24
(i32.const 24)
)
;;@ (lib)/memory.ts:238:28
(get_local $1)
)
;;@ (lib)/memory.ts:239:2
(i32.store
;;@ (lib)/memory.ts:239:13
(i32.sub
(i32.add
(get_local $0)
;;@ (lib)/memory.ts:239:20
(get_local $2)
)
;;@ (lib)/memory.ts:239:24
(i32.const 20)
)
;;@ (lib)/memory.ts:239:28
(get_local $1)
)
;;@ (lib)/memory.ts:240:2
(i32.store
;;@ (lib)/memory.ts:240:13
(i32.sub
(i32.add
(get_local $0)
;;@ (lib)/memory.ts:240:20
(get_local $2)
)
;;@ (lib)/memory.ts:240:24
(i32.const 16)
)
;;@ (lib)/memory.ts:240:28
(get_local $1)
)
;;@ (lib)/memory.ts:244:2
(set_local $0
(i32.add
(get_local $0)
;;@ (lib)/memory.ts:243:2
(tee_local $4
;;@ (lib)/memory.ts:243:6
(i32.add
;;@ (lib)/memory.ts:243:11
(i32.and
;;@ (lib)/memory.ts:243:12
(get_local $0)
;;@ (lib)/memory.ts:243:19
(i32.const 4)
)
;;@ (lib)/memory.ts:243:6
(i32.const 24)
)
)
)
)
;;@ (lib)/memory.ts:245:2
(set_local $2
(i32.sub
(get_local $2)
;;@ (lib)/memory.ts:245:7
(get_local $4)
)
)
;;@ (lib)/memory.ts:248:2
(set_local $3
;;@ (lib)/memory.ts:248:17
(i64.or
(i64.extend_u/i32
(get_local $1)
)
;;@ (lib)/memory.ts:248:28
(i64.shl
;;@ (lib)/memory.ts:248:29
(i64.extend_u/i32
(get_local $1)
)
;;@ (lib)/memory.ts:248:41
(i64.const 32)
)
)
)
(loop $continue|0
(if
;;@ (lib)/memory.ts:249:9
(i32.ge_u
(get_local $2)
;;@ (lib)/memory.ts:249:14
(i32.const 32)
)
(block
;;@ (lib)/memory.ts:250:4
(i64.store
;;@ (lib)/memory.ts:250:15
(get_local $0)
;;@ (lib)/memory.ts:250:21
(get_local $3)
)
;;@ (lib)/memory.ts:251:4
(i64.store
;;@ (lib)/memory.ts:251:15
(i32.add
(get_local $0)
;;@ (lib)/memory.ts:251:22
(i32.const 8)
)
;;@ (lib)/memory.ts:251:25
(get_local $3)
)
;;@ (lib)/memory.ts:252:4
(i64.store
;;@ (lib)/memory.ts:252:15
(i32.add
(get_local $0)
;;@ (lib)/memory.ts:252:22
(i32.const 16)
)
;;@ (lib)/memory.ts:252:26
(get_local $3)
)
;;@ (lib)/memory.ts:253:4
(i64.store
;;@ (lib)/memory.ts:253:15
(i32.add
(get_local $0)
;;@ (lib)/memory.ts:253:22
(i32.const 24)
)
;;@ (lib)/memory.ts:253:26
(get_local $3)
)
;;@ (lib)/memory.ts:254:4
(set_local $2
(i32.sub
(get_local $2)
;;@ (lib)/memory.ts:254:9
(i32.const 32)
)
)
;;@ (lib)/memory.ts:255:4
(set_local $0
(i32.add
(get_local $0)
;;@ (lib)/memory.ts:255:12
(i32.const 32)
)
)
(br $continue|0)
)
)
)
)
(func $start (; 16 ;) (type $v)
(set_global $assembly/buddy/BUCKET_START
;;@ assembly/buddy.ts:92:26
(get_global $HEAP_BASE)
)
(set_global $assembly/buddy/BUCKET_END
;;@ assembly/buddy.ts:93:24
(i32.add
(get_global $assembly/buddy/BUCKET_START)
2018-02-19 22:45:31 +01:00
(i32.const 224)
)
)
(set_global $assembly/buddy/SPLIT_START
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:138:25
(get_global $assembly/buddy/BUCKET_END)
)
(set_global $assembly/buddy/SPLIT_END
2018-02-19 22:45:31 +01:00
;;@ assembly/buddy.ts:139:23
(i32.add
(get_global $assembly/buddy/SPLIT_START)
(i32.const 16777216)
)
)
)
)