@salang/sa 0.1.3 → 0.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/sa.js +13 -1
- package/package.json +8 -7
- package/sa_std/alloc/layout.sal +12 -0
- package/sa_std/alloc/prelude.sa +1 -0
- package/sa_std/alloc/prelude.sal +1 -0
- package/sa_std/alloc/string.sa +3 -0
- package/sa_std/alloc/vec.sa +684 -0
- package/sa_std/alloc/vec.sal +4 -0
- package/sa_std/any.sa +130 -0
- package/sa_std/any.sal +23 -0
- package/sa_std/array.sa +1876 -0
- package/sa_std/ascii.sa +2 -0
- package/sa_std/ascii.sal +1 -0
- package/sa_std/async.sla +116 -0
- package/sa_std/binary_heap.sa +3003 -0
- package/sa_std/binary_heap.sal +7 -0
- package/sa_std/borrow.sa +171 -0
- package/sa_std/borrow.sal +13 -0
- package/sa_std/btree_map.sa +2210 -0
- package/sa_std/btree_map.sal +11 -0
- package/sa_std/btree_set.sa +1072 -0
- package/sa_std/btree_set.sal +6 -0
- package/sa_std/char.sa +1309 -0
- package/sa_std/char.sal +50 -0
- package/sa_std/cmp.sa +554 -0
- package/sa_std/cmp.sal +14 -0
- package/sa_std/collections/binary_heap.sa +1 -0
- package/sa_std/collections/btree_map.sa +1 -0
- package/sa_std/collections/btree_set.sa +1 -0
- package/sa_std/collections/hashmap.sa +1 -0
- package/sa_std/collections/hashset.sa +1 -0
- package/sa_std/collections/linked_list.sa +1120 -0
- package/sa_std/collections/linked_list.sal +10 -0
- package/sa_std/collections/prelude.sa +7 -0
- package/sa_std/collections/prelude.sal +1 -0
- package/sa_std/collections/vec_deque.sa +1 -0
- package/sa_std/collections.sal +13 -0
- package/sa_std/convert.sa +1115 -0
- package/sa_std/convert.sal +24 -0
- package/sa_std/core/arc.sa +233 -0
- package/sa_std/core/arc.sal +4 -0
- package/sa_std/core/ascii.sa +784 -0
- package/sa_std/core/ascii.sal +34 -0
- package/sa_std/core/bit.sa +41 -0
- package/sa_std/core/box.sa +1 -0
- package/sa_std/core/box.sal +2 -0
- package/sa_std/core/cell.sa +108 -0
- package/sa_std/core/cell.sal +5 -0
- package/sa_std/core/cleanup.sa +26 -0
- package/sa_std/core/control.sa +20 -0
- package/sa_std/core/derive.sa +60 -0
- package/sa_std/core/derive.sal +1 -0
- package/sa_std/core/dispatch.sa +7 -0
- package/sa_std/core/dispatch.sal +5 -0
- package/sa_std/core/future.sa +777 -0
- package/sa_std/core/future.sal +73 -0
- package/sa_std/core/hash.sa +48 -0
- package/sa_std/core/iter.sa +2805 -0
- package/sa_std/core/iter.sal +4 -0
- package/sa_std/core/loop.sa +60 -0
- package/sa_std/core/mem.sa +220 -0
- package/sa_std/core/option.sa +825 -0
- package/sa_std/core/option.sal +11 -0
- package/sa_std/core/panic.sa +23 -0
- package/sa_std/core/panic.sal +12 -0
- package/sa_std/core/prelude.sa +18 -0
- package/sa_std/core/prelude.sal +18 -0
- package/sa_std/core/rc.sa +225 -0
- package/sa_std/core/rc.sal +4 -0
- package/sa_std/core/refcell.sa +283 -0
- package/sa_std/core/refcell.sal +13 -0
- package/sa_std/core/result.sa +708 -0
- package/sa_std/core/result.sal +6 -0
- package/sa_std/core/rust_patterns.sal +295 -0
- package/sa_std/core/sa_core.sa +84 -0
- package/sa_std/core/slice.sa +4021 -0
- package/sa_std/core/slice.sal +7 -0
- package/sa_std/core/task.sa +112 -0
- package/sa_std/core/task.sal +15 -0
- package/sa_std/core/trait_object.sa +26 -0
- package/sa_std/core/trait_object.sal +4 -0
- package/sa_std/core/waker.sa +289 -0
- package/sa_std/core/waker.sal +31 -0
- package/sa_std/core/weak.sa +2 -0
- package/sa_std/core/weak.sal +4 -0
- package/sa_std/cow.sa +3 -0
- package/sa_std/cow.sal +2 -0
- package/sa_std/cstring.sa +3 -0
- package/sa_std/cstring.sal +2 -0
- package/sa_std/default.sa +99 -0
- package/sa_std/duration.sa +3 -0
- package/sa_std/duration.sal +2 -0
- package/sa_std/encoding/json.sa +259 -0
- package/sa_std/encoding/json.sai +54 -0
- package/sa_std/encoding/json.sal +35 -0
- package/sa_std/encoding/prelude.sa +1 -0
- package/sa_std/encoding/prelude.sal +0 -0
- package/sa_std/env.sa +390 -0
- package/sa_std/env.sai +25 -0
- package/sa_std/error.sa +253 -0
- package/sa_std/error.sal +44 -0
- package/sa_std/ffi/cstring.sa +3 -0
- package/sa_std/ffi/cstring.sal +1 -0
- package/sa_std/ffi/prelude.sa +2 -0
- package/sa_std/ffi/prelude.sal +2 -0
- package/sa_std/ffi.sa +635 -0
- package/sa_std/ffi.sal +51 -0
- package/sa_std/fmt.sa +2 -0
- package/sa_std/fmt.sai +18 -0
- package/sa_std/fmt.sal +35 -0
- package/sa_std/fs.sa +1023 -0
- package/sa_std/fs.sai +127 -0
- package/sa_std/fs.sal +51 -0
- package/sa_std/future.sa +2 -0
- package/sa_std/future.sal +1 -0
- package/sa_std/hash.sa +1486 -0
- package/sa_std/hash.sal +13 -0
- package/sa_std/hashmap.sa +1962 -0
- package/sa_std/hashmap.sal +20 -0
- package/sa_std/hashset.sa +1004 -0
- package/sa_std/hashset.sal +18 -0
- package/sa_std/http2.sa +78 -0
- package/sa_std/http2.sai +26 -0
- package/sa_std/http2.sal +36 -0
- package/sa_std/instant.sa +3 -0
- package/sa_std/instant.sal +2 -0
- package/sa_std/io/buf_reader.sa +43 -0
- package/sa_std/io/buf_writer.sa +35 -0
- package/sa_std/io/bufio.sa +4 -0
- package/sa_std/io/bufio.sal +4 -0
- package/sa_std/io/prelude.sa +1 -0
- package/sa_std/io/prelude.sal +1 -0
- package/sa_std/io/print.sa +2 -0
- package/sa_std/io/print.sai +3 -0
- package/sa_std/io.sa +925 -0
- package/sa_std/io.sai +25 -0
- package/sa_std/io.sal +84 -0
- package/sa_std/iter.sa +2 -0
- package/sa_std/iter.sal +1 -0
- package/sa_std/join_handle.sa +3 -0
- package/sa_std/join_handle.sal +2 -0
- package/sa_std/libsa_async.sa +80 -0
- package/sa_std/m_async.sa +137 -0
- package/sa_std/m_async.sal +30 -0
- package/sa_std/m_async.sla +2 -0
- package/sa_std/manually_drop.sa +3 -0
- package/sa_std/manually_drop.sal +2 -0
- package/sa_std/marker/phantom_data.sa +3 -0
- package/sa_std/marker/phantom_data.sal +1 -0
- package/sa_std/marker/prelude.sa +4 -0
- package/sa_std/marker/prelude.sal +4 -0
- package/sa_std/marker.sa +220 -0
- package/sa_std/marker.sal +15 -0
- package/sa_std/math.sa +84 -0
- package/sa_std/math.sai +10 -0
- package/sa_std/mem/manually_drop.sa +3 -0
- package/sa_std/mem/manually_drop.sal +1 -0
- package/sa_std/mem/prelude.sa +2 -0
- package/sa_std/mem/prelude.sal +2 -0
- package/sa_std/mem.sa +564 -0
- package/sa_std/mem.sal +40 -0
- package/sa_std/modstate.sai +19 -0
- package/sa_std/net.sa +4227 -0
- package/sa_std/net.sai +239 -0
- package/sa_std/net.sal +159 -0
- package/sa_std/netx.sa +85 -0
- package/sa_std/netx.sai +11 -0
- package/sa_std/netx.sal +39 -0
- package/sa_std/nonzero.sa +3 -0
- package/sa_std/nonzero.sal +2 -0
- package/sa_std/num/nonzero.sa +3 -0
- package/sa_std/num/nonzero.sal +1 -0
- package/sa_std/num/prelude.sa +3 -0
- package/sa_std/num/prelude.sal +3 -0
- package/sa_std/num.sa +17302 -0
- package/sa_std/num.sai +11 -0
- package/sa_std/num.sal +341 -0
- package/sa_std/ops.sa +1884 -0
- package/sa_std/ops.sal +68 -0
- package/sa_std/option.sa +2 -0
- package/sa_std/option.sal +1 -0
- package/sa_std/os/fd.sa +96 -0
- package/sa_std/os/fd.sai +7 -0
- package/sa_std/os/fd.sal +11 -0
- package/sa_std/os/prelude.sa +2 -0
- package/sa_std/os/prelude.sal +1 -0
- package/sa_std/os/unix_ffi.sa +271 -0
- package/sa_std/panic.sa +1 -0
- package/sa_std/panic.sal +1 -0
- package/sa_std/path.sa +3170 -0
- package/sa_std/path.sal +12 -0
- package/sa_std/phantom_data.sa +3 -0
- package/sa_std/phantom_data.sal +2 -0
- package/sa_std/pin.sa +79 -0
- package/sa_std/pin.sal +5 -0
- package/sa_std/plugin_async.sa +90 -0
- package/sa_std/plugin_async.sal +29 -0
- package/sa_std/plugin_async.sla +4 -0
- package/sa_std/plugin_http_async.sa +46 -0
- package/sa_std/plugin_http_server.sa +61 -0
- package/sa_std/plugin_http_server.sla +2 -0
- package/sa_std/plugin_sqlite.sa +106 -0
- package/sa_std/plugin_sqlite.sla +2 -0
- package/sa_std/prelude.sa +60 -0
- package/sa_std/prelude.sal +55 -0
- package/sa_std/process.sa +916 -0
- package/sa_std/process.sai +57 -0
- package/sa_std/process.sal +27 -0
- package/sa_std/ptr.sa +503 -0
- package/sa_std/ptr.sal +2 -0
- package/sa_std/result.sa +2 -0
- package/sa_std/result.sal +1 -0
- package/sa_std/rust_core.sa +51 -0
- package/sa_std/rust_core.sal +26 -0
- package/sa_std/sa.mod +7 -0
- package/sa_std/sort.sa +156 -0
- package/sa_std/str.sla +13 -0
- package/sa_std/string.sa +12240 -0
- package/sa_std/string.sai +25 -0
- package/sa_std/string.sal +17 -0
- package/sa_std/string_format.sa +269 -0
- package/sa_std/sync/atomic.sa +1500 -0
- package/sa_std/sync/atomic.sal +45 -0
- package/sa_std/sync/barrier.sa +105 -0
- package/sa_std/sync/barrier.sal +7 -0
- package/sa_std/sync/condvar.sa +240 -0
- package/sa_std/sync/condvar.sal +4 -0
- package/sa_std/sync/mpsc.sa +758 -0
- package/sa_std/sync/mpsc.sal +42 -0
- package/sa_std/sync/mpsc_list.sa +255 -0
- package/sa_std/sync/mpsc_list.sal +3 -0
- package/sa_std/sync/mutex.sa +182 -0
- package/sa_std/sync/mutex.sal +7 -0
- package/sa_std/sync/once.sa +371 -0
- package/sa_std/sync/once.sal +31 -0
- package/sa_std/sync/poison.sa +36 -0
- package/sa_std/sync/poison.sal +11 -0
- package/sa_std/sync/prelude.sa +8 -0
- package/sa_std/sync/prelude.sal +7 -0
- package/sa_std/sync/rwlock.sa +369 -0
- package/sa_std/sync/rwlock.sal +13 -0
- package/sa_std/task.sa +2 -0
- package/sa_std/task.sal +1 -0
- package/sa_std/term.sa +2 -0
- package/sa_std/term.sai +10 -0
- package/sa_std/term.sal +33 -0
- package/sa_std/testing/assert.sai +4 -0
- package/sa_std/testing/mock_io.sa +174 -0
- package/sa_std/testing/mock_io.sal +5 -0
- package/sa_std/testing/prelude.sa +2 -0
- package/sa_std/testing/prelude.sal +1 -0
- package/sa_std/text/prelude.sa +1 -0
- package/sa_std/text/prelude.sal +1 -0
- package/sa_std/text/regex.sa +2 -0
- package/sa_std/text/regex.sai +9 -0
- package/sa_std/text/regex.sal +33 -0
- package/sa_std/thread/join_handle.sa +3 -0
- package/sa_std/thread/join_handle.sal +1 -0
- package/sa_std/thread/prelude.sa +4 -0
- package/sa_std/thread/prelude.sal +3 -0
- package/sa_std/thread.sa +160 -0
- package/sa_std/thread.sai +11 -0
- package/sa_std/thread.sal +4 -0
- package/sa_std/thread_local.sa +45 -0
- package/sa_std/thread_local.sai +9 -0
- package/sa_std/time/duration.sa +3 -0
- package/sa_std/time/duration.sal +1 -0
- package/sa_std/time/instant.sa +3 -0
- package/sa_std/time/instant.sal +1 -0
- package/sa_std/time/prelude.sa +4 -0
- package/sa_std/time/prelude.sal +4 -0
- package/sa_std/time.sa +850 -0
- package/sa_std/time.sai +37 -0
- package/sa_std/time.sal +35 -0
- package/sa_std/time.sla +67 -0
- package/sa_std/tls_client.sai +39 -0
- package/sa_std/vec.sa +5754 -0
- package/sa_std/vec.sal +1 -0
- package/sa_std/vec_deque.sa +4925 -0
- package/sa_std/vec_deque.sal +8 -0
- package/sa_std/vec_runtime_macros.sa +11 -0
- package/sa_std/ws_client.sai +57 -0
|
@@ -0,0 +1,3003 @@
|
|
|
1
|
+
// Concrete u64 max-heap with grow-on-demand storage.
|
|
2
|
+
@import "core/mem.sa"
|
|
3
|
+
@import "core/slice.sal"
|
|
4
|
+
@import "core/slice.sa"
|
|
5
|
+
@import "core/iter.sa"
|
|
6
|
+
@import "alloc/vec.sal"
|
|
7
|
+
@import "vec.sa"
|
|
8
|
+
@import "num.sa"
|
|
9
|
+
@import "binary_heap.sal"
|
|
10
|
+
|
|
11
|
+
@binary_heap_swap(&heap: ptr, lhs: u64, rhs: u64) -> void:
|
|
12
|
+
L_ENTRY:
|
|
13
|
+
buf = take heap+BinaryHeap_buf
|
|
14
|
+
lhs_off = mul lhs, BinaryHeap_SLOT_SIZE
|
|
15
|
+
rhs_off = mul rhs, BinaryHeap_SLOT_SIZE
|
|
16
|
+
lhs_ptr = ptr_add buf, lhs_off
|
|
17
|
+
rhs_ptr = ptr_add buf, rhs_off
|
|
18
|
+
lhs_value = load lhs_ptr+0 as u64
|
|
19
|
+
rhs_value = load rhs_ptr+0 as u64
|
|
20
|
+
store lhs_ptr+0, rhs_value as u64
|
|
21
|
+
store rhs_ptr+0, lhs_value as u64
|
|
22
|
+
!lhs_value
|
|
23
|
+
!rhs_value
|
|
24
|
+
!lhs_ptr
|
|
25
|
+
!rhs_ptr
|
|
26
|
+
!lhs_off
|
|
27
|
+
!rhs_off
|
|
28
|
+
!buf
|
|
29
|
+
!rhs
|
|
30
|
+
!lhs
|
|
31
|
+
!heap
|
|
32
|
+
return
|
|
33
|
+
|
|
34
|
+
@export sa_binary_heap_new() -> ^ptr:
|
|
35
|
+
L_ENTRY:
|
|
36
|
+
heap = alloc BinaryHeap_SIZE
|
|
37
|
+
initial_bytes = mul BinaryHeap_INITIAL_CAP, BinaryHeap_SLOT_SIZE
|
|
38
|
+
buf = alloc initial_bytes
|
|
39
|
+
call @sa_mem_set(&buf, 0, initial_bytes)
|
|
40
|
+
store heap+BinaryHeap_buf, buf as ptr
|
|
41
|
+
store heap+BinaryHeap_cap, BinaryHeap_INITIAL_CAP as u64
|
|
42
|
+
store heap+BinaryHeap_len, 0 as u64
|
|
43
|
+
^buf
|
|
44
|
+
!initial_bytes
|
|
45
|
+
return heap
|
|
46
|
+
|
|
47
|
+
@binary_heap_next_capacity(requested: u64) -> u64:
|
|
48
|
+
L_ENTRY:
|
|
49
|
+
cap = BinaryHeap_INITIAL_CAP
|
|
50
|
+
requested_is_zero = eq requested, 0
|
|
51
|
+
br requested_is_zero -> L_NEXT_CAP_ZERO, L_NEXT_CAP_LOOP
|
|
52
|
+
|
|
53
|
+
L_NEXT_CAP_LOOP:
|
|
54
|
+
cap_ge_requested = uge cap, requested
|
|
55
|
+
br cap_ge_requested -> L_NEXT_CAP_DONE, L_NEXT_CAP_GROW
|
|
56
|
+
|
|
57
|
+
L_NEXT_CAP_GROW:
|
|
58
|
+
EXPAND NUM_U64_CHECKED_ADD next_cap_ok, next_cap, cap, cap
|
|
59
|
+
br next_cap_ok -> L_NEXT_CAP_GROW_OK, L_NEXT_CAP_OVERFLOW
|
|
60
|
+
|
|
61
|
+
L_NEXT_CAP_OVERFLOW:
|
|
62
|
+
panic(1801)
|
|
63
|
+
|
|
64
|
+
L_NEXT_CAP_GROW_OK:
|
|
65
|
+
cap = next_cap
|
|
66
|
+
!next_cap_ok
|
|
67
|
+
!cap_ge_requested
|
|
68
|
+
jmp L_NEXT_CAP_LOOP
|
|
69
|
+
|
|
70
|
+
L_NEXT_CAP_DONE:
|
|
71
|
+
!cap_ge_requested
|
|
72
|
+
!requested_is_zero
|
|
73
|
+
!requested
|
|
74
|
+
return cap
|
|
75
|
+
|
|
76
|
+
L_NEXT_CAP_ZERO:
|
|
77
|
+
!requested_is_zero
|
|
78
|
+
!requested
|
|
79
|
+
return 0
|
|
80
|
+
|
|
81
|
+
@export sa_binary_heap_with_capacity(cap: u64) -> ^ptr:
|
|
82
|
+
L_ENTRY:
|
|
83
|
+
heap = alloc BinaryHeap_SIZE
|
|
84
|
+
target_cap = call @binary_heap_next_capacity(cap)
|
|
85
|
+
target_zero = eq target_cap, 0
|
|
86
|
+
br target_zero -> L_WITH_CAP_EMPTY, L_WITH_CAP_ALLOC
|
|
87
|
+
|
|
88
|
+
L_WITH_CAP_ALLOC:
|
|
89
|
+
EXPAND NUM_U64_CHECKED_MUL bytes_ok, bytes, target_cap, BinaryHeap_SLOT_SIZE
|
|
90
|
+
br bytes_ok -> L_WITH_CAP_ALLOC_BYTES_OK, L_WITH_CAP_ALLOC_OVERFLOW
|
|
91
|
+
|
|
92
|
+
L_WITH_CAP_ALLOC_OVERFLOW:
|
|
93
|
+
panic(1802)
|
|
94
|
+
|
|
95
|
+
L_WITH_CAP_ALLOC_BYTES_OK:
|
|
96
|
+
buf = alloc bytes
|
|
97
|
+
call @sa_mem_set(&buf, 0, bytes)
|
|
98
|
+
store heap+BinaryHeap_buf, buf as ptr
|
|
99
|
+
store heap+BinaryHeap_cap, target_cap as u64
|
|
100
|
+
store heap+BinaryHeap_len, 0 as u64
|
|
101
|
+
^buf
|
|
102
|
+
!bytes_ok
|
|
103
|
+
!bytes
|
|
104
|
+
!target_zero
|
|
105
|
+
!target_cap
|
|
106
|
+
!cap
|
|
107
|
+
return heap
|
|
108
|
+
|
|
109
|
+
L_WITH_CAP_EMPTY:
|
|
110
|
+
store heap+BinaryHeap_buf, 0 as ptr
|
|
111
|
+
store heap+BinaryHeap_cap, 0 as u64
|
|
112
|
+
store heap+BinaryHeap_len, 0 as u64
|
|
113
|
+
!target_zero
|
|
114
|
+
!target_cap
|
|
115
|
+
!cap
|
|
116
|
+
return heap
|
|
117
|
+
|
|
118
|
+
@export sa_binary_heap_try_with_capacity(cap: u64, &out_heap_slot: ptr) -> i32:
|
|
119
|
+
L_ENTRY:
|
|
120
|
+
heap = call @sa_binary_heap_with_capacity(cap)
|
|
121
|
+
store out_heap_slot+0, heap as ptr
|
|
122
|
+
!heap
|
|
123
|
+
!out_heap_slot
|
|
124
|
+
!cap
|
|
125
|
+
return 1
|
|
126
|
+
|
|
127
|
+
@export sa_binary_heap_free(^heap: ptr) -> void:
|
|
128
|
+
L_ENTRY:
|
|
129
|
+
buf = take heap+BinaryHeap_buf
|
|
130
|
+
!buf
|
|
131
|
+
!heap
|
|
132
|
+
return
|
|
133
|
+
|
|
134
|
+
@export sa_binary_heap_len(&heap: ptr) -> u64:
|
|
135
|
+
L_ENTRY:
|
|
136
|
+
len = load heap+BinaryHeap_len as u64
|
|
137
|
+
!heap
|
|
138
|
+
return len
|
|
139
|
+
|
|
140
|
+
@export sa_binary_heap_capacity(&heap: ptr) -> u64:
|
|
141
|
+
L_ENTRY:
|
|
142
|
+
cap = load heap+BinaryHeap_cap as u64
|
|
143
|
+
!heap
|
|
144
|
+
return cap
|
|
145
|
+
|
|
146
|
+
@export sa_binary_heap_is_empty(&heap: ptr) -> i32:
|
|
147
|
+
L_ENTRY:
|
|
148
|
+
len = load heap+BinaryHeap_len as u64
|
|
149
|
+
empty = eq len, 0
|
|
150
|
+
result = empty as i32
|
|
151
|
+
!len
|
|
152
|
+
!heap
|
|
153
|
+
return result
|
|
154
|
+
|
|
155
|
+
@export sa_binary_heap_peek(&heap: ptr) -> u64:
|
|
156
|
+
L_ENTRY:
|
|
157
|
+
len = load heap+BinaryHeap_len as u64
|
|
158
|
+
empty = eq len, 0
|
|
159
|
+
br empty -> L_EMPTY, L_HIT
|
|
160
|
+
|
|
161
|
+
L_HIT:
|
|
162
|
+
buf = take heap+BinaryHeap_buf
|
|
163
|
+
root = load buf+0 as u64
|
|
164
|
+
!buf
|
|
165
|
+
!empty
|
|
166
|
+
!len
|
|
167
|
+
!heap
|
|
168
|
+
return root
|
|
169
|
+
|
|
170
|
+
L_EMPTY:
|
|
171
|
+
!empty
|
|
172
|
+
!len
|
|
173
|
+
!heap
|
|
174
|
+
return 0
|
|
175
|
+
|
|
176
|
+
@export sa_binary_heap_try_peek_mut_ptr(&heap: ptr, &out_ptr_slot: ptr) -> i32:
|
|
177
|
+
L_ENTRY:
|
|
178
|
+
len = load heap+BinaryHeap_len as u64
|
|
179
|
+
empty = eq len, 0
|
|
180
|
+
br empty -> L_PEEK_MUT_EMPTY, L_PEEK_MUT_READY
|
|
181
|
+
|
|
182
|
+
L_PEEK_MUT_READY:
|
|
183
|
+
buf = load heap+BinaryHeap_buf as ptr
|
|
184
|
+
store out_ptr_slot+0, buf as ptr
|
|
185
|
+
!buf
|
|
186
|
+
!empty
|
|
187
|
+
!len
|
|
188
|
+
!heap
|
|
189
|
+
!out_ptr_slot
|
|
190
|
+
return 1
|
|
191
|
+
|
|
192
|
+
L_PEEK_MUT_EMPTY:
|
|
193
|
+
store out_ptr_slot+0, 0 as ptr
|
|
194
|
+
!empty
|
|
195
|
+
!len
|
|
196
|
+
!heap
|
|
197
|
+
!out_ptr_slot
|
|
198
|
+
return 0
|
|
199
|
+
|
|
200
|
+
@export sa_binary_heap_try_peek_mut_set_u64(&heap: ptr, value: u64, &out_old_slot: ptr) -> i32:
|
|
201
|
+
L_ENTRY:
|
|
202
|
+
len = load heap+BinaryHeap_len as u64
|
|
203
|
+
empty = eq len, 0
|
|
204
|
+
br empty -> L_PEEK_SET_EMPTY, L_PEEK_SET_READY
|
|
205
|
+
|
|
206
|
+
L_PEEK_SET_READY:
|
|
207
|
+
buf = take heap+BinaryHeap_buf
|
|
208
|
+
old_value = load buf+0 as u64
|
|
209
|
+
store out_old_slot+0, old_value as u64
|
|
210
|
+
store buf+0, value as u64
|
|
211
|
+
call @binary_heap_sift_down(&heap, 0)
|
|
212
|
+
!old_value
|
|
213
|
+
!buf
|
|
214
|
+
!empty
|
|
215
|
+
!len
|
|
216
|
+
!value
|
|
217
|
+
!heap
|
|
218
|
+
!out_old_slot
|
|
219
|
+
return 1
|
|
220
|
+
|
|
221
|
+
L_PEEK_SET_EMPTY:
|
|
222
|
+
store out_old_slot+0, 0 as u64
|
|
223
|
+
!empty
|
|
224
|
+
!len
|
|
225
|
+
!value
|
|
226
|
+
!heap
|
|
227
|
+
!out_old_slot
|
|
228
|
+
return 0
|
|
229
|
+
|
|
230
|
+
@binary_heap_sift_up(&heap: ptr, index: u64) -> void:
|
|
231
|
+
L_ENTRY:
|
|
232
|
+
is_root = eq index, 0
|
|
233
|
+
br is_root -> L_DONE_ROOT, L_BODY
|
|
234
|
+
|
|
235
|
+
L_BODY:
|
|
236
|
+
idx_minus_one = sub index, 1
|
|
237
|
+
parent = udiv idx_minus_one, 2
|
|
238
|
+
buf = take heap+BinaryHeap_buf
|
|
239
|
+
child_off = mul index, BinaryHeap_SLOT_SIZE
|
|
240
|
+
parent_off = mul parent, BinaryHeap_SLOT_SIZE
|
|
241
|
+
child_ptr = ptr_add buf, child_off
|
|
242
|
+
parent_ptr = ptr_add buf, parent_off
|
|
243
|
+
child_value = load child_ptr+0 as u64
|
|
244
|
+
parent_value = load parent_ptr+0 as u64
|
|
245
|
+
should_swap = ugt child_value, parent_value
|
|
246
|
+
br should_swap -> L_SWAP, L_DONE_BODY
|
|
247
|
+
|
|
248
|
+
L_SWAP:
|
|
249
|
+
call @binary_heap_swap(&heap, parent, index)
|
|
250
|
+
call @binary_heap_sift_up(&heap, parent)
|
|
251
|
+
!should_swap
|
|
252
|
+
!child_value
|
|
253
|
+
!parent_value
|
|
254
|
+
!child_ptr
|
|
255
|
+
!parent_ptr
|
|
256
|
+
!child_off
|
|
257
|
+
!parent_off
|
|
258
|
+
!idx_minus_one
|
|
259
|
+
!buf
|
|
260
|
+
!parent
|
|
261
|
+
!index
|
|
262
|
+
!is_root
|
|
263
|
+
!heap
|
|
264
|
+
return
|
|
265
|
+
|
|
266
|
+
L_DONE_BODY:
|
|
267
|
+
!should_swap
|
|
268
|
+
!child_value
|
|
269
|
+
!parent_value
|
|
270
|
+
!child_ptr
|
|
271
|
+
!parent_ptr
|
|
272
|
+
!child_off
|
|
273
|
+
!parent_off
|
|
274
|
+
!idx_minus_one
|
|
275
|
+
!buf
|
|
276
|
+
!parent
|
|
277
|
+
!index
|
|
278
|
+
!is_root
|
|
279
|
+
!heap
|
|
280
|
+
return
|
|
281
|
+
|
|
282
|
+
L_DONE_ROOT:
|
|
283
|
+
!is_root
|
|
284
|
+
!index
|
|
285
|
+
!heap
|
|
286
|
+
return
|
|
287
|
+
|
|
288
|
+
@binary_heap_sift_down(&heap: ptr, index: u64) -> void:
|
|
289
|
+
L_ENTRY:
|
|
290
|
+
len = load heap+BinaryHeap_len as u64
|
|
291
|
+
left_base = mul index, 2
|
|
292
|
+
left = add left_base, 1
|
|
293
|
+
has_left = ult left, len
|
|
294
|
+
br has_left -> L_BODY, L_DONE_SHORT
|
|
295
|
+
|
|
296
|
+
L_BODY:
|
|
297
|
+
buf = take heap+BinaryHeap_buf
|
|
298
|
+
parent_off = mul index, BinaryHeap_SLOT_SIZE
|
|
299
|
+
parent_ptr = ptr_add buf, parent_off
|
|
300
|
+
parent_value = load parent_ptr+0 as u64
|
|
301
|
+
left_off = mul left, BinaryHeap_SLOT_SIZE
|
|
302
|
+
left_ptr = ptr_add buf, left_off
|
|
303
|
+
left_value = load left_ptr+0 as u64
|
|
304
|
+
right = add left, 1
|
|
305
|
+
has_right = ult right, len
|
|
306
|
+
br has_right -> L_RIGHT_BRANCH, L_LEFT_ONLY
|
|
307
|
+
|
|
308
|
+
L_LEFT_ONLY:
|
|
309
|
+
should_swap = ugt left_value, parent_value
|
|
310
|
+
br should_swap -> L_SWAP_LEFT_ONLY, L_DONE_LEFT_ONLY
|
|
311
|
+
|
|
312
|
+
L_RIGHT_BRANCH:
|
|
313
|
+
right_off = mul right, BinaryHeap_SLOT_SIZE
|
|
314
|
+
right_ptr = ptr_add buf, right_off
|
|
315
|
+
right_value = load right_ptr+0 as u64
|
|
316
|
+
right_bigger = ugt right_value, left_value
|
|
317
|
+
br right_bigger -> L_RIGHT_BIGGER, L_LEFT_BIGGER
|
|
318
|
+
|
|
319
|
+
L_RIGHT_BIGGER:
|
|
320
|
+
should_swap = ugt right_value, parent_value
|
|
321
|
+
br should_swap -> L_SWAP_RIGHT, L_DONE_RIGHT_BRANCH
|
|
322
|
+
|
|
323
|
+
L_LEFT_BIGGER:
|
|
324
|
+
should_swap = ugt left_value, parent_value
|
|
325
|
+
br should_swap -> L_SWAP_LEFT_RIGHT, L_DONE_RIGHT_BRANCH
|
|
326
|
+
|
|
327
|
+
L_SWAP_RIGHT:
|
|
328
|
+
call @binary_heap_swap(&heap, index, right)
|
|
329
|
+
call @binary_heap_sift_down(&heap, right)
|
|
330
|
+
!should_swap
|
|
331
|
+
!right_bigger
|
|
332
|
+
!right_value
|
|
333
|
+
!right_ptr
|
|
334
|
+
!right_off
|
|
335
|
+
!has_right
|
|
336
|
+
!right
|
|
337
|
+
!left_value
|
|
338
|
+
!left_ptr
|
|
339
|
+
!left_off
|
|
340
|
+
!parent_value
|
|
341
|
+
!parent_ptr
|
|
342
|
+
!parent_off
|
|
343
|
+
!buf
|
|
344
|
+
!len
|
|
345
|
+
!left_base
|
|
346
|
+
!left
|
|
347
|
+
!index
|
|
348
|
+
!heap
|
|
349
|
+
return
|
|
350
|
+
|
|
351
|
+
L_SWAP_LEFT_RIGHT:
|
|
352
|
+
call @binary_heap_swap(&heap, index, left)
|
|
353
|
+
call @binary_heap_sift_down(&heap, left)
|
|
354
|
+
!should_swap
|
|
355
|
+
!right_bigger
|
|
356
|
+
!right_value
|
|
357
|
+
!right_ptr
|
|
358
|
+
!right_off
|
|
359
|
+
!has_right
|
|
360
|
+
!right
|
|
361
|
+
!left_value
|
|
362
|
+
!left_ptr
|
|
363
|
+
!left_off
|
|
364
|
+
!parent_value
|
|
365
|
+
!parent_ptr
|
|
366
|
+
!parent_off
|
|
367
|
+
!buf
|
|
368
|
+
!len
|
|
369
|
+
!left_base
|
|
370
|
+
!left
|
|
371
|
+
!index
|
|
372
|
+
!heap
|
|
373
|
+
return
|
|
374
|
+
|
|
375
|
+
L_SWAP_LEFT_ONLY:
|
|
376
|
+
call @binary_heap_swap(&heap, index, left)
|
|
377
|
+
call @binary_heap_sift_down(&heap, left)
|
|
378
|
+
!should_swap
|
|
379
|
+
!left_value
|
|
380
|
+
!left_ptr
|
|
381
|
+
!left_off
|
|
382
|
+
!parent_value
|
|
383
|
+
!parent_ptr
|
|
384
|
+
!parent_off
|
|
385
|
+
!buf
|
|
386
|
+
!len
|
|
387
|
+
!left_base
|
|
388
|
+
!left
|
|
389
|
+
!has_left
|
|
390
|
+
!index
|
|
391
|
+
!heap
|
|
392
|
+
return
|
|
393
|
+
|
|
394
|
+
L_DONE_RIGHT_BRANCH:
|
|
395
|
+
!should_swap
|
|
396
|
+
!right_bigger
|
|
397
|
+
!right_value
|
|
398
|
+
!right_ptr
|
|
399
|
+
!right_off
|
|
400
|
+
!has_right
|
|
401
|
+
!right
|
|
402
|
+
!left_value
|
|
403
|
+
!left_ptr
|
|
404
|
+
!left_off
|
|
405
|
+
!parent_value
|
|
406
|
+
!parent_ptr
|
|
407
|
+
!parent_off
|
|
408
|
+
!buf
|
|
409
|
+
!len
|
|
410
|
+
!left_base
|
|
411
|
+
!left
|
|
412
|
+
!index
|
|
413
|
+
!heap
|
|
414
|
+
return
|
|
415
|
+
|
|
416
|
+
L_DONE_LEFT_ONLY:
|
|
417
|
+
!should_swap
|
|
418
|
+
!left_value
|
|
419
|
+
!left_ptr
|
|
420
|
+
!left_off
|
|
421
|
+
!parent_value
|
|
422
|
+
!parent_ptr
|
|
423
|
+
!parent_off
|
|
424
|
+
!buf
|
|
425
|
+
!len
|
|
426
|
+
!left_base
|
|
427
|
+
!left
|
|
428
|
+
!has_left
|
|
429
|
+
!index
|
|
430
|
+
!heap
|
|
431
|
+
return
|
|
432
|
+
|
|
433
|
+
L_DONE_SHORT:
|
|
434
|
+
!has_left
|
|
435
|
+
!left_base
|
|
436
|
+
!left
|
|
437
|
+
!len
|
|
438
|
+
!index
|
|
439
|
+
!heap
|
|
440
|
+
return
|
|
441
|
+
|
|
442
|
+
@binary_heap_grow(&heap: ptr) -> void:
|
|
443
|
+
L_ENTRY:
|
|
444
|
+
old_buf = take heap+BinaryHeap_buf
|
|
445
|
+
old_cap = load heap+BinaryHeap_cap as u64
|
|
446
|
+
old_len = load heap+BinaryHeap_len as u64
|
|
447
|
+
cap_is_zero = eq old_cap, 0
|
|
448
|
+
br cap_is_zero -> L_GROW_INIT, L_GROW_DOUBLE
|
|
449
|
+
|
|
450
|
+
L_GROW_INIT:
|
|
451
|
+
next_cap_raw = BinaryHeap_INITIAL_CAP
|
|
452
|
+
next_cap = next_cap_raw
|
|
453
|
+
next_cap_ok = add 0, 1
|
|
454
|
+
jmp L_GROW_ALLOC
|
|
455
|
+
|
|
456
|
+
L_GROW_DOUBLE:
|
|
457
|
+
EXPAND NUM_U64_CHECKED_ADD next_cap_ok, next_cap_raw, old_cap, old_cap
|
|
458
|
+
br next_cap_ok -> L_GROW_DOUBLE_OK, L_GROW_CAP_OVERFLOW
|
|
459
|
+
|
|
460
|
+
L_GROW_CAP_OVERFLOW:
|
|
461
|
+
panic(1803)
|
|
462
|
+
|
|
463
|
+
L_GROW_DOUBLE_OK:
|
|
464
|
+
next_cap = next_cap_raw
|
|
465
|
+
jmp L_GROW_ALLOC
|
|
466
|
+
|
|
467
|
+
L_GROW_ALLOC:
|
|
468
|
+
EXPAND NUM_U64_CHECKED_MUL copy_bytes_ok, copy_bytes, old_len, BinaryHeap_SLOT_SIZE
|
|
469
|
+
br copy_bytes_ok -> L_GROW_COPY_BYTES_OK, L_GROW_COPY_BYTES_OVERFLOW
|
|
470
|
+
|
|
471
|
+
L_GROW_COPY_BYTES_OVERFLOW:
|
|
472
|
+
panic(1804)
|
|
473
|
+
|
|
474
|
+
L_GROW_COPY_BYTES_OK:
|
|
475
|
+
EXPAND NUM_U64_CHECKED_MUL new_bytes_ok, new_bytes, next_cap, BinaryHeap_SLOT_SIZE
|
|
476
|
+
br new_bytes_ok -> L_GROW_ALLOC_BYTES_OK, L_GROW_ALLOC_BYTES_OVERFLOW
|
|
477
|
+
|
|
478
|
+
L_GROW_ALLOC_BYTES_OVERFLOW:
|
|
479
|
+
panic(1805)
|
|
480
|
+
|
|
481
|
+
L_GROW_ALLOC_BYTES_OK:
|
|
482
|
+
new_buf = alloc new_bytes
|
|
483
|
+
call @sa_mem_copy(&new_buf, &old_buf, copy_bytes)
|
|
484
|
+
!new_bytes_ok
|
|
485
|
+
!copy_bytes_ok
|
|
486
|
+
!copy_bytes
|
|
487
|
+
!new_bytes
|
|
488
|
+
!old_len
|
|
489
|
+
!old_cap
|
|
490
|
+
!cap_is_zero
|
|
491
|
+
!old_buf
|
|
492
|
+
store heap+BinaryHeap_buf, new_buf as ptr
|
|
493
|
+
store heap+BinaryHeap_cap, next_cap as u64
|
|
494
|
+
^new_buf
|
|
495
|
+
!next_cap_ok
|
|
496
|
+
!next_cap
|
|
497
|
+
!heap
|
|
498
|
+
return
|
|
499
|
+
|
|
500
|
+
@binary_heap_realloc(&heap: ptr, target_cap: u64) -> void:
|
|
501
|
+
L_ENTRY:
|
|
502
|
+
old_buf = take heap+BinaryHeap_buf
|
|
503
|
+
len = load heap+BinaryHeap_len as u64
|
|
504
|
+
target_zero = eq target_cap, 0
|
|
505
|
+
br target_zero -> L_REALLOC_EMPTY, L_REALLOC_ALLOC
|
|
506
|
+
|
|
507
|
+
L_REALLOC_ALLOC:
|
|
508
|
+
EXPAND NUM_U64_CHECKED_MUL realloc_new_bytes_ok, new_bytes, target_cap, BinaryHeap_SLOT_SIZE
|
|
509
|
+
br realloc_new_bytes_ok -> L_REALLOC_NEW_BYTES_OK, L_REALLOC_NEW_BYTES_OVERFLOW
|
|
510
|
+
|
|
511
|
+
L_REALLOC_NEW_BYTES_OVERFLOW:
|
|
512
|
+
panic(1806)
|
|
513
|
+
|
|
514
|
+
L_REALLOC_NEW_BYTES_OK:
|
|
515
|
+
EXPAND NUM_U64_CHECKED_MUL realloc_copy_bytes_ok, copy_bytes, len, BinaryHeap_SLOT_SIZE
|
|
516
|
+
br realloc_copy_bytes_ok -> L_REALLOC_COPY_BYTES_OK, L_REALLOC_COPY_BYTES_OVERFLOW
|
|
517
|
+
|
|
518
|
+
L_REALLOC_COPY_BYTES_OVERFLOW:
|
|
519
|
+
panic(1807)
|
|
520
|
+
|
|
521
|
+
L_REALLOC_COPY_BYTES_OK:
|
|
522
|
+
new_buf = alloc new_bytes
|
|
523
|
+
call @sa_mem_set(&new_buf, 0, new_bytes)
|
|
524
|
+
call @sa_mem_copy(&new_buf, &old_buf, copy_bytes)
|
|
525
|
+
!realloc_copy_bytes_ok
|
|
526
|
+
!realloc_new_bytes_ok
|
|
527
|
+
!copy_bytes
|
|
528
|
+
!new_bytes
|
|
529
|
+
!old_buf
|
|
530
|
+
store heap+BinaryHeap_buf, new_buf as ptr
|
|
531
|
+
store heap+BinaryHeap_cap, target_cap as u64
|
|
532
|
+
^new_buf
|
|
533
|
+
!target_zero
|
|
534
|
+
!len
|
|
535
|
+
!target_cap
|
|
536
|
+
!heap
|
|
537
|
+
return
|
|
538
|
+
|
|
539
|
+
L_REALLOC_EMPTY:
|
|
540
|
+
!old_buf
|
|
541
|
+
store heap+BinaryHeap_buf, 0 as ptr
|
|
542
|
+
store heap+BinaryHeap_cap, 0 as u64
|
|
543
|
+
store heap+BinaryHeap_len, 0 as u64
|
|
544
|
+
!target_zero
|
|
545
|
+
!len
|
|
546
|
+
!target_cap
|
|
547
|
+
!heap
|
|
548
|
+
return
|
|
549
|
+
|
|
550
|
+
@export sa_binary_heap_reserve(&heap: ptr, additional: u64) -> void:
|
|
551
|
+
L_ENTRY:
|
|
552
|
+
len = load heap+BinaryHeap_len as u64
|
|
553
|
+
cap = load heap+BinaryHeap_cap as u64
|
|
554
|
+
EXPAND NUM_U64_CHECKED_ADD reserve_needed_ok, needed, len, additional
|
|
555
|
+
br reserve_needed_ok -> L_RESERVE_NEEDED_OK, L_RESERVE_OVERFLOW
|
|
556
|
+
|
|
557
|
+
L_RESERVE_OVERFLOW:
|
|
558
|
+
panic(1810)
|
|
559
|
+
|
|
560
|
+
L_RESERVE_NEEDED_OK:
|
|
561
|
+
has_room = uge cap, needed
|
|
562
|
+
br has_room -> L_RESERVE_DONE, L_RESERVE_GROW
|
|
563
|
+
|
|
564
|
+
L_RESERVE_GROW:
|
|
565
|
+
target_cap = call @binary_heap_next_capacity(needed)
|
|
566
|
+
call @binary_heap_realloc(&heap, target_cap)
|
|
567
|
+
!target_cap
|
|
568
|
+
!has_room
|
|
569
|
+
!needed
|
|
570
|
+
!reserve_needed_ok
|
|
571
|
+
!cap
|
|
572
|
+
!len
|
|
573
|
+
!additional
|
|
574
|
+
!heap
|
|
575
|
+
return
|
|
576
|
+
|
|
577
|
+
L_RESERVE_DONE:
|
|
578
|
+
!has_room
|
|
579
|
+
!needed
|
|
580
|
+
!reserve_needed_ok
|
|
581
|
+
!cap
|
|
582
|
+
!len
|
|
583
|
+
!additional
|
|
584
|
+
!heap
|
|
585
|
+
return
|
|
586
|
+
|
|
587
|
+
@export sa_binary_heap_reserve_exact(&heap: ptr, additional: u64) -> void:
|
|
588
|
+
L_ENTRY:
|
|
589
|
+
len = load heap+BinaryHeap_len as u64
|
|
590
|
+
cap = load heap+BinaryHeap_cap as u64
|
|
591
|
+
EXPAND NUM_U64_CHECKED_ADD reserve_exact_needed_ok, needed, len, additional
|
|
592
|
+
br reserve_exact_needed_ok -> L_RESERVE_EXACT_NEEDED_OK, L_RESERVE_EXACT_OVERFLOW
|
|
593
|
+
|
|
594
|
+
L_RESERVE_EXACT_OVERFLOW:
|
|
595
|
+
panic(1811)
|
|
596
|
+
|
|
597
|
+
L_RESERVE_EXACT_NEEDED_OK:
|
|
598
|
+
has_room = uge cap, needed
|
|
599
|
+
br has_room -> L_RESERVE_EXACT_DONE, L_RESERVE_EXACT_GROW
|
|
600
|
+
|
|
601
|
+
L_RESERVE_EXACT_GROW:
|
|
602
|
+
call @binary_heap_realloc(&heap, needed)
|
|
603
|
+
!has_room
|
|
604
|
+
!needed
|
|
605
|
+
!reserve_exact_needed_ok
|
|
606
|
+
!cap
|
|
607
|
+
!len
|
|
608
|
+
!additional
|
|
609
|
+
!heap
|
|
610
|
+
return
|
|
611
|
+
|
|
612
|
+
L_RESERVE_EXACT_DONE:
|
|
613
|
+
!has_room
|
|
614
|
+
!needed
|
|
615
|
+
!reserve_exact_needed_ok
|
|
616
|
+
!cap
|
|
617
|
+
!len
|
|
618
|
+
!additional
|
|
619
|
+
!heap
|
|
620
|
+
return
|
|
621
|
+
|
|
622
|
+
@export sa_binary_heap_try_reserve(&heap: ptr, additional: u64) -> i32:
|
|
623
|
+
L_ENTRY:
|
|
624
|
+
call @sa_binary_heap_reserve(&heap, additional)
|
|
625
|
+
!additional
|
|
626
|
+
!heap
|
|
627
|
+
return 1
|
|
628
|
+
|
|
629
|
+
@export sa_binary_heap_try_reserve_exact(&heap: ptr, additional: u64) -> i32:
|
|
630
|
+
L_ENTRY:
|
|
631
|
+
call @sa_binary_heap_reserve_exact(&heap, additional)
|
|
632
|
+
!additional
|
|
633
|
+
!heap
|
|
634
|
+
return 1
|
|
635
|
+
|
|
636
|
+
@export sa_binary_heap_shrink_to(&heap: ptr, min_capacity: u64) -> void:
|
|
637
|
+
L_ENTRY:
|
|
638
|
+
len = load heap+BinaryHeap_len as u64
|
|
639
|
+
cap = load heap+BinaryHeap_cap as u64
|
|
640
|
+
keep_len = uge len, min_capacity
|
|
641
|
+
br keep_len -> L_SHRINK_TO_LEN, L_SHRINK_TO_MIN
|
|
642
|
+
|
|
643
|
+
L_SHRINK_TO_LEN:
|
|
644
|
+
target_cap = add len, 0
|
|
645
|
+
jmp L_SHRINK_TO_CHECK
|
|
646
|
+
|
|
647
|
+
L_SHRINK_TO_MIN:
|
|
648
|
+
target_cap = add min_capacity, 0
|
|
649
|
+
|
|
650
|
+
L_SHRINK_TO_CHECK:
|
|
651
|
+
needs_shrink = ult target_cap, cap
|
|
652
|
+
br needs_shrink -> L_SHRINK_TO_APPLY, L_SHRINK_TO_DONE
|
|
653
|
+
|
|
654
|
+
L_SHRINK_TO_APPLY:
|
|
655
|
+
call @binary_heap_realloc(&heap, target_cap)
|
|
656
|
+
!needs_shrink
|
|
657
|
+
!target_cap
|
|
658
|
+
!keep_len
|
|
659
|
+
!cap
|
|
660
|
+
!len
|
|
661
|
+
!min_capacity
|
|
662
|
+
!heap
|
|
663
|
+
return
|
|
664
|
+
|
|
665
|
+
L_SHRINK_TO_DONE:
|
|
666
|
+
!needs_shrink
|
|
667
|
+
!target_cap
|
|
668
|
+
!keep_len
|
|
669
|
+
!cap
|
|
670
|
+
!len
|
|
671
|
+
!min_capacity
|
|
672
|
+
!heap
|
|
673
|
+
return
|
|
674
|
+
|
|
675
|
+
@export sa_binary_heap_shrink_to_fit(&heap: ptr) -> void:
|
|
676
|
+
L_ENTRY:
|
|
677
|
+
len = load heap+BinaryHeap_len as u64
|
|
678
|
+
cap = load heap+BinaryHeap_cap as u64
|
|
679
|
+
needs_shrink = ne cap, len
|
|
680
|
+
br needs_shrink -> L_SHRINK, L_SHRINK_DONE
|
|
681
|
+
|
|
682
|
+
L_SHRINK:
|
|
683
|
+
call @binary_heap_realloc(&heap, len)
|
|
684
|
+
!needs_shrink
|
|
685
|
+
!cap
|
|
686
|
+
!len
|
|
687
|
+
!heap
|
|
688
|
+
return
|
|
689
|
+
|
|
690
|
+
L_SHRINK_DONE:
|
|
691
|
+
!needs_shrink
|
|
692
|
+
!cap
|
|
693
|
+
!len
|
|
694
|
+
!heap
|
|
695
|
+
return
|
|
696
|
+
|
|
697
|
+
@export sa_binary_heap_as_slice(&heap: ptr, &out_slice: ptr) -> void:
|
|
698
|
+
L_ENTRY:
|
|
699
|
+
buf = load heap+BinaryHeap_buf as ptr
|
|
700
|
+
len = load heap+BinaryHeap_len as u64
|
|
701
|
+
store out_slice+Slice_ptr, buf as ptr
|
|
702
|
+
store out_slice+Slice_len, len as u64
|
|
703
|
+
!len
|
|
704
|
+
!buf
|
|
705
|
+
!out_slice
|
|
706
|
+
!heap
|
|
707
|
+
return
|
|
708
|
+
|
|
709
|
+
@export sa_binary_heap_as_mut_slice(&heap: ptr, &out_slice: ptr) -> void:
|
|
710
|
+
L_ENTRY:
|
|
711
|
+
call @sa_binary_heap_as_slice(&heap, &out_slice)
|
|
712
|
+
!out_slice
|
|
713
|
+
!heap
|
|
714
|
+
return
|
|
715
|
+
|
|
716
|
+
@export sa_binary_heap_into_vec(^heap: ptr) -> ^ptr:
|
|
717
|
+
L_ENTRY:
|
|
718
|
+
return heap
|
|
719
|
+
|
|
720
|
+
@export sa_binary_heap_into_sorted_vec(^heap: ptr) -> ^ptr:
|
|
721
|
+
L_ENTRY:
|
|
722
|
+
len = load heap+BinaryHeap_len as u64
|
|
723
|
+
out_vec = alloc Vec_SIZE
|
|
724
|
+
EXPAND NUM_U64_CHECKED_MUL sort_bytes_ok, bytes, len, BinaryHeap_SLOT_SIZE
|
|
725
|
+
br sort_bytes_ok -> L_SORT_BYTES_OK, L_SORT_BYTES_OVERFLOW
|
|
726
|
+
|
|
727
|
+
L_SORT_BYTES_OVERFLOW:
|
|
728
|
+
panic(1808)
|
|
729
|
+
|
|
730
|
+
L_SORT_BYTES_OK:
|
|
731
|
+
has_bytes = ne bytes, 0
|
|
732
|
+
br has_bytes -> L_SORT_ALLOC, L_SORT_EMPTY
|
|
733
|
+
|
|
734
|
+
L_SORT_ALLOC:
|
|
735
|
+
out_buf = alloc bytes
|
|
736
|
+
call @sa_mem_set(&out_buf, 0, bytes)
|
|
737
|
+
store out_vec+Vec_ptr, out_buf as ptr
|
|
738
|
+
^out_buf
|
|
739
|
+
jmp L_SORT_INIT
|
|
740
|
+
|
|
741
|
+
L_SORT_EMPTY:
|
|
742
|
+
store out_vec+Vec_ptr, 0 as ptr
|
|
743
|
+
jmp L_SORT_INIT
|
|
744
|
+
|
|
745
|
+
L_SORT_INIT:
|
|
746
|
+
store out_vec+Vec_cap, len as u64
|
|
747
|
+
store out_vec+Vec_len, len as u64
|
|
748
|
+
idx_slot = stack_alloc 8
|
|
749
|
+
value_slot = stack_alloc 8
|
|
750
|
+
store idx_slot+0, len as u64
|
|
751
|
+
jmp L_SORT_HEAD
|
|
752
|
+
|
|
753
|
+
L_SORT_HEAD:
|
|
754
|
+
idx = load idx_slot+0 as u64
|
|
755
|
+
done = eq idx, 0
|
|
756
|
+
br done -> L_SORT_DONE, L_SORT_BODY
|
|
757
|
+
|
|
758
|
+
L_SORT_BODY:
|
|
759
|
+
next_idx = sub idx, 1
|
|
760
|
+
ok = call @sa_binary_heap_try_pop(&heap, &value_slot)
|
|
761
|
+
value = load value_slot+0 as u64
|
|
762
|
+
out_buf2 = load out_vec+Vec_ptr as ptr
|
|
763
|
+
off = mul next_idx, BinaryHeap_SLOT_SIZE
|
|
764
|
+
slot = ptr_add out_buf2, off
|
|
765
|
+
store slot+0, value as u64
|
|
766
|
+
store idx_slot+0, next_idx as u64
|
|
767
|
+
!slot
|
|
768
|
+
!off
|
|
769
|
+
!out_buf2
|
|
770
|
+
!value
|
|
771
|
+
!ok
|
|
772
|
+
!next_idx
|
|
773
|
+
!done
|
|
774
|
+
!idx
|
|
775
|
+
jmp L_SORT_HEAD
|
|
776
|
+
|
|
777
|
+
L_SORT_DONE:
|
|
778
|
+
call @sa_binary_heap_free(^heap)
|
|
779
|
+
!done
|
|
780
|
+
!idx
|
|
781
|
+
!has_bytes
|
|
782
|
+
!sort_bytes_ok
|
|
783
|
+
!bytes
|
|
784
|
+
!len
|
|
785
|
+
return out_vec
|
|
786
|
+
|
|
787
|
+
@export sa_binary_heap_push(&heap: ptr, value: u64) -> void:
|
|
788
|
+
L_ENTRY:
|
|
789
|
+
len = load heap+BinaryHeap_len as u64
|
|
790
|
+
cap = load heap+BinaryHeap_cap as u64
|
|
791
|
+
room = ult len, cap
|
|
792
|
+
br room -> L_INSERT_RELEASE, L_GROW
|
|
793
|
+
|
|
794
|
+
L_GROW:
|
|
795
|
+
call @binary_heap_grow(&heap)
|
|
796
|
+
!room
|
|
797
|
+
!cap
|
|
798
|
+
!len
|
|
799
|
+
jmp L_INSERT_WRITE
|
|
800
|
+
|
|
801
|
+
L_INSERT_RELEASE:
|
|
802
|
+
!room
|
|
803
|
+
!cap
|
|
804
|
+
!len
|
|
805
|
+
jmp L_INSERT_WRITE
|
|
806
|
+
|
|
807
|
+
L_INSERT_WRITE:
|
|
808
|
+
len2 = load heap+BinaryHeap_len as u64
|
|
809
|
+
buf = take heap+BinaryHeap_buf
|
|
810
|
+
slot_off = mul len2, BinaryHeap_SLOT_SIZE
|
|
811
|
+
slot = ptr_add buf, slot_off
|
|
812
|
+
store slot+0, value as u64
|
|
813
|
+
next_len = add len2, 1
|
|
814
|
+
store heap+BinaryHeap_len, next_len as u64
|
|
815
|
+
call @binary_heap_sift_up(&heap, len2)
|
|
816
|
+
!slot
|
|
817
|
+
!slot_off
|
|
818
|
+
!next_len
|
|
819
|
+
!buf
|
|
820
|
+
!len2
|
|
821
|
+
!value
|
|
822
|
+
!heap
|
|
823
|
+
return
|
|
824
|
+
|
|
825
|
+
@export sa_binary_heap_try_pop(&heap: ptr, &out_value_slot: ptr) -> i32:
|
|
826
|
+
L_ENTRY:
|
|
827
|
+
len = load heap+BinaryHeap_len as u64
|
|
828
|
+
empty = eq len, 0
|
|
829
|
+
br empty -> L_EMPTY, L_READY
|
|
830
|
+
|
|
831
|
+
L_READY:
|
|
832
|
+
buf = take heap+BinaryHeap_buf
|
|
833
|
+
root_ptr = take heap+BinaryHeap_buf
|
|
834
|
+
value = load root_ptr+0 as u64
|
|
835
|
+
last_index = sub len, 1
|
|
836
|
+
last_off = mul last_index, BinaryHeap_SLOT_SIZE
|
|
837
|
+
last_ptr = ptr_add buf, last_off
|
|
838
|
+
last_value = load last_ptr+0 as u64
|
|
839
|
+
next_len = sub len, 1
|
|
840
|
+
store out_value_slot+0, value as u64
|
|
841
|
+
store heap+BinaryHeap_len, next_len as u64
|
|
842
|
+
store root_ptr+0, last_value as u64
|
|
843
|
+
call @binary_heap_sift_down(&heap, 0)
|
|
844
|
+
!last_value
|
|
845
|
+
!last_ptr
|
|
846
|
+
!last_off
|
|
847
|
+
!last_index
|
|
848
|
+
!value
|
|
849
|
+
!root_ptr
|
|
850
|
+
!next_len
|
|
851
|
+
!buf
|
|
852
|
+
!len
|
|
853
|
+
!empty
|
|
854
|
+
!out_value_slot
|
|
855
|
+
!heap
|
|
856
|
+
return 1
|
|
857
|
+
|
|
858
|
+
L_EMPTY:
|
|
859
|
+
store out_value_slot+0, 0 as u64
|
|
860
|
+
!empty
|
|
861
|
+
!len
|
|
862
|
+
!out_value_slot
|
|
863
|
+
!heap
|
|
864
|
+
return 0
|
|
865
|
+
|
|
866
|
+
@export sa_binary_heap_clear(&heap: ptr) -> void:
|
|
867
|
+
L_ENTRY:
|
|
868
|
+
buf = take heap+BinaryHeap_buf
|
|
869
|
+
cap = load heap+BinaryHeap_cap as u64
|
|
870
|
+
EXPAND NUM_U64_CHECKED_MUL clear_bytes_ok, bytes, cap, BinaryHeap_SLOT_SIZE
|
|
871
|
+
br clear_bytes_ok -> L_CLEAR_BYTES_OK, L_CLEAR_BYTES_OVERFLOW
|
|
872
|
+
|
|
873
|
+
L_CLEAR_BYTES_OVERFLOW:
|
|
874
|
+
panic(1809)
|
|
875
|
+
|
|
876
|
+
L_CLEAR_BYTES_OK:
|
|
877
|
+
has_buf = ne buf, 0
|
|
878
|
+
br has_buf -> L_CLEAR_BUF, L_CLEAR_SKIP
|
|
879
|
+
L_CLEAR_BUF:
|
|
880
|
+
call @sa_mem_set(&buf, 0, bytes)
|
|
881
|
+
!bytes
|
|
882
|
+
store heap+BinaryHeap_len, 0 as u64
|
|
883
|
+
!has_buf
|
|
884
|
+
!clear_bytes_ok
|
|
885
|
+
!buf
|
|
886
|
+
!cap
|
|
887
|
+
!heap
|
|
888
|
+
return
|
|
889
|
+
L_CLEAR_SKIP:
|
|
890
|
+
!bytes
|
|
891
|
+
store heap+BinaryHeap_len, 0 as u64
|
|
892
|
+
!has_buf
|
|
893
|
+
!clear_bytes_ok
|
|
894
|
+
!buf
|
|
895
|
+
!cap
|
|
896
|
+
!heap
|
|
897
|
+
return
|
|
898
|
+
|
|
899
|
+
@export sa_binary_heap_append(&heap: ptr, &other: ptr) -> void:
|
|
900
|
+
L_ENTRY:
|
|
901
|
+
value_slot = stack_alloc 8
|
|
902
|
+
jmp L_APPEND_LOOP
|
|
903
|
+
|
|
904
|
+
L_APPEND_LOOP:
|
|
905
|
+
ok = call @sa_binary_heap_try_pop(&other, &value_slot)
|
|
906
|
+
br ok -> L_APPEND_PUSH, L_APPEND_DONE
|
|
907
|
+
|
|
908
|
+
L_APPEND_PUSH:
|
|
909
|
+
value = load value_slot+0 as u64
|
|
910
|
+
call @sa_binary_heap_push(&heap, value)
|
|
911
|
+
!value
|
|
912
|
+
!ok
|
|
913
|
+
jmp L_APPEND_LOOP
|
|
914
|
+
|
|
915
|
+
L_APPEND_DONE:
|
|
916
|
+
!ok
|
|
917
|
+
!other
|
|
918
|
+
!heap
|
|
919
|
+
return
|
|
920
|
+
|
|
921
|
+
[MACRO] BINARY_HEAP_NEW %out_heap
|
|
922
|
+
%out_heap = call @sa_binary_heap_new()
|
|
923
|
+
[END_MACRO]
|
|
924
|
+
|
|
925
|
+
[MACRO] BINARY_HEAP_WITH_CAPACITY %out_heap, %cap
|
|
926
|
+
%out_heap = call @sa_binary_heap_with_capacity(%cap)
|
|
927
|
+
[END_MACRO]
|
|
928
|
+
|
|
929
|
+
[MACRO] BINARY_HEAP_TRY_WITH_CAPACITY %out_ok, %out_heap, %cap
|
|
930
|
+
__binary_heap_try_new_slot_%out_ok = stack_alloc 8
|
|
931
|
+
%out_ok = call @sa_binary_heap_try_with_capacity(%cap, &__binary_heap_try_new_slot_%out_ok)
|
|
932
|
+
%out_heap = load __binary_heap_try_new_slot_%out_ok+0 as ptr
|
|
933
|
+
[END_MACRO]
|
|
934
|
+
|
|
935
|
+
[MACRO] BINARY_HEAP_FREE %heap_reg
|
|
936
|
+
call @sa_binary_heap_free(^%heap_reg)
|
|
937
|
+
[END_MACRO]
|
|
938
|
+
|
|
939
|
+
[MACRO] BINARY_HEAP_LEN %out_len, %heap_reg
|
|
940
|
+
%out_len = call @sa_binary_heap_len(&%heap_reg)
|
|
941
|
+
[END_MACRO]
|
|
942
|
+
|
|
943
|
+
[MACRO] BINARY_HEAP_CAPACITY %out_cap, %heap_reg
|
|
944
|
+
%out_cap = call @sa_binary_heap_capacity(&%heap_reg)
|
|
945
|
+
[END_MACRO]
|
|
946
|
+
|
|
947
|
+
[MACRO] BINARY_HEAP_RESERVE %heap_reg, %additional
|
|
948
|
+
call @sa_binary_heap_reserve(&%heap_reg, %additional)
|
|
949
|
+
[END_MACRO]
|
|
950
|
+
|
|
951
|
+
[MACRO] BINARY_HEAP_RESERVE_EXACT %heap_reg, %additional
|
|
952
|
+
call @sa_binary_heap_reserve_exact(&%heap_reg, %additional)
|
|
953
|
+
[END_MACRO]
|
|
954
|
+
|
|
955
|
+
[MACRO] BINARY_HEAP_TRY_RESERVE %out_ok, %heap_reg, %additional
|
|
956
|
+
%out_ok = call @sa_binary_heap_try_reserve(&%heap_reg, %additional)
|
|
957
|
+
[END_MACRO]
|
|
958
|
+
|
|
959
|
+
[MACRO] BINARY_HEAP_TRY_RESERVE_EXACT %out_ok, %heap_reg, %additional
|
|
960
|
+
%out_ok = call @sa_binary_heap_try_reserve_exact(&%heap_reg, %additional)
|
|
961
|
+
[END_MACRO]
|
|
962
|
+
|
|
963
|
+
[MACRO] BINARY_HEAP_SHRINK_TO %heap_reg, %min_capacity
|
|
964
|
+
call @sa_binary_heap_shrink_to(&%heap_reg, %min_capacity)
|
|
965
|
+
[END_MACRO]
|
|
966
|
+
|
|
967
|
+
[MACRO] BINARY_HEAP_SHRINK_TO_FIT %heap_reg
|
|
968
|
+
call @sa_binary_heap_shrink_to_fit(&%heap_reg)
|
|
969
|
+
[END_MACRO]
|
|
970
|
+
|
|
971
|
+
[MACRO] BINARY_HEAP_AS_SLICE %out_slice, %heap_reg
|
|
972
|
+
%out_slice = alloc Slice_SIZE
|
|
973
|
+
call @sa_binary_heap_as_slice(&%heap_reg, &%out_slice)
|
|
974
|
+
[END_MACRO]
|
|
975
|
+
|
|
976
|
+
[MACRO] BINARY_HEAP_AS_MUT_SLICE %out_slice, %heap_reg
|
|
977
|
+
%out_slice = alloc Slice_SIZE
|
|
978
|
+
call @sa_binary_heap_as_mut_slice(&%heap_reg, &%out_slice)
|
|
979
|
+
[END_MACRO]
|
|
980
|
+
|
|
981
|
+
[MACRO] BINARY_HEAP_ITER_U64 %out_iter, %heap_reg
|
|
982
|
+
__binary_heap_iter_slice_%out_iter = stack_alloc Slice_SIZE
|
|
983
|
+
call @sa_binary_heap_as_slice(&%heap_reg, &__binary_heap_iter_slice_%out_iter)
|
|
984
|
+
EXPAND ITER_FROM_SLICE %out_iter, __binary_heap_iter_slice_%out_iter
|
|
985
|
+
[END_MACRO]
|
|
986
|
+
|
|
987
|
+
// Rust method-name alias over BINARY_HEAP_ITER_U64.
|
|
988
|
+
[MACRO] BINARY_HEAP_ITER %out_iter, %heap_reg
|
|
989
|
+
EXPAND BINARY_HEAP_ITER_U64 %out_iter, %heap_reg
|
|
990
|
+
[END_MACRO]
|
|
991
|
+
|
|
992
|
+
[MACRO] BINARY_HEAP_REF_INTO_ITER_U64 %out_iter, %heap_reg
|
|
993
|
+
EXPAND BINARY_HEAP_ITER_U64 %out_iter, %heap_reg
|
|
994
|
+
[END_MACRO]
|
|
995
|
+
|
|
996
|
+
// Rust method-name alias over BINARY_HEAP_REF_INTO_ITER_U64.
|
|
997
|
+
[MACRO] BINARY_HEAP_REF_INTO_ITER %out_iter, %heap_reg
|
|
998
|
+
EXPAND BINARY_HEAP_REF_INTO_ITER_U64 %out_iter, %heap_reg
|
|
999
|
+
[END_MACRO]
|
|
1000
|
+
|
|
1001
|
+
[MACRO] BINARY_HEAP_ITER_DEFAULT_U64 %out_iter
|
|
1002
|
+
__binary_heap_iter_default_slice_%out_iter = stack_alloc Slice_SIZE
|
|
1003
|
+
EXPAND SLICE_NEW __binary_heap_iter_default_slice_%out_iter, 0, 0
|
|
1004
|
+
EXPAND ITER_FROM_SLICE %out_iter, __binary_heap_iter_default_slice_%out_iter
|
|
1005
|
+
[END_MACRO]
|
|
1006
|
+
|
|
1007
|
+
// Rust method-name alias over BINARY_HEAP_ITER_DEFAULT_U64.
|
|
1008
|
+
[MACRO] BINARY_HEAP_ITER_DEFAULT %out_iter
|
|
1009
|
+
EXPAND BINARY_HEAP_ITER_DEFAULT_U64 %out_iter
|
|
1010
|
+
[END_MACRO]
|
|
1011
|
+
|
|
1012
|
+
[MACRO] BINARY_HEAP_ITER_CLONE_U64 %out_iter, %iter_reg
|
|
1013
|
+
EXPAND ITER_CLONE %out_iter, %iter_reg
|
|
1014
|
+
[END_MACRO]
|
|
1015
|
+
|
|
1016
|
+
// Rust method-name alias over BINARY_HEAP_ITER_CLONE_U64.
|
|
1017
|
+
[MACRO] BINARY_HEAP_ITER_CLONE %out_iter, %iter_reg
|
|
1018
|
+
EXPAND BINARY_HEAP_ITER_CLONE_U64 %out_iter, %iter_reg
|
|
1019
|
+
[END_MACRO]
|
|
1020
|
+
|
|
1021
|
+
[MACRO] BINARY_HEAP_ITER_NEXT_U64 %out_has, %out_value, %iter_reg
|
|
1022
|
+
EXPAND ITER_NEXT_U64 %out_has, %out_value, %iter_reg
|
|
1023
|
+
[END_MACRO]
|
|
1024
|
+
|
|
1025
|
+
// Rust method-name alias over BINARY_HEAP_ITER_NEXT_U64.
|
|
1026
|
+
[MACRO] BINARY_HEAP_ITER_NEXT %out_has, %out_value, %iter_reg
|
|
1027
|
+
EXPAND BINARY_HEAP_ITER_NEXT_U64 %out_has, %out_value, %iter_reg
|
|
1028
|
+
[END_MACRO]
|
|
1029
|
+
|
|
1030
|
+
[MACRO] BINARY_HEAP_ITER_NEXT_BACK_U64 %out_has, %out_value, %iter_reg
|
|
1031
|
+
EXPAND ITER_NEXT_BACK_U64 %out_has, %out_value, %iter_reg
|
|
1032
|
+
[END_MACRO]
|
|
1033
|
+
|
|
1034
|
+
// Rust method-name alias over BINARY_HEAP_ITER_NEXT_BACK_U64.
|
|
1035
|
+
[MACRO] BINARY_HEAP_ITER_NEXT_BACK %out_has, %out_value, %iter_reg
|
|
1036
|
+
EXPAND BINARY_HEAP_ITER_NEXT_BACK_U64 %out_has, %out_value, %iter_reg
|
|
1037
|
+
[END_MACRO]
|
|
1038
|
+
|
|
1039
|
+
[MACRO] BINARY_HEAP_ITER_NTH_U64 %out_has, %out_value, %iter_reg, %nth
|
|
1040
|
+
EXPAND ITER_NTH_U64 %out_has, %out_value, %iter_reg, %nth
|
|
1041
|
+
[END_MACRO]
|
|
1042
|
+
|
|
1043
|
+
// Rust method-name alias over BINARY_HEAP_ITER_NTH_U64.
|
|
1044
|
+
[MACRO] BINARY_HEAP_ITER_NTH %out_has, %out_value, %iter_reg, %nth
|
|
1045
|
+
EXPAND BINARY_HEAP_ITER_NTH_U64 %out_has, %out_value, %iter_reg, %nth
|
|
1046
|
+
[END_MACRO]
|
|
1047
|
+
|
|
1048
|
+
[MACRO] BINARY_HEAP_ITER_NTH_BACK_U64 %out_has, %out_value, %iter_reg, %nth
|
|
1049
|
+
EXPAND ITER_NTH_BACK_U64 %out_has, %out_value, %iter_reg, %nth
|
|
1050
|
+
[END_MACRO]
|
|
1051
|
+
|
|
1052
|
+
// Rust method-name alias over BINARY_HEAP_ITER_NTH_BACK_U64.
|
|
1053
|
+
[MACRO] BINARY_HEAP_ITER_NTH_BACK %out_has, %out_value, %iter_reg, %nth
|
|
1054
|
+
EXPAND BINARY_HEAP_ITER_NTH_BACK_U64 %out_has, %out_value, %iter_reg, %nth
|
|
1055
|
+
[END_MACRO]
|
|
1056
|
+
|
|
1057
|
+
[MACRO] BINARY_HEAP_ITER_TRY_NEXT_CHUNK_U64 %out_ok, %out_filled, %iter_reg, %dst_ptr, %count
|
|
1058
|
+
EXPAND ITER_TRY_NEXT_CHUNK_U64 %out_ok, %out_filled, %iter_reg, %dst_ptr, %count
|
|
1059
|
+
[END_MACRO]
|
|
1060
|
+
|
|
1061
|
+
// Rust method-name alias over BINARY_HEAP_ITER_TRY_NEXT_CHUNK_U64.
|
|
1062
|
+
[MACRO] BINARY_HEAP_ITER_TRY_NEXT_CHUNK %out_ok, %out_filled, %iter_reg, %dst_ptr, %count
|
|
1063
|
+
EXPAND BINARY_HEAP_ITER_TRY_NEXT_CHUNK_U64 %out_ok, %out_filled, %iter_reg, %dst_ptr, %count
|
|
1064
|
+
[END_MACRO]
|
|
1065
|
+
|
|
1066
|
+
[MACRO] BINARY_HEAP_ITER_ADVANCE_BY %out_ok, %out_remaining, %iter_reg, %count
|
|
1067
|
+
EXPAND ITER_ADVANCE_BY %out_ok, %out_remaining, %iter_reg, %count
|
|
1068
|
+
[END_MACRO]
|
|
1069
|
+
|
|
1070
|
+
[MACRO] BINARY_HEAP_ITER_ADVANCE_BACK_BY %out_ok, %out_remaining, %iter_reg, %count
|
|
1071
|
+
EXPAND ITER_ADVANCE_BACK_BY %out_ok, %out_remaining, %iter_reg, %count
|
|
1072
|
+
[END_MACRO]
|
|
1073
|
+
|
|
1074
|
+
[MACRO] BINARY_HEAP_ITER_COUNT_U64 %out_count, %iter_reg
|
|
1075
|
+
EXPAND ITER_COUNT %out_count, %iter_reg
|
|
1076
|
+
[END_MACRO]
|
|
1077
|
+
|
|
1078
|
+
// Rust method-name alias over BINARY_HEAP_ITER_COUNT_U64.
|
|
1079
|
+
[MACRO] BINARY_HEAP_ITER_COUNT %out_count, %iter_reg
|
|
1080
|
+
EXPAND BINARY_HEAP_ITER_COUNT_U64 %out_count, %iter_reg
|
|
1081
|
+
[END_MACRO]
|
|
1082
|
+
|
|
1083
|
+
[MACRO] BINARY_HEAP_ITER_LAST_U64 %out_has, %out_value, %iter_reg
|
|
1084
|
+
EXPAND ITER_LAST_U64 %out_has, %out_value, %iter_reg
|
|
1085
|
+
[END_MACRO]
|
|
1086
|
+
|
|
1087
|
+
// Rust method-name alias over BINARY_HEAP_ITER_LAST_U64.
|
|
1088
|
+
[MACRO] BINARY_HEAP_ITER_LAST %out_has, %out_value, %iter_reg
|
|
1089
|
+
EXPAND BINARY_HEAP_ITER_LAST_U64 %out_has, %out_value, %iter_reg
|
|
1090
|
+
[END_MACRO]
|
|
1091
|
+
|
|
1092
|
+
[MACRO] BINARY_HEAP_ITER_FIND_U64 %out_has, %out_value, %iter_reg, %pred_fn
|
|
1093
|
+
EXPAND ITER_FIND_U64 %out_has, %out_value, %iter_reg, %pred_fn
|
|
1094
|
+
[END_MACRO]
|
|
1095
|
+
|
|
1096
|
+
// Rust method-name alias over BINARY_HEAP_ITER_FIND_U64.
|
|
1097
|
+
[MACRO] BINARY_HEAP_ITER_FIND %out_has, %out_value, %iter_reg, %pred_fn
|
|
1098
|
+
EXPAND BINARY_HEAP_ITER_FIND_U64 %out_has, %out_value, %iter_reg, %pred_fn
|
|
1099
|
+
[END_MACRO]
|
|
1100
|
+
|
|
1101
|
+
[MACRO] BINARY_HEAP_ITER_TRY_FIND_U64 %out_ok, %out_has, %out_value, %iter_reg, %pred_fn
|
|
1102
|
+
EXPAND ITER_TRY_FIND_U64 %out_ok, %out_has, %out_value, %iter_reg, %pred_fn
|
|
1103
|
+
[END_MACRO]
|
|
1104
|
+
|
|
1105
|
+
// Rust method-name alias over BINARY_HEAP_ITER_TRY_FIND_U64.
|
|
1106
|
+
[MACRO] BINARY_HEAP_ITER_TRY_FIND %out_ok, %out_has, %out_value, %iter_reg, %pred_fn
|
|
1107
|
+
EXPAND BINARY_HEAP_ITER_TRY_FIND_U64 %out_ok, %out_has, %out_value, %iter_reg, %pred_fn
|
|
1108
|
+
[END_MACRO]
|
|
1109
|
+
|
|
1110
|
+
[MACRO] BINARY_HEAP_ITER_FIND_MAP_U64 %out_has, %out_value, %iter_reg, %map_fn
|
|
1111
|
+
EXPAND ITER_FIND_MAP_U64 %out_has, %out_value, %iter_reg, %map_fn
|
|
1112
|
+
[END_MACRO]
|
|
1113
|
+
|
|
1114
|
+
// Rust method-name alias over BINARY_HEAP_ITER_FIND_MAP_U64.
|
|
1115
|
+
[MACRO] BINARY_HEAP_ITER_FIND_MAP %out_has, %out_value, %iter_reg, %map_fn
|
|
1116
|
+
EXPAND BINARY_HEAP_ITER_FIND_MAP_U64 %out_has, %out_value, %iter_reg, %map_fn
|
|
1117
|
+
[END_MACRO]
|
|
1118
|
+
|
|
1119
|
+
[MACRO] BINARY_HEAP_ITER_POSITION_U64 %out_has, %out_index, %iter_reg, %pred_fn
|
|
1120
|
+
EXPAND ITER_POSITION_U64 %out_has, %out_index, %iter_reg, %pred_fn
|
|
1121
|
+
[END_MACRO]
|
|
1122
|
+
|
|
1123
|
+
// Rust method-name alias over BINARY_HEAP_ITER_POSITION_U64.
|
|
1124
|
+
[MACRO] BINARY_HEAP_ITER_POSITION %out_has, %out_index, %iter_reg, %pred_fn
|
|
1125
|
+
EXPAND BINARY_HEAP_ITER_POSITION_U64 %out_has, %out_index, %iter_reg, %pred_fn
|
|
1126
|
+
[END_MACRO]
|
|
1127
|
+
|
|
1128
|
+
[MACRO] BINARY_HEAP_ITER_RPOSITION_U64 %out_has, %out_index, %iter_reg, %pred_fn
|
|
1129
|
+
EXPAND ITER_RPOSITION_U64 %out_has, %out_index, %iter_reg, %pred_fn
|
|
1130
|
+
[END_MACRO]
|
|
1131
|
+
|
|
1132
|
+
// Rust method-name alias over BINARY_HEAP_ITER_RPOSITION_U64.
|
|
1133
|
+
[MACRO] BINARY_HEAP_ITER_RPOSITION %out_has, %out_index, %iter_reg, %pred_fn
|
|
1134
|
+
EXPAND BINARY_HEAP_ITER_RPOSITION_U64 %out_has, %out_index, %iter_reg, %pred_fn
|
|
1135
|
+
[END_MACRO]
|
|
1136
|
+
|
|
1137
|
+
[MACRO] BINARY_HEAP_ITER_RFIND_U64 %out_has, %out_value, %iter_reg, %pred_fn
|
|
1138
|
+
EXPAND ITER_RFIND_U64 %out_has, %out_value, %iter_reg, %pred_fn
|
|
1139
|
+
[END_MACRO]
|
|
1140
|
+
|
|
1141
|
+
// Rust method-name alias over BINARY_HEAP_ITER_RFIND_U64.
|
|
1142
|
+
[MACRO] BINARY_HEAP_ITER_RFIND %out_has, %out_value, %iter_reg, %pred_fn
|
|
1143
|
+
EXPAND BINARY_HEAP_ITER_RFIND_U64 %out_has, %out_value, %iter_reg, %pred_fn
|
|
1144
|
+
[END_MACRO]
|
|
1145
|
+
|
|
1146
|
+
[MACRO] BINARY_HEAP_ITER_ANY_U64 %out_bool, %iter_reg, %pred_fn
|
|
1147
|
+
EXPAND ITER_ANY_U64 %out_bool, %iter_reg, %pred_fn
|
|
1148
|
+
[END_MACRO]
|
|
1149
|
+
|
|
1150
|
+
// Rust method-name alias over BINARY_HEAP_ITER_ANY_U64.
|
|
1151
|
+
[MACRO] BINARY_HEAP_ITER_ANY %out_bool, %iter_reg, %pred_fn
|
|
1152
|
+
EXPAND BINARY_HEAP_ITER_ANY_U64 %out_bool, %iter_reg, %pred_fn
|
|
1153
|
+
[END_MACRO]
|
|
1154
|
+
|
|
1155
|
+
[MACRO] BINARY_HEAP_ITER_ALL_U64 %out_bool, %iter_reg, %pred_fn
|
|
1156
|
+
EXPAND ITER_ALL_U64 %out_bool, %iter_reg, %pred_fn
|
|
1157
|
+
[END_MACRO]
|
|
1158
|
+
|
|
1159
|
+
// Rust method-name alias over BINARY_HEAP_ITER_ALL_U64.
|
|
1160
|
+
[MACRO] BINARY_HEAP_ITER_ALL %out_bool, %iter_reg, %pred_fn
|
|
1161
|
+
EXPAND BINARY_HEAP_ITER_ALL_U64 %out_bool, %iter_reg, %pred_fn
|
|
1162
|
+
[END_MACRO]
|
|
1163
|
+
|
|
1164
|
+
[MACRO] BINARY_HEAP_ITER_FOR_EACH_U64 %iter_reg, %each_fn
|
|
1165
|
+
EXPAND ITER_FOR_EACH_U64 %iter_reg, %each_fn
|
|
1166
|
+
[END_MACRO]
|
|
1167
|
+
|
|
1168
|
+
// Rust method-name alias over BINARY_HEAP_ITER_FOR_EACH_U64.
|
|
1169
|
+
[MACRO] BINARY_HEAP_ITER_FOR_EACH %iter_reg, %each_fn
|
|
1170
|
+
EXPAND BINARY_HEAP_ITER_FOR_EACH_U64 %iter_reg, %each_fn
|
|
1171
|
+
[END_MACRO]
|
|
1172
|
+
|
|
1173
|
+
[MACRO] BINARY_HEAP_ITER_TRY_FOR_EACH_U64 %out_ok, %iter_reg, %each_fn
|
|
1174
|
+
EXPAND ITER_TRY_FOR_EACH_U64 %out_ok, %iter_reg, %each_fn
|
|
1175
|
+
[END_MACRO]
|
|
1176
|
+
|
|
1177
|
+
// Rust method-name alias over BINARY_HEAP_ITER_TRY_FOR_EACH_U64.
|
|
1178
|
+
[MACRO] BINARY_HEAP_ITER_TRY_FOR_EACH %out_ok, %iter_reg, %each_fn
|
|
1179
|
+
EXPAND BINARY_HEAP_ITER_TRY_FOR_EACH_U64 %out_ok, %iter_reg, %each_fn
|
|
1180
|
+
[END_MACRO]
|
|
1181
|
+
|
|
1182
|
+
[MACRO] BINARY_HEAP_ITER_FOLD_U64 %out_value, %iter_reg, %init_value, %fold_fn
|
|
1183
|
+
EXPAND ITER_FOLD_U64 %out_value, %iter_reg, %init_value, %fold_fn
|
|
1184
|
+
[END_MACRO]
|
|
1185
|
+
|
|
1186
|
+
// Rust method-name alias over BINARY_HEAP_ITER_FOLD_U64.
|
|
1187
|
+
[MACRO] BINARY_HEAP_ITER_FOLD %out_value, %iter_reg, %init_value, %fold_fn
|
|
1188
|
+
EXPAND BINARY_HEAP_ITER_FOLD_U64 %out_value, %iter_reg, %init_value, %fold_fn
|
|
1189
|
+
[END_MACRO]
|
|
1190
|
+
|
|
1191
|
+
[MACRO] BINARY_HEAP_ITER_TRY_FOLD_U64 %out_ok, %out_value, %iter_reg, %init_value, %fold_fn
|
|
1192
|
+
EXPAND ITER_TRY_FOLD_U64 %out_ok, %out_value, %iter_reg, %init_value, %fold_fn
|
|
1193
|
+
[END_MACRO]
|
|
1194
|
+
|
|
1195
|
+
// Rust method-name alias over BINARY_HEAP_ITER_TRY_FOLD_U64.
|
|
1196
|
+
[MACRO] BINARY_HEAP_ITER_TRY_FOLD %out_ok, %out_value, %iter_reg, %init_value, %fold_fn
|
|
1197
|
+
EXPAND BINARY_HEAP_ITER_TRY_FOLD_U64 %out_ok, %out_value, %iter_reg, %init_value, %fold_fn
|
|
1198
|
+
[END_MACRO]
|
|
1199
|
+
|
|
1200
|
+
[MACRO] BINARY_HEAP_ITER_RFOLD_U64 %out_value, %iter_reg, %init_value, %fold_fn
|
|
1201
|
+
EXPAND ITER_RFOLD_U64 %out_value, %iter_reg, %init_value, %fold_fn
|
|
1202
|
+
[END_MACRO]
|
|
1203
|
+
|
|
1204
|
+
// Rust method-name alias over BINARY_HEAP_ITER_RFOLD_U64.
|
|
1205
|
+
[MACRO] BINARY_HEAP_ITER_RFOLD %out_value, %iter_reg, %init_value, %fold_fn
|
|
1206
|
+
EXPAND BINARY_HEAP_ITER_RFOLD_U64 %out_value, %iter_reg, %init_value, %fold_fn
|
|
1207
|
+
[END_MACRO]
|
|
1208
|
+
|
|
1209
|
+
[MACRO] BINARY_HEAP_ITER_TRY_RFOLD_U64 %out_ok, %out_value, %iter_reg, %init_value, %fold_fn
|
|
1210
|
+
EXPAND ITER_TRY_RFOLD_U64 %out_ok, %out_value, %iter_reg, %init_value, %fold_fn
|
|
1211
|
+
[END_MACRO]
|
|
1212
|
+
|
|
1213
|
+
// Rust method-name alias over BINARY_HEAP_ITER_TRY_RFOLD_U64.
|
|
1214
|
+
[MACRO] BINARY_HEAP_ITER_TRY_RFOLD %out_ok, %out_value, %iter_reg, %init_value, %fold_fn
|
|
1215
|
+
EXPAND BINARY_HEAP_ITER_TRY_RFOLD_U64 %out_ok, %out_value, %iter_reg, %init_value, %fold_fn
|
|
1216
|
+
[END_MACRO]
|
|
1217
|
+
|
|
1218
|
+
[MACRO] BINARY_HEAP_ITER_SUM_U64 %out_value, %iter_reg
|
|
1219
|
+
EXPAND ITER_SUM_U64 %out_value, %iter_reg
|
|
1220
|
+
[END_MACRO]
|
|
1221
|
+
|
|
1222
|
+
// Rust method-name alias over BINARY_HEAP_ITER_SUM_U64.
|
|
1223
|
+
[MACRO] BINARY_HEAP_ITER_SUM %out_value, %iter_reg
|
|
1224
|
+
EXPAND BINARY_HEAP_ITER_SUM_U64 %out_value, %iter_reg
|
|
1225
|
+
[END_MACRO]
|
|
1226
|
+
|
|
1227
|
+
[MACRO] BINARY_HEAP_ITER_PRODUCT_U64 %out_value, %iter_reg
|
|
1228
|
+
EXPAND ITER_PRODUCT_U64 %out_value, %iter_reg
|
|
1229
|
+
[END_MACRO]
|
|
1230
|
+
|
|
1231
|
+
// Rust method-name alias over BINARY_HEAP_ITER_PRODUCT_U64.
|
|
1232
|
+
[MACRO] BINARY_HEAP_ITER_PRODUCT %out_value, %iter_reg
|
|
1233
|
+
EXPAND BINARY_HEAP_ITER_PRODUCT_U64 %out_value, %iter_reg
|
|
1234
|
+
[END_MACRO]
|
|
1235
|
+
|
|
1236
|
+
[MACRO] BINARY_HEAP_ITER_MIN_U64 %out_has, %out_value, %iter_reg
|
|
1237
|
+
EXPAND ITER_MIN_U64 %out_has, %out_value, %iter_reg
|
|
1238
|
+
[END_MACRO]
|
|
1239
|
+
|
|
1240
|
+
// Rust method-name alias over BINARY_HEAP_ITER_MIN_U64.
|
|
1241
|
+
[MACRO] BINARY_HEAP_ITER_MIN %out_has, %out_value, %iter_reg
|
|
1242
|
+
EXPAND BINARY_HEAP_ITER_MIN_U64 %out_has, %out_value, %iter_reg
|
|
1243
|
+
[END_MACRO]
|
|
1244
|
+
|
|
1245
|
+
[MACRO] BINARY_HEAP_ITER_MAX_U64 %out_has, %out_value, %iter_reg
|
|
1246
|
+
EXPAND ITER_MAX_U64 %out_has, %out_value, %iter_reg
|
|
1247
|
+
[END_MACRO]
|
|
1248
|
+
|
|
1249
|
+
// Rust method-name alias over BINARY_HEAP_ITER_MAX_U64.
|
|
1250
|
+
[MACRO] BINARY_HEAP_ITER_MAX %out_has, %out_value, %iter_reg
|
|
1251
|
+
EXPAND BINARY_HEAP_ITER_MAX_U64 %out_has, %out_value, %iter_reg
|
|
1252
|
+
[END_MACRO]
|
|
1253
|
+
|
|
1254
|
+
[MACRO] BINARY_HEAP_ITER_REDUCE_U64 %out_has, %out_value, %iter_reg, %reduce_fn
|
|
1255
|
+
EXPAND ITER_REDUCE_U64 %out_has, %out_value, %iter_reg, %reduce_fn
|
|
1256
|
+
[END_MACRO]
|
|
1257
|
+
|
|
1258
|
+
// Rust method-name alias over BINARY_HEAP_ITER_REDUCE_U64.
|
|
1259
|
+
[MACRO] BINARY_HEAP_ITER_REDUCE %out_has, %out_value, %iter_reg, %reduce_fn
|
|
1260
|
+
EXPAND BINARY_HEAP_ITER_REDUCE_U64 %out_has, %out_value, %iter_reg, %reduce_fn
|
|
1261
|
+
[END_MACRO]
|
|
1262
|
+
|
|
1263
|
+
[MACRO] BINARY_HEAP_ITER_TRY_REDUCE_U64 %out_ok, %out_has, %out_value, %iter_reg, %reduce_fn
|
|
1264
|
+
EXPAND ITER_TRY_REDUCE_U64 %out_ok, %out_has, %out_value, %iter_reg, %reduce_fn
|
|
1265
|
+
[END_MACRO]
|
|
1266
|
+
|
|
1267
|
+
// Rust method-name alias over BINARY_HEAP_ITER_TRY_REDUCE_U64.
|
|
1268
|
+
[MACRO] BINARY_HEAP_ITER_TRY_REDUCE %out_ok, %out_has, %out_value, %iter_reg, %reduce_fn
|
|
1269
|
+
EXPAND BINARY_HEAP_ITER_TRY_REDUCE_U64 %out_ok, %out_has, %out_value, %iter_reg, %reduce_fn
|
|
1270
|
+
[END_MACRO]
|
|
1271
|
+
|
|
1272
|
+
[MACRO] BINARY_HEAP_ITER_SIZE_HINT_U64 %out_lower, %out_upper, %iter_reg
|
|
1273
|
+
EXPAND ITER_SIZE_HINT %out_lower, %out_upper, %iter_reg
|
|
1274
|
+
[END_MACRO]
|
|
1275
|
+
|
|
1276
|
+
// Rust method-name alias over BINARY_HEAP_ITER_SIZE_HINT_U64.
|
|
1277
|
+
[MACRO] BINARY_HEAP_ITER_SIZE_HINT %out_lower, %out_upper, %iter_reg
|
|
1278
|
+
EXPAND BINARY_HEAP_ITER_SIZE_HINT_U64 %out_lower, %out_upper, %iter_reg
|
|
1279
|
+
[END_MACRO]
|
|
1280
|
+
|
|
1281
|
+
[MACRO] BINARY_HEAP_ITER_EXACT_SIZE_LEN_U64 %out_len, %iter_reg
|
|
1282
|
+
EXPAND ITER_EXACT_SIZE_LEN %out_len, %iter_reg
|
|
1283
|
+
[END_MACRO]
|
|
1284
|
+
|
|
1285
|
+
// Rust method-name alias over BINARY_HEAP_ITER_EXACT_SIZE_LEN_U64.
|
|
1286
|
+
[MACRO] BINARY_HEAP_ITER_EXACT_SIZE_LEN %out_len, %iter_reg
|
|
1287
|
+
EXPAND BINARY_HEAP_ITER_EXACT_SIZE_LEN_U64 %out_len, %iter_reg
|
|
1288
|
+
[END_MACRO]
|
|
1289
|
+
|
|
1290
|
+
[MACRO] BINARY_HEAP_ITER_EXACT_SIZE_IS_EMPTY_U64 %out_bool, %iter_reg
|
|
1291
|
+
EXPAND ITER_EXACT_SIZE_IS_EMPTY %out_bool, %iter_reg
|
|
1292
|
+
[END_MACRO]
|
|
1293
|
+
|
|
1294
|
+
// Rust method-name alias over BINARY_HEAP_ITER_EXACT_SIZE_IS_EMPTY_U64.
|
|
1295
|
+
[MACRO] BINARY_HEAP_ITER_EXACT_SIZE_IS_EMPTY %out_bool, %iter_reg
|
|
1296
|
+
EXPAND BINARY_HEAP_ITER_EXACT_SIZE_IS_EMPTY_U64 %out_bool, %iter_reg
|
|
1297
|
+
[END_MACRO]
|
|
1298
|
+
|
|
1299
|
+
[MACRO] BINARY_HEAP_ITER_COLLECT_U64 %out_vec, %iter_reg
|
|
1300
|
+
EXPAND ITER_COLLECT_U64 %out_vec, %iter_reg
|
|
1301
|
+
[END_MACRO]
|
|
1302
|
+
|
|
1303
|
+
// Rust method-name alias over BINARY_HEAP_ITER_COLLECT_U64.
|
|
1304
|
+
[MACRO] BINARY_HEAP_ITER_COLLECT %out_vec, %iter_reg
|
|
1305
|
+
EXPAND BINARY_HEAP_ITER_COLLECT_U64 %out_vec, %iter_reg
|
|
1306
|
+
[END_MACRO]
|
|
1307
|
+
|
|
1308
|
+
[MACRO] BINARY_HEAP_ITER_TRY_COLLECT_U64 %out_ok, %out_vec, %iter_reg, %try_fn
|
|
1309
|
+
EXPAND ITER_TRY_COLLECT_U64 %out_ok, %out_vec, %iter_reg, %try_fn
|
|
1310
|
+
[END_MACRO]
|
|
1311
|
+
|
|
1312
|
+
// Rust method-name alias over BINARY_HEAP_ITER_TRY_COLLECT_U64.
|
|
1313
|
+
[MACRO] BINARY_HEAP_ITER_TRY_COLLECT %out_ok, %out_vec, %iter_reg, %try_fn
|
|
1314
|
+
EXPAND BINARY_HEAP_ITER_TRY_COLLECT_U64 %out_ok, %out_vec, %iter_reg, %try_fn
|
|
1315
|
+
[END_MACRO]
|
|
1316
|
+
|
|
1317
|
+
[MACRO] BINARY_HEAP_ITER_COLLECT_INTO_U64 %vec_reg, %iter_reg
|
|
1318
|
+
EXPAND ITER_COLLECT_INTO_U64 %vec_reg, %iter_reg
|
|
1319
|
+
[END_MACRO]
|
|
1320
|
+
|
|
1321
|
+
// Rust method-name alias over BINARY_HEAP_ITER_COLLECT_INTO_U64.
|
|
1322
|
+
[MACRO] BINARY_HEAP_ITER_COLLECT_INTO %vec_reg, %iter_reg
|
|
1323
|
+
EXPAND BINARY_HEAP_ITER_COLLECT_INTO_U64 %vec_reg, %iter_reg
|
|
1324
|
+
[END_MACRO]
|
|
1325
|
+
|
|
1326
|
+
[MACRO] BINARY_HEAP_INTO_VEC %out_vec, %heap_reg
|
|
1327
|
+
%out_vec = call @sa_binary_heap_into_vec(^%heap_reg)
|
|
1328
|
+
[END_MACRO]
|
|
1329
|
+
|
|
1330
|
+
[MACRO] BINARY_HEAP_INTO_ITER_U64 %out_iter, %out_vec, %heap_reg
|
|
1331
|
+
EXPAND BINARY_HEAP_INTO_VEC %out_vec, %heap_reg
|
|
1332
|
+
EXPAND VEC_AS_SLICE __binary_heap_into_iter_slice_%out_iter, %out_vec
|
|
1333
|
+
EXPAND ITER_FROM_SLICE %out_iter, __binary_heap_into_iter_slice_%out_iter
|
|
1334
|
+
!__binary_heap_into_iter_slice_%out_iter
|
|
1335
|
+
[END_MACRO]
|
|
1336
|
+
|
|
1337
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_U64.
|
|
1338
|
+
[MACRO] BINARY_HEAP_INTO_ITER %out_iter, %out_vec, %heap_reg
|
|
1339
|
+
EXPAND BINARY_HEAP_INTO_ITER_U64 %out_iter, %out_vec, %heap_reg
|
|
1340
|
+
[END_MACRO]
|
|
1341
|
+
|
|
1342
|
+
[MACRO] BINARY_HEAP_INTO_ITER_DEFAULT_U64 %out_iter, %out_vec
|
|
1343
|
+
EXPAND VEC_INTO_ITER_DEFAULT_U64 %out_iter, %out_vec
|
|
1344
|
+
[END_MACRO]
|
|
1345
|
+
|
|
1346
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_DEFAULT_U64.
|
|
1347
|
+
[MACRO] BINARY_HEAP_INTO_ITER_DEFAULT %out_iter, %out_vec
|
|
1348
|
+
EXPAND BINARY_HEAP_INTO_ITER_DEFAULT_U64 %out_iter, %out_vec
|
|
1349
|
+
[END_MACRO]
|
|
1350
|
+
|
|
1351
|
+
[MACRO] BINARY_HEAP_INTO_ITER_NEXT_U64 %out_has, %out_value, %iter_reg
|
|
1352
|
+
EXPAND ITER_NEXT_U64 %out_has, %out_value, %iter_reg
|
|
1353
|
+
[END_MACRO]
|
|
1354
|
+
|
|
1355
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_NEXT_U64.
|
|
1356
|
+
[MACRO] BINARY_HEAP_INTO_ITER_NEXT %out_has, %out_value, %iter_reg
|
|
1357
|
+
EXPAND BINARY_HEAP_INTO_ITER_NEXT_U64 %out_has, %out_value, %iter_reg
|
|
1358
|
+
[END_MACRO]
|
|
1359
|
+
|
|
1360
|
+
[MACRO] BINARY_HEAP_INTO_ITER_NEXT_BACK_U64 %out_has, %out_value, %iter_reg
|
|
1361
|
+
EXPAND ITER_NEXT_BACK_U64 %out_has, %out_value, %iter_reg
|
|
1362
|
+
[END_MACRO]
|
|
1363
|
+
|
|
1364
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_NEXT_BACK_U64.
|
|
1365
|
+
[MACRO] BINARY_HEAP_INTO_ITER_NEXT_BACK %out_has, %out_value, %iter_reg
|
|
1366
|
+
EXPAND BINARY_HEAP_INTO_ITER_NEXT_BACK_U64 %out_has, %out_value, %iter_reg
|
|
1367
|
+
[END_MACRO]
|
|
1368
|
+
|
|
1369
|
+
[MACRO] BINARY_HEAP_INTO_ITER_NTH_U64 %out_has, %out_value, %iter_reg, %nth
|
|
1370
|
+
EXPAND VEC_INTO_ITER_NTH_U64 %out_has, %out_value, %iter_reg, %nth
|
|
1371
|
+
[END_MACRO]
|
|
1372
|
+
|
|
1373
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_NTH_U64.
|
|
1374
|
+
[MACRO] BINARY_HEAP_INTO_ITER_NTH %out_has, %out_value, %iter_reg, %nth
|
|
1375
|
+
EXPAND BINARY_HEAP_INTO_ITER_NTH_U64 %out_has, %out_value, %iter_reg, %nth
|
|
1376
|
+
[END_MACRO]
|
|
1377
|
+
|
|
1378
|
+
[MACRO] BINARY_HEAP_INTO_ITER_NTH_BACK_U64 %out_has, %out_value, %iter_reg, %nth
|
|
1379
|
+
EXPAND VEC_INTO_ITER_NTH_BACK_U64 %out_has, %out_value, %iter_reg, %nth
|
|
1380
|
+
[END_MACRO]
|
|
1381
|
+
|
|
1382
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_NTH_BACK_U64.
|
|
1383
|
+
[MACRO] BINARY_HEAP_INTO_ITER_NTH_BACK %out_has, %out_value, %iter_reg, %nth
|
|
1384
|
+
EXPAND BINARY_HEAP_INTO_ITER_NTH_BACK_U64 %out_has, %out_value, %iter_reg, %nth
|
|
1385
|
+
[END_MACRO]
|
|
1386
|
+
|
|
1387
|
+
[MACRO] BINARY_HEAP_INTO_ITER_TRY_NEXT_CHUNK_U64 %out_ok, %out_filled, %iter_reg, %dst_ptr, %count
|
|
1388
|
+
EXPAND VEC_INTO_ITER_TRY_NEXT_CHUNK_U64 %out_ok, %out_filled, %iter_reg, %dst_ptr, %count
|
|
1389
|
+
[END_MACRO]
|
|
1390
|
+
|
|
1391
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_TRY_NEXT_CHUNK_U64.
|
|
1392
|
+
[MACRO] BINARY_HEAP_INTO_ITER_TRY_NEXT_CHUNK %out_ok, %out_filled, %iter_reg, %dst_ptr, %count
|
|
1393
|
+
EXPAND BINARY_HEAP_INTO_ITER_TRY_NEXT_CHUNK_U64 %out_ok, %out_filled, %iter_reg, %dst_ptr, %count
|
|
1394
|
+
[END_MACRO]
|
|
1395
|
+
|
|
1396
|
+
[MACRO] BINARY_HEAP_INTO_ITER_ADVANCE_BY %out_ok, %out_remaining, %iter_reg, %count
|
|
1397
|
+
EXPAND VEC_INTO_ITER_ADVANCE_BY %out_ok, %out_remaining, %iter_reg, %count
|
|
1398
|
+
[END_MACRO]
|
|
1399
|
+
|
|
1400
|
+
[MACRO] BINARY_HEAP_INTO_ITER_ADVANCE_BACK_BY %out_ok, %out_remaining, %iter_reg, %count
|
|
1401
|
+
EXPAND VEC_INTO_ITER_ADVANCE_BACK_BY %out_ok, %out_remaining, %iter_reg, %count
|
|
1402
|
+
[END_MACRO]
|
|
1403
|
+
|
|
1404
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SIZE_HINT_U64 %out_lower, %out_upper, %iter_reg
|
|
1405
|
+
EXPAND ITER_SIZE_HINT %out_lower, %out_upper, %iter_reg
|
|
1406
|
+
[END_MACRO]
|
|
1407
|
+
|
|
1408
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_SIZE_HINT_U64.
|
|
1409
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SIZE_HINT %out_lower, %out_upper, %iter_reg
|
|
1410
|
+
EXPAND BINARY_HEAP_INTO_ITER_SIZE_HINT_U64 %out_lower, %out_upper, %iter_reg
|
|
1411
|
+
[END_MACRO]
|
|
1412
|
+
|
|
1413
|
+
[MACRO] BINARY_HEAP_INTO_ITER_EXACT_SIZE_LEN_U64 %out_len, %iter_reg
|
|
1414
|
+
EXPAND ITER_EXACT_SIZE_LEN %out_len, %iter_reg
|
|
1415
|
+
[END_MACRO]
|
|
1416
|
+
|
|
1417
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_EXACT_SIZE_LEN_U64.
|
|
1418
|
+
[MACRO] BINARY_HEAP_INTO_ITER_EXACT_SIZE_LEN %out_len, %iter_reg
|
|
1419
|
+
EXPAND BINARY_HEAP_INTO_ITER_EXACT_SIZE_LEN_U64 %out_len, %iter_reg
|
|
1420
|
+
[END_MACRO]
|
|
1421
|
+
|
|
1422
|
+
[MACRO] BINARY_HEAP_INTO_ITER_EXACT_SIZE_IS_EMPTY_U64 %out_bool, %iter_reg
|
|
1423
|
+
EXPAND ITER_EXACT_SIZE_IS_EMPTY %out_bool, %iter_reg
|
|
1424
|
+
[END_MACRO]
|
|
1425
|
+
|
|
1426
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_EXACT_SIZE_IS_EMPTY_U64.
|
|
1427
|
+
[MACRO] BINARY_HEAP_INTO_ITER_EXACT_SIZE_IS_EMPTY %out_bool, %iter_reg
|
|
1428
|
+
EXPAND BINARY_HEAP_INTO_ITER_EXACT_SIZE_IS_EMPTY_U64 %out_bool, %iter_reg
|
|
1429
|
+
[END_MACRO]
|
|
1430
|
+
|
|
1431
|
+
[MACRO] BINARY_HEAP_INTO_ITER_COUNT_U64 %out_count, %iter_reg
|
|
1432
|
+
EXPAND VEC_INTO_ITER_COUNT_U64 %out_count, %iter_reg
|
|
1433
|
+
[END_MACRO]
|
|
1434
|
+
|
|
1435
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_COUNT_U64.
|
|
1436
|
+
[MACRO] BINARY_HEAP_INTO_ITER_COUNT %out_count, %iter_reg
|
|
1437
|
+
EXPAND BINARY_HEAP_INTO_ITER_COUNT_U64 %out_count, %iter_reg
|
|
1438
|
+
[END_MACRO]
|
|
1439
|
+
|
|
1440
|
+
[MACRO] BINARY_HEAP_INTO_ITER_LAST_U64 %out_has, %out_value, %iter_reg
|
|
1441
|
+
EXPAND VEC_INTO_ITER_LAST_U64 %out_has, %out_value, %iter_reg
|
|
1442
|
+
[END_MACRO]
|
|
1443
|
+
|
|
1444
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_LAST_U64.
|
|
1445
|
+
[MACRO] BINARY_HEAP_INTO_ITER_LAST %out_has, %out_value, %iter_reg
|
|
1446
|
+
EXPAND BINARY_HEAP_INTO_ITER_LAST_U64 %out_has, %out_value, %iter_reg
|
|
1447
|
+
[END_MACRO]
|
|
1448
|
+
|
|
1449
|
+
[MACRO] BINARY_HEAP_INTO_ITER_CLONE_U64 %out_iter, %out_vec, %iter_reg
|
|
1450
|
+
EXPAND VEC_INTO_ITER_CLONE_U64 %out_iter, %out_vec, %iter_reg
|
|
1451
|
+
[END_MACRO]
|
|
1452
|
+
|
|
1453
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_CLONE_U64.
|
|
1454
|
+
[MACRO] BINARY_HEAP_INTO_ITER_CLONE %out_iter, %out_vec, %iter_reg
|
|
1455
|
+
EXPAND BINARY_HEAP_INTO_ITER_CLONE_U64 %out_iter, %out_vec, %iter_reg
|
|
1456
|
+
[END_MACRO]
|
|
1457
|
+
|
|
1458
|
+
[MACRO] BINARY_HEAP_INTO_ITER_COLLECT_U64 %out_vec, %iter_reg
|
|
1459
|
+
EXPAND ITER_COLLECT_U64 %out_vec, %iter_reg
|
|
1460
|
+
[END_MACRO]
|
|
1461
|
+
|
|
1462
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_COLLECT_U64.
|
|
1463
|
+
[MACRO] BINARY_HEAP_INTO_ITER_COLLECT %out_vec, %iter_reg
|
|
1464
|
+
EXPAND BINARY_HEAP_INTO_ITER_COLLECT_U64 %out_vec, %iter_reg
|
|
1465
|
+
[END_MACRO]
|
|
1466
|
+
|
|
1467
|
+
[MACRO] BINARY_HEAP_INTO_ITER_TRY_COLLECT_U64 %out_ok, %out_vec, %iter_reg, %try_fn
|
|
1468
|
+
EXPAND ITER_TRY_COLLECT_U64 %out_ok, %out_vec, %iter_reg, %try_fn
|
|
1469
|
+
[END_MACRO]
|
|
1470
|
+
|
|
1471
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_TRY_COLLECT_U64.
|
|
1472
|
+
[MACRO] BINARY_HEAP_INTO_ITER_TRY_COLLECT %out_ok, %out_vec, %iter_reg, %try_fn
|
|
1473
|
+
EXPAND BINARY_HEAP_INTO_ITER_TRY_COLLECT_U64 %out_ok, %out_vec, %iter_reg, %try_fn
|
|
1474
|
+
[END_MACRO]
|
|
1475
|
+
|
|
1476
|
+
[MACRO] BINARY_HEAP_INTO_ITER_COLLECT_INTO_U64 %vec_reg, %iter_reg
|
|
1477
|
+
EXPAND ITER_COLLECT_INTO_U64 %vec_reg, %iter_reg
|
|
1478
|
+
[END_MACRO]
|
|
1479
|
+
|
|
1480
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_COLLECT_INTO_U64.
|
|
1481
|
+
[MACRO] BINARY_HEAP_INTO_ITER_COLLECT_INTO %vec_reg, %iter_reg
|
|
1482
|
+
EXPAND BINARY_HEAP_INTO_ITER_COLLECT_INTO_U64 %vec_reg, %iter_reg
|
|
1483
|
+
[END_MACRO]
|
|
1484
|
+
|
|
1485
|
+
[MACRO] BINARY_HEAP_INTO_ITER_FIND_U64 %out_has, %out_value, %iter_reg, %pred_fn
|
|
1486
|
+
EXPAND VEC_INTO_ITER_FIND_U64 %out_has, %out_value, %iter_reg, %pred_fn
|
|
1487
|
+
[END_MACRO]
|
|
1488
|
+
|
|
1489
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_FIND_U64.
|
|
1490
|
+
[MACRO] BINARY_HEAP_INTO_ITER_FIND %out_has, %out_value, %iter_reg, %pred_fn
|
|
1491
|
+
EXPAND BINARY_HEAP_INTO_ITER_FIND_U64 %out_has, %out_value, %iter_reg, %pred_fn
|
|
1492
|
+
[END_MACRO]
|
|
1493
|
+
|
|
1494
|
+
[MACRO] BINARY_HEAP_INTO_ITER_TRY_FIND_U64 %out_ok, %out_has, %out_value, %iter_reg, %pred_fn
|
|
1495
|
+
EXPAND VEC_INTO_ITER_TRY_FIND_U64 %out_ok, %out_has, %out_value, %iter_reg, %pred_fn
|
|
1496
|
+
[END_MACRO]
|
|
1497
|
+
|
|
1498
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_TRY_FIND_U64.
|
|
1499
|
+
[MACRO] BINARY_HEAP_INTO_ITER_TRY_FIND %out_ok, %out_has, %out_value, %iter_reg, %pred_fn
|
|
1500
|
+
EXPAND BINARY_HEAP_INTO_ITER_TRY_FIND_U64 %out_ok, %out_has, %out_value, %iter_reg, %pred_fn
|
|
1501
|
+
[END_MACRO]
|
|
1502
|
+
|
|
1503
|
+
[MACRO] BINARY_HEAP_INTO_ITER_FIND_MAP_U64 %out_has, %out_value, %iter_reg, %map_fn
|
|
1504
|
+
EXPAND VEC_INTO_ITER_FIND_MAP_U64 %out_has, %out_value, %iter_reg, %map_fn
|
|
1505
|
+
[END_MACRO]
|
|
1506
|
+
|
|
1507
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_FIND_MAP_U64.
|
|
1508
|
+
[MACRO] BINARY_HEAP_INTO_ITER_FIND_MAP %out_has, %out_value, %iter_reg, %map_fn
|
|
1509
|
+
EXPAND BINARY_HEAP_INTO_ITER_FIND_MAP_U64 %out_has, %out_value, %iter_reg, %map_fn
|
|
1510
|
+
[END_MACRO]
|
|
1511
|
+
|
|
1512
|
+
[MACRO] BINARY_HEAP_INTO_ITER_POSITION_U64 %out_has, %out_index, %iter_reg, %pred_fn
|
|
1513
|
+
EXPAND VEC_INTO_ITER_POSITION_U64 %out_has, %out_index, %iter_reg, %pred_fn
|
|
1514
|
+
[END_MACRO]
|
|
1515
|
+
|
|
1516
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_POSITION_U64.
|
|
1517
|
+
[MACRO] BINARY_HEAP_INTO_ITER_POSITION %out_has, %out_index, %iter_reg, %pred_fn
|
|
1518
|
+
EXPAND BINARY_HEAP_INTO_ITER_POSITION_U64 %out_has, %out_index, %iter_reg, %pred_fn
|
|
1519
|
+
[END_MACRO]
|
|
1520
|
+
|
|
1521
|
+
[MACRO] BINARY_HEAP_INTO_ITER_RPOSITION_U64 %out_has, %out_index, %iter_reg, %pred_fn
|
|
1522
|
+
EXPAND VEC_INTO_ITER_RPOSITION_U64 %out_has, %out_index, %iter_reg, %pred_fn
|
|
1523
|
+
[END_MACRO]
|
|
1524
|
+
|
|
1525
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_RPOSITION_U64.
|
|
1526
|
+
[MACRO] BINARY_HEAP_INTO_ITER_RPOSITION %out_has, %out_index, %iter_reg, %pred_fn
|
|
1527
|
+
EXPAND BINARY_HEAP_INTO_ITER_RPOSITION_U64 %out_has, %out_index, %iter_reg, %pred_fn
|
|
1528
|
+
[END_MACRO]
|
|
1529
|
+
|
|
1530
|
+
[MACRO] BINARY_HEAP_INTO_ITER_RFIND_U64 %out_has, %out_value, %iter_reg, %pred_fn
|
|
1531
|
+
EXPAND VEC_INTO_ITER_RFIND_U64 %out_has, %out_value, %iter_reg, %pred_fn
|
|
1532
|
+
[END_MACRO]
|
|
1533
|
+
|
|
1534
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_RFIND_U64.
|
|
1535
|
+
[MACRO] BINARY_HEAP_INTO_ITER_RFIND %out_has, %out_value, %iter_reg, %pred_fn
|
|
1536
|
+
EXPAND BINARY_HEAP_INTO_ITER_RFIND_U64 %out_has, %out_value, %iter_reg, %pred_fn
|
|
1537
|
+
[END_MACRO]
|
|
1538
|
+
|
|
1539
|
+
[MACRO] BINARY_HEAP_INTO_ITER_ANY_U64 %out_bool, %iter_reg, %pred_fn
|
|
1540
|
+
EXPAND VEC_INTO_ITER_ANY_U64 %out_bool, %iter_reg, %pred_fn
|
|
1541
|
+
[END_MACRO]
|
|
1542
|
+
|
|
1543
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_ANY_U64.
|
|
1544
|
+
[MACRO] BINARY_HEAP_INTO_ITER_ANY %out_bool, %iter_reg, %pred_fn
|
|
1545
|
+
EXPAND BINARY_HEAP_INTO_ITER_ANY_U64 %out_bool, %iter_reg, %pred_fn
|
|
1546
|
+
[END_MACRO]
|
|
1547
|
+
|
|
1548
|
+
[MACRO] BINARY_HEAP_INTO_ITER_ALL_U64 %out_bool, %iter_reg, %pred_fn
|
|
1549
|
+
EXPAND VEC_INTO_ITER_ALL_U64 %out_bool, %iter_reg, %pred_fn
|
|
1550
|
+
[END_MACRO]
|
|
1551
|
+
|
|
1552
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_ALL_U64.
|
|
1553
|
+
[MACRO] BINARY_HEAP_INTO_ITER_ALL %out_bool, %iter_reg, %pred_fn
|
|
1554
|
+
EXPAND BINARY_HEAP_INTO_ITER_ALL_U64 %out_bool, %iter_reg, %pred_fn
|
|
1555
|
+
[END_MACRO]
|
|
1556
|
+
|
|
1557
|
+
[MACRO] BINARY_HEAP_INTO_ITER_FOR_EACH_U64 %iter_reg, %each_fn
|
|
1558
|
+
EXPAND VEC_INTO_ITER_FOR_EACH_U64 %iter_reg, %each_fn
|
|
1559
|
+
[END_MACRO]
|
|
1560
|
+
|
|
1561
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_FOR_EACH_U64.
|
|
1562
|
+
[MACRO] BINARY_HEAP_INTO_ITER_FOR_EACH %iter_reg, %each_fn
|
|
1563
|
+
EXPAND BINARY_HEAP_INTO_ITER_FOR_EACH_U64 %iter_reg, %each_fn
|
|
1564
|
+
[END_MACRO]
|
|
1565
|
+
|
|
1566
|
+
[MACRO] BINARY_HEAP_INTO_ITER_TRY_FOR_EACH_U64 %out_ok, %iter_reg, %each_fn
|
|
1567
|
+
EXPAND VEC_INTO_ITER_TRY_FOR_EACH_U64 %out_ok, %iter_reg, %each_fn
|
|
1568
|
+
[END_MACRO]
|
|
1569
|
+
|
|
1570
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_TRY_FOR_EACH_U64.
|
|
1571
|
+
[MACRO] BINARY_HEAP_INTO_ITER_TRY_FOR_EACH %out_ok, %iter_reg, %each_fn
|
|
1572
|
+
EXPAND BINARY_HEAP_INTO_ITER_TRY_FOR_EACH_U64 %out_ok, %iter_reg, %each_fn
|
|
1573
|
+
[END_MACRO]
|
|
1574
|
+
|
|
1575
|
+
[MACRO] BINARY_HEAP_INTO_ITER_FOLD_U64 %out_value, %iter_reg, %init_value, %fold_fn
|
|
1576
|
+
EXPAND VEC_INTO_ITER_FOLD_U64 %out_value, %iter_reg, %init_value, %fold_fn
|
|
1577
|
+
[END_MACRO]
|
|
1578
|
+
|
|
1579
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_FOLD_U64.
|
|
1580
|
+
[MACRO] BINARY_HEAP_INTO_ITER_FOLD %out_value, %iter_reg, %init_value, %fold_fn
|
|
1581
|
+
EXPAND BINARY_HEAP_INTO_ITER_FOLD_U64 %out_value, %iter_reg, %init_value, %fold_fn
|
|
1582
|
+
[END_MACRO]
|
|
1583
|
+
|
|
1584
|
+
[MACRO] BINARY_HEAP_INTO_ITER_TRY_FOLD_U64 %out_ok, %out_value, %iter_reg, %init_value, %fold_fn
|
|
1585
|
+
EXPAND VEC_INTO_ITER_TRY_FOLD_U64 %out_ok, %out_value, %iter_reg, %init_value, %fold_fn
|
|
1586
|
+
[END_MACRO]
|
|
1587
|
+
|
|
1588
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_TRY_FOLD_U64.
|
|
1589
|
+
[MACRO] BINARY_HEAP_INTO_ITER_TRY_FOLD %out_ok, %out_value, %iter_reg, %init_value, %fold_fn
|
|
1590
|
+
EXPAND BINARY_HEAP_INTO_ITER_TRY_FOLD_U64 %out_ok, %out_value, %iter_reg, %init_value, %fold_fn
|
|
1591
|
+
[END_MACRO]
|
|
1592
|
+
|
|
1593
|
+
[MACRO] BINARY_HEAP_INTO_ITER_RFOLD_U64 %out_value, %iter_reg, %init_value, %fold_fn
|
|
1594
|
+
EXPAND VEC_INTO_ITER_RFOLD_U64 %out_value, %iter_reg, %init_value, %fold_fn
|
|
1595
|
+
[END_MACRO]
|
|
1596
|
+
|
|
1597
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_RFOLD_U64.
|
|
1598
|
+
[MACRO] BINARY_HEAP_INTO_ITER_RFOLD %out_value, %iter_reg, %init_value, %fold_fn
|
|
1599
|
+
EXPAND BINARY_HEAP_INTO_ITER_RFOLD_U64 %out_value, %iter_reg, %init_value, %fold_fn
|
|
1600
|
+
[END_MACRO]
|
|
1601
|
+
|
|
1602
|
+
[MACRO] BINARY_HEAP_INTO_ITER_TRY_RFOLD_U64 %out_ok, %out_value, %iter_reg, %init_value, %fold_fn
|
|
1603
|
+
EXPAND VEC_INTO_ITER_TRY_RFOLD_U64 %out_ok, %out_value, %iter_reg, %init_value, %fold_fn
|
|
1604
|
+
[END_MACRO]
|
|
1605
|
+
|
|
1606
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_TRY_RFOLD_U64.
|
|
1607
|
+
[MACRO] BINARY_HEAP_INTO_ITER_TRY_RFOLD %out_ok, %out_value, %iter_reg, %init_value, %fold_fn
|
|
1608
|
+
EXPAND BINARY_HEAP_INTO_ITER_TRY_RFOLD_U64 %out_ok, %out_value, %iter_reg, %init_value, %fold_fn
|
|
1609
|
+
[END_MACRO]
|
|
1610
|
+
|
|
1611
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SUM_U64 %out_value, %iter_reg
|
|
1612
|
+
EXPAND VEC_INTO_ITER_SUM_U64 %out_value, %iter_reg
|
|
1613
|
+
[END_MACRO]
|
|
1614
|
+
|
|
1615
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_SUM_U64.
|
|
1616
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SUM %out_value, %iter_reg
|
|
1617
|
+
EXPAND BINARY_HEAP_INTO_ITER_SUM_U64 %out_value, %iter_reg
|
|
1618
|
+
[END_MACRO]
|
|
1619
|
+
|
|
1620
|
+
[MACRO] BINARY_HEAP_INTO_ITER_PRODUCT_U64 %out_value, %iter_reg
|
|
1621
|
+
EXPAND VEC_INTO_ITER_PRODUCT_U64 %out_value, %iter_reg
|
|
1622
|
+
[END_MACRO]
|
|
1623
|
+
|
|
1624
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_PRODUCT_U64.
|
|
1625
|
+
[MACRO] BINARY_HEAP_INTO_ITER_PRODUCT %out_value, %iter_reg
|
|
1626
|
+
EXPAND BINARY_HEAP_INTO_ITER_PRODUCT_U64 %out_value, %iter_reg
|
|
1627
|
+
[END_MACRO]
|
|
1628
|
+
|
|
1629
|
+
[MACRO] BINARY_HEAP_INTO_ITER_MIN_U64 %out_has, %out_value, %iter_reg
|
|
1630
|
+
EXPAND VEC_INTO_ITER_MIN_U64 %out_has, %out_value, %iter_reg
|
|
1631
|
+
[END_MACRO]
|
|
1632
|
+
|
|
1633
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_MIN_U64.
|
|
1634
|
+
[MACRO] BINARY_HEAP_INTO_ITER_MIN %out_has, %out_value, %iter_reg
|
|
1635
|
+
EXPAND BINARY_HEAP_INTO_ITER_MIN_U64 %out_has, %out_value, %iter_reg
|
|
1636
|
+
[END_MACRO]
|
|
1637
|
+
|
|
1638
|
+
[MACRO] BINARY_HEAP_INTO_ITER_MAX_U64 %out_has, %out_value, %iter_reg
|
|
1639
|
+
EXPAND VEC_INTO_ITER_MAX_U64 %out_has, %out_value, %iter_reg
|
|
1640
|
+
[END_MACRO]
|
|
1641
|
+
|
|
1642
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_MAX_U64.
|
|
1643
|
+
[MACRO] BINARY_HEAP_INTO_ITER_MAX %out_has, %out_value, %iter_reg
|
|
1644
|
+
EXPAND BINARY_HEAP_INTO_ITER_MAX_U64 %out_has, %out_value, %iter_reg
|
|
1645
|
+
[END_MACRO]
|
|
1646
|
+
|
|
1647
|
+
[MACRO] BINARY_HEAP_INTO_ITER_REDUCE_U64 %out_has, %out_value, %iter_reg, %reduce_fn
|
|
1648
|
+
EXPAND VEC_INTO_ITER_REDUCE_U64 %out_has, %out_value, %iter_reg, %reduce_fn
|
|
1649
|
+
[END_MACRO]
|
|
1650
|
+
|
|
1651
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_REDUCE_U64.
|
|
1652
|
+
[MACRO] BINARY_HEAP_INTO_ITER_REDUCE %out_has, %out_value, %iter_reg, %reduce_fn
|
|
1653
|
+
EXPAND BINARY_HEAP_INTO_ITER_REDUCE_U64 %out_has, %out_value, %iter_reg, %reduce_fn
|
|
1654
|
+
[END_MACRO]
|
|
1655
|
+
|
|
1656
|
+
[MACRO] BINARY_HEAP_INTO_ITER_TRY_REDUCE_U64 %out_ok, %out_has, %out_value, %iter_reg, %reduce_fn
|
|
1657
|
+
EXPAND VEC_INTO_ITER_TRY_REDUCE_U64 %out_ok, %out_has, %out_value, %iter_reg, %reduce_fn
|
|
1658
|
+
[END_MACRO]
|
|
1659
|
+
|
|
1660
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_TRY_REDUCE_U64.
|
|
1661
|
+
[MACRO] BINARY_HEAP_INTO_ITER_TRY_REDUCE %out_ok, %out_has, %out_value, %iter_reg, %reduce_fn
|
|
1662
|
+
EXPAND BINARY_HEAP_INTO_ITER_TRY_REDUCE_U64 %out_ok, %out_has, %out_value, %iter_reg, %reduce_fn
|
|
1663
|
+
[END_MACRO]
|
|
1664
|
+
|
|
1665
|
+
[MACRO] BINARY_HEAP_INTO_ITER_MIN_BY_U64 %out_has, %out_value, %iter_reg, %compare_fn
|
|
1666
|
+
EXPAND VEC_INTO_ITER_MIN_BY_U64 %out_has, %out_value, %iter_reg, %compare_fn
|
|
1667
|
+
[END_MACRO]
|
|
1668
|
+
|
|
1669
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_MIN_BY_U64.
|
|
1670
|
+
[MACRO] BINARY_HEAP_INTO_ITER_MIN_BY %out_has, %out_value, %iter_reg, %compare_fn
|
|
1671
|
+
EXPAND BINARY_HEAP_INTO_ITER_MIN_BY_U64 %out_has, %out_value, %iter_reg, %compare_fn
|
|
1672
|
+
[END_MACRO]
|
|
1673
|
+
|
|
1674
|
+
[MACRO] BINARY_HEAP_INTO_ITER_MAX_BY_U64 %out_has, %out_value, %iter_reg, %compare_fn
|
|
1675
|
+
EXPAND VEC_INTO_ITER_MAX_BY_U64 %out_has, %out_value, %iter_reg, %compare_fn
|
|
1676
|
+
[END_MACRO]
|
|
1677
|
+
|
|
1678
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_MAX_BY_U64.
|
|
1679
|
+
[MACRO] BINARY_HEAP_INTO_ITER_MAX_BY %out_has, %out_value, %iter_reg, %compare_fn
|
|
1680
|
+
EXPAND BINARY_HEAP_INTO_ITER_MAX_BY_U64 %out_has, %out_value, %iter_reg, %compare_fn
|
|
1681
|
+
[END_MACRO]
|
|
1682
|
+
|
|
1683
|
+
[MACRO] BINARY_HEAP_INTO_ITER_MIN_BY_KEY_U64 %out_has, %out_value, %iter_reg, %key_fn
|
|
1684
|
+
EXPAND VEC_INTO_ITER_MIN_BY_KEY_U64 %out_has, %out_value, %iter_reg, %key_fn
|
|
1685
|
+
[END_MACRO]
|
|
1686
|
+
|
|
1687
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_MIN_BY_KEY_U64.
|
|
1688
|
+
[MACRO] BINARY_HEAP_INTO_ITER_MIN_BY_KEY %out_has, %out_value, %iter_reg, %key_fn
|
|
1689
|
+
EXPAND BINARY_HEAP_INTO_ITER_MIN_BY_KEY_U64 %out_has, %out_value, %iter_reg, %key_fn
|
|
1690
|
+
[END_MACRO]
|
|
1691
|
+
|
|
1692
|
+
[MACRO] BINARY_HEAP_INTO_ITER_MAX_BY_KEY_U64 %out_has, %out_value, %iter_reg, %key_fn
|
|
1693
|
+
EXPAND VEC_INTO_ITER_MAX_BY_KEY_U64 %out_has, %out_value, %iter_reg, %key_fn
|
|
1694
|
+
[END_MACRO]
|
|
1695
|
+
|
|
1696
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_MAX_BY_KEY_U64.
|
|
1697
|
+
[MACRO] BINARY_HEAP_INTO_ITER_MAX_BY_KEY %out_has, %out_value, %iter_reg, %key_fn
|
|
1698
|
+
EXPAND BINARY_HEAP_INTO_ITER_MAX_BY_KEY_U64 %out_has, %out_value, %iter_reg, %key_fn
|
|
1699
|
+
[END_MACRO]
|
|
1700
|
+
|
|
1701
|
+
[MACRO] BINARY_HEAP_INTO_ITER_CMP_U64 %out_ordering, %left_iter, %right_iter
|
|
1702
|
+
EXPAND VEC_INTO_ITER_CMP_U64 %out_ordering, %left_iter, %right_iter
|
|
1703
|
+
[END_MACRO]
|
|
1704
|
+
|
|
1705
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_CMP_U64.
|
|
1706
|
+
[MACRO] BINARY_HEAP_INTO_ITER_CMP %out_ordering, %left_iter, %right_iter
|
|
1707
|
+
EXPAND BINARY_HEAP_INTO_ITER_CMP_U64 %out_ordering, %left_iter, %right_iter
|
|
1708
|
+
[END_MACRO]
|
|
1709
|
+
|
|
1710
|
+
[MACRO] BINARY_HEAP_INTO_ITER_CMP_BY_U64 %out_ordering, %left_iter, %right_iter, %compare_fn
|
|
1711
|
+
EXPAND VEC_INTO_ITER_CMP_BY_U64 %out_ordering, %left_iter, %right_iter, %compare_fn
|
|
1712
|
+
[END_MACRO]
|
|
1713
|
+
|
|
1714
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_CMP_BY_U64.
|
|
1715
|
+
[MACRO] BINARY_HEAP_INTO_ITER_CMP_BY %out_ordering, %left_iter, %right_iter, %compare_fn
|
|
1716
|
+
EXPAND BINARY_HEAP_INTO_ITER_CMP_BY_U64 %out_ordering, %left_iter, %right_iter, %compare_fn
|
|
1717
|
+
[END_MACRO]
|
|
1718
|
+
|
|
1719
|
+
[MACRO] BINARY_HEAP_INTO_ITER_PARTIAL_CMP_U64 %out_ordering, %left_iter, %right_iter
|
|
1720
|
+
EXPAND VEC_INTO_ITER_PARTIAL_CMP_U64 %out_ordering, %left_iter, %right_iter
|
|
1721
|
+
[END_MACRO]
|
|
1722
|
+
|
|
1723
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_PARTIAL_CMP_U64.
|
|
1724
|
+
[MACRO] BINARY_HEAP_INTO_ITER_PARTIAL_CMP %out_ordering, %left_iter, %right_iter
|
|
1725
|
+
EXPAND BINARY_HEAP_INTO_ITER_PARTIAL_CMP_U64 %out_ordering, %left_iter, %right_iter
|
|
1726
|
+
[END_MACRO]
|
|
1727
|
+
|
|
1728
|
+
[MACRO] BINARY_HEAP_INTO_ITER_PARTIAL_CMP_BY_U64 %out_ok, %out_ordering, %left_iter, %right_iter, %compare_fn
|
|
1729
|
+
EXPAND VEC_INTO_ITER_PARTIAL_CMP_BY_U64 %out_ok, %out_ordering, %left_iter, %right_iter, %compare_fn
|
|
1730
|
+
[END_MACRO]
|
|
1731
|
+
|
|
1732
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_PARTIAL_CMP_BY_U64.
|
|
1733
|
+
[MACRO] BINARY_HEAP_INTO_ITER_PARTIAL_CMP_BY %out_ok, %out_ordering, %left_iter, %right_iter, %compare_fn
|
|
1734
|
+
EXPAND BINARY_HEAP_INTO_ITER_PARTIAL_CMP_BY_U64 %out_ok, %out_ordering, %left_iter, %right_iter, %compare_fn
|
|
1735
|
+
[END_MACRO]
|
|
1736
|
+
|
|
1737
|
+
[MACRO] BINARY_HEAP_INTO_ITER_EQ_BY_U64 %out_bool, %left_iter, %right_iter, %eq_fn
|
|
1738
|
+
EXPAND VEC_INTO_ITER_EQ_BY_U64 %out_bool, %left_iter, %right_iter, %eq_fn
|
|
1739
|
+
[END_MACRO]
|
|
1740
|
+
|
|
1741
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_EQ_BY_U64.
|
|
1742
|
+
[MACRO] BINARY_HEAP_INTO_ITER_EQ_BY %out_bool, %left_iter, %right_iter, %eq_fn
|
|
1743
|
+
EXPAND BINARY_HEAP_INTO_ITER_EQ_BY_U64 %out_bool, %left_iter, %right_iter, %eq_fn
|
|
1744
|
+
[END_MACRO]
|
|
1745
|
+
|
|
1746
|
+
[MACRO] BINARY_HEAP_INTO_ITER_EQ_U64 %out_bool, %left_iter, %right_iter
|
|
1747
|
+
EXPAND VEC_INTO_ITER_EQ_U64 %out_bool, %left_iter, %right_iter
|
|
1748
|
+
[END_MACRO]
|
|
1749
|
+
|
|
1750
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_EQ_U64.
|
|
1751
|
+
[MACRO] BINARY_HEAP_INTO_ITER_EQ %out_bool, %left_iter, %right_iter
|
|
1752
|
+
EXPAND BINARY_HEAP_INTO_ITER_EQ_U64 %out_bool, %left_iter, %right_iter
|
|
1753
|
+
[END_MACRO]
|
|
1754
|
+
|
|
1755
|
+
[MACRO] BINARY_HEAP_INTO_ITER_PARTIAL_EQ_U64 %out_bool, %left_iter, %right_iter
|
|
1756
|
+
EXPAND VEC_INTO_ITER_PARTIAL_EQ_U64 %out_bool, %left_iter, %right_iter
|
|
1757
|
+
[END_MACRO]
|
|
1758
|
+
|
|
1759
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_PARTIAL_EQ_U64.
|
|
1760
|
+
[MACRO] BINARY_HEAP_INTO_ITER_PARTIAL_EQ %out_bool, %left_iter, %right_iter
|
|
1761
|
+
EXPAND BINARY_HEAP_INTO_ITER_PARTIAL_EQ_U64 %out_bool, %left_iter, %right_iter
|
|
1762
|
+
[END_MACRO]
|
|
1763
|
+
|
|
1764
|
+
[MACRO] BINARY_HEAP_INTO_ITER_NE_U64 %out_bool, %left_iter, %right_iter
|
|
1765
|
+
EXPAND VEC_INTO_ITER_NE_U64 %out_bool, %left_iter, %right_iter
|
|
1766
|
+
[END_MACRO]
|
|
1767
|
+
|
|
1768
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_NE_U64.
|
|
1769
|
+
[MACRO] BINARY_HEAP_INTO_ITER_NE %out_bool, %left_iter, %right_iter
|
|
1770
|
+
EXPAND BINARY_HEAP_INTO_ITER_NE_U64 %out_bool, %left_iter, %right_iter
|
|
1771
|
+
[END_MACRO]
|
|
1772
|
+
|
|
1773
|
+
[MACRO] BINARY_HEAP_INTO_ITER_LT_U64 %out_bool, %left_iter, %right_iter
|
|
1774
|
+
EXPAND VEC_INTO_ITER_LT_U64 %out_bool, %left_iter, %right_iter
|
|
1775
|
+
[END_MACRO]
|
|
1776
|
+
|
|
1777
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_LT_U64.
|
|
1778
|
+
[MACRO] BINARY_HEAP_INTO_ITER_LT %out_bool, %left_iter, %right_iter
|
|
1779
|
+
EXPAND BINARY_HEAP_INTO_ITER_LT_U64 %out_bool, %left_iter, %right_iter
|
|
1780
|
+
[END_MACRO]
|
|
1781
|
+
|
|
1782
|
+
[MACRO] BINARY_HEAP_INTO_ITER_LE_U64 %out_bool, %left_iter, %right_iter
|
|
1783
|
+
EXPAND VEC_INTO_ITER_LE_U64 %out_bool, %left_iter, %right_iter
|
|
1784
|
+
[END_MACRO]
|
|
1785
|
+
|
|
1786
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_LE_U64.
|
|
1787
|
+
[MACRO] BINARY_HEAP_INTO_ITER_LE %out_bool, %left_iter, %right_iter
|
|
1788
|
+
EXPAND BINARY_HEAP_INTO_ITER_LE_U64 %out_bool, %left_iter, %right_iter
|
|
1789
|
+
[END_MACRO]
|
|
1790
|
+
|
|
1791
|
+
[MACRO] BINARY_HEAP_INTO_ITER_GT_U64 %out_bool, %left_iter, %right_iter
|
|
1792
|
+
EXPAND VEC_INTO_ITER_GT_U64 %out_bool, %left_iter, %right_iter
|
|
1793
|
+
[END_MACRO]
|
|
1794
|
+
|
|
1795
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_GT_U64.
|
|
1796
|
+
[MACRO] BINARY_HEAP_INTO_ITER_GT %out_bool, %left_iter, %right_iter
|
|
1797
|
+
EXPAND BINARY_HEAP_INTO_ITER_GT_U64 %out_bool, %left_iter, %right_iter
|
|
1798
|
+
[END_MACRO]
|
|
1799
|
+
|
|
1800
|
+
[MACRO] BINARY_HEAP_INTO_ITER_GE_U64 %out_bool, %left_iter, %right_iter
|
|
1801
|
+
EXPAND VEC_INTO_ITER_GE_U64 %out_bool, %left_iter, %right_iter
|
|
1802
|
+
[END_MACRO]
|
|
1803
|
+
|
|
1804
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_GE_U64.
|
|
1805
|
+
[MACRO] BINARY_HEAP_INTO_ITER_GE %out_bool, %left_iter, %right_iter
|
|
1806
|
+
EXPAND BINARY_HEAP_INTO_ITER_GE_U64 %out_bool, %left_iter, %right_iter
|
|
1807
|
+
[END_MACRO]
|
|
1808
|
+
|
|
1809
|
+
[MACRO] BINARY_HEAP_INTO_SORTED_VEC %out_vec, %heap_reg
|
|
1810
|
+
%out_vec = call @sa_binary_heap_into_sorted_vec(^%heap_reg)
|
|
1811
|
+
[END_MACRO]
|
|
1812
|
+
|
|
1813
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_U64 %out_iter, %out_vec, %heap_reg
|
|
1814
|
+
EXPAND BINARY_HEAP_INTO_SORTED_VEC __binary_heap_sorted_vec_%out_iter, %heap_reg
|
|
1815
|
+
EXPAND VEC_LEN __binary_heap_sorted_len_%out_iter, __binary_heap_sorted_vec_%out_iter
|
|
1816
|
+
EXPAND VEC_WITH_CAPACITY_U64 %out_vec, __binary_heap_sorted_len_%out_iter
|
|
1817
|
+
__binary_heap_sorted_idx_slot_%out_iter = stack_alloc 8
|
|
1818
|
+
store __binary_heap_sorted_idx_slot_%out_iter+0, __binary_heap_sorted_len_%out_iter as u64
|
|
1819
|
+
jmp L_BINARY_HEAP_INTO_ITER_SORTED_HEAD_%out_iter
|
|
1820
|
+
|
|
1821
|
+
L_BINARY_HEAP_INTO_ITER_SORTED_HEAD_%out_iter:
|
|
1822
|
+
__binary_heap_sorted_idx_%out_iter = load __binary_heap_sorted_idx_slot_%out_iter+0 as u64
|
|
1823
|
+
__binary_heap_sorted_done_%out_iter = eq __binary_heap_sorted_idx_%out_iter, 0
|
|
1824
|
+
br __binary_heap_sorted_done_%out_iter -> L_BINARY_HEAP_INTO_ITER_SORTED_BUILD_ITER_%out_iter, L_BINARY_HEAP_INTO_ITER_SORTED_BODY_%out_iter
|
|
1825
|
+
|
|
1826
|
+
L_BINARY_HEAP_INTO_ITER_SORTED_BODY_%out_iter:
|
|
1827
|
+
__binary_heap_sorted_prev_%out_iter = sub __binary_heap_sorted_idx_%out_iter, 1
|
|
1828
|
+
EXPAND VEC_GET_U64 __binary_heap_sorted_value_%out_iter, __binary_heap_sorted_vec_%out_iter, __binary_heap_sorted_prev_%out_iter
|
|
1829
|
+
EXPAND VEC_PUSH_U64 %out_vec, __binary_heap_sorted_value_%out_iter
|
|
1830
|
+
store __binary_heap_sorted_idx_slot_%out_iter+0, __binary_heap_sorted_prev_%out_iter as u64
|
|
1831
|
+
!__binary_heap_sorted_value_%out_iter
|
|
1832
|
+
!__binary_heap_sorted_prev_%out_iter
|
|
1833
|
+
!__binary_heap_sorted_done_%out_iter
|
|
1834
|
+
!__binary_heap_sorted_idx_%out_iter
|
|
1835
|
+
jmp L_BINARY_HEAP_INTO_ITER_SORTED_HEAD_%out_iter
|
|
1836
|
+
|
|
1837
|
+
L_BINARY_HEAP_INTO_ITER_SORTED_BUILD_ITER_%out_iter:
|
|
1838
|
+
EXPAND VEC_FREE __binary_heap_sorted_vec_%out_iter
|
|
1839
|
+
EXPAND VEC_AS_SLICE __binary_heap_into_iter_sorted_slice_%out_iter, %out_vec
|
|
1840
|
+
EXPAND ITER_FROM_SLICE %out_iter, __binary_heap_into_iter_sorted_slice_%out_iter
|
|
1841
|
+
!__binary_heap_into_iter_sorted_slice_%out_iter
|
|
1842
|
+
!__binary_heap_sorted_done_%out_iter
|
|
1843
|
+
!__binary_heap_sorted_idx_%out_iter
|
|
1844
|
+
!__binary_heap_sorted_len_%out_iter
|
|
1845
|
+
[END_MACRO]
|
|
1846
|
+
|
|
1847
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_SORTED_U64.
|
|
1848
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED %out_iter, %out_vec, %heap_reg
|
|
1849
|
+
EXPAND BINARY_HEAP_INTO_ITER_SORTED_U64 %out_iter, %out_vec, %heap_reg
|
|
1850
|
+
[END_MACRO]
|
|
1851
|
+
|
|
1852
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_NEXT_U64 %out_has, %out_value, %iter_reg
|
|
1853
|
+
EXPAND ITER_NEXT_U64 %out_has, %out_value, %iter_reg
|
|
1854
|
+
[END_MACRO]
|
|
1855
|
+
|
|
1856
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_SORTED_NEXT_U64.
|
|
1857
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_NEXT %out_has, %out_value, %iter_reg
|
|
1858
|
+
EXPAND BINARY_HEAP_INTO_ITER_SORTED_NEXT_U64 %out_has, %out_value, %iter_reg
|
|
1859
|
+
[END_MACRO]
|
|
1860
|
+
|
|
1861
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_NTH_U64 %out_has, %out_value, %iter_reg, %nth
|
|
1862
|
+
EXPAND VEC_INTO_ITER_NTH_U64 %out_has, %out_value, %iter_reg, %nth
|
|
1863
|
+
[END_MACRO]
|
|
1864
|
+
|
|
1865
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_SORTED_NTH_U64.
|
|
1866
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_NTH %out_has, %out_value, %iter_reg, %nth
|
|
1867
|
+
EXPAND BINARY_HEAP_INTO_ITER_SORTED_NTH_U64 %out_has, %out_value, %iter_reg, %nth
|
|
1868
|
+
[END_MACRO]
|
|
1869
|
+
|
|
1870
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_TRY_NEXT_CHUNK_U64 %out_ok, %out_filled, %iter_reg, %dst_ptr, %count
|
|
1871
|
+
EXPAND VEC_INTO_ITER_TRY_NEXT_CHUNK_U64 %out_ok, %out_filled, %iter_reg, %dst_ptr, %count
|
|
1872
|
+
[END_MACRO]
|
|
1873
|
+
|
|
1874
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_SORTED_TRY_NEXT_CHUNK_U64.
|
|
1875
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_TRY_NEXT_CHUNK %out_ok, %out_filled, %iter_reg, %dst_ptr, %count
|
|
1876
|
+
EXPAND BINARY_HEAP_INTO_ITER_SORTED_TRY_NEXT_CHUNK_U64 %out_ok, %out_filled, %iter_reg, %dst_ptr, %count
|
|
1877
|
+
[END_MACRO]
|
|
1878
|
+
|
|
1879
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_ADVANCE_BY %out_ok, %out_remaining, %iter_reg, %count
|
|
1880
|
+
EXPAND VEC_INTO_ITER_ADVANCE_BY %out_ok, %out_remaining, %iter_reg, %count
|
|
1881
|
+
[END_MACRO]
|
|
1882
|
+
|
|
1883
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_SIZE_HINT_U64 %out_lower, %out_upper, %iter_reg
|
|
1884
|
+
EXPAND ITER_SIZE_HINT %out_lower, %out_upper, %iter_reg
|
|
1885
|
+
[END_MACRO]
|
|
1886
|
+
|
|
1887
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_SORTED_SIZE_HINT_U64.
|
|
1888
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_SIZE_HINT %out_lower, %out_upper, %iter_reg
|
|
1889
|
+
EXPAND BINARY_HEAP_INTO_ITER_SORTED_SIZE_HINT_U64 %out_lower, %out_upper, %iter_reg
|
|
1890
|
+
[END_MACRO]
|
|
1891
|
+
|
|
1892
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_EXACT_SIZE_LEN_U64 %out_len, %iter_reg
|
|
1893
|
+
EXPAND ITER_EXACT_SIZE_LEN %out_len, %iter_reg
|
|
1894
|
+
[END_MACRO]
|
|
1895
|
+
|
|
1896
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_SORTED_EXACT_SIZE_LEN_U64.
|
|
1897
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_EXACT_SIZE_LEN %out_len, %iter_reg
|
|
1898
|
+
EXPAND BINARY_HEAP_INTO_ITER_SORTED_EXACT_SIZE_LEN_U64 %out_len, %iter_reg
|
|
1899
|
+
[END_MACRO]
|
|
1900
|
+
|
|
1901
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_EXACT_SIZE_IS_EMPTY_U64 %out_bool, %iter_reg
|
|
1902
|
+
EXPAND ITER_EXACT_SIZE_IS_EMPTY %out_bool, %iter_reg
|
|
1903
|
+
[END_MACRO]
|
|
1904
|
+
|
|
1905
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_SORTED_EXACT_SIZE_IS_EMPTY_U64.
|
|
1906
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_EXACT_SIZE_IS_EMPTY %out_bool, %iter_reg
|
|
1907
|
+
EXPAND BINARY_HEAP_INTO_ITER_SORTED_EXACT_SIZE_IS_EMPTY_U64 %out_bool, %iter_reg
|
|
1908
|
+
[END_MACRO]
|
|
1909
|
+
|
|
1910
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_COUNT_U64 %out_count, %iter_reg
|
|
1911
|
+
EXPAND VEC_INTO_ITER_COUNT_U64 %out_count, %iter_reg
|
|
1912
|
+
[END_MACRO]
|
|
1913
|
+
|
|
1914
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_SORTED_COUNT_U64.
|
|
1915
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_COUNT %out_count, %iter_reg
|
|
1916
|
+
EXPAND BINARY_HEAP_INTO_ITER_SORTED_COUNT_U64 %out_count, %iter_reg
|
|
1917
|
+
[END_MACRO]
|
|
1918
|
+
|
|
1919
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_LAST_U64 %out_has, %out_value, %iter_reg
|
|
1920
|
+
EXPAND VEC_INTO_ITER_LAST_U64 %out_has, %out_value, %iter_reg
|
|
1921
|
+
[END_MACRO]
|
|
1922
|
+
|
|
1923
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_SORTED_LAST_U64.
|
|
1924
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_LAST %out_has, %out_value, %iter_reg
|
|
1925
|
+
EXPAND BINARY_HEAP_INTO_ITER_SORTED_LAST_U64 %out_has, %out_value, %iter_reg
|
|
1926
|
+
[END_MACRO]
|
|
1927
|
+
|
|
1928
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_FIND_U64 %out_has, %out_value, %iter_reg, %pred_fn
|
|
1929
|
+
EXPAND VEC_INTO_ITER_FIND_U64 %out_has, %out_value, %iter_reg, %pred_fn
|
|
1930
|
+
[END_MACRO]
|
|
1931
|
+
|
|
1932
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_SORTED_FIND_U64.
|
|
1933
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_FIND %out_has, %out_value, %iter_reg, %pred_fn
|
|
1934
|
+
EXPAND BINARY_HEAP_INTO_ITER_SORTED_FIND_U64 %out_has, %out_value, %iter_reg, %pred_fn
|
|
1935
|
+
[END_MACRO]
|
|
1936
|
+
|
|
1937
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_TRY_FIND_U64 %out_ok, %out_has, %out_value, %iter_reg, %pred_fn
|
|
1938
|
+
EXPAND VEC_INTO_ITER_TRY_FIND_U64 %out_ok, %out_has, %out_value, %iter_reg, %pred_fn
|
|
1939
|
+
[END_MACRO]
|
|
1940
|
+
|
|
1941
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_SORTED_TRY_FIND_U64.
|
|
1942
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_TRY_FIND %out_ok, %out_has, %out_value, %iter_reg, %pred_fn
|
|
1943
|
+
EXPAND BINARY_HEAP_INTO_ITER_SORTED_TRY_FIND_U64 %out_ok, %out_has, %out_value, %iter_reg, %pred_fn
|
|
1944
|
+
[END_MACRO]
|
|
1945
|
+
|
|
1946
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_FIND_MAP_U64 %out_has, %out_value, %iter_reg, %map_fn
|
|
1947
|
+
EXPAND VEC_INTO_ITER_FIND_MAP_U64 %out_has, %out_value, %iter_reg, %map_fn
|
|
1948
|
+
[END_MACRO]
|
|
1949
|
+
|
|
1950
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_SORTED_FIND_MAP_U64.
|
|
1951
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_FIND_MAP %out_has, %out_value, %iter_reg, %map_fn
|
|
1952
|
+
EXPAND BINARY_HEAP_INTO_ITER_SORTED_FIND_MAP_U64 %out_has, %out_value, %iter_reg, %map_fn
|
|
1953
|
+
[END_MACRO]
|
|
1954
|
+
|
|
1955
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_POSITION_U64 %out_has, %out_index, %iter_reg, %pred_fn
|
|
1956
|
+
EXPAND VEC_INTO_ITER_POSITION_U64 %out_has, %out_index, %iter_reg, %pred_fn
|
|
1957
|
+
[END_MACRO]
|
|
1958
|
+
|
|
1959
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_SORTED_POSITION_U64.
|
|
1960
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_POSITION %out_has, %out_index, %iter_reg, %pred_fn
|
|
1961
|
+
EXPAND BINARY_HEAP_INTO_ITER_SORTED_POSITION_U64 %out_has, %out_index, %iter_reg, %pred_fn
|
|
1962
|
+
[END_MACRO]
|
|
1963
|
+
|
|
1964
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_ANY_U64 %out_bool, %iter_reg, %pred_fn
|
|
1965
|
+
EXPAND VEC_INTO_ITER_ANY_U64 %out_bool, %iter_reg, %pred_fn
|
|
1966
|
+
[END_MACRO]
|
|
1967
|
+
|
|
1968
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_SORTED_ANY_U64.
|
|
1969
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_ANY %out_bool, %iter_reg, %pred_fn
|
|
1970
|
+
EXPAND BINARY_HEAP_INTO_ITER_SORTED_ANY_U64 %out_bool, %iter_reg, %pred_fn
|
|
1971
|
+
[END_MACRO]
|
|
1972
|
+
|
|
1973
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_ALL_U64 %out_bool, %iter_reg, %pred_fn
|
|
1974
|
+
EXPAND VEC_INTO_ITER_ALL_U64 %out_bool, %iter_reg, %pred_fn
|
|
1975
|
+
[END_MACRO]
|
|
1976
|
+
|
|
1977
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_SORTED_ALL_U64.
|
|
1978
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_ALL %out_bool, %iter_reg, %pred_fn
|
|
1979
|
+
EXPAND BINARY_HEAP_INTO_ITER_SORTED_ALL_U64 %out_bool, %iter_reg, %pred_fn
|
|
1980
|
+
[END_MACRO]
|
|
1981
|
+
|
|
1982
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_FOR_EACH_U64 %iter_reg, %each_fn
|
|
1983
|
+
EXPAND VEC_INTO_ITER_FOR_EACH_U64 %iter_reg, %each_fn
|
|
1984
|
+
[END_MACRO]
|
|
1985
|
+
|
|
1986
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_SORTED_FOR_EACH_U64.
|
|
1987
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_FOR_EACH %iter_reg, %each_fn
|
|
1988
|
+
EXPAND BINARY_HEAP_INTO_ITER_SORTED_FOR_EACH_U64 %iter_reg, %each_fn
|
|
1989
|
+
[END_MACRO]
|
|
1990
|
+
|
|
1991
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_TRY_FOR_EACH_U64 %out_ok, %iter_reg, %each_fn
|
|
1992
|
+
EXPAND VEC_INTO_ITER_TRY_FOR_EACH_U64 %out_ok, %iter_reg, %each_fn
|
|
1993
|
+
[END_MACRO]
|
|
1994
|
+
|
|
1995
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_SORTED_TRY_FOR_EACH_U64.
|
|
1996
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_TRY_FOR_EACH %out_ok, %iter_reg, %each_fn
|
|
1997
|
+
EXPAND BINARY_HEAP_INTO_ITER_SORTED_TRY_FOR_EACH_U64 %out_ok, %iter_reg, %each_fn
|
|
1998
|
+
[END_MACRO]
|
|
1999
|
+
|
|
2000
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_FOLD_U64 %out_value, %iter_reg, %init_value, %fold_fn
|
|
2001
|
+
EXPAND VEC_INTO_ITER_FOLD_U64 %out_value, %iter_reg, %init_value, %fold_fn
|
|
2002
|
+
[END_MACRO]
|
|
2003
|
+
|
|
2004
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_SORTED_FOLD_U64.
|
|
2005
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_FOLD %out_value, %iter_reg, %init_value, %fold_fn
|
|
2006
|
+
EXPAND BINARY_HEAP_INTO_ITER_SORTED_FOLD_U64 %out_value, %iter_reg, %init_value, %fold_fn
|
|
2007
|
+
[END_MACRO]
|
|
2008
|
+
|
|
2009
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_TRY_FOLD_U64 %out_ok, %out_value, %iter_reg, %init_value, %fold_fn
|
|
2010
|
+
EXPAND VEC_INTO_ITER_TRY_FOLD_U64 %out_ok, %out_value, %iter_reg, %init_value, %fold_fn
|
|
2011
|
+
[END_MACRO]
|
|
2012
|
+
|
|
2013
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_SORTED_TRY_FOLD_U64.
|
|
2014
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_TRY_FOLD %out_ok, %out_value, %iter_reg, %init_value, %fold_fn
|
|
2015
|
+
EXPAND BINARY_HEAP_INTO_ITER_SORTED_TRY_FOLD_U64 %out_ok, %out_value, %iter_reg, %init_value, %fold_fn
|
|
2016
|
+
[END_MACRO]
|
|
2017
|
+
|
|
2018
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_SUM_U64 %out_value, %iter_reg
|
|
2019
|
+
EXPAND VEC_INTO_ITER_SUM_U64 %out_value, %iter_reg
|
|
2020
|
+
[END_MACRO]
|
|
2021
|
+
|
|
2022
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_SORTED_SUM_U64.
|
|
2023
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_SUM %out_value, %iter_reg
|
|
2024
|
+
EXPAND BINARY_HEAP_INTO_ITER_SORTED_SUM_U64 %out_value, %iter_reg
|
|
2025
|
+
[END_MACRO]
|
|
2026
|
+
|
|
2027
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_PRODUCT_U64 %out_value, %iter_reg
|
|
2028
|
+
EXPAND VEC_INTO_ITER_PRODUCT_U64 %out_value, %iter_reg
|
|
2029
|
+
[END_MACRO]
|
|
2030
|
+
|
|
2031
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_SORTED_PRODUCT_U64.
|
|
2032
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_PRODUCT %out_value, %iter_reg
|
|
2033
|
+
EXPAND BINARY_HEAP_INTO_ITER_SORTED_PRODUCT_U64 %out_value, %iter_reg
|
|
2034
|
+
[END_MACRO]
|
|
2035
|
+
|
|
2036
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_MIN_U64 %out_has, %out_value, %iter_reg
|
|
2037
|
+
EXPAND VEC_INTO_ITER_MIN_U64 %out_has, %out_value, %iter_reg
|
|
2038
|
+
[END_MACRO]
|
|
2039
|
+
|
|
2040
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_SORTED_MIN_U64.
|
|
2041
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_MIN %out_has, %out_value, %iter_reg
|
|
2042
|
+
EXPAND BINARY_HEAP_INTO_ITER_SORTED_MIN_U64 %out_has, %out_value, %iter_reg
|
|
2043
|
+
[END_MACRO]
|
|
2044
|
+
|
|
2045
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_MAX_U64 %out_has, %out_value, %iter_reg
|
|
2046
|
+
EXPAND VEC_INTO_ITER_MAX_U64 %out_has, %out_value, %iter_reg
|
|
2047
|
+
[END_MACRO]
|
|
2048
|
+
|
|
2049
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_SORTED_MAX_U64.
|
|
2050
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_MAX %out_has, %out_value, %iter_reg
|
|
2051
|
+
EXPAND BINARY_HEAP_INTO_ITER_SORTED_MAX_U64 %out_has, %out_value, %iter_reg
|
|
2052
|
+
[END_MACRO]
|
|
2053
|
+
|
|
2054
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_REDUCE_U64 %out_has, %out_value, %iter_reg, %reduce_fn
|
|
2055
|
+
EXPAND VEC_INTO_ITER_REDUCE_U64 %out_has, %out_value, %iter_reg, %reduce_fn
|
|
2056
|
+
[END_MACRO]
|
|
2057
|
+
|
|
2058
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_SORTED_REDUCE_U64.
|
|
2059
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_REDUCE %out_has, %out_value, %iter_reg, %reduce_fn
|
|
2060
|
+
EXPAND BINARY_HEAP_INTO_ITER_SORTED_REDUCE_U64 %out_has, %out_value, %iter_reg, %reduce_fn
|
|
2061
|
+
[END_MACRO]
|
|
2062
|
+
|
|
2063
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_TRY_REDUCE_U64 %out_ok, %out_has, %out_value, %iter_reg, %reduce_fn
|
|
2064
|
+
EXPAND VEC_INTO_ITER_TRY_REDUCE_U64 %out_ok, %out_has, %out_value, %iter_reg, %reduce_fn
|
|
2065
|
+
[END_MACRO]
|
|
2066
|
+
|
|
2067
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_SORTED_TRY_REDUCE_U64.
|
|
2068
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_TRY_REDUCE %out_ok, %out_has, %out_value, %iter_reg, %reduce_fn
|
|
2069
|
+
EXPAND BINARY_HEAP_INTO_ITER_SORTED_TRY_REDUCE_U64 %out_ok, %out_has, %out_value, %iter_reg, %reduce_fn
|
|
2070
|
+
[END_MACRO]
|
|
2071
|
+
|
|
2072
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_MIN_BY_U64 %out_has, %out_value, %iter_reg, %compare_fn
|
|
2073
|
+
EXPAND VEC_INTO_ITER_MIN_BY_U64 %out_has, %out_value, %iter_reg, %compare_fn
|
|
2074
|
+
[END_MACRO]
|
|
2075
|
+
|
|
2076
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_SORTED_MIN_BY_U64.
|
|
2077
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_MIN_BY %out_has, %out_value, %iter_reg, %compare_fn
|
|
2078
|
+
EXPAND BINARY_HEAP_INTO_ITER_SORTED_MIN_BY_U64 %out_has, %out_value, %iter_reg, %compare_fn
|
|
2079
|
+
[END_MACRO]
|
|
2080
|
+
|
|
2081
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_MAX_BY_U64 %out_has, %out_value, %iter_reg, %compare_fn
|
|
2082
|
+
EXPAND VEC_INTO_ITER_MAX_BY_U64 %out_has, %out_value, %iter_reg, %compare_fn
|
|
2083
|
+
[END_MACRO]
|
|
2084
|
+
|
|
2085
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_SORTED_MAX_BY_U64.
|
|
2086
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_MAX_BY %out_has, %out_value, %iter_reg, %compare_fn
|
|
2087
|
+
EXPAND BINARY_HEAP_INTO_ITER_SORTED_MAX_BY_U64 %out_has, %out_value, %iter_reg, %compare_fn
|
|
2088
|
+
[END_MACRO]
|
|
2089
|
+
|
|
2090
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_MIN_BY_KEY_U64 %out_has, %out_value, %iter_reg, %key_fn
|
|
2091
|
+
EXPAND VEC_INTO_ITER_MIN_BY_KEY_U64 %out_has, %out_value, %iter_reg, %key_fn
|
|
2092
|
+
[END_MACRO]
|
|
2093
|
+
|
|
2094
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_SORTED_MIN_BY_KEY_U64.
|
|
2095
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_MIN_BY_KEY %out_has, %out_value, %iter_reg, %key_fn
|
|
2096
|
+
EXPAND BINARY_HEAP_INTO_ITER_SORTED_MIN_BY_KEY_U64 %out_has, %out_value, %iter_reg, %key_fn
|
|
2097
|
+
[END_MACRO]
|
|
2098
|
+
|
|
2099
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_MAX_BY_KEY_U64 %out_has, %out_value, %iter_reg, %key_fn
|
|
2100
|
+
EXPAND VEC_INTO_ITER_MAX_BY_KEY_U64 %out_has, %out_value, %iter_reg, %key_fn
|
|
2101
|
+
[END_MACRO]
|
|
2102
|
+
|
|
2103
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_SORTED_MAX_BY_KEY_U64.
|
|
2104
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_MAX_BY_KEY %out_has, %out_value, %iter_reg, %key_fn
|
|
2105
|
+
EXPAND BINARY_HEAP_INTO_ITER_SORTED_MAX_BY_KEY_U64 %out_has, %out_value, %iter_reg, %key_fn
|
|
2106
|
+
[END_MACRO]
|
|
2107
|
+
|
|
2108
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_IS_SORTED_U64 %out_bool, %iter_reg
|
|
2109
|
+
EXPAND VEC_INTO_ITER_IS_SORTED_U64 %out_bool, %iter_reg
|
|
2110
|
+
[END_MACRO]
|
|
2111
|
+
|
|
2112
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_SORTED_IS_SORTED_U64.
|
|
2113
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_IS_SORTED %out_bool, %iter_reg
|
|
2114
|
+
EXPAND BINARY_HEAP_INTO_ITER_SORTED_IS_SORTED_U64 %out_bool, %iter_reg
|
|
2115
|
+
[END_MACRO]
|
|
2116
|
+
|
|
2117
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_IS_SORTED_BY_U64 %out_bool, %iter_reg, %compare_fn
|
|
2118
|
+
EXPAND VEC_INTO_ITER_IS_SORTED_BY_U64 %out_bool, %iter_reg, %compare_fn
|
|
2119
|
+
[END_MACRO]
|
|
2120
|
+
|
|
2121
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_SORTED_IS_SORTED_BY_U64.
|
|
2122
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_IS_SORTED_BY %out_bool, %iter_reg, %compare_fn
|
|
2123
|
+
EXPAND BINARY_HEAP_INTO_ITER_SORTED_IS_SORTED_BY_U64 %out_bool, %iter_reg, %compare_fn
|
|
2124
|
+
[END_MACRO]
|
|
2125
|
+
|
|
2126
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_IS_SORTED_BY_KEY_U64 %out_bool, %iter_reg, %key_fn
|
|
2127
|
+
EXPAND VEC_INTO_ITER_IS_SORTED_BY_KEY_U64 %out_bool, %iter_reg, %key_fn
|
|
2128
|
+
[END_MACRO]
|
|
2129
|
+
|
|
2130
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_SORTED_IS_SORTED_BY_KEY_U64.
|
|
2131
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_IS_SORTED_BY_KEY %out_bool, %iter_reg, %key_fn
|
|
2132
|
+
EXPAND BINARY_HEAP_INTO_ITER_SORTED_IS_SORTED_BY_KEY_U64 %out_bool, %iter_reg, %key_fn
|
|
2133
|
+
[END_MACRO]
|
|
2134
|
+
|
|
2135
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_PARTITION_U64 %out_true_vec, %out_false_vec, %iter_reg, %pred_fn
|
|
2136
|
+
EXPAND VEC_INTO_ITER_PARTITION_U64 %out_true_vec, %out_false_vec, %iter_reg, %pred_fn
|
|
2137
|
+
[END_MACRO]
|
|
2138
|
+
|
|
2139
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_SORTED_PARTITION_U64.
|
|
2140
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_PARTITION %out_true_vec, %out_false_vec, %iter_reg, %pred_fn
|
|
2141
|
+
EXPAND BINARY_HEAP_INTO_ITER_SORTED_PARTITION_U64 %out_true_vec, %out_false_vec, %iter_reg, %pred_fn
|
|
2142
|
+
[END_MACRO]
|
|
2143
|
+
|
|
2144
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_IS_PARTITIONED_U64 %out_bool, %iter_reg, %pred_fn
|
|
2145
|
+
EXPAND VEC_INTO_ITER_IS_PARTITIONED_U64 %out_bool, %iter_reg, %pred_fn
|
|
2146
|
+
[END_MACRO]
|
|
2147
|
+
|
|
2148
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_SORTED_IS_PARTITIONED_U64.
|
|
2149
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_IS_PARTITIONED %out_bool, %iter_reg, %pred_fn
|
|
2150
|
+
EXPAND BINARY_HEAP_INTO_ITER_SORTED_IS_PARTITIONED_U64 %out_bool, %iter_reg, %pred_fn
|
|
2151
|
+
[END_MACRO]
|
|
2152
|
+
|
|
2153
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_CMP_U64 %out_ordering, %left_iter, %right_iter
|
|
2154
|
+
EXPAND VEC_INTO_ITER_CMP_U64 %out_ordering, %left_iter, %right_iter
|
|
2155
|
+
[END_MACRO]
|
|
2156
|
+
|
|
2157
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_SORTED_CMP_U64.
|
|
2158
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_CMP %out_ordering, %left_iter, %right_iter
|
|
2159
|
+
EXPAND BINARY_HEAP_INTO_ITER_SORTED_CMP_U64 %out_ordering, %left_iter, %right_iter
|
|
2160
|
+
[END_MACRO]
|
|
2161
|
+
|
|
2162
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_CMP_BY_U64 %out_ordering, %left_iter, %right_iter, %compare_fn
|
|
2163
|
+
EXPAND VEC_INTO_ITER_CMP_BY_U64 %out_ordering, %left_iter, %right_iter, %compare_fn
|
|
2164
|
+
[END_MACRO]
|
|
2165
|
+
|
|
2166
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_SORTED_CMP_BY_U64.
|
|
2167
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_CMP_BY %out_ordering, %left_iter, %right_iter, %compare_fn
|
|
2168
|
+
EXPAND BINARY_HEAP_INTO_ITER_SORTED_CMP_BY_U64 %out_ordering, %left_iter, %right_iter, %compare_fn
|
|
2169
|
+
[END_MACRO]
|
|
2170
|
+
|
|
2171
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_PARTIAL_CMP_U64 %out_ordering, %left_iter, %right_iter
|
|
2172
|
+
EXPAND VEC_INTO_ITER_PARTIAL_CMP_U64 %out_ordering, %left_iter, %right_iter
|
|
2173
|
+
[END_MACRO]
|
|
2174
|
+
|
|
2175
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_SORTED_PARTIAL_CMP_U64.
|
|
2176
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_PARTIAL_CMP %out_ordering, %left_iter, %right_iter
|
|
2177
|
+
EXPAND BINARY_HEAP_INTO_ITER_SORTED_PARTIAL_CMP_U64 %out_ordering, %left_iter, %right_iter
|
|
2178
|
+
[END_MACRO]
|
|
2179
|
+
|
|
2180
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_PARTIAL_CMP_BY_U64 %out_ok, %out_ordering, %left_iter, %right_iter, %compare_fn
|
|
2181
|
+
EXPAND VEC_INTO_ITER_PARTIAL_CMP_BY_U64 %out_ok, %out_ordering, %left_iter, %right_iter, %compare_fn
|
|
2182
|
+
[END_MACRO]
|
|
2183
|
+
|
|
2184
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_SORTED_PARTIAL_CMP_BY_U64.
|
|
2185
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_PARTIAL_CMP_BY %out_ok, %out_ordering, %left_iter, %right_iter, %compare_fn
|
|
2186
|
+
EXPAND BINARY_HEAP_INTO_ITER_SORTED_PARTIAL_CMP_BY_U64 %out_ok, %out_ordering, %left_iter, %right_iter, %compare_fn
|
|
2187
|
+
[END_MACRO]
|
|
2188
|
+
|
|
2189
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_EQ_BY_U64 %out_bool, %left_iter, %right_iter, %eq_fn
|
|
2190
|
+
EXPAND VEC_INTO_ITER_EQ_BY_U64 %out_bool, %left_iter, %right_iter, %eq_fn
|
|
2191
|
+
[END_MACRO]
|
|
2192
|
+
|
|
2193
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_SORTED_EQ_BY_U64.
|
|
2194
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_EQ_BY %out_bool, %left_iter, %right_iter, %eq_fn
|
|
2195
|
+
EXPAND BINARY_HEAP_INTO_ITER_SORTED_EQ_BY_U64 %out_bool, %left_iter, %right_iter, %eq_fn
|
|
2196
|
+
[END_MACRO]
|
|
2197
|
+
|
|
2198
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_EQ_U64 %out_bool, %left_iter, %right_iter
|
|
2199
|
+
EXPAND VEC_INTO_ITER_EQ_U64 %out_bool, %left_iter, %right_iter
|
|
2200
|
+
[END_MACRO]
|
|
2201
|
+
|
|
2202
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_SORTED_EQ_U64.
|
|
2203
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_EQ %out_bool, %left_iter, %right_iter
|
|
2204
|
+
EXPAND BINARY_HEAP_INTO_ITER_SORTED_EQ_U64 %out_bool, %left_iter, %right_iter
|
|
2205
|
+
[END_MACRO]
|
|
2206
|
+
|
|
2207
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_PARTIAL_EQ_U64 %out_bool, %left_iter, %right_iter
|
|
2208
|
+
EXPAND VEC_INTO_ITER_PARTIAL_EQ_U64 %out_bool, %left_iter, %right_iter
|
|
2209
|
+
[END_MACRO]
|
|
2210
|
+
|
|
2211
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_SORTED_PARTIAL_EQ_U64.
|
|
2212
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_PARTIAL_EQ %out_bool, %left_iter, %right_iter
|
|
2213
|
+
EXPAND BINARY_HEAP_INTO_ITER_SORTED_PARTIAL_EQ_U64 %out_bool, %left_iter, %right_iter
|
|
2214
|
+
[END_MACRO]
|
|
2215
|
+
|
|
2216
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_NE_U64 %out_bool, %left_iter, %right_iter
|
|
2217
|
+
EXPAND VEC_INTO_ITER_NE_U64 %out_bool, %left_iter, %right_iter
|
|
2218
|
+
[END_MACRO]
|
|
2219
|
+
|
|
2220
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_SORTED_NE_U64.
|
|
2221
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_NE %out_bool, %left_iter, %right_iter
|
|
2222
|
+
EXPAND BINARY_HEAP_INTO_ITER_SORTED_NE_U64 %out_bool, %left_iter, %right_iter
|
|
2223
|
+
[END_MACRO]
|
|
2224
|
+
|
|
2225
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_LT_U64 %out_bool, %left_iter, %right_iter
|
|
2226
|
+
EXPAND VEC_INTO_ITER_LT_U64 %out_bool, %left_iter, %right_iter
|
|
2227
|
+
[END_MACRO]
|
|
2228
|
+
|
|
2229
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_SORTED_LT_U64.
|
|
2230
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_LT %out_bool, %left_iter, %right_iter
|
|
2231
|
+
EXPAND BINARY_HEAP_INTO_ITER_SORTED_LT_U64 %out_bool, %left_iter, %right_iter
|
|
2232
|
+
[END_MACRO]
|
|
2233
|
+
|
|
2234
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_LE_U64 %out_bool, %left_iter, %right_iter
|
|
2235
|
+
EXPAND VEC_INTO_ITER_LE_U64 %out_bool, %left_iter, %right_iter
|
|
2236
|
+
[END_MACRO]
|
|
2237
|
+
|
|
2238
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_SORTED_LE_U64.
|
|
2239
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_LE %out_bool, %left_iter, %right_iter
|
|
2240
|
+
EXPAND BINARY_HEAP_INTO_ITER_SORTED_LE_U64 %out_bool, %left_iter, %right_iter
|
|
2241
|
+
[END_MACRO]
|
|
2242
|
+
|
|
2243
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_GT_U64 %out_bool, %left_iter, %right_iter
|
|
2244
|
+
EXPAND VEC_INTO_ITER_GT_U64 %out_bool, %left_iter, %right_iter
|
|
2245
|
+
[END_MACRO]
|
|
2246
|
+
|
|
2247
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_SORTED_GT_U64.
|
|
2248
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_GT %out_bool, %left_iter, %right_iter
|
|
2249
|
+
EXPAND BINARY_HEAP_INTO_ITER_SORTED_GT_U64 %out_bool, %left_iter, %right_iter
|
|
2250
|
+
[END_MACRO]
|
|
2251
|
+
|
|
2252
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_GE_U64 %out_bool, %left_iter, %right_iter
|
|
2253
|
+
EXPAND VEC_INTO_ITER_GE_U64 %out_bool, %left_iter, %right_iter
|
|
2254
|
+
[END_MACRO]
|
|
2255
|
+
|
|
2256
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_SORTED_GE_U64.
|
|
2257
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_GE %out_bool, %left_iter, %right_iter
|
|
2258
|
+
EXPAND BINARY_HEAP_INTO_ITER_SORTED_GE_U64 %out_bool, %left_iter, %right_iter
|
|
2259
|
+
[END_MACRO]
|
|
2260
|
+
|
|
2261
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_CLONE_U64 %out_iter, %out_vec, %iter_reg
|
|
2262
|
+
EXPAND VEC_INTO_ITER_CLONE_U64 %out_iter, %out_vec, %iter_reg
|
|
2263
|
+
[END_MACRO]
|
|
2264
|
+
|
|
2265
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_SORTED_CLONE_U64.
|
|
2266
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_CLONE %out_iter, %out_vec, %iter_reg
|
|
2267
|
+
EXPAND BINARY_HEAP_INTO_ITER_SORTED_CLONE_U64 %out_iter, %out_vec, %iter_reg
|
|
2268
|
+
[END_MACRO]
|
|
2269
|
+
|
|
2270
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_COLLECT_U64 %out_vec, %iter_reg
|
|
2271
|
+
EXPAND ITER_COLLECT_U64 %out_vec, %iter_reg
|
|
2272
|
+
[END_MACRO]
|
|
2273
|
+
|
|
2274
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_SORTED_COLLECT_U64.
|
|
2275
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_COLLECT %out_vec, %iter_reg
|
|
2276
|
+
EXPAND BINARY_HEAP_INTO_ITER_SORTED_COLLECT_U64 %out_vec, %iter_reg
|
|
2277
|
+
[END_MACRO]
|
|
2278
|
+
|
|
2279
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_TRY_COLLECT_U64 %out_ok, %out_vec, %iter_reg, %try_fn
|
|
2280
|
+
EXPAND ITER_TRY_COLLECT_U64 %out_ok, %out_vec, %iter_reg, %try_fn
|
|
2281
|
+
[END_MACRO]
|
|
2282
|
+
|
|
2283
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_SORTED_TRY_COLLECT_U64.
|
|
2284
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_TRY_COLLECT %out_ok, %out_vec, %iter_reg, %try_fn
|
|
2285
|
+
EXPAND BINARY_HEAP_INTO_ITER_SORTED_TRY_COLLECT_U64 %out_ok, %out_vec, %iter_reg, %try_fn
|
|
2286
|
+
[END_MACRO]
|
|
2287
|
+
|
|
2288
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_COLLECT_INTO_U64 %vec_reg, %iter_reg
|
|
2289
|
+
EXPAND ITER_COLLECT_INTO_U64 %vec_reg, %iter_reg
|
|
2290
|
+
[END_MACRO]
|
|
2291
|
+
|
|
2292
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_SORTED_COLLECT_INTO_U64.
|
|
2293
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_COLLECT_INTO %vec_reg, %iter_reg
|
|
2294
|
+
EXPAND BINARY_HEAP_INTO_ITER_SORTED_COLLECT_INTO_U64 %vec_reg, %iter_reg
|
|
2295
|
+
[END_MACRO]
|
|
2296
|
+
|
|
2297
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_TAKE_COLLECT_U64 %out_vec, %iter_reg, %count
|
|
2298
|
+
EXPAND VEC_INTO_ITER_TAKE_COLLECT_U64 %out_vec, %iter_reg, %count
|
|
2299
|
+
[END_MACRO]
|
|
2300
|
+
|
|
2301
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_SORTED_TAKE_COLLECT_U64.
|
|
2302
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_TAKE_COLLECT %out_vec, %iter_reg, %count
|
|
2303
|
+
EXPAND BINARY_HEAP_INTO_ITER_SORTED_TAKE_COLLECT_U64 %out_vec, %iter_reg, %count
|
|
2304
|
+
[END_MACRO]
|
|
2305
|
+
|
|
2306
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_SKIP_COLLECT_U64 %out_vec, %iter_reg, %count
|
|
2307
|
+
EXPAND VEC_INTO_ITER_SKIP_COLLECT_U64 %out_vec, %iter_reg, %count
|
|
2308
|
+
[END_MACRO]
|
|
2309
|
+
|
|
2310
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_SORTED_SKIP_COLLECT_U64.
|
|
2311
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_SKIP_COLLECT %out_vec, %iter_reg, %count
|
|
2312
|
+
EXPAND BINARY_HEAP_INTO_ITER_SORTED_SKIP_COLLECT_U64 %out_vec, %iter_reg, %count
|
|
2313
|
+
[END_MACRO]
|
|
2314
|
+
|
|
2315
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_MAP_COLLECT_U64 %out_vec, %iter_reg, %map_fn
|
|
2316
|
+
EXPAND VEC_INTO_ITER_MAP_COLLECT_U64 %out_vec, %iter_reg, %map_fn
|
|
2317
|
+
[END_MACRO]
|
|
2318
|
+
|
|
2319
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_SORTED_MAP_COLLECT_U64.
|
|
2320
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_MAP_COLLECT %out_vec, %iter_reg, %map_fn
|
|
2321
|
+
EXPAND BINARY_HEAP_INTO_ITER_SORTED_MAP_COLLECT_U64 %out_vec, %iter_reg, %map_fn
|
|
2322
|
+
[END_MACRO]
|
|
2323
|
+
|
|
2324
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_FILTER_COLLECT_U64 %out_vec, %iter_reg, %pred_fn
|
|
2325
|
+
EXPAND VEC_INTO_ITER_FILTER_COLLECT_U64 %out_vec, %iter_reg, %pred_fn
|
|
2326
|
+
[END_MACRO]
|
|
2327
|
+
|
|
2328
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_SORTED_FILTER_COLLECT_U64.
|
|
2329
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_FILTER_COLLECT %out_vec, %iter_reg, %pred_fn
|
|
2330
|
+
EXPAND BINARY_HEAP_INTO_ITER_SORTED_FILTER_COLLECT_U64 %out_vec, %iter_reg, %pred_fn
|
|
2331
|
+
[END_MACRO]
|
|
2332
|
+
|
|
2333
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_FILTER_MAP_COLLECT_U64 %out_vec, %iter_reg, %map_fn
|
|
2334
|
+
EXPAND VEC_INTO_ITER_FILTER_MAP_COLLECT_U64 %out_vec, %iter_reg, %map_fn
|
|
2335
|
+
[END_MACRO]
|
|
2336
|
+
|
|
2337
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_SORTED_FILTER_MAP_COLLECT_U64.
|
|
2338
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_FILTER_MAP_COLLECT %out_vec, %iter_reg, %map_fn
|
|
2339
|
+
EXPAND BINARY_HEAP_INTO_ITER_SORTED_FILTER_MAP_COLLECT_U64 %out_vec, %iter_reg, %map_fn
|
|
2340
|
+
[END_MACRO]
|
|
2341
|
+
|
|
2342
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_MAP_WHILE_COLLECT_U64 %out_vec, %iter_reg, %map_fn
|
|
2343
|
+
EXPAND VEC_INTO_ITER_MAP_WHILE_COLLECT_U64 %out_vec, %iter_reg, %map_fn
|
|
2344
|
+
[END_MACRO]
|
|
2345
|
+
|
|
2346
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_SORTED_MAP_WHILE_COLLECT_U64.
|
|
2347
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_MAP_WHILE_COLLECT %out_vec, %iter_reg, %map_fn
|
|
2348
|
+
EXPAND BINARY_HEAP_INTO_ITER_SORTED_MAP_WHILE_COLLECT_U64 %out_vec, %iter_reg, %map_fn
|
|
2349
|
+
[END_MACRO]
|
|
2350
|
+
|
|
2351
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_INSPECT_COLLECT_U64 %out_vec, %iter_reg, %inspect_fn
|
|
2352
|
+
EXPAND VEC_INTO_ITER_INSPECT_COLLECT_U64 %out_vec, %iter_reg, %inspect_fn
|
|
2353
|
+
[END_MACRO]
|
|
2354
|
+
|
|
2355
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_SORTED_INSPECT_COLLECT_U64.
|
|
2356
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_INSPECT_COLLECT %out_vec, %iter_reg, %inspect_fn
|
|
2357
|
+
EXPAND BINARY_HEAP_INTO_ITER_SORTED_INSPECT_COLLECT_U64 %out_vec, %iter_reg, %inspect_fn
|
|
2358
|
+
[END_MACRO]
|
|
2359
|
+
|
|
2360
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_SCAN_COLLECT_U64 %out_vec, %iter_reg, %initial_state, %scan_fn
|
|
2361
|
+
EXPAND VEC_INTO_ITER_SCAN_COLLECT_U64 %out_vec, %iter_reg, %initial_state, %scan_fn
|
|
2362
|
+
[END_MACRO]
|
|
2363
|
+
|
|
2364
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_SORTED_SCAN_COLLECT_U64.
|
|
2365
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_SCAN_COLLECT %out_vec, %iter_reg, %initial_state, %scan_fn
|
|
2366
|
+
EXPAND BINARY_HEAP_INTO_ITER_SORTED_SCAN_COLLECT_U64 %out_vec, %iter_reg, %initial_state, %scan_fn
|
|
2367
|
+
[END_MACRO]
|
|
2368
|
+
|
|
2369
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_TRY_STEP_BY_COLLECT_U64 %out_ok, %out_vec, %iter_reg, %step
|
|
2370
|
+
EXPAND VEC_INTO_ITER_TRY_STEP_BY_COLLECT_U64 %out_ok, %out_vec, %iter_reg, %step
|
|
2371
|
+
[END_MACRO]
|
|
2372
|
+
|
|
2373
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_SORTED_TRY_STEP_BY_COLLECT_U64.
|
|
2374
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_TRY_STEP_BY_COLLECT %out_ok, %out_vec, %iter_reg, %step
|
|
2375
|
+
EXPAND BINARY_HEAP_INTO_ITER_SORTED_TRY_STEP_BY_COLLECT_U64 %out_ok, %out_vec, %iter_reg, %step
|
|
2376
|
+
[END_MACRO]
|
|
2377
|
+
|
|
2378
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_STEP_BY_COLLECT_U64 %out_vec, %iter_reg, %step
|
|
2379
|
+
EXPAND VEC_INTO_ITER_STEP_BY_COLLECT_U64 %out_vec, %iter_reg, %step
|
|
2380
|
+
[END_MACRO]
|
|
2381
|
+
|
|
2382
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_SORTED_STEP_BY_COLLECT_U64.
|
|
2383
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_STEP_BY_COLLECT %out_vec, %iter_reg, %step
|
|
2384
|
+
EXPAND BINARY_HEAP_INTO_ITER_SORTED_STEP_BY_COLLECT_U64 %out_vec, %iter_reg, %step
|
|
2385
|
+
[END_MACRO]
|
|
2386
|
+
|
|
2387
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_ENUMERATE_COLLECT_U64 %out_vec, %iter_reg
|
|
2388
|
+
EXPAND VEC_INTO_ITER_ENUMERATE_COLLECT_U64 %out_vec, %iter_reg
|
|
2389
|
+
[END_MACRO]
|
|
2390
|
+
|
|
2391
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_SORTED_ENUMERATE_COLLECT_U64.
|
|
2392
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_ENUMERATE_COLLECT %out_vec, %iter_reg
|
|
2393
|
+
EXPAND BINARY_HEAP_INTO_ITER_SORTED_ENUMERATE_COLLECT_U64 %out_vec, %iter_reg
|
|
2394
|
+
[END_MACRO]
|
|
2395
|
+
|
|
2396
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_BY_REF_COLLECT_U64 %out_vec, %iter_reg
|
|
2397
|
+
EXPAND VEC_INTO_ITER_BY_REF_COLLECT_U64 %out_vec, %iter_reg
|
|
2398
|
+
[END_MACRO]
|
|
2399
|
+
|
|
2400
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_SORTED_BY_REF_COLLECT_U64.
|
|
2401
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_BY_REF_COLLECT %out_vec, %iter_reg
|
|
2402
|
+
EXPAND BINARY_HEAP_INTO_ITER_SORTED_BY_REF_COLLECT_U64 %out_vec, %iter_reg
|
|
2403
|
+
[END_MACRO]
|
|
2404
|
+
|
|
2405
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_FUSE_COLLECT_U64 %out_vec, %iter_reg
|
|
2406
|
+
EXPAND VEC_INTO_ITER_FUSE_COLLECT_U64 %out_vec, %iter_reg
|
|
2407
|
+
[END_MACRO]
|
|
2408
|
+
|
|
2409
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_SORTED_FUSE_COLLECT_U64.
|
|
2410
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_FUSE_COLLECT %out_vec, %iter_reg
|
|
2411
|
+
EXPAND BINARY_HEAP_INTO_ITER_SORTED_FUSE_COLLECT_U64 %out_vec, %iter_reg
|
|
2412
|
+
[END_MACRO]
|
|
2413
|
+
|
|
2414
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_PEEKABLE_COLLECT_U64 %out_vec, %iter_reg
|
|
2415
|
+
EXPAND VEC_INTO_ITER_PEEKABLE_COLLECT_U64 %out_vec, %iter_reg
|
|
2416
|
+
[END_MACRO]
|
|
2417
|
+
|
|
2418
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_SORTED_PEEKABLE_COLLECT_U64.
|
|
2419
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_PEEKABLE_COLLECT %out_vec, %iter_reg
|
|
2420
|
+
EXPAND BINARY_HEAP_INTO_ITER_SORTED_PEEKABLE_COLLECT_U64 %out_vec, %iter_reg
|
|
2421
|
+
[END_MACRO]
|
|
2422
|
+
|
|
2423
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_ARRAY_CHUNKS_COLLECT_U64 %out_ok, %out_vec, %iter_reg, %chunk_size
|
|
2424
|
+
EXPAND VEC_INTO_ITER_ARRAY_CHUNKS_COLLECT_U64 %out_ok, %out_vec, %iter_reg, %chunk_size
|
|
2425
|
+
[END_MACRO]
|
|
2426
|
+
|
|
2427
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_SORTED_ARRAY_CHUNKS_COLLECT_U64.
|
|
2428
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_ARRAY_CHUNKS_COLLECT %out_ok, %out_vec, %iter_reg, %chunk_size
|
|
2429
|
+
EXPAND BINARY_HEAP_INTO_ITER_SORTED_ARRAY_CHUNKS_COLLECT_U64 %out_ok, %out_vec, %iter_reg, %chunk_size
|
|
2430
|
+
[END_MACRO]
|
|
2431
|
+
|
|
2432
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_MAP_WINDOWS_COLLECT_U64 %out_ok, %out_vec, %iter_reg, %window_size, %map_fn
|
|
2433
|
+
EXPAND VEC_INTO_ITER_MAP_WINDOWS_COLLECT_U64 %out_ok, %out_vec, %iter_reg, %window_size, %map_fn
|
|
2434
|
+
[END_MACRO]
|
|
2435
|
+
|
|
2436
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_SORTED_MAP_WINDOWS_COLLECT_U64.
|
|
2437
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_MAP_WINDOWS_COLLECT %out_ok, %out_vec, %iter_reg, %window_size, %map_fn
|
|
2438
|
+
EXPAND BINARY_HEAP_INTO_ITER_SORTED_MAP_WINDOWS_COLLECT_U64 %out_ok, %out_vec, %iter_reg, %window_size, %map_fn
|
|
2439
|
+
[END_MACRO]
|
|
2440
|
+
|
|
2441
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_INTERSPERSE_COLLECT_U64 %out_vec, %iter_reg, %separator
|
|
2442
|
+
EXPAND VEC_INTO_ITER_INTERSPERSE_COLLECT_U64 %out_vec, %iter_reg, %separator
|
|
2443
|
+
[END_MACRO]
|
|
2444
|
+
|
|
2445
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_SORTED_INTERSPERSE_COLLECT_U64.
|
|
2446
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_INTERSPERSE_COLLECT %out_vec, %iter_reg, %separator
|
|
2447
|
+
EXPAND BINARY_HEAP_INTO_ITER_SORTED_INTERSPERSE_COLLECT_U64 %out_vec, %iter_reg, %separator
|
|
2448
|
+
[END_MACRO]
|
|
2449
|
+
|
|
2450
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_INTERSPERSE_WITH_COLLECT_U64 %out_vec, %iter_reg, %sep_fn
|
|
2451
|
+
EXPAND VEC_INTO_ITER_INTERSPERSE_WITH_COLLECT_U64 %out_vec, %iter_reg, %sep_fn
|
|
2452
|
+
[END_MACRO]
|
|
2453
|
+
|
|
2454
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_SORTED_INTERSPERSE_WITH_COLLECT_U64.
|
|
2455
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_INTERSPERSE_WITH_COLLECT %out_vec, %iter_reg, %sep_fn
|
|
2456
|
+
EXPAND BINARY_HEAP_INTO_ITER_SORTED_INTERSPERSE_WITH_COLLECT_U64 %out_vec, %iter_reg, %sep_fn
|
|
2457
|
+
[END_MACRO]
|
|
2458
|
+
|
|
2459
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_CYCLE_TAKE_COLLECT_U64 %out_vec, %iter_reg, %count
|
|
2460
|
+
EXPAND VEC_INTO_ITER_CYCLE_TAKE_COLLECT_U64 %out_vec, %iter_reg, %count
|
|
2461
|
+
[END_MACRO]
|
|
2462
|
+
|
|
2463
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_SORTED_CYCLE_TAKE_COLLECT_U64.
|
|
2464
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_CYCLE_TAKE_COLLECT %out_vec, %iter_reg, %count
|
|
2465
|
+
EXPAND BINARY_HEAP_INTO_ITER_SORTED_CYCLE_TAKE_COLLECT_U64 %out_vec, %iter_reg, %count
|
|
2466
|
+
[END_MACRO]
|
|
2467
|
+
|
|
2468
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_TAKE_WHILE_COLLECT_U64 %out_vec, %iter_reg, %pred_fn
|
|
2469
|
+
EXPAND VEC_INTO_ITER_TAKE_WHILE_COLLECT_U64 %out_vec, %iter_reg, %pred_fn
|
|
2470
|
+
[END_MACRO]
|
|
2471
|
+
|
|
2472
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_SORTED_TAKE_WHILE_COLLECT_U64.
|
|
2473
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_TAKE_WHILE_COLLECT %out_vec, %iter_reg, %pred_fn
|
|
2474
|
+
EXPAND BINARY_HEAP_INTO_ITER_SORTED_TAKE_WHILE_COLLECT_U64 %out_vec, %iter_reg, %pred_fn
|
|
2475
|
+
[END_MACRO]
|
|
2476
|
+
|
|
2477
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_SKIP_WHILE_COLLECT_U64 %out_vec, %iter_reg, %pred_fn
|
|
2478
|
+
EXPAND VEC_INTO_ITER_SKIP_WHILE_COLLECT_U64 %out_vec, %iter_reg, %pred_fn
|
|
2479
|
+
[END_MACRO]
|
|
2480
|
+
|
|
2481
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_SORTED_SKIP_WHILE_COLLECT_U64.
|
|
2482
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_SKIP_WHILE_COLLECT %out_vec, %iter_reg, %pred_fn
|
|
2483
|
+
EXPAND BINARY_HEAP_INTO_ITER_SORTED_SKIP_WHILE_COLLECT_U64 %out_vec, %iter_reg, %pred_fn
|
|
2484
|
+
[END_MACRO]
|
|
2485
|
+
|
|
2486
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_ZIP_COLLECT_U64 %out_vec, %left_iter, %right_iter
|
|
2487
|
+
EXPAND VEC_INTO_ITER_ZIP_COLLECT_U64 %out_vec, %left_iter, %right_iter
|
|
2488
|
+
[END_MACRO]
|
|
2489
|
+
|
|
2490
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_SORTED_ZIP_COLLECT_U64.
|
|
2491
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_ZIP_COLLECT %out_vec, %left_iter, %right_iter
|
|
2492
|
+
EXPAND BINARY_HEAP_INTO_ITER_SORTED_ZIP_COLLECT_U64 %out_vec, %left_iter, %right_iter
|
|
2493
|
+
[END_MACRO]
|
|
2494
|
+
|
|
2495
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_CHAIN_COLLECT_U64 %out_vec, %left_iter, %right_iter
|
|
2496
|
+
EXPAND VEC_INTO_ITER_CHAIN_COLLECT_U64 %out_vec, %left_iter, %right_iter
|
|
2497
|
+
[END_MACRO]
|
|
2498
|
+
|
|
2499
|
+
// Rust method-name alias over BINARY_HEAP_INTO_ITER_SORTED_CHAIN_COLLECT_U64.
|
|
2500
|
+
[MACRO] BINARY_HEAP_INTO_ITER_SORTED_CHAIN_COLLECT %out_vec, %left_iter, %right_iter
|
|
2501
|
+
EXPAND BINARY_HEAP_INTO_ITER_SORTED_CHAIN_COLLECT_U64 %out_vec, %left_iter, %right_iter
|
|
2502
|
+
[END_MACRO]
|
|
2503
|
+
|
|
2504
|
+
[MACRO] BINARY_HEAP_IS_EMPTY %out_flag, %heap_reg
|
|
2505
|
+
%out_flag = call @sa_binary_heap_is_empty(&%heap_reg)
|
|
2506
|
+
[END_MACRO]
|
|
2507
|
+
|
|
2508
|
+
[MACRO] BINARY_HEAP_PEEK %out_value, %heap_reg
|
|
2509
|
+
%out_value = call @sa_binary_heap_peek(&%heap_reg)
|
|
2510
|
+
[END_MACRO]
|
|
2511
|
+
|
|
2512
|
+
[MACRO] BINARY_HEAP_TRY_PEEK_MUT_PTR %out_ok, %out_ptr, %heap_reg
|
|
2513
|
+
__binary_heap_peek_mut_slot_%out_ok = stack_alloc 8
|
|
2514
|
+
__binary_heap_peek_mut_ok_%out_ok = call @sa_binary_heap_try_peek_mut_ptr(&%heap_reg, &__binary_heap_peek_mut_slot_%out_ok)
|
|
2515
|
+
%out_ptr = load __binary_heap_peek_mut_slot_%out_ok+0 as ptr
|
|
2516
|
+
%out_ok = __binary_heap_peek_mut_ok_%out_ok
|
|
2517
|
+
[END_MACRO]
|
|
2518
|
+
|
|
2519
|
+
[MACRO] BINARY_HEAP_PEEK_MUT_PTR %out_ptr, %heap_reg
|
|
2520
|
+
EXPAND BINARY_HEAP_TRY_PEEK_MUT_PTR __binary_heap_peek_mut_ok_%out_ptr, %out_ptr, %heap_reg
|
|
2521
|
+
[END_MACRO]
|
|
2522
|
+
|
|
2523
|
+
// Rust method-name alias over checked peek-mut raw slot pointer.
|
|
2524
|
+
[MACRO] BINARY_HEAP_PEEK_MUT %out_ok, %out_ptr, %heap_reg
|
|
2525
|
+
EXPAND BINARY_HEAP_TRY_PEEK_MUT_PTR %out_ok, %out_ptr, %heap_reg
|
|
2526
|
+
[END_MACRO]
|
|
2527
|
+
|
|
2528
|
+
[MACRO] BINARY_HEAP_TRY_PEEK_MUT_SET_U64 %out_ok, %out_old_value, %heap_reg, %value
|
|
2529
|
+
__binary_heap_peek_set_slot_%out_ok = stack_alloc 8
|
|
2530
|
+
__binary_heap_peek_set_ok_%out_ok = call @sa_binary_heap_try_peek_mut_set_u64(&%heap_reg, %value, &__binary_heap_peek_set_slot_%out_ok)
|
|
2531
|
+
%out_old_value = load __binary_heap_peek_set_slot_%out_ok+0 as u64
|
|
2532
|
+
%out_ok = __binary_heap_peek_set_ok_%out_ok
|
|
2533
|
+
[END_MACRO]
|
|
2534
|
+
|
|
2535
|
+
// Rust method-name alias over BINARY_HEAP_TRY_PEEK_MUT_SET_U64.
|
|
2536
|
+
[MACRO] BINARY_HEAP_TRY_PEEK_MUT_SET %out_ok, %out_old_value, %heap_reg, %value
|
|
2537
|
+
EXPAND BINARY_HEAP_TRY_PEEK_MUT_SET_U64 %out_ok, %out_old_value, %heap_reg, %value
|
|
2538
|
+
[END_MACRO]
|
|
2539
|
+
|
|
2540
|
+
[MACRO] BINARY_HEAP_PEEK_MUT_SET_U64 %out_old_value, %heap_reg, %value
|
|
2541
|
+
EXPAND BINARY_HEAP_TRY_PEEK_MUT_SET_U64 __binary_heap_peek_set_ok_%out_old_value, %out_old_value, %heap_reg, %value
|
|
2542
|
+
[END_MACRO]
|
|
2543
|
+
|
|
2544
|
+
// Rust method-name alias over BINARY_HEAP_PEEK_MUT_SET_U64.
|
|
2545
|
+
[MACRO] BINARY_HEAP_PEEK_MUT_SET %out_old_value, %heap_reg, %value
|
|
2546
|
+
EXPAND BINARY_HEAP_PEEK_MUT_SET_U64 %out_old_value, %heap_reg, %value
|
|
2547
|
+
[END_MACRO]
|
|
2548
|
+
|
|
2549
|
+
[MACRO] BINARY_HEAP_PUSH %heap_reg, %value
|
|
2550
|
+
call @sa_binary_heap_push(&%heap_reg, %value)
|
|
2551
|
+
[END_MACRO]
|
|
2552
|
+
|
|
2553
|
+
[MACRO] BINARY_HEAP_TRY_POP %out_ok, %out_value, %heap_reg
|
|
2554
|
+
__binary_heap_value_slot_%out_ok = stack_alloc 8
|
|
2555
|
+
__binary_heap_ok_%out_ok = call @sa_binary_heap_try_pop(&%heap_reg, &__binary_heap_value_slot_%out_ok)
|
|
2556
|
+
%out_value = load __binary_heap_value_slot_%out_ok+0 as u64
|
|
2557
|
+
%out_ok = __binary_heap_ok_%out_ok
|
|
2558
|
+
[END_MACRO]
|
|
2559
|
+
|
|
2560
|
+
[MACRO] BINARY_HEAP_TRY_POP_IF_U64 %out_ok, %out_value, %heap_reg, %pred_fn
|
|
2561
|
+
EXPAND BINARY_HEAP_TRY_PEEK __binary_heap_pop_if_has_%out_ok, __binary_heap_pop_if_value_%out_ok, %heap_reg
|
|
2562
|
+
br __binary_heap_pop_if_has_%out_ok -> L_BINARY_HEAP_POP_IF_CHECK_%out_ok, L_BINARY_HEAP_POP_IF_EMPTY_%out_ok
|
|
2563
|
+
|
|
2564
|
+
L_BINARY_HEAP_POP_IF_CHECK_%out_ok:
|
|
2565
|
+
__binary_heap_pop_if_pred_%out_ok = call %pred_fn(__binary_heap_pop_if_value_%out_ok)
|
|
2566
|
+
__binary_heap_pop_if_take_%out_ok = ne __binary_heap_pop_if_pred_%out_ok, 0
|
|
2567
|
+
br __binary_heap_pop_if_take_%out_ok -> L_BINARY_HEAP_POP_IF_TAKE_%out_ok, L_BINARY_HEAP_POP_IF_KEEP_%out_ok
|
|
2568
|
+
|
|
2569
|
+
L_BINARY_HEAP_POP_IF_TAKE_%out_ok:
|
|
2570
|
+
EXPAND BINARY_HEAP_TRY_POP __binary_heap_pop_if_pop_ok_%out_ok, __binary_heap_pop_if_pop_value_%out_ok, %heap_reg
|
|
2571
|
+
%out_ok = __binary_heap_pop_if_pop_ok_%out_ok
|
|
2572
|
+
%out_value = __binary_heap_pop_if_pop_value_%out_ok
|
|
2573
|
+
!__binary_heap_pop_if_take_%out_ok
|
|
2574
|
+
!__binary_heap_pop_if_pred_%out_ok
|
|
2575
|
+
!__binary_heap_pop_if_value_%out_ok
|
|
2576
|
+
!__binary_heap_pop_if_has_%out_ok
|
|
2577
|
+
jmp L_BINARY_HEAP_POP_IF_END_%out_ok
|
|
2578
|
+
|
|
2579
|
+
L_BINARY_HEAP_POP_IF_KEEP_%out_ok:
|
|
2580
|
+
%out_ok = add 0, 0
|
|
2581
|
+
%out_value = add 0, 0
|
|
2582
|
+
!__binary_heap_pop_if_take_%out_ok
|
|
2583
|
+
!__binary_heap_pop_if_pred_%out_ok
|
|
2584
|
+
!__binary_heap_pop_if_value_%out_ok
|
|
2585
|
+
!__binary_heap_pop_if_has_%out_ok
|
|
2586
|
+
jmp L_BINARY_HEAP_POP_IF_END_%out_ok
|
|
2587
|
+
|
|
2588
|
+
L_BINARY_HEAP_POP_IF_EMPTY_%out_ok:
|
|
2589
|
+
%out_ok = add 0, 0
|
|
2590
|
+
%out_value = add 0, 0
|
|
2591
|
+
!__binary_heap_pop_if_value_%out_ok
|
|
2592
|
+
!__binary_heap_pop_if_has_%out_ok
|
|
2593
|
+
|
|
2594
|
+
L_BINARY_HEAP_POP_IF_END_%out_ok:
|
|
2595
|
+
[END_MACRO]
|
|
2596
|
+
|
|
2597
|
+
// Rust method-name alias over BINARY_HEAP_TRY_POP_IF_U64.
|
|
2598
|
+
[MACRO] BINARY_HEAP_TRY_POP_IF %out_ok, %out_value, %heap_reg, %pred_fn
|
|
2599
|
+
EXPAND BINARY_HEAP_TRY_POP_IF_U64 %out_ok, %out_value, %heap_reg, %pred_fn
|
|
2600
|
+
[END_MACRO]
|
|
2601
|
+
|
|
2602
|
+
[MACRO] BINARY_HEAP_POP_IF_U64 %out_ok, %out_value, %heap_reg, %pred_fn
|
|
2603
|
+
EXPAND BINARY_HEAP_TRY_POP_IF_U64 %out_ok, %out_value, %heap_reg, %pred_fn
|
|
2604
|
+
[END_MACRO]
|
|
2605
|
+
|
|
2606
|
+
// Rust method-name alias over BINARY_HEAP_POP_IF_U64.
|
|
2607
|
+
[MACRO] BINARY_HEAP_POP_IF %out_ok, %out_value, %heap_reg, %pred_fn
|
|
2608
|
+
EXPAND BINARY_HEAP_POP_IF_U64 %out_ok, %out_value, %heap_reg, %pred_fn
|
|
2609
|
+
[END_MACRO]
|
|
2610
|
+
|
|
2611
|
+
[MACRO] BINARY_HEAP_CLEAR %heap_reg
|
|
2612
|
+
call @sa_binary_heap_clear(&%heap_reg)
|
|
2613
|
+
[END_MACRO]
|
|
2614
|
+
|
|
2615
|
+
[MACRO] BINARY_HEAP_DRAIN %out_vec, %heap_reg
|
|
2616
|
+
__binary_heap_drain_buf_%out_vec = load %heap_reg+BinaryHeap_buf as ptr
|
|
2617
|
+
__binary_heap_drain_len_%out_vec = load %heap_reg+BinaryHeap_len as u64
|
|
2618
|
+
EXPAND VEC_WITH_CAPACITY_U64 %out_vec, __binary_heap_drain_len_%out_vec
|
|
2619
|
+
__binary_heap_drain_idx_slot_%out_vec = stack_alloc 8
|
|
2620
|
+
store __binary_heap_drain_idx_slot_%out_vec+0, 0 as u64
|
|
2621
|
+
jmp L_BINARY_HEAP_DRAIN_HEAD_%out_vec
|
|
2622
|
+
|
|
2623
|
+
L_BINARY_HEAP_DRAIN_HEAD_%out_vec:
|
|
2624
|
+
__binary_heap_drain_idx_%out_vec = load __binary_heap_drain_idx_slot_%out_vec+0 as u64
|
|
2625
|
+
__binary_heap_drain_done_%out_vec = eq __binary_heap_drain_idx_%out_vec, __binary_heap_drain_len_%out_vec
|
|
2626
|
+
br __binary_heap_drain_done_%out_vec -> L_BINARY_HEAP_DRAIN_DONE_%out_vec, L_BINARY_HEAP_DRAIN_BODY_%out_vec
|
|
2627
|
+
|
|
2628
|
+
L_BINARY_HEAP_DRAIN_BODY_%out_vec:
|
|
2629
|
+
__binary_heap_drain_off_%out_vec = mul __binary_heap_drain_idx_%out_vec, BinaryHeap_SLOT_SIZE
|
|
2630
|
+
__binary_heap_drain_ptr_%out_vec = ptr_add __binary_heap_drain_buf_%out_vec, __binary_heap_drain_off_%out_vec
|
|
2631
|
+
__binary_heap_drain_value_%out_vec = load __binary_heap_drain_ptr_%out_vec+0 as u64
|
|
2632
|
+
EXPAND VEC_PUSH_U64 %out_vec, __binary_heap_drain_value_%out_vec
|
|
2633
|
+
__binary_heap_drain_next_%out_vec = add __binary_heap_drain_idx_%out_vec, 1
|
|
2634
|
+
store __binary_heap_drain_idx_slot_%out_vec+0, __binary_heap_drain_next_%out_vec as u64
|
|
2635
|
+
!__binary_heap_drain_next_%out_vec
|
|
2636
|
+
!__binary_heap_drain_value_%out_vec
|
|
2637
|
+
!__binary_heap_drain_ptr_%out_vec
|
|
2638
|
+
!__binary_heap_drain_off_%out_vec
|
|
2639
|
+
!__binary_heap_drain_done_%out_vec
|
|
2640
|
+
!__binary_heap_drain_idx_%out_vec
|
|
2641
|
+
jmp L_BINARY_HEAP_DRAIN_HEAD_%out_vec
|
|
2642
|
+
|
|
2643
|
+
L_BINARY_HEAP_DRAIN_DONE_%out_vec:
|
|
2644
|
+
call @sa_binary_heap_clear(&%heap_reg)
|
|
2645
|
+
!__binary_heap_drain_done_%out_vec
|
|
2646
|
+
!__binary_heap_drain_idx_%out_vec
|
|
2647
|
+
!__binary_heap_drain_len_%out_vec
|
|
2648
|
+
!__binary_heap_drain_buf_%out_vec
|
|
2649
|
+
[END_MACRO]
|
|
2650
|
+
|
|
2651
|
+
[MACRO] BINARY_HEAP_RETAIN_U64 %out_len, %heap_reg, %pred_fn
|
|
2652
|
+
__binary_heap_retain_buf_%out_len = load %heap_reg+BinaryHeap_buf as ptr
|
|
2653
|
+
__binary_heap_retain_len_%out_len = load %heap_reg+BinaryHeap_len as u64
|
|
2654
|
+
__binary_heap_retain_read_slot_%out_len = stack_alloc 8
|
|
2655
|
+
__binary_heap_retain_write_slot_%out_len = stack_alloc 8
|
|
2656
|
+
store __binary_heap_retain_read_slot_%out_len+0, 0 as u64
|
|
2657
|
+
store __binary_heap_retain_write_slot_%out_len+0, 0 as u64
|
|
2658
|
+
jmp L_BINARY_HEAP_RETAIN_HEAD_%out_len
|
|
2659
|
+
|
|
2660
|
+
L_BINARY_HEAP_RETAIN_HEAD_%out_len:
|
|
2661
|
+
__binary_heap_retain_read_%out_len = load __binary_heap_retain_read_slot_%out_len+0 as u64
|
|
2662
|
+
__binary_heap_retain_done_%out_len = eq __binary_heap_retain_read_%out_len, __binary_heap_retain_len_%out_len
|
|
2663
|
+
br __binary_heap_retain_done_%out_len -> L_BINARY_HEAP_RETAIN_CLEAR_HEAD_%out_len, L_BINARY_HEAP_RETAIN_BODY_%out_len
|
|
2664
|
+
|
|
2665
|
+
L_BINARY_HEAP_RETAIN_BODY_%out_len:
|
|
2666
|
+
__binary_heap_retain_read_off_%out_len = mul __binary_heap_retain_read_%out_len, BinaryHeap_SLOT_SIZE
|
|
2667
|
+
__binary_heap_retain_read_ptr_%out_len = ptr_add __binary_heap_retain_buf_%out_len, __binary_heap_retain_read_off_%out_len
|
|
2668
|
+
__binary_heap_retain_value_%out_len = load __binary_heap_retain_read_ptr_%out_len+0 as u64
|
|
2669
|
+
__binary_heap_retain_pred_%out_len = call %pred_fn(__binary_heap_retain_value_%out_len)
|
|
2670
|
+
__binary_heap_retain_keep_%out_len = ne __binary_heap_retain_pred_%out_len, 0
|
|
2671
|
+
br __binary_heap_retain_keep_%out_len -> L_BINARY_HEAP_RETAIN_KEEP_%out_len, L_BINARY_HEAP_RETAIN_SKIP_%out_len
|
|
2672
|
+
|
|
2673
|
+
L_BINARY_HEAP_RETAIN_KEEP_%out_len:
|
|
2674
|
+
__binary_heap_retain_write_%out_len = load __binary_heap_retain_write_slot_%out_len+0 as u64
|
|
2675
|
+
__binary_heap_retain_same_slot_%out_len = eq __binary_heap_retain_write_%out_len, __binary_heap_retain_read_%out_len
|
|
2676
|
+
br __binary_heap_retain_same_slot_%out_len -> L_BINARY_HEAP_RETAIN_KEEP_ADVANCE_%out_len, L_BINARY_HEAP_RETAIN_COPY_%out_len
|
|
2677
|
+
|
|
2678
|
+
L_BINARY_HEAP_RETAIN_COPY_%out_len:
|
|
2679
|
+
__binary_heap_retain_write_off_%out_len = mul __binary_heap_retain_write_%out_len, BinaryHeap_SLOT_SIZE
|
|
2680
|
+
__binary_heap_retain_write_ptr_%out_len = ptr_add __binary_heap_retain_buf_%out_len, __binary_heap_retain_write_off_%out_len
|
|
2681
|
+
store __binary_heap_retain_write_ptr_%out_len+0, __binary_heap_retain_value_%out_len as u64
|
|
2682
|
+
!__binary_heap_retain_write_ptr_%out_len
|
|
2683
|
+
!__binary_heap_retain_write_off_%out_len
|
|
2684
|
+
jmp L_BINARY_HEAP_RETAIN_KEEP_ADVANCE_%out_len
|
|
2685
|
+
|
|
2686
|
+
L_BINARY_HEAP_RETAIN_KEEP_ADVANCE_%out_len:
|
|
2687
|
+
__binary_heap_retain_next_write_%out_len = add __binary_heap_retain_write_%out_len, 1
|
|
2688
|
+
store __binary_heap_retain_write_slot_%out_len+0, __binary_heap_retain_next_write_%out_len as u64
|
|
2689
|
+
!__binary_heap_retain_next_write_%out_len
|
|
2690
|
+
!__binary_heap_retain_same_slot_%out_len
|
|
2691
|
+
!__binary_heap_retain_write_%out_len
|
|
2692
|
+
jmp L_BINARY_HEAP_RETAIN_NEXT_%out_len
|
|
2693
|
+
|
|
2694
|
+
L_BINARY_HEAP_RETAIN_SKIP_%out_len:
|
|
2695
|
+
jmp L_BINARY_HEAP_RETAIN_NEXT_%out_len
|
|
2696
|
+
|
|
2697
|
+
L_BINARY_HEAP_RETAIN_NEXT_%out_len:
|
|
2698
|
+
__binary_heap_retain_next_read_%out_len = add __binary_heap_retain_read_%out_len, 1
|
|
2699
|
+
store __binary_heap_retain_read_slot_%out_len+0, __binary_heap_retain_next_read_%out_len as u64
|
|
2700
|
+
!__binary_heap_retain_next_read_%out_len
|
|
2701
|
+
!__binary_heap_retain_keep_%out_len
|
|
2702
|
+
!__binary_heap_retain_pred_%out_len
|
|
2703
|
+
!__binary_heap_retain_value_%out_len
|
|
2704
|
+
!__binary_heap_retain_read_ptr_%out_len
|
|
2705
|
+
!__binary_heap_retain_read_off_%out_len
|
|
2706
|
+
!__binary_heap_retain_done_%out_len
|
|
2707
|
+
!__binary_heap_retain_read_%out_len
|
|
2708
|
+
jmp L_BINARY_HEAP_RETAIN_HEAD_%out_len
|
|
2709
|
+
|
|
2710
|
+
L_BINARY_HEAP_RETAIN_CLEAR_HEAD_%out_len:
|
|
2711
|
+
__binary_heap_retain_clear_slot_%out_len = stack_alloc 8
|
|
2712
|
+
__binary_heap_retain_kept_len_%out_len = load __binary_heap_retain_write_slot_%out_len+0 as u64
|
|
2713
|
+
store __binary_heap_retain_clear_slot_%out_len+0, __binary_heap_retain_kept_len_%out_len as u64
|
|
2714
|
+
jmp L_BINARY_HEAP_RETAIN_CLEAR_LOOP_%out_len
|
|
2715
|
+
|
|
2716
|
+
L_BINARY_HEAP_RETAIN_CLEAR_LOOP_%out_len:
|
|
2717
|
+
__binary_heap_retain_clear_idx_%out_len = load __binary_heap_retain_clear_slot_%out_len+0 as u64
|
|
2718
|
+
__binary_heap_retain_clear_done_%out_len = eq __binary_heap_retain_clear_idx_%out_len, __binary_heap_retain_len_%out_len
|
|
2719
|
+
br __binary_heap_retain_clear_done_%out_len -> L_BINARY_HEAP_RETAIN_HEAPIFY_INIT_%out_len, L_BINARY_HEAP_RETAIN_CLEAR_BODY_%out_len
|
|
2720
|
+
|
|
2721
|
+
L_BINARY_HEAP_RETAIN_CLEAR_BODY_%out_len:
|
|
2722
|
+
__binary_heap_retain_clear_off_%out_len = mul __binary_heap_retain_clear_idx_%out_len, BinaryHeap_SLOT_SIZE
|
|
2723
|
+
__binary_heap_retain_clear_ptr_%out_len = ptr_add __binary_heap_retain_buf_%out_len, __binary_heap_retain_clear_off_%out_len
|
|
2724
|
+
store __binary_heap_retain_clear_ptr_%out_len+0, 0 as u64
|
|
2725
|
+
__binary_heap_retain_next_clear_%out_len = add __binary_heap_retain_clear_idx_%out_len, 1
|
|
2726
|
+
store __binary_heap_retain_clear_slot_%out_len+0, __binary_heap_retain_next_clear_%out_len as u64
|
|
2727
|
+
!__binary_heap_retain_next_clear_%out_len
|
|
2728
|
+
!__binary_heap_retain_clear_ptr_%out_len
|
|
2729
|
+
!__binary_heap_retain_clear_off_%out_len
|
|
2730
|
+
!__binary_heap_retain_clear_done_%out_len
|
|
2731
|
+
!__binary_heap_retain_clear_idx_%out_len
|
|
2732
|
+
jmp L_BINARY_HEAP_RETAIN_CLEAR_LOOP_%out_len
|
|
2733
|
+
|
|
2734
|
+
L_BINARY_HEAP_RETAIN_HEAPIFY_INIT_%out_len:
|
|
2735
|
+
store %heap_reg+BinaryHeap_len, __binary_heap_retain_kept_len_%out_len as u64
|
|
2736
|
+
__binary_heap_retain_too_small_%out_len = ule __binary_heap_retain_kept_len_%out_len, 1
|
|
2737
|
+
br __binary_heap_retain_too_small_%out_len -> L_BINARY_HEAP_RETAIN_DONE_%out_len, L_BINARY_HEAP_RETAIN_HEAPIFY_START_%out_len
|
|
2738
|
+
|
|
2739
|
+
L_BINARY_HEAP_RETAIN_HEAPIFY_START_%out_len:
|
|
2740
|
+
__binary_heap_retain_last_%out_len = sub __binary_heap_retain_kept_len_%out_len, 2
|
|
2741
|
+
__binary_heap_retain_parent_%out_len = udiv __binary_heap_retain_last_%out_len, 2
|
|
2742
|
+
__binary_heap_retain_heapify_slot_%out_len = stack_alloc 8
|
|
2743
|
+
store __binary_heap_retain_heapify_slot_%out_len+0, __binary_heap_retain_parent_%out_len as u64
|
|
2744
|
+
jmp L_BINARY_HEAP_RETAIN_HEAPIFY_LOOP_%out_len
|
|
2745
|
+
|
|
2746
|
+
L_BINARY_HEAP_RETAIN_HEAPIFY_LOOP_%out_len:
|
|
2747
|
+
__binary_heap_retain_heapify_idx_%out_len = load __binary_heap_retain_heapify_slot_%out_len+0 as u64
|
|
2748
|
+
call @binary_heap_sift_down(&%heap_reg, __binary_heap_retain_heapify_idx_%out_len)
|
|
2749
|
+
__binary_heap_retain_heapify_zero_%out_len = eq __binary_heap_retain_heapify_idx_%out_len, 0
|
|
2750
|
+
br __binary_heap_retain_heapify_zero_%out_len -> L_BINARY_HEAP_RETAIN_DONE_FROM_HEAPIFY_%out_len, L_BINARY_HEAP_RETAIN_HEAPIFY_NEXT_%out_len
|
|
2751
|
+
|
|
2752
|
+
L_BINARY_HEAP_RETAIN_HEAPIFY_NEXT_%out_len:
|
|
2753
|
+
__binary_heap_retain_prev_heapify_%out_len = sub __binary_heap_retain_heapify_idx_%out_len, 1
|
|
2754
|
+
store __binary_heap_retain_heapify_slot_%out_len+0, __binary_heap_retain_prev_heapify_%out_len as u64
|
|
2755
|
+
!__binary_heap_retain_prev_heapify_%out_len
|
|
2756
|
+
!__binary_heap_retain_heapify_zero_%out_len
|
|
2757
|
+
!__binary_heap_retain_heapify_idx_%out_len
|
|
2758
|
+
jmp L_BINARY_HEAP_RETAIN_HEAPIFY_LOOP_%out_len
|
|
2759
|
+
|
|
2760
|
+
L_BINARY_HEAP_RETAIN_DONE_FROM_HEAPIFY_%out_len:
|
|
2761
|
+
!__binary_heap_retain_heapify_zero_%out_len
|
|
2762
|
+
!__binary_heap_retain_heapify_idx_%out_len
|
|
2763
|
+
!__binary_heap_retain_parent_%out_len
|
|
2764
|
+
!__binary_heap_retain_last_%out_len
|
|
2765
|
+
jmp L_BINARY_HEAP_RETAIN_DONE_%out_len
|
|
2766
|
+
|
|
2767
|
+
L_BINARY_HEAP_RETAIN_DONE_%out_len:
|
|
2768
|
+
%out_len = load %heap_reg+BinaryHeap_len as u64
|
|
2769
|
+
!__binary_heap_retain_too_small_%out_len
|
|
2770
|
+
!__binary_heap_retain_clear_done_%out_len
|
|
2771
|
+
!__binary_heap_retain_clear_idx_%out_len
|
|
2772
|
+
!__binary_heap_retain_kept_len_%out_len
|
|
2773
|
+
!__binary_heap_retain_done_%out_len
|
|
2774
|
+
!__binary_heap_retain_read_%out_len
|
|
2775
|
+
!__binary_heap_retain_len_%out_len
|
|
2776
|
+
!__binary_heap_retain_buf_%out_len
|
|
2777
|
+
[END_MACRO]
|
|
2778
|
+
|
|
2779
|
+
// Rust method-name alias: BinaryHeap::retain over concrete u64 predicate helper.
|
|
2780
|
+
[MACRO] BINARY_HEAP_RETAIN %out_len, %heap_reg, %pred_fn
|
|
2781
|
+
EXPAND BINARY_HEAP_RETAIN_U64 %out_len, %heap_reg, %pred_fn
|
|
2782
|
+
[END_MACRO]
|
|
2783
|
+
|
|
2784
|
+
[MACRO] BINARY_HEAP_APPEND %heap_reg, %other_heap_reg
|
|
2785
|
+
call @sa_binary_heap_append(&%heap_reg, &%other_heap_reg)
|
|
2786
|
+
[END_MACRO]
|
|
2787
|
+
|
|
2788
|
+
// Concrete u64-named and try/non-try value-form aliases over the existing
|
|
2789
|
+
// BINARY_HEAP_PUSH / PEEK / TRY_POP / capacity+len primitives. These add no
|
|
2790
|
+
// new syscall/FFI surface; they only expose Rust-style naming parity and a
|
|
2791
|
+
// fallible value view (ok,value) for PEEK.
|
|
2792
|
+
|
|
2793
|
+
[MACRO] BINARY_HEAP_PUSH_U64 %heap_reg, %value
|
|
2794
|
+
EXPAND BINARY_HEAP_PUSH %heap_reg, %value
|
|
2795
|
+
[END_MACRO]
|
|
2796
|
+
|
|
2797
|
+
[MACRO] BINARY_HEAP_PEEK_U64 %out_value, %heap_reg
|
|
2798
|
+
EXPAND BINARY_HEAP_PEEK %out_value, %heap_reg
|
|
2799
|
+
[END_MACRO]
|
|
2800
|
+
|
|
2801
|
+
[MACRO] BINARY_HEAP_TRY_PEEK %out_ok, %out_value, %heap_reg
|
|
2802
|
+
__binary_heap_try_peek_empty_%out_ok = call @sa_binary_heap_is_empty(&%heap_reg)
|
|
2803
|
+
__binary_heap_try_peek_is_empty_%out_ok = eq __binary_heap_try_peek_empty_%out_ok, 1
|
|
2804
|
+
br __binary_heap_try_peek_is_empty_%out_ok -> L_BINARY_HEAP_TRY_PEEK_EMPTY_%out_ok, L_BINARY_HEAP_TRY_PEEK_NONEMPTY_%out_ok
|
|
2805
|
+
L_BINARY_HEAP_TRY_PEEK_EMPTY_%out_ok:
|
|
2806
|
+
%out_ok = add 0, 0
|
|
2807
|
+
%out_value = add 0, 0
|
|
2808
|
+
!__binary_heap_try_peek_empty_%out_ok
|
|
2809
|
+
!__binary_heap_try_peek_is_empty_%out_ok
|
|
2810
|
+
jmp L_BINARY_HEAP_TRY_PEEK_END_%out_ok
|
|
2811
|
+
L_BINARY_HEAP_TRY_PEEK_NONEMPTY_%out_ok:
|
|
2812
|
+
%out_value = call @sa_binary_heap_peek(&%heap_reg)
|
|
2813
|
+
%out_ok = add 0, 1
|
|
2814
|
+
!__binary_heap_try_peek_empty_%out_ok
|
|
2815
|
+
!__binary_heap_try_peek_is_empty_%out_ok
|
|
2816
|
+
jmp L_BINARY_HEAP_TRY_PEEK_END_%out_ok
|
|
2817
|
+
L_BINARY_HEAP_TRY_PEEK_END_%out_ok:
|
|
2818
|
+
[END_MACRO]
|
|
2819
|
+
|
|
2820
|
+
[MACRO] BINARY_HEAP_TRY_PEEK_U64 %out_ok, %out_value, %heap_reg
|
|
2821
|
+
EXPAND BINARY_HEAP_TRY_PEEK %out_ok, %out_value, %heap_reg
|
|
2822
|
+
[END_MACRO]
|
|
2823
|
+
|
|
2824
|
+
[MACRO] BINARY_HEAP_POP %out_value, %heap_reg
|
|
2825
|
+
__binary_heap_pop_slot_%out_value = stack_alloc 8
|
|
2826
|
+
__binary_heap_pop_ok_%out_value = call @sa_binary_heap_try_pop(&%heap_reg, &__binary_heap_pop_slot_%out_value)
|
|
2827
|
+
%out_value = load __binary_heap_pop_slot_%out_value+0 as u64
|
|
2828
|
+
!__binary_heap_pop_ok_%out_value
|
|
2829
|
+
[END_MACRO]
|
|
2830
|
+
|
|
2831
|
+
[MACRO] BINARY_HEAP_POP_U64 %out_value, %heap_reg
|
|
2832
|
+
EXPAND BINARY_HEAP_POP %out_value, %heap_reg
|
|
2833
|
+
[END_MACRO]
|
|
2834
|
+
|
|
2835
|
+
[MACRO] BINARY_HEAP_EXTRA_CAPACITY %out_extra, %heap_reg
|
|
2836
|
+
__binary_heap_ec_cap_%out_extra = call @sa_binary_heap_capacity(&%heap_reg)
|
|
2837
|
+
__binary_heap_ec_len_%out_extra = call @sa_binary_heap_len(&%heap_reg)
|
|
2838
|
+
%out_extra = sub __binary_heap_ec_cap_%out_extra, __binary_heap_ec_len_%out_extra
|
|
2839
|
+
!__binary_heap_ec_len_%out_extra
|
|
2840
|
+
!__binary_heap_ec_cap_%out_extra
|
|
2841
|
+
[END_MACRO]
|
|
2842
|
+
|
|
2843
|
+
// Fixed-arity / from-collection constructors over the concrete u64 max-heap.
|
|
2844
|
+
// FROM_* helpers push each source element through the existing heapify path.
|
|
2845
|
+
|
|
2846
|
+
[MACRO] BINARY_HEAP_LIT1 %out_heap, %value1
|
|
2847
|
+
EXPAND BINARY_HEAP_NEW %out_heap
|
|
2848
|
+
EXPAND BINARY_HEAP_PUSH_U64 %out_heap, %value1
|
|
2849
|
+
[END_MACRO]
|
|
2850
|
+
|
|
2851
|
+
[MACRO] BINARY_HEAP_LIT2 %out_heap, %value1, %value2
|
|
2852
|
+
EXPAND BINARY_HEAP_NEW %out_heap
|
|
2853
|
+
EXPAND BINARY_HEAP_PUSH_U64 %out_heap, %value1
|
|
2854
|
+
EXPAND BINARY_HEAP_PUSH_U64 %out_heap, %value2
|
|
2855
|
+
[END_MACRO]
|
|
2856
|
+
|
|
2857
|
+
[MACRO] BINARY_HEAP_LIT3 %out_heap, %value1, %value2, %value3
|
|
2858
|
+
EXPAND BINARY_HEAP_NEW %out_heap
|
|
2859
|
+
EXPAND BINARY_HEAP_PUSH_U64 %out_heap, %value1
|
|
2860
|
+
EXPAND BINARY_HEAP_PUSH_U64 %out_heap, %value2
|
|
2861
|
+
EXPAND BINARY_HEAP_PUSH_U64 %out_heap, %value3
|
|
2862
|
+
[END_MACRO]
|
|
2863
|
+
|
|
2864
|
+
[MACRO] BINARY_HEAP_EXTEND_FROM_SLICE_U64 %heap_reg, %slice_reg
|
|
2865
|
+
__bh_ext_len_%heap_reg = load %slice_reg+Slice_len as u64
|
|
2866
|
+
__bh_ext_idx_slot_%heap_reg = stack_alloc 8
|
|
2867
|
+
store __bh_ext_idx_slot_%heap_reg+0, 0 as u64
|
|
2868
|
+
jmp L_BINARY_HEAP_EXTEND_HEAD_%heap_reg
|
|
2869
|
+
L_BINARY_HEAP_EXTEND_HEAD_%heap_reg:
|
|
2870
|
+
__bh_ext_idx_%heap_reg = load __bh_ext_idx_slot_%heap_reg+0 as u64
|
|
2871
|
+
__bh_ext_done_%heap_reg = eq __bh_ext_idx_%heap_reg, __bh_ext_len_%heap_reg
|
|
2872
|
+
br __bh_ext_done_%heap_reg -> L_BINARY_HEAP_EXTEND_DONE_%heap_reg, L_BINARY_HEAP_EXTEND_BODY_%heap_reg
|
|
2873
|
+
L_BINARY_HEAP_EXTEND_BODY_%heap_reg:
|
|
2874
|
+
EXPAND SLICE_GET_U64 __bh_ext_val_%heap_reg, %slice_reg, __bh_ext_idx_%heap_reg
|
|
2875
|
+
EXPAND BINARY_HEAP_PUSH_U64 %heap_reg, __bh_ext_val_%heap_reg
|
|
2876
|
+
__bh_ext_next_%heap_reg = add __bh_ext_idx_%heap_reg, 1
|
|
2877
|
+
store __bh_ext_idx_slot_%heap_reg+0, __bh_ext_next_%heap_reg as u64
|
|
2878
|
+
!__bh_ext_next_%heap_reg
|
|
2879
|
+
!__bh_ext_val_%heap_reg
|
|
2880
|
+
!__bh_ext_done_%heap_reg
|
|
2881
|
+
!__bh_ext_idx_%heap_reg
|
|
2882
|
+
jmp L_BINARY_HEAP_EXTEND_HEAD_%heap_reg
|
|
2883
|
+
L_BINARY_HEAP_EXTEND_DONE_%heap_reg:
|
|
2884
|
+
!__bh_ext_done_%heap_reg
|
|
2885
|
+
!__bh_ext_idx_%heap_reg
|
|
2886
|
+
!__bh_ext_len_%heap_reg
|
|
2887
|
+
[END_MACRO]
|
|
2888
|
+
|
|
2889
|
+
// Rust method-name alias over BINARY_HEAP_EXTEND_FROM_SLICE_U64.
|
|
2890
|
+
[MACRO] BINARY_HEAP_EXTEND_FROM_SLICE %heap_reg, %slice_reg
|
|
2891
|
+
EXPAND BINARY_HEAP_EXTEND_FROM_SLICE_U64 %heap_reg, %slice_reg
|
|
2892
|
+
[END_MACRO]
|
|
2893
|
+
|
|
2894
|
+
[MACRO] BINARY_HEAP_FROM_SLICE_U64 %out_heap, %slice_reg
|
|
2895
|
+
EXPAND BINARY_HEAP_NEW %out_heap
|
|
2896
|
+
EXPAND BINARY_HEAP_EXTEND_FROM_SLICE_U64 %out_heap, %slice_reg
|
|
2897
|
+
[END_MACRO]
|
|
2898
|
+
|
|
2899
|
+
// Rust method-name alias over BINARY_HEAP_FROM_SLICE_U64.
|
|
2900
|
+
[MACRO] BINARY_HEAP_FROM_SLICE %out_heap, %slice_reg
|
|
2901
|
+
EXPAND BINARY_HEAP_FROM_SLICE_U64 %out_heap, %slice_reg
|
|
2902
|
+
[END_MACRO]
|
|
2903
|
+
|
|
2904
|
+
[MACRO] BINARY_HEAP_FROM_VEC_U64 %out_heap, %vec_reg
|
|
2905
|
+
EXPAND VEC_AS_SLICE __bh_from_vec_slice_%out_heap, %vec_reg
|
|
2906
|
+
EXPAND BINARY_HEAP_FROM_SLICE_U64 %out_heap, __bh_from_vec_slice_%out_heap
|
|
2907
|
+
!__bh_from_vec_slice_%out_heap
|
|
2908
|
+
[END_MACRO]
|
|
2909
|
+
|
|
2910
|
+
// Rust method-name alias over BINARY_HEAP_FROM_VEC_U64.
|
|
2911
|
+
[MACRO] BINARY_HEAP_FROM_VEC %out_heap, %vec_reg
|
|
2912
|
+
EXPAND BINARY_HEAP_FROM_VEC_U64 %out_heap, %vec_reg
|
|
2913
|
+
[END_MACRO]
|
|
2914
|
+
|
|
2915
|
+
[MACRO] BINARY_HEAP_EXTEND_FROM_VEC_U64 %heap_reg, %vec_reg
|
|
2916
|
+
EXPAND VEC_AS_SLICE __bh_ext_vec_slice_%heap_reg, %vec_reg
|
|
2917
|
+
EXPAND BINARY_HEAP_EXTEND_FROM_SLICE_U64 %heap_reg, __bh_ext_vec_slice_%heap_reg
|
|
2918
|
+
!__bh_ext_vec_slice_%heap_reg
|
|
2919
|
+
[END_MACRO]
|
|
2920
|
+
|
|
2921
|
+
// Rust method-name alias over BINARY_HEAP_EXTEND_FROM_VEC_U64.
|
|
2922
|
+
[MACRO] BINARY_HEAP_EXTEND_FROM_VEC %heap_reg, %vec_reg
|
|
2923
|
+
EXPAND BINARY_HEAP_EXTEND_FROM_VEC_U64 %heap_reg, %vec_reg
|
|
2924
|
+
[END_MACRO]
|
|
2925
|
+
|
|
2926
|
+
// Linear membership query over the heap backing slice.
|
|
2927
|
+
[MACRO] BINARY_HEAP_CONTAINS %out_bool, %heap_reg, %needle
|
|
2928
|
+
EXPAND BINARY_HEAP_AS_SLICE __bh_contains_slice_%out_bool, %heap_reg
|
|
2929
|
+
EXPAND SLICE_CONTAINS_U64 %out_bool, __bh_contains_slice_%out_bool, %needle
|
|
2930
|
+
!__bh_contains_slice_%out_bool
|
|
2931
|
+
[END_MACRO]
|
|
2932
|
+
// Rust Default-style empty BinaryHeap constructor alias.
|
|
2933
|
+
|
|
2934
|
+
[MACRO] BINARY_HEAP_DEFAULT %out_heap
|
|
2935
|
+
EXPAND BINARY_HEAP_NEW %out_heap
|
|
2936
|
+
[END_MACRO]
|
|
2937
|
+
|
|
2938
|
+
// Eager extract_if: materialize matching values into Vec, rebuild heap with non-matching.
|
|
2939
|
+
|
|
2940
|
+
// Eager extract_if without consuming heap storage: snapshot via as_slice, then rebuild.
|
|
2941
|
+
[MACRO] BINARY_HEAP_EXTRACT_IF %out_len, %out_vec, %heap_reg, %pred_fn
|
|
2942
|
+
EXPAND VEC_NEW %out_vec
|
|
2943
|
+
EXPAND BINARY_HEAP_AS_SLICE __bh_ei_slice_%out_len, %heap_reg
|
|
2944
|
+
EXPAND SLICE_GET_LEN __bh_ei_n_%out_len, __bh_ei_slice_%out_len
|
|
2945
|
+
EXPAND VEC_NEW __bh_ei_keep_%out_len
|
|
2946
|
+
__bh_ei_i_slot_%out_len = stack_alloc 8
|
|
2947
|
+
store __bh_ei_i_slot_%out_len+0, 0 as u64
|
|
2948
|
+
jmp L_BH_EI_HEAD_%out_len
|
|
2949
|
+
L_BH_EI_HEAD_%out_len:
|
|
2950
|
+
__bh_ei_i_%out_len = load __bh_ei_i_slot_%out_len+0 as u64
|
|
2951
|
+
__bh_ei_done_%out_len = eq __bh_ei_i_%out_len, __bh_ei_n_%out_len
|
|
2952
|
+
br __bh_ei_done_%out_len -> L_BH_EI_REBUILD_%out_len, L_BH_EI_BODY_%out_len
|
|
2953
|
+
L_BH_EI_BODY_%out_len:
|
|
2954
|
+
EXPAND SLICE_GET_U64 __bh_ei_val_%out_len, __bh_ei_slice_%out_len, __bh_ei_i_%out_len
|
|
2955
|
+
__bh_ei_pred_%out_len = call %pred_fn(__bh_ei_val_%out_len)
|
|
2956
|
+
__bh_ei_take_%out_len = ne __bh_ei_pred_%out_len, 0
|
|
2957
|
+
br __bh_ei_take_%out_len -> L_BH_EI_TAKE_%out_len, L_BH_EI_KEEP_%out_len
|
|
2958
|
+
L_BH_EI_TAKE_%out_len:
|
|
2959
|
+
EXPAND VEC_PUSH_U64 %out_vec, __bh_ei_val_%out_len
|
|
2960
|
+
jmp L_BH_EI_NEXT_%out_len
|
|
2961
|
+
L_BH_EI_KEEP_%out_len:
|
|
2962
|
+
EXPAND VEC_PUSH_U64 __bh_ei_keep_%out_len, __bh_ei_val_%out_len
|
|
2963
|
+
jmp L_BH_EI_NEXT_%out_len
|
|
2964
|
+
L_BH_EI_NEXT_%out_len:
|
|
2965
|
+
__bh_ei_ni_%out_len = add __bh_ei_i_%out_len, 1
|
|
2966
|
+
store __bh_ei_i_slot_%out_len+0, __bh_ei_ni_%out_len as u64
|
|
2967
|
+
!__bh_ei_ni_%out_len
|
|
2968
|
+
!__bh_ei_take_%out_len
|
|
2969
|
+
!__bh_ei_pred_%out_len
|
|
2970
|
+
!__bh_ei_val_%out_len
|
|
2971
|
+
!__bh_ei_done_%out_len
|
|
2972
|
+
!__bh_ei_i_%out_len
|
|
2973
|
+
jmp L_BH_EI_HEAD_%out_len
|
|
2974
|
+
L_BH_EI_REBUILD_%out_len:
|
|
2975
|
+
EXPAND BINARY_HEAP_CLEAR %heap_reg
|
|
2976
|
+
EXPAND VEC_LEN __bh_ei_kn_%out_len, __bh_ei_keep_%out_len
|
|
2977
|
+
store __bh_ei_i_slot_%out_len+0, 0 as u64
|
|
2978
|
+
jmp L_BH_EI_PUSH_HEAD_%out_len
|
|
2979
|
+
L_BH_EI_PUSH_HEAD_%out_len:
|
|
2980
|
+
__bh_ei_pi_%out_len = load __bh_ei_i_slot_%out_len+0 as u64
|
|
2981
|
+
__bh_ei_pdone_%out_len = eq __bh_ei_pi_%out_len, __bh_ei_kn_%out_len
|
|
2982
|
+
br __bh_ei_pdone_%out_len -> L_BH_EI_DONE_%out_len, L_BH_EI_PUSH_BODY_%out_len
|
|
2983
|
+
L_BH_EI_PUSH_BODY_%out_len:
|
|
2984
|
+
EXPAND VEC_GET_U64 __bh_ei_kv_%out_len, __bh_ei_keep_%out_len, __bh_ei_pi_%out_len
|
|
2985
|
+
EXPAND BINARY_HEAP_PUSH %heap_reg, __bh_ei_kv_%out_len
|
|
2986
|
+
__bh_ei_pni_%out_len = add __bh_ei_pi_%out_len, 1
|
|
2987
|
+
store __bh_ei_i_slot_%out_len+0, __bh_ei_pni_%out_len as u64
|
|
2988
|
+
!__bh_ei_pni_%out_len
|
|
2989
|
+
!__bh_ei_kv_%out_len
|
|
2990
|
+
!__bh_ei_pdone_%out_len
|
|
2991
|
+
!__bh_ei_pi_%out_len
|
|
2992
|
+
jmp L_BH_EI_PUSH_HEAD_%out_len
|
|
2993
|
+
L_BH_EI_DONE_%out_len:
|
|
2994
|
+
EXPAND VEC_LEN %out_len, %out_vec
|
|
2995
|
+
EXPAND VEC_FREE __bh_ei_keep_%out_len
|
|
2996
|
+
!__bh_ei_pdone_%out_len
|
|
2997
|
+
!__bh_ei_pi_%out_len
|
|
2998
|
+
!__bh_ei_kn_%out_len
|
|
2999
|
+
!__bh_ei_done_%out_len
|
|
3000
|
+
!__bh_ei_i_%out_len
|
|
3001
|
+
!__bh_ei_n_%out_len
|
|
3002
|
+
!__bh_ei_slice_%out_len
|
|
3003
|
+
[END_MACRO]
|