@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
package/sa_std/ops.sa
ADDED
|
@@ -0,0 +1,1884 @@
|
|
|
1
|
+
@import "ops.sal"
|
|
2
|
+
@import "core/option.sal"
|
|
3
|
+
@import "core/result.sal"
|
|
4
|
+
@import "core/slice.sal"
|
|
5
|
+
@import "core/slice.sa"
|
|
6
|
+
|
|
7
|
+
[MACRO] RANGE_U64_NEW %range_ptr, %start, %end
|
|
8
|
+
store %range_ptr+RangeU64_start, %start as u64
|
|
9
|
+
store %range_ptr+RangeU64_end, %end as u64
|
|
10
|
+
[END_MACRO]
|
|
11
|
+
|
|
12
|
+
[MACRO] CONTROL_FLOW_CONTINUE_U64 %control_flow_ptr, %value
|
|
13
|
+
store %control_flow_ptr+ControlFlowU64_tag, CONTROL_FLOW_CONTINUE as u64
|
|
14
|
+
store %control_flow_ptr+ControlFlowU64_value, %value as u64
|
|
15
|
+
[END_MACRO]
|
|
16
|
+
|
|
17
|
+
// Rust method-name alias over CONTROL_FLOW_CONTINUE_U64.
|
|
18
|
+
[MACRO] CONTROL_FLOW_CONTINUE %control_flow_ptr, %value
|
|
19
|
+
EXPAND CONTROL_FLOW_CONTINUE_U64 %control_flow_ptr, %value
|
|
20
|
+
[END_MACRO]
|
|
21
|
+
|
|
22
|
+
[MACRO] CONTROL_FLOW_BREAK_U64 %control_flow_ptr, %value
|
|
23
|
+
store %control_flow_ptr+ControlFlowU64_tag, CONTROL_FLOW_BREAK as u64
|
|
24
|
+
store %control_flow_ptr+ControlFlowU64_value, %value as u64
|
|
25
|
+
[END_MACRO]
|
|
26
|
+
|
|
27
|
+
// Rust method-name alias over CONTROL_FLOW_BREAK_U64.
|
|
28
|
+
[MACRO] CONTROL_FLOW_BREAK %control_flow_ptr, %value
|
|
29
|
+
EXPAND CONTROL_FLOW_BREAK_U64 %control_flow_ptr, %value
|
|
30
|
+
[END_MACRO]
|
|
31
|
+
|
|
32
|
+
[MACRO] CONTROL_FLOW_TAG %out_tag, %control_flow_ptr
|
|
33
|
+
%out_tag = load %control_flow_ptr+ControlFlowU64_tag as u64
|
|
34
|
+
[END_MACRO]
|
|
35
|
+
|
|
36
|
+
[MACRO] CONTROL_FLOW_VALUE_U64 %out_value, %control_flow_ptr
|
|
37
|
+
%out_value = load %control_flow_ptr+ControlFlowU64_value as u64
|
|
38
|
+
[END_MACRO]
|
|
39
|
+
|
|
40
|
+
// Rust method-name alias over CONTROL_FLOW_VALUE_U64.
|
|
41
|
+
[MACRO] CONTROL_FLOW_VALUE %out_value, %control_flow_ptr
|
|
42
|
+
EXPAND CONTROL_FLOW_VALUE_U64 %out_value, %control_flow_ptr
|
|
43
|
+
[END_MACRO]
|
|
44
|
+
|
|
45
|
+
[MACRO] CONTROL_FLOW_IS_CONTINUE %out_bool, %control_flow_ptr
|
|
46
|
+
__control_flow_tag_%out_bool = load %control_flow_ptr+ControlFlowU64_tag as u64
|
|
47
|
+
%out_bool = eq __control_flow_tag_%out_bool, CONTROL_FLOW_CONTINUE
|
|
48
|
+
!__control_flow_tag_%out_bool
|
|
49
|
+
[END_MACRO]
|
|
50
|
+
|
|
51
|
+
[MACRO] CONTROL_FLOW_IS_BREAK %out_bool, %control_flow_ptr
|
|
52
|
+
__control_flow_tag_%out_bool = load %control_flow_ptr+ControlFlowU64_tag as u64
|
|
53
|
+
%out_bool = eq __control_flow_tag_%out_bool, CONTROL_FLOW_BREAK
|
|
54
|
+
!__control_flow_tag_%out_bool
|
|
55
|
+
[END_MACRO]
|
|
56
|
+
|
|
57
|
+
[MACRO] CONTROL_FLOW_BREAK_VALUE_U64 %out_option_ptr, %control_flow_ptr
|
|
58
|
+
__control_flow_break_value_tag_%out_option_ptr = load %control_flow_ptr+ControlFlowU64_tag as u64
|
|
59
|
+
__control_flow_break_value_is_break_%out_option_ptr = eq __control_flow_break_value_tag_%out_option_ptr, CONTROL_FLOW_BREAK
|
|
60
|
+
br __control_flow_break_value_is_break_%out_option_ptr -> L_CONTROL_FLOW_BREAK_VALUE_SOME_%out_option_ptr, L_CONTROL_FLOW_BREAK_VALUE_NONE_%out_option_ptr
|
|
61
|
+
|
|
62
|
+
L_CONTROL_FLOW_BREAK_VALUE_SOME_%out_option_ptr:
|
|
63
|
+
__control_flow_break_value_%out_option_ptr = load %control_flow_ptr+ControlFlowU64_value as u64
|
|
64
|
+
store %out_option_ptr+Option_tag, Option_SOME as u64
|
|
65
|
+
store %out_option_ptr+Option_value, __control_flow_break_value_%out_option_ptr as u64
|
|
66
|
+
!__control_flow_break_value_%out_option_ptr
|
|
67
|
+
!__control_flow_break_value_is_break_%out_option_ptr
|
|
68
|
+
!__control_flow_break_value_tag_%out_option_ptr
|
|
69
|
+
jmp L_CONTROL_FLOW_BREAK_VALUE_DONE_%out_option_ptr
|
|
70
|
+
|
|
71
|
+
L_CONTROL_FLOW_BREAK_VALUE_NONE_%out_option_ptr:
|
|
72
|
+
store %out_option_ptr+Option_tag, Option_NONE as u64
|
|
73
|
+
store %out_option_ptr+Option_value, 0 as u64
|
|
74
|
+
!__control_flow_break_value_is_break_%out_option_ptr
|
|
75
|
+
!__control_flow_break_value_tag_%out_option_ptr
|
|
76
|
+
|
|
77
|
+
L_CONTROL_FLOW_BREAK_VALUE_DONE_%out_option_ptr:
|
|
78
|
+
[END_MACRO]
|
|
79
|
+
|
|
80
|
+
// Rust method-name alias over CONTROL_FLOW_BREAK_VALUE_U64.
|
|
81
|
+
[MACRO] CONTROL_FLOW_BREAK_VALUE %out_option_ptr, %control_flow_ptr
|
|
82
|
+
EXPAND CONTROL_FLOW_BREAK_VALUE_U64 %out_option_ptr, %control_flow_ptr
|
|
83
|
+
[END_MACRO]
|
|
84
|
+
|
|
85
|
+
[MACRO] CONTROL_FLOW_CONTINUE_VALUE_U64 %out_option_ptr, %control_flow_ptr
|
|
86
|
+
__control_flow_continue_value_tag_%out_option_ptr = load %control_flow_ptr+ControlFlowU64_tag as u64
|
|
87
|
+
__control_flow_continue_value_is_continue_%out_option_ptr = eq __control_flow_continue_value_tag_%out_option_ptr, CONTROL_FLOW_CONTINUE
|
|
88
|
+
br __control_flow_continue_value_is_continue_%out_option_ptr -> L_CONTROL_FLOW_CONTINUE_VALUE_SOME_%out_option_ptr, L_CONTROL_FLOW_CONTINUE_VALUE_NONE_%out_option_ptr
|
|
89
|
+
|
|
90
|
+
L_CONTROL_FLOW_CONTINUE_VALUE_SOME_%out_option_ptr:
|
|
91
|
+
__control_flow_continue_value_%out_option_ptr = load %control_flow_ptr+ControlFlowU64_value as u64
|
|
92
|
+
store %out_option_ptr+Option_tag, Option_SOME as u64
|
|
93
|
+
store %out_option_ptr+Option_value, __control_flow_continue_value_%out_option_ptr as u64
|
|
94
|
+
!__control_flow_continue_value_%out_option_ptr
|
|
95
|
+
!__control_flow_continue_value_is_continue_%out_option_ptr
|
|
96
|
+
!__control_flow_continue_value_tag_%out_option_ptr
|
|
97
|
+
jmp L_CONTROL_FLOW_CONTINUE_VALUE_DONE_%out_option_ptr
|
|
98
|
+
|
|
99
|
+
L_CONTROL_FLOW_CONTINUE_VALUE_NONE_%out_option_ptr:
|
|
100
|
+
store %out_option_ptr+Option_tag, Option_NONE as u64
|
|
101
|
+
store %out_option_ptr+Option_value, 0 as u64
|
|
102
|
+
!__control_flow_continue_value_is_continue_%out_option_ptr
|
|
103
|
+
!__control_flow_continue_value_tag_%out_option_ptr
|
|
104
|
+
|
|
105
|
+
L_CONTROL_FLOW_CONTINUE_VALUE_DONE_%out_option_ptr:
|
|
106
|
+
[END_MACRO]
|
|
107
|
+
|
|
108
|
+
// Rust method-name alias over CONTROL_FLOW_CONTINUE_VALUE_U64.
|
|
109
|
+
[MACRO] CONTROL_FLOW_CONTINUE_VALUE %out_option_ptr, %control_flow_ptr
|
|
110
|
+
EXPAND CONTROL_FLOW_CONTINUE_VALUE_U64 %out_option_ptr, %control_flow_ptr
|
|
111
|
+
[END_MACRO]
|
|
112
|
+
|
|
113
|
+
[MACRO] CONTROL_FLOW_BREAK_OK_U64 %out_result_ptr, %control_flow_ptr
|
|
114
|
+
__control_flow_break_ok_tag_%out_result_ptr = load %control_flow_ptr+ControlFlowU64_tag as u64
|
|
115
|
+
__control_flow_break_ok_value_%out_result_ptr = load %control_flow_ptr+ControlFlowU64_value as u64
|
|
116
|
+
__control_flow_break_ok_is_break_%out_result_ptr = eq __control_flow_break_ok_tag_%out_result_ptr, CONTROL_FLOW_BREAK
|
|
117
|
+
br __control_flow_break_ok_is_break_%out_result_ptr -> L_CONTROL_FLOW_BREAK_OK_OK_%out_result_ptr, L_CONTROL_FLOW_BREAK_OK_ERR_%out_result_ptr
|
|
118
|
+
|
|
119
|
+
L_CONTROL_FLOW_BREAK_OK_OK_%out_result_ptr:
|
|
120
|
+
store %out_result_ptr+Result_tag, Result_OK as u64
|
|
121
|
+
store %out_result_ptr+Result_ok, __control_flow_break_ok_value_%out_result_ptr as u64
|
|
122
|
+
store %out_result_ptr+Result_err, 0 as u64
|
|
123
|
+
!__control_flow_break_ok_is_break_%out_result_ptr
|
|
124
|
+
!__control_flow_break_ok_value_%out_result_ptr
|
|
125
|
+
!__control_flow_break_ok_tag_%out_result_ptr
|
|
126
|
+
jmp L_CONTROL_FLOW_BREAK_OK_DONE_%out_result_ptr
|
|
127
|
+
|
|
128
|
+
L_CONTROL_FLOW_BREAK_OK_ERR_%out_result_ptr:
|
|
129
|
+
store %out_result_ptr+Result_tag, Result_ERR as u64
|
|
130
|
+
store %out_result_ptr+Result_ok, 0 as u64
|
|
131
|
+
store %out_result_ptr+Result_err, __control_flow_break_ok_value_%out_result_ptr as u64
|
|
132
|
+
!__control_flow_break_ok_is_break_%out_result_ptr
|
|
133
|
+
!__control_flow_break_ok_value_%out_result_ptr
|
|
134
|
+
!__control_flow_break_ok_tag_%out_result_ptr
|
|
135
|
+
|
|
136
|
+
L_CONTROL_FLOW_BREAK_OK_DONE_%out_result_ptr:
|
|
137
|
+
[END_MACRO]
|
|
138
|
+
|
|
139
|
+
// Rust method-name alias over CONTROL_FLOW_BREAK_OK_U64.
|
|
140
|
+
[MACRO] CONTROL_FLOW_BREAK_OK %out_result_ptr, %control_flow_ptr
|
|
141
|
+
EXPAND CONTROL_FLOW_BREAK_OK_U64 %out_result_ptr, %control_flow_ptr
|
|
142
|
+
[END_MACRO]
|
|
143
|
+
|
|
144
|
+
[MACRO] CONTROL_FLOW_CONTINUE_OK_U64 %out_result_ptr, %control_flow_ptr
|
|
145
|
+
__control_flow_continue_ok_tag_%out_result_ptr = load %control_flow_ptr+ControlFlowU64_tag as u64
|
|
146
|
+
__control_flow_continue_ok_value_%out_result_ptr = load %control_flow_ptr+ControlFlowU64_value as u64
|
|
147
|
+
__control_flow_continue_ok_is_continue_%out_result_ptr = eq __control_flow_continue_ok_tag_%out_result_ptr, CONTROL_FLOW_CONTINUE
|
|
148
|
+
br __control_flow_continue_ok_is_continue_%out_result_ptr -> L_CONTROL_FLOW_CONTINUE_OK_OK_%out_result_ptr, L_CONTROL_FLOW_CONTINUE_OK_ERR_%out_result_ptr
|
|
149
|
+
|
|
150
|
+
L_CONTROL_FLOW_CONTINUE_OK_OK_%out_result_ptr:
|
|
151
|
+
store %out_result_ptr+Result_tag, Result_OK as u64
|
|
152
|
+
store %out_result_ptr+Result_ok, __control_flow_continue_ok_value_%out_result_ptr as u64
|
|
153
|
+
store %out_result_ptr+Result_err, 0 as u64
|
|
154
|
+
!__control_flow_continue_ok_is_continue_%out_result_ptr
|
|
155
|
+
!__control_flow_continue_ok_value_%out_result_ptr
|
|
156
|
+
!__control_flow_continue_ok_tag_%out_result_ptr
|
|
157
|
+
jmp L_CONTROL_FLOW_CONTINUE_OK_DONE_%out_result_ptr
|
|
158
|
+
|
|
159
|
+
L_CONTROL_FLOW_CONTINUE_OK_ERR_%out_result_ptr:
|
|
160
|
+
store %out_result_ptr+Result_tag, Result_ERR as u64
|
|
161
|
+
store %out_result_ptr+Result_ok, 0 as u64
|
|
162
|
+
store %out_result_ptr+Result_err, __control_flow_continue_ok_value_%out_result_ptr as u64
|
|
163
|
+
!__control_flow_continue_ok_is_continue_%out_result_ptr
|
|
164
|
+
!__control_flow_continue_ok_value_%out_result_ptr
|
|
165
|
+
!__control_flow_continue_ok_tag_%out_result_ptr
|
|
166
|
+
|
|
167
|
+
L_CONTROL_FLOW_CONTINUE_OK_DONE_%out_result_ptr:
|
|
168
|
+
[END_MACRO]
|
|
169
|
+
|
|
170
|
+
// Rust method-name alias over CONTROL_FLOW_CONTINUE_OK_U64.
|
|
171
|
+
[MACRO] CONTROL_FLOW_CONTINUE_OK %out_result_ptr, %control_flow_ptr
|
|
172
|
+
EXPAND CONTROL_FLOW_CONTINUE_OK_U64 %out_result_ptr, %control_flow_ptr
|
|
173
|
+
[END_MACRO]
|
|
174
|
+
|
|
175
|
+
[MACRO] CONTROL_FLOW_MAP_BREAK_U64 %out_control_flow_ptr, %control_flow_ptr, %map_fn
|
|
176
|
+
__control_flow_map_break_tag_%out_control_flow_ptr = load %control_flow_ptr+ControlFlowU64_tag as u64
|
|
177
|
+
__control_flow_map_break_value_%out_control_flow_ptr = load %control_flow_ptr+ControlFlowU64_value as u64
|
|
178
|
+
__control_flow_map_break_is_break_%out_control_flow_ptr = eq __control_flow_map_break_tag_%out_control_flow_ptr, CONTROL_FLOW_BREAK
|
|
179
|
+
br __control_flow_map_break_is_break_%out_control_flow_ptr -> L_CONTROL_FLOW_MAP_BREAK_CALL_%out_control_flow_ptr, L_CONTROL_FLOW_MAP_BREAK_COPY_%out_control_flow_ptr
|
|
180
|
+
|
|
181
|
+
L_CONTROL_FLOW_MAP_BREAK_CALL_%out_control_flow_ptr:
|
|
182
|
+
__control_flow_map_break_mapped_%out_control_flow_ptr = call %map_fn(__control_flow_map_break_value_%out_control_flow_ptr)
|
|
183
|
+
store %out_control_flow_ptr+ControlFlowU64_tag, CONTROL_FLOW_BREAK as u64
|
|
184
|
+
store %out_control_flow_ptr+ControlFlowU64_value, __control_flow_map_break_mapped_%out_control_flow_ptr as u64
|
|
185
|
+
!__control_flow_map_break_mapped_%out_control_flow_ptr
|
|
186
|
+
!__control_flow_map_break_is_break_%out_control_flow_ptr
|
|
187
|
+
!__control_flow_map_break_value_%out_control_flow_ptr
|
|
188
|
+
!__control_flow_map_break_tag_%out_control_flow_ptr
|
|
189
|
+
jmp L_CONTROL_FLOW_MAP_BREAK_DONE_%out_control_flow_ptr
|
|
190
|
+
|
|
191
|
+
L_CONTROL_FLOW_MAP_BREAK_COPY_%out_control_flow_ptr:
|
|
192
|
+
store %out_control_flow_ptr+ControlFlowU64_tag, __control_flow_map_break_tag_%out_control_flow_ptr as u64
|
|
193
|
+
store %out_control_flow_ptr+ControlFlowU64_value, __control_flow_map_break_value_%out_control_flow_ptr as u64
|
|
194
|
+
!__control_flow_map_break_is_break_%out_control_flow_ptr
|
|
195
|
+
!__control_flow_map_break_value_%out_control_flow_ptr
|
|
196
|
+
!__control_flow_map_break_tag_%out_control_flow_ptr
|
|
197
|
+
|
|
198
|
+
L_CONTROL_FLOW_MAP_BREAK_DONE_%out_control_flow_ptr:
|
|
199
|
+
[END_MACRO]
|
|
200
|
+
|
|
201
|
+
// Rust method-name alias over CONTROL_FLOW_MAP_BREAK_U64.
|
|
202
|
+
[MACRO] CONTROL_FLOW_MAP_BREAK %out_control_flow_ptr, %control_flow_ptr, %map_fn
|
|
203
|
+
EXPAND CONTROL_FLOW_MAP_BREAK_U64 %out_control_flow_ptr, %control_flow_ptr, %map_fn
|
|
204
|
+
[END_MACRO]
|
|
205
|
+
|
|
206
|
+
[MACRO] CONTROL_FLOW_MAP_CONTINUE_U64 %out_control_flow_ptr, %control_flow_ptr, %map_fn
|
|
207
|
+
__control_flow_map_continue_tag_%out_control_flow_ptr = load %control_flow_ptr+ControlFlowU64_tag as u64
|
|
208
|
+
__control_flow_map_continue_value_%out_control_flow_ptr = load %control_flow_ptr+ControlFlowU64_value as u64
|
|
209
|
+
__control_flow_map_continue_is_continue_%out_control_flow_ptr = eq __control_flow_map_continue_tag_%out_control_flow_ptr, CONTROL_FLOW_CONTINUE
|
|
210
|
+
br __control_flow_map_continue_is_continue_%out_control_flow_ptr -> L_CONTROL_FLOW_MAP_CONTINUE_CALL_%out_control_flow_ptr, L_CONTROL_FLOW_MAP_CONTINUE_COPY_%out_control_flow_ptr
|
|
211
|
+
|
|
212
|
+
L_CONTROL_FLOW_MAP_CONTINUE_CALL_%out_control_flow_ptr:
|
|
213
|
+
__control_flow_map_continue_mapped_%out_control_flow_ptr = call %map_fn(__control_flow_map_continue_value_%out_control_flow_ptr)
|
|
214
|
+
store %out_control_flow_ptr+ControlFlowU64_tag, CONTROL_FLOW_CONTINUE as u64
|
|
215
|
+
store %out_control_flow_ptr+ControlFlowU64_value, __control_flow_map_continue_mapped_%out_control_flow_ptr as u64
|
|
216
|
+
!__control_flow_map_continue_mapped_%out_control_flow_ptr
|
|
217
|
+
!__control_flow_map_continue_is_continue_%out_control_flow_ptr
|
|
218
|
+
!__control_flow_map_continue_value_%out_control_flow_ptr
|
|
219
|
+
!__control_flow_map_continue_tag_%out_control_flow_ptr
|
|
220
|
+
jmp L_CONTROL_FLOW_MAP_CONTINUE_DONE_%out_control_flow_ptr
|
|
221
|
+
|
|
222
|
+
L_CONTROL_FLOW_MAP_CONTINUE_COPY_%out_control_flow_ptr:
|
|
223
|
+
store %out_control_flow_ptr+ControlFlowU64_tag, __control_flow_map_continue_tag_%out_control_flow_ptr as u64
|
|
224
|
+
store %out_control_flow_ptr+ControlFlowU64_value, __control_flow_map_continue_value_%out_control_flow_ptr as u64
|
|
225
|
+
!__control_flow_map_continue_is_continue_%out_control_flow_ptr
|
|
226
|
+
!__control_flow_map_continue_value_%out_control_flow_ptr
|
|
227
|
+
!__control_flow_map_continue_tag_%out_control_flow_ptr
|
|
228
|
+
|
|
229
|
+
L_CONTROL_FLOW_MAP_CONTINUE_DONE_%out_control_flow_ptr:
|
|
230
|
+
[END_MACRO]
|
|
231
|
+
|
|
232
|
+
// Rust method-name alias over CONTROL_FLOW_MAP_CONTINUE_U64.
|
|
233
|
+
[MACRO] CONTROL_FLOW_MAP_CONTINUE %out_control_flow_ptr, %control_flow_ptr, %map_fn
|
|
234
|
+
EXPAND CONTROL_FLOW_MAP_CONTINUE_U64 %out_control_flow_ptr, %control_flow_ptr, %map_fn
|
|
235
|
+
[END_MACRO]
|
|
236
|
+
|
|
237
|
+
[MACRO] CONTROL_FLOW_INTO_VALUE_U64 %out_value, %control_flow_ptr
|
|
238
|
+
%out_value = load %control_flow_ptr+ControlFlowU64_value as u64
|
|
239
|
+
[END_MACRO]
|
|
240
|
+
|
|
241
|
+
// Rust method-name alias over CONTROL_FLOW_INTO_VALUE_U64.
|
|
242
|
+
[MACRO] CONTROL_FLOW_INTO_VALUE %out_value, %control_flow_ptr
|
|
243
|
+
EXPAND CONTROL_FLOW_INTO_VALUE_U64 %out_value, %control_flow_ptr
|
|
244
|
+
[END_MACRO]
|
|
245
|
+
|
|
246
|
+
[MACRO] RANGE_U64_START %out_start, %range_ptr
|
|
247
|
+
%out_start = load %range_ptr+RangeU64_start as u64
|
|
248
|
+
[END_MACRO]
|
|
249
|
+
|
|
250
|
+
[MACRO] RANGE_U64_END %out_end, %range_ptr
|
|
251
|
+
%out_end = load %range_ptr+RangeU64_end as u64
|
|
252
|
+
[END_MACRO]
|
|
253
|
+
|
|
254
|
+
[MACRO] RANGE_U64_CONTAINS %out_bool, %range_ptr, %item
|
|
255
|
+
__range_start_%out_bool = load %range_ptr+RangeU64_start as u64
|
|
256
|
+
__range_end_%out_bool = load %range_ptr+RangeU64_end as u64
|
|
257
|
+
__range_ge_start_%out_bool = ule __range_start_%out_bool, %item
|
|
258
|
+
__range_lt_end_%out_bool = ult %item, __range_end_%out_bool
|
|
259
|
+
%out_bool = and __range_ge_start_%out_bool, __range_lt_end_%out_bool
|
|
260
|
+
!__range_lt_end_%out_bool
|
|
261
|
+
!__range_ge_start_%out_bool
|
|
262
|
+
!__range_end_%out_bool
|
|
263
|
+
!__range_start_%out_bool
|
|
264
|
+
[END_MACRO]
|
|
265
|
+
|
|
266
|
+
[MACRO] RANGE_U64_IS_EMPTY %out_bool, %range_ptr
|
|
267
|
+
__range_empty_start_%out_bool = load %range_ptr+RangeU64_start as u64
|
|
268
|
+
__range_empty_end_%out_bool = load %range_ptr+RangeU64_end as u64
|
|
269
|
+
__range_not_empty_%out_bool = ult __range_empty_start_%out_bool, __range_empty_end_%out_bool
|
|
270
|
+
%out_bool = eq __range_not_empty_%out_bool, 0
|
|
271
|
+
!__range_not_empty_%out_bool
|
|
272
|
+
!__range_empty_end_%out_bool
|
|
273
|
+
!__range_empty_start_%out_bool
|
|
274
|
+
[END_MACRO]
|
|
275
|
+
|
|
276
|
+
[MACRO] RANGE_U64_LEN %out_len, %range_ptr
|
|
277
|
+
EXPAND RANGE_U64_IS_EMPTY __range_len_empty_%out_len, %range_ptr
|
|
278
|
+
br __range_len_empty_%out_len -> L_RANGE_U64_LEN_EMPTY_%out_len, L_RANGE_U64_LEN_NONEMPTY_%out_len
|
|
279
|
+
|
|
280
|
+
L_RANGE_U64_LEN_NONEMPTY_%out_len:
|
|
281
|
+
__range_len_start_%out_len = load %range_ptr+RangeU64_start as u64
|
|
282
|
+
__range_len_end_%out_len = load %range_ptr+RangeU64_end as u64
|
|
283
|
+
%out_len = sub __range_len_end_%out_len, __range_len_start_%out_len
|
|
284
|
+
!__range_len_end_%out_len
|
|
285
|
+
!__range_len_start_%out_len
|
|
286
|
+
!__range_len_empty_%out_len
|
|
287
|
+
jmp L_RANGE_U64_LEN_END_%out_len
|
|
288
|
+
|
|
289
|
+
L_RANGE_U64_LEN_EMPTY_%out_len:
|
|
290
|
+
%out_len = add 0, 0
|
|
291
|
+
!__range_len_empty_%out_len
|
|
292
|
+
|
|
293
|
+
L_RANGE_U64_LEN_END_%out_len:
|
|
294
|
+
[END_MACRO]
|
|
295
|
+
|
|
296
|
+
[MACRO] RANGE_U64_NEXT %out_ok, %out_value, %range_ptr
|
|
297
|
+
__range_next_start_%out_ok = load %range_ptr+RangeU64_start as u64
|
|
298
|
+
__range_next_end_%out_ok = load %range_ptr+RangeU64_end as u64
|
|
299
|
+
__range_next_has_%out_ok = ult __range_next_start_%out_ok, __range_next_end_%out_ok
|
|
300
|
+
br __range_next_has_%out_ok -> L_RANGE_U64_NEXT_SOME_%out_ok, L_RANGE_U64_NEXT_NONE_%out_ok
|
|
301
|
+
L_RANGE_U64_NEXT_SOME_%out_ok:
|
|
302
|
+
%out_value = add __range_next_start_%out_ok, 0
|
|
303
|
+
__range_next_start2_%out_ok = add __range_next_start_%out_ok, 1
|
|
304
|
+
store %range_ptr+RangeU64_start, __range_next_start2_%out_ok as u64
|
|
305
|
+
%out_ok = add 0, 1
|
|
306
|
+
!__range_next_start2_%out_ok
|
|
307
|
+
!__range_next_has_%out_ok
|
|
308
|
+
!__range_next_end_%out_ok
|
|
309
|
+
!__range_next_start_%out_ok
|
|
310
|
+
jmp L_RANGE_U64_NEXT_END_%out_ok
|
|
311
|
+
L_RANGE_U64_NEXT_NONE_%out_ok:
|
|
312
|
+
%out_value = add 0, 0
|
|
313
|
+
%out_ok = add 0, 0
|
|
314
|
+
!__range_next_has_%out_ok
|
|
315
|
+
!__range_next_end_%out_ok
|
|
316
|
+
!__range_next_start_%out_ok
|
|
317
|
+
L_RANGE_U64_NEXT_END_%out_ok:
|
|
318
|
+
[END_MACRO]
|
|
319
|
+
|
|
320
|
+
[MACRO] RANGE_U64_NEXT_BACK %out_ok, %out_value, %range_ptr
|
|
321
|
+
__range_back_start_%out_ok = load %range_ptr+RangeU64_start as u64
|
|
322
|
+
__range_back_end_%out_ok = load %range_ptr+RangeU64_end as u64
|
|
323
|
+
__range_back_has_%out_ok = ult __range_back_start_%out_ok, __range_back_end_%out_ok
|
|
324
|
+
br __range_back_has_%out_ok -> L_RANGE_U64_BACK_SOME_%out_ok, L_RANGE_U64_BACK_NONE_%out_ok
|
|
325
|
+
L_RANGE_U64_BACK_SOME_%out_ok:
|
|
326
|
+
__range_back_end2_%out_ok = sub __range_back_end_%out_ok, 1
|
|
327
|
+
store %range_ptr+RangeU64_end, __range_back_end2_%out_ok as u64
|
|
328
|
+
%out_value = add __range_back_end2_%out_ok, 0
|
|
329
|
+
%out_ok = add 0, 1
|
|
330
|
+
!__range_back_end2_%out_ok
|
|
331
|
+
!__range_back_has_%out_ok
|
|
332
|
+
!__range_back_end_%out_ok
|
|
333
|
+
!__range_back_start_%out_ok
|
|
334
|
+
jmp L_RANGE_U64_BACK_END_%out_ok
|
|
335
|
+
L_RANGE_U64_BACK_NONE_%out_ok:
|
|
336
|
+
%out_value = add 0, 0
|
|
337
|
+
%out_ok = add 0, 0
|
|
338
|
+
!__range_back_has_%out_ok
|
|
339
|
+
!__range_back_end_%out_ok
|
|
340
|
+
!__range_back_start_%out_ok
|
|
341
|
+
L_RANGE_U64_BACK_END_%out_ok:
|
|
342
|
+
[END_MACRO]
|
|
343
|
+
|
|
344
|
+
[MACRO] RANGE_U64_NTH %out_ok, %out_value, %range_ptr, %nth
|
|
345
|
+
EXPAND RANGE_U64_LEN __range_nth_len_%out_ok, %range_ptr
|
|
346
|
+
__range_nth_has_%out_ok = ult %nth, __range_nth_len_%out_ok
|
|
347
|
+
br __range_nth_has_%out_ok -> L_RANGE_U64_NTH_SOME_%out_ok, L_RANGE_U64_NTH_NONE_%out_ok
|
|
348
|
+
L_RANGE_U64_NTH_SOME_%out_ok:
|
|
349
|
+
__range_nth_start_%out_ok = load %range_ptr+RangeU64_start as u64
|
|
350
|
+
__range_nth_value_%out_ok = add __range_nth_start_%out_ok, %nth
|
|
351
|
+
__range_nth_next_%out_ok = add __range_nth_value_%out_ok, 1
|
|
352
|
+
store %range_ptr+RangeU64_start, __range_nth_next_%out_ok as u64
|
|
353
|
+
%out_value = add __range_nth_value_%out_ok, 0
|
|
354
|
+
%out_ok = add 0, 1
|
|
355
|
+
!__range_nth_next_%out_ok
|
|
356
|
+
!__range_nth_value_%out_ok
|
|
357
|
+
!__range_nth_start_%out_ok
|
|
358
|
+
!__range_nth_has_%out_ok
|
|
359
|
+
!__range_nth_len_%out_ok
|
|
360
|
+
jmp L_RANGE_U64_NTH_END_%out_ok
|
|
361
|
+
L_RANGE_U64_NTH_NONE_%out_ok:
|
|
362
|
+
__range_nth_end_%out_ok = load %range_ptr+RangeU64_end as u64
|
|
363
|
+
store %range_ptr+RangeU64_start, __range_nth_end_%out_ok as u64
|
|
364
|
+
%out_value = add 0, 0
|
|
365
|
+
%out_ok = add 0, 0
|
|
366
|
+
!__range_nth_end_%out_ok
|
|
367
|
+
!__range_nth_has_%out_ok
|
|
368
|
+
!__range_nth_len_%out_ok
|
|
369
|
+
L_RANGE_U64_NTH_END_%out_ok:
|
|
370
|
+
[END_MACRO]
|
|
371
|
+
|
|
372
|
+
[MACRO] RANGE_U64_COUNT %out_count, %range_ptr
|
|
373
|
+
EXPAND RANGE_U64_LEN %out_count, %range_ptr
|
|
374
|
+
__range_count_end_%out_count = load %range_ptr+RangeU64_end as u64
|
|
375
|
+
store %range_ptr+RangeU64_start, __range_count_end_%out_count as u64
|
|
376
|
+
!__range_count_end_%out_count
|
|
377
|
+
[END_MACRO]
|
|
378
|
+
|
|
379
|
+
[MACRO] RANGE_U64_TRY_GET_SLICE %out_ok, %out_slice, %base_slice, %range_ptr
|
|
380
|
+
__range_slice_start_%out_ok = load %range_ptr+RangeU64_start as u64
|
|
381
|
+
__range_slice_end_%out_ok = load %range_ptr+RangeU64_end as u64
|
|
382
|
+
__range_slice_len_%out_ok = load %base_slice+Slice_len as u64
|
|
383
|
+
__range_slice_order_%out_ok = ule __range_slice_start_%out_ok, __range_slice_end_%out_ok
|
|
384
|
+
__range_slice_bound_%out_ok = ule __range_slice_end_%out_ok, __range_slice_len_%out_ok
|
|
385
|
+
__range_slice_valid_%out_ok = and __range_slice_order_%out_ok, __range_slice_bound_%out_ok
|
|
386
|
+
br __range_slice_valid_%out_ok -> L_RANGE_U64_SLICE_HIT_%out_ok, L_RANGE_U64_SLICE_MISS_%out_ok
|
|
387
|
+
|
|
388
|
+
L_RANGE_U64_SLICE_HIT_%out_ok:
|
|
389
|
+
__range_slice_base_%out_ok = load %base_slice+Slice_ptr as ptr
|
|
390
|
+
__range_slice_byte_off_%out_ok = mul __range_slice_start_%out_ok, 8
|
|
391
|
+
__range_slice_ptr_%out_ok = ptr_add __range_slice_base_%out_ok, __range_slice_byte_off_%out_ok
|
|
392
|
+
__range_slice_view_len_%out_ok = sub __range_slice_end_%out_ok, __range_slice_start_%out_ok
|
|
393
|
+
EXPAND SLICE_NEW %out_slice, __range_slice_ptr_%out_ok, __range_slice_view_len_%out_ok
|
|
394
|
+
%out_ok = add 0, 1
|
|
395
|
+
!__range_slice_view_len_%out_ok
|
|
396
|
+
!__range_slice_ptr_%out_ok
|
|
397
|
+
!__range_slice_byte_off_%out_ok
|
|
398
|
+
!__range_slice_base_%out_ok
|
|
399
|
+
!__range_slice_valid_%out_ok
|
|
400
|
+
!__range_slice_bound_%out_ok
|
|
401
|
+
!__range_slice_order_%out_ok
|
|
402
|
+
!__range_slice_len_%out_ok
|
|
403
|
+
!__range_slice_end_%out_ok
|
|
404
|
+
!__range_slice_start_%out_ok
|
|
405
|
+
jmp L_RANGE_U64_SLICE_END_%out_ok
|
|
406
|
+
|
|
407
|
+
L_RANGE_U64_SLICE_MISS_%out_ok:
|
|
408
|
+
__range_slice_null_%out_ok = 0 as ptr
|
|
409
|
+
EXPAND SLICE_NEW %out_slice, __range_slice_null_%out_ok, 0
|
|
410
|
+
%out_ok = add 0, 0
|
|
411
|
+
!__range_slice_null_%out_ok
|
|
412
|
+
!__range_slice_valid_%out_ok
|
|
413
|
+
!__range_slice_bound_%out_ok
|
|
414
|
+
!__range_slice_order_%out_ok
|
|
415
|
+
!__range_slice_len_%out_ok
|
|
416
|
+
!__range_slice_end_%out_ok
|
|
417
|
+
!__range_slice_start_%out_ok
|
|
418
|
+
|
|
419
|
+
L_RANGE_U64_SLICE_END_%out_ok:
|
|
420
|
+
[END_MACRO]
|
|
421
|
+
|
|
422
|
+
[MACRO] RANGE_FROM_U64_NEW %range_ptr, %start
|
|
423
|
+
store %range_ptr+RangeFromU64_start, %start as u64
|
|
424
|
+
[END_MACRO]
|
|
425
|
+
|
|
426
|
+
[MACRO] RANGE_FROM_U64_START %out_start, %range_ptr
|
|
427
|
+
%out_start = load %range_ptr+RangeFromU64_start as u64
|
|
428
|
+
[END_MACRO]
|
|
429
|
+
|
|
430
|
+
[MACRO] RANGE_FROM_U64_CONTAINS %out_bool, %range_ptr, %item
|
|
431
|
+
__range_from_start_%out_bool = load %range_ptr+RangeFromU64_start as u64
|
|
432
|
+
%out_bool = ule __range_from_start_%out_bool, %item
|
|
433
|
+
!__range_from_start_%out_bool
|
|
434
|
+
[END_MACRO]
|
|
435
|
+
|
|
436
|
+
[MACRO] RANGE_FROM_U64_TRY_GET_SLICE %out_ok, %out_slice, %base_slice, %range_ptr
|
|
437
|
+
__range_from_start_%out_ok = load %range_ptr+RangeFromU64_start as u64
|
|
438
|
+
__range_from_len_%out_ok = load %base_slice+Slice_len as u64
|
|
439
|
+
__range_from_valid_%out_ok = ule __range_from_start_%out_ok, __range_from_len_%out_ok
|
|
440
|
+
br __range_from_valid_%out_ok -> L_RANGE_FROM_SLICE_HIT_%out_ok, L_RANGE_FROM_SLICE_MISS_%out_ok
|
|
441
|
+
|
|
442
|
+
L_RANGE_FROM_SLICE_HIT_%out_ok:
|
|
443
|
+
__range_from_base_%out_ok = load %base_slice+Slice_ptr as ptr
|
|
444
|
+
__range_from_byte_off_%out_ok = mul __range_from_start_%out_ok, 8
|
|
445
|
+
__range_from_ptr_%out_ok = ptr_add __range_from_base_%out_ok, __range_from_byte_off_%out_ok
|
|
446
|
+
__range_from_view_len_%out_ok = sub __range_from_len_%out_ok, __range_from_start_%out_ok
|
|
447
|
+
EXPAND SLICE_NEW %out_slice, __range_from_ptr_%out_ok, __range_from_view_len_%out_ok
|
|
448
|
+
%out_ok = add 0, 1
|
|
449
|
+
!__range_from_view_len_%out_ok
|
|
450
|
+
!__range_from_ptr_%out_ok
|
|
451
|
+
!__range_from_byte_off_%out_ok
|
|
452
|
+
!__range_from_base_%out_ok
|
|
453
|
+
!__range_from_valid_%out_ok
|
|
454
|
+
!__range_from_len_%out_ok
|
|
455
|
+
!__range_from_start_%out_ok
|
|
456
|
+
jmp L_RANGE_FROM_SLICE_END_%out_ok
|
|
457
|
+
|
|
458
|
+
L_RANGE_FROM_SLICE_MISS_%out_ok:
|
|
459
|
+
__range_from_null_%out_ok = 0 as ptr
|
|
460
|
+
EXPAND SLICE_NEW %out_slice, __range_from_null_%out_ok, 0
|
|
461
|
+
%out_ok = add 0, 0
|
|
462
|
+
!__range_from_null_%out_ok
|
|
463
|
+
!__range_from_valid_%out_ok
|
|
464
|
+
!__range_from_len_%out_ok
|
|
465
|
+
!__range_from_start_%out_ok
|
|
466
|
+
|
|
467
|
+
L_RANGE_FROM_SLICE_END_%out_ok:
|
|
468
|
+
[END_MACRO]
|
|
469
|
+
|
|
470
|
+
[MACRO] RANGE_TO_U64_NEW %range_ptr, %end
|
|
471
|
+
store %range_ptr+RangeToU64_end, %end as u64
|
|
472
|
+
[END_MACRO]
|
|
473
|
+
|
|
474
|
+
[MACRO] RANGE_TO_U64_END %out_end, %range_ptr
|
|
475
|
+
%out_end = load %range_ptr+RangeToU64_end as u64
|
|
476
|
+
[END_MACRO]
|
|
477
|
+
|
|
478
|
+
[MACRO] RANGE_TO_U64_CONTAINS %out_bool, %range_ptr, %item
|
|
479
|
+
__range_to_end_%out_bool = load %range_ptr+RangeToU64_end as u64
|
|
480
|
+
%out_bool = ult %item, __range_to_end_%out_bool
|
|
481
|
+
!__range_to_end_%out_bool
|
|
482
|
+
[END_MACRO]
|
|
483
|
+
|
|
484
|
+
[MACRO] RANGE_TO_U64_TRY_GET_SLICE %out_ok, %out_slice, %base_slice, %range_ptr
|
|
485
|
+
__range_to_end_%out_ok = load %range_ptr+RangeToU64_end as u64
|
|
486
|
+
__range_to_len_%out_ok = load %base_slice+Slice_len as u64
|
|
487
|
+
__range_to_valid_%out_ok = ule __range_to_end_%out_ok, __range_to_len_%out_ok
|
|
488
|
+
br __range_to_valid_%out_ok -> L_RANGE_TO_SLICE_HIT_%out_ok, L_RANGE_TO_SLICE_MISS_%out_ok
|
|
489
|
+
|
|
490
|
+
L_RANGE_TO_SLICE_HIT_%out_ok:
|
|
491
|
+
__range_to_base_%out_ok = load %base_slice+Slice_ptr as ptr
|
|
492
|
+
EXPAND SLICE_NEW %out_slice, __range_to_base_%out_ok, __range_to_end_%out_ok
|
|
493
|
+
%out_ok = add 0, 1
|
|
494
|
+
!__range_to_base_%out_ok
|
|
495
|
+
!__range_to_valid_%out_ok
|
|
496
|
+
!__range_to_len_%out_ok
|
|
497
|
+
!__range_to_end_%out_ok
|
|
498
|
+
jmp L_RANGE_TO_SLICE_END_%out_ok
|
|
499
|
+
|
|
500
|
+
L_RANGE_TO_SLICE_MISS_%out_ok:
|
|
501
|
+
__range_to_null_%out_ok = 0 as ptr
|
|
502
|
+
EXPAND SLICE_NEW %out_slice, __range_to_null_%out_ok, 0
|
|
503
|
+
%out_ok = add 0, 0
|
|
504
|
+
!__range_to_null_%out_ok
|
|
505
|
+
!__range_to_valid_%out_ok
|
|
506
|
+
!__range_to_len_%out_ok
|
|
507
|
+
!__range_to_end_%out_ok
|
|
508
|
+
|
|
509
|
+
L_RANGE_TO_SLICE_END_%out_ok:
|
|
510
|
+
[END_MACRO]
|
|
511
|
+
|
|
512
|
+
[MACRO] RANGE_INCLUSIVE_U64_NEW %range_ptr, %start, %end
|
|
513
|
+
store %range_ptr+RangeInclusiveU64_start, %start as u64
|
|
514
|
+
store %range_ptr+RangeInclusiveU64_end, %end as u64
|
|
515
|
+
store %range_ptr+RangeInclusiveU64_exhausted, 0 as u64
|
|
516
|
+
[END_MACRO]
|
|
517
|
+
|
|
518
|
+
[MACRO] RANGE_INCLUSIVE_U64_SET_EXHAUSTED %range_ptr, %exhausted
|
|
519
|
+
store %range_ptr+RangeInclusiveU64_exhausted, %exhausted as u64
|
|
520
|
+
[END_MACRO]
|
|
521
|
+
|
|
522
|
+
[MACRO] RANGE_INCLUSIVE_U64_START %out_start, %range_ptr
|
|
523
|
+
%out_start = load %range_ptr+RangeInclusiveU64_start as u64
|
|
524
|
+
[END_MACRO]
|
|
525
|
+
|
|
526
|
+
[MACRO] RANGE_INCLUSIVE_U64_END %out_end, %range_ptr
|
|
527
|
+
%out_end = load %range_ptr+RangeInclusiveU64_end as u64
|
|
528
|
+
[END_MACRO]
|
|
529
|
+
|
|
530
|
+
[MACRO] RANGE_INCLUSIVE_U64_INTO_INNER %out_start, %out_end, %range_ptr
|
|
531
|
+
%out_start = load %range_ptr+RangeInclusiveU64_start as u64
|
|
532
|
+
%out_end = load %range_ptr+RangeInclusiveU64_end as u64
|
|
533
|
+
[END_MACRO]
|
|
534
|
+
|
|
535
|
+
[MACRO] RANGE_INCLUSIVE_U64_CONTAINS %out_bool, %range_ptr, %item
|
|
536
|
+
__range_inc_start_%out_bool = load %range_ptr+RangeInclusiveU64_start as u64
|
|
537
|
+
__range_inc_end_%out_bool = load %range_ptr+RangeInclusiveU64_end as u64
|
|
538
|
+
__range_inc_exhausted_%out_bool = load %range_ptr+RangeInclusiveU64_exhausted as u64
|
|
539
|
+
__range_inc_not_exhausted_%out_bool = eq __range_inc_exhausted_%out_bool, 0
|
|
540
|
+
__range_inc_ge_start_%out_bool = ule __range_inc_start_%out_bool, %item
|
|
541
|
+
__range_inc_le_end_%out_bool = ule %item, __range_inc_end_%out_bool
|
|
542
|
+
__range_inc_bounds_%out_bool = and __range_inc_ge_start_%out_bool, __range_inc_le_end_%out_bool
|
|
543
|
+
%out_bool = and __range_inc_not_exhausted_%out_bool, __range_inc_bounds_%out_bool
|
|
544
|
+
!__range_inc_bounds_%out_bool
|
|
545
|
+
!__range_inc_le_end_%out_bool
|
|
546
|
+
!__range_inc_ge_start_%out_bool
|
|
547
|
+
!__range_inc_not_exhausted_%out_bool
|
|
548
|
+
!__range_inc_exhausted_%out_bool
|
|
549
|
+
!__range_inc_end_%out_bool
|
|
550
|
+
!__range_inc_start_%out_bool
|
|
551
|
+
[END_MACRO]
|
|
552
|
+
|
|
553
|
+
[MACRO] RANGE_INCLUSIVE_U64_IS_EMPTY %out_bool, %range_ptr
|
|
554
|
+
__range_inc_empty_start_%out_bool = load %range_ptr+RangeInclusiveU64_start as u64
|
|
555
|
+
__range_inc_empty_end_%out_bool = load %range_ptr+RangeInclusiveU64_end as u64
|
|
556
|
+
__range_inc_empty_exhausted_%out_bool = load %range_ptr+RangeInclusiveU64_exhausted as u64
|
|
557
|
+
__range_inc_empty_order_%out_bool = ult __range_inc_empty_end_%out_bool, __range_inc_empty_start_%out_bool
|
|
558
|
+
__range_inc_empty_exh_%out_bool = ne __range_inc_empty_exhausted_%out_bool, 0
|
|
559
|
+
%out_bool = or __range_inc_empty_order_%out_bool, __range_inc_empty_exh_%out_bool
|
|
560
|
+
!__range_inc_empty_exh_%out_bool
|
|
561
|
+
!__range_inc_empty_order_%out_bool
|
|
562
|
+
!__range_inc_empty_exhausted_%out_bool
|
|
563
|
+
!__range_inc_empty_end_%out_bool
|
|
564
|
+
!__range_inc_empty_start_%out_bool
|
|
565
|
+
[END_MACRO]
|
|
566
|
+
|
|
567
|
+
[MACRO] RANGE_INCLUSIVE_U64_LEN %out_len, %range_ptr
|
|
568
|
+
EXPAND RANGE_INCLUSIVE_U64_IS_EMPTY __range_inc_len_empty_%out_len, %range_ptr
|
|
569
|
+
br __range_inc_len_empty_%out_len -> L_RANGE_INC_LEN_EMPTY_%out_len, L_RANGE_INC_LEN_NONEMPTY_%out_len
|
|
570
|
+
|
|
571
|
+
L_RANGE_INC_LEN_NONEMPTY_%out_len:
|
|
572
|
+
__range_inc_len_start_%out_len = load %range_ptr+RangeInclusiveU64_start as u64
|
|
573
|
+
__range_inc_len_end_%out_len = load %range_ptr+RangeInclusiveU64_end as u64
|
|
574
|
+
__range_inc_len_span_%out_len = sub __range_inc_len_end_%out_len, __range_inc_len_start_%out_len
|
|
575
|
+
%out_len = add __range_inc_len_span_%out_len, 1
|
|
576
|
+
!__range_inc_len_span_%out_len
|
|
577
|
+
!__range_inc_len_end_%out_len
|
|
578
|
+
!__range_inc_len_start_%out_len
|
|
579
|
+
!__range_inc_len_empty_%out_len
|
|
580
|
+
jmp L_RANGE_INC_LEN_END_%out_len
|
|
581
|
+
|
|
582
|
+
L_RANGE_INC_LEN_EMPTY_%out_len:
|
|
583
|
+
%out_len = add 0, 0
|
|
584
|
+
!__range_inc_len_empty_%out_len
|
|
585
|
+
|
|
586
|
+
L_RANGE_INC_LEN_END_%out_len:
|
|
587
|
+
[END_MACRO]
|
|
588
|
+
|
|
589
|
+
[MACRO] RANGE_INCLUSIVE_U64_NEXT %out_ok, %out_value, %range_ptr
|
|
590
|
+
EXPAND RANGE_INCLUSIVE_U64_IS_EMPTY __range_inc_next_empty_%out_ok, %range_ptr
|
|
591
|
+
br __range_inc_next_empty_%out_ok -> L_RANGE_INC_NEXT_NONE_%out_ok, L_RANGE_INC_NEXT_SOME_%out_ok
|
|
592
|
+
L_RANGE_INC_NEXT_SOME_%out_ok:
|
|
593
|
+
__range_inc_next_start_%out_ok = load %range_ptr+RangeInclusiveU64_start as u64
|
|
594
|
+
__range_inc_next_end_%out_ok = load %range_ptr+RangeInclusiveU64_end as u64
|
|
595
|
+
%out_value = add __range_inc_next_start_%out_ok, 0
|
|
596
|
+
__range_inc_next_last_%out_ok = eq __range_inc_next_start_%out_ok, __range_inc_next_end_%out_ok
|
|
597
|
+
br __range_inc_next_last_%out_ok -> L_RANGE_INC_NEXT_EXHAUST_%out_ok, L_RANGE_INC_NEXT_ADVANCE_%out_ok
|
|
598
|
+
L_RANGE_INC_NEXT_ADVANCE_%out_ok:
|
|
599
|
+
__range_inc_next_start2_%out_ok = add __range_inc_next_start_%out_ok, 1
|
|
600
|
+
store %range_ptr+RangeInclusiveU64_start, __range_inc_next_start2_%out_ok as u64
|
|
601
|
+
%out_ok = add 0, 1
|
|
602
|
+
!__range_inc_next_start2_%out_ok
|
|
603
|
+
!__range_inc_next_last_%out_ok
|
|
604
|
+
!__range_inc_next_end_%out_ok
|
|
605
|
+
!__range_inc_next_start_%out_ok
|
|
606
|
+
!__range_inc_next_empty_%out_ok
|
|
607
|
+
jmp L_RANGE_INC_NEXT_END_%out_ok
|
|
608
|
+
L_RANGE_INC_NEXT_EXHAUST_%out_ok:
|
|
609
|
+
store %range_ptr+RangeInclusiveU64_exhausted, 1 as u64
|
|
610
|
+
%out_ok = add 0, 1
|
|
611
|
+
!__range_inc_next_last_%out_ok
|
|
612
|
+
!__range_inc_next_end_%out_ok
|
|
613
|
+
!__range_inc_next_start_%out_ok
|
|
614
|
+
!__range_inc_next_empty_%out_ok
|
|
615
|
+
jmp L_RANGE_INC_NEXT_END_%out_ok
|
|
616
|
+
L_RANGE_INC_NEXT_NONE_%out_ok:
|
|
617
|
+
%out_value = add 0, 0
|
|
618
|
+
%out_ok = add 0, 0
|
|
619
|
+
!__range_inc_next_empty_%out_ok
|
|
620
|
+
L_RANGE_INC_NEXT_END_%out_ok:
|
|
621
|
+
[END_MACRO]
|
|
622
|
+
|
|
623
|
+
[MACRO] RANGE_INCLUSIVE_U64_NEXT_BACK %out_ok, %out_value, %range_ptr
|
|
624
|
+
EXPAND RANGE_INCLUSIVE_U64_IS_EMPTY __range_inc_back_empty_%out_ok, %range_ptr
|
|
625
|
+
br __range_inc_back_empty_%out_ok -> L_RANGE_INC_BACK_NONE_%out_ok, L_RANGE_INC_BACK_SOME_%out_ok
|
|
626
|
+
L_RANGE_INC_BACK_SOME_%out_ok:
|
|
627
|
+
__range_inc_back_start_%out_ok = load %range_ptr+RangeInclusiveU64_start as u64
|
|
628
|
+
__range_inc_back_end_%out_ok = load %range_ptr+RangeInclusiveU64_end as u64
|
|
629
|
+
%out_value = add __range_inc_back_end_%out_ok, 0
|
|
630
|
+
__range_inc_back_last_%out_ok = eq __range_inc_back_start_%out_ok, __range_inc_back_end_%out_ok
|
|
631
|
+
br __range_inc_back_last_%out_ok -> L_RANGE_INC_BACK_EXHAUST_%out_ok, L_RANGE_INC_BACK_ADVANCE_%out_ok
|
|
632
|
+
L_RANGE_INC_BACK_ADVANCE_%out_ok:
|
|
633
|
+
__range_inc_back_end2_%out_ok = sub __range_inc_back_end_%out_ok, 1
|
|
634
|
+
store %range_ptr+RangeInclusiveU64_end, __range_inc_back_end2_%out_ok as u64
|
|
635
|
+
%out_ok = add 0, 1
|
|
636
|
+
!__range_inc_back_end2_%out_ok
|
|
637
|
+
!__range_inc_back_last_%out_ok
|
|
638
|
+
!__range_inc_back_end_%out_ok
|
|
639
|
+
!__range_inc_back_start_%out_ok
|
|
640
|
+
!__range_inc_back_empty_%out_ok
|
|
641
|
+
jmp L_RANGE_INC_BACK_END_%out_ok
|
|
642
|
+
L_RANGE_INC_BACK_EXHAUST_%out_ok:
|
|
643
|
+
store %range_ptr+RangeInclusiveU64_exhausted, 1 as u64
|
|
644
|
+
%out_ok = add 0, 1
|
|
645
|
+
!__range_inc_back_last_%out_ok
|
|
646
|
+
!__range_inc_back_end_%out_ok
|
|
647
|
+
!__range_inc_back_start_%out_ok
|
|
648
|
+
!__range_inc_back_empty_%out_ok
|
|
649
|
+
jmp L_RANGE_INC_BACK_END_%out_ok
|
|
650
|
+
L_RANGE_INC_BACK_NONE_%out_ok:
|
|
651
|
+
%out_value = add 0, 0
|
|
652
|
+
%out_ok = add 0, 0
|
|
653
|
+
!__range_inc_back_empty_%out_ok
|
|
654
|
+
L_RANGE_INC_BACK_END_%out_ok:
|
|
655
|
+
[END_MACRO]
|
|
656
|
+
|
|
657
|
+
[MACRO] RANGE_INCLUSIVE_U64_COUNT %out_count, %range_ptr
|
|
658
|
+
EXPAND RANGE_INCLUSIVE_U64_LEN %out_count, %range_ptr
|
|
659
|
+
store %range_ptr+RangeInclusiveU64_exhausted, 1 as u64
|
|
660
|
+
[END_MACRO]
|
|
661
|
+
|
|
662
|
+
[MACRO] RANGE_INCLUSIVE_U64_TRY_GET_SLICE %out_ok, %out_slice, %base_slice, %range_ptr
|
|
663
|
+
EXPAND RANGE_INCLUSIVE_U64_IS_EMPTY __range_inc_slice_empty_%out_ok, %range_ptr
|
|
664
|
+
br __range_inc_slice_empty_%out_ok -> L_RANGE_INC_SLICE_EMPTY_%out_ok, L_RANGE_INC_SLICE_CHECK_%out_ok
|
|
665
|
+
|
|
666
|
+
L_RANGE_INC_SLICE_CHECK_%out_ok:
|
|
667
|
+
__range_inc_slice_start_%out_ok = load %range_ptr+RangeInclusiveU64_start as u64
|
|
668
|
+
__range_inc_slice_end_%out_ok = load %range_ptr+RangeInclusiveU64_end as u64
|
|
669
|
+
__range_inc_slice_len_%out_ok = load %base_slice+Slice_len as u64
|
|
670
|
+
__range_inc_slice_bound_%out_ok = ult __range_inc_slice_end_%out_ok, __range_inc_slice_len_%out_ok
|
|
671
|
+
br __range_inc_slice_bound_%out_ok -> L_RANGE_INC_SLICE_HIT_%out_ok, L_RANGE_INC_SLICE_MISS_%out_ok
|
|
672
|
+
|
|
673
|
+
L_RANGE_INC_SLICE_HIT_%out_ok:
|
|
674
|
+
__range_inc_slice_base_%out_ok = load %base_slice+Slice_ptr as ptr
|
|
675
|
+
__range_inc_slice_byte_off_%out_ok = mul __range_inc_slice_start_%out_ok, 8
|
|
676
|
+
__range_inc_slice_ptr_%out_ok = ptr_add __range_inc_slice_base_%out_ok, __range_inc_slice_byte_off_%out_ok
|
|
677
|
+
__range_inc_slice_span_%out_ok = sub __range_inc_slice_end_%out_ok, __range_inc_slice_start_%out_ok
|
|
678
|
+
__range_inc_slice_view_len_%out_ok = add __range_inc_slice_span_%out_ok, 1
|
|
679
|
+
EXPAND SLICE_NEW %out_slice, __range_inc_slice_ptr_%out_ok, __range_inc_slice_view_len_%out_ok
|
|
680
|
+
%out_ok = add 0, 1
|
|
681
|
+
!__range_inc_slice_view_len_%out_ok
|
|
682
|
+
!__range_inc_slice_span_%out_ok
|
|
683
|
+
!__range_inc_slice_ptr_%out_ok
|
|
684
|
+
!__range_inc_slice_byte_off_%out_ok
|
|
685
|
+
!__range_inc_slice_base_%out_ok
|
|
686
|
+
!__range_inc_slice_bound_%out_ok
|
|
687
|
+
!__range_inc_slice_len_%out_ok
|
|
688
|
+
!__range_inc_slice_end_%out_ok
|
|
689
|
+
!__range_inc_slice_start_%out_ok
|
|
690
|
+
!__range_inc_slice_empty_%out_ok
|
|
691
|
+
jmp L_RANGE_INC_SLICE_END_%out_ok
|
|
692
|
+
|
|
693
|
+
L_RANGE_INC_SLICE_MISS_%out_ok:
|
|
694
|
+
!__range_inc_slice_bound_%out_ok
|
|
695
|
+
!__range_inc_slice_len_%out_ok
|
|
696
|
+
!__range_inc_slice_end_%out_ok
|
|
697
|
+
!__range_inc_slice_start_%out_ok
|
|
698
|
+
jmp L_RANGE_INC_SLICE_EMPTY_%out_ok
|
|
699
|
+
|
|
700
|
+
L_RANGE_INC_SLICE_EMPTY_%out_ok:
|
|
701
|
+
__range_inc_slice_null_%out_ok = 0 as ptr
|
|
702
|
+
EXPAND SLICE_NEW %out_slice, __range_inc_slice_null_%out_ok, 0
|
|
703
|
+
%out_ok = add 0, 0
|
|
704
|
+
!__range_inc_slice_null_%out_ok
|
|
705
|
+
!__range_inc_slice_empty_%out_ok
|
|
706
|
+
|
|
707
|
+
L_RANGE_INC_SLICE_END_%out_ok:
|
|
708
|
+
[END_MACRO]
|
|
709
|
+
|
|
710
|
+
[MACRO] RANGE_TO_INCLUSIVE_U64_NEW %range_ptr, %end
|
|
711
|
+
store %range_ptr+RangeToInclusiveU64_end, %end as u64
|
|
712
|
+
[END_MACRO]
|
|
713
|
+
|
|
714
|
+
[MACRO] RANGE_TO_INCLUSIVE_U64_END %out_end, %range_ptr
|
|
715
|
+
%out_end = load %range_ptr+RangeToInclusiveU64_end as u64
|
|
716
|
+
[END_MACRO]
|
|
717
|
+
|
|
718
|
+
[MACRO] RANGE_TO_INCLUSIVE_U64_CONTAINS %out_bool, %range_ptr, %item
|
|
719
|
+
__range_to_inc_end_%out_bool = load %range_ptr+RangeToInclusiveU64_end as u64
|
|
720
|
+
%out_bool = ule %item, __range_to_inc_end_%out_bool
|
|
721
|
+
!__range_to_inc_end_%out_bool
|
|
722
|
+
[END_MACRO]
|
|
723
|
+
|
|
724
|
+
[MACRO] RANGE_TO_INCLUSIVE_U64_TRY_GET_SLICE %out_ok, %out_slice, %base_slice, %range_ptr
|
|
725
|
+
__range_to_inc_end_%out_ok = load %range_ptr+RangeToInclusiveU64_end as u64
|
|
726
|
+
__range_to_inc_len_%out_ok = load %base_slice+Slice_len as u64
|
|
727
|
+
__range_to_inc_valid_%out_ok = ult __range_to_inc_end_%out_ok, __range_to_inc_len_%out_ok
|
|
728
|
+
br __range_to_inc_valid_%out_ok -> L_RANGE_TO_INC_SLICE_HIT_%out_ok, L_RANGE_TO_INC_SLICE_MISS_%out_ok
|
|
729
|
+
|
|
730
|
+
L_RANGE_TO_INC_SLICE_HIT_%out_ok:
|
|
731
|
+
__range_to_inc_base_%out_ok = load %base_slice+Slice_ptr as ptr
|
|
732
|
+
__range_to_inc_view_len_%out_ok = add __range_to_inc_end_%out_ok, 1
|
|
733
|
+
EXPAND SLICE_NEW %out_slice, __range_to_inc_base_%out_ok, __range_to_inc_view_len_%out_ok
|
|
734
|
+
%out_ok = add 0, 1
|
|
735
|
+
!__range_to_inc_view_len_%out_ok
|
|
736
|
+
!__range_to_inc_base_%out_ok
|
|
737
|
+
!__range_to_inc_valid_%out_ok
|
|
738
|
+
!__range_to_inc_len_%out_ok
|
|
739
|
+
!__range_to_inc_end_%out_ok
|
|
740
|
+
jmp L_RANGE_TO_INC_SLICE_END_%out_ok
|
|
741
|
+
|
|
742
|
+
L_RANGE_TO_INC_SLICE_MISS_%out_ok:
|
|
743
|
+
__range_to_inc_null_%out_ok = 0 as ptr
|
|
744
|
+
EXPAND SLICE_NEW %out_slice, __range_to_inc_null_%out_ok, 0
|
|
745
|
+
%out_ok = add 0, 0
|
|
746
|
+
!__range_to_inc_null_%out_ok
|
|
747
|
+
!__range_to_inc_valid_%out_ok
|
|
748
|
+
!__range_to_inc_len_%out_ok
|
|
749
|
+
!__range_to_inc_end_%out_ok
|
|
750
|
+
|
|
751
|
+
L_RANGE_TO_INC_SLICE_END_%out_ok:
|
|
752
|
+
[END_MACRO]
|
|
753
|
+
|
|
754
|
+
[MACRO] RANGE_FULL_CONTAINS_U64 %out_bool, %item
|
|
755
|
+
%out_bool = add 0, 1
|
|
756
|
+
[END_MACRO]
|
|
757
|
+
|
|
758
|
+
// Rust method-name alias over RANGE_FULL_CONTAINS_U64.
|
|
759
|
+
[MACRO] RANGE_FULL_CONTAINS %out_bool, %item
|
|
760
|
+
EXPAND RANGE_FULL_CONTAINS_U64 %out_bool, %item
|
|
761
|
+
[END_MACRO]
|
|
762
|
+
|
|
763
|
+
[MACRO] RANGE_FULL_GET_SLICE %out_slice, %base_slice
|
|
764
|
+
__range_full_ptr_%out_slice = load %base_slice+Slice_ptr as ptr
|
|
765
|
+
__range_full_len_%out_slice = load %base_slice+Slice_len as u64
|
|
766
|
+
EXPAND SLICE_NEW %out_slice, __range_full_ptr_%out_slice, __range_full_len_%out_slice
|
|
767
|
+
!__range_full_len_%out_slice
|
|
768
|
+
!__range_full_ptr_%out_slice
|
|
769
|
+
[END_MACRO]
|
|
770
|
+
|
|
771
|
+
[MACRO] BOUND_U64_UNBOUNDED_NEW %bound_ptr
|
|
772
|
+
store %bound_ptr+BoundU64_tag, BOUND_U64_UNBOUNDED as u64
|
|
773
|
+
store %bound_ptr+BoundU64_value, 0 as u64
|
|
774
|
+
[END_MACRO]
|
|
775
|
+
|
|
776
|
+
[MACRO] BOUND_U64_INCLUDED_NEW %bound_ptr, %value
|
|
777
|
+
store %bound_ptr+BoundU64_tag, BOUND_U64_INCLUDED as u64
|
|
778
|
+
store %bound_ptr+BoundU64_value, %value as u64
|
|
779
|
+
[END_MACRO]
|
|
780
|
+
|
|
781
|
+
[MACRO] BOUND_U64_EXCLUDED_NEW %bound_ptr, %value
|
|
782
|
+
store %bound_ptr+BoundU64_tag, BOUND_U64_EXCLUDED as u64
|
|
783
|
+
store %bound_ptr+BoundU64_value, %value as u64
|
|
784
|
+
[END_MACRO]
|
|
785
|
+
|
|
786
|
+
[MACRO] BOUND_U64_TAG %out_tag, %bound_ptr
|
|
787
|
+
%out_tag = load %bound_ptr+BoundU64_tag as u64
|
|
788
|
+
[END_MACRO]
|
|
789
|
+
|
|
790
|
+
[MACRO] BOUND_U64_VALUE %out_value, %bound_ptr
|
|
791
|
+
%out_value = load %bound_ptr+BoundU64_value as u64
|
|
792
|
+
[END_MACRO]
|
|
793
|
+
|
|
794
|
+
[MACRO] BOUND_U64_AS_REF %dst_bound_ref_ptr, %src_bound_ptr
|
|
795
|
+
__bound_u64_as_ref_tag_%dst_bound_ref_ptr = load %src_bound_ptr+BoundU64_tag as u64
|
|
796
|
+
__bound_u64_as_ref_unbounded_%dst_bound_ref_ptr = eq __bound_u64_as_ref_tag_%dst_bound_ref_ptr, BOUND_U64_UNBOUNDED
|
|
797
|
+
store %dst_bound_ref_ptr+BoundU64Ref_tag, __bound_u64_as_ref_tag_%dst_bound_ref_ptr as u64
|
|
798
|
+
br __bound_u64_as_ref_unbounded_%dst_bound_ref_ptr -> L_BOUND_U64_AS_REF_UNBOUNDED_%dst_bound_ref_ptr, L_BOUND_U64_AS_REF_VALUE_%dst_bound_ref_ptr
|
|
799
|
+
|
|
800
|
+
L_BOUND_U64_AS_REF_VALUE_%dst_bound_ref_ptr:
|
|
801
|
+
__bound_u64_as_ref_ptr_%dst_bound_ref_ptr = ptr_add %src_bound_ptr, BoundU64_value
|
|
802
|
+
store %dst_bound_ref_ptr+BoundU64Ref_ptr, __bound_u64_as_ref_ptr_%dst_bound_ref_ptr as ptr
|
|
803
|
+
!__bound_u64_as_ref_ptr_%dst_bound_ref_ptr
|
|
804
|
+
!__bound_u64_as_ref_unbounded_%dst_bound_ref_ptr
|
|
805
|
+
!__bound_u64_as_ref_tag_%dst_bound_ref_ptr
|
|
806
|
+
jmp L_BOUND_U64_AS_REF_DONE_%dst_bound_ref_ptr
|
|
807
|
+
|
|
808
|
+
L_BOUND_U64_AS_REF_UNBOUNDED_%dst_bound_ref_ptr:
|
|
809
|
+
store %dst_bound_ref_ptr+BoundU64Ref_ptr, 0 as u64
|
|
810
|
+
!__bound_u64_as_ref_unbounded_%dst_bound_ref_ptr
|
|
811
|
+
!__bound_u64_as_ref_tag_%dst_bound_ref_ptr
|
|
812
|
+
|
|
813
|
+
L_BOUND_U64_AS_REF_DONE_%dst_bound_ref_ptr:
|
|
814
|
+
[END_MACRO]
|
|
815
|
+
|
|
816
|
+
[MACRO] BOUND_U64_AS_MUT %dst_bound_ref_ptr, %src_bound_ptr
|
|
817
|
+
EXPAND BOUND_U64_AS_REF %dst_bound_ref_ptr, %src_bound_ptr
|
|
818
|
+
[END_MACRO]
|
|
819
|
+
|
|
820
|
+
[MACRO] BOUND_U64_REF_TAG %out_tag, %bound_ref_ptr
|
|
821
|
+
%out_tag = load %bound_ref_ptr+BoundU64Ref_tag as u64
|
|
822
|
+
[END_MACRO]
|
|
823
|
+
|
|
824
|
+
[MACRO] BOUND_U64_REF_PTR %out_ptr, %bound_ref_ptr
|
|
825
|
+
%out_ptr = load %bound_ref_ptr+BoundU64Ref_ptr as ptr
|
|
826
|
+
[END_MACRO]
|
|
827
|
+
|
|
828
|
+
[MACRO] BOUND_U64_REF_COPIED %dst_bound_ptr, %src_bound_ref_ptr
|
|
829
|
+
__bound_u64_ref_copied_tag_%dst_bound_ptr = load %src_bound_ref_ptr+BoundU64Ref_tag as u64
|
|
830
|
+
__bound_u64_ref_copied_unbounded_%dst_bound_ptr = eq __bound_u64_ref_copied_tag_%dst_bound_ptr, BOUND_U64_UNBOUNDED
|
|
831
|
+
store %dst_bound_ptr+BoundU64_tag, __bound_u64_ref_copied_tag_%dst_bound_ptr as u64
|
|
832
|
+
br __bound_u64_ref_copied_unbounded_%dst_bound_ptr -> L_BOUND_U64_REF_COPIED_UNBOUNDED_%dst_bound_ptr, L_BOUND_U64_REF_COPIED_VALUE_%dst_bound_ptr
|
|
833
|
+
|
|
834
|
+
L_BOUND_U64_REF_COPIED_VALUE_%dst_bound_ptr:
|
|
835
|
+
__bound_u64_ref_copied_ptr_%dst_bound_ptr = load %src_bound_ref_ptr+BoundU64Ref_ptr as ptr
|
|
836
|
+
__bound_u64_ref_copied_value_%dst_bound_ptr = load __bound_u64_ref_copied_ptr_%dst_bound_ptr+0 as u64
|
|
837
|
+
store %dst_bound_ptr+BoundU64_value, __bound_u64_ref_copied_value_%dst_bound_ptr as u64
|
|
838
|
+
!__bound_u64_ref_copied_value_%dst_bound_ptr
|
|
839
|
+
!__bound_u64_ref_copied_ptr_%dst_bound_ptr
|
|
840
|
+
!__bound_u64_ref_copied_unbounded_%dst_bound_ptr
|
|
841
|
+
!__bound_u64_ref_copied_tag_%dst_bound_ptr
|
|
842
|
+
jmp L_BOUND_U64_REF_COPIED_DONE_%dst_bound_ptr
|
|
843
|
+
|
|
844
|
+
L_BOUND_U64_REF_COPIED_UNBOUNDED_%dst_bound_ptr:
|
|
845
|
+
store %dst_bound_ptr+BoundU64_value, 0 as u64
|
|
846
|
+
!__bound_u64_ref_copied_unbounded_%dst_bound_ptr
|
|
847
|
+
!__bound_u64_ref_copied_tag_%dst_bound_ptr
|
|
848
|
+
|
|
849
|
+
L_BOUND_U64_REF_COPIED_DONE_%dst_bound_ptr:
|
|
850
|
+
[END_MACRO]
|
|
851
|
+
|
|
852
|
+
[MACRO] BOUND_U64_REF_CLONED %dst_bound_ptr, %src_bound_ref_ptr
|
|
853
|
+
EXPAND BOUND_U64_REF_COPIED %dst_bound_ptr, %src_bound_ref_ptr
|
|
854
|
+
[END_MACRO]
|
|
855
|
+
|
|
856
|
+
[MACRO] BOUND_U64_IS_UNBOUNDED %out_bool, %bound_ptr
|
|
857
|
+
__bound_tag_%out_bool = load %bound_ptr+BoundU64_tag as u64
|
|
858
|
+
%out_bool = eq __bound_tag_%out_bool, BOUND_U64_UNBOUNDED
|
|
859
|
+
!__bound_tag_%out_bool
|
|
860
|
+
[END_MACRO]
|
|
861
|
+
|
|
862
|
+
[MACRO] BOUND_U64_IS_INCLUDED %out_bool, %bound_ptr
|
|
863
|
+
__bound_tag_%out_bool = load %bound_ptr+BoundU64_tag as u64
|
|
864
|
+
%out_bool = eq __bound_tag_%out_bool, BOUND_U64_INCLUDED
|
|
865
|
+
!__bound_tag_%out_bool
|
|
866
|
+
[END_MACRO]
|
|
867
|
+
|
|
868
|
+
[MACRO] BOUND_U64_IS_EXCLUDED %out_bool, %bound_ptr
|
|
869
|
+
__bound_tag_%out_bool = load %bound_ptr+BoundU64_tag as u64
|
|
870
|
+
%out_bool = eq __bound_tag_%out_bool, BOUND_U64_EXCLUDED
|
|
871
|
+
!__bound_tag_%out_bool
|
|
872
|
+
[END_MACRO]
|
|
873
|
+
|
|
874
|
+
[MACRO] BOUND_U64_CONTAINS_START %out_bool, %bound_ptr, %item
|
|
875
|
+
__bound_start_tag_%out_bool = load %bound_ptr+BoundU64_tag as u64
|
|
876
|
+
__bound_start_unbounded_%out_bool = eq __bound_start_tag_%out_bool, BOUND_U64_UNBOUNDED
|
|
877
|
+
br __bound_start_unbounded_%out_bool -> L_BOUND_START_TRUE_%out_bool, L_BOUND_START_CHECK_%out_bool
|
|
878
|
+
|
|
879
|
+
L_BOUND_START_CHECK_%out_bool:
|
|
880
|
+
__bound_start_value_%out_bool = load %bound_ptr+BoundU64_value as u64
|
|
881
|
+
__bound_start_included_%out_bool = eq __bound_start_tag_%out_bool, BOUND_U64_INCLUDED
|
|
882
|
+
br __bound_start_included_%out_bool -> L_BOUND_START_INCLUDED_%out_bool, L_BOUND_START_EXCLUDED_%out_bool
|
|
883
|
+
|
|
884
|
+
L_BOUND_START_INCLUDED_%out_bool:
|
|
885
|
+
%out_bool = ule __bound_start_value_%out_bool, %item
|
|
886
|
+
!__bound_start_included_%out_bool
|
|
887
|
+
!__bound_start_value_%out_bool
|
|
888
|
+
!__bound_start_unbounded_%out_bool
|
|
889
|
+
!__bound_start_tag_%out_bool
|
|
890
|
+
jmp L_BOUND_START_END_%out_bool
|
|
891
|
+
|
|
892
|
+
L_BOUND_START_EXCLUDED_%out_bool:
|
|
893
|
+
%out_bool = ult __bound_start_value_%out_bool, %item
|
|
894
|
+
!__bound_start_included_%out_bool
|
|
895
|
+
!__bound_start_value_%out_bool
|
|
896
|
+
!__bound_start_unbounded_%out_bool
|
|
897
|
+
!__bound_start_tag_%out_bool
|
|
898
|
+
jmp L_BOUND_START_END_%out_bool
|
|
899
|
+
|
|
900
|
+
L_BOUND_START_TRUE_%out_bool:
|
|
901
|
+
%out_bool = add 0, 1
|
|
902
|
+
!__bound_start_unbounded_%out_bool
|
|
903
|
+
!__bound_start_tag_%out_bool
|
|
904
|
+
|
|
905
|
+
L_BOUND_START_END_%out_bool:
|
|
906
|
+
[END_MACRO]
|
|
907
|
+
|
|
908
|
+
[MACRO] BOUND_U64_CONTAINS_END %out_bool, %bound_ptr, %item
|
|
909
|
+
__bound_end_tag_%out_bool = load %bound_ptr+BoundU64_tag as u64
|
|
910
|
+
__bound_end_unbounded_%out_bool = eq __bound_end_tag_%out_bool, BOUND_U64_UNBOUNDED
|
|
911
|
+
br __bound_end_unbounded_%out_bool -> L_BOUND_END_TRUE_%out_bool, L_BOUND_END_CHECK_%out_bool
|
|
912
|
+
|
|
913
|
+
L_BOUND_END_CHECK_%out_bool:
|
|
914
|
+
__bound_end_value_%out_bool = load %bound_ptr+BoundU64_value as u64
|
|
915
|
+
__bound_end_included_%out_bool = eq __bound_end_tag_%out_bool, BOUND_U64_INCLUDED
|
|
916
|
+
br __bound_end_included_%out_bool -> L_BOUND_END_INCLUDED_%out_bool, L_BOUND_END_EXCLUDED_%out_bool
|
|
917
|
+
|
|
918
|
+
L_BOUND_END_INCLUDED_%out_bool:
|
|
919
|
+
%out_bool = ule %item, __bound_end_value_%out_bool
|
|
920
|
+
!__bound_end_included_%out_bool
|
|
921
|
+
!__bound_end_value_%out_bool
|
|
922
|
+
!__bound_end_unbounded_%out_bool
|
|
923
|
+
!__bound_end_tag_%out_bool
|
|
924
|
+
jmp L_BOUND_END_END_%out_bool
|
|
925
|
+
|
|
926
|
+
L_BOUND_END_EXCLUDED_%out_bool:
|
|
927
|
+
%out_bool = ult %item, __bound_end_value_%out_bool
|
|
928
|
+
!__bound_end_included_%out_bool
|
|
929
|
+
!__bound_end_value_%out_bool
|
|
930
|
+
!__bound_end_unbounded_%out_bool
|
|
931
|
+
!__bound_end_tag_%out_bool
|
|
932
|
+
jmp L_BOUND_END_END_%out_bool
|
|
933
|
+
|
|
934
|
+
L_BOUND_END_TRUE_%out_bool:
|
|
935
|
+
%out_bool = add 0, 1
|
|
936
|
+
!__bound_end_unbounded_%out_bool
|
|
937
|
+
!__bound_end_tag_%out_bool
|
|
938
|
+
|
|
939
|
+
L_BOUND_END_END_%out_bool:
|
|
940
|
+
[END_MACRO]
|
|
941
|
+
|
|
942
|
+
[MACRO] BOUND_U64_RANGE_CONTAINS %out_bool, %start_bound_ptr, %end_bound_ptr, %item
|
|
943
|
+
EXPAND BOUND_U64_CONTAINS_START __bound_range_start_%out_bool, %start_bound_ptr, %item
|
|
944
|
+
EXPAND BOUND_U64_CONTAINS_END __bound_range_end_%out_bool, %end_bound_ptr, %item
|
|
945
|
+
%out_bool = and __bound_range_start_%out_bool, __bound_range_end_%out_bool
|
|
946
|
+
!__bound_range_end_%out_bool
|
|
947
|
+
!__bound_range_start_%out_bool
|
|
948
|
+
[END_MACRO]
|
|
949
|
+
|
|
950
|
+
[MACRO] BOUND_U64_RANGE_IS_EMPTY %out_bool, %start_bound_ptr, %end_bound_ptr
|
|
951
|
+
__bound_u64_empty_start_tag_%out_bool = load %start_bound_ptr+BoundU64_tag as u64
|
|
952
|
+
__bound_u64_empty_end_tag_%out_bool = load %end_bound_ptr+BoundU64_tag as u64
|
|
953
|
+
__bound_u64_empty_start_unbounded_%out_bool = eq __bound_u64_empty_start_tag_%out_bool, BOUND_U64_UNBOUNDED
|
|
954
|
+
__bound_u64_empty_end_unbounded_%out_bool = eq __bound_u64_empty_end_tag_%out_bool, BOUND_U64_UNBOUNDED
|
|
955
|
+
__bound_u64_empty_unbounded_%out_bool = or __bound_u64_empty_start_unbounded_%out_bool, __bound_u64_empty_end_unbounded_%out_bool
|
|
956
|
+
br __bound_u64_empty_unbounded_%out_bool -> L_BOUND_U64_EMPTY_FALSE_%out_bool, L_BOUND_U64_EMPTY_CHECK_%out_bool
|
|
957
|
+
|
|
958
|
+
L_BOUND_U64_EMPTY_CHECK_%out_bool:
|
|
959
|
+
__bound_u64_empty_start_value_%out_bool = load %start_bound_ptr+BoundU64_value as u64
|
|
960
|
+
__bound_u64_empty_end_value_%out_bool = load %end_bound_ptr+BoundU64_value as u64
|
|
961
|
+
__bound_u64_empty_start_included_%out_bool = eq __bound_u64_empty_start_tag_%out_bool, BOUND_U64_INCLUDED
|
|
962
|
+
__bound_u64_empty_end_included_%out_bool = eq __bound_u64_empty_end_tag_%out_bool, BOUND_U64_INCLUDED
|
|
963
|
+
__bound_u64_empty_both_included_%out_bool = and __bound_u64_empty_start_included_%out_bool, __bound_u64_empty_end_included_%out_bool
|
|
964
|
+
br __bound_u64_empty_both_included_%out_bool -> L_BOUND_U64_EMPTY_INCLUDED_%out_bool, L_BOUND_U64_EMPTY_STRICT_%out_bool
|
|
965
|
+
|
|
966
|
+
L_BOUND_U64_EMPTY_INCLUDED_%out_bool:
|
|
967
|
+
__bound_u64_empty_valid_inc_%out_bool = ule __bound_u64_empty_start_value_%out_bool, __bound_u64_empty_end_value_%out_bool
|
|
968
|
+
%out_bool = eq __bound_u64_empty_valid_inc_%out_bool, 0
|
|
969
|
+
!__bound_u64_empty_valid_inc_%out_bool
|
|
970
|
+
!__bound_u64_empty_both_included_%out_bool
|
|
971
|
+
!__bound_u64_empty_end_included_%out_bool
|
|
972
|
+
!__bound_u64_empty_start_included_%out_bool
|
|
973
|
+
!__bound_u64_empty_end_value_%out_bool
|
|
974
|
+
!__bound_u64_empty_start_value_%out_bool
|
|
975
|
+
!__bound_u64_empty_unbounded_%out_bool
|
|
976
|
+
!__bound_u64_empty_end_unbounded_%out_bool
|
|
977
|
+
!__bound_u64_empty_start_unbounded_%out_bool
|
|
978
|
+
!__bound_u64_empty_end_tag_%out_bool
|
|
979
|
+
!__bound_u64_empty_start_tag_%out_bool
|
|
980
|
+
jmp L_BOUND_U64_EMPTY_DONE_%out_bool
|
|
981
|
+
|
|
982
|
+
L_BOUND_U64_EMPTY_STRICT_%out_bool:
|
|
983
|
+
__bound_u64_empty_valid_strict_%out_bool = ult __bound_u64_empty_start_value_%out_bool, __bound_u64_empty_end_value_%out_bool
|
|
984
|
+
%out_bool = eq __bound_u64_empty_valid_strict_%out_bool, 0
|
|
985
|
+
!__bound_u64_empty_valid_strict_%out_bool
|
|
986
|
+
!__bound_u64_empty_both_included_%out_bool
|
|
987
|
+
!__bound_u64_empty_end_included_%out_bool
|
|
988
|
+
!__bound_u64_empty_start_included_%out_bool
|
|
989
|
+
!__bound_u64_empty_end_value_%out_bool
|
|
990
|
+
!__bound_u64_empty_start_value_%out_bool
|
|
991
|
+
!__bound_u64_empty_unbounded_%out_bool
|
|
992
|
+
!__bound_u64_empty_end_unbounded_%out_bool
|
|
993
|
+
!__bound_u64_empty_start_unbounded_%out_bool
|
|
994
|
+
!__bound_u64_empty_end_tag_%out_bool
|
|
995
|
+
!__bound_u64_empty_start_tag_%out_bool
|
|
996
|
+
jmp L_BOUND_U64_EMPTY_DONE_%out_bool
|
|
997
|
+
|
|
998
|
+
L_BOUND_U64_EMPTY_FALSE_%out_bool:
|
|
999
|
+
%out_bool = add 0, 0
|
|
1000
|
+
!__bound_u64_empty_unbounded_%out_bool
|
|
1001
|
+
!__bound_u64_empty_end_unbounded_%out_bool
|
|
1002
|
+
!__bound_u64_empty_start_unbounded_%out_bool
|
|
1003
|
+
!__bound_u64_empty_end_tag_%out_bool
|
|
1004
|
+
!__bound_u64_empty_start_tag_%out_bool
|
|
1005
|
+
|
|
1006
|
+
L_BOUND_U64_EMPTY_DONE_%out_bool:
|
|
1007
|
+
[END_MACRO]
|
|
1008
|
+
|
|
1009
|
+
[MACRO] RANGE_U64_DEFAULT %range_ptr
|
|
1010
|
+
store %range_ptr+RangeU64_start, 0 as u64
|
|
1011
|
+
store %range_ptr+RangeU64_end, 0 as u64
|
|
1012
|
+
[END_MACRO]
|
|
1013
|
+
|
|
1014
|
+
[MACRO] RANGE_FULL_DEFAULT %range_ptr
|
|
1015
|
+
__range_full_noop_%range_ptr = add 0, 0
|
|
1016
|
+
!__range_full_noop_%range_ptr
|
|
1017
|
+
[END_MACRO]
|
|
1018
|
+
|
|
1019
|
+
[MACRO] BOUND_U64_DEFAULT %bound_ptr
|
|
1020
|
+
EXPAND BOUND_U64_UNBOUNDED_NEW %bound_ptr
|
|
1021
|
+
[END_MACRO]
|
|
1022
|
+
|
|
1023
|
+
[MACRO] BOUND_U64_COPY %dst_bound_ptr, %src_bound_ptr
|
|
1024
|
+
__bound_u64_copy_tag_%dst_bound_ptr = load %src_bound_ptr+BoundU64_tag as u64
|
|
1025
|
+
__bound_u64_copy_value_%dst_bound_ptr = load %src_bound_ptr+BoundU64_value as u64
|
|
1026
|
+
store %dst_bound_ptr+BoundU64_tag, __bound_u64_copy_tag_%dst_bound_ptr as u64
|
|
1027
|
+
store %dst_bound_ptr+BoundU64_value, __bound_u64_copy_value_%dst_bound_ptr as u64
|
|
1028
|
+
!__bound_u64_copy_value_%dst_bound_ptr
|
|
1029
|
+
!__bound_u64_copy_tag_%dst_bound_ptr
|
|
1030
|
+
[END_MACRO]
|
|
1031
|
+
|
|
1032
|
+
[MACRO] BOUND_U64_COPIED %dst_bound_ptr, %src_bound_ptr
|
|
1033
|
+
EXPAND BOUND_U64_COPY %dst_bound_ptr, %src_bound_ptr
|
|
1034
|
+
[END_MACRO]
|
|
1035
|
+
|
|
1036
|
+
[MACRO] BOUND_U64_CLONED %dst_bound_ptr, %src_bound_ptr
|
|
1037
|
+
EXPAND BOUND_U64_COPY %dst_bound_ptr, %src_bound_ptr
|
|
1038
|
+
[END_MACRO]
|
|
1039
|
+
|
|
1040
|
+
[MACRO] BOUND_U64_MAP %dst_bound_ptr, %src_bound_ptr, %map_fn
|
|
1041
|
+
__bound_u64_map_tag_%dst_bound_ptr = load %src_bound_ptr+BoundU64_tag as u64
|
|
1042
|
+
__bound_u64_map_unbounded_%dst_bound_ptr = eq __bound_u64_map_tag_%dst_bound_ptr, BOUND_U64_UNBOUNDED
|
|
1043
|
+
br __bound_u64_map_unbounded_%dst_bound_ptr -> L_BOUND_U64_MAP_UNBOUNDED_%dst_bound_ptr, L_BOUND_U64_MAP_VALUE_%dst_bound_ptr
|
|
1044
|
+
|
|
1045
|
+
L_BOUND_U64_MAP_VALUE_%dst_bound_ptr:
|
|
1046
|
+
__bound_u64_map_value_%dst_bound_ptr = load %src_bound_ptr+BoundU64_value as u64
|
|
1047
|
+
__bound_u64_map_mapped_%dst_bound_ptr = call %map_fn(__bound_u64_map_value_%dst_bound_ptr)
|
|
1048
|
+
store %dst_bound_ptr+BoundU64_tag, __bound_u64_map_tag_%dst_bound_ptr as u64
|
|
1049
|
+
store %dst_bound_ptr+BoundU64_value, __bound_u64_map_mapped_%dst_bound_ptr as u64
|
|
1050
|
+
!__bound_u64_map_mapped_%dst_bound_ptr
|
|
1051
|
+
!__bound_u64_map_value_%dst_bound_ptr
|
|
1052
|
+
!__bound_u64_map_unbounded_%dst_bound_ptr
|
|
1053
|
+
!__bound_u64_map_tag_%dst_bound_ptr
|
|
1054
|
+
jmp L_BOUND_U64_MAP_DONE_%dst_bound_ptr
|
|
1055
|
+
|
|
1056
|
+
L_BOUND_U64_MAP_UNBOUNDED_%dst_bound_ptr:
|
|
1057
|
+
store %dst_bound_ptr+BoundU64_tag, BOUND_U64_UNBOUNDED as u64
|
|
1058
|
+
store %dst_bound_ptr+BoundU64_value, 0 as u64
|
|
1059
|
+
!__bound_u64_map_unbounded_%dst_bound_ptr
|
|
1060
|
+
!__bound_u64_map_tag_%dst_bound_ptr
|
|
1061
|
+
|
|
1062
|
+
L_BOUND_U64_MAP_DONE_%dst_bound_ptr:
|
|
1063
|
+
[END_MACRO]
|
|
1064
|
+
|
|
1065
|
+
[MACRO] BOUND_USIZE_UNBOUNDED_NEW %bound_ptr
|
|
1066
|
+
store %bound_ptr+BoundUsize_tag, BOUND_USIZE_UNBOUNDED as u64
|
|
1067
|
+
store %bound_ptr+BoundUsize_value, 0 as u64
|
|
1068
|
+
[END_MACRO]
|
|
1069
|
+
|
|
1070
|
+
[MACRO] BOUND_USIZE_INCLUDED_NEW %bound_ptr, %value
|
|
1071
|
+
store %bound_ptr+BoundUsize_tag, BOUND_USIZE_INCLUDED as u64
|
|
1072
|
+
store %bound_ptr+BoundUsize_value, %value as u64
|
|
1073
|
+
[END_MACRO]
|
|
1074
|
+
|
|
1075
|
+
[MACRO] BOUND_USIZE_EXCLUDED_NEW %bound_ptr, %value
|
|
1076
|
+
store %bound_ptr+BoundUsize_tag, BOUND_USIZE_EXCLUDED as u64
|
|
1077
|
+
store %bound_ptr+BoundUsize_value, %value as u64
|
|
1078
|
+
[END_MACRO]
|
|
1079
|
+
|
|
1080
|
+
[MACRO] BOUND_USIZE_TAG %out_tag, %bound_ptr
|
|
1081
|
+
%out_tag = load %bound_ptr+BoundUsize_tag as u64
|
|
1082
|
+
[END_MACRO]
|
|
1083
|
+
|
|
1084
|
+
[MACRO] BOUND_USIZE_VALUE %out_value, %bound_ptr
|
|
1085
|
+
%out_value = load %bound_ptr+BoundUsize_value as u64
|
|
1086
|
+
[END_MACRO]
|
|
1087
|
+
|
|
1088
|
+
[MACRO] BOUND_USIZE_AS_REF %dst_bound_ref_ptr, %src_bound_ptr
|
|
1089
|
+
EXPAND BOUND_U64_AS_REF %dst_bound_ref_ptr, %src_bound_ptr
|
|
1090
|
+
[END_MACRO]
|
|
1091
|
+
|
|
1092
|
+
[MACRO] BOUND_USIZE_AS_MUT %dst_bound_ref_ptr, %src_bound_ptr
|
|
1093
|
+
EXPAND BOUND_U64_AS_MUT %dst_bound_ref_ptr, %src_bound_ptr
|
|
1094
|
+
[END_MACRO]
|
|
1095
|
+
|
|
1096
|
+
[MACRO] BOUND_USIZE_REF_TAG %out_tag, %bound_ref_ptr
|
|
1097
|
+
%out_tag = load %bound_ref_ptr+BoundUsizeRef_tag as u64
|
|
1098
|
+
[END_MACRO]
|
|
1099
|
+
|
|
1100
|
+
[MACRO] BOUND_USIZE_REF_PTR %out_ptr, %bound_ref_ptr
|
|
1101
|
+
%out_ptr = load %bound_ref_ptr+BoundUsizeRef_ptr as ptr
|
|
1102
|
+
[END_MACRO]
|
|
1103
|
+
|
|
1104
|
+
[MACRO] BOUND_USIZE_REF_COPIED %dst_bound_ptr, %src_bound_ref_ptr
|
|
1105
|
+
EXPAND BOUND_U64_REF_COPIED %dst_bound_ptr, %src_bound_ref_ptr
|
|
1106
|
+
[END_MACRO]
|
|
1107
|
+
|
|
1108
|
+
[MACRO] BOUND_USIZE_REF_CLONED %dst_bound_ptr, %src_bound_ref_ptr
|
|
1109
|
+
EXPAND BOUND_U64_REF_CLONED %dst_bound_ptr, %src_bound_ref_ptr
|
|
1110
|
+
[END_MACRO]
|
|
1111
|
+
|
|
1112
|
+
[MACRO] BOUND_USIZE_IS_UNBOUNDED %out_bool, %bound_ptr
|
|
1113
|
+
__bound_usize_tag_%out_bool = load %bound_ptr+BoundUsize_tag as u64
|
|
1114
|
+
%out_bool = eq __bound_usize_tag_%out_bool, BOUND_USIZE_UNBOUNDED
|
|
1115
|
+
!__bound_usize_tag_%out_bool
|
|
1116
|
+
[END_MACRO]
|
|
1117
|
+
|
|
1118
|
+
[MACRO] BOUND_USIZE_IS_INCLUDED %out_bool, %bound_ptr
|
|
1119
|
+
__bound_usize_tag_%out_bool = load %bound_ptr+BoundUsize_tag as u64
|
|
1120
|
+
%out_bool = eq __bound_usize_tag_%out_bool, BOUND_USIZE_INCLUDED
|
|
1121
|
+
!__bound_usize_tag_%out_bool
|
|
1122
|
+
[END_MACRO]
|
|
1123
|
+
|
|
1124
|
+
[MACRO] BOUND_USIZE_IS_EXCLUDED %out_bool, %bound_ptr
|
|
1125
|
+
__bound_usize_tag_%out_bool = load %bound_ptr+BoundUsize_tag as u64
|
|
1126
|
+
%out_bool = eq __bound_usize_tag_%out_bool, BOUND_USIZE_EXCLUDED
|
|
1127
|
+
!__bound_usize_tag_%out_bool
|
|
1128
|
+
[END_MACRO]
|
|
1129
|
+
|
|
1130
|
+
[MACRO] BOUND_USIZE_CONTAINS_START %out_bool, %bound_ptr, %item
|
|
1131
|
+
__bound_usize_start_tag_%out_bool = load %bound_ptr+BoundUsize_tag as u64
|
|
1132
|
+
__bound_usize_start_unbounded_%out_bool = eq __bound_usize_start_tag_%out_bool, BOUND_USIZE_UNBOUNDED
|
|
1133
|
+
br __bound_usize_start_unbounded_%out_bool -> L_BOUND_USIZE_START_TRUE_%out_bool, L_BOUND_USIZE_START_CHECK_%out_bool
|
|
1134
|
+
|
|
1135
|
+
L_BOUND_USIZE_START_CHECK_%out_bool:
|
|
1136
|
+
__bound_usize_start_value_%out_bool = load %bound_ptr+BoundUsize_value as u64
|
|
1137
|
+
__bound_usize_start_included_%out_bool = eq __bound_usize_start_tag_%out_bool, BOUND_USIZE_INCLUDED
|
|
1138
|
+
br __bound_usize_start_included_%out_bool -> L_BOUND_USIZE_START_INCLUDED_%out_bool, L_BOUND_USIZE_START_EXCLUDED_%out_bool
|
|
1139
|
+
|
|
1140
|
+
L_BOUND_USIZE_START_INCLUDED_%out_bool:
|
|
1141
|
+
%out_bool = ule __bound_usize_start_value_%out_bool, %item
|
|
1142
|
+
!__bound_usize_start_included_%out_bool
|
|
1143
|
+
!__bound_usize_start_value_%out_bool
|
|
1144
|
+
!__bound_usize_start_unbounded_%out_bool
|
|
1145
|
+
!__bound_usize_start_tag_%out_bool
|
|
1146
|
+
jmp L_BOUND_USIZE_START_END_%out_bool
|
|
1147
|
+
|
|
1148
|
+
L_BOUND_USIZE_START_EXCLUDED_%out_bool:
|
|
1149
|
+
%out_bool = ult __bound_usize_start_value_%out_bool, %item
|
|
1150
|
+
!__bound_usize_start_included_%out_bool
|
|
1151
|
+
!__bound_usize_start_value_%out_bool
|
|
1152
|
+
!__bound_usize_start_unbounded_%out_bool
|
|
1153
|
+
!__bound_usize_start_tag_%out_bool
|
|
1154
|
+
jmp L_BOUND_USIZE_START_END_%out_bool
|
|
1155
|
+
|
|
1156
|
+
L_BOUND_USIZE_START_TRUE_%out_bool:
|
|
1157
|
+
%out_bool = add 0, 1
|
|
1158
|
+
!__bound_usize_start_unbounded_%out_bool
|
|
1159
|
+
!__bound_usize_start_tag_%out_bool
|
|
1160
|
+
|
|
1161
|
+
L_BOUND_USIZE_START_END_%out_bool:
|
|
1162
|
+
[END_MACRO]
|
|
1163
|
+
|
|
1164
|
+
[MACRO] BOUND_USIZE_CONTAINS_END %out_bool, %bound_ptr, %item
|
|
1165
|
+
__bound_usize_end_tag_%out_bool = load %bound_ptr+BoundUsize_tag as u64
|
|
1166
|
+
__bound_usize_end_unbounded_%out_bool = eq __bound_usize_end_tag_%out_bool, BOUND_USIZE_UNBOUNDED
|
|
1167
|
+
br __bound_usize_end_unbounded_%out_bool -> L_BOUND_USIZE_END_TRUE_%out_bool, L_BOUND_USIZE_END_CHECK_%out_bool
|
|
1168
|
+
|
|
1169
|
+
L_BOUND_USIZE_END_CHECK_%out_bool:
|
|
1170
|
+
__bound_usize_end_value_%out_bool = load %bound_ptr+BoundUsize_value as u64
|
|
1171
|
+
__bound_usize_end_included_%out_bool = eq __bound_usize_end_tag_%out_bool, BOUND_USIZE_INCLUDED
|
|
1172
|
+
br __bound_usize_end_included_%out_bool -> L_BOUND_USIZE_END_INCLUDED_%out_bool, L_BOUND_USIZE_END_EXCLUDED_%out_bool
|
|
1173
|
+
|
|
1174
|
+
L_BOUND_USIZE_END_INCLUDED_%out_bool:
|
|
1175
|
+
%out_bool = ule %item, __bound_usize_end_value_%out_bool
|
|
1176
|
+
!__bound_usize_end_included_%out_bool
|
|
1177
|
+
!__bound_usize_end_value_%out_bool
|
|
1178
|
+
!__bound_usize_end_unbounded_%out_bool
|
|
1179
|
+
!__bound_usize_end_tag_%out_bool
|
|
1180
|
+
jmp L_BOUND_USIZE_END_END_%out_bool
|
|
1181
|
+
|
|
1182
|
+
L_BOUND_USIZE_END_EXCLUDED_%out_bool:
|
|
1183
|
+
%out_bool = ult %item, __bound_usize_end_value_%out_bool
|
|
1184
|
+
!__bound_usize_end_included_%out_bool
|
|
1185
|
+
!__bound_usize_end_value_%out_bool
|
|
1186
|
+
!__bound_usize_end_unbounded_%out_bool
|
|
1187
|
+
!__bound_usize_end_tag_%out_bool
|
|
1188
|
+
jmp L_BOUND_USIZE_END_END_%out_bool
|
|
1189
|
+
|
|
1190
|
+
L_BOUND_USIZE_END_TRUE_%out_bool:
|
|
1191
|
+
%out_bool = add 0, 1
|
|
1192
|
+
!__bound_usize_end_unbounded_%out_bool
|
|
1193
|
+
!__bound_usize_end_tag_%out_bool
|
|
1194
|
+
|
|
1195
|
+
L_BOUND_USIZE_END_END_%out_bool:
|
|
1196
|
+
[END_MACRO]
|
|
1197
|
+
|
|
1198
|
+
[MACRO] BOUND_USIZE_RANGE_CONTAINS %out_bool, %start_bound_ptr, %end_bound_ptr, %item
|
|
1199
|
+
EXPAND BOUND_USIZE_CONTAINS_START __bound_usize_range_start_%out_bool, %start_bound_ptr, %item
|
|
1200
|
+
EXPAND BOUND_USIZE_CONTAINS_END __bound_usize_range_end_%out_bool, %end_bound_ptr, %item
|
|
1201
|
+
%out_bool = and __bound_usize_range_start_%out_bool, __bound_usize_range_end_%out_bool
|
|
1202
|
+
!__bound_usize_range_end_%out_bool
|
|
1203
|
+
!__bound_usize_range_start_%out_bool
|
|
1204
|
+
[END_MACRO]
|
|
1205
|
+
|
|
1206
|
+
[MACRO] BOUND_USIZE_RANGE_IS_EMPTY %out_bool, %start_bound_ptr, %end_bound_ptr
|
|
1207
|
+
__bound_usize_empty_start_tag_%out_bool = load %start_bound_ptr+BoundUsize_tag as u64
|
|
1208
|
+
__bound_usize_empty_end_tag_%out_bool = load %end_bound_ptr+BoundUsize_tag as u64
|
|
1209
|
+
__bound_usize_empty_start_unbounded_%out_bool = eq __bound_usize_empty_start_tag_%out_bool, BOUND_USIZE_UNBOUNDED
|
|
1210
|
+
__bound_usize_empty_end_unbounded_%out_bool = eq __bound_usize_empty_end_tag_%out_bool, BOUND_USIZE_UNBOUNDED
|
|
1211
|
+
__bound_usize_empty_unbounded_%out_bool = or __bound_usize_empty_start_unbounded_%out_bool, __bound_usize_empty_end_unbounded_%out_bool
|
|
1212
|
+
br __bound_usize_empty_unbounded_%out_bool -> L_BOUND_USIZE_EMPTY_FALSE_%out_bool, L_BOUND_USIZE_EMPTY_CHECK_%out_bool
|
|
1213
|
+
|
|
1214
|
+
L_BOUND_USIZE_EMPTY_CHECK_%out_bool:
|
|
1215
|
+
__bound_usize_empty_start_value_%out_bool = load %start_bound_ptr+BoundUsize_value as u64
|
|
1216
|
+
__bound_usize_empty_end_value_%out_bool = load %end_bound_ptr+BoundUsize_value as u64
|
|
1217
|
+
__bound_usize_empty_start_included_%out_bool = eq __bound_usize_empty_start_tag_%out_bool, BOUND_USIZE_INCLUDED
|
|
1218
|
+
__bound_usize_empty_end_included_%out_bool = eq __bound_usize_empty_end_tag_%out_bool, BOUND_USIZE_INCLUDED
|
|
1219
|
+
__bound_usize_empty_both_included_%out_bool = and __bound_usize_empty_start_included_%out_bool, __bound_usize_empty_end_included_%out_bool
|
|
1220
|
+
br __bound_usize_empty_both_included_%out_bool -> L_BOUND_USIZE_EMPTY_INCLUDED_%out_bool, L_BOUND_USIZE_EMPTY_STRICT_%out_bool
|
|
1221
|
+
|
|
1222
|
+
L_BOUND_USIZE_EMPTY_INCLUDED_%out_bool:
|
|
1223
|
+
__bound_usize_empty_valid_inc_%out_bool = ule __bound_usize_empty_start_value_%out_bool, __bound_usize_empty_end_value_%out_bool
|
|
1224
|
+
%out_bool = eq __bound_usize_empty_valid_inc_%out_bool, 0
|
|
1225
|
+
!__bound_usize_empty_valid_inc_%out_bool
|
|
1226
|
+
!__bound_usize_empty_both_included_%out_bool
|
|
1227
|
+
!__bound_usize_empty_end_included_%out_bool
|
|
1228
|
+
!__bound_usize_empty_start_included_%out_bool
|
|
1229
|
+
!__bound_usize_empty_end_value_%out_bool
|
|
1230
|
+
!__bound_usize_empty_start_value_%out_bool
|
|
1231
|
+
!__bound_usize_empty_unbounded_%out_bool
|
|
1232
|
+
!__bound_usize_empty_end_unbounded_%out_bool
|
|
1233
|
+
!__bound_usize_empty_start_unbounded_%out_bool
|
|
1234
|
+
!__bound_usize_empty_end_tag_%out_bool
|
|
1235
|
+
!__bound_usize_empty_start_tag_%out_bool
|
|
1236
|
+
jmp L_BOUND_USIZE_EMPTY_DONE_%out_bool
|
|
1237
|
+
|
|
1238
|
+
L_BOUND_USIZE_EMPTY_STRICT_%out_bool:
|
|
1239
|
+
__bound_usize_empty_valid_strict_%out_bool = ult __bound_usize_empty_start_value_%out_bool, __bound_usize_empty_end_value_%out_bool
|
|
1240
|
+
%out_bool = eq __bound_usize_empty_valid_strict_%out_bool, 0
|
|
1241
|
+
!__bound_usize_empty_valid_strict_%out_bool
|
|
1242
|
+
!__bound_usize_empty_both_included_%out_bool
|
|
1243
|
+
!__bound_usize_empty_end_included_%out_bool
|
|
1244
|
+
!__bound_usize_empty_start_included_%out_bool
|
|
1245
|
+
!__bound_usize_empty_end_value_%out_bool
|
|
1246
|
+
!__bound_usize_empty_start_value_%out_bool
|
|
1247
|
+
!__bound_usize_empty_unbounded_%out_bool
|
|
1248
|
+
!__bound_usize_empty_end_unbounded_%out_bool
|
|
1249
|
+
!__bound_usize_empty_start_unbounded_%out_bool
|
|
1250
|
+
!__bound_usize_empty_end_tag_%out_bool
|
|
1251
|
+
!__bound_usize_empty_start_tag_%out_bool
|
|
1252
|
+
jmp L_BOUND_USIZE_EMPTY_DONE_%out_bool
|
|
1253
|
+
|
|
1254
|
+
L_BOUND_USIZE_EMPTY_FALSE_%out_bool:
|
|
1255
|
+
%out_bool = add 0, 0
|
|
1256
|
+
!__bound_usize_empty_unbounded_%out_bool
|
|
1257
|
+
!__bound_usize_empty_end_unbounded_%out_bool
|
|
1258
|
+
!__bound_usize_empty_start_unbounded_%out_bool
|
|
1259
|
+
!__bound_usize_empty_end_tag_%out_bool
|
|
1260
|
+
!__bound_usize_empty_start_tag_%out_bool
|
|
1261
|
+
|
|
1262
|
+
L_BOUND_USIZE_EMPTY_DONE_%out_bool:
|
|
1263
|
+
[END_MACRO]
|
|
1264
|
+
|
|
1265
|
+
[MACRO] BOUND_USIZE_DEFAULT %bound_ptr
|
|
1266
|
+
EXPAND BOUND_USIZE_UNBOUNDED_NEW %bound_ptr
|
|
1267
|
+
[END_MACRO]
|
|
1268
|
+
|
|
1269
|
+
[MACRO] BOUND_USIZE_COPY %dst_bound_ptr, %src_bound_ptr
|
|
1270
|
+
__bound_usize_copy_tag_%dst_bound_ptr = load %src_bound_ptr+BoundUsize_tag as u64
|
|
1271
|
+
__bound_usize_copy_value_%dst_bound_ptr = load %src_bound_ptr+BoundUsize_value as u64
|
|
1272
|
+
store %dst_bound_ptr+BoundUsize_tag, __bound_usize_copy_tag_%dst_bound_ptr as u64
|
|
1273
|
+
store %dst_bound_ptr+BoundUsize_value, __bound_usize_copy_value_%dst_bound_ptr as u64
|
|
1274
|
+
!__bound_usize_copy_value_%dst_bound_ptr
|
|
1275
|
+
!__bound_usize_copy_tag_%dst_bound_ptr
|
|
1276
|
+
[END_MACRO]
|
|
1277
|
+
|
|
1278
|
+
[MACRO] BOUND_USIZE_COPIED %dst_bound_ptr, %src_bound_ptr
|
|
1279
|
+
EXPAND BOUND_USIZE_COPY %dst_bound_ptr, %src_bound_ptr
|
|
1280
|
+
[END_MACRO]
|
|
1281
|
+
|
|
1282
|
+
[MACRO] BOUND_USIZE_CLONED %dst_bound_ptr, %src_bound_ptr
|
|
1283
|
+
EXPAND BOUND_USIZE_COPY %dst_bound_ptr, %src_bound_ptr
|
|
1284
|
+
[END_MACRO]
|
|
1285
|
+
|
|
1286
|
+
[MACRO] BOUND_USIZE_MAP %dst_bound_ptr, %src_bound_ptr, %map_fn
|
|
1287
|
+
__bound_usize_map_tag_%dst_bound_ptr = load %src_bound_ptr+BoundUsize_tag as u64
|
|
1288
|
+
__bound_usize_map_unbounded_%dst_bound_ptr = eq __bound_usize_map_tag_%dst_bound_ptr, BOUND_USIZE_UNBOUNDED
|
|
1289
|
+
br __bound_usize_map_unbounded_%dst_bound_ptr -> L_BOUND_USIZE_MAP_UNBOUNDED_%dst_bound_ptr, L_BOUND_USIZE_MAP_VALUE_%dst_bound_ptr
|
|
1290
|
+
|
|
1291
|
+
L_BOUND_USIZE_MAP_VALUE_%dst_bound_ptr:
|
|
1292
|
+
__bound_usize_map_value_%dst_bound_ptr = load %src_bound_ptr+BoundUsize_value as u64
|
|
1293
|
+
__bound_usize_map_mapped_%dst_bound_ptr = call %map_fn(__bound_usize_map_value_%dst_bound_ptr)
|
|
1294
|
+
store %dst_bound_ptr+BoundUsize_tag, __bound_usize_map_tag_%dst_bound_ptr as u64
|
|
1295
|
+
store %dst_bound_ptr+BoundUsize_value, __bound_usize_map_mapped_%dst_bound_ptr as u64
|
|
1296
|
+
!__bound_usize_map_mapped_%dst_bound_ptr
|
|
1297
|
+
!__bound_usize_map_value_%dst_bound_ptr
|
|
1298
|
+
!__bound_usize_map_unbounded_%dst_bound_ptr
|
|
1299
|
+
!__bound_usize_map_tag_%dst_bound_ptr
|
|
1300
|
+
jmp L_BOUND_USIZE_MAP_DONE_%dst_bound_ptr
|
|
1301
|
+
|
|
1302
|
+
L_BOUND_USIZE_MAP_UNBOUNDED_%dst_bound_ptr:
|
|
1303
|
+
store %dst_bound_ptr+BoundUsize_tag, BOUND_USIZE_UNBOUNDED as u64
|
|
1304
|
+
store %dst_bound_ptr+BoundUsize_value, 0 as u64
|
|
1305
|
+
!__bound_usize_map_unbounded_%dst_bound_ptr
|
|
1306
|
+
!__bound_usize_map_tag_%dst_bound_ptr
|
|
1307
|
+
|
|
1308
|
+
L_BOUND_USIZE_MAP_DONE_%dst_bound_ptr:
|
|
1309
|
+
[END_MACRO]
|
|
1310
|
+
|
|
1311
|
+
[MACRO] RANGE_FULL_START_BOUND_U64 %bound_ptr
|
|
1312
|
+
EXPAND BOUND_U64_UNBOUNDED_NEW %bound_ptr
|
|
1313
|
+
[END_MACRO]
|
|
1314
|
+
|
|
1315
|
+
// Rust method-name alias over RANGE_FULL_START_BOUND_U64.
|
|
1316
|
+
[MACRO] RANGE_FULL_START_BOUND %bound_ptr
|
|
1317
|
+
EXPAND RANGE_FULL_START_BOUND_U64 %bound_ptr
|
|
1318
|
+
[END_MACRO]
|
|
1319
|
+
|
|
1320
|
+
[MACRO] RANGE_FULL_END_BOUND_U64 %bound_ptr
|
|
1321
|
+
EXPAND BOUND_U64_UNBOUNDED_NEW %bound_ptr
|
|
1322
|
+
[END_MACRO]
|
|
1323
|
+
|
|
1324
|
+
// Rust method-name alias over RANGE_FULL_END_BOUND_U64.
|
|
1325
|
+
[MACRO] RANGE_FULL_END_BOUND %bound_ptr
|
|
1326
|
+
EXPAND RANGE_FULL_END_BOUND_U64 %bound_ptr
|
|
1327
|
+
[END_MACRO]
|
|
1328
|
+
|
|
1329
|
+
[MACRO] RANGE_FULL_INTO_BOUNDS_U64 %start_bound_ptr, %end_bound_ptr
|
|
1330
|
+
EXPAND BOUND_U64_UNBOUNDED_NEW %start_bound_ptr
|
|
1331
|
+
EXPAND BOUND_U64_UNBOUNDED_NEW %end_bound_ptr
|
|
1332
|
+
[END_MACRO]
|
|
1333
|
+
|
|
1334
|
+
// Rust method-name alias over RANGE_FULL_INTO_BOUNDS_U64.
|
|
1335
|
+
[MACRO] RANGE_FULL_INTO_BOUNDS %start_bound_ptr, %end_bound_ptr
|
|
1336
|
+
EXPAND RANGE_FULL_INTO_BOUNDS_U64 %start_bound_ptr, %end_bound_ptr
|
|
1337
|
+
[END_MACRO]
|
|
1338
|
+
|
|
1339
|
+
[MACRO] RANGE_U64_START_BOUND %bound_ptr, %range_ptr
|
|
1340
|
+
__range_bound_start_%bound_ptr = load %range_ptr+RangeU64_start as u64
|
|
1341
|
+
EXPAND BOUND_U64_INCLUDED_NEW %bound_ptr, __range_bound_start_%bound_ptr
|
|
1342
|
+
!__range_bound_start_%bound_ptr
|
|
1343
|
+
[END_MACRO]
|
|
1344
|
+
|
|
1345
|
+
[MACRO] RANGE_U64_END_BOUND %bound_ptr, %range_ptr
|
|
1346
|
+
__range_bound_end_%bound_ptr = load %range_ptr+RangeU64_end as u64
|
|
1347
|
+
EXPAND BOUND_U64_EXCLUDED_NEW %bound_ptr, __range_bound_end_%bound_ptr
|
|
1348
|
+
!__range_bound_end_%bound_ptr
|
|
1349
|
+
[END_MACRO]
|
|
1350
|
+
|
|
1351
|
+
[MACRO] RANGE_U64_INTO_BOUNDS %start_bound_ptr, %end_bound_ptr, %range_ptr
|
|
1352
|
+
EXPAND RANGE_U64_START_BOUND %start_bound_ptr, %range_ptr
|
|
1353
|
+
EXPAND RANGE_U64_END_BOUND %end_bound_ptr, %range_ptr
|
|
1354
|
+
[END_MACRO]
|
|
1355
|
+
|
|
1356
|
+
[MACRO] RANGE_FROM_U64_START_BOUND %bound_ptr, %range_ptr
|
|
1357
|
+
__range_from_bound_start_%bound_ptr = load %range_ptr+RangeFromU64_start as u64
|
|
1358
|
+
EXPAND BOUND_U64_INCLUDED_NEW %bound_ptr, __range_from_bound_start_%bound_ptr
|
|
1359
|
+
!__range_from_bound_start_%bound_ptr
|
|
1360
|
+
[END_MACRO]
|
|
1361
|
+
|
|
1362
|
+
[MACRO] RANGE_FROM_U64_END_BOUND %bound_ptr, %range_ptr
|
|
1363
|
+
EXPAND BOUND_U64_UNBOUNDED_NEW %bound_ptr
|
|
1364
|
+
[END_MACRO]
|
|
1365
|
+
|
|
1366
|
+
[MACRO] RANGE_FROM_U64_INTO_BOUNDS %start_bound_ptr, %end_bound_ptr, %range_ptr
|
|
1367
|
+
EXPAND RANGE_FROM_U64_START_BOUND %start_bound_ptr, %range_ptr
|
|
1368
|
+
EXPAND RANGE_FROM_U64_END_BOUND %end_bound_ptr, %range_ptr
|
|
1369
|
+
[END_MACRO]
|
|
1370
|
+
|
|
1371
|
+
[MACRO] RANGE_TO_U64_START_BOUND %bound_ptr, %range_ptr
|
|
1372
|
+
EXPAND BOUND_U64_UNBOUNDED_NEW %bound_ptr
|
|
1373
|
+
[END_MACRO]
|
|
1374
|
+
|
|
1375
|
+
[MACRO] RANGE_TO_U64_END_BOUND %bound_ptr, %range_ptr
|
|
1376
|
+
__range_to_bound_end_%bound_ptr = load %range_ptr+RangeToU64_end as u64
|
|
1377
|
+
EXPAND BOUND_U64_EXCLUDED_NEW %bound_ptr, __range_to_bound_end_%bound_ptr
|
|
1378
|
+
!__range_to_bound_end_%bound_ptr
|
|
1379
|
+
[END_MACRO]
|
|
1380
|
+
|
|
1381
|
+
[MACRO] RANGE_TO_U64_INTO_BOUNDS %start_bound_ptr, %end_bound_ptr, %range_ptr
|
|
1382
|
+
EXPAND RANGE_TO_U64_START_BOUND %start_bound_ptr, %range_ptr
|
|
1383
|
+
EXPAND RANGE_TO_U64_END_BOUND %end_bound_ptr, %range_ptr
|
|
1384
|
+
[END_MACRO]
|
|
1385
|
+
|
|
1386
|
+
[MACRO] RANGE_INCLUSIVE_U64_START_BOUND %bound_ptr, %range_ptr
|
|
1387
|
+
__range_inc_bound_start_%bound_ptr = load %range_ptr+RangeInclusiveU64_start as u64
|
|
1388
|
+
EXPAND BOUND_U64_INCLUDED_NEW %bound_ptr, __range_inc_bound_start_%bound_ptr
|
|
1389
|
+
!__range_inc_bound_start_%bound_ptr
|
|
1390
|
+
[END_MACRO]
|
|
1391
|
+
|
|
1392
|
+
[MACRO] RANGE_INCLUSIVE_U64_END_BOUND %bound_ptr, %range_ptr
|
|
1393
|
+
__range_inc_bound_end_%bound_ptr = load %range_ptr+RangeInclusiveU64_end as u64
|
|
1394
|
+
__range_inc_bound_exhausted_%bound_ptr = load %range_ptr+RangeInclusiveU64_exhausted as u64
|
|
1395
|
+
br __range_inc_bound_exhausted_%bound_ptr -> L_RANGE_INC_BOUND_END_EXCLUDED_%bound_ptr, L_RANGE_INC_BOUND_END_INCLUDED_%bound_ptr
|
|
1396
|
+
|
|
1397
|
+
L_RANGE_INC_BOUND_END_INCLUDED_%bound_ptr:
|
|
1398
|
+
EXPAND BOUND_U64_INCLUDED_NEW %bound_ptr, __range_inc_bound_end_%bound_ptr
|
|
1399
|
+
!__range_inc_bound_exhausted_%bound_ptr
|
|
1400
|
+
!__range_inc_bound_end_%bound_ptr
|
|
1401
|
+
jmp L_RANGE_INC_BOUND_END_DONE_%bound_ptr
|
|
1402
|
+
|
|
1403
|
+
L_RANGE_INC_BOUND_END_EXCLUDED_%bound_ptr:
|
|
1404
|
+
EXPAND BOUND_U64_EXCLUDED_NEW %bound_ptr, __range_inc_bound_end_%bound_ptr
|
|
1405
|
+
!__range_inc_bound_exhausted_%bound_ptr
|
|
1406
|
+
!__range_inc_bound_end_%bound_ptr
|
|
1407
|
+
|
|
1408
|
+
L_RANGE_INC_BOUND_END_DONE_%bound_ptr:
|
|
1409
|
+
[END_MACRO]
|
|
1410
|
+
|
|
1411
|
+
[MACRO] RANGE_INCLUSIVE_U64_INTO_BOUNDS %start_bound_ptr, %end_bound_ptr, %range_ptr
|
|
1412
|
+
EXPAND RANGE_INCLUSIVE_U64_START_BOUND %start_bound_ptr, %range_ptr
|
|
1413
|
+
EXPAND RANGE_INCLUSIVE_U64_END_BOUND %end_bound_ptr, %range_ptr
|
|
1414
|
+
[END_MACRO]
|
|
1415
|
+
|
|
1416
|
+
[MACRO] RANGE_TO_INCLUSIVE_U64_START_BOUND %bound_ptr, %range_ptr
|
|
1417
|
+
EXPAND BOUND_U64_UNBOUNDED_NEW %bound_ptr
|
|
1418
|
+
[END_MACRO]
|
|
1419
|
+
|
|
1420
|
+
[MACRO] RANGE_TO_INCLUSIVE_U64_END_BOUND %bound_ptr, %range_ptr
|
|
1421
|
+
__range_to_inc_bound_end_%bound_ptr = load %range_ptr+RangeToInclusiveU64_end as u64
|
|
1422
|
+
EXPAND BOUND_U64_INCLUDED_NEW %bound_ptr, __range_to_inc_bound_end_%bound_ptr
|
|
1423
|
+
!__range_to_inc_bound_end_%bound_ptr
|
|
1424
|
+
[END_MACRO]
|
|
1425
|
+
|
|
1426
|
+
[MACRO] RANGE_TO_INCLUSIVE_U64_INTO_BOUNDS %start_bound_ptr, %end_bound_ptr, %range_ptr
|
|
1427
|
+
EXPAND RANGE_TO_INCLUSIVE_U64_START_BOUND %start_bound_ptr, %range_ptr
|
|
1428
|
+
EXPAND RANGE_TO_INCLUSIVE_U64_END_BOUND %end_bound_ptr, %range_ptr
|
|
1429
|
+
[END_MACRO]
|
|
1430
|
+
|
|
1431
|
+
[MACRO] RANGE_FULL_START_BOUND_USIZE %bound_ptr
|
|
1432
|
+
EXPAND BOUND_USIZE_UNBOUNDED_NEW %bound_ptr
|
|
1433
|
+
[END_MACRO]
|
|
1434
|
+
|
|
1435
|
+
[MACRO] RANGE_FULL_END_BOUND_USIZE %bound_ptr
|
|
1436
|
+
EXPAND BOUND_USIZE_UNBOUNDED_NEW %bound_ptr
|
|
1437
|
+
[END_MACRO]
|
|
1438
|
+
|
|
1439
|
+
[MACRO] RANGE_FULL_INTO_BOUNDS_USIZE %start_bound_ptr, %end_bound_ptr
|
|
1440
|
+
EXPAND BOUND_USIZE_UNBOUNDED_NEW %start_bound_ptr
|
|
1441
|
+
EXPAND BOUND_USIZE_UNBOUNDED_NEW %end_bound_ptr
|
|
1442
|
+
[END_MACRO]
|
|
1443
|
+
|
|
1444
|
+
[MACRO] RANGE_USIZE_START_BOUND %bound_ptr, %range_ptr
|
|
1445
|
+
__range_usize_bound_start_%bound_ptr = load %range_ptr+RangeUsize_start as u64
|
|
1446
|
+
EXPAND BOUND_USIZE_INCLUDED_NEW %bound_ptr, __range_usize_bound_start_%bound_ptr
|
|
1447
|
+
!__range_usize_bound_start_%bound_ptr
|
|
1448
|
+
[END_MACRO]
|
|
1449
|
+
|
|
1450
|
+
[MACRO] RANGE_USIZE_END_BOUND %bound_ptr, %range_ptr
|
|
1451
|
+
__range_usize_bound_end_%bound_ptr = load %range_ptr+RangeUsize_end as u64
|
|
1452
|
+
EXPAND BOUND_USIZE_EXCLUDED_NEW %bound_ptr, __range_usize_bound_end_%bound_ptr
|
|
1453
|
+
!__range_usize_bound_end_%bound_ptr
|
|
1454
|
+
[END_MACRO]
|
|
1455
|
+
|
|
1456
|
+
[MACRO] RANGE_USIZE_INTO_BOUNDS %start_bound_ptr, %end_bound_ptr, %range_ptr
|
|
1457
|
+
EXPAND RANGE_USIZE_START_BOUND %start_bound_ptr, %range_ptr
|
|
1458
|
+
EXPAND RANGE_USIZE_END_BOUND %end_bound_ptr, %range_ptr
|
|
1459
|
+
[END_MACRO]
|
|
1460
|
+
|
|
1461
|
+
[MACRO] RANGE_FROM_USIZE_START_BOUND %bound_ptr, %range_ptr
|
|
1462
|
+
__range_from_usize_bound_start_%bound_ptr = load %range_ptr+RangeFromUsize_start as u64
|
|
1463
|
+
EXPAND BOUND_USIZE_INCLUDED_NEW %bound_ptr, __range_from_usize_bound_start_%bound_ptr
|
|
1464
|
+
!__range_from_usize_bound_start_%bound_ptr
|
|
1465
|
+
[END_MACRO]
|
|
1466
|
+
|
|
1467
|
+
[MACRO] RANGE_FROM_USIZE_END_BOUND %bound_ptr, %range_ptr
|
|
1468
|
+
EXPAND BOUND_USIZE_UNBOUNDED_NEW %bound_ptr
|
|
1469
|
+
[END_MACRO]
|
|
1470
|
+
|
|
1471
|
+
[MACRO] RANGE_FROM_USIZE_INTO_BOUNDS %start_bound_ptr, %end_bound_ptr, %range_ptr
|
|
1472
|
+
EXPAND RANGE_FROM_USIZE_START_BOUND %start_bound_ptr, %range_ptr
|
|
1473
|
+
EXPAND RANGE_FROM_USIZE_END_BOUND %end_bound_ptr, %range_ptr
|
|
1474
|
+
[END_MACRO]
|
|
1475
|
+
|
|
1476
|
+
[MACRO] RANGE_TO_USIZE_START_BOUND %bound_ptr, %range_ptr
|
|
1477
|
+
EXPAND BOUND_USIZE_UNBOUNDED_NEW %bound_ptr
|
|
1478
|
+
[END_MACRO]
|
|
1479
|
+
|
|
1480
|
+
[MACRO] RANGE_TO_USIZE_END_BOUND %bound_ptr, %range_ptr
|
|
1481
|
+
__range_to_usize_bound_end_%bound_ptr = load %range_ptr+RangeToUsize_end as u64
|
|
1482
|
+
EXPAND BOUND_USIZE_EXCLUDED_NEW %bound_ptr, __range_to_usize_bound_end_%bound_ptr
|
|
1483
|
+
!__range_to_usize_bound_end_%bound_ptr
|
|
1484
|
+
[END_MACRO]
|
|
1485
|
+
|
|
1486
|
+
[MACRO] RANGE_TO_USIZE_INTO_BOUNDS %start_bound_ptr, %end_bound_ptr, %range_ptr
|
|
1487
|
+
EXPAND RANGE_TO_USIZE_START_BOUND %start_bound_ptr, %range_ptr
|
|
1488
|
+
EXPAND RANGE_TO_USIZE_END_BOUND %end_bound_ptr, %range_ptr
|
|
1489
|
+
[END_MACRO]
|
|
1490
|
+
|
|
1491
|
+
[MACRO] RANGE_INCLUSIVE_USIZE_START_BOUND %bound_ptr, %range_ptr
|
|
1492
|
+
__range_inc_usize_bound_start_%bound_ptr = load %range_ptr+RangeInclusiveUsize_start as u64
|
|
1493
|
+
EXPAND BOUND_USIZE_INCLUDED_NEW %bound_ptr, __range_inc_usize_bound_start_%bound_ptr
|
|
1494
|
+
!__range_inc_usize_bound_start_%bound_ptr
|
|
1495
|
+
[END_MACRO]
|
|
1496
|
+
|
|
1497
|
+
[MACRO] RANGE_INCLUSIVE_USIZE_END_BOUND %bound_ptr, %range_ptr
|
|
1498
|
+
__range_inc_usize_bound_end_%bound_ptr = load %range_ptr+RangeInclusiveUsize_end as u64
|
|
1499
|
+
__range_inc_usize_bound_exhausted_%bound_ptr = load %range_ptr+RangeInclusiveUsize_exhausted as u64
|
|
1500
|
+
br __range_inc_usize_bound_exhausted_%bound_ptr -> L_RANGE_INC_USIZE_BOUND_END_EXCLUDED_%bound_ptr, L_RANGE_INC_USIZE_BOUND_END_INCLUDED_%bound_ptr
|
|
1501
|
+
|
|
1502
|
+
L_RANGE_INC_USIZE_BOUND_END_INCLUDED_%bound_ptr:
|
|
1503
|
+
EXPAND BOUND_USIZE_INCLUDED_NEW %bound_ptr, __range_inc_usize_bound_end_%bound_ptr
|
|
1504
|
+
!__range_inc_usize_bound_exhausted_%bound_ptr
|
|
1505
|
+
!__range_inc_usize_bound_end_%bound_ptr
|
|
1506
|
+
jmp L_RANGE_INC_USIZE_BOUND_END_DONE_%bound_ptr
|
|
1507
|
+
|
|
1508
|
+
L_RANGE_INC_USIZE_BOUND_END_EXCLUDED_%bound_ptr:
|
|
1509
|
+
EXPAND BOUND_USIZE_EXCLUDED_NEW %bound_ptr, __range_inc_usize_bound_end_%bound_ptr
|
|
1510
|
+
!__range_inc_usize_bound_exhausted_%bound_ptr
|
|
1511
|
+
!__range_inc_usize_bound_end_%bound_ptr
|
|
1512
|
+
|
|
1513
|
+
L_RANGE_INC_USIZE_BOUND_END_DONE_%bound_ptr:
|
|
1514
|
+
[END_MACRO]
|
|
1515
|
+
|
|
1516
|
+
[MACRO] RANGE_INCLUSIVE_USIZE_INTO_BOUNDS %start_bound_ptr, %end_bound_ptr, %range_ptr
|
|
1517
|
+
EXPAND RANGE_INCLUSIVE_USIZE_START_BOUND %start_bound_ptr, %range_ptr
|
|
1518
|
+
EXPAND RANGE_INCLUSIVE_USIZE_END_BOUND %end_bound_ptr, %range_ptr
|
|
1519
|
+
[END_MACRO]
|
|
1520
|
+
|
|
1521
|
+
[MACRO] RANGE_TO_INCLUSIVE_USIZE_START_BOUND %bound_ptr, %range_ptr
|
|
1522
|
+
EXPAND BOUND_USIZE_UNBOUNDED_NEW %bound_ptr
|
|
1523
|
+
[END_MACRO]
|
|
1524
|
+
|
|
1525
|
+
[MACRO] RANGE_TO_INCLUSIVE_USIZE_END_BOUND %bound_ptr, %range_ptr
|
|
1526
|
+
__range_to_inc_usize_bound_end_%bound_ptr = load %range_ptr+RangeToInclusiveUsize_end as u64
|
|
1527
|
+
EXPAND BOUND_USIZE_INCLUDED_NEW %bound_ptr, __range_to_inc_usize_bound_end_%bound_ptr
|
|
1528
|
+
!__range_to_inc_usize_bound_end_%bound_ptr
|
|
1529
|
+
[END_MACRO]
|
|
1530
|
+
|
|
1531
|
+
[MACRO] RANGE_TO_INCLUSIVE_USIZE_INTO_BOUNDS %start_bound_ptr, %end_bound_ptr, %range_ptr
|
|
1532
|
+
EXPAND RANGE_TO_INCLUSIVE_USIZE_START_BOUND %start_bound_ptr, %range_ptr
|
|
1533
|
+
EXPAND RANGE_TO_INCLUSIVE_USIZE_END_BOUND %end_bound_ptr, %range_ptr
|
|
1534
|
+
[END_MACRO]
|
|
1535
|
+
|
|
1536
|
+
[MACRO] BOUND_U64_INTERSECT_START %dst_bound_ptr, %left_bound_ptr, %right_bound_ptr
|
|
1537
|
+
__bound_u64_intersect_start_left_tag_%dst_bound_ptr = load %left_bound_ptr+BoundU64_tag as u64
|
|
1538
|
+
__bound_u64_intersect_start_right_tag_%dst_bound_ptr = load %right_bound_ptr+BoundU64_tag as u64
|
|
1539
|
+
__bound_u64_intersect_start_left_unbounded_%dst_bound_ptr = eq __bound_u64_intersect_start_left_tag_%dst_bound_ptr, BOUND_U64_UNBOUNDED
|
|
1540
|
+
br __bound_u64_intersect_start_left_unbounded_%dst_bound_ptr -> L_BOUND_U64_INTERSECT_START_COPY_RIGHT_UNBOUNDED_%dst_bound_ptr, L_BOUND_U64_INTERSECT_START_CHECK_RIGHT_%dst_bound_ptr
|
|
1541
|
+
|
|
1542
|
+
L_BOUND_U64_INTERSECT_START_CHECK_RIGHT_%dst_bound_ptr:
|
|
1543
|
+
__bound_u64_intersect_start_right_unbounded_%dst_bound_ptr = eq __bound_u64_intersect_start_right_tag_%dst_bound_ptr, BOUND_U64_UNBOUNDED
|
|
1544
|
+
br __bound_u64_intersect_start_right_unbounded_%dst_bound_ptr -> L_BOUND_U64_INTERSECT_START_COPY_LEFT_UNBOUNDED_%dst_bound_ptr, L_BOUND_U64_INTERSECT_START_BOUNDED_%dst_bound_ptr
|
|
1545
|
+
|
|
1546
|
+
L_BOUND_U64_INTERSECT_START_BOUNDED_%dst_bound_ptr:
|
|
1547
|
+
__bound_u64_intersect_start_left_value_%dst_bound_ptr = load %left_bound_ptr+BoundU64_value as u64
|
|
1548
|
+
__bound_u64_intersect_start_right_value_%dst_bound_ptr = load %right_bound_ptr+BoundU64_value as u64
|
|
1549
|
+
__bound_u64_intersect_start_left_gt_%dst_bound_ptr = ugt __bound_u64_intersect_start_left_value_%dst_bound_ptr, __bound_u64_intersect_start_right_value_%dst_bound_ptr
|
|
1550
|
+
__bound_u64_intersect_start_values_eq_%dst_bound_ptr = eq __bound_u64_intersect_start_left_value_%dst_bound_ptr, __bound_u64_intersect_start_right_value_%dst_bound_ptr
|
|
1551
|
+
__bound_u64_intersect_start_left_excluded_%dst_bound_ptr = eq __bound_u64_intersect_start_left_tag_%dst_bound_ptr, BOUND_U64_EXCLUDED
|
|
1552
|
+
__bound_u64_intersect_start_right_included_%dst_bound_ptr = eq __bound_u64_intersect_start_right_tag_%dst_bound_ptr, BOUND_U64_INCLUDED
|
|
1553
|
+
__bound_u64_intersect_start_tie_excluded_%dst_bound_ptr = and __bound_u64_intersect_start_left_excluded_%dst_bound_ptr, __bound_u64_intersect_start_right_included_%dst_bound_ptr
|
|
1554
|
+
__bound_u64_intersect_start_tie_left_%dst_bound_ptr = and __bound_u64_intersect_start_values_eq_%dst_bound_ptr, __bound_u64_intersect_start_tie_excluded_%dst_bound_ptr
|
|
1555
|
+
__bound_u64_intersect_start_choose_left_%dst_bound_ptr = or __bound_u64_intersect_start_left_gt_%dst_bound_ptr, __bound_u64_intersect_start_tie_left_%dst_bound_ptr
|
|
1556
|
+
br __bound_u64_intersect_start_choose_left_%dst_bound_ptr -> L_BOUND_U64_INTERSECT_START_COPY_LEFT_BOUNDED_%dst_bound_ptr, L_BOUND_U64_INTERSECT_START_COPY_RIGHT_BOUNDED_%dst_bound_ptr
|
|
1557
|
+
|
|
1558
|
+
L_BOUND_U64_INTERSECT_START_COPY_LEFT_BOUNDED_%dst_bound_ptr:
|
|
1559
|
+
EXPAND BOUND_U64_COPY %dst_bound_ptr, %left_bound_ptr
|
|
1560
|
+
!__bound_u64_intersect_start_choose_left_%dst_bound_ptr
|
|
1561
|
+
!__bound_u64_intersect_start_tie_left_%dst_bound_ptr
|
|
1562
|
+
!__bound_u64_intersect_start_tie_excluded_%dst_bound_ptr
|
|
1563
|
+
!__bound_u64_intersect_start_right_included_%dst_bound_ptr
|
|
1564
|
+
!__bound_u64_intersect_start_left_excluded_%dst_bound_ptr
|
|
1565
|
+
!__bound_u64_intersect_start_values_eq_%dst_bound_ptr
|
|
1566
|
+
!__bound_u64_intersect_start_left_gt_%dst_bound_ptr
|
|
1567
|
+
!__bound_u64_intersect_start_right_value_%dst_bound_ptr
|
|
1568
|
+
!__bound_u64_intersect_start_left_value_%dst_bound_ptr
|
|
1569
|
+
!__bound_u64_intersect_start_right_unbounded_%dst_bound_ptr
|
|
1570
|
+
!__bound_u64_intersect_start_left_unbounded_%dst_bound_ptr
|
|
1571
|
+
!__bound_u64_intersect_start_right_tag_%dst_bound_ptr
|
|
1572
|
+
!__bound_u64_intersect_start_left_tag_%dst_bound_ptr
|
|
1573
|
+
jmp L_BOUND_U64_INTERSECT_START_DONE_%dst_bound_ptr
|
|
1574
|
+
|
|
1575
|
+
L_BOUND_U64_INTERSECT_START_COPY_RIGHT_BOUNDED_%dst_bound_ptr:
|
|
1576
|
+
EXPAND BOUND_U64_COPY %dst_bound_ptr, %right_bound_ptr
|
|
1577
|
+
!__bound_u64_intersect_start_choose_left_%dst_bound_ptr
|
|
1578
|
+
!__bound_u64_intersect_start_tie_left_%dst_bound_ptr
|
|
1579
|
+
!__bound_u64_intersect_start_tie_excluded_%dst_bound_ptr
|
|
1580
|
+
!__bound_u64_intersect_start_right_included_%dst_bound_ptr
|
|
1581
|
+
!__bound_u64_intersect_start_left_excluded_%dst_bound_ptr
|
|
1582
|
+
!__bound_u64_intersect_start_values_eq_%dst_bound_ptr
|
|
1583
|
+
!__bound_u64_intersect_start_left_gt_%dst_bound_ptr
|
|
1584
|
+
!__bound_u64_intersect_start_right_value_%dst_bound_ptr
|
|
1585
|
+
!__bound_u64_intersect_start_left_value_%dst_bound_ptr
|
|
1586
|
+
!__bound_u64_intersect_start_right_unbounded_%dst_bound_ptr
|
|
1587
|
+
!__bound_u64_intersect_start_left_unbounded_%dst_bound_ptr
|
|
1588
|
+
!__bound_u64_intersect_start_right_tag_%dst_bound_ptr
|
|
1589
|
+
!__bound_u64_intersect_start_left_tag_%dst_bound_ptr
|
|
1590
|
+
jmp L_BOUND_U64_INTERSECT_START_DONE_%dst_bound_ptr
|
|
1591
|
+
|
|
1592
|
+
L_BOUND_U64_INTERSECT_START_COPY_LEFT_UNBOUNDED_%dst_bound_ptr:
|
|
1593
|
+
EXPAND BOUND_U64_COPY %dst_bound_ptr, %left_bound_ptr
|
|
1594
|
+
!__bound_u64_intersect_start_right_unbounded_%dst_bound_ptr
|
|
1595
|
+
!__bound_u64_intersect_start_left_unbounded_%dst_bound_ptr
|
|
1596
|
+
!__bound_u64_intersect_start_right_tag_%dst_bound_ptr
|
|
1597
|
+
!__bound_u64_intersect_start_left_tag_%dst_bound_ptr
|
|
1598
|
+
jmp L_BOUND_U64_INTERSECT_START_DONE_%dst_bound_ptr
|
|
1599
|
+
|
|
1600
|
+
L_BOUND_U64_INTERSECT_START_COPY_RIGHT_UNBOUNDED_%dst_bound_ptr:
|
|
1601
|
+
EXPAND BOUND_U64_COPY %dst_bound_ptr, %right_bound_ptr
|
|
1602
|
+
!__bound_u64_intersect_start_left_unbounded_%dst_bound_ptr
|
|
1603
|
+
!__bound_u64_intersect_start_right_tag_%dst_bound_ptr
|
|
1604
|
+
!__bound_u64_intersect_start_left_tag_%dst_bound_ptr
|
|
1605
|
+
|
|
1606
|
+
L_BOUND_U64_INTERSECT_START_DONE_%dst_bound_ptr:
|
|
1607
|
+
[END_MACRO]
|
|
1608
|
+
|
|
1609
|
+
[MACRO] BOUND_U64_INTERSECT_END %dst_bound_ptr, %left_bound_ptr, %right_bound_ptr
|
|
1610
|
+
__bound_u64_intersect_end_left_tag_%dst_bound_ptr = load %left_bound_ptr+BoundU64_tag as u64
|
|
1611
|
+
__bound_u64_intersect_end_right_tag_%dst_bound_ptr = load %right_bound_ptr+BoundU64_tag as u64
|
|
1612
|
+
__bound_u64_intersect_end_left_unbounded_%dst_bound_ptr = eq __bound_u64_intersect_end_left_tag_%dst_bound_ptr, BOUND_U64_UNBOUNDED
|
|
1613
|
+
br __bound_u64_intersect_end_left_unbounded_%dst_bound_ptr -> L_BOUND_U64_INTERSECT_END_COPY_RIGHT_UNBOUNDED_%dst_bound_ptr, L_BOUND_U64_INTERSECT_END_CHECK_RIGHT_%dst_bound_ptr
|
|
1614
|
+
|
|
1615
|
+
L_BOUND_U64_INTERSECT_END_CHECK_RIGHT_%dst_bound_ptr:
|
|
1616
|
+
__bound_u64_intersect_end_right_unbounded_%dst_bound_ptr = eq __bound_u64_intersect_end_right_tag_%dst_bound_ptr, BOUND_U64_UNBOUNDED
|
|
1617
|
+
br __bound_u64_intersect_end_right_unbounded_%dst_bound_ptr -> L_BOUND_U64_INTERSECT_END_COPY_LEFT_UNBOUNDED_%dst_bound_ptr, L_BOUND_U64_INTERSECT_END_BOUNDED_%dst_bound_ptr
|
|
1618
|
+
|
|
1619
|
+
L_BOUND_U64_INTERSECT_END_BOUNDED_%dst_bound_ptr:
|
|
1620
|
+
__bound_u64_intersect_end_left_value_%dst_bound_ptr = load %left_bound_ptr+BoundU64_value as u64
|
|
1621
|
+
__bound_u64_intersect_end_right_value_%dst_bound_ptr = load %right_bound_ptr+BoundU64_value as u64
|
|
1622
|
+
__bound_u64_intersect_end_left_lt_%dst_bound_ptr = ult __bound_u64_intersect_end_left_value_%dst_bound_ptr, __bound_u64_intersect_end_right_value_%dst_bound_ptr
|
|
1623
|
+
__bound_u64_intersect_end_values_eq_%dst_bound_ptr = eq __bound_u64_intersect_end_left_value_%dst_bound_ptr, __bound_u64_intersect_end_right_value_%dst_bound_ptr
|
|
1624
|
+
__bound_u64_intersect_end_left_excluded_%dst_bound_ptr = eq __bound_u64_intersect_end_left_tag_%dst_bound_ptr, BOUND_U64_EXCLUDED
|
|
1625
|
+
__bound_u64_intersect_end_right_included_%dst_bound_ptr = eq __bound_u64_intersect_end_right_tag_%dst_bound_ptr, BOUND_U64_INCLUDED
|
|
1626
|
+
__bound_u64_intersect_end_tie_excluded_%dst_bound_ptr = and __bound_u64_intersect_end_left_excluded_%dst_bound_ptr, __bound_u64_intersect_end_right_included_%dst_bound_ptr
|
|
1627
|
+
__bound_u64_intersect_end_tie_left_%dst_bound_ptr = and __bound_u64_intersect_end_values_eq_%dst_bound_ptr, __bound_u64_intersect_end_tie_excluded_%dst_bound_ptr
|
|
1628
|
+
__bound_u64_intersect_end_choose_left_%dst_bound_ptr = or __bound_u64_intersect_end_left_lt_%dst_bound_ptr, __bound_u64_intersect_end_tie_left_%dst_bound_ptr
|
|
1629
|
+
br __bound_u64_intersect_end_choose_left_%dst_bound_ptr -> L_BOUND_U64_INTERSECT_END_COPY_LEFT_BOUNDED_%dst_bound_ptr, L_BOUND_U64_INTERSECT_END_COPY_RIGHT_BOUNDED_%dst_bound_ptr
|
|
1630
|
+
|
|
1631
|
+
L_BOUND_U64_INTERSECT_END_COPY_LEFT_BOUNDED_%dst_bound_ptr:
|
|
1632
|
+
EXPAND BOUND_U64_COPY %dst_bound_ptr, %left_bound_ptr
|
|
1633
|
+
!__bound_u64_intersect_end_choose_left_%dst_bound_ptr
|
|
1634
|
+
!__bound_u64_intersect_end_tie_left_%dst_bound_ptr
|
|
1635
|
+
!__bound_u64_intersect_end_tie_excluded_%dst_bound_ptr
|
|
1636
|
+
!__bound_u64_intersect_end_right_included_%dst_bound_ptr
|
|
1637
|
+
!__bound_u64_intersect_end_left_excluded_%dst_bound_ptr
|
|
1638
|
+
!__bound_u64_intersect_end_values_eq_%dst_bound_ptr
|
|
1639
|
+
!__bound_u64_intersect_end_left_lt_%dst_bound_ptr
|
|
1640
|
+
!__bound_u64_intersect_end_right_value_%dst_bound_ptr
|
|
1641
|
+
!__bound_u64_intersect_end_left_value_%dst_bound_ptr
|
|
1642
|
+
!__bound_u64_intersect_end_right_unbounded_%dst_bound_ptr
|
|
1643
|
+
!__bound_u64_intersect_end_left_unbounded_%dst_bound_ptr
|
|
1644
|
+
!__bound_u64_intersect_end_right_tag_%dst_bound_ptr
|
|
1645
|
+
!__bound_u64_intersect_end_left_tag_%dst_bound_ptr
|
|
1646
|
+
jmp L_BOUND_U64_INTERSECT_END_DONE_%dst_bound_ptr
|
|
1647
|
+
|
|
1648
|
+
L_BOUND_U64_INTERSECT_END_COPY_RIGHT_BOUNDED_%dst_bound_ptr:
|
|
1649
|
+
EXPAND BOUND_U64_COPY %dst_bound_ptr, %right_bound_ptr
|
|
1650
|
+
!__bound_u64_intersect_end_choose_left_%dst_bound_ptr
|
|
1651
|
+
!__bound_u64_intersect_end_tie_left_%dst_bound_ptr
|
|
1652
|
+
!__bound_u64_intersect_end_tie_excluded_%dst_bound_ptr
|
|
1653
|
+
!__bound_u64_intersect_end_right_included_%dst_bound_ptr
|
|
1654
|
+
!__bound_u64_intersect_end_left_excluded_%dst_bound_ptr
|
|
1655
|
+
!__bound_u64_intersect_end_values_eq_%dst_bound_ptr
|
|
1656
|
+
!__bound_u64_intersect_end_left_lt_%dst_bound_ptr
|
|
1657
|
+
!__bound_u64_intersect_end_right_value_%dst_bound_ptr
|
|
1658
|
+
!__bound_u64_intersect_end_left_value_%dst_bound_ptr
|
|
1659
|
+
!__bound_u64_intersect_end_right_unbounded_%dst_bound_ptr
|
|
1660
|
+
!__bound_u64_intersect_end_left_unbounded_%dst_bound_ptr
|
|
1661
|
+
!__bound_u64_intersect_end_right_tag_%dst_bound_ptr
|
|
1662
|
+
!__bound_u64_intersect_end_left_tag_%dst_bound_ptr
|
|
1663
|
+
jmp L_BOUND_U64_INTERSECT_END_DONE_%dst_bound_ptr
|
|
1664
|
+
|
|
1665
|
+
L_BOUND_U64_INTERSECT_END_COPY_LEFT_UNBOUNDED_%dst_bound_ptr:
|
|
1666
|
+
EXPAND BOUND_U64_COPY %dst_bound_ptr, %left_bound_ptr
|
|
1667
|
+
!__bound_u64_intersect_end_right_unbounded_%dst_bound_ptr
|
|
1668
|
+
!__bound_u64_intersect_end_left_unbounded_%dst_bound_ptr
|
|
1669
|
+
!__bound_u64_intersect_end_right_tag_%dst_bound_ptr
|
|
1670
|
+
!__bound_u64_intersect_end_left_tag_%dst_bound_ptr
|
|
1671
|
+
jmp L_BOUND_U64_INTERSECT_END_DONE_%dst_bound_ptr
|
|
1672
|
+
|
|
1673
|
+
L_BOUND_U64_INTERSECT_END_COPY_RIGHT_UNBOUNDED_%dst_bound_ptr:
|
|
1674
|
+
EXPAND BOUND_U64_COPY %dst_bound_ptr, %right_bound_ptr
|
|
1675
|
+
!__bound_u64_intersect_end_left_unbounded_%dst_bound_ptr
|
|
1676
|
+
!__bound_u64_intersect_end_right_tag_%dst_bound_ptr
|
|
1677
|
+
!__bound_u64_intersect_end_left_tag_%dst_bound_ptr
|
|
1678
|
+
|
|
1679
|
+
L_BOUND_U64_INTERSECT_END_DONE_%dst_bound_ptr:
|
|
1680
|
+
[END_MACRO]
|
|
1681
|
+
|
|
1682
|
+
[MACRO] BOUND_U64_INTERSECT_RANGE %out_start_bound_ptr, %out_end_bound_ptr, %left_start_bound_ptr, %left_end_bound_ptr, %right_start_bound_ptr, %right_end_bound_ptr
|
|
1683
|
+
EXPAND BOUND_U64_INTERSECT_START %out_start_bound_ptr, %left_start_bound_ptr, %right_start_bound_ptr
|
|
1684
|
+
EXPAND BOUND_U64_INTERSECT_END %out_end_bound_ptr, %left_end_bound_ptr, %right_end_bound_ptr
|
|
1685
|
+
[END_MACRO]
|
|
1686
|
+
|
|
1687
|
+
[MACRO] BOUND_USIZE_INTERSECT_START %dst_bound_ptr, %left_bound_ptr, %right_bound_ptr
|
|
1688
|
+
EXPAND BOUND_U64_INTERSECT_START %dst_bound_ptr, %left_bound_ptr, %right_bound_ptr
|
|
1689
|
+
[END_MACRO]
|
|
1690
|
+
|
|
1691
|
+
[MACRO] BOUND_USIZE_INTERSECT_END %dst_bound_ptr, %left_bound_ptr, %right_bound_ptr
|
|
1692
|
+
EXPAND BOUND_U64_INTERSECT_END %dst_bound_ptr, %left_bound_ptr, %right_bound_ptr
|
|
1693
|
+
[END_MACRO]
|
|
1694
|
+
|
|
1695
|
+
[MACRO] BOUND_USIZE_INTERSECT_RANGE %out_start_bound_ptr, %out_end_bound_ptr, %left_start_bound_ptr, %left_end_bound_ptr, %right_start_bound_ptr, %right_end_bound_ptr
|
|
1696
|
+
EXPAND BOUND_U64_INTERSECT_RANGE %out_start_bound_ptr, %out_end_bound_ptr, %left_start_bound_ptr, %left_end_bound_ptr, %right_start_bound_ptr, %right_end_bound_ptr
|
|
1697
|
+
[END_MACRO]
|
|
1698
|
+
|
|
1699
|
+
[MACRO] RANGE_FROM_U64_DEFAULT %range_ptr
|
|
1700
|
+
store %range_ptr+RangeFromU64_start, 0 as u64
|
|
1701
|
+
[END_MACRO]
|
|
1702
|
+
|
|
1703
|
+
[MACRO] RANGE_TO_U64_DEFAULT %range_ptr
|
|
1704
|
+
store %range_ptr+RangeToU64_end, 0 as u64
|
|
1705
|
+
[END_MACRO]
|
|
1706
|
+
|
|
1707
|
+
[MACRO] RANGE_TO_INCLUSIVE_U64_DEFAULT %range_ptr
|
|
1708
|
+
store %range_ptr+RangeToInclusiveU64_end, 0 as u64
|
|
1709
|
+
[END_MACRO]
|
|
1710
|
+
|
|
1711
|
+
[MACRO] RANGE_INCLUSIVE_U64_DEFAULT %range_ptr
|
|
1712
|
+
store %range_ptr+RangeInclusiveU64_start, 0 as u64
|
|
1713
|
+
store %range_ptr+RangeInclusiveU64_end, 0 as u64
|
|
1714
|
+
store %range_ptr+RangeInclusiveU64_exhausted, 0 as u64
|
|
1715
|
+
[END_MACRO]
|
|
1716
|
+
|
|
1717
|
+
[MACRO] RANGE_USIZE_NEW %range_ptr, %start, %end
|
|
1718
|
+
EXPAND RANGE_U64_NEW %range_ptr, %start, %end
|
|
1719
|
+
[END_MACRO]
|
|
1720
|
+
|
|
1721
|
+
[MACRO] RANGE_USIZE_START %out_start, %range_ptr
|
|
1722
|
+
EXPAND RANGE_U64_START %out_start, %range_ptr
|
|
1723
|
+
[END_MACRO]
|
|
1724
|
+
|
|
1725
|
+
[MACRO] RANGE_USIZE_END %out_end, %range_ptr
|
|
1726
|
+
EXPAND RANGE_U64_END %out_end, %range_ptr
|
|
1727
|
+
[END_MACRO]
|
|
1728
|
+
|
|
1729
|
+
[MACRO] RANGE_USIZE_CONTAINS %out_bool, %range_ptr, %item
|
|
1730
|
+
EXPAND RANGE_U64_CONTAINS %out_bool, %range_ptr, %item
|
|
1731
|
+
[END_MACRO]
|
|
1732
|
+
|
|
1733
|
+
[MACRO] RANGE_USIZE_IS_EMPTY %out_bool, %range_ptr
|
|
1734
|
+
EXPAND RANGE_U64_IS_EMPTY %out_bool, %range_ptr
|
|
1735
|
+
[END_MACRO]
|
|
1736
|
+
|
|
1737
|
+
[MACRO] RANGE_USIZE_LEN %out_len, %range_ptr
|
|
1738
|
+
EXPAND RANGE_U64_LEN %out_len, %range_ptr
|
|
1739
|
+
[END_MACRO]
|
|
1740
|
+
|
|
1741
|
+
[MACRO] RANGE_USIZE_NEXT %out_ok, %out_value, %range_ptr
|
|
1742
|
+
EXPAND RANGE_U64_NEXT %out_ok, %out_value, %range_ptr
|
|
1743
|
+
[END_MACRO]
|
|
1744
|
+
|
|
1745
|
+
[MACRO] RANGE_USIZE_NEXT_BACK %out_ok, %out_value, %range_ptr
|
|
1746
|
+
EXPAND RANGE_U64_NEXT_BACK %out_ok, %out_value, %range_ptr
|
|
1747
|
+
[END_MACRO]
|
|
1748
|
+
|
|
1749
|
+
[MACRO] RANGE_USIZE_NTH %out_ok, %out_value, %range_ptr, %nth
|
|
1750
|
+
EXPAND RANGE_U64_NTH %out_ok, %out_value, %range_ptr, %nth
|
|
1751
|
+
[END_MACRO]
|
|
1752
|
+
|
|
1753
|
+
[MACRO] RANGE_USIZE_COUNT %out_count, %range_ptr
|
|
1754
|
+
EXPAND RANGE_U64_COUNT %out_count, %range_ptr
|
|
1755
|
+
[END_MACRO]
|
|
1756
|
+
|
|
1757
|
+
[MACRO] RANGE_USIZE_TRY_GET_SLICE %out_ok, %out_slice, %base_slice, %range_ptr
|
|
1758
|
+
EXPAND RANGE_U64_TRY_GET_SLICE %out_ok, %out_slice, %base_slice, %range_ptr
|
|
1759
|
+
[END_MACRO]
|
|
1760
|
+
|
|
1761
|
+
[MACRO] RANGE_USIZE_DEFAULT %range_ptr
|
|
1762
|
+
EXPAND RANGE_U64_DEFAULT %range_ptr
|
|
1763
|
+
[END_MACRO]
|
|
1764
|
+
|
|
1765
|
+
[MACRO] RANGE_FROM_USIZE_NEW %range_ptr, %start
|
|
1766
|
+
EXPAND RANGE_FROM_U64_NEW %range_ptr, %start
|
|
1767
|
+
[END_MACRO]
|
|
1768
|
+
|
|
1769
|
+
[MACRO] RANGE_FROM_USIZE_START %out_start, %range_ptr
|
|
1770
|
+
EXPAND RANGE_FROM_U64_START %out_start, %range_ptr
|
|
1771
|
+
[END_MACRO]
|
|
1772
|
+
|
|
1773
|
+
[MACRO] RANGE_FROM_USIZE_CONTAINS %out_bool, %range_ptr, %item
|
|
1774
|
+
EXPAND RANGE_FROM_U64_CONTAINS %out_bool, %range_ptr, %item
|
|
1775
|
+
[END_MACRO]
|
|
1776
|
+
|
|
1777
|
+
[MACRO] RANGE_FROM_USIZE_TRY_GET_SLICE %out_ok, %out_slice, %base_slice, %range_ptr
|
|
1778
|
+
EXPAND RANGE_FROM_U64_TRY_GET_SLICE %out_ok, %out_slice, %base_slice, %range_ptr
|
|
1779
|
+
[END_MACRO]
|
|
1780
|
+
|
|
1781
|
+
[MACRO] RANGE_TO_USIZE_NEW %range_ptr, %end
|
|
1782
|
+
EXPAND RANGE_TO_U64_NEW %range_ptr, %end
|
|
1783
|
+
[END_MACRO]
|
|
1784
|
+
|
|
1785
|
+
[MACRO] RANGE_TO_USIZE_END %out_end, %range_ptr
|
|
1786
|
+
EXPAND RANGE_TO_U64_END %out_end, %range_ptr
|
|
1787
|
+
[END_MACRO]
|
|
1788
|
+
|
|
1789
|
+
[MACRO] RANGE_TO_USIZE_CONTAINS %out_bool, %range_ptr, %item
|
|
1790
|
+
EXPAND RANGE_TO_U64_CONTAINS %out_bool, %range_ptr, %item
|
|
1791
|
+
[END_MACRO]
|
|
1792
|
+
|
|
1793
|
+
[MACRO] RANGE_TO_USIZE_TRY_GET_SLICE %out_ok, %out_slice, %base_slice, %range_ptr
|
|
1794
|
+
EXPAND RANGE_TO_U64_TRY_GET_SLICE %out_ok, %out_slice, %base_slice, %range_ptr
|
|
1795
|
+
[END_MACRO]
|
|
1796
|
+
|
|
1797
|
+
[MACRO] RANGE_INCLUSIVE_USIZE_NEW %range_ptr, %start, %end
|
|
1798
|
+
EXPAND RANGE_INCLUSIVE_U64_NEW %range_ptr, %start, %end
|
|
1799
|
+
[END_MACRO]
|
|
1800
|
+
|
|
1801
|
+
[MACRO] RANGE_INCLUSIVE_USIZE_SET_EXHAUSTED %range_ptr, %exhausted
|
|
1802
|
+
EXPAND RANGE_INCLUSIVE_U64_SET_EXHAUSTED %range_ptr, %exhausted
|
|
1803
|
+
[END_MACRO]
|
|
1804
|
+
|
|
1805
|
+
[MACRO] RANGE_INCLUSIVE_USIZE_START %out_start, %range_ptr
|
|
1806
|
+
EXPAND RANGE_INCLUSIVE_U64_START %out_start, %range_ptr
|
|
1807
|
+
[END_MACRO]
|
|
1808
|
+
|
|
1809
|
+
[MACRO] RANGE_INCLUSIVE_USIZE_END %out_end, %range_ptr
|
|
1810
|
+
EXPAND RANGE_INCLUSIVE_U64_END %out_end, %range_ptr
|
|
1811
|
+
[END_MACRO]
|
|
1812
|
+
|
|
1813
|
+
[MACRO] RANGE_INCLUSIVE_USIZE_INTO_INNER %out_start, %out_end, %range_ptr
|
|
1814
|
+
EXPAND RANGE_INCLUSIVE_U64_INTO_INNER %out_start, %out_end, %range_ptr
|
|
1815
|
+
[END_MACRO]
|
|
1816
|
+
|
|
1817
|
+
[MACRO] RANGE_INCLUSIVE_USIZE_CONTAINS %out_bool, %range_ptr, %item
|
|
1818
|
+
EXPAND RANGE_INCLUSIVE_U64_CONTAINS %out_bool, %range_ptr, %item
|
|
1819
|
+
[END_MACRO]
|
|
1820
|
+
|
|
1821
|
+
[MACRO] RANGE_INCLUSIVE_USIZE_IS_EMPTY %out_bool, %range_ptr
|
|
1822
|
+
EXPAND RANGE_INCLUSIVE_U64_IS_EMPTY %out_bool, %range_ptr
|
|
1823
|
+
[END_MACRO]
|
|
1824
|
+
|
|
1825
|
+
[MACRO] RANGE_INCLUSIVE_USIZE_LEN %out_len, %range_ptr
|
|
1826
|
+
EXPAND RANGE_INCLUSIVE_U64_LEN %out_len, %range_ptr
|
|
1827
|
+
[END_MACRO]
|
|
1828
|
+
|
|
1829
|
+
[MACRO] RANGE_INCLUSIVE_USIZE_NEXT %out_ok, %out_value, %range_ptr
|
|
1830
|
+
EXPAND RANGE_INCLUSIVE_U64_NEXT %out_ok, %out_value, %range_ptr
|
|
1831
|
+
[END_MACRO]
|
|
1832
|
+
|
|
1833
|
+
[MACRO] RANGE_INCLUSIVE_USIZE_NEXT_BACK %out_ok, %out_value, %range_ptr
|
|
1834
|
+
EXPAND RANGE_INCLUSIVE_U64_NEXT_BACK %out_ok, %out_value, %range_ptr
|
|
1835
|
+
[END_MACRO]
|
|
1836
|
+
|
|
1837
|
+
[MACRO] RANGE_INCLUSIVE_USIZE_COUNT %out_count, %range_ptr
|
|
1838
|
+
EXPAND RANGE_INCLUSIVE_U64_COUNT %out_count, %range_ptr
|
|
1839
|
+
[END_MACRO]
|
|
1840
|
+
|
|
1841
|
+
[MACRO] RANGE_INCLUSIVE_USIZE_TRY_GET_SLICE %out_ok, %out_slice, %base_slice, %range_ptr
|
|
1842
|
+
EXPAND RANGE_INCLUSIVE_U64_TRY_GET_SLICE %out_ok, %out_slice, %base_slice, %range_ptr
|
|
1843
|
+
[END_MACRO]
|
|
1844
|
+
|
|
1845
|
+
[MACRO] RANGE_TO_INCLUSIVE_USIZE_NEW %range_ptr, %end
|
|
1846
|
+
EXPAND RANGE_TO_INCLUSIVE_U64_NEW %range_ptr, %end
|
|
1847
|
+
[END_MACRO]
|
|
1848
|
+
|
|
1849
|
+
[MACRO] RANGE_TO_INCLUSIVE_USIZE_END %out_end, %range_ptr
|
|
1850
|
+
EXPAND RANGE_TO_INCLUSIVE_U64_END %out_end, %range_ptr
|
|
1851
|
+
[END_MACRO]
|
|
1852
|
+
|
|
1853
|
+
[MACRO] RANGE_TO_INCLUSIVE_USIZE_CONTAINS %out_bool, %range_ptr, %item
|
|
1854
|
+
EXPAND RANGE_TO_INCLUSIVE_U64_CONTAINS %out_bool, %range_ptr, %item
|
|
1855
|
+
[END_MACRO]
|
|
1856
|
+
|
|
1857
|
+
[MACRO] RANGE_TO_INCLUSIVE_USIZE_TRY_GET_SLICE %out_ok, %out_slice, %base_slice, %range_ptr
|
|
1858
|
+
EXPAND RANGE_TO_INCLUSIVE_U64_TRY_GET_SLICE %out_ok, %out_slice, %base_slice, %range_ptr
|
|
1859
|
+
[END_MACRO]
|
|
1860
|
+
|
|
1861
|
+
[MACRO] RANGE_FULL_CONTAINS_USIZE %out_bool, %item
|
|
1862
|
+
EXPAND RANGE_FULL_CONTAINS_U64 %out_bool, %item
|
|
1863
|
+
[END_MACRO]
|
|
1864
|
+
|
|
1865
|
+
[MACRO] RANGE_INCLUSIVE_USIZE_DEFAULT %range_ptr
|
|
1866
|
+
EXPAND RANGE_INCLUSIVE_U64_DEFAULT %range_ptr
|
|
1867
|
+
[END_MACRO]
|
|
1868
|
+
|
|
1869
|
+
[MACRO] RANGE_FROM_USIZE_DEFAULT %range_ptr
|
|
1870
|
+
EXPAND RANGE_FROM_U64_DEFAULT %range_ptr
|
|
1871
|
+
[END_MACRO]
|
|
1872
|
+
|
|
1873
|
+
[MACRO] RANGE_TO_USIZE_DEFAULT %range_ptr
|
|
1874
|
+
EXPAND RANGE_TO_U64_DEFAULT %range_ptr
|
|
1875
|
+
[END_MACRO]
|
|
1876
|
+
|
|
1877
|
+
[MACRO] RANGE_TO_INCLUSIVE_USIZE_DEFAULT %range_ptr
|
|
1878
|
+
EXPAND RANGE_TO_INCLUSIVE_U64_DEFAULT %range_ptr
|
|
1879
|
+
[END_MACRO]
|
|
1880
|
+
|
|
1881
|
+
|
|
1882
|
+
[MACRO] RANGE_USIZE_FULL_DEFAULT %range_ptr
|
|
1883
|
+
EXPAND RANGE_FULL_DEFAULT %range_ptr
|
|
1884
|
+
[END_MACRO]
|