mirror of
https://github.com/fluencelabs/assemblyscript
synced 2025-04-26 23:42:15 +00:00
1084 lines
25 KiB
Plaintext
1084 lines
25 KiB
Plaintext
|
(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)))
|
||
|
(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))
|
||
|
(export "memory" (memory $0))
|
||
|
(start $start)
|
||
|
(func $assembly/buddy/update_max_ptr (; 0 ;) (type $ii) (param $0 i32) (result i32)
|
||
|
;;@ assembly/buddy.ts:175:2
|
||
|
(if
|
||
|
;;@ assembly/buddy.ts:175:6
|
||
|
(i32.gt_u
|
||
|
(get_local $0)
|
||
|
;;@ assembly/buddy.ts:175:18
|
||
|
(get_global $assembly/buddy/max_ptr)
|
||
|
)
|
||
|
;;@ assembly/buddy.ts:175:27
|
||
|
(block
|
||
|
;;@ assembly/buddy.ts:177:4
|
||
|
(if
|
||
|
;;@ assembly/buddy.ts:177:8
|
||
|
(i32.lt_s
|
||
|
(grow_memory
|
||
|
;;@ assembly/buddy.ts:176:16
|
||
|
(i32.shr_u
|
||
|
(i32.and
|
||
|
;;@ assembly/buddy.ts:176:17
|
||
|
(i32.add
|
||
|
;;@ assembly/buddy.ts:176:18
|
||
|
(i32.sub
|
||
|
;;@ assembly/buddy.ts:176:19
|
||
|
(get_local $0)
|
||
|
;;@ assembly/buddy.ts:176:31
|
||
|
(get_global $assembly/buddy/max_ptr)
|
||
|
)
|
||
|
;;@ assembly/buddy.ts:176:42
|
||
|
(i32.const 65535)
|
||
|
)
|
||
|
(i32.const -65536)
|
||
|
)
|
||
|
;;@ assembly/buddy.ts:176:65
|
||
|
(i32.const 16)
|
||
|
)
|
||
|
)
|
||
|
;;@ assembly/buddy.ts:177:29
|
||
|
(i32.const 0)
|
||
|
)
|
||
|
;;@ assembly/buddy.ts:178:13
|
||
|
(return
|
||
|
(i32.const 0)
|
||
|
)
|
||
|
)
|
||
|
;;@ assembly/buddy.ts:180:4
|
||
|
(set_global $assembly/buddy/max_ptr
|
||
|
;;@ assembly/buddy.ts:180:14
|
||
|
(get_local $0)
|
||
|
)
|
||
|
)
|
||
|
)
|
||
|
;;@ assembly/buddy.ts:182:9
|
||
|
(i32.const 1)
|
||
|
)
|
||
|
(func $assembly/buddy/get_bucket (; 1 ;) (type $ii) (param $0 i32) (result i32)
|
||
|
;;@ assembly/buddy.ts:97:9
|
||
|
(i32.load
|
||
|
;;@ assembly/buddy.ts:97:20
|
||
|
(i32.add
|
||
|
(get_global $assembly/buddy/BUCKET_START)
|
||
|
;;@ assembly/buddy.ts:97:35
|
||
|
(i32.mul
|
||
|
(get_local $0)
|
||
|
;;@ assembly/buddy.ts:97:43
|
||
|
(i32.const 4)
|
||
|
)
|
||
|
)
|
||
|
)
|
||
|
)
|
||
|
(func $assembly/buddy/list_init (; 2 ;) (type $iv) (param $0 i32)
|
||
|
;;@ assembly/buddy.ts:191:2
|
||
|
(i32.store
|
||
|
(get_local $0)
|
||
|
;;@ assembly/buddy.ts:191:14
|
||
|
(get_local $0)
|
||
|
)
|
||
|
;;@ assembly/buddy.ts:192:2
|
||
|
(i32.store offset=4
|
||
|
(get_local $0)
|
||
|
;;@ assembly/buddy.ts:192:14
|
||
|
(get_local $0)
|
||
|
)
|
||
|
)
|
||
|
(func $assembly/buddy/list_push (; 3 ;) (type $iiv) (param $0 i32) (param $1 i32)
|
||
|
(local $2 i32)
|
||
|
;;@ assembly/buddy.ts:201:2
|
||
|
(i32.store
|
||
|
(get_local $1)
|
||
|
;;@ assembly/buddy.ts:200:2
|
||
|
(tee_local $2
|
||
|
;;@ assembly/buddy.ts:200:13
|
||
|
(i32.load
|
||
|
(get_local $0)
|
||
|
)
|
||
|
)
|
||
|
)
|
||
|
;;@ assembly/buddy.ts:202:2
|
||
|
(i32.store offset=4
|
||
|
(get_local $1)
|
||
|
;;@ assembly/buddy.ts:202:15
|
||
|
(get_local $0)
|
||
|
)
|
||
|
;;@ assembly/buddy.ts:203:2
|
||
|
(i32.store offset=4
|
||
|
(get_local $2)
|
||
|
;;@ assembly/buddy.ts:203:14
|
||
|
(get_local $1)
|
||
|
)
|
||
|
;;@ assembly/buddy.ts:204:2
|
||
|
(i32.store
|
||
|
(get_local $0)
|
||
|
;;@ assembly/buddy.ts:204:14
|
||
|
(get_local $1)
|
||
|
)
|
||
|
)
|
||
|
(func $assembly/buddy/bucket_for_request (; 4 ;) (type $ii) (param $0 i32) (result i32)
|
||
|
(local $1 i32)
|
||
|
(local $2 i32)
|
||
|
;;@ assembly/buddy.ts:271:2
|
||
|
(set_local $1
|
||
|
;;@ assembly/buddy.ts:271:15
|
||
|
(i32.const 27)
|
||
|
)
|
||
|
;;@ assembly/buddy.ts:272:2
|
||
|
(set_local $2
|
||
|
;;@ assembly/buddy.ts:272:13
|
||
|
(i32.const 16)
|
||
|
)
|
||
|
(loop $continue|0
|
||
|
(if
|
||
|
;;@ assembly/buddy.ts:274:9
|
||
|
(i32.lt_u
|
||
|
(get_local $2)
|
||
|
;;@ assembly/buddy.ts:274:16
|
||
|
(get_local $0)
|
||
|
)
|
||
|
(block
|
||
|
;;@ assembly/buddy.ts:275:4
|
||
|
(set_local $1
|
||
|
(i32.sub
|
||
|
(get_local $1)
|
||
|
(i32.const 1)
|
||
|
)
|
||
|
)
|
||
|
;;@ assembly/buddy.ts:276:4
|
||
|
(set_local $2
|
||
|
(i32.mul
|
||
|
(get_local $2)
|
||
|
;;@ assembly/buddy.ts:276:12
|
||
|
(i32.const 2)
|
||
|
)
|
||
|
)
|
||
|
(br $continue|0)
|
||
|
)
|
||
|
)
|
||
|
)
|
||
|
;;@ assembly/buddy.ts:279:9
|
||
|
(get_local $1)
|
||
|
)
|
||
|
(func $assembly/buddy/node_for_ptr (; 5 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
|
||
|
;;@ assembly/buddy.ts:246:9
|
||
|
(i32.sub
|
||
|
(i32.add
|
||
|
(i32.shr_u
|
||
|
;;@ assembly/buddy.ts:246:10
|
||
|
(i32.sub
|
||
|
;;@ assembly/buddy.ts:246:11
|
||
|
(get_local $0)
|
||
|
;;@ assembly/buddy.ts:246:17
|
||
|
(get_global $assembly/buddy/base_ptr)
|
||
|
)
|
||
|
;;@ assembly/buddy.ts:246:30
|
||
|
(i32.sub
|
||
|
;;@ assembly/buddy.ts:246:31
|
||
|
(i32.const 31)
|
||
|
;;@ assembly/buddy.ts:246:48
|
||
|
(get_local $1)
|
||
|
)
|
||
|
)
|
||
|
;;@ assembly/buddy.ts:246:59
|
||
|
(i32.shl
|
||
|
;;@ assembly/buddy.ts:246:60
|
||
|
(i32.const 1)
|
||
|
;;@ assembly/buddy.ts:246:65
|
||
|
(get_local $1)
|
||
|
)
|
||
|
)
|
||
|
;;@ assembly/buddy.ts:246:75
|
||
|
(i32.const 1)
|
||
|
)
|
||
|
)
|
||
|
(func $assembly/buddy/node_is_split (; 6 ;) (type $ii) (param $0 i32) (result i32)
|
||
|
;;@ assembly/buddy.ts:148:9
|
||
|
(i32.load8_u
|
||
|
;;@ assembly/buddy.ts:148:18
|
||
|
(i32.add
|
||
|
(get_global $assembly/buddy/SPLIT_START)
|
||
|
;;@ assembly/buddy.ts:148:32
|
||
|
(get_local $0)
|
||
|
)
|
||
|
)
|
||
|
)
|
||
|
(func $assembly/buddy/parent_is_split (; 7 ;) (type $ii) (param $0 i32) (result i32)
|
||
|
;;@ assembly/buddy.ts:254:9
|
||
|
(i32.and
|
||
|
(i32.shr_s
|
||
|
;;@ assembly/buddy.ts:254:10
|
||
|
(call $assembly/buddy/node_is_split
|
||
|
;;@ assembly/buddy.ts:254:24
|
||
|
(i32.div_u
|
||
|
;;@ assembly/buddy.ts:253:2
|
||
|
(tee_local $0
|
||
|
;;@ assembly/buddy.ts:253:10
|
||
|
(i32.div_u
|
||
|
(i32.sub
|
||
|
;;@ assembly/buddy.ts:253:11
|
||
|
(get_local $0)
|
||
|
;;@ assembly/buddy.ts:253:19
|
||
|
(i32.const 1)
|
||
|
)
|
||
|
;;@ assembly/buddy.ts:253:24
|
||
|
(i32.const 2)
|
||
|
)
|
||
|
)
|
||
|
;;@ assembly/buddy.ts:254:32
|
||
|
(i32.const 8)
|
||
|
)
|
||
|
)
|
||
|
;;@ assembly/buddy.ts:254:38
|
||
|
(i32.rem_u
|
||
|
;;@ assembly/buddy.ts:254:44
|
||
|
(get_local $0)
|
||
|
;;@ assembly/buddy.ts:254:52
|
||
|
(i32.const 8)
|
||
|
)
|
||
|
)
|
||
|
;;@ assembly/buddy.ts:254:58
|
||
|
(i32.const 1)
|
||
|
)
|
||
|
)
|
||
|
(func $assembly/buddy/list_remove (; 8 ;) (type $iv) (param $0 i32)
|
||
|
(local $1 i32)
|
||
|
;;@ assembly/buddy.ts:216:2
|
||
|
(i32.store offset=4
|
||
|
;;@ assembly/buddy.ts:214:2
|
||
|
(tee_local $1
|
||
|
;;@ assembly/buddy.ts:214:13
|
||
|
(i32.load
|
||
|
(get_local $0)
|
||
|
)
|
||
|
)
|
||
|
;;@ assembly/buddy.ts:215:2
|
||
|
(tee_local $0
|
||
|
;;@ assembly/buddy.ts:215:13
|
||
|
(i32.load offset=4
|
||
|
(get_local $0)
|
||
|
)
|
||
|
)
|
||
|
)
|
||
|
;;@ assembly/buddy.ts:217:2
|
||
|
(i32.store
|
||
|
(get_local $0)
|
||
|
;;@ assembly/buddy.ts:217:14
|
||
|
(get_local $1)
|
||
|
)
|
||
|
)
|
||
|
(func $assembly/buddy/ptr_for_node (; 9 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
|
||
|
;;@ assembly/buddy.ts:237:9
|
||
|
(i32.add
|
||
|
(get_global $assembly/buddy/base_ptr)
|
||
|
;;@ assembly/buddy.ts:237:20
|
||
|
(i32.shl
|
||
|
;;@ assembly/buddy.ts:237:21
|
||
|
(i32.add
|
||
|
;;@ assembly/buddy.ts:237:22
|
||
|
(i32.sub
|
||
|
(get_local $0)
|
||
|
;;@ assembly/buddy.ts:237:30
|
||
|
(i32.shl
|
||
|
;;@ assembly/buddy.ts:237:31
|
||
|
(i32.const 1)
|
||
|
;;@ assembly/buddy.ts:237:36
|
||
|
(get_local $1)
|
||
|
)
|
||
|
)
|
||
|
;;@ assembly/buddy.ts:237:46
|
||
|
(i32.const 1)
|
||
|
)
|
||
|
;;@ assembly/buddy.ts:237:52
|
||
|
(i32.sub
|
||
|
;;@ assembly/buddy.ts:237:53
|
||
|
(i32.const 31)
|
||
|
;;@ assembly/buddy.ts:237: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
|
||
|
;;@ assembly/buddy.ts:262:2
|
||
|
(tee_local $1
|
||
|
;;@ assembly/buddy.ts:262:18
|
||
|
(i32.div_u
|
||
|
;;@ assembly/buddy.ts:261:2
|
||
|
(tee_local $0
|
||
|
;;@ assembly/buddy.ts:261:10
|
||
|
(i32.div_u
|
||
|
(i32.sub
|
||
|
;;@ assembly/buddy.ts:261:11
|
||
|
(get_local $0)
|
||
|
;;@ assembly/buddy.ts:261:19
|
||
|
(i32.const 1)
|
||
|
)
|
||
|
;;@ assembly/buddy.ts:261:24
|
||
|
(i32.const 2)
|
||
|
)
|
||
|
)
|
||
|
;;@ assembly/buddy.ts:262:26
|
||
|
(i32.const 8)
|
||
|
)
|
||
|
)
|
||
|
)
|
||
|
(set_local $0
|
||
|
;;@ assembly/buddy.ts:263:28
|
||
|
(i32.xor
|
||
|
(call $assembly/buddy/node_is_split
|
||
|
;;@ assembly/buddy.ts:263:42
|
||
|
(get_local $1)
|
||
|
)
|
||
|
;;@ assembly/buddy.ts:263:55
|
||
|
(i32.shl
|
||
|
;;@ assembly/buddy.ts:263:61
|
||
|
(i32.const 1)
|
||
|
;;@ assembly/buddy.ts:263:66
|
||
|
(i32.rem_u
|
||
|
;;@ assembly/buddy.ts:263:67
|
||
|
(get_local $0)
|
||
|
;;@ assembly/buddy.ts:263: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
|
||
|
;;@ assembly/buddy.ts:288:9
|
||
|
(i32.lt_u
|
||
|
(get_local $0)
|
||
|
;;@ assembly/buddy.ts:288:18
|
||
|
(get_global $assembly/buddy/bucket_limit)
|
||
|
)
|
||
|
(block
|
||
|
;;@ assembly/buddy.ts:298:4
|
||
|
(if
|
||
|
;;@ assembly/buddy.ts:298:8
|
||
|
(i32.eqz
|
||
|
;;@ assembly/buddy.ts:298:9
|
||
|
(call $assembly/buddy/parent_is_split
|
||
|
;;@ assembly/buddy.ts:289:4
|
||
|
(tee_local $1
|
||
|
;;@ assembly/buddy.ts:289:15
|
||
|
(call $assembly/buddy/node_for_ptr
|
||
|
;;@ assembly/buddy.ts:289:28
|
||
|
(get_global $assembly/buddy/base_ptr)
|
||
|
;;@ assembly/buddy.ts:289:38
|
||
|
(get_global $assembly/buddy/bucket_limit)
|
||
|
)
|
||
|
)
|
||
|
)
|
||
|
)
|
||
|
;;@ assembly/buddy.ts:298:32
|
||
|
(block
|
||
|
;;@ assembly/buddy.ts:299:6
|
||
|
(call $assembly/buddy/list_remove
|
||
|
;;@ assembly/buddy.ts:299:18
|
||
|
(get_global $assembly/buddy/base_ptr)
|
||
|
)
|
||
|
;;@ assembly/buddy.ts:300:6
|
||
|
(call $assembly/buddy/list_init
|
||
|
;;@ assembly/buddy.ts:300:16
|
||
|
(call $assembly/buddy/get_bucket
|
||
|
;;@ assembly/buddy.ts:300:27
|
||
|
(block (result i32)
|
||
|
(set_global $assembly/buddy/bucket_limit
|
||
|
(i32.sub
|
||
|
;;@ assembly/buddy.ts:300:29
|
||
|
(get_global $assembly/buddy/bucket_limit)
|
||
|
(i32.const 1)
|
||
|
)
|
||
|
)
|
||
|
(get_global $assembly/buddy/bucket_limit)
|
||
|
)
|
||
|
)
|
||
|
)
|
||
|
;;@ assembly/buddy.ts:301:6
|
||
|
(call $assembly/buddy/list_push
|
||
|
;;@ assembly/buddy.ts:301:16
|
||
|
(call $assembly/buddy/get_bucket
|
||
|
;;@ assembly/buddy.ts:301:27
|
||
|
(get_global $assembly/buddy/bucket_limit)
|
||
|
)
|
||
|
;;@ assembly/buddy.ts:301:42
|
||
|
(get_global $assembly/buddy/base_ptr)
|
||
|
)
|
||
|
;;@ assembly/buddy.ts:302:6
|
||
|
(br $continue|0)
|
||
|
)
|
||
|
)
|
||
|
;;@ assembly/buddy.ts:314:4
|
||
|
(if
|
||
|
;;@ assembly/buddy.ts:314:8
|
||
|
(i32.eqz
|
||
|
;;@ assembly/buddy.ts:314:9
|
||
|
(call $assembly/buddy/update_max_ptr
|
||
|
;;@ assembly/buddy.ts:314:24
|
||
|
(i32.add
|
||
|
;;@ assembly/buddy.ts:313:4
|
||
|
(tee_local $2
|
||
|
;;@ assembly/buddy.ts:313:18
|
||
|
(call $assembly/buddy/ptr_for_node
|
||
|
;;@ assembly/buddy.ts:313:31
|
||
|
(i32.add
|
||
|
(get_local $1)
|
||
|
;;@ assembly/buddy.ts:313:38
|
||
|
(i32.const 1)
|
||
|
)
|
||
|
;;@ assembly/buddy.ts:313:41
|
||
|
(get_global $assembly/buddy/bucket_limit)
|
||
|
)
|
||
|
)
|
||
|
;;@ assembly/buddy.ts:314:38
|
||
|
(i32.const 8)
|
||
|
)
|
||
|
)
|
||
|
)
|
||
|
;;@ assembly/buddy.ts:315:13
|
||
|
(return
|
||
|
(i32.const 0)
|
||
|
)
|
||
|
)
|
||
|
;;@ assembly/buddy.ts:317:4
|
||
|
(call $assembly/buddy/list_push
|
||
|
;;@ assembly/buddy.ts:317:14
|
||
|
(call $assembly/buddy/get_bucket
|
||
|
;;@ assembly/buddy.ts:317:25
|
||
|
(get_global $assembly/buddy/bucket_limit)
|
||
|
)
|
||
|
;;@ assembly/buddy.ts:317:40
|
||
|
(get_local $2)
|
||
|
)
|
||
|
;;@ assembly/buddy.ts:318:4
|
||
|
(call $assembly/buddy/list_init
|
||
|
;;@ assembly/buddy.ts:318:14
|
||
|
(call $assembly/buddy/get_bucket
|
||
|
;;@ assembly/buddy.ts:318:25
|
||
|
(block (result i32)
|
||
|
(set_global $assembly/buddy/bucket_limit
|
||
|
(i32.sub
|
||
|
;;@ assembly/buddy.ts:318:27
|
||
|
(get_global $assembly/buddy/bucket_limit)
|
||
|
(i32.const 1)
|
||
|
)
|
||
|
)
|
||
|
(get_global $assembly/buddy/bucket_limit)
|
||
|
)
|
||
|
)
|
||
|
)
|
||
|
;;@ assembly/buddy.ts:325:4
|
||
|
(if
|
||
|
;;@ assembly/buddy.ts:324:4
|
||
|
(tee_local $1
|
||
|
;;@ assembly/buddy.ts:324:11
|
||
|
(i32.div_u
|
||
|
(i32.sub
|
||
|
;;@ assembly/buddy.ts:324:12
|
||
|
(get_local $1)
|
||
|
;;@ assembly/buddy.ts:324:19
|
||
|
(i32.const 1)
|
||
|
)
|
||
|
;;@ assembly/buddy.ts:324:24
|
||
|
(i32.const 2)
|
||
|
)
|
||
|
)
|
||
|
;;@ assembly/buddy.ts:326:6
|
||
|
(call $assembly/buddy/flip_parent_is_split
|
||
|
;;@ assembly/buddy.ts:326:27
|
||
|
(get_local $1)
|
||
|
)
|
||
|
)
|
||
|
(br $continue|0)
|
||
|
)
|
||
|
)
|
||
|
)
|
||
|
;;@ assembly/buddy.ts:330:9
|
||
|
(i32.const 1)
|
||
|
)
|
||
|
(func $assembly/buddy/list_pop (; 12 ;) (type $ii) (param $0 i32) (result i32)
|
||
|
(local $1 i32)
|
||
|
;;@ assembly/buddy.ts:225:2
|
||
|
(if
|
||
|
;;@ assembly/buddy.ts:225:6
|
||
|
(i32.eq
|
||
|
;;@ assembly/buddy.ts:224:2
|
||
|
(tee_local $1
|
||
|
;;@ assembly/buddy.ts:224:13
|
||
|
(i32.load
|
||
|
(get_local $0)
|
||
|
)
|
||
|
)
|
||
|
;;@ assembly/buddy.ts:225:14
|
||
|
(get_local $0)
|
||
|
)
|
||
|
;;@ assembly/buddy.ts:225:27
|
||
|
(return
|
||
|
(i32.const 0)
|
||
|
)
|
||
|
)
|
||
|
;;@ assembly/buddy.ts:226:2
|
||
|
(call $assembly/buddy/list_remove
|
||
|
;;@ assembly/buddy.ts:226:14
|
||
|
(get_local $1)
|
||
|
)
|
||
|
;;@ assembly/buddy.ts:227: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)
|
||
|
;;@ assembly/buddy.ts:342:2
|
||
|
(if
|
||
|
;;@ assembly/buddy.ts:342:6
|
||
|
(i32.gt_u
|
||
|
(i32.add
|
||
|
(get_local $0)
|
||
|
;;@ assembly/buddy.ts:342:16
|
||
|
(i32.const 8)
|
||
|
)
|
||
|
;;@ assembly/buddy.ts:342:30
|
||
|
(i32.const -2147483648)
|
||
|
)
|
||
|
;;@ assembly/buddy.ts:343:11
|
||
|
(return
|
||
|
(i32.const 0)
|
||
|
)
|
||
|
)
|
||
|
;;@ assembly/buddy.ts:351:2
|
||
|
(if
|
||
|
(i32.eqz
|
||
|
;;@ assembly/buddy.ts:351:6
|
||
|
(get_global $assembly/buddy/base_ptr)
|
||
|
)
|
||
|
;;@ assembly/buddy.ts:351:21
|
||
|
(block
|
||
|
;;@ assembly/buddy.ts:352:4
|
||
|
(set_global $assembly/buddy/base_ptr
|
||
|
;;@ assembly/buddy.ts:352:15
|
||
|
(block (result i32)
|
||
|
(set_global $assembly/buddy/max_ptr
|
||
|
;;@ assembly/buddy.ts:352:25
|
||
|
(get_global $assembly/buddy/SPLIT_END)
|
||
|
)
|
||
|
(get_global $assembly/buddy/max_ptr)
|
||
|
)
|
||
|
)
|
||
|
;;@ assembly/buddy.ts:353:4
|
||
|
(set_global $assembly/buddy/bucket_limit
|
||
|
;;@ assembly/buddy.ts:353:19
|
||
|
(i32.const 27)
|
||
|
)
|
||
|
;;@ assembly/buddy.ts:354:4
|
||
|
(drop
|
||
|
(call $assembly/buddy/update_max_ptr
|
||
|
;;@ assembly/buddy.ts:354:19
|
||
|
(i32.add
|
||
|
(get_global $assembly/buddy/base_ptr)
|
||
|
;;@ assembly/buddy.ts:354:30
|
||
|
(i32.const 8)
|
||
|
)
|
||
|
)
|
||
|
)
|
||
|
;;@ assembly/buddy.ts:355:4
|
||
|
(call $assembly/buddy/list_init
|
||
|
;;@ assembly/buddy.ts:355:14
|
||
|
(call $assembly/buddy/get_bucket
|
||
|
;;@ assembly/buddy.ts:355:25
|
||
|
(i32.const 27)
|
||
|
)
|
||
|
)
|
||
|
;;@ assembly/buddy.ts:356:4
|
||
|
(call $assembly/buddy/list_push
|
||
|
;;@ assembly/buddy.ts:356:14
|
||
|
(call $assembly/buddy/get_bucket
|
||
|
;;@ assembly/buddy.ts:356:25
|
||
|
(i32.const 27)
|
||
|
)
|
||
|
;;@ assembly/buddy.ts:356:44
|
||
|
(get_global $assembly/buddy/base_ptr)
|
||
|
)
|
||
|
)
|
||
|
)
|
||
|
;;@ assembly/buddy.ts:364:2
|
||
|
(set_local $4
|
||
|
;;@ assembly/buddy.ts:363:2
|
||
|
(tee_local $1
|
||
|
;;@ assembly/buddy.ts:363:11
|
||
|
(call $assembly/buddy/bucket_for_request
|
||
|
;;@ assembly/buddy.ts:363:30
|
||
|
(i32.add
|
||
|
(get_local $0)
|
||
|
;;@ assembly/buddy.ts:363:40
|
||
|
(i32.const 8)
|
||
|
)
|
||
|
)
|
||
|
)
|
||
|
)
|
||
|
(loop $continue|0
|
||
|
(if
|
||
|
;;@ assembly/buddy.ts:371:9
|
||
|
(i32.add
|
||
|
(get_local $1)
|
||
|
;;@ assembly/buddy.ts:371:18
|
||
|
(i32.const 1)
|
||
|
)
|
||
|
;;@ assembly/buddy.ts:371:26
|
||
|
(block
|
||
|
;;@ assembly/buddy.ts:379:4
|
||
|
(if
|
||
|
;;@ assembly/buddy.ts:379:8
|
||
|
(i32.eqz
|
||
|
;;@ assembly/buddy.ts:379:9
|
||
|
(call $assembly/buddy/lower_bucket_limit
|
||
|
;;@ assembly/buddy.ts:379:28
|
||
|
(get_local $1)
|
||
|
)
|
||
|
)
|
||
|
;;@ assembly/buddy.ts:380:13
|
||
|
(return
|
||
|
(i32.const 0)
|
||
|
)
|
||
|
)
|
||
|
;;@ assembly/buddy.ts:388:4
|
||
|
(if
|
||
|
;;@ assembly/buddy.ts:388:8
|
||
|
(i32.eqz
|
||
|
;;@ assembly/buddy.ts:387:4
|
||
|
(tee_local $2
|
||
|
;;@ assembly/buddy.ts:387:10
|
||
|
(call $assembly/buddy/list_pop
|
||
|
;;@ assembly/buddy.ts:387:37
|
||
|
(call $assembly/buddy/get_bucket
|
||
|
;;@ assembly/buddy.ts:387:48
|
||
|
(get_local $1)
|
||
|
)
|
||
|
)
|
||
|
)
|
||
|
)
|
||
|
;;@ assembly/buddy.ts:388:14
|
||
|
(block
|
||
|
;;@ assembly/buddy.ts:393:6
|
||
|
(if
|
||
|
;;@ assembly/buddy.ts:393:10
|
||
|
(i32.and
|
||
|
(if (result i32)
|
||
|
(tee_local $2
|
||
|
(i32.ne
|
||
|
(get_local $1)
|
||
|
;;@ assembly/buddy.ts:393:20
|
||
|
(get_global $assembly/buddy/bucket_limit)
|
||
|
)
|
||
|
)
|
||
|
(get_local $2)
|
||
|
(i32.eqz
|
||
|
;;@ assembly/buddy.ts:393:36
|
||
|
(get_local $1)
|
||
|
)
|
||
|
)
|
||
|
(i32.const 1)
|
||
|
)
|
||
|
;;@ assembly/buddy.ts:393:49
|
||
|
(block
|
||
|
;;@ assembly/buddy.ts:394:8
|
||
|
(set_local $1
|
||
|
(i32.sub
|
||
|
(get_local $1)
|
||
|
(i32.const 1)
|
||
|
)
|
||
|
)
|
||
|
;;@ assembly/buddy.ts:395:8
|
||
|
(br $continue|0)
|
||
|
)
|
||
|
)
|
||
|
;;@ assembly/buddy.ts:405:6
|
||
|
(if
|
||
|
;;@ assembly/buddy.ts:405:10
|
||
|
(i32.eqz
|
||
|
;;@ assembly/buddy.ts:405:11
|
||
|
(call $assembly/buddy/lower_bucket_limit
|
||
|
;;@ assembly/buddy.ts:405:30
|
||
|
(i32.sub
|
||
|
(get_local $1)
|
||
|
;;@ assembly/buddy.ts:405:39
|
||
|
(i32.const 1)
|
||
|
)
|
||
|
)
|
||
|
)
|
||
|
;;@ assembly/buddy.ts:406:15
|
||
|
(return
|
||
|
(i32.const 0)
|
||
|
)
|
||
|
)
|
||
|
;;@ assembly/buddy.ts:408:6
|
||
|
(set_local $2
|
||
|
;;@ assembly/buddy.ts:408:12
|
||
|
(call $assembly/buddy/list_pop
|
||
|
;;@ assembly/buddy.ts:408:39
|
||
|
(call $assembly/buddy/get_bucket
|
||
|
;;@ assembly/buddy.ts:408:50
|
||
|
(get_local $1)
|
||
|
)
|
||
|
)
|
||
|
)
|
||
|
)
|
||
|
)
|
||
|
;;@ assembly/buddy.ts:415:4
|
||
|
(set_local $3
|
||
|
;;@ assembly/buddy.ts:415:11
|
||
|
(i32.shl
|
||
|
(i32.const 1)
|
||
|
;;@ assembly/buddy.ts:415:16
|
||
|
(i32.sub
|
||
|
;;@ assembly/buddy.ts:415:17
|
||
|
(i32.const 31)
|
||
|
;;@ assembly/buddy.ts:415:34
|
||
|
(get_local $1)
|
||
|
)
|
||
|
)
|
||
|
)
|
||
|
;;@ assembly/buddy.ts:417:4
|
||
|
(if
|
||
|
;;@ assembly/buddy.ts:417:8
|
||
|
(i32.eqz
|
||
|
;;@ assembly/buddy.ts:417:9
|
||
|
(call $assembly/buddy/update_max_ptr
|
||
|
;;@ assembly/buddy.ts:417:24
|
||
|
(i32.add
|
||
|
(get_local $2)
|
||
|
;;@ assembly/buddy.ts:416:19
|
||
|
(if (result i32)
|
||
|
(i32.lt_u
|
||
|
(get_local $1)
|
||
|
;;@ assembly/buddy.ts:416:28
|
||
|
(get_local $4)
|
||
|
)
|
||
|
;;@ assembly/buddy.ts:416:46
|
||
|
(i32.add
|
||
|
(i32.div_u
|
||
|
(get_local $3)
|
||
|
;;@ assembly/buddy.ts:416:53
|
||
|
(i32.const 2)
|
||
|
)
|
||
|
;;@ assembly/buddy.ts:416:57
|
||
|
(i32.const 8)
|
||
|
)
|
||
|
;;@ assembly/buddy.ts:416:69
|
||
|
(get_local $3)
|
||
|
)
|
||
|
)
|
||
|
)
|
||
|
)
|
||
|
;;@ assembly/buddy.ts:417:45
|
||
|
(block
|
||
|
;;@ assembly/buddy.ts:418:6
|
||
|
(call $assembly/buddy/list_push
|
||
|
;;@ assembly/buddy.ts:418:16
|
||
|
(call $assembly/buddy/get_bucket
|
||
|
;;@ assembly/buddy.ts:418:27
|
||
|
(get_local $1)
|
||
|
)
|
||
|
;;@ assembly/buddy.ts:418:36
|
||
|
(get_local $2)
|
||
|
)
|
||
|
;;@ assembly/buddy.ts:419:13
|
||
|
(return
|
||
|
(i32.const 0)
|
||
|
)
|
||
|
)
|
||
|
)
|
||
|
;;@ assembly/buddy.ts:434:4
|
||
|
(if
|
||
|
;;@ assembly/buddy.ts:433:4
|
||
|
(tee_local $3
|
||
|
;;@ assembly/buddy.ts:433:8
|
||
|
(call $assembly/buddy/node_for_ptr
|
||
|
;;@ assembly/buddy.ts:433:21
|
||
|
(get_local $2)
|
||
|
;;@ assembly/buddy.ts:433:26
|
||
|
(get_local $1)
|
||
|
)
|
||
|
)
|
||
|
;;@ assembly/buddy.ts:435:6
|
||
|
(call $assembly/buddy/flip_parent_is_split
|
||
|
;;@ assembly/buddy.ts:435:27
|
||
|
(get_local $3)
|
||
|
)
|
||
|
)
|
||
|
(loop $continue|1
|
||
|
(if
|
||
|
;;@ assembly/buddy.ts:445:11
|
||
|
(i32.lt_u
|
||
|
(get_local $1)
|
||
|
;;@ assembly/buddy.ts:445:20
|
||
|
(get_local $4)
|
||
|
)
|
||
|
(block
|
||
|
;;@ assembly/buddy.ts:448:6
|
||
|
(call $assembly/buddy/flip_parent_is_split
|
||
|
;;@ assembly/buddy.ts:446:6
|
||
|
(tee_local $3
|
||
|
;;@ assembly/buddy.ts:446:10
|
||
|
(i32.add
|
||
|
(i32.mul
|
||
|
(get_local $3)
|
||
|
;;@ assembly/buddy.ts:446:14
|
||
|
(i32.const 2)
|
||
|
)
|
||
|
;;@ assembly/buddy.ts:446:18
|
||
|
(i32.const 1)
|
||
|
)
|
||
|
)
|
||
|
)
|
||
|
;;@ assembly/buddy.ts:449:6
|
||
|
(call $assembly/buddy/list_push
|
||
|
;;@ assembly/buddy.ts:449:16
|
||
|
(call $assembly/buddy/get_bucket
|
||
|
;;@ assembly/buddy.ts:447:6
|
||
|
(tee_local $1
|
||
|
(i32.add
|
||
|
(get_local $1)
|
||
|
(i32.const 1)
|
||
|
)
|
||
|
)
|
||
|
)
|
||
|
;;@ assembly/buddy.ts:449:36
|
||
|
(call $assembly/buddy/ptr_for_node
|
||
|
;;@ assembly/buddy.ts:449:66
|
||
|
(i32.add
|
||
|
(get_local $3)
|
||
|
;;@ assembly/buddy.ts:449:70
|
||
|
(i32.const 1)
|
||
|
)
|
||
|
;;@ assembly/buddy.ts:449:73
|
||
|
(get_local $1)
|
||
|
)
|
||
|
)
|
||
|
(br $continue|1)
|
||
|
)
|
||
|
)
|
||
|
)
|
||
|
;;@ assembly/buddy.ts:456:4
|
||
|
(i32.store
|
||
|
;;@ assembly/buddy.ts:456:17
|
||
|
(get_local $2)
|
||
|
;;@ assembly/buddy.ts:456:22
|
||
|
(get_local $0)
|
||
|
)
|
||
|
;;@ assembly/buddy.ts:457:17
|
||
|
(return
|
||
|
;;@ assembly/buddy.ts:457:11
|
||
|
(i32.add
|
||
|
(get_local $2)
|
||
|
;;@ assembly/buddy.ts:457:17
|
||
|
(i32.const 8)
|
||
|
)
|
||
|
)
|
||
|
)
|
||
|
)
|
||
|
)
|
||
|
;;@ assembly/buddy.ts:460:9
|
||
|
(i32.const 0)
|
||
|
)
|
||
|
(func $assembly/buddy/free_memory (; 14 ;) (type $iv) (param $0 i32)
|
||
|
(local $1 i32)
|
||
|
(local $2 i32)
|
||
|
;;@ assembly/buddy.ts:470:2
|
||
|
(if
|
||
|
;;@ assembly/buddy.ts:470:6
|
||
|
(i32.eqz
|
||
|
;;@ assembly/buddy.ts:470:7
|
||
|
(get_local $0)
|
||
|
)
|
||
|
;;@ assembly/buddy.ts:471:4
|
||
|
(return)
|
||
|
)
|
||
|
;;@ assembly/buddy.ts:480:2
|
||
|
(set_local $1
|
||
|
;;@ assembly/buddy.ts:480:11
|
||
|
(call $assembly/buddy/bucket_for_request
|
||
|
;;@ assembly/buddy.ts:480:30
|
||
|
(i32.add
|
||
|
(i32.load
|
||
|
;;@ assembly/buddy.ts:479:2
|
||
|
(tee_local $0
|
||
|
;;@ assembly/buddy.ts:479:8
|
||
|
(i32.sub
|
||
|
(get_local $0)
|
||
|
;;@ assembly/buddy.ts:479:14
|
||
|
(i32.const 8)
|
||
|
)
|
||
|
)
|
||
|
)
|
||
|
;;@ assembly/buddy.ts:480:49
|
||
|
(i32.const 8)
|
||
|
)
|
||
|
)
|
||
|
)
|
||
|
;;@ assembly/buddy.ts:481:2
|
||
|
(set_local $0
|
||
|
;;@ assembly/buddy.ts:481:6
|
||
|
(call $assembly/buddy/node_for_ptr
|
||
|
;;@ assembly/buddy.ts:481:19
|
||
|
(get_local $0)
|
||
|
;;@ assembly/buddy.ts:481:24
|
||
|
(get_local $1)
|
||
|
)
|
||
|
)
|
||
|
;;@ assembly/buddy.ts:487:2
|
||
|
(block $break|0
|
||
|
(loop $continue|0
|
||
|
(if
|
||
|
;;@ assembly/buddy.ts:487:9
|
||
|
(get_local $0)
|
||
|
(block
|
||
|
;;@ assembly/buddy.ts:494:4
|
||
|
(call $assembly/buddy/flip_parent_is_split
|
||
|
;;@ assembly/buddy.ts:494:25
|
||
|
(get_local $0)
|
||
|
)
|
||
|
;;@ assembly/buddy.ts:505:6
|
||
|
(br_if $break|0
|
||
|
;;@ assembly/buddy.ts:504:8
|
||
|
(if (result i32)
|
||
|
(tee_local $2
|
||
|
(call $assembly/buddy/parent_is_split
|
||
|
;;@ assembly/buddy.ts:504:24
|
||
|
(get_local $0)
|
||
|
)
|
||
|
)
|
||
|
(get_local $2)
|
||
|
;;@ assembly/buddy.ts:504:30
|
||
|
(i32.eq
|
||
|
(get_local $1)
|
||
|
;;@ assembly/buddy.ts:504:40
|
||
|
(get_global $assembly/buddy/bucket_limit)
|
||
|
)
|
||
|
)
|
||
|
)
|
||
|
;;@ assembly/buddy.ts:515:4
|
||
|
(call $assembly/buddy/list_remove
|
||
|
;;@ assembly/buddy.ts:515:16
|
||
|
(call $assembly/buddy/ptr_for_node
|
||
|
;;@ assembly/buddy.ts:515:46
|
||
|
(i32.add
|
||
|
(i32.xor
|
||
|
;;@ assembly/buddy.ts:515:47
|
||
|
(i32.sub
|
||
|
;;@ assembly/buddy.ts:515:48
|
||
|
(get_local $0)
|
||
|
;;@ assembly/buddy.ts:515:52
|
||
|
(i32.const 1)
|
||
|
)
|
||
|
;;@ assembly/buddy.ts:515:57
|
||
|
(i32.const 1)
|
||
|
)
|
||
|
;;@ assembly/buddy.ts:515:62
|
||
|
(i32.const 1)
|
||
|
)
|
||
|
;;@ assembly/buddy.ts:515:65
|
||
|
(get_local $1)
|
||
|
)
|
||
|
)
|
||
|
;;@ assembly/buddy.ts:516:4
|
||
|
(set_local $0
|
||
|
;;@ assembly/buddy.ts:516:8
|
||
|
(i32.div_u
|
||
|
(i32.sub
|
||
|
;;@ assembly/buddy.ts:516:9
|
||
|
(get_local $0)
|
||
|
;;@ assembly/buddy.ts:516:13
|
||
|
(i32.const 1)
|
||
|
)
|
||
|
;;@ assembly/buddy.ts:516:18
|
||
|
(i32.const 2)
|
||
|
)
|
||
|
)
|
||
|
;;@ assembly/buddy.ts:517:4
|
||
|
(set_local $1
|
||
|
(i32.sub
|
||
|
(get_local $1)
|
||
|
(i32.const 1)
|
||
|
)
|
||
|
)
|
||
|
(br $continue|0)
|
||
|
)
|
||
|
)
|
||
|
)
|
||
|
)
|
||
|
;;@ assembly/buddy.ts:526:2
|
||
|
(call $assembly/buddy/list_push
|
||
|
;;@ assembly/buddy.ts:526:12
|
||
|
(call $assembly/buddy/get_bucket
|
||
|
;;@ assembly/buddy.ts:526:23
|
||
|
(get_local $1)
|
||
|
)
|
||
|
;;@ assembly/buddy.ts:526:32
|
||
|
(call $assembly/buddy/ptr_for_node
|
||
|
;;@ assembly/buddy.ts:526:62
|
||
|
(get_local $0)
|
||
|
;;@ assembly/buddy.ts:526:65
|
||
|
(get_local $1)
|
||
|
)
|
||
|
)
|
||
|
)
|
||
|
(func $start (; 15 ;) (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)
|
||
|
(i32.const 112)
|
||
|
)
|
||
|
)
|
||
|
(set_global $assembly/buddy/SPLIT_START
|
||
|
;;@ assembly/buddy.ts:143:25
|
||
|
(get_global $assembly/buddy/BUCKET_END)
|
||
|
)
|
||
|
(set_global $assembly/buddy/SPLIT_END
|
||
|
;;@ assembly/buddy.ts:144:23
|
||
|
(i32.add
|
||
|
(get_global $assembly/buddy/SPLIT_START)
|
||
|
(i32.const 16777216)
|
||
|
)
|
||
|
)
|
||
|
)
|
||
|
)
|