@salang/sa 0.1.2 → 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.
Files changed (282) hide show
  1. package/bin/sa.js +19 -1
  2. package/package.json +8 -7
  3. package/sa_std/alloc/layout.sal +12 -0
  4. package/sa_std/alloc/prelude.sa +1 -0
  5. package/sa_std/alloc/prelude.sal +1 -0
  6. package/sa_std/alloc/string.sa +3 -0
  7. package/sa_std/alloc/vec.sa +684 -0
  8. package/sa_std/alloc/vec.sal +4 -0
  9. package/sa_std/any.sa +130 -0
  10. package/sa_std/any.sal +23 -0
  11. package/sa_std/array.sa +1876 -0
  12. package/sa_std/ascii.sa +2 -0
  13. package/sa_std/ascii.sal +1 -0
  14. package/sa_std/async.sla +116 -0
  15. package/sa_std/binary_heap.sa +3003 -0
  16. package/sa_std/binary_heap.sal +7 -0
  17. package/sa_std/borrow.sa +171 -0
  18. package/sa_std/borrow.sal +13 -0
  19. package/sa_std/btree_map.sa +2210 -0
  20. package/sa_std/btree_map.sal +11 -0
  21. package/sa_std/btree_set.sa +1072 -0
  22. package/sa_std/btree_set.sal +6 -0
  23. package/sa_std/char.sa +1309 -0
  24. package/sa_std/char.sal +50 -0
  25. package/sa_std/cmp.sa +554 -0
  26. package/sa_std/cmp.sal +14 -0
  27. package/sa_std/collections/binary_heap.sa +1 -0
  28. package/sa_std/collections/btree_map.sa +1 -0
  29. package/sa_std/collections/btree_set.sa +1 -0
  30. package/sa_std/collections/hashmap.sa +1 -0
  31. package/sa_std/collections/hashset.sa +1 -0
  32. package/sa_std/collections/linked_list.sa +1120 -0
  33. package/sa_std/collections/linked_list.sal +10 -0
  34. package/sa_std/collections/prelude.sa +7 -0
  35. package/sa_std/collections/prelude.sal +1 -0
  36. package/sa_std/collections/vec_deque.sa +1 -0
  37. package/sa_std/collections.sal +13 -0
  38. package/sa_std/convert.sa +1115 -0
  39. package/sa_std/convert.sal +24 -0
  40. package/sa_std/core/arc.sa +233 -0
  41. package/sa_std/core/arc.sal +4 -0
  42. package/sa_std/core/ascii.sa +784 -0
  43. package/sa_std/core/ascii.sal +34 -0
  44. package/sa_std/core/bit.sa +41 -0
  45. package/sa_std/core/box.sa +1 -0
  46. package/sa_std/core/box.sal +2 -0
  47. package/sa_std/core/cell.sa +108 -0
  48. package/sa_std/core/cell.sal +5 -0
  49. package/sa_std/core/cleanup.sa +26 -0
  50. package/sa_std/core/control.sa +20 -0
  51. package/sa_std/core/derive.sa +60 -0
  52. package/sa_std/core/derive.sal +1 -0
  53. package/sa_std/core/dispatch.sa +7 -0
  54. package/sa_std/core/dispatch.sal +5 -0
  55. package/sa_std/core/future.sa +777 -0
  56. package/sa_std/core/future.sal +73 -0
  57. package/sa_std/core/hash.sa +48 -0
  58. package/sa_std/core/iter.sa +2805 -0
  59. package/sa_std/core/iter.sal +4 -0
  60. package/sa_std/core/loop.sa +60 -0
  61. package/sa_std/core/mem.sa +220 -0
  62. package/sa_std/core/option.sa +825 -0
  63. package/sa_std/core/option.sal +11 -0
  64. package/sa_std/core/panic.sa +23 -0
  65. package/sa_std/core/panic.sal +12 -0
  66. package/sa_std/core/prelude.sa +18 -0
  67. package/sa_std/core/prelude.sal +18 -0
  68. package/sa_std/core/rc.sa +225 -0
  69. package/sa_std/core/rc.sal +4 -0
  70. package/sa_std/core/refcell.sa +283 -0
  71. package/sa_std/core/refcell.sal +13 -0
  72. package/sa_std/core/result.sa +708 -0
  73. package/sa_std/core/result.sal +6 -0
  74. package/sa_std/core/rust_patterns.sal +295 -0
  75. package/sa_std/core/sa_core.sa +84 -0
  76. package/sa_std/core/slice.sa +4021 -0
  77. package/sa_std/core/slice.sal +7 -0
  78. package/sa_std/core/task.sa +112 -0
  79. package/sa_std/core/task.sal +15 -0
  80. package/sa_std/core/trait_object.sa +26 -0
  81. package/sa_std/core/trait_object.sal +4 -0
  82. package/sa_std/core/waker.sa +289 -0
  83. package/sa_std/core/waker.sal +31 -0
  84. package/sa_std/core/weak.sa +2 -0
  85. package/sa_std/core/weak.sal +4 -0
  86. package/sa_std/cow.sa +3 -0
  87. package/sa_std/cow.sal +2 -0
  88. package/sa_std/cstring.sa +3 -0
  89. package/sa_std/cstring.sal +2 -0
  90. package/sa_std/default.sa +99 -0
  91. package/sa_std/duration.sa +3 -0
  92. package/sa_std/duration.sal +2 -0
  93. package/sa_std/encoding/json.sa +259 -0
  94. package/sa_std/encoding/json.sai +54 -0
  95. package/sa_std/encoding/json.sal +35 -0
  96. package/sa_std/encoding/prelude.sa +1 -0
  97. package/sa_std/encoding/prelude.sal +0 -0
  98. package/sa_std/env.sa +390 -0
  99. package/sa_std/env.sai +25 -0
  100. package/sa_std/error.sa +253 -0
  101. package/sa_std/error.sal +44 -0
  102. package/sa_std/ffi/cstring.sa +3 -0
  103. package/sa_std/ffi/cstring.sal +1 -0
  104. package/sa_std/ffi/prelude.sa +2 -0
  105. package/sa_std/ffi/prelude.sal +2 -0
  106. package/sa_std/ffi.sa +635 -0
  107. package/sa_std/ffi.sal +51 -0
  108. package/sa_std/fmt.sa +2 -0
  109. package/sa_std/fmt.sai +18 -0
  110. package/sa_std/fmt.sal +35 -0
  111. package/sa_std/fs.sa +1023 -0
  112. package/sa_std/fs.sai +127 -0
  113. package/sa_std/fs.sal +51 -0
  114. package/sa_std/future.sa +2 -0
  115. package/sa_std/future.sal +1 -0
  116. package/sa_std/hash.sa +1486 -0
  117. package/sa_std/hash.sal +13 -0
  118. package/sa_std/hashmap.sa +1962 -0
  119. package/sa_std/hashmap.sal +20 -0
  120. package/sa_std/hashset.sa +1004 -0
  121. package/sa_std/hashset.sal +18 -0
  122. package/sa_std/http2.sa +78 -0
  123. package/sa_std/http2.sai +26 -0
  124. package/sa_std/http2.sal +36 -0
  125. package/sa_std/instant.sa +3 -0
  126. package/sa_std/instant.sal +2 -0
  127. package/sa_std/io/buf_reader.sa +43 -0
  128. package/sa_std/io/buf_writer.sa +35 -0
  129. package/sa_std/io/bufio.sa +4 -0
  130. package/sa_std/io/bufio.sal +4 -0
  131. package/sa_std/io/prelude.sa +1 -0
  132. package/sa_std/io/prelude.sal +1 -0
  133. package/sa_std/io/print.sa +2 -0
  134. package/sa_std/io/print.sai +3 -0
  135. package/sa_std/io.sa +925 -0
  136. package/sa_std/io.sai +25 -0
  137. package/sa_std/io.sal +84 -0
  138. package/sa_std/iter.sa +2 -0
  139. package/sa_std/iter.sal +1 -0
  140. package/sa_std/join_handle.sa +3 -0
  141. package/sa_std/join_handle.sal +2 -0
  142. package/sa_std/libsa_async.sa +80 -0
  143. package/sa_std/m_async.sa +137 -0
  144. package/sa_std/m_async.sal +30 -0
  145. package/sa_std/m_async.sla +2 -0
  146. package/sa_std/manually_drop.sa +3 -0
  147. package/sa_std/manually_drop.sal +2 -0
  148. package/sa_std/marker/phantom_data.sa +3 -0
  149. package/sa_std/marker/phantom_data.sal +1 -0
  150. package/sa_std/marker/prelude.sa +4 -0
  151. package/sa_std/marker/prelude.sal +4 -0
  152. package/sa_std/marker.sa +220 -0
  153. package/sa_std/marker.sal +15 -0
  154. package/sa_std/math.sa +84 -0
  155. package/sa_std/math.sai +10 -0
  156. package/sa_std/mem/manually_drop.sa +3 -0
  157. package/sa_std/mem/manually_drop.sal +1 -0
  158. package/sa_std/mem/prelude.sa +2 -0
  159. package/sa_std/mem/prelude.sal +2 -0
  160. package/sa_std/mem.sa +564 -0
  161. package/sa_std/mem.sal +40 -0
  162. package/sa_std/modstate.sai +19 -0
  163. package/sa_std/net.sa +4227 -0
  164. package/sa_std/net.sai +239 -0
  165. package/sa_std/net.sal +159 -0
  166. package/sa_std/netx.sa +85 -0
  167. package/sa_std/netx.sai +11 -0
  168. package/sa_std/netx.sal +39 -0
  169. package/sa_std/nonzero.sa +3 -0
  170. package/sa_std/nonzero.sal +2 -0
  171. package/sa_std/num/nonzero.sa +3 -0
  172. package/sa_std/num/nonzero.sal +1 -0
  173. package/sa_std/num/prelude.sa +3 -0
  174. package/sa_std/num/prelude.sal +3 -0
  175. package/sa_std/num.sa +17302 -0
  176. package/sa_std/num.sai +11 -0
  177. package/sa_std/num.sal +341 -0
  178. package/sa_std/ops.sa +1884 -0
  179. package/sa_std/ops.sal +68 -0
  180. package/sa_std/option.sa +2 -0
  181. package/sa_std/option.sal +1 -0
  182. package/sa_std/os/fd.sa +96 -0
  183. package/sa_std/os/fd.sai +7 -0
  184. package/sa_std/os/fd.sal +11 -0
  185. package/sa_std/os/prelude.sa +2 -0
  186. package/sa_std/os/prelude.sal +1 -0
  187. package/sa_std/os/unix_ffi.sa +271 -0
  188. package/sa_std/panic.sa +1 -0
  189. package/sa_std/panic.sal +1 -0
  190. package/sa_std/path.sa +3170 -0
  191. package/sa_std/path.sal +12 -0
  192. package/sa_std/phantom_data.sa +3 -0
  193. package/sa_std/phantom_data.sal +2 -0
  194. package/sa_std/pin.sa +79 -0
  195. package/sa_std/pin.sal +5 -0
  196. package/sa_std/plugin_async.sa +90 -0
  197. package/sa_std/plugin_async.sal +29 -0
  198. package/sa_std/plugin_async.sla +4 -0
  199. package/sa_std/plugin_http_async.sa +46 -0
  200. package/sa_std/plugin_http_server.sa +61 -0
  201. package/sa_std/plugin_http_server.sla +2 -0
  202. package/sa_std/plugin_sqlite.sa +106 -0
  203. package/sa_std/plugin_sqlite.sla +2 -0
  204. package/sa_std/prelude.sa +60 -0
  205. package/sa_std/prelude.sal +55 -0
  206. package/sa_std/process.sa +916 -0
  207. package/sa_std/process.sai +57 -0
  208. package/sa_std/process.sal +27 -0
  209. package/sa_std/ptr.sa +503 -0
  210. package/sa_std/ptr.sal +2 -0
  211. package/sa_std/result.sa +2 -0
  212. package/sa_std/result.sal +1 -0
  213. package/sa_std/rust_core.sa +51 -0
  214. package/sa_std/rust_core.sal +26 -0
  215. package/sa_std/sa.mod +7 -0
  216. package/sa_std/sort.sa +156 -0
  217. package/sa_std/str.sla +13 -0
  218. package/sa_std/string.sa +12240 -0
  219. package/sa_std/string.sai +25 -0
  220. package/sa_std/string.sal +17 -0
  221. package/sa_std/string_format.sa +269 -0
  222. package/sa_std/sync/atomic.sa +1500 -0
  223. package/sa_std/sync/atomic.sal +45 -0
  224. package/sa_std/sync/barrier.sa +105 -0
  225. package/sa_std/sync/barrier.sal +7 -0
  226. package/sa_std/sync/condvar.sa +240 -0
  227. package/sa_std/sync/condvar.sal +4 -0
  228. package/sa_std/sync/mpsc.sa +758 -0
  229. package/sa_std/sync/mpsc.sal +42 -0
  230. package/sa_std/sync/mpsc_list.sa +255 -0
  231. package/sa_std/sync/mpsc_list.sal +3 -0
  232. package/sa_std/sync/mutex.sa +182 -0
  233. package/sa_std/sync/mutex.sal +7 -0
  234. package/sa_std/sync/once.sa +371 -0
  235. package/sa_std/sync/once.sal +31 -0
  236. package/sa_std/sync/poison.sa +36 -0
  237. package/sa_std/sync/poison.sal +11 -0
  238. package/sa_std/sync/prelude.sa +8 -0
  239. package/sa_std/sync/prelude.sal +7 -0
  240. package/sa_std/sync/rwlock.sa +369 -0
  241. package/sa_std/sync/rwlock.sal +13 -0
  242. package/sa_std/task.sa +2 -0
  243. package/sa_std/task.sal +1 -0
  244. package/sa_std/term.sa +2 -0
  245. package/sa_std/term.sai +10 -0
  246. package/sa_std/term.sal +33 -0
  247. package/sa_std/testing/assert.sai +4 -0
  248. package/sa_std/testing/mock_io.sa +174 -0
  249. package/sa_std/testing/mock_io.sal +5 -0
  250. package/sa_std/testing/prelude.sa +2 -0
  251. package/sa_std/testing/prelude.sal +1 -0
  252. package/sa_std/text/prelude.sa +1 -0
  253. package/sa_std/text/prelude.sal +1 -0
  254. package/sa_std/text/regex.sa +2 -0
  255. package/sa_std/text/regex.sai +9 -0
  256. package/sa_std/text/regex.sal +33 -0
  257. package/sa_std/thread/join_handle.sa +3 -0
  258. package/sa_std/thread/join_handle.sal +1 -0
  259. package/sa_std/thread/prelude.sa +4 -0
  260. package/sa_std/thread/prelude.sal +3 -0
  261. package/sa_std/thread.sa +160 -0
  262. package/sa_std/thread.sai +11 -0
  263. package/sa_std/thread.sal +4 -0
  264. package/sa_std/thread_local.sa +45 -0
  265. package/sa_std/thread_local.sai +9 -0
  266. package/sa_std/time/duration.sa +3 -0
  267. package/sa_std/time/duration.sal +1 -0
  268. package/sa_std/time/instant.sa +3 -0
  269. package/sa_std/time/instant.sal +1 -0
  270. package/sa_std/time/prelude.sa +4 -0
  271. package/sa_std/time/prelude.sal +4 -0
  272. package/sa_std/time.sa +850 -0
  273. package/sa_std/time.sai +37 -0
  274. package/sa_std/time.sal +35 -0
  275. package/sa_std/time.sla +67 -0
  276. package/sa_std/tls_client.sai +39 -0
  277. package/sa_std/vec.sa +5754 -0
  278. package/sa_std/vec.sal +1 -0
  279. package/sa_std/vec_deque.sa +4925 -0
  280. package/sa_std/vec_deque.sal +8 -0
  281. package/sa_std/vec_runtime_macros.sa +11 -0
  282. package/sa_std/ws_client.sai +57 -0
@@ -0,0 +1,1876 @@
1
+ @import "core/slice.sal"
2
+ @import "core/slice.sa"
3
+ @import "core/iter.sa"
4
+ @import "core/mem.sa"
5
+ @import "hash.sa"
6
+ @import "vec.sa"
7
+
8
+ [MACRO] ARRAY_LEN %out_len, %length
9
+ %out_len = add %length, 0
10
+ [END_MACRO]
11
+
12
+ [MACRO] ARRAY_IS_EMPTY %out_bool, %length
13
+ %out_bool = eq %length, 0
14
+ [END_MACRO]
15
+
16
+ [MACRO] ARRAY_AS_SLICE_U64 %out_slice, %array_ptr, %length
17
+ EXPAND SLICE_NEW %out_slice, %array_ptr, %length
18
+ [END_MACRO]
19
+
20
+ // Rust method-name alias over ARRAY_AS_SLICE_U64.
21
+ [MACRO] ARRAY_AS_SLICE %out_slice, %array_ptr, %length
22
+ EXPAND ARRAY_AS_SLICE_U64 %out_slice, %array_ptr, %length
23
+ [END_MACRO]
24
+
25
+ [MACRO] ARRAY_AS_MUT_SLICE_U64 %out_slice, %array_ptr, %length
26
+ EXPAND SLICE_NEW %out_slice, %array_ptr, %length
27
+ [END_MACRO]
28
+
29
+ // Rust method-name alias over ARRAY_AS_MUT_SLICE_U64.
30
+ [MACRO] ARRAY_AS_MUT_SLICE %out_slice, %array_ptr, %length
31
+ EXPAND ARRAY_AS_MUT_SLICE_U64 %out_slice, %array_ptr, %length
32
+ [END_MACRO]
33
+
34
+ [MACRO] ARRAY_AS_REF_SLICE_U64 %out_slice, %array_ptr, %length
35
+ EXPAND ARRAY_AS_SLICE_U64 %out_slice, %array_ptr, %length
36
+ [END_MACRO]
37
+
38
+ // Rust method-name alias over ARRAY_AS_REF_SLICE_U64.
39
+ [MACRO] ARRAY_AS_REF_SLICE %out_slice, %array_ptr, %length
40
+ EXPAND ARRAY_AS_REF_SLICE_U64 %out_slice, %array_ptr, %length
41
+ [END_MACRO]
42
+
43
+ [MACRO] ARRAY_AS_MUT_REF_SLICE_U64 %out_slice, %array_ptr, %length
44
+ EXPAND ARRAY_AS_MUT_SLICE_U64 %out_slice, %array_ptr, %length
45
+ [END_MACRO]
46
+
47
+ // Rust method-name alias over ARRAY_AS_MUT_REF_SLICE_U64.
48
+ [MACRO] ARRAY_AS_MUT_REF_SLICE %out_slice, %array_ptr, %length
49
+ EXPAND ARRAY_AS_MUT_REF_SLICE_U64 %out_slice, %array_ptr, %length
50
+ [END_MACRO]
51
+
52
+ [MACRO] ARRAY_BORROW_SLICE_U64 %out_slice, %array_ptr, %length
53
+ EXPAND ARRAY_AS_REF_SLICE_U64 %out_slice, %array_ptr, %length
54
+ [END_MACRO]
55
+
56
+ // Rust method-name alias over ARRAY_BORROW_SLICE_U64.
57
+ [MACRO] ARRAY_BORROW_SLICE %out_slice, %array_ptr, %length
58
+ EXPAND ARRAY_BORROW_SLICE_U64 %out_slice, %array_ptr, %length
59
+ [END_MACRO]
60
+
61
+ [MACRO] ARRAY_BORROW_MUT_SLICE_U64 %out_slice, %array_ptr, %length
62
+ EXPAND ARRAY_AS_MUT_REF_SLICE_U64 %out_slice, %array_ptr, %length
63
+ [END_MACRO]
64
+
65
+ // Rust method-name alias over ARRAY_BORROW_MUT_SLICE_U64.
66
+ [MACRO] ARRAY_BORROW_MUT_SLICE %out_slice, %array_ptr, %length
67
+ EXPAND ARRAY_BORROW_MUT_SLICE_U64 %out_slice, %array_ptr, %length
68
+ [END_MACRO]
69
+
70
+ [MACRO] ARRAY_FROM_REF_U64 %out_slice, %value_ptr
71
+ EXPAND SLICE_NEW %out_slice, %value_ptr, 1
72
+ [END_MACRO]
73
+
74
+ // Rust method-name alias over ARRAY_FROM_REF_U64.
75
+ [MACRO] ARRAY_FROM_REF %out_slice, %value_ptr
76
+ EXPAND ARRAY_FROM_REF_U64 %out_slice, %value_ptr
77
+ [END_MACRO]
78
+
79
+ [MACRO] ARRAY_FROM_MUT_U64 %out_slice, %value_ptr
80
+ EXPAND SLICE_NEW %out_slice, %value_ptr, 1
81
+ [END_MACRO]
82
+
83
+ // Rust method-name alias over ARRAY_FROM_MUT_U64.
84
+ [MACRO] ARRAY_FROM_MUT %out_slice, %value_ptr
85
+ EXPAND ARRAY_FROM_MUT_U64 %out_slice, %value_ptr
86
+ [END_MACRO]
87
+
88
+ [MACRO] ARRAY_EACH_REF_U64 %out_slice, %array_ptr, %length
89
+ EXPAND SLICE_NEW %out_slice, %array_ptr, %length
90
+ [END_MACRO]
91
+
92
+ // Rust method-name alias over ARRAY_EACH_REF_U64.
93
+ [MACRO] ARRAY_EACH_REF %out_slice, %array_ptr, %length
94
+ EXPAND ARRAY_EACH_REF_U64 %out_slice, %array_ptr, %length
95
+ [END_MACRO]
96
+
97
+ [MACRO] ARRAY_EACH_MUT_U64 %out_slice, %array_ptr, %length
98
+ EXPAND SLICE_NEW %out_slice, %array_ptr, %length
99
+ [END_MACRO]
100
+
101
+ // Rust method-name alias over ARRAY_EACH_MUT_U64.
102
+ [MACRO] ARRAY_EACH_MUT %out_slice, %array_ptr, %length
103
+ EXPAND ARRAY_EACH_MUT_U64 %out_slice, %array_ptr, %length
104
+ [END_MACRO]
105
+
106
+ [MACRO] ARRAY_ITER_U64 %out_iter, %array_ptr, %length
107
+ __array_iter_slice_%out_iter = stack_alloc Slice_SIZE
108
+ EXPAND ARRAY_AS_SLICE_U64 __array_iter_slice_%out_iter, %array_ptr, %length
109
+ EXPAND ITER_FROM_SLICE %out_iter, __array_iter_slice_%out_iter
110
+ [END_MACRO]
111
+
112
+ // Rust method-name alias over ARRAY_ITER_U64.
113
+ [MACRO] ARRAY_ITER %out_iter, %array_ptr, %length
114
+ EXPAND ARRAY_ITER_U64 %out_iter, %array_ptr, %length
115
+ [END_MACRO]
116
+
117
+ [MACRO] ARRAY_ITER_MUT_U64 %out_iter, %array_ptr, %length
118
+ __array_iter_mut_slice_%out_iter = stack_alloc Slice_SIZE
119
+ EXPAND ARRAY_AS_MUT_SLICE_U64 __array_iter_mut_slice_%out_iter, %array_ptr, %length
120
+ EXPAND ITER_FROM_SLICE %out_iter, __array_iter_mut_slice_%out_iter
121
+ [END_MACRO]
122
+
123
+ // Rust method-name alias over ARRAY_ITER_MUT_U64.
124
+ [MACRO] ARRAY_ITER_MUT %out_iter, %array_ptr, %length
125
+ EXPAND ARRAY_ITER_MUT_U64 %out_iter, %array_ptr, %length
126
+ [END_MACRO]
127
+
128
+ [MACRO] ARRAY_REF_INTO_ITER_U64 %out_iter, %array_ptr, %length
129
+ EXPAND ARRAY_ITER_U64 %out_iter, %array_ptr, %length
130
+ [END_MACRO]
131
+
132
+ // Rust method-name alias over ARRAY_REF_INTO_ITER_U64.
133
+ [MACRO] ARRAY_REF_INTO_ITER %out_iter, %array_ptr, %length
134
+ EXPAND ARRAY_REF_INTO_ITER_U64 %out_iter, %array_ptr, %length
135
+ [END_MACRO]
136
+
137
+ [MACRO] ARRAY_MUT_REF_INTO_ITER_U64 %out_iter, %array_ptr, %length
138
+ EXPAND ARRAY_ITER_MUT_U64 %out_iter, %array_ptr, %length
139
+ [END_MACRO]
140
+
141
+ // Rust method-name alias over ARRAY_MUT_REF_INTO_ITER_U64.
142
+ [MACRO] ARRAY_MUT_REF_INTO_ITER %out_iter, %array_ptr, %length
143
+ EXPAND ARRAY_MUT_REF_INTO_ITER_U64 %out_iter, %array_ptr, %length
144
+ [END_MACRO]
145
+
146
+ [MACRO] ARRAY_INTO_ITER_U64 %out_iter, %out_vec, %array_ptr, %length
147
+ __array_into_iter_slice_%out_iter = stack_alloc Slice_SIZE
148
+ EXPAND ARRAY_AS_SLICE_U64 __array_into_iter_slice_%out_iter, %array_ptr, %length
149
+ EXPAND VEC_FROM_SLICE_U64 %out_vec, __array_into_iter_slice_%out_iter
150
+ EXPAND VEC_AS_SLICE __array_into_iter_backing_slice_%out_iter, %out_vec
151
+ EXPAND ITER_FROM_SLICE %out_iter, __array_into_iter_backing_slice_%out_iter
152
+ !__array_into_iter_backing_slice_%out_iter
153
+ [END_MACRO]
154
+
155
+ // Rust method-name alias over ARRAY_INTO_ITER_U64.
156
+ [MACRO] ARRAY_INTO_ITER %out_iter, %out_vec, %array_ptr, %length
157
+ EXPAND ARRAY_INTO_ITER_U64 %out_iter, %out_vec, %array_ptr, %length
158
+ [END_MACRO]
159
+
160
+ [MACRO] ARRAY_INTO_ITER_NEW_U64 %out_iter, %out_vec, %array_ptr, %length
161
+ EXPAND ARRAY_INTO_ITER_U64 %out_iter, %out_vec, %array_ptr, %length
162
+ [END_MACRO]
163
+
164
+ // Rust method-name alias over ARRAY_INTO_ITER_NEW_U64.
165
+ [MACRO] ARRAY_INTO_ITER_NEW %out_iter, %out_vec, %array_ptr, %length
166
+ EXPAND ARRAY_INTO_ITER_NEW_U64 %out_iter, %out_vec, %array_ptr, %length
167
+ [END_MACRO]
168
+
169
+ [MACRO] ARRAY_INTO_ITER_EMPTY_U64 %out_iter, %out_vec
170
+ EXPAND VEC_INTO_ITER_DEFAULT_U64 %out_iter, %out_vec
171
+ [END_MACRO]
172
+
173
+ // Rust method-name alias over ARRAY_INTO_ITER_EMPTY_U64.
174
+ [MACRO] ARRAY_INTO_ITER_EMPTY %out_iter, %out_vec
175
+ EXPAND ARRAY_INTO_ITER_EMPTY_U64 %out_iter, %out_vec
176
+ [END_MACRO]
177
+
178
+ [MACRO] ARRAY_INTO_ITER_DEFAULT_U64 %out_iter, %out_vec
179
+ EXPAND ARRAY_INTO_ITER_EMPTY_U64 %out_iter, %out_vec
180
+ [END_MACRO]
181
+
182
+ // Rust method-name alias over ARRAY_INTO_ITER_DEFAULT_U64.
183
+ [MACRO] ARRAY_INTO_ITER_DEFAULT %out_iter, %out_vec
184
+ EXPAND ARRAY_INTO_ITER_DEFAULT_U64 %out_iter, %out_vec
185
+ [END_MACRO]
186
+
187
+ [MACRO] ARRAY_INTO_ITER_AS_SLICE_U64 %out_slice, %iter_reg
188
+ EXPAND ITER_AS_SLICE_U64 %out_slice, %iter_reg
189
+ [END_MACRO]
190
+
191
+ // Rust method-name alias over ARRAY_INTO_ITER_AS_SLICE_U64.
192
+ [MACRO] ARRAY_INTO_ITER_AS_SLICE %out_slice, %iter_reg
193
+ EXPAND ARRAY_INTO_ITER_AS_SLICE_U64 %out_slice, %iter_reg
194
+ [END_MACRO]
195
+
196
+ [MACRO] ARRAY_INTO_ITER_AS_MUT_SLICE_U64 %out_slice, %iter_reg
197
+ EXPAND ITER_AS_SLICE_U64 %out_slice, %iter_reg
198
+ [END_MACRO]
199
+
200
+ // Rust method-name alias over ARRAY_INTO_ITER_AS_MUT_SLICE_U64.
201
+ [MACRO] ARRAY_INTO_ITER_AS_MUT_SLICE %out_slice, %iter_reg
202
+ EXPAND ARRAY_INTO_ITER_AS_MUT_SLICE_U64 %out_slice, %iter_reg
203
+ [END_MACRO]
204
+
205
+ [MACRO] ARRAY_INTO_ITER_AS_REF_SLICE_U64 %out_slice, %iter_reg
206
+ EXPAND ARRAY_INTO_ITER_AS_SLICE_U64 %out_slice, %iter_reg
207
+ [END_MACRO]
208
+
209
+ // Rust method-name alias over ARRAY_INTO_ITER_AS_REF_SLICE_U64.
210
+ [MACRO] ARRAY_INTO_ITER_AS_REF_SLICE %out_slice, %iter_reg
211
+ EXPAND ARRAY_INTO_ITER_AS_REF_SLICE_U64 %out_slice, %iter_reg
212
+ [END_MACRO]
213
+
214
+ [MACRO] ARRAY_INTO_ITER_SIZE_HINT_U64 %out_lower, %out_upper, %iter_reg
215
+ EXPAND ITER_SIZE_HINT %out_lower, %out_upper, %iter_reg
216
+ [END_MACRO]
217
+
218
+ // Rust method-name alias over ARRAY_INTO_ITER_SIZE_HINT_U64.
219
+ [MACRO] ARRAY_INTO_ITER_SIZE_HINT %out_lower, %out_upper, %iter_reg
220
+ EXPAND ARRAY_INTO_ITER_SIZE_HINT_U64 %out_lower, %out_upper, %iter_reg
221
+ [END_MACRO]
222
+
223
+ [MACRO] ARRAY_INTO_ITER_EXACT_SIZE_LEN_U64 %out_len, %iter_reg
224
+ EXPAND ITER_EXACT_SIZE_LEN %out_len, %iter_reg
225
+ [END_MACRO]
226
+
227
+ // Rust method-name alias over ARRAY_INTO_ITER_EXACT_SIZE_LEN_U64.
228
+ [MACRO] ARRAY_INTO_ITER_EXACT_SIZE_LEN %out_len, %iter_reg
229
+ EXPAND ARRAY_INTO_ITER_EXACT_SIZE_LEN_U64 %out_len, %iter_reg
230
+ [END_MACRO]
231
+
232
+ [MACRO] ARRAY_INTO_ITER_EXACT_SIZE_IS_EMPTY_U64 %out_bool, %iter_reg
233
+ EXPAND ITER_EXACT_SIZE_IS_EMPTY %out_bool, %iter_reg
234
+ [END_MACRO]
235
+
236
+ // Rust method-name alias over ARRAY_INTO_ITER_EXACT_SIZE_IS_EMPTY_U64.
237
+ [MACRO] ARRAY_INTO_ITER_EXACT_SIZE_IS_EMPTY %out_bool, %iter_reg
238
+ EXPAND ARRAY_INTO_ITER_EXACT_SIZE_IS_EMPTY_U64 %out_bool, %iter_reg
239
+ [END_MACRO]
240
+
241
+ [MACRO] ARRAY_INTO_ITER_NEXT_U64 %out_has, %out_value, %iter_reg
242
+ EXPAND ITER_NEXT_U64 %out_has, %out_value, %iter_reg
243
+ [END_MACRO]
244
+
245
+ // Rust method-name alias over ARRAY_INTO_ITER_NEXT_U64.
246
+ [MACRO] ARRAY_INTO_ITER_NEXT %out_has, %out_value, %iter_reg
247
+ EXPAND ARRAY_INTO_ITER_NEXT_U64 %out_has, %out_value, %iter_reg
248
+ [END_MACRO]
249
+
250
+ [MACRO] ARRAY_INTO_ITER_NEXT_BACK_U64 %out_has, %out_value, %iter_reg
251
+ EXPAND ITER_NEXT_BACK_U64 %out_has, %out_value, %iter_reg
252
+ [END_MACRO]
253
+
254
+ // Rust method-name alias over ARRAY_INTO_ITER_NEXT_BACK_U64.
255
+ [MACRO] ARRAY_INTO_ITER_NEXT_BACK %out_has, %out_value, %iter_reg
256
+ EXPAND ARRAY_INTO_ITER_NEXT_BACK_U64 %out_has, %out_value, %iter_reg
257
+ [END_MACRO]
258
+
259
+ [MACRO] ARRAY_INTO_ITER_NTH_U64 %out_has, %out_value, %iter_reg, %nth
260
+ EXPAND ITER_NTH_U64 %out_has, %out_value, %iter_reg, %nth
261
+ [END_MACRO]
262
+
263
+ // Rust method-name alias over ARRAY_INTO_ITER_NTH_U64.
264
+ [MACRO] ARRAY_INTO_ITER_NTH %out_has, %out_value, %iter_reg, %nth
265
+ EXPAND ARRAY_INTO_ITER_NTH_U64 %out_has, %out_value, %iter_reg, %nth
266
+ [END_MACRO]
267
+
268
+ [MACRO] ARRAY_INTO_ITER_NTH_BACK_U64 %out_has, %out_value, %iter_reg, %nth
269
+ EXPAND ITER_NTH_BACK_U64 %out_has, %out_value, %iter_reg, %nth
270
+ [END_MACRO]
271
+
272
+ // Rust method-name alias over ARRAY_INTO_ITER_NTH_BACK_U64.
273
+ [MACRO] ARRAY_INTO_ITER_NTH_BACK %out_has, %out_value, %iter_reg, %nth
274
+ EXPAND ARRAY_INTO_ITER_NTH_BACK_U64 %out_has, %out_value, %iter_reg, %nth
275
+ [END_MACRO]
276
+
277
+ [MACRO] ARRAY_INTO_ITER_TRY_NEXT_CHUNK_U64 %out_ok, %out_filled, %iter_reg, %dst_ptr, %count
278
+ EXPAND ITER_TRY_NEXT_CHUNK_U64 %out_ok, %out_filled, %iter_reg, %dst_ptr, %count
279
+ [END_MACRO]
280
+
281
+ // Rust method-name alias over ARRAY_INTO_ITER_TRY_NEXT_CHUNK_U64.
282
+ [MACRO] ARRAY_INTO_ITER_TRY_NEXT_CHUNK %out_ok, %out_filled, %iter_reg, %dst_ptr, %count
283
+ EXPAND ARRAY_INTO_ITER_TRY_NEXT_CHUNK_U64 %out_ok, %out_filled, %iter_reg, %dst_ptr, %count
284
+ [END_MACRO]
285
+
286
+ [MACRO] ARRAY_INTO_ITER_COUNT_U64 %out_count, %iter_reg
287
+ EXPAND ITER_COUNT %out_count, %iter_reg
288
+ [END_MACRO]
289
+
290
+ // Rust method-name alias over ARRAY_INTO_ITER_COUNT_U64.
291
+ [MACRO] ARRAY_INTO_ITER_COUNT %out_count, %iter_reg
292
+ EXPAND ARRAY_INTO_ITER_COUNT_U64 %out_count, %iter_reg
293
+ [END_MACRO]
294
+
295
+ [MACRO] ARRAY_INTO_ITER_LAST_U64 %out_has, %out_value, %iter_reg
296
+ EXPAND ITER_LAST_U64 %out_has, %out_value, %iter_reg
297
+ [END_MACRO]
298
+
299
+ // Rust method-name alias over ARRAY_INTO_ITER_LAST_U64.
300
+ [MACRO] ARRAY_INTO_ITER_LAST %out_has, %out_value, %iter_reg
301
+ EXPAND ARRAY_INTO_ITER_LAST_U64 %out_has, %out_value, %iter_reg
302
+ [END_MACRO]
303
+
304
+ [MACRO] ARRAY_INTO_ITER_ADVANCE_BY %out_ok, %out_remaining, %iter_reg, %count
305
+ EXPAND ITER_ADVANCE_BY %out_ok, %out_remaining, %iter_reg, %count
306
+ [END_MACRO]
307
+
308
+ [MACRO] ARRAY_INTO_ITER_ADVANCE_BACK_BY %out_ok, %out_remaining, %iter_reg, %count
309
+ EXPAND ITER_ADVANCE_BACK_BY %out_ok, %out_remaining, %iter_reg, %count
310
+ [END_MACRO]
311
+
312
+ [MACRO] ARRAY_INTO_ITER_FOLD_U64 %out_value, %iter_reg, %init_value, %fold_fn
313
+ EXPAND ITER_FOLD_U64 %out_value, %iter_reg, %init_value, %fold_fn
314
+ [END_MACRO]
315
+
316
+ // Rust method-name alias over ARRAY_INTO_ITER_FOLD_U64.
317
+ [MACRO] ARRAY_INTO_ITER_FOLD %out_value, %iter_reg, %init_value, %fold_fn
318
+ EXPAND ARRAY_INTO_ITER_FOLD_U64 %out_value, %iter_reg, %init_value, %fold_fn
319
+ [END_MACRO]
320
+
321
+ [MACRO] ARRAY_INTO_ITER_TRY_FOLD_U64 %out_ok, %out_value, %iter_reg, %init_value, %fold_fn
322
+ EXPAND ITER_TRY_FOLD_U64 %out_ok, %out_value, %iter_reg, %init_value, %fold_fn
323
+ [END_MACRO]
324
+
325
+ // Rust method-name alias over ARRAY_INTO_ITER_TRY_FOLD_U64.
326
+ [MACRO] ARRAY_INTO_ITER_TRY_FOLD %out_ok, %out_value, %iter_reg, %init_value, %fold_fn
327
+ EXPAND ARRAY_INTO_ITER_TRY_FOLD_U64 %out_ok, %out_value, %iter_reg, %init_value, %fold_fn
328
+ [END_MACRO]
329
+
330
+ [MACRO] ARRAY_INTO_ITER_RFOLD_U64 %out_value, %iter_reg, %init_value, %fold_fn
331
+ EXPAND ITER_RFOLD_U64 %out_value, %iter_reg, %init_value, %fold_fn
332
+ [END_MACRO]
333
+
334
+ // Rust method-name alias over ARRAY_INTO_ITER_RFOLD_U64.
335
+ [MACRO] ARRAY_INTO_ITER_RFOLD %out_value, %iter_reg, %init_value, %fold_fn
336
+ EXPAND ARRAY_INTO_ITER_RFOLD_U64 %out_value, %iter_reg, %init_value, %fold_fn
337
+ [END_MACRO]
338
+
339
+ [MACRO] ARRAY_INTO_ITER_TRY_RFOLD_U64 %out_ok, %out_value, %iter_reg, %init_value, %fold_fn
340
+ EXPAND ITER_TRY_RFOLD_U64 %out_ok, %out_value, %iter_reg, %init_value, %fold_fn
341
+ [END_MACRO]
342
+
343
+ // Rust method-name alias over ARRAY_INTO_ITER_TRY_RFOLD_U64.
344
+ [MACRO] ARRAY_INTO_ITER_TRY_RFOLD %out_ok, %out_value, %iter_reg, %init_value, %fold_fn
345
+ EXPAND ARRAY_INTO_ITER_TRY_RFOLD_U64 %out_ok, %out_value, %iter_reg, %init_value, %fold_fn
346
+ [END_MACRO]
347
+
348
+ [MACRO] ARRAY_INTO_ITER_SUM_U64 %out_value, %iter_reg
349
+ EXPAND ITER_SUM_U64 %out_value, %iter_reg
350
+ [END_MACRO]
351
+
352
+ // Rust method-name alias over ARRAY_INTO_ITER_SUM_U64.
353
+ [MACRO] ARRAY_INTO_ITER_SUM %out_value, %iter_reg
354
+ EXPAND ARRAY_INTO_ITER_SUM_U64 %out_value, %iter_reg
355
+ [END_MACRO]
356
+
357
+ [MACRO] ARRAY_INTO_ITER_PRODUCT_U64 %out_value, %iter_reg
358
+ EXPAND ITER_PRODUCT_U64 %out_value, %iter_reg
359
+ [END_MACRO]
360
+
361
+ // Rust method-name alias over ARRAY_INTO_ITER_PRODUCT_U64.
362
+ [MACRO] ARRAY_INTO_ITER_PRODUCT %out_value, %iter_reg
363
+ EXPAND ARRAY_INTO_ITER_PRODUCT_U64 %out_value, %iter_reg
364
+ [END_MACRO]
365
+
366
+ [MACRO] ARRAY_INTO_ITER_MIN_U64 %out_has, %out_value, %iter_reg
367
+ EXPAND ITER_MIN_U64 %out_has, %out_value, %iter_reg
368
+ [END_MACRO]
369
+
370
+ // Rust method-name alias over ARRAY_INTO_ITER_MIN_U64.
371
+ [MACRO] ARRAY_INTO_ITER_MIN %out_has, %out_value, %iter_reg
372
+ EXPAND ARRAY_INTO_ITER_MIN_U64 %out_has, %out_value, %iter_reg
373
+ [END_MACRO]
374
+
375
+ [MACRO] ARRAY_INTO_ITER_MAX_U64 %out_has, %out_value, %iter_reg
376
+ EXPAND ITER_MAX_U64 %out_has, %out_value, %iter_reg
377
+ [END_MACRO]
378
+
379
+ // Rust method-name alias over ARRAY_INTO_ITER_MAX_U64.
380
+ [MACRO] ARRAY_INTO_ITER_MAX %out_has, %out_value, %iter_reg
381
+ EXPAND ARRAY_INTO_ITER_MAX_U64 %out_has, %out_value, %iter_reg
382
+ [END_MACRO]
383
+
384
+ [MACRO] ARRAY_INTO_ITER_REDUCE_U64 %out_has, %out_value, %iter_reg, %reduce_fn
385
+ EXPAND ITER_REDUCE_U64 %out_has, %out_value, %iter_reg, %reduce_fn
386
+ [END_MACRO]
387
+
388
+ // Rust method-name alias over ARRAY_INTO_ITER_REDUCE_U64.
389
+ [MACRO] ARRAY_INTO_ITER_REDUCE %out_has, %out_value, %iter_reg, %reduce_fn
390
+ EXPAND ARRAY_INTO_ITER_REDUCE_U64 %out_has, %out_value, %iter_reg, %reduce_fn
391
+ [END_MACRO]
392
+
393
+ [MACRO] ARRAY_INTO_ITER_TRY_REDUCE_U64 %out_ok, %out_has, %out_value, %iter_reg, %reduce_fn
394
+ EXPAND ITER_TRY_REDUCE_U64 %out_ok, %out_has, %out_value, %iter_reg, %reduce_fn
395
+ [END_MACRO]
396
+
397
+ // Rust method-name alias over ARRAY_INTO_ITER_TRY_REDUCE_U64.
398
+ [MACRO] ARRAY_INTO_ITER_TRY_REDUCE %out_ok, %out_has, %out_value, %iter_reg, %reduce_fn
399
+ EXPAND ARRAY_INTO_ITER_TRY_REDUCE_U64 %out_ok, %out_has, %out_value, %iter_reg, %reduce_fn
400
+ [END_MACRO]
401
+
402
+ [MACRO] ARRAY_INTO_ITER_MIN_BY_U64 %out_has, %out_value, %iter_reg, %compare_fn
403
+ EXPAND ITER_MIN_BY_U64 %out_has, %out_value, %iter_reg, %compare_fn
404
+ [END_MACRO]
405
+
406
+ // Rust method-name alias over ARRAY_INTO_ITER_MIN_BY_U64.
407
+ [MACRO] ARRAY_INTO_ITER_MIN_BY %out_has, %out_value, %iter_reg, %compare_fn
408
+ EXPAND ARRAY_INTO_ITER_MIN_BY_U64 %out_has, %out_value, %iter_reg, %compare_fn
409
+ [END_MACRO]
410
+
411
+ [MACRO] ARRAY_INTO_ITER_MAX_BY_U64 %out_has, %out_value, %iter_reg, %compare_fn
412
+ EXPAND ITER_MAX_BY_U64 %out_has, %out_value, %iter_reg, %compare_fn
413
+ [END_MACRO]
414
+
415
+ // Rust method-name alias over ARRAY_INTO_ITER_MAX_BY_U64.
416
+ [MACRO] ARRAY_INTO_ITER_MAX_BY %out_has, %out_value, %iter_reg, %compare_fn
417
+ EXPAND ARRAY_INTO_ITER_MAX_BY_U64 %out_has, %out_value, %iter_reg, %compare_fn
418
+ [END_MACRO]
419
+
420
+ [MACRO] ARRAY_INTO_ITER_MIN_BY_KEY_U64 %out_has, %out_value, %iter_reg, %key_fn
421
+ EXPAND ITER_MIN_BY_KEY_U64 %out_has, %out_value, %iter_reg, %key_fn
422
+ [END_MACRO]
423
+
424
+ // Rust method-name alias over ARRAY_INTO_ITER_MIN_BY_KEY_U64.
425
+ [MACRO] ARRAY_INTO_ITER_MIN_BY_KEY %out_has, %out_value, %iter_reg, %key_fn
426
+ EXPAND ARRAY_INTO_ITER_MIN_BY_KEY_U64 %out_has, %out_value, %iter_reg, %key_fn
427
+ [END_MACRO]
428
+
429
+ [MACRO] ARRAY_INTO_ITER_MAX_BY_KEY_U64 %out_has, %out_value, %iter_reg, %key_fn
430
+ EXPAND ITER_MAX_BY_KEY_U64 %out_has, %out_value, %iter_reg, %key_fn
431
+ [END_MACRO]
432
+
433
+ // Rust method-name alias over ARRAY_INTO_ITER_MAX_BY_KEY_U64.
434
+ [MACRO] ARRAY_INTO_ITER_MAX_BY_KEY %out_has, %out_value, %iter_reg, %key_fn
435
+ EXPAND ARRAY_INTO_ITER_MAX_BY_KEY_U64 %out_has, %out_value, %iter_reg, %key_fn
436
+ [END_MACRO]
437
+
438
+ [MACRO] ARRAY_INTO_ITER_IS_SORTED_U64 %out_bool, %iter_reg
439
+ EXPAND ITER_IS_SORTED_U64 %out_bool, %iter_reg
440
+ [END_MACRO]
441
+
442
+ // Rust method-name alias over ARRAY_INTO_ITER_IS_SORTED_U64.
443
+ [MACRO] ARRAY_INTO_ITER_IS_SORTED %out_bool, %iter_reg
444
+ EXPAND ARRAY_INTO_ITER_IS_SORTED_U64 %out_bool, %iter_reg
445
+ [END_MACRO]
446
+
447
+ [MACRO] ARRAY_INTO_ITER_IS_SORTED_BY_U64 %out_bool, %iter_reg, %compare_fn
448
+ EXPAND ITER_IS_SORTED_BY_U64 %out_bool, %iter_reg, %compare_fn
449
+ [END_MACRO]
450
+
451
+ // Rust method-name alias over ARRAY_INTO_ITER_IS_SORTED_BY_U64.
452
+ [MACRO] ARRAY_INTO_ITER_IS_SORTED_BY %out_bool, %iter_reg, %compare_fn
453
+ EXPAND ARRAY_INTO_ITER_IS_SORTED_BY_U64 %out_bool, %iter_reg, %compare_fn
454
+ [END_MACRO]
455
+
456
+ [MACRO] ARRAY_INTO_ITER_IS_SORTED_BY_KEY_U64 %out_bool, %iter_reg, %key_fn
457
+ EXPAND ITER_IS_SORTED_BY_KEY_U64 %out_bool, %iter_reg, %key_fn
458
+ [END_MACRO]
459
+
460
+ // Rust method-name alias over ARRAY_INTO_ITER_IS_SORTED_BY_KEY_U64.
461
+ [MACRO] ARRAY_INTO_ITER_IS_SORTED_BY_KEY %out_bool, %iter_reg, %key_fn
462
+ EXPAND ARRAY_INTO_ITER_IS_SORTED_BY_KEY_U64 %out_bool, %iter_reg, %key_fn
463
+ [END_MACRO]
464
+
465
+ [MACRO] ARRAY_INTO_ITER_CMP_U64 %out_ordering, %left_iter, %right_iter
466
+ EXPAND ITER_CMP_U64 %out_ordering, %left_iter, %right_iter
467
+ [END_MACRO]
468
+
469
+ // Rust method-name alias over ARRAY_INTO_ITER_CMP_U64.
470
+ [MACRO] ARRAY_INTO_ITER_CMP %out_ordering, %left_iter, %right_iter
471
+ EXPAND ARRAY_INTO_ITER_CMP_U64 %out_ordering, %left_iter, %right_iter
472
+ [END_MACRO]
473
+
474
+ [MACRO] ARRAY_INTO_ITER_CMP_BY_U64 %out_ordering, %left_iter, %right_iter, %compare_fn
475
+ EXPAND ITER_CMP_BY_U64 %out_ordering, %left_iter, %right_iter, %compare_fn
476
+ [END_MACRO]
477
+
478
+ // Rust method-name alias over ARRAY_INTO_ITER_CMP_BY_U64.
479
+ [MACRO] ARRAY_INTO_ITER_CMP_BY %out_ordering, %left_iter, %right_iter, %compare_fn
480
+ EXPAND ARRAY_INTO_ITER_CMP_BY_U64 %out_ordering, %left_iter, %right_iter, %compare_fn
481
+ [END_MACRO]
482
+
483
+ [MACRO] ARRAY_INTO_ITER_PARTIAL_CMP_U64 %out_ordering, %left_iter, %right_iter
484
+ EXPAND ITER_PARTIAL_CMP_U64 %out_ordering, %left_iter, %right_iter
485
+ [END_MACRO]
486
+
487
+ // Rust method-name alias over ARRAY_INTO_ITER_PARTIAL_CMP_U64.
488
+ [MACRO] ARRAY_INTO_ITER_PARTIAL_CMP %out_ordering, %left_iter, %right_iter
489
+ EXPAND ARRAY_INTO_ITER_PARTIAL_CMP_U64 %out_ordering, %left_iter, %right_iter
490
+ [END_MACRO]
491
+
492
+ [MACRO] ARRAY_INTO_ITER_PARTIAL_CMP_BY_U64 %out_ok, %out_ordering, %left_iter, %right_iter, %compare_fn
493
+ EXPAND ITER_PARTIAL_CMP_BY_U64 %out_ok, %out_ordering, %left_iter, %right_iter, %compare_fn
494
+ [END_MACRO]
495
+
496
+ // Rust method-name alias over ARRAY_INTO_ITER_PARTIAL_CMP_BY_U64.
497
+ [MACRO] ARRAY_INTO_ITER_PARTIAL_CMP_BY %out_ok, %out_ordering, %left_iter, %right_iter, %compare_fn
498
+ EXPAND ARRAY_INTO_ITER_PARTIAL_CMP_BY_U64 %out_ok, %out_ordering, %left_iter, %right_iter, %compare_fn
499
+ [END_MACRO]
500
+
501
+ [MACRO] ARRAY_INTO_ITER_EQ_BY_U64 %out_bool, %left_iter, %right_iter, %eq_fn
502
+ EXPAND ITER_EQ_BY_U64 %out_bool, %left_iter, %right_iter, %eq_fn
503
+ [END_MACRO]
504
+
505
+ // Rust method-name alias over ARRAY_INTO_ITER_EQ_BY_U64.
506
+ [MACRO] ARRAY_INTO_ITER_EQ_BY %out_bool, %left_iter, %right_iter, %eq_fn
507
+ EXPAND ARRAY_INTO_ITER_EQ_BY_U64 %out_bool, %left_iter, %right_iter, %eq_fn
508
+ [END_MACRO]
509
+
510
+ [MACRO] ARRAY_INTO_ITER_EQ_U64 %out_bool, %left_iter, %right_iter
511
+ EXPAND ITER_EQ_U64 %out_bool, %left_iter, %right_iter
512
+ [END_MACRO]
513
+
514
+ // Rust method-name alias over ARRAY_INTO_ITER_EQ_U64.
515
+ [MACRO] ARRAY_INTO_ITER_EQ %out_bool, %left_iter, %right_iter
516
+ EXPAND ARRAY_INTO_ITER_EQ_U64 %out_bool, %left_iter, %right_iter
517
+ [END_MACRO]
518
+
519
+ [MACRO] ARRAY_INTO_ITER_PARTIAL_EQ_U64 %out_bool, %left_iter, %right_iter
520
+ EXPAND ITER_PARTIAL_EQ_U64 %out_bool, %left_iter, %right_iter
521
+ [END_MACRO]
522
+
523
+ // Rust method-name alias over ARRAY_INTO_ITER_PARTIAL_EQ_U64.
524
+ [MACRO] ARRAY_INTO_ITER_PARTIAL_EQ %out_bool, %left_iter, %right_iter
525
+ EXPAND ARRAY_INTO_ITER_PARTIAL_EQ_U64 %out_bool, %left_iter, %right_iter
526
+ [END_MACRO]
527
+
528
+ [MACRO] ARRAY_INTO_ITER_NE_U64 %out_bool, %left_iter, %right_iter
529
+ EXPAND ITER_NE_U64 %out_bool, %left_iter, %right_iter
530
+ [END_MACRO]
531
+
532
+ // Rust method-name alias over ARRAY_INTO_ITER_NE_U64.
533
+ [MACRO] ARRAY_INTO_ITER_NE %out_bool, %left_iter, %right_iter
534
+ EXPAND ARRAY_INTO_ITER_NE_U64 %out_bool, %left_iter, %right_iter
535
+ [END_MACRO]
536
+
537
+ [MACRO] ARRAY_INTO_ITER_LT_U64 %out_bool, %left_iter, %right_iter
538
+ EXPAND ITER_LT_U64 %out_bool, %left_iter, %right_iter
539
+ [END_MACRO]
540
+
541
+ // Rust method-name alias over ARRAY_INTO_ITER_LT_U64.
542
+ [MACRO] ARRAY_INTO_ITER_LT %out_bool, %left_iter, %right_iter
543
+ EXPAND ARRAY_INTO_ITER_LT_U64 %out_bool, %left_iter, %right_iter
544
+ [END_MACRO]
545
+
546
+ [MACRO] ARRAY_INTO_ITER_LE_U64 %out_bool, %left_iter, %right_iter
547
+ EXPAND ITER_LE_U64 %out_bool, %left_iter, %right_iter
548
+ [END_MACRO]
549
+
550
+ // Rust method-name alias over ARRAY_INTO_ITER_LE_U64.
551
+ [MACRO] ARRAY_INTO_ITER_LE %out_bool, %left_iter, %right_iter
552
+ EXPAND ARRAY_INTO_ITER_LE_U64 %out_bool, %left_iter, %right_iter
553
+ [END_MACRO]
554
+
555
+ [MACRO] ARRAY_INTO_ITER_GT_U64 %out_bool, %left_iter, %right_iter
556
+ EXPAND ITER_GT_U64 %out_bool, %left_iter, %right_iter
557
+ [END_MACRO]
558
+
559
+ // Rust method-name alias over ARRAY_INTO_ITER_GT_U64.
560
+ [MACRO] ARRAY_INTO_ITER_GT %out_bool, %left_iter, %right_iter
561
+ EXPAND ARRAY_INTO_ITER_GT_U64 %out_bool, %left_iter, %right_iter
562
+ [END_MACRO]
563
+
564
+ [MACRO] ARRAY_INTO_ITER_GE_U64 %out_bool, %left_iter, %right_iter
565
+ EXPAND ITER_GE_U64 %out_bool, %left_iter, %right_iter
566
+ [END_MACRO]
567
+
568
+ // Rust method-name alias over ARRAY_INTO_ITER_GE_U64.
569
+ [MACRO] ARRAY_INTO_ITER_GE %out_bool, %left_iter, %right_iter
570
+ EXPAND ARRAY_INTO_ITER_GE_U64 %out_bool, %left_iter, %right_iter
571
+ [END_MACRO]
572
+
573
+ [MACRO] ARRAY_INTO_ITER_FIND_U64 %out_has, %out_value, %iter_reg, %pred_fn
574
+ EXPAND ITER_FIND_U64 %out_has, %out_value, %iter_reg, %pred_fn
575
+ [END_MACRO]
576
+
577
+ // Rust method-name alias over ARRAY_INTO_ITER_FIND_U64.
578
+ [MACRO] ARRAY_INTO_ITER_FIND %out_has, %out_value, %iter_reg, %pred_fn
579
+ EXPAND ARRAY_INTO_ITER_FIND_U64 %out_has, %out_value, %iter_reg, %pred_fn
580
+ [END_MACRO]
581
+
582
+ [MACRO] ARRAY_INTO_ITER_TRY_FIND_U64 %out_ok, %out_has, %out_value, %iter_reg, %pred_fn
583
+ EXPAND ITER_TRY_FIND_U64 %out_ok, %out_has, %out_value, %iter_reg, %pred_fn
584
+ [END_MACRO]
585
+
586
+ // Rust method-name alias over ARRAY_INTO_ITER_TRY_FIND_U64.
587
+ [MACRO] ARRAY_INTO_ITER_TRY_FIND %out_ok, %out_has, %out_value, %iter_reg, %pred_fn
588
+ EXPAND ARRAY_INTO_ITER_TRY_FIND_U64 %out_ok, %out_has, %out_value, %iter_reg, %pred_fn
589
+ [END_MACRO]
590
+
591
+ [MACRO] ARRAY_INTO_ITER_FIND_MAP_U64 %out_has, %out_value, %iter_reg, %map_fn
592
+ EXPAND ITER_FIND_MAP_U64 %out_has, %out_value, %iter_reg, %map_fn
593
+ [END_MACRO]
594
+
595
+ // Rust method-name alias over ARRAY_INTO_ITER_FIND_MAP_U64.
596
+ [MACRO] ARRAY_INTO_ITER_FIND_MAP %out_has, %out_value, %iter_reg, %map_fn
597
+ EXPAND ARRAY_INTO_ITER_FIND_MAP_U64 %out_has, %out_value, %iter_reg, %map_fn
598
+ [END_MACRO]
599
+
600
+ [MACRO] ARRAY_INTO_ITER_POSITION_U64 %out_has, %out_index, %iter_reg, %pred_fn
601
+ EXPAND ITER_POSITION_U64 %out_has, %out_index, %iter_reg, %pred_fn
602
+ [END_MACRO]
603
+
604
+ // Rust method-name alias over ARRAY_INTO_ITER_POSITION_U64.
605
+ [MACRO] ARRAY_INTO_ITER_POSITION %out_has, %out_index, %iter_reg, %pred_fn
606
+ EXPAND ARRAY_INTO_ITER_POSITION_U64 %out_has, %out_index, %iter_reg, %pred_fn
607
+ [END_MACRO]
608
+
609
+ [MACRO] ARRAY_INTO_ITER_RPOSITION_U64 %out_has, %out_index, %iter_reg, %pred_fn
610
+ EXPAND ITER_RPOSITION_U64 %out_has, %out_index, %iter_reg, %pred_fn
611
+ [END_MACRO]
612
+
613
+ // Rust method-name alias over ARRAY_INTO_ITER_RPOSITION_U64.
614
+ [MACRO] ARRAY_INTO_ITER_RPOSITION %out_has, %out_index, %iter_reg, %pred_fn
615
+ EXPAND ARRAY_INTO_ITER_RPOSITION_U64 %out_has, %out_index, %iter_reg, %pred_fn
616
+ [END_MACRO]
617
+
618
+ [MACRO] ARRAY_INTO_ITER_RFIND_U64 %out_has, %out_value, %iter_reg, %pred_fn
619
+ EXPAND ITER_RFIND_U64 %out_has, %out_value, %iter_reg, %pred_fn
620
+ [END_MACRO]
621
+
622
+ // Rust method-name alias over ARRAY_INTO_ITER_RFIND_U64.
623
+ [MACRO] ARRAY_INTO_ITER_RFIND %out_has, %out_value, %iter_reg, %pred_fn
624
+ EXPAND ARRAY_INTO_ITER_RFIND_U64 %out_has, %out_value, %iter_reg, %pred_fn
625
+ [END_MACRO]
626
+
627
+ [MACRO] ARRAY_INTO_ITER_ANY_U64 %out_bool, %iter_reg, %pred_fn
628
+ EXPAND ITER_ANY_U64 %out_bool, %iter_reg, %pred_fn
629
+ [END_MACRO]
630
+
631
+ // Rust method-name alias over ARRAY_INTO_ITER_ANY_U64.
632
+ [MACRO] ARRAY_INTO_ITER_ANY %out_bool, %iter_reg, %pred_fn
633
+ EXPAND ARRAY_INTO_ITER_ANY_U64 %out_bool, %iter_reg, %pred_fn
634
+ [END_MACRO]
635
+
636
+ [MACRO] ARRAY_INTO_ITER_ALL_U64 %out_bool, %iter_reg, %pred_fn
637
+ EXPAND ITER_ALL_U64 %out_bool, %iter_reg, %pred_fn
638
+ [END_MACRO]
639
+
640
+ // Rust method-name alias over ARRAY_INTO_ITER_ALL_U64.
641
+ [MACRO] ARRAY_INTO_ITER_ALL %out_bool, %iter_reg, %pred_fn
642
+ EXPAND ARRAY_INTO_ITER_ALL_U64 %out_bool, %iter_reg, %pred_fn
643
+ [END_MACRO]
644
+
645
+ [MACRO] ARRAY_INTO_ITER_FOR_EACH_U64 %iter_reg, %each_fn
646
+ EXPAND ITER_FOR_EACH_U64 %iter_reg, %each_fn
647
+ [END_MACRO]
648
+
649
+ // Rust method-name alias over ARRAY_INTO_ITER_FOR_EACH_U64.
650
+ [MACRO] ARRAY_INTO_ITER_FOR_EACH %iter_reg, %each_fn
651
+ EXPAND ARRAY_INTO_ITER_FOR_EACH_U64 %iter_reg, %each_fn
652
+ [END_MACRO]
653
+
654
+ [MACRO] ARRAY_INTO_ITER_TRY_FOR_EACH_U64 %out_ok, %iter_reg, %each_fn
655
+ EXPAND ITER_TRY_FOR_EACH_U64 %out_ok, %iter_reg, %each_fn
656
+ [END_MACRO]
657
+
658
+ // Rust method-name alias over ARRAY_INTO_ITER_TRY_FOR_EACH_U64.
659
+ [MACRO] ARRAY_INTO_ITER_TRY_FOR_EACH %out_ok, %iter_reg, %each_fn
660
+ EXPAND ARRAY_INTO_ITER_TRY_FOR_EACH_U64 %out_ok, %iter_reg, %each_fn
661
+ [END_MACRO]
662
+
663
+ [MACRO] ARRAY_INTO_ITER_COLLECT_U64 %out_vec, %iter_reg
664
+ EXPAND ITER_COLLECT_U64 %out_vec, %iter_reg
665
+ [END_MACRO]
666
+
667
+ // Rust method-name alias over ARRAY_INTO_ITER_COLLECT_U64.
668
+ [MACRO] ARRAY_INTO_ITER_COLLECT %out_vec, %iter_reg
669
+ EXPAND ARRAY_INTO_ITER_COLLECT_U64 %out_vec, %iter_reg
670
+ [END_MACRO]
671
+
672
+ [MACRO] ARRAY_INTO_ITER_TRY_COLLECT_U64 %out_ok, %out_vec, %iter_reg, %try_fn
673
+ EXPAND ITER_TRY_COLLECT_U64 %out_ok, %out_vec, %iter_reg, %try_fn
674
+ [END_MACRO]
675
+
676
+ // Rust method-name alias over ARRAY_INTO_ITER_TRY_COLLECT_U64.
677
+ [MACRO] ARRAY_INTO_ITER_TRY_COLLECT %out_ok, %out_vec, %iter_reg, %try_fn
678
+ EXPAND ARRAY_INTO_ITER_TRY_COLLECT_U64 %out_ok, %out_vec, %iter_reg, %try_fn
679
+ [END_MACRO]
680
+
681
+ [MACRO] ARRAY_INTO_ITER_COLLECT_INTO_U64 %vec_reg, %iter_reg
682
+ EXPAND ITER_COLLECT_INTO_U64 %vec_reg, %iter_reg
683
+ [END_MACRO]
684
+
685
+ // Rust method-name alias over ARRAY_INTO_ITER_COLLECT_INTO_U64.
686
+ [MACRO] ARRAY_INTO_ITER_COLLECT_INTO %vec_reg, %iter_reg
687
+ EXPAND ARRAY_INTO_ITER_COLLECT_INTO_U64 %vec_reg, %iter_reg
688
+ [END_MACRO]
689
+
690
+ [MACRO] ARRAY_INTO_ITER_TAKE_COLLECT_U64 %out_vec, %iter_reg, %count
691
+ EXPAND ITER_TAKE_COLLECT_U64 %out_vec, %iter_reg, %count
692
+ [END_MACRO]
693
+
694
+ // Rust method-name alias over ARRAY_INTO_ITER_TAKE_COLLECT_U64.
695
+ [MACRO] ARRAY_INTO_ITER_TAKE_COLLECT %out_vec, %iter_reg, %count
696
+ EXPAND ARRAY_INTO_ITER_TAKE_COLLECT_U64 %out_vec, %iter_reg, %count
697
+ [END_MACRO]
698
+
699
+ [MACRO] ARRAY_INTO_ITER_SKIP_COLLECT_U64 %out_vec, %iter_reg, %count
700
+ EXPAND ITER_SKIP_COLLECT_U64 %out_vec, %iter_reg, %count
701
+ [END_MACRO]
702
+
703
+ // Rust method-name alias over ARRAY_INTO_ITER_SKIP_COLLECT_U64.
704
+ [MACRO] ARRAY_INTO_ITER_SKIP_COLLECT %out_vec, %iter_reg, %count
705
+ EXPAND ARRAY_INTO_ITER_SKIP_COLLECT_U64 %out_vec, %iter_reg, %count
706
+ [END_MACRO]
707
+
708
+ [MACRO] ARRAY_INTO_ITER_REV_COLLECT_U64 %out_vec, %iter_reg
709
+ EXPAND ITER_REV_COLLECT_U64 %out_vec, %iter_reg
710
+ [END_MACRO]
711
+
712
+ // Rust method-name alias over ARRAY_INTO_ITER_REV_COLLECT_U64.
713
+ [MACRO] ARRAY_INTO_ITER_REV_COLLECT %out_vec, %iter_reg
714
+ EXPAND ARRAY_INTO_ITER_REV_COLLECT_U64 %out_vec, %iter_reg
715
+ [END_MACRO]
716
+
717
+ [MACRO] ARRAY_INTO_ITER_TRY_STEP_BY_COLLECT_U64 %out_ok, %out_vec, %iter_reg, %step
718
+ EXPAND ITER_TRY_STEP_BY_COLLECT_U64 %out_ok, %out_vec, %iter_reg, %step
719
+ [END_MACRO]
720
+
721
+ // Rust method-name alias over ARRAY_INTO_ITER_TRY_STEP_BY_COLLECT_U64.
722
+ [MACRO] ARRAY_INTO_ITER_TRY_STEP_BY_COLLECT %out_ok, %out_vec, %iter_reg, %step
723
+ EXPAND ARRAY_INTO_ITER_TRY_STEP_BY_COLLECT_U64 %out_ok, %out_vec, %iter_reg, %step
724
+ [END_MACRO]
725
+
726
+ [MACRO] ARRAY_INTO_ITER_STEP_BY_COLLECT_U64 %out_vec, %iter_reg, %step
727
+ EXPAND ITER_STEP_BY_COLLECT_U64 %out_vec, %iter_reg, %step
728
+ [END_MACRO]
729
+
730
+ // Rust method-name alias over ARRAY_INTO_ITER_STEP_BY_COLLECT_U64.
731
+ [MACRO] ARRAY_INTO_ITER_STEP_BY_COLLECT %out_vec, %iter_reg, %step
732
+ EXPAND ARRAY_INTO_ITER_STEP_BY_COLLECT_U64 %out_vec, %iter_reg, %step
733
+ [END_MACRO]
734
+
735
+ [MACRO] ARRAY_INTO_ITER_MAP_COLLECT_U64 %out_vec, %iter_reg, %map_fn
736
+ EXPAND ITER_MAP_COLLECT_U64 %out_vec, %iter_reg, %map_fn
737
+ [END_MACRO]
738
+
739
+ // Rust method-name alias over ARRAY_INTO_ITER_MAP_COLLECT_U64.
740
+ [MACRO] ARRAY_INTO_ITER_MAP_COLLECT %out_vec, %iter_reg, %map_fn
741
+ EXPAND ARRAY_INTO_ITER_MAP_COLLECT_U64 %out_vec, %iter_reg, %map_fn
742
+ [END_MACRO]
743
+
744
+ [MACRO] ARRAY_INTO_ITER_INSPECT_COLLECT_U64 %out_vec, %iter_reg, %inspect_fn
745
+ EXPAND ITER_INSPECT_COLLECT_U64 %out_vec, %iter_reg, %inspect_fn
746
+ [END_MACRO]
747
+
748
+ // Rust method-name alias over ARRAY_INTO_ITER_INSPECT_COLLECT_U64.
749
+ [MACRO] ARRAY_INTO_ITER_INSPECT_COLLECT %out_vec, %iter_reg, %inspect_fn
750
+ EXPAND ARRAY_INTO_ITER_INSPECT_COLLECT_U64 %out_vec, %iter_reg, %inspect_fn
751
+ [END_MACRO]
752
+
753
+ [MACRO] ARRAY_INTO_ITER_SCAN_COLLECT_U64 %out_vec, %iter_reg, %initial_state, %scan_fn
754
+ EXPAND ITER_SCAN_COLLECT_U64 %out_vec, %iter_reg, %initial_state, %scan_fn
755
+ [END_MACRO]
756
+
757
+ // Rust method-name alias over ARRAY_INTO_ITER_SCAN_COLLECT_U64.
758
+ [MACRO] ARRAY_INTO_ITER_SCAN_COLLECT %out_vec, %iter_reg, %initial_state, %scan_fn
759
+ EXPAND ARRAY_INTO_ITER_SCAN_COLLECT_U64 %out_vec, %iter_reg, %initial_state, %scan_fn
760
+ [END_MACRO]
761
+
762
+ [MACRO] ARRAY_INTO_ITER_FILTER_COLLECT_U64 %out_vec, %iter_reg, %pred_fn
763
+ EXPAND ITER_FILTER_COLLECT_U64 %out_vec, %iter_reg, %pred_fn
764
+ [END_MACRO]
765
+
766
+ // Rust method-name alias over ARRAY_INTO_ITER_FILTER_COLLECT_U64.
767
+ [MACRO] ARRAY_INTO_ITER_FILTER_COLLECT %out_vec, %iter_reg, %pred_fn
768
+ EXPAND ARRAY_INTO_ITER_FILTER_COLLECT_U64 %out_vec, %iter_reg, %pred_fn
769
+ [END_MACRO]
770
+
771
+ [MACRO] ARRAY_INTO_ITER_FILTER_MAP_COLLECT_U64 %out_vec, %iter_reg, %map_fn
772
+ EXPAND ITER_FILTER_MAP_COLLECT_U64 %out_vec, %iter_reg, %map_fn
773
+ [END_MACRO]
774
+
775
+ // Rust method-name alias over ARRAY_INTO_ITER_FILTER_MAP_COLLECT_U64.
776
+ [MACRO] ARRAY_INTO_ITER_FILTER_MAP_COLLECT %out_vec, %iter_reg, %map_fn
777
+ EXPAND ARRAY_INTO_ITER_FILTER_MAP_COLLECT_U64 %out_vec, %iter_reg, %map_fn
778
+ [END_MACRO]
779
+
780
+ [MACRO] ARRAY_INTO_ITER_MAP_WHILE_COLLECT_U64 %out_vec, %iter_reg, %map_fn
781
+ EXPAND ITER_MAP_WHILE_COLLECT_U64 %out_vec, %iter_reg, %map_fn
782
+ [END_MACRO]
783
+
784
+ // Rust method-name alias over ARRAY_INTO_ITER_MAP_WHILE_COLLECT_U64.
785
+ [MACRO] ARRAY_INTO_ITER_MAP_WHILE_COLLECT %out_vec, %iter_reg, %map_fn
786
+ EXPAND ARRAY_INTO_ITER_MAP_WHILE_COLLECT_U64 %out_vec, %iter_reg, %map_fn
787
+ [END_MACRO]
788
+
789
+ [MACRO] ARRAY_INTO_ITER_INTERSPERSE_COLLECT_U64 %out_vec, %iter_reg, %separator
790
+ EXPAND ITER_INTERSPERSE_COLLECT_U64 %out_vec, %iter_reg, %separator
791
+ [END_MACRO]
792
+
793
+ // Rust method-name alias over ARRAY_INTO_ITER_INTERSPERSE_COLLECT_U64.
794
+ [MACRO] ARRAY_INTO_ITER_INTERSPERSE_COLLECT %out_vec, %iter_reg, %separator
795
+ EXPAND ARRAY_INTO_ITER_INTERSPERSE_COLLECT_U64 %out_vec, %iter_reg, %separator
796
+ [END_MACRO]
797
+
798
+ [MACRO] ARRAY_INTO_ITER_INTERSPERSE_WITH_COLLECT_U64 %out_vec, %iter_reg, %sep_fn
799
+ EXPAND ITER_INTERSPERSE_WITH_COLLECT_U64 %out_vec, %iter_reg, %sep_fn
800
+ [END_MACRO]
801
+
802
+ // Rust method-name alias over ARRAY_INTO_ITER_INTERSPERSE_WITH_COLLECT_U64.
803
+ [MACRO] ARRAY_INTO_ITER_INTERSPERSE_WITH_COLLECT %out_vec, %iter_reg, %sep_fn
804
+ EXPAND ARRAY_INTO_ITER_INTERSPERSE_WITH_COLLECT_U64 %out_vec, %iter_reg, %sep_fn
805
+ [END_MACRO]
806
+
807
+ [MACRO] ARRAY_INTO_ITER_CYCLE_TAKE_COLLECT_U64 %out_vec, %iter_reg, %count
808
+ EXPAND ITER_CYCLE_TAKE_COLLECT_U64 %out_vec, %iter_reg, %count
809
+ [END_MACRO]
810
+
811
+ // Rust method-name alias over ARRAY_INTO_ITER_CYCLE_TAKE_COLLECT_U64.
812
+ [MACRO] ARRAY_INTO_ITER_CYCLE_TAKE_COLLECT %out_vec, %iter_reg, %count
813
+ EXPAND ARRAY_INTO_ITER_CYCLE_TAKE_COLLECT_U64 %out_vec, %iter_reg, %count
814
+ [END_MACRO]
815
+
816
+ [MACRO] ARRAY_INTO_ITER_TAKE_WHILE_COLLECT_U64 %out_vec, %iter_reg, %pred_fn
817
+ EXPAND ITER_TAKE_WHILE_COLLECT_U64 %out_vec, %iter_reg, %pred_fn
818
+ [END_MACRO]
819
+
820
+ // Rust method-name alias over ARRAY_INTO_ITER_TAKE_WHILE_COLLECT_U64.
821
+ [MACRO] ARRAY_INTO_ITER_TAKE_WHILE_COLLECT %out_vec, %iter_reg, %pred_fn
822
+ EXPAND ARRAY_INTO_ITER_TAKE_WHILE_COLLECT_U64 %out_vec, %iter_reg, %pred_fn
823
+ [END_MACRO]
824
+
825
+ [MACRO] ARRAY_INTO_ITER_SKIP_WHILE_COLLECT_U64 %out_vec, %iter_reg, %pred_fn
826
+ EXPAND ITER_SKIP_WHILE_COLLECT_U64 %out_vec, %iter_reg, %pred_fn
827
+ [END_MACRO]
828
+
829
+ // Rust method-name alias over ARRAY_INTO_ITER_SKIP_WHILE_COLLECT_U64.
830
+ [MACRO] ARRAY_INTO_ITER_SKIP_WHILE_COLLECT %out_vec, %iter_reg, %pred_fn
831
+ EXPAND ARRAY_INTO_ITER_SKIP_WHILE_COLLECT_U64 %out_vec, %iter_reg, %pred_fn
832
+ [END_MACRO]
833
+
834
+ [MACRO] ARRAY_INTO_ITER_ENUMERATE_COLLECT_U64 %out_vec, %iter_reg
835
+ EXPAND ITER_ENUMERATE_COLLECT_U64 %out_vec, %iter_reg
836
+ [END_MACRO]
837
+
838
+ // Rust method-name alias over ARRAY_INTO_ITER_ENUMERATE_COLLECT_U64.
839
+ [MACRO] ARRAY_INTO_ITER_ENUMERATE_COLLECT %out_vec, %iter_reg
840
+ EXPAND ARRAY_INTO_ITER_ENUMERATE_COLLECT_U64 %out_vec, %iter_reg
841
+ [END_MACRO]
842
+
843
+ [MACRO] ARRAY_INTO_ITER_ZIP_COLLECT_U64 %out_vec, %left_iter, %right_iter
844
+ EXPAND ITER_ZIP_COLLECT_U64 %out_vec, %left_iter, %right_iter
845
+ [END_MACRO]
846
+
847
+ // Rust method-name alias over ARRAY_INTO_ITER_ZIP_COLLECT_U64.
848
+ [MACRO] ARRAY_INTO_ITER_ZIP_COLLECT %out_vec, %left_iter, %right_iter
849
+ EXPAND ARRAY_INTO_ITER_ZIP_COLLECT_U64 %out_vec, %left_iter, %right_iter
850
+ [END_MACRO]
851
+
852
+ [MACRO] ARRAY_INTO_ITER_CHAIN_COLLECT_U64 %out_vec, %left_iter, %right_iter
853
+ EXPAND ITER_CHAIN_COLLECT_U64 %out_vec, %left_iter, %right_iter
854
+ [END_MACRO]
855
+
856
+ // Rust method-name alias over ARRAY_INTO_ITER_CHAIN_COLLECT_U64.
857
+ [MACRO] ARRAY_INTO_ITER_CHAIN_COLLECT %out_vec, %left_iter, %right_iter
858
+ EXPAND ARRAY_INTO_ITER_CHAIN_COLLECT_U64 %out_vec, %left_iter, %right_iter
859
+ [END_MACRO]
860
+
861
+ [MACRO] ARRAY_INTO_ITER_BY_REF_COLLECT_U64 %out_vec, %iter_reg
862
+ EXPAND ITER_BY_REF_COLLECT_U64 %out_vec, %iter_reg
863
+ [END_MACRO]
864
+
865
+ // Rust method-name alias over ARRAY_INTO_ITER_BY_REF_COLLECT_U64.
866
+ [MACRO] ARRAY_INTO_ITER_BY_REF_COLLECT %out_vec, %iter_reg
867
+ EXPAND ARRAY_INTO_ITER_BY_REF_COLLECT_U64 %out_vec, %iter_reg
868
+ [END_MACRO]
869
+
870
+ [MACRO] ARRAY_INTO_ITER_FUSE_COLLECT_U64 %out_vec, %iter_reg
871
+ EXPAND ITER_FUSE_COLLECT_U64 %out_vec, %iter_reg
872
+ [END_MACRO]
873
+
874
+ // Rust method-name alias over ARRAY_INTO_ITER_FUSE_COLLECT_U64.
875
+ [MACRO] ARRAY_INTO_ITER_FUSE_COLLECT %out_vec, %iter_reg
876
+ EXPAND ARRAY_INTO_ITER_FUSE_COLLECT_U64 %out_vec, %iter_reg
877
+ [END_MACRO]
878
+
879
+ [MACRO] ARRAY_INTO_ITER_PEEKABLE_COLLECT_U64 %out_vec, %iter_reg
880
+ EXPAND ITER_PEEKABLE_COLLECT_U64 %out_vec, %iter_reg
881
+ [END_MACRO]
882
+
883
+ // Rust method-name alias over ARRAY_INTO_ITER_PEEKABLE_COLLECT_U64.
884
+ [MACRO] ARRAY_INTO_ITER_PEEKABLE_COLLECT %out_vec, %iter_reg
885
+ EXPAND ARRAY_INTO_ITER_PEEKABLE_COLLECT_U64 %out_vec, %iter_reg
886
+ [END_MACRO]
887
+
888
+ [MACRO] ARRAY_INTO_ITER_PARTITION_U64 %out_true_vec, %out_false_vec, %iter_reg, %pred_fn
889
+ EXPAND ITER_PARTITION_U64 %out_true_vec, %out_false_vec, %iter_reg, %pred_fn
890
+ [END_MACRO]
891
+
892
+ // Rust method-name alias over ARRAY_INTO_ITER_PARTITION_U64.
893
+ [MACRO] ARRAY_INTO_ITER_PARTITION %out_true_vec, %out_false_vec, %iter_reg, %pred_fn
894
+ EXPAND ARRAY_INTO_ITER_PARTITION_U64 %out_true_vec, %out_false_vec, %iter_reg, %pred_fn
895
+ [END_MACRO]
896
+
897
+ [MACRO] ARRAY_INTO_ITER_IS_PARTITIONED_U64 %out_bool, %iter_reg, %pred_fn
898
+ EXPAND ITER_IS_PARTITIONED_U64 %out_bool, %iter_reg, %pred_fn
899
+ [END_MACRO]
900
+
901
+ // Rust method-name alias over ARRAY_INTO_ITER_IS_PARTITIONED_U64.
902
+ [MACRO] ARRAY_INTO_ITER_IS_PARTITIONED %out_bool, %iter_reg, %pred_fn
903
+ EXPAND ARRAY_INTO_ITER_IS_PARTITIONED_U64 %out_bool, %iter_reg, %pred_fn
904
+ [END_MACRO]
905
+
906
+ [MACRO] ARRAY_INTO_ITER_ARRAY_CHUNKS_COLLECT_U64 %out_ok, %out_vec, %iter_reg, %chunk_size
907
+ EXPAND ITER_ARRAY_CHUNKS_COLLECT_U64 %out_ok, %out_vec, %iter_reg, %chunk_size
908
+ [END_MACRO]
909
+
910
+ // Rust method-name alias over ARRAY_INTO_ITER_ARRAY_CHUNKS_COLLECT_U64.
911
+ [MACRO] ARRAY_INTO_ITER_ARRAY_CHUNKS_COLLECT %out_ok, %out_vec, %iter_reg, %chunk_size
912
+ EXPAND ARRAY_INTO_ITER_ARRAY_CHUNKS_COLLECT_U64 %out_ok, %out_vec, %iter_reg, %chunk_size
913
+ [END_MACRO]
914
+
915
+ [MACRO] ARRAY_INTO_ITER_MAP_WINDOWS_COLLECT_U64 %out_ok, %out_vec, %iter_reg, %window_size, %map_fn
916
+ EXPAND ITER_MAP_WINDOWS_COLLECT_U64 %out_ok, %out_vec, %iter_reg, %window_size, %map_fn
917
+ [END_MACRO]
918
+
919
+ // Rust method-name alias over ARRAY_INTO_ITER_MAP_WINDOWS_COLLECT_U64.
920
+ [MACRO] ARRAY_INTO_ITER_MAP_WINDOWS_COLLECT %out_ok, %out_vec, %iter_reg, %window_size, %map_fn
921
+ EXPAND ARRAY_INTO_ITER_MAP_WINDOWS_COLLECT_U64 %out_ok, %out_vec, %iter_reg, %window_size, %map_fn
922
+ [END_MACRO]
923
+
924
+ [MACRO] ARRAY_INTO_ITER_CLONE_U64 %out_iter, %out_vec, %iter_reg
925
+ EXPAND VEC_INTO_ITER_CLONE_U64 %out_iter, %out_vec, %iter_reg
926
+ [END_MACRO]
927
+
928
+ // Rust method-name alias over ARRAY_INTO_ITER_CLONE_U64.
929
+ [MACRO] ARRAY_INTO_ITER_CLONE %out_iter, %out_vec, %iter_reg
930
+ EXPAND ARRAY_INTO_ITER_CLONE_U64 %out_iter, %out_vec, %iter_reg
931
+ [END_MACRO]
932
+
933
+ [MACRO] ARRAY_ITER_AS_REF_SLICE_U64 %out_slice, %iter_reg
934
+ EXPAND ITER_AS_SLICE_U64 %out_slice, %iter_reg
935
+ [END_MACRO]
936
+
937
+ // Rust method-name alias over ARRAY_ITER_AS_REF_SLICE_U64.
938
+ [MACRO] ARRAY_ITER_AS_REF_SLICE %out_slice, %iter_reg
939
+ EXPAND ARRAY_ITER_AS_REF_SLICE_U64 %out_slice, %iter_reg
940
+ [END_MACRO]
941
+
942
+ [MACRO] ARRAY_ITER_SIZE_HINT_U64 %out_lower, %out_upper, %iter_reg
943
+ EXPAND ITER_SIZE_HINT %out_lower, %out_upper, %iter_reg
944
+ [END_MACRO]
945
+
946
+ // Rust method-name alias over ARRAY_ITER_SIZE_HINT_U64.
947
+ [MACRO] ARRAY_ITER_SIZE_HINT %out_lower, %out_upper, %iter_reg
948
+ EXPAND ARRAY_ITER_SIZE_HINT_U64 %out_lower, %out_upper, %iter_reg
949
+ [END_MACRO]
950
+
951
+ [MACRO] ARRAY_ITER_EXACT_SIZE_LEN_U64 %out_len, %iter_reg
952
+ EXPAND ITER_EXACT_SIZE_LEN %out_len, %iter_reg
953
+ [END_MACRO]
954
+
955
+ // Rust method-name alias over ARRAY_ITER_EXACT_SIZE_LEN_U64.
956
+ [MACRO] ARRAY_ITER_EXACT_SIZE_LEN %out_len, %iter_reg
957
+ EXPAND ARRAY_ITER_EXACT_SIZE_LEN_U64 %out_len, %iter_reg
958
+ [END_MACRO]
959
+
960
+ [MACRO] ARRAY_ITER_EXACT_SIZE_IS_EMPTY_U64 %out_bool, %iter_reg
961
+ EXPAND ITER_EXACT_SIZE_IS_EMPTY %out_bool, %iter_reg
962
+ [END_MACRO]
963
+
964
+ // Rust method-name alias over ARRAY_ITER_EXACT_SIZE_IS_EMPTY_U64.
965
+ [MACRO] ARRAY_ITER_EXACT_SIZE_IS_EMPTY %out_bool, %iter_reg
966
+ EXPAND ARRAY_ITER_EXACT_SIZE_IS_EMPTY_U64 %out_bool, %iter_reg
967
+ [END_MACRO]
968
+
969
+ [MACRO] ARRAY_ITER_NEXT_U64 %out_has, %out_value, %iter_reg
970
+ EXPAND ITER_NEXT_U64 %out_has, %out_value, %iter_reg
971
+ [END_MACRO]
972
+
973
+ // Rust method-name alias over ARRAY_ITER_NEXT_U64.
974
+ [MACRO] ARRAY_ITER_NEXT %out_has, %out_value, %iter_reg
975
+ EXPAND ARRAY_ITER_NEXT_U64 %out_has, %out_value, %iter_reg
976
+ [END_MACRO]
977
+
978
+ [MACRO] ARRAY_ITER_NEXT_BACK_U64 %out_has, %out_value, %iter_reg
979
+ EXPAND ITER_NEXT_BACK_U64 %out_has, %out_value, %iter_reg
980
+ [END_MACRO]
981
+
982
+ // Rust method-name alias over ARRAY_ITER_NEXT_BACK_U64.
983
+ [MACRO] ARRAY_ITER_NEXT_BACK %out_has, %out_value, %iter_reg
984
+ EXPAND ARRAY_ITER_NEXT_BACK_U64 %out_has, %out_value, %iter_reg
985
+ [END_MACRO]
986
+
987
+ [MACRO] ARRAY_ITER_CLONE_U64 %out_iter, %iter_reg
988
+ EXPAND ITER_CLONE %out_iter, %iter_reg
989
+ [END_MACRO]
990
+
991
+ // Rust method-name alias over ARRAY_ITER_CLONE_U64.
992
+ [MACRO] ARRAY_ITER_CLONE %out_iter, %iter_reg
993
+ EXPAND ARRAY_ITER_CLONE_U64 %out_iter, %iter_reg
994
+ [END_MACRO]
995
+
996
+ [MACRO] ARRAY_ITER_MUT_AS_REF_SLICE_U64 %out_slice, %iter_reg
997
+ EXPAND ITER_AS_SLICE_U64 %out_slice, %iter_reg
998
+ [END_MACRO]
999
+
1000
+ // Rust method-name alias over ARRAY_ITER_MUT_AS_REF_SLICE_U64.
1001
+ [MACRO] ARRAY_ITER_MUT_AS_REF_SLICE %out_slice, %iter_reg
1002
+ EXPAND ARRAY_ITER_MUT_AS_REF_SLICE_U64 %out_slice, %iter_reg
1003
+ [END_MACRO]
1004
+
1005
+ [MACRO] ARRAY_ITER_MUT_AS_MUT_SLICE_U64 %out_slice, %iter_reg
1006
+ EXPAND ITER_AS_SLICE_U64 %out_slice, %iter_reg
1007
+ [END_MACRO]
1008
+
1009
+ // Rust method-name alias over ARRAY_ITER_MUT_AS_MUT_SLICE_U64.
1010
+ [MACRO] ARRAY_ITER_MUT_AS_MUT_SLICE %out_slice, %iter_reg
1011
+ EXPAND ARRAY_ITER_MUT_AS_MUT_SLICE_U64 %out_slice, %iter_reg
1012
+ [END_MACRO]
1013
+
1014
+ [MACRO] ARRAY_ITER_MUT_SIZE_HINT_U64 %out_lower, %out_upper, %iter_reg
1015
+ EXPAND ITER_SIZE_HINT %out_lower, %out_upper, %iter_reg
1016
+ [END_MACRO]
1017
+
1018
+ // Rust method-name alias over ARRAY_ITER_MUT_SIZE_HINT_U64.
1019
+ [MACRO] ARRAY_ITER_MUT_SIZE_HINT %out_lower, %out_upper, %iter_reg
1020
+ EXPAND ARRAY_ITER_MUT_SIZE_HINT_U64 %out_lower, %out_upper, %iter_reg
1021
+ [END_MACRO]
1022
+
1023
+ [MACRO] ARRAY_ITER_MUT_EXACT_SIZE_LEN_U64 %out_len, %iter_reg
1024
+ EXPAND ITER_EXACT_SIZE_LEN %out_len, %iter_reg
1025
+ [END_MACRO]
1026
+
1027
+ // Rust method-name alias over ARRAY_ITER_MUT_EXACT_SIZE_LEN_U64.
1028
+ [MACRO] ARRAY_ITER_MUT_EXACT_SIZE_LEN %out_len, %iter_reg
1029
+ EXPAND ARRAY_ITER_MUT_EXACT_SIZE_LEN_U64 %out_len, %iter_reg
1030
+ [END_MACRO]
1031
+
1032
+ [MACRO] ARRAY_ITER_MUT_EXACT_SIZE_IS_EMPTY_U64 %out_bool, %iter_reg
1033
+ EXPAND ITER_EXACT_SIZE_IS_EMPTY %out_bool, %iter_reg
1034
+ [END_MACRO]
1035
+
1036
+ // Rust method-name alias over ARRAY_ITER_MUT_EXACT_SIZE_IS_EMPTY_U64.
1037
+ [MACRO] ARRAY_ITER_MUT_EXACT_SIZE_IS_EMPTY %out_bool, %iter_reg
1038
+ EXPAND ARRAY_ITER_MUT_EXACT_SIZE_IS_EMPTY_U64 %out_bool, %iter_reg
1039
+ [END_MACRO]
1040
+
1041
+ [MACRO] ARRAY_ITER_MUT_NEXT_U64 %out_has, %out_value, %iter_reg
1042
+ EXPAND ITER_NEXT_U64 %out_has, %out_value, %iter_reg
1043
+ [END_MACRO]
1044
+
1045
+ // Rust method-name alias over ARRAY_ITER_MUT_NEXT_U64.
1046
+ [MACRO] ARRAY_ITER_MUT_NEXT %out_has, %out_value, %iter_reg
1047
+ EXPAND ARRAY_ITER_MUT_NEXT_U64 %out_has, %out_value, %iter_reg
1048
+ [END_MACRO]
1049
+
1050
+ [MACRO] ARRAY_ITER_MUT_NEXT_BACK_U64 %out_has, %out_value, %iter_reg
1051
+ EXPAND ITER_NEXT_BACK_U64 %out_has, %out_value, %iter_reg
1052
+ [END_MACRO]
1053
+
1054
+ // Rust method-name alias over ARRAY_ITER_MUT_NEXT_BACK_U64.
1055
+ [MACRO] ARRAY_ITER_MUT_NEXT_BACK %out_has, %out_value, %iter_reg
1056
+ EXPAND ARRAY_ITER_MUT_NEXT_BACK_U64 %out_has, %out_value, %iter_reg
1057
+ [END_MACRO]
1058
+
1059
+ [MACRO] ARRAY_GET_U64 %out_value, %array_ptr, %index
1060
+ __array_get_off_%out_value = mul %index, 8
1061
+ __array_get_ptr_%out_value = ptr_add %array_ptr, __array_get_off_%out_value
1062
+ %out_value = load __array_get_ptr_%out_value+0 as u64
1063
+ !__array_get_ptr_%out_value
1064
+ !__array_get_off_%out_value
1065
+ [END_MACRO]
1066
+
1067
+ // Rust method-name alias over ARRAY_GET_U64.
1068
+ [MACRO] ARRAY_GET %out_value, %array_ptr, %index
1069
+ EXPAND ARRAY_GET_U64 %out_value, %array_ptr, %index
1070
+ [END_MACRO]
1071
+
1072
+ [MACRO] ARRAY_GET_MUT_PTR_U64 %out_ptr, %array_ptr, %index
1073
+ __array_mut_off_%out_ptr = mul %index, 8
1074
+ %out_ptr = ptr_add %array_ptr, __array_mut_off_%out_ptr
1075
+ !__array_mut_off_%out_ptr
1076
+ [END_MACRO]
1077
+
1078
+ // Rust method-name alias over ARRAY_GET_MUT_PTR_U64.
1079
+ [MACRO] ARRAY_GET_MUT_PTR %out_ptr, %array_ptr, %index
1080
+ EXPAND ARRAY_GET_MUT_PTR_U64 %out_ptr, %array_ptr, %index
1081
+ [END_MACRO]
1082
+
1083
+ [MACRO] ARRAY_INDEX_U64 %out_value, %array_ptr, %index
1084
+ EXPAND ARRAY_GET_U64 %out_value, %array_ptr, %index
1085
+ [END_MACRO]
1086
+
1087
+ // Rust method-name alias over ARRAY_INDEX_U64.
1088
+ [MACRO] ARRAY_INDEX %out_value, %array_ptr, %index
1089
+ EXPAND ARRAY_INDEX_U64 %out_value, %array_ptr, %index
1090
+ [END_MACRO]
1091
+
1092
+ [MACRO] ARRAY_INDEX_MUT_PTR_U64 %out_ptr, %array_ptr, %index
1093
+ EXPAND ARRAY_GET_MUT_PTR_U64 %out_ptr, %array_ptr, %index
1094
+ [END_MACRO]
1095
+
1096
+ // Rust method-name alias over ARRAY_INDEX_MUT_PTR_U64.
1097
+ [MACRO] ARRAY_INDEX_MUT_PTR %out_ptr, %array_ptr, %index
1098
+ EXPAND ARRAY_INDEX_MUT_PTR_U64 %out_ptr, %array_ptr, %index
1099
+ [END_MACRO]
1100
+
1101
+ [MACRO] ARRAY_TRY_GET_U64 %out_ok, %out_value, %array_ptr, %length, %index
1102
+ __array_get_in_bounds_%out_ok = ult %index, %length
1103
+ br __array_get_in_bounds_%out_ok -> L_ARRAY_TRY_GET_HIT_%out_ok, L_ARRAY_TRY_GET_MISS_%out_ok
1104
+
1105
+ L_ARRAY_TRY_GET_HIT_%out_ok:
1106
+ EXPAND ARRAY_GET_U64 %out_value, %array_ptr, %index
1107
+ %out_ok = add 0, 1
1108
+ !__array_get_in_bounds_%out_ok
1109
+ jmp L_ARRAY_TRY_GET_END_%out_ok
1110
+
1111
+ L_ARRAY_TRY_GET_MISS_%out_ok:
1112
+ %out_value = add 0, 0
1113
+ %out_ok = add 0, 0
1114
+ !__array_get_in_bounds_%out_ok
1115
+
1116
+ L_ARRAY_TRY_GET_END_%out_ok:
1117
+ [END_MACRO]
1118
+
1119
+ // Rust method-name alias over ARRAY_TRY_GET_U64.
1120
+ [MACRO] ARRAY_TRY_GET %out_ok, %out_value, %array_ptr, %length, %index
1121
+ EXPAND ARRAY_TRY_GET_U64 %out_ok, %out_value, %array_ptr, %length, %index
1122
+ [END_MACRO]
1123
+
1124
+ [MACRO] ARRAY_TRY_GET_MUT_PTR_U64 %out_ok, %out_ptr, %array_ptr, %length, %index
1125
+ __array_mut_in_bounds_%out_ok = ult %index, %length
1126
+ br __array_mut_in_bounds_%out_ok -> L_ARRAY_TRY_MUT_HIT_%out_ok, L_ARRAY_TRY_MUT_MISS_%out_ok
1127
+
1128
+ L_ARRAY_TRY_MUT_HIT_%out_ok:
1129
+ EXPAND ARRAY_GET_MUT_PTR_U64 %out_ptr, %array_ptr, %index
1130
+ %out_ok = add 0, 1
1131
+ !__array_mut_in_bounds_%out_ok
1132
+ jmp L_ARRAY_TRY_MUT_END_%out_ok
1133
+
1134
+ L_ARRAY_TRY_MUT_MISS_%out_ok:
1135
+ %out_ptr = 0 as ptr
1136
+ %out_ok = add 0, 0
1137
+ !__array_mut_in_bounds_%out_ok
1138
+
1139
+ L_ARRAY_TRY_MUT_END_%out_ok:
1140
+ [END_MACRO]
1141
+
1142
+ // Rust method-name alias over ARRAY_TRY_GET_MUT_PTR_U64.
1143
+ [MACRO] ARRAY_TRY_GET_MUT_PTR %out_ok, %out_ptr, %array_ptr, %length, %index
1144
+ EXPAND ARRAY_TRY_GET_MUT_PTR_U64 %out_ok, %out_ptr, %array_ptr, %length, %index
1145
+ [END_MACRO]
1146
+
1147
+ [MACRO] ARRAY_FIRST_U64 %out_value, %array_ptr
1148
+ EXPAND ARRAY_GET_U64 %out_value, %array_ptr, 0
1149
+ [END_MACRO]
1150
+
1151
+ // Rust method-name alias over ARRAY_FIRST_U64.
1152
+ [MACRO] ARRAY_FIRST %out_value, %array_ptr
1153
+ EXPAND ARRAY_FIRST_U64 %out_value, %array_ptr
1154
+ [END_MACRO]
1155
+
1156
+ [MACRO] ARRAY_LAST_U64 %out_value, %array_ptr, %length
1157
+ __array_last_idx_%out_value = sub %length, 1
1158
+ EXPAND ARRAY_GET_U64 %out_value, %array_ptr, __array_last_idx_%out_value
1159
+ !__array_last_idx_%out_value
1160
+ [END_MACRO]
1161
+
1162
+ // Rust method-name alias over ARRAY_LAST_U64.
1163
+ [MACRO] ARRAY_LAST %out_value, %array_ptr, %length
1164
+ EXPAND ARRAY_LAST_U64 %out_value, %array_ptr, %length
1165
+ [END_MACRO]
1166
+
1167
+ [MACRO] ARRAY_FILL_U64 %array_ptr, %length, %value
1168
+ __array_fill_idx_slot_%array_ptr = stack_alloc 8
1169
+ store __array_fill_idx_slot_%array_ptr+0, 0 as u64
1170
+ jmp L_ARRAY_FILL_HEAD_%array_ptr
1171
+
1172
+ L_ARRAY_FILL_HEAD_%array_ptr:
1173
+ __array_fill_idx_%array_ptr = load __array_fill_idx_slot_%array_ptr+0 as u64
1174
+ __array_fill_done_%array_ptr = eq __array_fill_idx_%array_ptr, %length
1175
+ br __array_fill_done_%array_ptr -> L_ARRAY_FILL_DONE_%array_ptr, L_ARRAY_FILL_BODY_%array_ptr
1176
+
1177
+ L_ARRAY_FILL_BODY_%array_ptr:
1178
+ __array_fill_off_%array_ptr = mul __array_fill_idx_%array_ptr, 8
1179
+ __array_fill_ptr_%array_ptr = ptr_add %array_ptr, __array_fill_off_%array_ptr
1180
+ store __array_fill_ptr_%array_ptr+0, %value as u64
1181
+ __array_fill_next_%array_ptr = add __array_fill_idx_%array_ptr, 1
1182
+ store __array_fill_idx_slot_%array_ptr+0, __array_fill_next_%array_ptr as u64
1183
+ !__array_fill_next_%array_ptr
1184
+ !__array_fill_ptr_%array_ptr
1185
+ !__array_fill_off_%array_ptr
1186
+ !__array_fill_done_%array_ptr
1187
+ !__array_fill_idx_%array_ptr
1188
+ jmp L_ARRAY_FILL_HEAD_%array_ptr
1189
+
1190
+ L_ARRAY_FILL_DONE_%array_ptr:
1191
+ !__array_fill_done_%array_ptr
1192
+ !__array_fill_idx_%array_ptr
1193
+ [END_MACRO]
1194
+
1195
+ // Rust method-name alias over ARRAY_FILL_U64.
1196
+ [MACRO] ARRAY_FILL %array_ptr, %length, %value
1197
+ EXPAND ARRAY_FILL_U64 %array_ptr, %length, %value
1198
+ [END_MACRO]
1199
+
1200
+ [MACRO] ARRAY_REPEAT_U64 %array_ptr, %length, %value
1201
+ EXPAND ARRAY_FILL_U64 %array_ptr, %length, %value
1202
+ [END_MACRO]
1203
+
1204
+ // Rust method-name alias over ARRAY_REPEAT_U64.
1205
+ [MACRO] ARRAY_REPEAT %array_ptr, %length, %value
1206
+ EXPAND ARRAY_REPEAT_U64 %array_ptr, %length, %value
1207
+ [END_MACRO]
1208
+
1209
+ [MACRO] ARRAY_DEFAULT_U64 %array_ptr, %length
1210
+ EXPAND ARRAY_FILL_U64 %array_ptr, %length, 0
1211
+ [END_MACRO]
1212
+
1213
+ // Rust method-name alias over ARRAY_DEFAULT_U64.
1214
+ [MACRO] ARRAY_DEFAULT %array_ptr, %length
1215
+ EXPAND ARRAY_DEFAULT_U64 %array_ptr, %length
1216
+ [END_MACRO]
1217
+
1218
+ [MACRO] ARRAY_DEFAULT_I64 %array_ptr, %length
1219
+ EXPAND ARRAY_DEFAULT_U64 %array_ptr, %length
1220
+ [END_MACRO]
1221
+
1222
+ [MACRO] ARRAY_DEFAULT_USIZE %array_ptr, %length
1223
+ EXPAND ARRAY_DEFAULT_U64 %array_ptr, %length
1224
+ [END_MACRO]
1225
+
1226
+ [MACRO] ARRAY_DEFAULT_BOOL %array_ptr, %length
1227
+ EXPAND ARRAY_DEFAULT_U64 %array_ptr, %length
1228
+ [END_MACRO]
1229
+
1230
+ [MACRO] DEFAULT_ARRAY_U64 %array_ptr, %length
1231
+ EXPAND ARRAY_DEFAULT_U64 %array_ptr, %length
1232
+ [END_MACRO]
1233
+
1234
+ // Rust method-name alias over DEFAULT_ARRAY_U64.
1235
+ [MACRO] DEFAULT_ARRAY %array_ptr, %length
1236
+ EXPAND DEFAULT_ARRAY_U64 %array_ptr, %length
1237
+ [END_MACRO]
1238
+
1239
+ [MACRO] DEFAULT_ARRAY_I64 %array_ptr, %length
1240
+ EXPAND ARRAY_DEFAULT_I64 %array_ptr, %length
1241
+ [END_MACRO]
1242
+
1243
+ [MACRO] DEFAULT_ARRAY_USIZE %array_ptr, %length
1244
+ EXPAND ARRAY_DEFAULT_USIZE %array_ptr, %length
1245
+ [END_MACRO]
1246
+
1247
+ [MACRO] DEFAULT_ARRAY_BOOL %array_ptr, %length
1248
+ EXPAND ARRAY_DEFAULT_BOOL %array_ptr, %length
1249
+ [END_MACRO]
1250
+
1251
+ [MACRO] ARRAY_COPY_U64 %dst_ptr, %src_ptr, %length
1252
+ __array_copy_bytes_%dst_ptr = mul %length, 8
1253
+ call @sa_mem_copy(&%dst_ptr, &%src_ptr, __array_copy_bytes_%dst_ptr)
1254
+ !__array_copy_bytes_%dst_ptr
1255
+ [END_MACRO]
1256
+
1257
+ // Rust method-name alias over ARRAY_COPY_U64.
1258
+ [MACRO] ARRAY_COPY %dst_ptr, %src_ptr, %length
1259
+ EXPAND ARRAY_COPY_U64 %dst_ptr, %src_ptr, %length
1260
+ [END_MACRO]
1261
+
1262
+ [MACRO] ARRAY_CLONE_U64 %dst_ptr, %src_ptr, %length
1263
+ EXPAND ARRAY_COPY_U64 %dst_ptr, %src_ptr, %length
1264
+ [END_MACRO]
1265
+
1266
+ // Rust method-name alias over ARRAY_CLONE_U64.
1267
+ [MACRO] ARRAY_CLONE %dst_ptr, %src_ptr, %length
1268
+ EXPAND ARRAY_CLONE_U64 %dst_ptr, %src_ptr, %length
1269
+ [END_MACRO]
1270
+
1271
+ [MACRO] ARRAY_CLONE_FROM_U64 %dst_ptr, %src_ptr, %length
1272
+ EXPAND ARRAY_COPY_U64 %dst_ptr, %src_ptr, %length
1273
+ [END_MACRO]
1274
+
1275
+ // Rust method-name alias over ARRAY_CLONE_FROM_U64.
1276
+ [MACRO] ARRAY_CLONE_FROM %dst_ptr, %src_ptr, %length
1277
+ EXPAND ARRAY_CLONE_FROM_U64 %dst_ptr, %src_ptr, %length
1278
+ [END_MACRO]
1279
+
1280
+ [MACRO] ARRAY_COPY_FROM_U64 %dst_ptr, %src_ptr, %length
1281
+ EXPAND ARRAY_COPY_U64 %dst_ptr, %src_ptr, %length
1282
+ [END_MACRO]
1283
+
1284
+ // Rust method-name alias over ARRAY_COPY_FROM_U64.
1285
+ [MACRO] ARRAY_COPY_FROM %dst_ptr, %src_ptr, %length
1286
+ EXPAND ARRAY_COPY_FROM_U64 %dst_ptr, %src_ptr, %length
1287
+ [END_MACRO]
1288
+
1289
+ [MACRO] ARRAY_EQ_U64 %out_bool, %left_ptr, %right_ptr, %length
1290
+ __array_eq_left_%out_bool = stack_alloc Slice_SIZE
1291
+ __array_eq_right_%out_bool = stack_alloc Slice_SIZE
1292
+ EXPAND ARRAY_AS_SLICE_U64 __array_eq_left_%out_bool, %left_ptr, %length
1293
+ EXPAND ARRAY_AS_SLICE_U64 __array_eq_right_%out_bool, %right_ptr, %length
1294
+ EXPAND SLICE_EQ_U64 %out_bool, __array_eq_left_%out_bool, __array_eq_right_%out_bool
1295
+ [END_MACRO]
1296
+
1297
+ // Rust method-name alias over ARRAY_EQ_U64.
1298
+ [MACRO] ARRAY_EQ %out_bool, %left_ptr, %right_ptr, %length
1299
+ EXPAND ARRAY_EQ_U64 %out_bool, %left_ptr, %right_ptr, %length
1300
+ [END_MACRO]
1301
+
1302
+ [MACRO] ARRAY_NE_U64 %out_bool, %left_ptr, %right_ptr, %length
1303
+ EXPAND ARRAY_EQ_U64 __array_ne_eq_%out_bool, %left_ptr, %right_ptr, %length
1304
+ %out_bool = eq __array_ne_eq_%out_bool, 0
1305
+ !__array_ne_eq_%out_bool
1306
+ [END_MACRO]
1307
+
1308
+ // Rust method-name alias over ARRAY_NE_U64.
1309
+ [MACRO] ARRAY_NE %out_bool, %left_ptr, %right_ptr, %length
1310
+ EXPAND ARRAY_NE_U64 %out_bool, %left_ptr, %right_ptr, %length
1311
+ [END_MACRO]
1312
+
1313
+ [MACRO] ARRAY_PARTIAL_EQ_U64 %out_bool, %left_ptr, %right_ptr, %length
1314
+ EXPAND ARRAY_EQ_U64 %out_bool, %left_ptr, %right_ptr, %length
1315
+ [END_MACRO]
1316
+
1317
+ // Rust method-name alias over ARRAY_PARTIAL_EQ_U64.
1318
+ [MACRO] ARRAY_PARTIAL_EQ %out_bool, %left_ptr, %right_ptr, %length
1319
+ EXPAND ARRAY_PARTIAL_EQ_U64 %out_bool, %left_ptr, %right_ptr, %length
1320
+ [END_MACRO]
1321
+
1322
+ [MACRO] ARRAY_CMP_U64 %out_ordering, %left_ptr, %right_ptr, %length
1323
+ __array_cmp_left_%out_ordering = stack_alloc Slice_SIZE
1324
+ __array_cmp_right_%out_ordering = stack_alloc Slice_SIZE
1325
+ EXPAND ARRAY_AS_SLICE_U64 __array_cmp_left_%out_ordering, %left_ptr, %length
1326
+ EXPAND ARRAY_AS_SLICE_U64 __array_cmp_right_%out_ordering, %right_ptr, %length
1327
+ EXPAND SLICE_CMP_U64 %out_ordering, __array_cmp_left_%out_ordering, __array_cmp_right_%out_ordering
1328
+ [END_MACRO]
1329
+
1330
+ // Rust method-name alias over ARRAY_CMP_U64.
1331
+ [MACRO] ARRAY_CMP %out_ordering, %left_ptr, %right_ptr, %length
1332
+ EXPAND ARRAY_CMP_U64 %out_ordering, %left_ptr, %right_ptr, %length
1333
+ [END_MACRO]
1334
+
1335
+ [MACRO] ARRAY_PARTIAL_CMP_U64 %out_ordering, %left_ptr, %right_ptr, %length
1336
+ EXPAND ARRAY_CMP_U64 %out_ordering, %left_ptr, %right_ptr, %length
1337
+ [END_MACRO]
1338
+
1339
+ // Rust method-name alias over ARRAY_PARTIAL_CMP_U64.
1340
+ [MACRO] ARRAY_PARTIAL_CMP %out_ordering, %left_ptr, %right_ptr, %length
1341
+ EXPAND ARRAY_PARTIAL_CMP_U64 %out_ordering, %left_ptr, %right_ptr, %length
1342
+ [END_MACRO]
1343
+
1344
+ [MACRO] ARRAY_LT_U64 %out_bool, %left_ptr, %right_ptr, %length
1345
+ EXPAND ARRAY_CMP_U64 __array_lt_order_%out_bool, %left_ptr, %right_ptr, %length
1346
+ %out_bool = slt __array_lt_order_%out_bool, 0
1347
+ !__array_lt_order_%out_bool
1348
+ [END_MACRO]
1349
+
1350
+ // Rust method-name alias over ARRAY_LT_U64.
1351
+ [MACRO] ARRAY_LT %out_bool, %left_ptr, %right_ptr, %length
1352
+ EXPAND ARRAY_LT_U64 %out_bool, %left_ptr, %right_ptr, %length
1353
+ [END_MACRO]
1354
+
1355
+ [MACRO] ARRAY_LE_U64 %out_bool, %left_ptr, %right_ptr, %length
1356
+ EXPAND ARRAY_CMP_U64 __array_le_order_%out_bool, %left_ptr, %right_ptr, %length
1357
+ %out_bool = sle __array_le_order_%out_bool, 0
1358
+ !__array_le_order_%out_bool
1359
+ [END_MACRO]
1360
+
1361
+ // Rust method-name alias over ARRAY_LE_U64.
1362
+ [MACRO] ARRAY_LE %out_bool, %left_ptr, %right_ptr, %length
1363
+ EXPAND ARRAY_LE_U64 %out_bool, %left_ptr, %right_ptr, %length
1364
+ [END_MACRO]
1365
+
1366
+ [MACRO] ARRAY_GT_U64 %out_bool, %left_ptr, %right_ptr, %length
1367
+ EXPAND ARRAY_CMP_U64 __array_gt_order_%out_bool, %left_ptr, %right_ptr, %length
1368
+ %out_bool = sgt __array_gt_order_%out_bool, 0
1369
+ !__array_gt_order_%out_bool
1370
+ [END_MACRO]
1371
+
1372
+ // Rust method-name alias over ARRAY_GT_U64.
1373
+ [MACRO] ARRAY_GT %out_bool, %left_ptr, %right_ptr, %length
1374
+ EXPAND ARRAY_GT_U64 %out_bool, %left_ptr, %right_ptr, %length
1375
+ [END_MACRO]
1376
+
1377
+ [MACRO] ARRAY_GE_U64 %out_bool, %left_ptr, %right_ptr, %length
1378
+ EXPAND ARRAY_CMP_U64 __array_ge_order_%out_bool, %left_ptr, %right_ptr, %length
1379
+ %out_bool = sge __array_ge_order_%out_bool, 0
1380
+ !__array_ge_order_%out_bool
1381
+ [END_MACRO]
1382
+
1383
+ // Rust method-name alias over ARRAY_GE_U64.
1384
+ [MACRO] ARRAY_GE %out_bool, %left_ptr, %right_ptr, %length
1385
+ EXPAND ARRAY_GE_U64 %out_bool, %left_ptr, %right_ptr, %length
1386
+ [END_MACRO]
1387
+
1388
+ [MACRO] DEFAULT_HASHER_WRITE_ARRAY_U64 %hasher, %array_ptr, %length
1389
+ __array_hash_slice_%hasher = stack_alloc Slice_SIZE
1390
+ EXPAND ARRAY_AS_SLICE_U64 __array_hash_slice_%hasher, %array_ptr, %length
1391
+ EXPAND DEFAULT_HASHER_WRITE_SLICE_U64 %hasher, __array_hash_slice_%hasher
1392
+ [END_MACRO]
1393
+
1394
+ // Rust method-name alias over DEFAULT_HASHER_WRITE_ARRAY_U64.
1395
+ [MACRO] DEFAULT_HASHER_WRITE_ARRAY %hasher, %array_ptr, %length
1396
+ EXPAND DEFAULT_HASHER_WRITE_ARRAY_U64 %hasher, %array_ptr, %length
1397
+ [END_MACRO]
1398
+
1399
+ [MACRO] ARRAY_HASH_U64 %out_hash, %array_ptr, %length
1400
+ __array_hash_hasher_%out_hash = stack_alloc DefaultHasher_SIZE
1401
+ EXPAND DEFAULT_HASHER_NEW __array_hash_hasher_%out_hash
1402
+ EXPAND DEFAULT_HASHER_WRITE_ARRAY_U64 __array_hash_hasher_%out_hash, %array_ptr, %length
1403
+ EXPAND DEFAULT_HASHER_FINISH %out_hash, __array_hash_hasher_%out_hash
1404
+ [END_MACRO]
1405
+
1406
+ // Rust method-name alias over ARRAY_HASH_U64.
1407
+ [MACRO] ARRAY_HASH %out_hash, %array_ptr, %length
1408
+ EXPAND ARRAY_HASH_U64 %out_hash, %array_ptr, %length
1409
+ [END_MACRO]
1410
+
1411
+ [MACRO] BUILD_HASHER_DEFAULT_HASH_ONE_ARRAY_U64 %out_hash, %builder, %array_ptr, %length
1412
+ __build_hash_one_array_u64_hasher_%out_hash = stack_alloc DefaultHasher_SIZE
1413
+ EXPAND BUILD_HASHER_DEFAULT_BUILD __build_hash_one_array_u64_hasher_%out_hash, %builder
1414
+ EXPAND DEFAULT_HASHER_WRITE_ARRAY_U64 __build_hash_one_array_u64_hasher_%out_hash, %array_ptr, %length
1415
+ EXPAND DEFAULT_HASHER_FINISH %out_hash, __build_hash_one_array_u64_hasher_%out_hash
1416
+ [END_MACRO]
1417
+
1418
+ // Rust method-name alias over BUILD_HASHER_DEFAULT_HASH_ONE_ARRAY_U64.
1419
+ [MACRO] BUILD_HASHER_DEFAULT_HASH_ONE_ARRAY %out_hash, %builder, %array_ptr, %length
1420
+ EXPAND BUILD_HASHER_DEFAULT_HASH_ONE_ARRAY_U64 %out_hash, %builder, %array_ptr, %length
1421
+ [END_MACRO]
1422
+
1423
+ [MACRO] RANDOM_STATE_HASH_ONE_ARRAY_U64 %out_hash, %state, %array_ptr, %length
1424
+ __random_state_hash_one_array_u64_hasher_%out_hash = stack_alloc DefaultHasher_SIZE
1425
+ EXPAND RANDOM_STATE_BUILD __random_state_hash_one_array_u64_hasher_%out_hash, %state
1426
+ EXPAND DEFAULT_HASHER_WRITE_ARRAY_U64 __random_state_hash_one_array_u64_hasher_%out_hash, %array_ptr, %length
1427
+ EXPAND DEFAULT_HASHER_FINISH %out_hash, __random_state_hash_one_array_u64_hasher_%out_hash
1428
+ [END_MACRO]
1429
+
1430
+ // Rust method-name alias over RANDOM_STATE_HASH_ONE_ARRAY_U64.
1431
+ [MACRO] RANDOM_STATE_HASH_ONE_ARRAY %out_hash, %state, %array_ptr, %length
1432
+ EXPAND RANDOM_STATE_HASH_ONE_ARRAY_U64 %out_hash, %state, %array_ptr, %length
1433
+ [END_MACRO]
1434
+
1435
+ [MACRO] ARRAY_TRY_COPY_FROM_SLICE_U64 %out_ok, %dst_ptr, %length, %src_slice
1436
+ __array_copy_src_len_%out_ok = load %src_slice+Slice_len as u64
1437
+ __array_copy_same_len_%out_ok = eq %length, __array_copy_src_len_%out_ok
1438
+ br __array_copy_same_len_%out_ok -> L_ARRAY_COPY_SLICE_HIT_%out_ok, L_ARRAY_COPY_SLICE_MISS_%out_ok
1439
+
1440
+ L_ARRAY_COPY_SLICE_HIT_%out_ok:
1441
+ __array_copy_src_ptr_%out_ok = load %src_slice+Slice_ptr as ptr
1442
+ EXPAND ARRAY_COPY_U64 %dst_ptr, __array_copy_src_ptr_%out_ok, %length
1443
+ %out_ok = add 0, 1
1444
+ !__array_copy_src_ptr_%out_ok
1445
+ !__array_copy_same_len_%out_ok
1446
+ !__array_copy_src_len_%out_ok
1447
+ jmp L_ARRAY_COPY_SLICE_END_%out_ok
1448
+
1449
+ L_ARRAY_COPY_SLICE_MISS_%out_ok:
1450
+ %out_ok = add 0, 0
1451
+ !__array_copy_same_len_%out_ok
1452
+ !__array_copy_src_len_%out_ok
1453
+
1454
+ L_ARRAY_COPY_SLICE_END_%out_ok:
1455
+ [END_MACRO]
1456
+
1457
+ // Rust method-name alias over ARRAY_TRY_COPY_FROM_SLICE_U64.
1458
+ [MACRO] ARRAY_TRY_COPY_FROM_SLICE %out_ok, %dst_ptr, %length, %src_slice
1459
+ EXPAND ARRAY_TRY_COPY_FROM_SLICE_U64 %out_ok, %dst_ptr, %length, %src_slice
1460
+ [END_MACRO]
1461
+
1462
+ [MACRO] ARRAY_TRY_FROM_SLICE_U64 %out_ok, %dst_ptr, %length, %src_slice
1463
+ EXPAND ARRAY_TRY_COPY_FROM_SLICE_U64 %out_ok, %dst_ptr, %length, %src_slice
1464
+ [END_MACRO]
1465
+
1466
+ // Rust method-name alias over ARRAY_TRY_FROM_SLICE_U64.
1467
+ [MACRO] ARRAY_TRY_FROM_SLICE %out_ok, %dst_ptr, %length, %src_slice
1468
+ EXPAND ARRAY_TRY_FROM_SLICE_U64 %out_ok, %dst_ptr, %length, %src_slice
1469
+ [END_MACRO]
1470
+
1471
+ [MACRO] ARRAY_TRY_FROM_MUT_SLICE_U64 %out_ok, %dst_ptr, %length, %src_slice
1472
+ EXPAND ARRAY_TRY_COPY_FROM_SLICE_U64 %out_ok, %dst_ptr, %length, %src_slice
1473
+ [END_MACRO]
1474
+
1475
+ // Rust method-name alias over ARRAY_TRY_FROM_MUT_SLICE_U64.
1476
+ [MACRO] ARRAY_TRY_FROM_MUT_SLICE %out_ok, %dst_ptr, %length, %src_slice
1477
+ EXPAND ARRAY_TRY_FROM_MUT_SLICE_U64 %out_ok, %dst_ptr, %length, %src_slice
1478
+ [END_MACRO]
1479
+
1480
+ [MACRO] ARRAY_TRY_SPLIT_ARRAY_REF_U64 %out_ok, %out_prefix, %out_suffix, %array_ptr, %length, %prefix_len
1481
+ __array_split_ref_ok_%out_ok = ule %prefix_len, %length
1482
+ br __array_split_ref_ok_%out_ok -> L_ARRAY_SPLIT_REF_OK_%out_ok, L_ARRAY_SPLIT_REF_MISS_%out_ok
1483
+
1484
+ L_ARRAY_SPLIT_REF_OK_%out_ok:
1485
+ __array_split_ref_suffix_len_%out_ok = sub %length, %prefix_len
1486
+ __array_split_ref_suffix_off_%out_ok = mul %prefix_len, 8
1487
+ __array_split_ref_suffix_ptr_%out_ok = ptr_add %array_ptr, __array_split_ref_suffix_off_%out_ok
1488
+ EXPAND SLICE_NEW %out_prefix, %array_ptr, %prefix_len
1489
+ EXPAND SLICE_NEW %out_suffix, __array_split_ref_suffix_ptr_%out_ok, __array_split_ref_suffix_len_%out_ok
1490
+ %out_ok = add 0, 1
1491
+ !__array_split_ref_suffix_ptr_%out_ok
1492
+ !__array_split_ref_suffix_off_%out_ok
1493
+ !__array_split_ref_suffix_len_%out_ok
1494
+ !__array_split_ref_ok_%out_ok
1495
+ jmp L_ARRAY_SPLIT_REF_END_%out_ok
1496
+
1497
+ L_ARRAY_SPLIT_REF_MISS_%out_ok:
1498
+ EXPAND SLICE_NEW %out_prefix, %array_ptr, 0
1499
+ EXPAND SLICE_NEW %out_suffix, %array_ptr, 0
1500
+ %out_ok = add 0, 0
1501
+ !__array_split_ref_ok_%out_ok
1502
+
1503
+ L_ARRAY_SPLIT_REF_END_%out_ok:
1504
+ [END_MACRO]
1505
+
1506
+ // Rust method-name alias over ARRAY_TRY_SPLIT_ARRAY_REF_U64.
1507
+ [MACRO] ARRAY_TRY_SPLIT_ARRAY_REF %out_ok, %out_prefix, %out_suffix, %array_ptr, %length, %prefix_len
1508
+ EXPAND ARRAY_TRY_SPLIT_ARRAY_REF_U64 %out_ok, %out_prefix, %out_suffix, %array_ptr, %length, %prefix_len
1509
+ [END_MACRO]
1510
+
1511
+ [MACRO] ARRAY_TRY_SPLIT_ARRAY_MUT_U64 %out_ok, %out_prefix, %out_suffix, %array_ptr, %length, %prefix_len
1512
+ EXPAND ARRAY_TRY_SPLIT_ARRAY_REF_U64 %out_ok, %out_prefix, %out_suffix, %array_ptr, %length, %prefix_len
1513
+ [END_MACRO]
1514
+
1515
+ // Rust method-name alias over ARRAY_TRY_SPLIT_ARRAY_MUT_U64.
1516
+ [MACRO] ARRAY_TRY_SPLIT_ARRAY_MUT %out_ok, %out_prefix, %out_suffix, %array_ptr, %length, %prefix_len
1517
+ EXPAND ARRAY_TRY_SPLIT_ARRAY_MUT_U64 %out_ok, %out_prefix, %out_suffix, %array_ptr, %length, %prefix_len
1518
+ [END_MACRO]
1519
+
1520
+ [MACRO] ARRAY_TRY_RSPLIT_ARRAY_REF_U64 %out_ok, %out_prefix, %out_suffix, %array_ptr, %length, %suffix_len
1521
+ __array_rsplit_ref_ok_%out_ok = ule %suffix_len, %length
1522
+ br __array_rsplit_ref_ok_%out_ok -> L_ARRAY_RSPLIT_REF_OK_%out_ok, L_ARRAY_RSPLIT_REF_MISS_%out_ok
1523
+
1524
+ L_ARRAY_RSPLIT_REF_OK_%out_ok:
1525
+ __array_rsplit_ref_prefix_len_%out_ok = sub %length, %suffix_len
1526
+ __array_rsplit_ref_suffix_off_%out_ok = mul __array_rsplit_ref_prefix_len_%out_ok, 8
1527
+ __array_rsplit_ref_suffix_ptr_%out_ok = ptr_add %array_ptr, __array_rsplit_ref_suffix_off_%out_ok
1528
+ EXPAND SLICE_NEW %out_prefix, %array_ptr, __array_rsplit_ref_prefix_len_%out_ok
1529
+ EXPAND SLICE_NEW %out_suffix, __array_rsplit_ref_suffix_ptr_%out_ok, %suffix_len
1530
+ %out_ok = add 0, 1
1531
+ !__array_rsplit_ref_suffix_ptr_%out_ok
1532
+ !__array_rsplit_ref_suffix_off_%out_ok
1533
+ !__array_rsplit_ref_prefix_len_%out_ok
1534
+ !__array_rsplit_ref_ok_%out_ok
1535
+ jmp L_ARRAY_RSPLIT_REF_END_%out_ok
1536
+
1537
+ L_ARRAY_RSPLIT_REF_MISS_%out_ok:
1538
+ EXPAND SLICE_NEW %out_prefix, %array_ptr, 0
1539
+ EXPAND SLICE_NEW %out_suffix, %array_ptr, 0
1540
+ %out_ok = add 0, 0
1541
+ !__array_rsplit_ref_ok_%out_ok
1542
+
1543
+ L_ARRAY_RSPLIT_REF_END_%out_ok:
1544
+ [END_MACRO]
1545
+
1546
+ // Rust method-name alias over ARRAY_TRY_RSPLIT_ARRAY_REF_U64.
1547
+ [MACRO] ARRAY_TRY_RSPLIT_ARRAY_REF %out_ok, %out_prefix, %out_suffix, %array_ptr, %length, %suffix_len
1548
+ EXPAND ARRAY_TRY_RSPLIT_ARRAY_REF_U64 %out_ok, %out_prefix, %out_suffix, %array_ptr, %length, %suffix_len
1549
+ [END_MACRO]
1550
+
1551
+ [MACRO] ARRAY_TRY_RSPLIT_ARRAY_MUT_U64 %out_ok, %out_prefix, %out_suffix, %array_ptr, %length, %suffix_len
1552
+ EXPAND ARRAY_TRY_RSPLIT_ARRAY_REF_U64 %out_ok, %out_prefix, %out_suffix, %array_ptr, %length, %suffix_len
1553
+ [END_MACRO]
1554
+
1555
+ // Rust method-name alias over ARRAY_TRY_RSPLIT_ARRAY_MUT_U64.
1556
+ [MACRO] ARRAY_TRY_RSPLIT_ARRAY_MUT %out_ok, %out_prefix, %out_suffix, %array_ptr, %length, %suffix_len
1557
+ EXPAND ARRAY_TRY_RSPLIT_ARRAY_MUT_U64 %out_ok, %out_prefix, %out_suffix, %array_ptr, %length, %suffix_len
1558
+ [END_MACRO]
1559
+
1560
+ [MACRO] ARRAY_TRY_AS_ARRAY_REF_U64 %out_ok, %out_slice, %slice, %length
1561
+ __array_as_ref_len_%out_ok = load %slice+Slice_len as u64
1562
+ __array_as_ref_ok_%out_ok = eq __array_as_ref_len_%out_ok, %length
1563
+ br __array_as_ref_ok_%out_ok -> L_ARRAY_AS_REF_OK_%out_ok, L_ARRAY_AS_REF_MISS_%out_ok
1564
+
1565
+ L_ARRAY_AS_REF_OK_%out_ok:
1566
+ __array_as_ref_ptr_%out_ok = load %slice+Slice_ptr as ptr
1567
+ EXPAND SLICE_NEW %out_slice, __array_as_ref_ptr_%out_ok, %length
1568
+ %out_ok = add 0, 1
1569
+ !__array_as_ref_ptr_%out_ok
1570
+ !__array_as_ref_ok_%out_ok
1571
+ !__array_as_ref_len_%out_ok
1572
+ jmp L_ARRAY_AS_REF_END_%out_ok
1573
+
1574
+ L_ARRAY_AS_REF_MISS_%out_ok:
1575
+ __array_as_ref_miss_ptr_%out_ok = load %slice+Slice_ptr as ptr
1576
+ EXPAND SLICE_NEW %out_slice, __array_as_ref_miss_ptr_%out_ok, 0
1577
+ %out_ok = add 0, 0
1578
+ !__array_as_ref_miss_ptr_%out_ok
1579
+ !__array_as_ref_ok_%out_ok
1580
+ !__array_as_ref_len_%out_ok
1581
+
1582
+ L_ARRAY_AS_REF_END_%out_ok:
1583
+ [END_MACRO]
1584
+
1585
+ // Rust method-name alias over ARRAY_TRY_AS_ARRAY_REF_U64.
1586
+ [MACRO] ARRAY_TRY_AS_ARRAY_REF %out_ok, %out_slice, %slice, %length
1587
+ EXPAND ARRAY_TRY_AS_ARRAY_REF_U64 %out_ok, %out_slice, %slice, %length
1588
+ [END_MACRO]
1589
+
1590
+ [MACRO] ARRAY_TRY_AS_ARRAY_MUT_U64 %out_ok, %out_slice, %slice, %length
1591
+ EXPAND ARRAY_TRY_AS_ARRAY_REF_U64 %out_ok, %out_slice, %slice, %length
1592
+ [END_MACRO]
1593
+
1594
+ // Rust method-name alias over ARRAY_TRY_AS_ARRAY_MUT_U64.
1595
+ [MACRO] ARRAY_TRY_AS_ARRAY_MUT %out_ok, %out_slice, %slice, %length
1596
+ EXPAND ARRAY_TRY_AS_ARRAY_MUT_U64 %out_ok, %out_slice, %slice, %length
1597
+ [END_MACRO]
1598
+
1599
+ [MACRO] ARRAY_REF_TRY_FROM_SLICE_U64 %out_ok, %out_slice, %slice, %length
1600
+ EXPAND ARRAY_TRY_AS_ARRAY_REF_U64 %out_ok, %out_slice, %slice, %length
1601
+ [END_MACRO]
1602
+
1603
+ // Rust method-name alias over ARRAY_REF_TRY_FROM_SLICE_U64.
1604
+ [MACRO] ARRAY_REF_TRY_FROM_SLICE %out_ok, %out_slice, %slice, %length
1605
+ EXPAND ARRAY_REF_TRY_FROM_SLICE_U64 %out_ok, %out_slice, %slice, %length
1606
+ [END_MACRO]
1607
+
1608
+ [MACRO] ARRAY_MUT_REF_TRY_FROM_MUT_SLICE_U64 %out_ok, %out_slice, %slice, %length
1609
+ EXPAND ARRAY_TRY_AS_ARRAY_MUT_U64 %out_ok, %out_slice, %slice, %length
1610
+ [END_MACRO]
1611
+
1612
+ // Rust method-name alias over ARRAY_MUT_REF_TRY_FROM_MUT_SLICE_U64.
1613
+ [MACRO] ARRAY_MUT_REF_TRY_FROM_MUT_SLICE %out_ok, %out_slice, %slice, %length
1614
+ EXPAND ARRAY_MUT_REF_TRY_FROM_MUT_SLICE_U64 %out_ok, %out_slice, %slice, %length
1615
+ [END_MACRO]
1616
+
1617
+ [MACRO] ARRAY_SWAP_U64 %array_ptr, %left_index, %right_index
1618
+ __array_swap_left_off_%array_ptr = mul %left_index, 8
1619
+ __array_swap_right_off_%array_ptr = mul %right_index, 8
1620
+ __array_swap_left_ptr_%array_ptr = ptr_add %array_ptr, __array_swap_left_off_%array_ptr
1621
+ __array_swap_right_ptr_%array_ptr = ptr_add %array_ptr, __array_swap_right_off_%array_ptr
1622
+ __array_swap_left_value_%array_ptr = load __array_swap_left_ptr_%array_ptr+0 as u64
1623
+ __array_swap_right_value_%array_ptr = load __array_swap_right_ptr_%array_ptr+0 as u64
1624
+ store __array_swap_left_ptr_%array_ptr+0, __array_swap_right_value_%array_ptr as u64
1625
+ store __array_swap_right_ptr_%array_ptr+0, __array_swap_left_value_%array_ptr as u64
1626
+ !__array_swap_right_value_%array_ptr
1627
+ !__array_swap_left_value_%array_ptr
1628
+ !__array_swap_right_ptr_%array_ptr
1629
+ !__array_swap_left_ptr_%array_ptr
1630
+ !__array_swap_right_off_%array_ptr
1631
+ !__array_swap_left_off_%array_ptr
1632
+ [END_MACRO]
1633
+
1634
+ // Rust method-name alias over ARRAY_SWAP_U64.
1635
+ [MACRO] ARRAY_SWAP %array_ptr, %left_index, %right_index
1636
+ EXPAND ARRAY_SWAP_U64 %array_ptr, %left_index, %right_index
1637
+ [END_MACRO]
1638
+
1639
+ [MACRO] ARRAY_REVERSE_U64 %array_ptr, %length
1640
+ __array_rev_small_%array_ptr = ule %length, 1
1641
+ br __array_rev_small_%array_ptr -> L_ARRAY_REV_DONE_SMALL_%array_ptr, L_ARRAY_REV_INIT_%array_ptr
1642
+
1643
+ L_ARRAY_REV_INIT_%array_ptr:
1644
+ __array_rev_left_slot_%array_ptr = stack_alloc 8
1645
+ __array_rev_right_slot_%array_ptr = stack_alloc 8
1646
+ __array_rev_last_%array_ptr = sub %length, 1
1647
+ store __array_rev_left_slot_%array_ptr+0, 0 as u64
1648
+ store __array_rev_right_slot_%array_ptr+0, __array_rev_last_%array_ptr as u64
1649
+ !__array_rev_last_%array_ptr
1650
+ jmp L_ARRAY_REV_HEAD_%array_ptr
1651
+
1652
+ L_ARRAY_REV_HEAD_%array_ptr:
1653
+ __array_rev_left_%array_ptr = load __array_rev_left_slot_%array_ptr+0 as u64
1654
+ __array_rev_right_%array_ptr = load __array_rev_right_slot_%array_ptr+0 as u64
1655
+ __array_rev_continue_%array_ptr = ult __array_rev_left_%array_ptr, __array_rev_right_%array_ptr
1656
+ br __array_rev_continue_%array_ptr -> L_ARRAY_REV_BODY_%array_ptr, L_ARRAY_REV_DONE_%array_ptr
1657
+
1658
+ L_ARRAY_REV_BODY_%array_ptr:
1659
+ EXPAND ARRAY_SWAP_U64 %array_ptr, __array_rev_left_%array_ptr, __array_rev_right_%array_ptr
1660
+ __array_rev_next_left_%array_ptr = add __array_rev_left_%array_ptr, 1
1661
+ __array_rev_next_right_%array_ptr = sub __array_rev_right_%array_ptr, 1
1662
+ store __array_rev_left_slot_%array_ptr+0, __array_rev_next_left_%array_ptr as u64
1663
+ store __array_rev_right_slot_%array_ptr+0, __array_rev_next_right_%array_ptr as u64
1664
+ !__array_rev_next_right_%array_ptr
1665
+ !__array_rev_next_left_%array_ptr
1666
+ !__array_rev_continue_%array_ptr
1667
+ !__array_rev_right_%array_ptr
1668
+ !__array_rev_left_%array_ptr
1669
+ jmp L_ARRAY_REV_HEAD_%array_ptr
1670
+
1671
+ L_ARRAY_REV_DONE_%array_ptr:
1672
+ !__array_rev_continue_%array_ptr
1673
+ !__array_rev_right_%array_ptr
1674
+ !__array_rev_left_%array_ptr
1675
+ !__array_rev_small_%array_ptr
1676
+ jmp L_ARRAY_REV_END_%array_ptr
1677
+
1678
+ L_ARRAY_REV_DONE_SMALL_%array_ptr:
1679
+ !__array_rev_small_%array_ptr
1680
+
1681
+ L_ARRAY_REV_END_%array_ptr:
1682
+ [END_MACRO]
1683
+
1684
+ // Rust method-name alias over ARRAY_REVERSE_U64.
1685
+ [MACRO] ARRAY_REVERSE %array_ptr, %length
1686
+ EXPAND ARRAY_REVERSE_U64 %array_ptr, %length
1687
+ [END_MACRO]
1688
+
1689
+ [MACRO] ARRAY_FROM_FN_U64 %array_ptr, %length, %gen_fn
1690
+ __array_fn_idx_slot_%array_ptr = stack_alloc 8
1691
+ store __array_fn_idx_slot_%array_ptr+0, 0 as u64
1692
+ jmp L_ARRAY_FROM_FN_HEAD_%array_ptr
1693
+
1694
+ L_ARRAY_FROM_FN_HEAD_%array_ptr:
1695
+ __array_fn_idx_%array_ptr = load __array_fn_idx_slot_%array_ptr+0 as u64
1696
+ __array_fn_done_%array_ptr = eq __array_fn_idx_%array_ptr, %length
1697
+ br __array_fn_done_%array_ptr -> L_ARRAY_FROM_FN_DONE_%array_ptr, L_ARRAY_FROM_FN_BODY_%array_ptr
1698
+
1699
+ L_ARRAY_FROM_FN_BODY_%array_ptr:
1700
+ __array_fn_value_%array_ptr = call %gen_fn(__array_fn_idx_%array_ptr)
1701
+ __array_fn_off_%array_ptr = mul __array_fn_idx_%array_ptr, 8
1702
+ __array_fn_ptr_%array_ptr = ptr_add %array_ptr, __array_fn_off_%array_ptr
1703
+ store __array_fn_ptr_%array_ptr+0, __array_fn_value_%array_ptr as u64
1704
+ __array_fn_next_%array_ptr = add __array_fn_idx_%array_ptr, 1
1705
+ store __array_fn_idx_slot_%array_ptr+0, __array_fn_next_%array_ptr as u64
1706
+ !__array_fn_next_%array_ptr
1707
+ !__array_fn_ptr_%array_ptr
1708
+ !__array_fn_off_%array_ptr
1709
+ !__array_fn_value_%array_ptr
1710
+ !__array_fn_done_%array_ptr
1711
+ !__array_fn_idx_%array_ptr
1712
+ jmp L_ARRAY_FROM_FN_HEAD_%array_ptr
1713
+
1714
+ L_ARRAY_FROM_FN_DONE_%array_ptr:
1715
+ !__array_fn_done_%array_ptr
1716
+ !__array_fn_idx_%array_ptr
1717
+ [END_MACRO]
1718
+
1719
+ // Rust method-name alias over ARRAY_FROM_FN_U64.
1720
+ [MACRO] ARRAY_FROM_FN %array_ptr, %length, %gen_fn
1721
+ EXPAND ARRAY_FROM_FN_U64 %array_ptr, %length, %gen_fn
1722
+ [END_MACRO]
1723
+
1724
+ [MACRO] ARRAY_TRY_FROM_FN_U64 %out_ok, %array_ptr, %length, %gen_fn
1725
+ __array_try_fn_idx_slot_%out_ok = stack_alloc 8
1726
+ __array_try_fn_value_slot_%out_ok = stack_alloc 8
1727
+ store __array_try_fn_idx_slot_%out_ok+0, 0 as u64
1728
+ jmp L_ARRAY_TRY_FROM_FN_HEAD_%out_ok
1729
+
1730
+ L_ARRAY_TRY_FROM_FN_HEAD_%out_ok:
1731
+ __array_try_fn_idx_%out_ok = load __array_try_fn_idx_slot_%out_ok+0 as u64
1732
+ __array_try_fn_done_%out_ok = eq __array_try_fn_idx_%out_ok, %length
1733
+ br __array_try_fn_done_%out_ok -> L_ARRAY_TRY_FROM_FN_DONE_%out_ok, L_ARRAY_TRY_FROM_FN_BODY_%out_ok
1734
+
1735
+ L_ARRAY_TRY_FROM_FN_BODY_%out_ok:
1736
+ __array_try_fn_item_ok_%out_ok = call %gen_fn(__array_try_fn_idx_%out_ok, &__array_try_fn_value_slot_%out_ok)
1737
+ __array_try_fn_keep_%out_ok = ne __array_try_fn_item_ok_%out_ok, 0
1738
+ br __array_try_fn_keep_%out_ok -> L_ARRAY_TRY_FROM_FN_STORE_%out_ok, L_ARRAY_TRY_FROM_FN_FAIL_%out_ok
1739
+
1740
+ L_ARRAY_TRY_FROM_FN_STORE_%out_ok:
1741
+ __array_try_fn_value_%out_ok = load __array_try_fn_value_slot_%out_ok+0 as u64
1742
+ __array_try_fn_off_%out_ok = mul __array_try_fn_idx_%out_ok, 8
1743
+ __array_try_fn_ptr_%out_ok = ptr_add %array_ptr, __array_try_fn_off_%out_ok
1744
+ store __array_try_fn_ptr_%out_ok+0, __array_try_fn_value_%out_ok as u64
1745
+ __array_try_fn_next_%out_ok = add __array_try_fn_idx_%out_ok, 1
1746
+ store __array_try_fn_idx_slot_%out_ok+0, __array_try_fn_next_%out_ok as u64
1747
+ !__array_try_fn_next_%out_ok
1748
+ !__array_try_fn_ptr_%out_ok
1749
+ !__array_try_fn_off_%out_ok
1750
+ !__array_try_fn_value_%out_ok
1751
+ !__array_try_fn_keep_%out_ok
1752
+ !__array_try_fn_item_ok_%out_ok
1753
+ !__array_try_fn_done_%out_ok
1754
+ !__array_try_fn_idx_%out_ok
1755
+ jmp L_ARRAY_TRY_FROM_FN_HEAD_%out_ok
1756
+
1757
+ L_ARRAY_TRY_FROM_FN_FAIL_%out_ok:
1758
+ %out_ok = add 0, 0
1759
+ !__array_try_fn_keep_%out_ok
1760
+ !__array_try_fn_item_ok_%out_ok
1761
+ !__array_try_fn_done_%out_ok
1762
+ !__array_try_fn_idx_%out_ok
1763
+ jmp L_ARRAY_TRY_FROM_FN_END_%out_ok
1764
+
1765
+ L_ARRAY_TRY_FROM_FN_DONE_%out_ok:
1766
+ %out_ok = add 0, 1
1767
+ !__array_try_fn_done_%out_ok
1768
+ !__array_try_fn_idx_%out_ok
1769
+
1770
+ L_ARRAY_TRY_FROM_FN_END_%out_ok:
1771
+ [END_MACRO]
1772
+
1773
+ // Rust method-name alias over ARRAY_TRY_FROM_FN_U64.
1774
+ [MACRO] ARRAY_TRY_FROM_FN %out_ok, %array_ptr, %length, %gen_fn
1775
+ EXPAND ARRAY_TRY_FROM_FN_U64 %out_ok, %array_ptr, %length, %gen_fn
1776
+ [END_MACRO]
1777
+
1778
+ [MACRO] ARRAY_MAP_U64 %dst_ptr, %src_ptr, %length, %map_fn
1779
+ __array_map_idx_slot_%dst_ptr = stack_alloc 8
1780
+ store __array_map_idx_slot_%dst_ptr+0, 0 as u64
1781
+ jmp L_ARRAY_MAP_HEAD_%dst_ptr
1782
+
1783
+ L_ARRAY_MAP_HEAD_%dst_ptr:
1784
+ __array_map_idx_%dst_ptr = load __array_map_idx_slot_%dst_ptr+0 as u64
1785
+ __array_map_done_%dst_ptr = eq __array_map_idx_%dst_ptr, %length
1786
+ br __array_map_done_%dst_ptr -> L_ARRAY_MAP_DONE_%dst_ptr, L_ARRAY_MAP_BODY_%dst_ptr
1787
+
1788
+ L_ARRAY_MAP_BODY_%dst_ptr:
1789
+ __array_map_off_%dst_ptr = mul __array_map_idx_%dst_ptr, 8
1790
+ __array_map_src_ptr_%dst_ptr = ptr_add %src_ptr, __array_map_off_%dst_ptr
1791
+ __array_map_dst_ptr_%dst_ptr = ptr_add %dst_ptr, __array_map_off_%dst_ptr
1792
+ __array_map_src_value_%dst_ptr = load __array_map_src_ptr_%dst_ptr+0 as u64
1793
+ __array_map_dst_value_%dst_ptr = call %map_fn(__array_map_src_value_%dst_ptr)
1794
+ store __array_map_dst_ptr_%dst_ptr+0, __array_map_dst_value_%dst_ptr as u64
1795
+ __array_map_next_%dst_ptr = add __array_map_idx_%dst_ptr, 1
1796
+ store __array_map_idx_slot_%dst_ptr+0, __array_map_next_%dst_ptr as u64
1797
+ !__array_map_next_%dst_ptr
1798
+ !__array_map_dst_value_%dst_ptr
1799
+ !__array_map_src_value_%dst_ptr
1800
+ !__array_map_dst_ptr_%dst_ptr
1801
+ !__array_map_src_ptr_%dst_ptr
1802
+ !__array_map_off_%dst_ptr
1803
+ !__array_map_done_%dst_ptr
1804
+ !__array_map_idx_%dst_ptr
1805
+ jmp L_ARRAY_MAP_HEAD_%dst_ptr
1806
+
1807
+ L_ARRAY_MAP_DONE_%dst_ptr:
1808
+ !__array_map_done_%dst_ptr
1809
+ !__array_map_idx_%dst_ptr
1810
+ [END_MACRO]
1811
+
1812
+ // Rust method-name alias over ARRAY_MAP_U64.
1813
+ [MACRO] ARRAY_MAP %dst_ptr, %src_ptr, %length, %map_fn
1814
+ EXPAND ARRAY_MAP_U64 %dst_ptr, %src_ptr, %length, %map_fn
1815
+ [END_MACRO]
1816
+
1817
+ [MACRO] ARRAY_TRY_MAP_U64 %out_ok, %dst_ptr, %src_ptr, %length, %map_fn
1818
+ __array_try_map_idx_slot_%out_ok = stack_alloc 8
1819
+ __array_try_map_value_slot_%out_ok = stack_alloc 8
1820
+ store __array_try_map_idx_slot_%out_ok+0, 0 as u64
1821
+ jmp L_ARRAY_TRY_MAP_HEAD_%out_ok
1822
+
1823
+ L_ARRAY_TRY_MAP_HEAD_%out_ok:
1824
+ __array_try_map_idx_%out_ok = load __array_try_map_idx_slot_%out_ok+0 as u64
1825
+ __array_try_map_done_%out_ok = eq __array_try_map_idx_%out_ok, %length
1826
+ br __array_try_map_done_%out_ok -> L_ARRAY_TRY_MAP_DONE_%out_ok, L_ARRAY_TRY_MAP_BODY_%out_ok
1827
+
1828
+ L_ARRAY_TRY_MAP_BODY_%out_ok:
1829
+ __array_try_map_off_%out_ok = mul __array_try_map_idx_%out_ok, 8
1830
+ __array_try_map_src_ptr_%out_ok = ptr_add %src_ptr, __array_try_map_off_%out_ok
1831
+ __array_try_map_src_value_%out_ok = load __array_try_map_src_ptr_%out_ok+0 as u64
1832
+ __array_try_map_item_ok_%out_ok = call %map_fn(__array_try_map_src_value_%out_ok, &__array_try_map_value_slot_%out_ok)
1833
+ __array_try_map_keep_%out_ok = ne __array_try_map_item_ok_%out_ok, 0
1834
+ br __array_try_map_keep_%out_ok -> L_ARRAY_TRY_MAP_STORE_%out_ok, L_ARRAY_TRY_MAP_FAIL_%out_ok
1835
+
1836
+ L_ARRAY_TRY_MAP_STORE_%out_ok:
1837
+ __array_try_map_dst_value_%out_ok = load __array_try_map_value_slot_%out_ok+0 as u64
1838
+ __array_try_map_dst_ptr_%out_ok = ptr_add %dst_ptr, __array_try_map_off_%out_ok
1839
+ store __array_try_map_dst_ptr_%out_ok+0, __array_try_map_dst_value_%out_ok as u64
1840
+ __array_try_map_next_%out_ok = add __array_try_map_idx_%out_ok, 1
1841
+ store __array_try_map_idx_slot_%out_ok+0, __array_try_map_next_%out_ok as u64
1842
+ !__array_try_map_next_%out_ok
1843
+ !__array_try_map_dst_ptr_%out_ok
1844
+ !__array_try_map_dst_value_%out_ok
1845
+ !__array_try_map_keep_%out_ok
1846
+ !__array_try_map_item_ok_%out_ok
1847
+ !__array_try_map_src_value_%out_ok
1848
+ !__array_try_map_src_ptr_%out_ok
1849
+ !__array_try_map_off_%out_ok
1850
+ !__array_try_map_done_%out_ok
1851
+ !__array_try_map_idx_%out_ok
1852
+ jmp L_ARRAY_TRY_MAP_HEAD_%out_ok
1853
+
1854
+ L_ARRAY_TRY_MAP_FAIL_%out_ok:
1855
+ %out_ok = add 0, 0
1856
+ !__array_try_map_keep_%out_ok
1857
+ !__array_try_map_item_ok_%out_ok
1858
+ !__array_try_map_src_value_%out_ok
1859
+ !__array_try_map_src_ptr_%out_ok
1860
+ !__array_try_map_off_%out_ok
1861
+ !__array_try_map_done_%out_ok
1862
+ !__array_try_map_idx_%out_ok
1863
+ jmp L_ARRAY_TRY_MAP_END_%out_ok
1864
+
1865
+ L_ARRAY_TRY_MAP_DONE_%out_ok:
1866
+ %out_ok = add 0, 1
1867
+ !__array_try_map_done_%out_ok
1868
+ !__array_try_map_idx_%out_ok
1869
+
1870
+ L_ARRAY_TRY_MAP_END_%out_ok:
1871
+ [END_MACRO]
1872
+
1873
+ // Rust method-name alias over ARRAY_TRY_MAP_U64.
1874
+ [MACRO] ARRAY_TRY_MAP %out_ok, %dst_ptr, %src_ptr, %length, %map_fn
1875
+ EXPAND ARRAY_TRY_MAP_U64 %out_ok, %dst_ptr, %src_ptr, %length, %map_fn
1876
+ [END_MACRO]