1 /* Generated by Nim Compiler v1.6.2 */
2 #define NIM_INTBITS 32
3
4 #include "nimbase.h"
5 #include <sys/mman.h>
6 #include <stdio.h>
7 #include <string.h>
8 #include <stdlib.h>
9 #include <setjmp.h>
10 #include <signal.h>
11 #undef LANGUAGE_C
12 #undef MIPSEB
13 #undef MIPSEL
14 #undef PPC
15 #undef R3000
16 #undef R4000
17 #undef i386
18 #undef linux
19 #undef mips
20 #undef near
21 #undef far
22 #undef powerpc
23 #undef unix
24 #define nimfr_(x, y)
25 #define nimln_(x, y)
26 typedef struct Exception Exception;
27 typedef struct TNimType TNimType;
28 typedef struct TNimNode TNimNode;
29 typedef struct tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ;
30 typedef struct tyObject_GcStack__7fytPA5bBsob6See21YMRA tyObject_GcStack__7fytPA5bBsob6See21YMRA;
31 typedef struct tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w;
32 typedef struct tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g;
33 typedef struct tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg;
34 typedef struct tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ;
35 typedef struct tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg;
36 typedef struct tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw;
37 typedef struct tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA;
38 typedef struct tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw;
39 typedef struct tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw;
40 typedef struct tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg;
41 typedef struct tyTuple__ujsjpB2O9cjj3uDHsXbnSzg tyTuple__ujsjpB2O9cjj3uDHsXbnSzg;
42 typedef struct tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg;
43 typedef struct tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ;
44 typedef struct tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg;
45 typedef struct tyObject_BaseChunk__Sdq7WpT6qAH858F5ZEdG3w tyObject_BaseChunk__Sdq7WpT6qAH858F5ZEdG3w;
46 typedef struct tyObject_FreeCell__u6M5LHprqzkn9axr04yg9bGQ tyObject_FreeCell__u6M5LHprqzkn9axr04yg9bGQ;
47 typedef struct tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ;
48 typedef struct NimStringDesc NimStringDesc;
49 typedef struct TGenericSeq TGenericSeq;
50 typedef struct TSafePoint TSafePoint;
51 typedef struct RootObj RootObj;
52 typedef struct tySequence__uB9b75OUPRENsBAu4AnoePA tySequence__uB9b75OUPRENsBAu4AnoePA;
53 typedef struct tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA;
54 typedef struct GcFrameHeader GcFrameHeader;
55 typedef struct tyObject_ReraiseDefect__E0L0wGYS1gPD81VLstNO2g tyObject_ReraiseDefect__E0L0wGYS1gPD81VLstNO2g;
56 typedef struct tyObject_Defect__LbeSGvgPzGzXnW9caIkJqMA tyObject_Defect__LbeSGvgPzGzXnW9caIkJqMA;
57 typedef struct tyObject_OverflowDefect__9cxMi1BPLc3UKt9br86bGfGQ tyObject_OverflowDefect__9cxMi1BPLc3UKt9br86bGfGQ;
58 typedef struct tyObject_ArithmeticDefect__cT9c9bHlHSpA1QTnKbHjnIkA tyObject_ArithmeticDefect__cT9c9bHlHSpA1QTnKbHjnIkA;
59 typedef struct tyObject_CatchableError__qrLSDoe2oBoAqNtJ9badtnA tyObject_CatchableError__qrLSDoe2oBoAqNtJ9badtnA;
60 typedef struct tyObject_ValueError__yoNlBGx0D2tRizIdhQuENw tyObject_ValueError__yoNlBGx0D2tRizIdhQuENw;
61 typedef struct tyObject_KeyError__t7nhKLvXTQS9cS8ByJU9bIag tyObject_KeyError__t7nhKLvXTQS9cS8ByJU9bIag;
62 typedef struct tyObject_AssertionDefect__PtYxPmY5X0dorfvxAFbJpQ tyObject_AssertionDefect__PtYxPmY5X0dorfvxAFbJpQ;
63 typedef struct tyObject_ObjectAssignmentDefect__6toVe0IizlEwN9bORXEdX3g tyObject_ObjectAssignmentDefect__6toVe0IizlEwN9bORXEdX3g;
64 typedef struct tyObject_IndexDefect__n6tGEPHKkh7E1AP9bj30WrQ tyObject_IndexDefect__n6tGEPHKkh7E1AP9bj30WrQ;
65 typedef struct tyObject_OSError__BeJgrOdDsczOwEWOZbRfKA tyObject_OSError__BeJgrOdDsczOwEWOZbRfKA;
66 typedef struct tyObject_IOError__iLZrPn9anoh9ad1MmO0RczFw tyObject_IOError__iLZrPn9anoh9ad1MmO0RczFw;
67 typedef struct tyObject_EOFError__KGSY1JdrNB7Xi8KDhXFhSg tyObject_EOFError__KGSY1JdrNB7Xi8KDhXFhSg;
68 typedef struct tyObject_RangeDefect__Rp9adJYTsbbIUzQ8fWxwgdA tyObject_RangeDefect__Rp9adJYTsbbIUzQ8fWxwgdA;
69 typedef struct tyObject_DivByZeroDefect__n3A4gjRrFZBuNnTYx1h9a8w tyObject_DivByZeroDefect__n3A4gjRrFZBuNnTYx1h9a8w;
70 typedef N_NIMCALL_PTR(NIM_BOOL, tyProc__9axCnCRMUx32AHzFgBrzSMg) (Exception* e);
71 typedef N_NIMCALL_PTR(void, tyProc__T4eqaYlFJYZUv9aG9b1TV0bQ) (void);
72 typedef N_NIMCALL_PTR(void, tyProc__NFmM6mqUOVW3cJg4yvk8Fw) (Exception* e);
73 typedef NU8 tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A;
74 typedef NU8 tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ;
75 typedef N_NIMCALL_PTR(void, tyProc__ojoeKfW4VYIm36I9cpDTQIg) (void* p, NI op);
76 typedef N_NIMCALL_PTR(void*, tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ) (void* p);
77 struct TNimType {
78 NI size;
79 NI align;
80 tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A kind;
81 tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ flags;
82 TNimType* base;
83 TNimNode* node;
84 void* finalizer;
85 tyProc__ojoeKfW4VYIm36I9cpDTQIg marker;
86 tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ deepcopy;
87 };
88 struct tyObject_GcStack__7fytPA5bBsob6See21YMRA {
89 void* bottom;
90 };
91 struct tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w {
92 NI len;
93 NI cap;
94 tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g** d;
95 };
96 typedef tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ* tyArray__SPr7N6UKfuF549bNPiUvSRw[256];
97 typedef NU32 tyArray__BHbOSqU1t9b3Gt7K2c6fQig[24];
98 typedef tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* tyArray__N1u1nqOgmuJN9cSZrnMHgOQ[32];
99 typedef tyArray__N1u1nqOgmuJN9cSZrnMHgOQ tyArray__B6durA4ZCi1xjJvRtyYxMg[24];
100 typedef tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw* tyArray__lh2A89ahMmYg9bCmpVaplLbA[256];
101 struct tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA {
102 tyArray__lh2A89ahMmYg9bCmpVaplLbA data;
103 };
104 typedef tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* tyArray__0aOLqZchNi8nWtMTi8ND8w[2];
105 struct tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw {
106 tyArray__0aOLqZchNi8nWtMTi8ND8w link;
107 NI key;
108 NI upperBound;
109 NI level;
110 };
111 struct tyTuple__ujsjpB2O9cjj3uDHsXbnSzg {
112 tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* Field0;
113 NI Field1;
114 };
115 typedef tyTuple__ujsjpB2O9cjj3uDHsXbnSzg tyArray__LzOv2eCDGiceMKQstCLmhw[30];
116 struct tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg {
117 NI len;
118 tyArray__LzOv2eCDGiceMKQstCLmhw chunks;
119 tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg* next;
120 };
121 struct tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg {
122 NI minLargeObj;
123 NI maxLargeObj;
124 tyArray__SPr7N6UKfuF549bNPiUvSRw freeSmallChunks;
125 NU32 flBitmap;
126 tyArray__BHbOSqU1t9b3Gt7K2c6fQig slBitmap;
127 tyArray__B6durA4ZCi1xjJvRtyYxMg matrix;
128 tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw* llmem;
129 NI currMem;
130 NI maxMem;
131 NI freeMem;
132 NI occ;
133 NI lastSize;
134 tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA chunkStarts;
135 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* root;
136 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* deleted;
137 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* last;
138 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* freeAvlNodes;
139 NIM_BOOL locked;
140 NIM_BOOL blockChunkSizeIncrease;
141 NI nextChunkSize;
142 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw bottomData;
143 tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg heapLinks;
144 };
145 struct tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg {
146 NI stackScans;
147 NI cycleCollections;
148 NI maxThreshold;
149 NI maxStackSize;
150 NI maxStackCells;
151 NI cycleTableSize;
152 NI64 maxPause;
153 };
154 struct tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ {
155 NI counter;
156 NI max;
157 tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg* head;
158 tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg** data;
159 };
160 struct tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ {
161 tyObject_GcStack__7fytPA5bBsob6See21YMRA stack;
162 NI cycleThreshold;
163 NI zctThreshold;
164 tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w zct;
165 tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w decStack;
166 tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w tempStack;
167 NI recGcLock;
168 tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg region;
169 tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg stat;
170 tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ marked;
171 tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w additionalRoots;
172 NI gcThreadId;
173 };
174 typedef tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* tyUncheckedArray__qYl1ErvQvkPpq9bTvm2UvTg[1];
175 struct tyObject_BaseChunk__Sdq7WpT6qAH858F5ZEdG3w {
176 NI prevSize;
177 NI size;
178 };
179 struct tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ {
180 tyObject_BaseChunk__Sdq7WpT6qAH858F5ZEdG3w Sup;
181 tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ* next;
182 tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ* prev;
183 tyObject_FreeCell__u6M5LHprqzkn9axr04yg9bGQ* freeList;
184 NI free;
185 NI acc;
186 NIM_ALIGN(16) NU8 data[SEQ_DECL_SIZE];
187 };
188 typedef NI8 tyArray__mkmEeKAWtk2yS9bBb1lUWXA[256];
189 struct tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg {
190 tyObject_BaseChunk__Sdq7WpT6qAH858F5ZEdG3w Sup;
191 tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* next;
192 tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* prev;
193 NIM_ALIGN(16) NU8 data[SEQ_DECL_SIZE];
194 };
195 struct tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw {
196 NI size;
197 NI acc;
198 tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw* next;
199 };
200 typedef NU tyArray__cC4ce9cdvDKtIpar5g9cDejA[16];
201 struct tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw {
202 tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw* next;
203 NI key;
204 tyArray__cC4ce9cdvDKtIpar5g9cDejA bits;
205 };
206 struct tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ {
207 NI Field0;
208 NI Field1;
209 };
210 struct tyObject_FreeCell__u6M5LHprqzkn9axr04yg9bGQ {
211 tyObject_FreeCell__u6M5LHprqzkn9axr04yg9bGQ* next;
212 NI zeroField;
213 };
214 typedef tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg* tyUncheckedArray__xm0FYDlyTP1z2D1LZJL9bqQ[1];
215 typedef NI tyArray__9a8QARi5WsUggNU9bom7kzTQ[8];
216 struct tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg {
217 tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg* next;
218 NU key;
219 tyArray__9a8QARi5WsUggNU9bom7kzTQ bits;
220 };
221 struct TGenericSeq {
222 NI len;
223 NI reserved;
224 };
225 struct NimStringDesc {
226 TGenericSeq Sup;
227 NIM_CHAR data[SEQ_DECL_SIZE];
228 };
229 typedef N_NIMCALL_PTR(void, tyProc__W6IXMh2CA4X1rFYGjUb4yg) (NimStringDesc* msg);
230 struct RootObj {
231 TNimType* m_type;
232 };
233 struct Exception {
234 RootObj Sup;
235 Exception* parent;
236 NCSTRING name;
237 NimStringDesc* message;
238 tySequence__uB9b75OUPRENsBAu4AnoePA* trace;
239 Exception* up;
240 };
241 struct tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA {
242 NCSTRING procname;
243 NI line;
244 NCSTRING filename;
245 };
246 typedef NU8 tyEnum_WalkOp__Wfy7gT5VQ8B3aJBxqU8D9cQ;
247 struct tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g {
248 NI refcount;
249 TNimType* typ;
250 };
251 typedef NU8 tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ;
252 typedef NU8 tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ;
253 struct TNimNode {
254 tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ kind;
255 NI offset;
256 TNimType* typ;
257 NCSTRING name;
258 NI len;
259 TNimNode** sons;
260 };
261 struct TSafePoint {
262 TSafePoint* prev;
263 NI status;
264 jmp_buf context;
265 };
266 typedef void* tyArray__nySJCmQz9aRlAQeu3WJUx9cQ[2];
267 typedef N_NIMCALL_PTR(void, Finalizer) (void* self);
268 struct tyObject_Defect__LbeSGvgPzGzXnW9caIkJqMA {
269 Exception Sup;
270 };
271 struct tyObject_ReraiseDefect__E0L0wGYS1gPD81VLstNO2g {
272 tyObject_Defect__LbeSGvgPzGzXnW9caIkJqMA Sup;
273 };
274 struct tyObject_ArithmeticDefect__cT9c9bHlHSpA1QTnKbHjnIkA {
275 tyObject_Defect__LbeSGvgPzGzXnW9caIkJqMA Sup;
276 };
277 struct tyObject_OverflowDefect__9cxMi1BPLc3UKt9br86bGfGQ {
278 tyObject_ArithmeticDefect__cT9c9bHlHSpA1QTnKbHjnIkA Sup;
279 };
280 typedef NIM_CHAR tyArray__gpc2RrLEcWgv7ONpLYNHOw[2001];
281 typedef N_NOCONV_PTR(void, tyProc__ZEo3s9cIqJYP74f7GMZM2FA) (int a);
282 typedef tyProc__T4eqaYlFJYZUv9aG9b1TV0bQ tyArray__9aTRall1siQT9bXabu2aKXUg[3500];
283 struct tyObject_CatchableError__qrLSDoe2oBoAqNtJ9badtnA {
284 Exception Sup;
285 };
286 struct tyObject_ValueError__yoNlBGx0D2tRizIdhQuENw {
287 tyObject_CatchableError__qrLSDoe2oBoAqNtJ9badtnA Sup;
288 };
289 struct tyObject_KeyError__t7nhKLvXTQS9cS8ByJU9bIag {
290 tyObject_ValueError__yoNlBGx0D2tRizIdhQuENw Sup;
291 };
292 struct tyObject_AssertionDefect__PtYxPmY5X0dorfvxAFbJpQ {
293 tyObject_Defect__LbeSGvgPzGzXnW9caIkJqMA Sup;
294 };
295 typedef NIM_CHAR tyArray__eVNFTutn6un5gcq48fQLdg[65];
296 struct tyObject_ObjectAssignmentDefect__6toVe0IizlEwN9bORXEdX3g {
297 tyObject_Defect__LbeSGvgPzGzXnW9caIkJqMA Sup;
298 };
299 struct tyObject_IndexDefect__n6tGEPHKkh7E1AP9bj30WrQ {
300 tyObject_Defect__LbeSGvgPzGzXnW9caIkJqMA Sup;
301 };
302 struct tyObject_OSError__BeJgrOdDsczOwEWOZbRfKA {
303 tyObject_CatchableError__qrLSDoe2oBoAqNtJ9badtnA Sup;
304 NI32 errorCode;
305 };
306 struct tyObject_IOError__iLZrPn9anoh9ad1MmO0RczFw {
307 tyObject_CatchableError__qrLSDoe2oBoAqNtJ9badtnA Sup;
308 };
309 struct tyObject_EOFError__KGSY1JdrNB7Xi8KDhXFhSg {
310 tyObject_IOError__iLZrPn9anoh9ad1MmO0RczFw Sup;
311 };
312 typedef NF tyArray__yp9a149boki9cCCWgfXI0Ip4A[23];
313 typedef NIM_CHAR tyArray__PGLh8drTnaWr3s1qUUSq2Q[500];
314 struct tyObject_RangeDefect__Rp9adJYTsbbIUzQ8fWxwgdA {
315 tyObject_Defect__LbeSGvgPzGzXnW9caIkJqMA Sup;
316 };
317 typedef NCSTRING tyUncheckedArray__nvS6J9clHMUMHfoZd8Ad2zg[1];
318 struct tyObject_DivByZeroDefect__n3A4gjRrFZBuNnTYx1h9a8w {
319 tyObject_ArithmeticDefect__cT9c9bHlHSpA1QTnKbHjnIkA Sup;
320 };
321 struct tySequence__uB9b75OUPRENsBAu4AnoePA {
322 TGenericSeq Sup;
323 tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA data[SEQ_DECL_SIZE];
324 };
325 static N_INLINE(void, initStackBottom)(void);
326 N_LIB_PRIVATE N_NOINLINE(void, nimGC_setStackBottom)(void* theStackBottom);
327 N_LIB_PRIVATE N_NIMCALL(void, setPosition__system_5395)(tyObject_GcStack__7fytPA5bBsob6See21YMRA* stack, void* position);
328 N_LIB_PRIVATE N_NIMCALL(void, initGC__system_2398)(void);
329 N_LIB_PRIVATE N_NIMCALL(void, init__system_4877)(tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w* s, NI cap);
330 N_LIB_PRIVATE N_NOCONV(void*, alloc0Impl__system_1745)(NI size);
331 N_LIB_PRIVATE N_NIMCALL(void*, alloc0__system_4771)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* allocator, NI size);
332 N_LIB_PRIVATE N_NIMCALL(void*, alloc__system_4767)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* allocator, NI size);
333 N_LIB_PRIVATE N_NIMCALL(void*, rawAlloc__system_4551)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, NI requestedSize);
334 static N_INLINE(NI, roundup__system_3696)(NI x, NI v);
335 N_LIB_PRIVATE N_NIMCALL(tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ*, getSmallChunk__system_4530)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a);
336 N_LIB_PRIVATE N_NIMCALL(tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*, getBigChunk__system_4507)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, NI size);
337 static N_INLINE(void, mappingSearch__system_3844)(NI* r, NI* fl, NI* sl);
338 static N_INLINE(NI, msbit__system_3819)(NU32 x);
339 static N_INLINE(tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*, findSuitableBlock__system_3876)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, NI* fl, NI* sl);
340 static N_INLINE(NI, lsbit__system_3827)(NU32 x);
341 N_LIB_PRIVATE N_NIMCALL(tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*, requestOsChunks__system_4430)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, NI size);
342 static N_INLINE(void*, osAllocPages__system_3716)(NI size);
343 N_LIB_PRIVATE N_NOINLINE(void, raiseOutOfMem__system_3691)(void);
344 static N_INLINE(void, rawWrite)(FILE* f, NCSTRING s);
345 static N_INLINE(NI, nimCStrLen)(NCSTRING a);
346 static N_INLINE(void*, osTryAllocPages__system_3719)(NI size);
347 static N_INLINE(void, incCurrMem__system_3959)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, NI bytes);
348 N_LIB_PRIVATE N_NIMCALL(void, addHeapLink__system_4043)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* p, NI size);
349 N_LIB_PRIVATE N_NIMCALL(void*, llAlloc__system_3976)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, NI size);
350 static N_INLINE(void, zeroMem__system_1724)(void* p, NI size);
351 static N_INLINE(void, nimZeroMem)(void* p, NI size);
352 static N_INLINE(void, nimSetMem__systemZmemory_7)(void* a, int v, NI size);
353 static N_INLINE(NI, pluspercent___system_696)(NI x, NI y);
354 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, contains__system_4225)(tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA* s, NI key);
355 N_LIB_PRIVATE N_NIMCALL(tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw*, intSetGet__system_4186)(tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA* t, NI key);
356 static N_INLINE(NI, pageIndex__system_4412)(tyObject_BaseChunk__Sdq7WpT6qAH858F5ZEdG3w* c);
357 static N_INLINE(NI, minuspercent___system_716)(NI x, NI y);
358 N_LIB_PRIVATE N_NIMCALL(void, splitChunk__system_4481)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* c, NI size);
359 N_LIB_PRIVATE N_NIMCALL(tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*, splitChunk2__system_4476)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* c, NI size);
360 static N_INLINE(void, updatePrevSize__system_4471)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* c, NI prevSize);
361 static N_INLINE(NIM_BOOL, isAccessible__system_4453)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, void* p);
362 static N_INLINE(NI, pageIndex__system_4419)(void* p);
363 N_LIB_PRIVATE N_NIMCALL(void, incl__system_4247)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA* s, NI key);
364 N_LIB_PRIVATE N_NIMCALL(tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw*, intSetPut__system_4208)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA* t, NI key);
365 N_LIB_PRIVATE N_NIMCALL(void, addChunkToMatrix__system_3950)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* b);
366 static N_INLINE(tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ, mappingInsert__system_3862)(NI r);
367 static N_INLINE(void, setBit__system_3830)(NI nr, NU32* dest);
368 N_LIB_PRIVATE N_NIMCALL(void, removeChunkFromMatrix2__system_3941)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* b, NI fl, NI sl);
369 static N_INLINE(void, clearBit__system_3837)(NI nr, NU32* dest);
370 static N_INLINE(void, listAdd__system_4568)(tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ** head, tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ* c);
371 static N_INLINE(void, listRemove__system_4621)(tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ** head, tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ* c);
372 N_LIB_PRIVATE N_NIMCALL(tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*, getHugeChunk__system_4522)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, NI size);
373 N_LIB_PRIVATE N_NIMCALL(tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw*, getBottom__system_4002)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a);
374 N_LIB_PRIVATE N_NIMCALL(void, add__system_4149)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw** t, NI key, NI upperBound);
375 N_LIB_PRIVATE N_NIMCALL(tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw*, allocAvlNode__system_4018)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, NI key, NI upperBound);
376 static N_INLINE(NIM_BOOL, ltpercent___system_1005)(NI x, NI y);
377 N_LIB_PRIVATE N_NIMCALL(void, skew__system_4139)(tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw** t);
378 N_LIB_PRIVATE N_NIMCALL(void, split__system_4142)(tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw** t);
379 N_LIB_PRIVATE N_NIMCALL(void, init__system_4883)(tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ* s);
380 static N_INLINE(NI, atomicInc__system_2172)(NI* memLoc, NI x);
381 static N_NIMCALL(void, Marker_tySequence__uB9b75OUPRENsBAu4AnoePA)(void* p, NI op);
382 N_LIB_PRIVATE N_NIMCALL(void, nimGCvisit)(void* d, NI op);
383 N_LIB_PRIVATE N_NIMCALL(void, doOperation__system_5293)(void* p, tyEnum_WalkOp__Wfy7gT5VQ8B3aJBxqU8D9cQ op);
384 static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__system_5262)(void* usr);
385 static N_INLINE(void, decRef__system_5307)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
386 static N_INLINE(void, rtlAddZCT__system_5305)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
387 N_LIB_PRIVATE N_NOINLINE(void, addZCT__system_5256)(tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w* s, tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
388 static N_INLINE(void, add__system_4851)(tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w* s, tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
389 N_LIB_PRIVATE N_NOCONV(void*, allocImpl__system_1743)(NI size);
390 static N_INLINE(void, copyMem__system_1727)(void* dest, void* source, NI size);
391 static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size);
392 N_LIB_PRIVATE N_NOCONV(void, dealloc)(void* p);
393 N_LIB_PRIVATE N_NOCONV(void, deallocImpl__system_1747)(void* p);
394 N_LIB_PRIVATE N_NIMCALL(void, dealloc__system_4775)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* allocator, void* p);
395 N_LIB_PRIVATE N_NIMCALL(void, rawDealloc__system_4680)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, void* p);
396 static N_INLINE(tyObject_BaseChunk__Sdq7WpT6qAH858F5ZEdG3w*, pageAddr__system_4426)(void* p);
397 static N_INLINE(NIM_BOOL, isSmallChunk__system_4337)(tyObject_BaseChunk__Sdq7WpT6qAH858F5ZEdG3w* c);
398 N_LIB_PRIVATE N_NIMCALL(void, freeBigChunk__system_4486)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* c);
399 static N_INLINE(NIM_BOOL, chunkUnused__system_4343)(tyObject_BaseChunk__Sdq7WpT6qAH858F5ZEdG3w* c);
400 N_LIB_PRIVATE N_NIMCALL(void, removeChunkFromMatrix__system_3911)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* b);
401 N_LIB_PRIVATE N_NIMCALL(void, excl__system_4269)(tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA* s, NI key);
402 N_LIB_PRIVATE N_NIMCALL(void, del__system_4158)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw** t, NI x);
403 static N_INLINE(void, deallocAvlNode__system_4040)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* n);
404 N_LIB_PRIVATE N_NIMCALL(void, freeHugeChunk__system_4526)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* c);
405 static N_INLINE(void, decCurrMem__system_3966)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, NI bytes);
406 static N_INLINE(void, osDeallocPages__system_3722)(void* p, NI size);
407 N_LIB_PRIVATE N_NIMCALL(void, markS__system_5711)(tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ* gch, tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
408 N_LIB_PRIVATE N_NIMCALL(void, incl__system_5008)(tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ* s, tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* cell);
409 N_LIB_PRIVATE N_NIMCALL(tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg*, cellSetPut__system_4954)(tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ* t, NU key);
410 static N_INLINE(NI, nextTry__system_4911)(NI h, NI maxHash);
411 N_LIB_PRIVATE N_NIMCALL(void, cellSetEnlarge__system_4941)(tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ* t);
412 N_LIB_PRIVATE N_NIMCALL(void, cellSetRawInsert__system_4924)(tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ t, tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg** data, tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg* desc);
413 N_LIB_PRIVATE N_NIMCALL(void, forAllChildren__system_5290)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* cell, tyEnum_WalkOp__Wfy7gT5VQ8B3aJBxqU8D9cQ op);
414 static N_INLINE(void*, cellToUsr__system_5259)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* cell);
415 N_LIB_PRIVATE N_NIMCALL(void, forAllChildrenAux__system_5296)(void* dest, TNimType* mt, tyEnum_WalkOp__Wfy7gT5VQ8B3aJBxqU8D9cQ op);
416 N_LIB_PRIVATE N_NIMCALL(void, forAllSlotsAux__system_5527)(void* dest, TNimNode* n, tyEnum_WalkOp__Wfy7gT5VQ8B3aJBxqU8D9cQ op);
417 N_LIB_PRIVATE N_NIMCALL(TNimNode*, selectBranch__system_3645)(void* aa, TNimNode* n);
418 N_LIB_PRIVATE N_NIMCALL(NU, getDiscriminant__system_3607)(void* aa, TNimNode* n);
419 static N_INLINE(NI, starpercent___system_736)(NI x, NI y);
420 N_LIB_PRIVATE N_NIMCALL(NI, align__system_1624)(NI address, NI alignment);
421 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, containsOrIncl__system_5054)(tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ* s, tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* cell);
422 N_LIB_PRIVATE N_NIMCALL(tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg*, cellSetGet__system_4915)(tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ t, NU key);
423 static N_NIMCALL(void, Marker_tyRef__vU9aO9cTqOMn6CBzhV8rX7Sw)(void* p, NI op);
424 static N_NIMCALL(void, TM__Q5wkpxktOdTGvlSRo9bzt9aw_4)(void);
425 N_LIB_PRIVATE N_NIMCALL(void, nimRegisterThreadLocalMarker)(tyProc__T4eqaYlFJYZUv9aG9b1TV0bQ markerProc);
426 N_LIB_PRIVATE N_NOCONV(void, signalHandler)(int sign);
427 N_LIB_PRIVATE N_NIMCALL(void, showErrorMessage__system_2536)(NCSTRING data, NI length);
428 static N_INLINE(void, pushSafePoint)(TSafePoint* s);
429 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, cstrToNimstr)(NCSTRING str);
430 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, toNimStr)(NCSTRING str, NI len);
431 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, rawNewStringNoInit)(NI space);
432 N_LIB_PRIVATE N_NIMCALL(void*, newObjNoInit)(TNimType* typ, NI size);
433 N_LIB_PRIVATE N_NIMCALL(void*, rawNewObj__system_5639)(TNimType* typ, NI size, tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ* gch);
434 N_LIB_PRIVATE N_NIMCALL(void, collectCT__system_5286)(tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ* gch);
435 static N_INLINE(NI, getOccupiedMem__system_4811)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a);
436 N_LIB_PRIVATE N_NIMCALL(void, collectCTBody__system_5811)(tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ* gch);
437 N_LIB_PRIVATE N_NOINLINE(NI, stackSize__system_5380)(void);
438 N_LIB_PRIVATE N_NOINLINE(NI, stackSize__system_5376)(tyObject_GcStack__7fytPA5bBsob6See21YMRA* stack);
439 static N_INLINE(void, prepareForInteriorPointerChecking__system_4732)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a);
440 N_LIB_PRIVATE N_NIMCALL(NI, lowGauge__system_4099)(tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* n);
441 N_LIB_PRIVATE N_NIMCALL(NI, highGauge__system_4107)(tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* n);
442 CLANG_NO_SANITIZE_ADDRESS N_LIB_PRIVATE void markStackAndRegisters__system_5769(tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ* gch);
443 static N_INLINE(void, gcMark__system_5760)(tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ* gch, void* p);
444 N_LIB_PRIVATE N_NIMCALL(void*, interiorAllocatedPtr__system_4734)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, void* p);
445 static N_INLINE(NI, percentpercent___system_776)(NI x, NI y);
446 static N_INLINE(NIM_BOOL, lteqpercent___system_985)(NI x, NI y);
447 N_LIB_PRIVATE N_NIMCALL(tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw*, inRange__system_4127)(tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* root, NI key);
448 static N_INLINE(void, incRef__system_5300)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
449 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, collectZCT__system_5750)(tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ* gch);
450 N_LIB_PRIVATE N_NIMCALL(void, prepareDealloc__system_5422)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* cell);
451 N_LIB_PRIVATE N_NIMCALL(void, collectCycles__system_5752)(tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ* gch);
452 N_LIB_PRIVATE N_NIMCALL(void, cellsetReset__system_5525)(tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ* s);
453 N_LIB_PRIVATE N_NIMCALL(void, deinit__system_4903)(tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ* s);
454 N_LIB_PRIVATE N_NIMCALL(void, markGlobals__system_5719)(tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ* gch);
455 N_LIB_PRIVATE N_NIMCALL(void, sweep__system_5707)(tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ* gch);
456 static N_INLINE(NIM_BOOL, isCell__system_4400)(void* p);
457 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, contains__system_4976)(tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ s, tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* cell);
458 N_LIB_PRIVATE N_NIMCALL(void, freeCyclicCell__system_5703)(tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ* gch, tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
459 N_LIB_PRIVATE N_NIMCALL(NI, getOccupiedMem__system_1936)(void);
460 N_LIB_PRIVATE N_NIMCALL(void, unmarkStackAndRegisters__system_5803)(tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ* gch);
461 static N_INLINE(void, addNewObjToZCT__system_5624)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* res, tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ* gch);
462 static N_INLINE(void, popSafePoint)(void);
463 static N_INLINE(void, popCurrentException)(void);
464 static N_INLINE(void, asgnRef)(void** dest, void* src);
465 N_LIB_PRIVATE N_NIMCALL(void, reraiseException)(void);
466 static N_INLINE(void, sysFatal__system_2898)(NimStringDesc* message) __attribute__((noreturn));
467 static N_NIMCALL(void, Marker_tyRef__uG62cfJZ15c2siK3CKLmnQ)(void* p, NI op);
468 N_LIB_PRIVATE N_NOINLINE(void*, newObj)(TNimType* typ, NI size);
469 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, copyStringRC1)(NimStringDesc* src);
470 N_LIB_PRIVATE N_NOINLINE(void*, newObjRC1)(TNimType* typ, NI size);
471 static N_INLINE(void, nimGCunrefNoCycle)(void* p);
472 N_LIB_PRIVATE N_NIMCALL(void, raiseExceptionEx)(Exception* e, NCSTRING ename, NCSTRING procname, NCSTRING filename, NI line);
473 N_LIB_PRIVATE N_NIMCALL(TGenericSeq*, incrSeqV3)(TGenericSeq* s, TNimType* typ);
474 N_LIB_PRIVATE N_NIMCALL(void*, newSeq)(TNimType* typ, NI len);
475 N_LIB_PRIVATE N_NOINLINE(void, raiseOverflow)(void);
476 static N_INLINE(void, sysFatal__system_3375)(NimStringDesc* message) __attribute__((noreturn));
477 static N_NIMCALL(void, Marker_tyRef__r8GBEWywN07B3Rat3azS4Q)(void* p, NI op);
478 static N_INLINE(NI, resize__system_5866)(NI old);
479 N_LIB_PRIVATE N_NIMCALL(void*, dataPointer__system_5856)(TGenericSeq* a, NI elemAlign);
480 N_LIB_PRIVATE N_NIMCALL(void, raiseExceptionAux__system_2866)(Exception* e);
481 static N_INLINE(void, pushCurrentException)(Exception* e);
482 N_LIB_PRIVATE N_NIMCALL(void, reportUnhandledError__system_2855)(Exception* e);
483 N_LIB_PRIVATE N_NIMCALL(void, reportUnhandledErrorAux__system_2752)(Exception* e);
484 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___system_2723)(tySequence__uB9b75OUPRENsBAu4AnoePA* stackTraceEntries);
485 N_NIMCALL(NimStringDesc*, rawNewString)(NI cap);
486 static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src);
487 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, resizeString)(NimStringDesc* dest, NI addlen);
488 N_LIB_PRIVATE N_NIMCALL(void, add__system_2308)(NimStringDesc** x, NCSTRING y);
489 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, addChar)(NimStringDesc* s, NIM_CHAR c);
490 N_LIB_PRIVATE N_NIMCALL(void, unsureAsgnRef)(void** dest, void* src);
491 N_LIB_PRIVATE N_NOINLINE(NIM_BOOL, isOnStack__system_5288)(void* p);
492 N_LIB_PRIVATE N_NIMCALL(tyObject_GcStack__7fytPA5bBsob6See21YMRA*, getActiveStack__system_5398)(tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ* gch);
493 static N_INLINE(void, addInt__stdZprivateZdigitsutils_189)(NimStringDesc** result, NI x);
494 N_LIB_PRIVATE N_NIMCALL(void, addInt__stdZprivateZdigitsutils_167)(NimStringDesc** result, NI64 x);
495 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, mnewString)(NI len);
496 static N_INLINE(NCSTRING, nimToCStringConv)(NimStringDesc* s);
497 N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___systemZassertions_23)(NimStringDesc** dest);
498 N_LIB_PRIVATE N_NIMCALL(void, writeToStdErr__system_2531)(NCSTRING msg, NI length);
499 static N_INLINE(void, rawWriteString)(FILE* f, NCSTRING s, NI length);
500 N_LIB_PRIVATE N_NIMCALL(void, registerSignalHandler__system_2992)(void);
501 N_LIB_PRIVATE N_NIMCALL(NI, getRefcount)(void* p);
502 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___systemZdollars_3)(NI x);
503 static N_NIMCALL(void, Marker_tyRef__8SzoIAgLw9ci2v0yafHj9b6Q)(void* p, NI op);
504 N_LIB_PRIVATE N_NIMCALL(void*, dataPointer__system_5860)(TGenericSeq* a, NI elemAlign, NI elemSize, NI index);
505 N_LIB_PRIVATE N_NIMCALL(TNimType*, extGetCellType)(void* c);
506 static N_NIMCALL(void, Marker_tyRef__S8DV6hfcgC9c0IiUsAoR29cQ)(void* p, NI op);
507 N_NIMCALL(NimStringDesc*, mnewString)(NI len);
508 N_LIB_PRIVATE N_NIMCALL(NI, writeFloatToBufferRoundtrip__systemZformatfloat_13)(NIM_CHAR* buf, NF value);
509 N_LIB_PRIVATE N_NIMCALL(void, addCstringN__systemZformatfloat_5)(NimStringDesc** result, NCSTRING buf, NI buflen);
510 N_LIB_PRIVATE N_NIMCALL(void, genericAssign)(void* dest, void* src, TNimType* mt);
511 N_LIB_PRIVATE N_NIMCALL(void, genericAssignAux__system_6377)(void* dest, void* src, TNimType* mt, NIM_BOOL shallow);
512 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, copyString)(NimStringDesc* src);
513 N_LIB_PRIVATE N_NIMCALL(void*, nimNewSeqOfCap)(TNimType* typ, NI cap);
514 N_LIB_PRIVATE N_NIMCALL(void, genericAssignAux__system_6382)(void* dest, void* src, TNimNode* n, NIM_BOOL shallow);
515 N_LIB_PRIVATE N_NIMCALL(void, genericResetAux__system_6374)(void* dest, TNimNode* n);
516 N_LIB_PRIVATE N_NIMCALL(void, genericReset)(void* dest, TNimType* mt);
517 static N_INLINE(void, chckObjAsgn)(TNimType* a, TNimType* b);
518 static N_INLINE(void, sysFatal__system_3290)(NimStringDesc* message) __attribute__((noreturn));
519 static N_NIMCALL(void, Marker_tyRef__C0A9bPZSVeyr2BWpBf4Jxqw)(void* p, NI op);
520 static N_NIMCALL(void, Marker_tyRef__RJnHOb9cQV3neNC9cDkRgMyw)(void* p, NI op);
521 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, substr__system_7713)(NimStringDesc* s, NI first, NI last);
522 static N_NIMCALL(void, Marker_tyRef__Ie1m0dv1ZHg72IgPRr1cDw)(void* p, NI op);
523 static N_INLINE(int, nimCmpMem)(void* a, void* b, NI size);
524 static N_NIMCALL(void, Marker_tyRef__9clYsYwyjCqe2PFTuCI3Ubg)(void* p, NI op);
525 static N_NIMCALL(void, Marker_tyRef__HMIVdYjdZYWskTmTQVo5BQ)(void* p, NI op);
526 static N_INLINE(void, showErrorMessage2__system_2544)(NimStringDesc* data);
527 static N_NIMCALL(void, Marker_tyRef__LEclZrWX2FQAodlapxGITw)(void* p, NI op);
528 static N_NIMCALL(void, Marker_tyRef__0vJvi4uHbxjbxlkkX7P1EA)(void* p, NI op);
529 static N_INLINE(void, addFloat__system_3122)(NimStringDesc** result, NF x);
530 N_LIB_PRIVATE N_NIMCALL(void, addFloatRoundtrip__system_3127)(NimStringDesc** result, NF x);
531 N_LIB_PRIVATE N_NIMCALL(void, objectInitAux__system_6492)(void* dest, TNimNode* n);
532 N_LIB_PRIVATE N_NIMCALL(void, objectInit)(void* dest, TNimType* typ);
533 static N_NIMCALL(void, Marker_tyRef__9ai78kkwqt3gikTN9cpHKUVg)(void* p, NI op);
534 N_LIB_PRIVATE N_NIMCALL(NI, writeFloatToBufferRoundtrip__systemZformatfloat_44)(NIM_CHAR* buf, NF32 value);
535 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, setLengthStr)(NimStringDesc* s, NI newLen);
536 N_LIB_PRIVATE N_NIMCALL(NI, getMaxMem__system_3973)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a);
537 N_LIB_PRIVATE N_NIMCALL(NI, getTotalMem__system_1938)(void);
538 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___systemZdollars_6)(NI64 x);
539 static N_INLINE(void, initStackBottomWith)(void* locals);
540 N_LIB_PRIVATE NIM_CONST tyArray__mkmEeKAWtk2yS9bBb1lUWXA fsLookupTable__system_3818 = {((NI8) -1),
541 ((NI8) 0),
542 ((NI8) 1),
543 ((NI8) 1),
544 ((NI8) 2),
545 ((NI8) 2),
546 ((NI8) 2),
547 ((NI8) 2),
548 ((NI8) 3),
549 ((NI8) 3),
550 ((NI8) 3),
551 ((NI8) 3),
552 ((NI8) 3),
553 ((NI8) 3),
554 ((NI8) 3),
555 ((NI8) 3),
556 ((NI8) 4),
557 ((NI8) 4),
558 ((NI8) 4),
559 ((NI8) 4),
560 ((NI8) 4),
561 ((NI8) 4),
562 ((NI8) 4),
563 ((NI8) 4),
564 ((NI8) 4),
565 ((NI8) 4),
566 ((NI8) 4),
567 ((NI8) 4),
568 ((NI8) 4),
569 ((NI8) 4),
570 ((NI8) 4),
571 ((NI8) 4),
572 ((NI8) 5),
573 ((NI8) 5),
574 ((NI8) 5),
575 ((NI8) 5),
576 ((NI8) 5),
577 ((NI8) 5),
578 ((NI8) 5),
579 ((NI8) 5),
580 ((NI8) 5),
581 ((NI8) 5),
582 ((NI8) 5),
583 ((NI8) 5),
584 ((NI8) 5),
585 ((NI8) 5),
586 ((NI8) 5),
587 ((NI8) 5),
588 ((NI8) 5),
589 ((NI8) 5),
590 ((NI8) 5),
591 ((NI8) 5),
592 ((NI8) 5),
593 ((NI8) 5),
594 ((NI8) 5),
595 ((NI8) 5),
596 ((NI8) 5),
597 ((NI8) 5),
598 ((NI8) 5),
599 ((NI8) 5),
600 ((NI8) 5),
601 ((NI8) 5),
602 ((NI8) 5),
603 ((NI8) 5),
604 ((NI8) 6),
605 ((NI8) 6),
606 ((NI8) 6),
607 ((NI8) 6),
608 ((NI8) 6),
609 ((NI8) 6),
610 ((NI8) 6),
611 ((NI8) 6),
612 ((NI8) 6),
613 ((NI8) 6),
614 ((NI8) 6),
615 ((NI8) 6),
616 ((NI8) 6),
617 ((NI8) 6),
618 ((NI8) 6),
619 ((NI8) 6),
620 ((NI8) 6),
621 ((NI8) 6),
622 ((NI8) 6),
623 ((NI8) 6),
624 ((NI8) 6),
625 ((NI8) 6),
626 ((NI8) 6),
627 ((NI8) 6),
628 ((NI8) 6),
629 ((NI8) 6),
630 ((NI8) 6),
631 ((NI8) 6),
632 ((NI8) 6),
633 ((NI8) 6),
634 ((NI8) 6),
635 ((NI8) 6),
636 ((NI8) 6),
637 ((NI8) 6),
638 ((NI8) 6),
639 ((NI8) 6),
640 ((NI8) 6),
641 ((NI8) 6),
642 ((NI8) 6),
643 ((NI8) 6),
644 ((NI8) 6),
645 ((NI8) 6),
646 ((NI8) 6),
647 ((NI8) 6),
648 ((NI8) 6),
649 ((NI8) 6),
650 ((NI8) 6),
651 ((NI8) 6),
652 ((NI8) 6),
653 ((NI8) 6),
654 ((NI8) 6),
655 ((NI8) 6),
656 ((NI8) 6),
657 ((NI8) 6),
658 ((NI8) 6),
659 ((NI8) 6),
660 ((NI8) 6),
661 ((NI8) 6),
662 ((NI8) 6),
663 ((NI8) 6),
664 ((NI8) 6),
665 ((NI8) 6),
666 ((NI8) 6),
667 ((NI8) 6),
668 ((NI8) 7),
669 ((NI8) 7),
670 ((NI8) 7),
671 ((NI8) 7),
672 ((NI8) 7),
673 ((NI8) 7),
674 ((NI8) 7),
675 ((NI8) 7),
676 ((NI8) 7),
677 ((NI8) 7),
678 ((NI8) 7),
679 ((NI8) 7),
680 ((NI8) 7),
681 ((NI8) 7),
682 ((NI8) 7),
683 ((NI8) 7),
684 ((NI8) 7),
685 ((NI8) 7),
686 ((NI8) 7),
687 ((NI8) 7),
688 ((NI8) 7),
689 ((NI8) 7),
690 ((NI8) 7),
691 ((NI8) 7),
692 ((NI8) 7),
693 ((NI8) 7),
694 ((NI8) 7),
695 ((NI8) 7),
696 ((NI8) 7),
697 ((NI8) 7),
698 ((NI8) 7),
699 ((NI8) 7),
700 ((NI8) 7),
701 ((NI8) 7),
702 ((NI8) 7),
703 ((NI8) 7),
704 ((NI8) 7),
705 ((NI8) 7),
706 ((NI8) 7),
707 ((NI8) 7),
708 ((NI8) 7),
709 ((NI8) 7),
710 ((NI8) 7),
711 ((NI8) 7),
712 ((NI8) 7),
713 ((NI8) 7),
714 ((NI8) 7),
715 ((NI8) 7),
716 ((NI8) 7),
717 ((NI8) 7),
718 ((NI8) 7),
719 ((NI8) 7),
720 ((NI8) 7),
721 ((NI8) 7),
722 ((NI8) 7),
723 ((NI8) 7),
724 ((NI8) 7),
725 ((NI8) 7),
726 ((NI8) 7),
727 ((NI8) 7),
728 ((NI8) 7),
729 ((NI8) 7),
730 ((NI8) 7),
731 ((NI8) 7),
732 ((NI8) 7),
733 ((NI8) 7),
734 ((NI8) 7),
735 ((NI8) 7),
736 ((NI8) 7),
737 ((NI8) 7),
738 ((NI8) 7),
739 ((NI8) 7),
740 ((NI8) 7),
741 ((NI8) 7),
742 ((NI8) 7),
743 ((NI8) 7),
744 ((NI8) 7),
745 ((NI8) 7),
746 ((NI8) 7),
747 ((NI8) 7),
748 ((NI8) 7),
749 ((NI8) 7),
750 ((NI8) 7),
751 ((NI8) 7),
752 ((NI8) 7),
753 ((NI8) 7),
754 ((NI8) 7),
755 ((NI8) 7),
756 ((NI8) 7),
757 ((NI8) 7),
758 ((NI8) 7),
759 ((NI8) 7),
760 ((NI8) 7),
761 ((NI8) 7),
762 ((NI8) 7),
763 ((NI8) 7),
764 ((NI8) 7),
765 ((NI8) 7),
766 ((NI8) 7),
767 ((NI8) 7),
768 ((NI8) 7),
769 ((NI8) 7),
770 ((NI8) 7),
771 ((NI8) 7),
772 ((NI8) 7),
773 ((NI8) 7),
774 ((NI8) 7),
775 ((NI8) 7),
776 ((NI8) 7),
777 ((NI8) 7),
778 ((NI8) 7),
779 ((NI8) 7),
780 ((NI8) 7),
781 ((NI8) 7),
782 ((NI8) 7),
783 ((NI8) 7),
784 ((NI8) 7),
785 ((NI8) 7),
786 ((NI8) 7),
787 ((NI8) 7),
788 ((NI8) 7),
789 ((NI8) 7),
790 ((NI8) 7),
791 ((NI8) 7),
792 ((NI8) 7),
793 ((NI8) 7),
794 ((NI8) 7),
795 ((NI8) 7)}
796 ;
797 N_LIB_PRIVATE TNimType NTIrootobj__ytyiCJqK439aF9cIibuRVpAg_;
798 N_LIB_PRIVATE TNimType NTIexception__XEycrCsme5C8CVWAYEcdBQ_;
799 N_LIB_PRIVATE TNimType NTIcstring__S9agCYBinaYZnGWcjTdxclg_;
800 N_LIB_PRIVATE TNimType NTIstring__77mFvmsOLKik79ci2hXkHEg_;
801 N_LIB_PRIVATE TNimType NTIstacktraceentry__oLyohQ7O2XOvGnflOss8EA_;
802 N_LIB_PRIVATE TNimType NTIint__rR5Bzr1D5krxoo1NcNyeMA_;
803 N_LIB_PRIVATE TNimType NTIseqLstacktraceentryT__uB9b75OUPRENsBAu4AnoePA_;
804 N_LIB_PRIVATE TNimType NTIrefexception__vU9aO9cTqOMn6CBzhV8rX7Sw_;
805 N_LIB_PRIVATE TNimType NTIdefect__LbeSGvgPzGzXnW9caIkJqMA_;
806 N_LIB_PRIVATE TNimType NTIreraisedefect__E0L0wGYS1gPD81VLstNO2g_;
807 N_LIB_PRIVATE TNimType NTIrefreraisedefect__uG62cfJZ15c2siK3CKLmnQ_;
808 N_LIB_PRIVATE TNimType NTIarithmeticdefect__cT9c9bHlHSpA1QTnKbHjnIkA_;
809 N_LIB_PRIVATE TNimType NTIoverflowdefect__9cxMi1BPLc3UKt9br86bGfGQ_;
810 N_LIB_PRIVATE TNimType NTIrefoverflowdefect__r8GBEWywN07B3Rat3azS4Q_;
811 STRING_LITERAL(TM__Q5wkpxktOdTGvlSRo9bzt9aw_7, "over- or underflow", 18);
812 STRING_LITERAL(TM__Q5wkpxktOdTGvlSRo9bzt9aw_9, "[[reraised from:\012", 17);
813 STRING_LITERAL(TM__Q5wkpxktOdTGvlSRo9bzt9aw_10, "]]\012", 3);
814 STRING_LITERAL(TM__Q5wkpxktOdTGvlSRo9bzt9aw_11, "(", 1);
815 STRING_LITERAL(TM__Q5wkpxktOdTGvlSRo9bzt9aw_12, ", ", 2);
816 STRING_LITERAL(TM__Q5wkpxktOdTGvlSRo9bzt9aw_13, ")", 1);
817 STRING_LITERAL(TM__Q5wkpxktOdTGvlSRo9bzt9aw_14, "\012", 1);
818 STRING_LITERAL(TM__Q5wkpxktOdTGvlSRo9bzt9aw_15, "no exception to reraise", 23);
819 N_LIB_PRIVATE TNimType NTIbool__VaVACK0bpYmqIQ0mKcHfQQ_;
820 STRING_LITERAL(TM__Q5wkpxktOdTGvlSRo9bzt9aw_16, " (invalid data!)", 16);
821 N_LIB_PRIVATE TNimType NTIcatchableerror__qrLSDoe2oBoAqNtJ9badtnA_;
822 N_LIB_PRIVATE TNimType NTIvalueerror__yoNlBGx0D2tRizIdhQuENw_;
823 N_LIB_PRIVATE TNimType NTIkeyerror__t7nhKLvXTQS9cS8ByJU9bIag_;
824 N_LIB_PRIVATE TNimType NTIrefkeyerror__8SzoIAgLw9ci2v0yafHj9b6Q_;
825 N_LIB_PRIVATE TNimType NTIassertiondefect__PtYxPmY5X0dorfvxAFbJpQ_;
826 N_LIB_PRIVATE TNimType NTIrefassertiondefect__S8DV6hfcgC9c0IiUsAoR29cQ_;
827 N_LIB_PRIVATE TNimType NTIuint4954__M4na42GvebBMnI5wV9cYMxg_;
828 N_LIB_PRIVATE TNimType NTIint4954__kDPg4wXyR8DDyA0MeEjIsw_;
829 N_LIB_PRIVATE TNimType NTIint5150__sVg18TP9cLifHyygRe9cro9aA_;
830 N_LIB_PRIVATE TNimType NTIint56__chXunH2dwinSkhpA6JnsXw_;
831 N_LIB_PRIVATE TNimType NTIfloat__w9bl9a1ul9ctRJWiMl9cNnIMvg_;
832 N_LIB_PRIVATE TNimType NTIchar__nmiMWKVIe46vacnhAFrQvw_;
833 N_LIB_PRIVATE TNimType NTIobjectassignmentdefect__6toVe0IizlEwN9bORXEdX3g_;
834 N_LIB_PRIVATE TNimType NTIrefobjectassignmentdefect__C0A9bPZSVeyr2BWpBf4Jxqw_;
835 STRING_LITERAL(TM__Q5wkpxktOdTGvlSRo9bzt9aw_21, "invalid object assignment", 25);
836 N_LIB_PRIVATE TNimType NTIindexdefect__n6tGEPHKkh7E1AP9bj30WrQ_;
837 N_LIB_PRIVATE TNimType NTIrefindexdefect__RJnHOb9cQV3neNC9cDkRgMyw_;
838 N_LIB_PRIVATE TNimType NTIrefvalueerror__Ie1m0dv1ZHg72IgPRr1cDw_;
839 N_LIB_PRIVATE TNimType NTIoserror__BeJgrOdDsczOwEWOZbRfKA_;
840 N_LIB_PRIVATE TNimType NTIrefoserror__9clYsYwyjCqe2PFTuCI3Ubg_;
841 N_LIB_PRIVATE TNimType NTIioerror__iLZrPn9anoh9ad1MmO0RczFw_;
842 N_LIB_PRIVATE TNimType NTIrefioerror__HMIVdYjdZYWskTmTQVo5BQ_;
843 STRING_LITERAL(TM__Q5wkpxktOdTGvlSRo9bzt9aw_22, "No stack traceback available\012", 29);
844 N_LIB_PRIVATE TNimType NTIeoferror__KGSY1JdrNB7Xi8KDhXFhSg_;
845 N_LIB_PRIVATE TNimType NTIrefeoferror__LEclZrWX2FQAodlapxGITw_;
846 N_LIB_PRIVATE TNimType NTIbiggestint__Aav8dQoMlCFnZRxA0IhTHQ_;
847 N_LIB_PRIVATE TNimType NTIuint5150__JrFyJbYm9b5I4hJ9cWDqvfYA_;
848 N_LIB_PRIVATE TNimType NTIrootref__0vJvi4uHbxjbxlkkX7P1EA_;
849 N_LIB_PRIVATE TNimType NTIuint56__k3HXouOuhqAKq0dx450lXQ_;
850 N_LIB_PRIVATE NIM_CONST tyArray__yp9a149boki9cCCWgfXI0Ip4A powtens__system_6124 = {1.0,
851 10.0,
852 100.0,
853 1000.0,
854 10000.0,
855 100000.0,
856 1000000.0,
857 10000000.0,
858 100000000.0,
859 1000000000.0,
860 10000000000.0,
861 100000000000.0,
862 1000000000000.0,
863 10000000000000.0,
864 100000000000000.0,
865 1000000000000000.0,
866 10000000000000000.0,
867 1e+17,
868 1e+18,
869 1e+19,
870 1e+20,
871 1e+21,
872 1e+22}
873 ;
874 N_LIB_PRIVATE TNimType NTIrangedefect__Rp9adJYTsbbIUzQ8fWxwgdA_;
875 N_LIB_PRIVATE TNimType NTIint__xHTZrq9aYs6boc9bCba0JbpQ_;
876 N_LIB_PRIVATE TNimType NTIrefint__9ai78kkwqt3gikTN9cpHKUVg_;
877 N_LIB_PRIVATE TNimType NTIptrstring__Y36n7l9b7WX4rcaAYCe6LWw_;
878 N_LIB_PRIVATE TNimType NTIcint__nlCscttRCss70IBTyuBqnA_;
879 N_LIB_PRIVATE TNimType NTIdivbyzerodefect__n3A4gjRrFZBuNnTYx1h9a8w_;
880 STRING_LITERAL(TM__Q5wkpxktOdTGvlSRo9bzt9aw_23, "true", 4);
881 STRING_LITERAL(TM__Q5wkpxktOdTGvlSRo9bzt9aw_24, "false", 5);
882 N_LIB_PRIVATE TNimType NTIint__u50F0puw9b9c6p256tX4eJLQ_;
883 STRING_LITERAL(TM__Q5wkpxktOdTGvlSRo9bzt9aw_25, "[GC] total memory: ", 19);
884 STRING_LITERAL(TM__Q5wkpxktOdTGvlSRo9bzt9aw_26, "\012[GC] occupied memory: ", 23);
885 STRING_LITERAL(TM__Q5wkpxktOdTGvlSRo9bzt9aw_27, "\012[GC] stack scans: ", 19);
886 STRING_LITERAL(TM__Q5wkpxktOdTGvlSRo9bzt9aw_28, "\012[GC] stack cells: ", 19);
887 STRING_LITERAL(TM__Q5wkpxktOdTGvlSRo9bzt9aw_29, "\012[GC] cycle collections: ", 25);
888 STRING_LITERAL(TM__Q5wkpxktOdTGvlSRo9bzt9aw_30, "\012[GC] max threshold: ", 21);
889 STRING_LITERAL(TM__Q5wkpxktOdTGvlSRo9bzt9aw_31, "\012[GC] zct capacity: ", 20);
890 STRING_LITERAL(TM__Q5wkpxktOdTGvlSRo9bzt9aw_32, "\012[GC] max cycle table size: ", 28);
891 STRING_LITERAL(TM__Q5wkpxktOdTGvlSRo9bzt9aw_33, "\012[GC] max pause time [ms]: ", 27);
892 STRING_LITERAL(TM__Q5wkpxktOdTGvlSRo9bzt9aw_34, "[GC] max stack size: ", 21);
893 N_LIB_PRIVATE NI nim_program_result;
894 N_LIB_PRIVATE tyProc__9axCnCRMUx32AHzFgBrzSMg globalRaiseHook__system_2291;
895 N_LIB_PRIVATE tyProc__9axCnCRMUx32AHzFgBrzSMg localRaiseHook__system_2294;
896 N_LIB_PRIVATE tyProc__T4eqaYlFJYZUv9aG9b1TV0bQ outOfMemHook__system_2296;
897 N_LIB_PRIVATE tyProc__NFmM6mqUOVW3cJg4yvk8Fw unhandledExceptionHook__system_2299;
898 N_LIB_PRIVATE TNimType strDesc__system_2412 = {((NI) 4), 0, ((tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A) 28), 2, NIM_NIL, NIM_NIL, NIM_NIL, NIM_NIL, NIM_NIL}
899 ;
900 N_LIB_PRIVATE tyProc__W6IXMh2CA4X1rFYGjUb4yg errorMessageWriter__system_2528;
901 N_LIB_PRIVATE TFrame* framePtr__system_2564;
902 N_LIB_PRIVATE TSafePoint* excHandler__system_2565;
903 N_LIB_PRIVATE Exception* currException__system_2566;
904 N_LIB_PRIVATE GcFrameHeader* gcFramePtr__system_2567;
905 N_LIB_PRIVATE tyProc__W6IXMh2CA4X1rFYGjUb4yg onUnhandledException__system_2751;
906 N_LIB_PRIVATE tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ gch__system_5209;
907 N_LIB_PRIVATE NI globalMarkersLen;
908 N_LIB_PRIVATE tyArray__9aTRall1siQT9bXabu2aKXUg globalMarkers;
909 N_LIB_PRIVATE NI threadLocalMarkersLen;
910 N_LIB_PRIVATE tyArray__9aTRall1siQT9bXabu2aKXUg threadLocalMarkers;
911 N_LIB_PRIVATE NI gHeapidGenerator__system_5476;
N_NIMCALL(void,setPosition__system_5395)912 N_LIB_PRIVATE N_NIMCALL(void, setPosition__system_5395)(tyObject_GcStack__7fytPA5bBsob6See21YMRA* stack, void* position) {
913 }
N_NOINLINE(void,nimGC_setStackBottom)914 N_LIB_PRIVATE N_NOINLINE(void, nimGC_setStackBottom)(void* theStackBottom) {
915 {
916 if (!(gch__system_5209.stack.bottom == NIM_NIL)) goto LA3_;
917 gch__system_5209.stack.bottom = theStackBottom;
918 }
919 goto LA1_;
920 LA3_: ;
921 {
922 NI a;
923 NI b;
924 if (!!((theStackBottom == gch__system_5209.stack.bottom))) goto LA6_;
925 a = ((NI) (ptrdiff_t) (theStackBottom));
926 b = ((NI) (ptrdiff_t) (gch__system_5209.stack.bottom));
927 gch__system_5209.stack.bottom = ((void*) (((a >= b) ? a : b)));
928 }
929 goto LA1_;
930 LA6_: ;
931 LA1_: ;
932 setPosition__system_5395((&gch__system_5209.stack), theStackBottom);
933 }
N_INLINE(void,initStackBottom)934 static N_INLINE(void, initStackBottom)(void) {
935 void* volatile locals;
936 locals = ((void*) ((&locals)));
937 nimGC_setStackBottom(locals);
938 }
N_INLINE(NI,roundup__system_3696)939 static N_INLINE(NI, roundup__system_3696)(NI x, NI v) {
940 NI result;
941 result = (NI)0;
942 result = (NI)((NI)(x + (NI)(v - ((NI) 1))) & (NI)((NU32) ~((NI)(v - ((NI) 1)))));
943 return result;
944 }
N_INLINE(NI,msbit__system_3819)945 static N_INLINE(NI, msbit__system_3819)(NU32 x) {
946 NI result;
947 NI a;
948 result = (NI)0;
949 {
950 if (!((NU32)(x) <= (NU32)(((NU32) 65535)))) goto LA3_;
951 {
952 if (!((NU32)(x) <= (NU32)(((NU32) 255)))) goto LA7_;
953 a = ((NI) 0);
954 }
955 goto LA5_;
956 LA7_: ;
957 {
958 a = ((NI) 8);
959 }
960 LA5_: ;
961 }
962 goto LA1_;
963 LA3_: ;
964 {
965 {
966 if (!((NU32)(x) <= (NU32)(((NU32) 16777215)))) goto LA13_;
967 a = ((NI) 16);
968 }
969 goto LA11_;
970 LA13_: ;
971 {
972 a = ((NI) 24);
973 }
974 LA11_: ;
975 }
976 LA1_: ;
977 result = (NI)(((NI) (fsLookupTable__system_3818[((NU32)((NU32)(x) >> (NU32)(a)))- 0])) + a);
978 return result;
979 }
N_INLINE(void,mappingSearch__system_3844)980 static N_INLINE(void, mappingSearch__system_3844)(NI* r, NI* fl, NI* sl) {
981 NI t;
982 NI T1_;
983 NI T2_;
984 T1_ = (NI)0;
985 T1_ = msbit__system_3819(((NU32) ((*r))));
986 T2_ = (NI)0;
987 T2_ = roundup__system_3696((NI)((NU32)(((NI) 1)) << (NU32)((NI)(T1_ - ((NI) 5)))), ((NI) 4096));
988 t = (NI)(T2_ - ((NI) 1));
989 (*r) = (NI)((*r) + t);
990 (*r) = (NI)((*r) & (NI)((NU32) ~(t)));
991 (*r) = (((*r) <= ((NI) 1056964608)) ? (*r) : ((NI) 1056964608));
992 (*fl) = msbit__system_3819(((NU32) ((*r))));
993 (*sl) = (NI)((NI)((NI32)((*r)) >> (NU32)((NI)((*fl) - ((NI) 5)))) - ((NI) 32));
994 (*fl) -= ((NI) 6);
995 }
N_INLINE(NI,lsbit__system_3827)996 static N_INLINE(NI, lsbit__system_3827)(NU32 x) {
997 NI result;
998 result = (NI)0;
999 result = msbit__system_3819((NU32)(x & (NU32)((NU32)((NU32)((NU32) ~(x))) + (NU32)(((NU32) 1)))));
1000 return result;
1001 }
N_INLINE(tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg *,findSuitableBlock__system_3876)1002 static N_INLINE(tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*, findSuitableBlock__system_3876)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, NI* fl, NI* sl) {
1003 tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* result;
1004 NU32 tmp;
1005 result = (tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*)0;
1006 tmp = (NU32)((*a).slBitmap[((*fl))- 0] & (NU32)((NU32)(((NU32) IL64(4294967295))) << (NU32)((*sl))));
1007 result = ((tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*) NIM_NIL);
1008 {
1009 if (!!((tmp == ((NU32) 0)))) goto LA3_;
1010 (*sl) = lsbit__system_3827(tmp);
1011 result = (*a).matrix[((*fl))- 0][((*sl))- 0];
1012 }
1013 goto LA1_;
1014 LA3_: ;
1015 {
1016 (*fl) = lsbit__system_3827((NU32)((*a).flBitmap & (NU32)((NU32)(((NU32) IL64(4294967295))) << (NU32)((NI)((*fl) + ((NI) 1))))));
1017 {
1018 if (!(((NI) 0) < (*fl))) goto LA8_;
1019 (*sl) = lsbit__system_3827((*a).slBitmap[((*fl))- 0]);
1020 result = (*a).matrix[((*fl))- 0][((*sl))- 0];
1021 }
1022 LA8_: ;
1023 }
1024 LA1_: ;
1025 return result;
1026 }
N_INLINE(NI,nimCStrLen)1027 static N_INLINE(NI, nimCStrLen)(NCSTRING a) {
1028 NI result;
1029 size_t T1_;
1030 result = (NI)0;
1031 T1_ = (size_t)0;
1032 T1_ = strlen(a);
1033 result = ((NI) (T1_));
1034 return result;
1035 }
N_INLINE(void,rawWrite)1036 static N_INLINE(void, rawWrite)(FILE* f, NCSTRING s) {
1037 int T1_;
1038 int T2_;
1039 T1_ = (int)0;
1040 T1_ = fwrite(((void*) (s)), ((size_t) 1), ((size_t) ((s ? nimCStrLen(s) : 0))), f);
1041 (void)(T1_);
1042 T2_ = (int)0;
1043 T2_ = fflush(f);
1044 (void)(T2_);
1045 }
N_NOINLINE(void,raiseOutOfMem__system_3691)1046 N_LIB_PRIVATE N_NOINLINE(void, raiseOutOfMem__system_3691)(void) {
1047 {
1048 if (!!((outOfMemHook__system_2296 == NIM_NIL))) goto LA3_;
1049 outOfMemHook__system_2296();
1050 }
1051 LA3_: ;
1052 rawWrite(stderr, "out of memory\012");
1053 exit(((NI) 1));
1054 }
N_INLINE(void *,osAllocPages__system_3716)1055 static N_INLINE(void*, osAllocPages__system_3716)(NI size) {
1056 void* result;
1057 result = (void*)0;
1058 result = mmap(NIM_NIL, ((size_t) (size)), ((int) 3), ((int) 258), ((int) -1), ((NI) 0));
1059 {
1060 NIM_BOOL T3_;
1061 T3_ = (NIM_BOOL)0;
1062 T3_ = (result == NIM_NIL);
1063 if (T3_) goto LA4_;
1064 T3_ = (result == ((void*) (((NI) -1))));
1065 LA4_: ;
1066 if (!T3_) goto LA5_;
1067 raiseOutOfMem__system_3691();
1068 }
1069 LA5_: ;
1070 return result;
1071 }
N_INLINE(void *,osTryAllocPages__system_3719)1072 static N_INLINE(void*, osTryAllocPages__system_3719)(NI size) {
1073 void* result;
1074 result = (void*)0;
1075 result = mmap(NIM_NIL, ((size_t) (size)), ((int) 3), ((int) 258), ((int) -1), ((NI) 0));
1076 {
1077 if (!(result == ((void*) (((NI) -1))))) goto LA3_;
1078 result = NIM_NIL;
1079 }
1080 LA3_: ;
1081 return result;
1082 }
N_INLINE(void,incCurrMem__system_3959)1083 static N_INLINE(void, incCurrMem__system_3959)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, NI bytes) {
1084 (*a).currMem += bytes;
1085 }
N_INLINE(void,nimSetMem__systemZmemory_7)1086 static N_INLINE(void, nimSetMem__systemZmemory_7)(void* a, int v, NI size) {
1087 void* T1_;
1088 T1_ = (void*)0;
1089 T1_ = memset(a, v, ((size_t) (size)));
1090 }
N_INLINE(void,nimZeroMem)1091 static N_INLINE(void, nimZeroMem)(void* p, NI size) {
1092 nimSetMem__systemZmemory_7(p, ((int) 0), size);
1093 }
N_INLINE(void,zeroMem__system_1724)1094 static N_INLINE(void, zeroMem__system_1724)(void* p, NI size) {
1095 nimZeroMem(p, size);
1096 }
N_NIMCALL(void *,llAlloc__system_3976)1097 N_LIB_PRIVATE N_NIMCALL(void*, llAlloc__system_3976)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, NI size) {
1098 void* result;
1099 result = (void*)0;
1100 {
1101 NIM_BOOL T3_;
1102 tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw* old;
1103 void* T7_;
1104 T3_ = (NIM_BOOL)0;
1105 T3_ = ((*a).llmem == ((tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw*) NIM_NIL));
1106 if (T3_) goto LA4_;
1107 T3_ = ((*(*a).llmem).size < size);
1108 LA4_: ;
1109 if (!T3_) goto LA5_;
1110 old = (*a).llmem;
1111 T7_ = (void*)0;
1112 T7_ = osAllocPages__system_3716(((NI) 4096));
1113 (*a).llmem = ((tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw*) (T7_));
1114 incCurrMem__system_3959(a, ((NI) 4096));
1115 (*(*a).llmem).size = ((NI) 4084);
1116 (*(*a).llmem).acc = ((NI) 12);
1117 (*(*a).llmem).next = old;
1118 }
1119 LA5_: ;
1120 result = ((void*) ((NI)(((NI) (ptrdiff_t) ((*a).llmem)) + (*(*a).llmem).acc)));
1121 (*(*a).llmem).size -= size;
1122 (*(*a).llmem).acc += size;
1123 zeroMem__system_1724(result, ((NI) (size)));
1124 return result;
1125 }
N_NIMCALL(void,addHeapLink__system_4043)1126 N_LIB_PRIVATE N_NIMCALL(void, addHeapLink__system_4043)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* p, NI size) {
1127 tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg* it;
1128 it = (&(*a).heapLinks);
1129 {
1130 while (1) {
1131 NIM_BOOL T3_;
1132 T3_ = (NIM_BOOL)0;
1133 T3_ = !((it == ((tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg*) NIM_NIL)));
1134 if (!(T3_)) goto LA4_;
1135 T3_ = (((NI) 30) <= (*it).len);
1136 LA4_: ;
1137 if (!T3_) goto LA2;
1138 it = (*it).next;
1139 } LA2: ;
1140 }
1141 {
1142 tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg* n;
1143 void* T9_;
1144 tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* colontmp_;
1145 NI colontmp__2;
1146 if (!(it == ((tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg*) NIM_NIL))) goto LA7_;
1147 T9_ = (void*)0;
1148 T9_ = llAlloc__system_3976(a, ((NI) 248));
1149 n = ((tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg*) (T9_));
1150 (*n).next = (*a).heapLinks.next;
1151 (*a).heapLinks.next = n;
1152 colontmp_ = p;
1153 colontmp__2 = size;
1154 (*n).chunks[(((NI) 0))- 0].Field0 = colontmp_;
1155 (*n).chunks[(((NI) 0))- 0].Field1 = colontmp__2;
1156 (*n).len = ((NI) 1);
1157 }
1158 goto LA5_;
1159 LA7_: ;
1160 {
1161 NI L;
1162 tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* colontmp__3;
1163 NI colontmp__4;
1164 L = (*it).len;
1165 colontmp__3 = p;
1166 colontmp__4 = size;
1167 (*it).chunks[(L)- 0].Field0 = colontmp__3;
1168 (*it).chunks[(L)- 0].Field1 = colontmp__4;
1169 (*it).len += ((NI) 1);
1170 }
1171 LA5_: ;
1172 }
N_INLINE(NI,pluspercent___system_696)1173 static N_INLINE(NI, pluspercent___system_696)(NI x, NI y) {
1174 NI result;
1175 result = (NI)0;
1176 result = ((NI) ((NU)((NU32)(((NU) (x))) + (NU32)(((NU) (y))))));
1177 return result;
1178 }
N_NIMCALL(tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw *,intSetGet__system_4186)1179 N_LIB_PRIVATE N_NIMCALL(tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw*, intSetGet__system_4186)(tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA* t, NI key) {
1180 tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw* result;
1181 tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw* it;
1182 { result = (tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw*)0;
1183 it = (*t).data[((NI)(key & ((NI) 255)))- 0];
1184 {
1185 while (1) {
1186 if (!!((it == ((tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw*) NIM_NIL)))) goto LA2;
1187 {
1188 if (!((*it).key == key)) goto LA5_;
1189 result = it;
1190 goto BeforeRet_;
1191 }
1192 LA5_: ;
1193 it = (*it).next;
1194 } LA2: ;
1195 }
1196 result = ((tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw*) NIM_NIL);
1197 }BeforeRet_: ;
1198 return result;
1199 }
N_NIMCALL(NIM_BOOL,contains__system_4225)1200 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, contains__system_4225)(tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA* s, NI key) {
1201 NIM_BOOL result;
1202 tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw* t;
1203 result = (NIM_BOOL)0;
1204 t = intSetGet__system_4186(s, (NI)((NI32)(key) >> (NU32)(((NI) 9))));
1205 {
1206 NI u;
1207 if (!!((t == ((tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw*) NIM_NIL)))) goto LA3_;
1208 u = (NI)(key & ((NI) 511));
1209 result = !(((NU)((*t).bits[((NI)((NI32)(u) >> (NU32)(((NI) 5))))- 0] & (NU)((NU32)(((NU) 1)) << (NU32)((NI)(u & ((NI) 31))))) == ((NU) 0)));
1210 }
1211 goto LA1_;
1212 LA3_: ;
1213 {
1214 result = NIM_FALSE;
1215 }
1216 LA1_: ;
1217 return result;
1218 }
N_INLINE(NI,pageIndex__system_4412)1219 static N_INLINE(NI, pageIndex__system_4412)(tyObject_BaseChunk__Sdq7WpT6qAH858F5ZEdG3w* c) {
1220 NI result;
1221 result = (NI)0;
1222 result = (NI)((NI32)(((NI) (ptrdiff_t) (c))) >> (NU32)(((NI) 12)));
1223 return result;
1224 }
N_INLINE(NI,minuspercent___system_716)1225 static N_INLINE(NI, minuspercent___system_716)(NI x, NI y) {
1226 NI result;
1227 result = (NI)0;
1228 result = ((NI) ((NU)((NU32)(((NU) (x))) - (NU32)(((NU) (y))))));
1229 return result;
1230 }
N_NIMCALL(tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg *,requestOsChunks__system_4430)1231 N_LIB_PRIVATE N_NIMCALL(tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*, requestOsChunks__system_4430)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, NI size) {
1232 tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* result;
1233 NI size_2;
1234 NI nxt;
1235 tyObject_BaseChunk__Sdq7WpT6qAH858F5ZEdG3w* next;
1236 NI lastSize;
1237 NI prv;
1238 tyObject_BaseChunk__Sdq7WpT6qAH858F5ZEdG3w* prev;
1239 result = (tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*)0;
1240 {
1241 NI usedMem;
1242 if (!!((*a).blockChunkSizeIncrease)) goto LA3_;
1243 usedMem = (*a).occ;
1244 {
1245 if (!(usedMem < ((NI) 65536))) goto LA7_;
1246 (*a).nextChunkSize = ((NI) 16384);
1247 }
1248 goto LA5_;
1249 LA7_: ;
1250 {
1251 NI T10_;
1252 T10_ = (NI)0;
1253 T10_ = roundup__system_3696((NI)((NI32)(usedMem) >> (NU32)(((NI) 2))), ((NI) 4096));
1254 (*a).nextChunkSize = ((T10_ <= (NI)((*a).nextChunkSize * ((NI) 2))) ? T10_ : (NI)((*a).nextChunkSize * ((NI) 2)));
1255 (*a).nextChunkSize = (((*a).nextChunkSize <= ((NI) 1056964608)) ? (*a).nextChunkSize : ((NI) 1056964608));
1256 }
1257 LA5_: ;
1258 }
1259 LA3_: ;
1260 size_2 = size;
1261 {
1262 void* T15_;
1263 if (!((*a).nextChunkSize < size_2)) goto LA13_;
1264 T15_ = (void*)0;
1265 T15_ = osAllocPages__system_3716(size_2);
1266 result = ((tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*) (T15_));
1267 }
1268 goto LA11_;
1269 LA13_: ;
1270 {
1271 void* T17_;
1272 T17_ = (void*)0;
1273 T17_ = osTryAllocPages__system_3719((*a).nextChunkSize);
1274 result = ((tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*) (T17_));
1275 {
1276 void* T22_;
1277 if (!(result == ((tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*) NIM_NIL))) goto LA20_;
1278 T22_ = (void*)0;
1279 T22_ = osAllocPages__system_3716(size_2);
1280 result = ((tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*) (T22_));
1281 (*a).blockChunkSizeIncrease = NIM_TRUE;
1282 }
1283 goto LA18_;
1284 LA20_: ;
1285 {
1286 size_2 = (*a).nextChunkSize;
1287 }
1288 LA18_: ;
1289 }
1290 LA11_: ;
1291 incCurrMem__system_3959(a, size_2);
1292 (*a).freeMem += size_2;
1293 addHeapLink__system_4043(a, result, size_2);
1294 (*result).next = ((tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*) NIM_NIL);
1295 (*result).prev = ((tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*) NIM_NIL);
1296 (*result).Sup.size = size_2;
1297 nxt = pluspercent___system_696(((NI) (ptrdiff_t) (result)), size_2);
1298 next = ((tyObject_BaseChunk__Sdq7WpT6qAH858F5ZEdG3w*) (nxt));
1299 {
1300 NI T26_;
1301 NIM_BOOL T27_;
1302 T26_ = (NI)0;
1303 T26_ = pageIndex__system_4412(next);
1304 T27_ = (NIM_BOOL)0;
1305 T27_ = contains__system_4225((&(*a).chunkStarts), T26_);
1306 if (!T27_) goto LA28_;
1307 (*next).prevSize = (NI)(size_2 | (NI)((*next).prevSize & ((NI) 1)));
1308 }
1309 LA28_: ;
1310 {
1311 if (!!(((*a).lastSize == ((NI) 0)))) goto LA32_;
1312 lastSize = (*a).lastSize;
1313 }
1314 goto LA30_;
1315 LA32_: ;
1316 {
1317 lastSize = ((NI) 4096);
1318 }
1319 LA30_: ;
1320 prv = minuspercent___system_716(((NI) (ptrdiff_t) (result)), lastSize);
1321 prev = ((tyObject_BaseChunk__Sdq7WpT6qAH858F5ZEdG3w*) (prv));
1322 {
1323 NIM_BOOL T37_;
1324 NI T38_;
1325 T37_ = (NIM_BOOL)0;
1326 T38_ = (NI)0;
1327 T38_ = pageIndex__system_4412(prev);
1328 T37_ = contains__system_4225((&(*a).chunkStarts), T38_);
1329 if (!(T37_)) goto LA39_;
1330 T37_ = ((*prev).size == lastSize);
1331 LA39_: ;
1332 if (!T37_) goto LA40_;
1333 (*result).Sup.prevSize = (NI)(lastSize | (NI)((*result).Sup.prevSize & ((NI) 1)));
1334 }
1335 goto LA35_;
1336 LA40_: ;
1337 {
1338 (*result).Sup.prevSize = (NI)(((NI) 0) | (NI)((*result).Sup.prevSize & ((NI) 1)));
1339 }
1340 LA35_: ;
1341 (*a).lastSize = size_2;
1342 return result;
1343 }
N_INLINE(NI,pageIndex__system_4419)1344 static N_INLINE(NI, pageIndex__system_4419)(void* p) {
1345 NI result;
1346 result = (NI)0;
1347 result = (NI)((NI32)(((NI) (ptrdiff_t) (p))) >> (NU32)(((NI) 12)));
1348 return result;
1349 }
N_INLINE(NIM_BOOL,isAccessible__system_4453)1350 static N_INLINE(NIM_BOOL, isAccessible__system_4453)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, void* p) {
1351 NIM_BOOL result;
1352 NI T1_;
1353 result = (NIM_BOOL)0;
1354 T1_ = (NI)0;
1355 T1_ = pageIndex__system_4419(p);
1356 result = contains__system_4225((&(*a).chunkStarts), T1_);
1357 return result;
1358 }
N_INLINE(void,updatePrevSize__system_4471)1359 static N_INLINE(void, updatePrevSize__system_4471)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* c, NI prevSize) {
1360 tyObject_BaseChunk__Sdq7WpT6qAH858F5ZEdG3w* ri;
1361 NI T1_;
1362 T1_ = (NI)0;
1363 T1_ = pluspercent___system_696(((NI) (ptrdiff_t) (c)), (*c).Sup.size);
1364 ri = ((tyObject_BaseChunk__Sdq7WpT6qAH858F5ZEdG3w*) (T1_));
1365 {
1366 NIM_BOOL T4_;
1367 T4_ = (NIM_BOOL)0;
1368 T4_ = isAccessible__system_4453((&(*a)), ((void*) (ri)));
1369 if (!T4_) goto LA5_;
1370 (*ri).prevSize = (NI)(prevSize | (NI)((*ri).prevSize & ((NI) 1)));
1371 }
1372 LA5_: ;
1373 }
N_NIMCALL(tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw *,intSetPut__system_4208)1374 N_LIB_PRIVATE N_NIMCALL(tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw*, intSetPut__system_4208)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA* t, NI key) {
1375 tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw* result;
1376 result = (tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw*)0;
1377 result = intSetGet__system_4186((&(*t)), key);
1378 {
1379 void* T5_;
1380 if (!(result == ((tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw*) NIM_NIL))) goto LA3_;
1381 T5_ = (void*)0;
1382 T5_ = llAlloc__system_3976(a, ((NI) 72));
1383 result = ((tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw*) (T5_));
1384 (*result).next = (*t).data[((NI)(key & ((NI) 255)))- 0];
1385 (*t).data[((NI)(key & ((NI) 255)))- 0] = result;
1386 (*result).key = key;
1387 }
1388 LA3_: ;
1389 return result;
1390 }
N_NIMCALL(void,incl__system_4247)1391 N_LIB_PRIVATE N_NIMCALL(void, incl__system_4247)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA* s, NI key) {
1392 tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw* t;
1393 NI u;
1394 t = intSetPut__system_4208(a, s, (NI)((NI32)(key) >> (NU32)(((NI) 9))));
1395 u = (NI)(key & ((NI) 511));
1396 (*t).bits[((NI)((NI32)(u) >> (NU32)(((NI) 5))))- 0] = (NU)((*t).bits[((NI)((NI32)(u) >> (NU32)(((NI) 5))))- 0] | (NU)((NU32)(((NU) 1)) << (NU32)((NI)(u & ((NI) 31)))));
1397 }
N_NIMCALL(tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg *,splitChunk2__system_4476)1398 N_LIB_PRIVATE N_NIMCALL(tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*, splitChunk2__system_4476)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* c, NI size) {
1399 tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* result;
1400 NI T1_;
1401 NI T2_;
1402 result = (tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*)0;
1403 T1_ = (NI)0;
1404 T1_ = pluspercent___system_696(((NI) (ptrdiff_t) (c)), size);
1405 result = ((tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*) (T1_));
1406 (*result).Sup.size = (NI)((*c).Sup.size - size);
1407 (*result).next = ((tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*) NIM_NIL);
1408 (*result).prev = ((tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*) NIM_NIL);
1409 (*result).Sup.prevSize = size;
1410 updatePrevSize__system_4471(a, c, (*result).Sup.size);
1411 (*c).Sup.size = size;
1412 T2_ = (NI)0;
1413 T2_ = pageIndex__system_4412((*((tyObject_BaseChunk__Sdq7WpT6qAH858F5ZEdG3w**) (&(result)))));
1414 incl__system_4247(a, (&(*a).chunkStarts), T2_);
1415 return result;
1416 }
N_INLINE(tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ,mappingInsert__system_3862)1417 static N_INLINE(tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ, mappingInsert__system_3862)(NI r) {
1418 tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ result;
1419 nimZeroMem((void*)(&result), sizeof(tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ));
1420 result.Field0 = msbit__system_3819(((NU32) (r)));
1421 result.Field1 = (NI)((NI)((NI32)(r) >> (NU32)((NI)(result.Field0 - ((NI) 5)))) - ((NI) 32));
1422 result.Field0 -= ((NI) 6);
1423 return result;
1424 }
N_INLINE(void,setBit__system_3830)1425 static N_INLINE(void, setBit__system_3830)(NI nr, NU32* dest) {
1426 (*dest) = (NU32)((*dest) | (NU32)((NU32)(((NU32) 1)) << (NU32)((NI)(nr & ((NI) 31)))));
1427 }
N_NIMCALL(void,addChunkToMatrix__system_3950)1428 N_LIB_PRIVATE N_NIMCALL(void, addChunkToMatrix__system_3950)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* b) {
1429 tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ T1_;
1430 NI fl;
1431 NI sl;
1432 T1_ = mappingInsert__system_3862((*b).Sup.size);
1433 fl = T1_.Field0;
1434 sl = T1_.Field1;
1435 (*b).prev = ((tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*) NIM_NIL);
1436 (*b).next = (*a).matrix[(fl)- 0][(sl)- 0];
1437 {
1438 if (!!(((*a).matrix[(fl)- 0][(sl)- 0] == ((tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*) NIM_NIL)))) goto LA4_;
1439 (*(*a).matrix[(fl)- 0][(sl)- 0]).prev = b;
1440 }
1441 LA4_: ;
1442 (*a).matrix[(fl)- 0][(sl)- 0] = b;
1443 setBit__system_3830(sl, (&(*a).slBitmap[(fl)- 0]));
1444 setBit__system_3830(fl, (&(*a).flBitmap));
1445 }
N_NIMCALL(void,splitChunk__system_4481)1446 N_LIB_PRIVATE N_NIMCALL(void, splitChunk__system_4481)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* c, NI size) {
1447 tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* rest;
1448 rest = splitChunk2__system_4476(a, c, size);
1449 addChunkToMatrix__system_3950(a, rest);
1450 }
N_INLINE(void,clearBit__system_3837)1451 static N_INLINE(void, clearBit__system_3837)(NI nr, NU32* dest) {
1452 (*dest) = (NU32)((*dest) & (NU32)((NU32) ~((NU32)((NU32)(((NU32) 1)) << (NU32)((NI)(nr & ((NI) 31)))))));
1453 }
N_NIMCALL(void,removeChunkFromMatrix2__system_3941)1454 N_LIB_PRIVATE N_NIMCALL(void, removeChunkFromMatrix2__system_3941)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* b, NI fl, NI sl) {
1455 (*a).matrix[(fl)- 0][(sl)- 0] = (*b).next;
1456 {
1457 if (!!(((*a).matrix[(fl)- 0][(sl)- 0] == ((tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*) NIM_NIL)))) goto LA3_;
1458 (*(*a).matrix[(fl)- 0][(sl)- 0]).prev = ((tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*) NIM_NIL);
1459 }
1460 goto LA1_;
1461 LA3_: ;
1462 {
1463 clearBit__system_3837(sl, (&(*a).slBitmap[(fl)- 0]));
1464 {
1465 if (!((*a).slBitmap[(fl)- 0] == ((NU32) 0))) goto LA8_;
1466 clearBit__system_3837(fl, (&(*a).flBitmap));
1467 }
1468 LA8_: ;
1469 }
1470 LA1_: ;
1471 (*b).prev = ((tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*) NIM_NIL);
1472 (*b).next = ((tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*) NIM_NIL);
1473 }
N_NIMCALL(tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg *,getBigChunk__system_4507)1474 N_LIB_PRIVATE N_NIMCALL(tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*, getBigChunk__system_4507)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, NI size) {
1475 tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* result;
1476 NI size_2;
1477 NI fl;
1478 NI sl;
1479 NI T19_;
1480 result = (tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*)0;
1481 size_2 = size;
1482 fl = ((NI) 0);
1483 sl = ((NI) 0);
1484 mappingSearch__system_3844((&size_2), (&fl), (&sl));
1485 result = findSuitableBlock__system_3876((&(*a)), (&fl), (&sl));
1486 {
1487 if (!(result == ((tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*) NIM_NIL))) goto LA3_;
1488 {
1489 if (!(size_2 < ((NI) 524288))) goto LA7_;
1490 result = requestOsChunks__system_4430(a, ((NI) 524288));
1491 splitChunk__system_4481(a, result, size_2);
1492 }
1493 goto LA5_;
1494 LA7_: ;
1495 {
1496 result = requestOsChunks__system_4430(a, size_2);
1497 {
1498 if (!(size_2 < (*result).Sup.size)) goto LA12_;
1499 splitChunk__system_4481(a, result, size_2);
1500 }
1501 LA12_: ;
1502 }
1503 LA5_: ;
1504 }
1505 goto LA1_;
1506 LA3_: ;
1507 {
1508 removeChunkFromMatrix2__system_3941(a, result, fl, sl);
1509 {
1510 if (!((NI)(size_2 + ((NI) 4096)) <= (*result).Sup.size)) goto LA17_;
1511 splitChunk__system_4481(a, result, size_2);
1512 }
1513 LA17_: ;
1514 }
1515 LA1_: ;
1516 (*result).Sup.prevSize = ((NI) 1);
1517 T19_ = (NI)0;
1518 T19_ = pageIndex__system_4412((*((tyObject_BaseChunk__Sdq7WpT6qAH858F5ZEdG3w**) (&(result)))));
1519 incl__system_4247(a, (&(*a).chunkStarts), T19_);
1520 (*a).freeMem -= size_2;
1521 return result;
1522 }
N_NIMCALL(tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ *,getSmallChunk__system_4530)1523 N_LIB_PRIVATE N_NIMCALL(tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ*, getSmallChunk__system_4530)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a) {
1524 tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ* result;
1525 tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* res;
1526 result = (tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ*)0;
1527 res = getBigChunk__system_4507(a, ((NI) 4096));
1528 result = ((tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ*) (res));
1529 return result;
1530 }
N_INLINE(void,listAdd__system_4568)1531 static N_INLINE(void, listAdd__system_4568)(tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ** head, tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ* c) {
1532 (*c).next = (*head);
1533 {
1534 if (!!(((*head) == ((tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ*) NIM_NIL)))) goto LA3_;
1535 (*(*head)).prev = c;
1536 }
1537 LA3_: ;
1538 (*head) = c;
1539 }
N_INLINE(void,listRemove__system_4621)1540 static N_INLINE(void, listRemove__system_4621)(tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ** head, tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ* c) {
1541 {
1542 if (!(c == (*head))) goto LA3_;
1543 (*head) = (*c).next;
1544 {
1545 if (!!(((*head) == ((tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ*) NIM_NIL)))) goto LA7_;
1546 (*(*head)).prev = ((tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ*) NIM_NIL);
1547 }
1548 LA7_: ;
1549 }
1550 goto LA1_;
1551 LA3_: ;
1552 {
1553 (*(*c).prev).next = (*c).next;
1554 {
1555 if (!!(((*c).next == ((tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ*) NIM_NIL)))) goto LA12_;
1556 (*(*c).next).prev = (*c).prev;
1557 }
1558 LA12_: ;
1559 }
1560 LA1_: ;
1561 (*c).next = ((tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ*) NIM_NIL);
1562 (*c).prev = ((tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ*) NIM_NIL);
1563 }
N_NIMCALL(tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg *,getHugeChunk__system_4522)1564 N_LIB_PRIVATE N_NIMCALL(tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*, getHugeChunk__system_4522)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, NI size) {
1565 tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* result;
1566 void* T1_;
1567 NI T2_;
1568 result = (tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*)0;
1569 T1_ = (void*)0;
1570 T1_ = osAllocPages__system_3716(size);
1571 result = ((tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*) (T1_));
1572 incCurrMem__system_3959(a, size);
1573 (*result).next = ((tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*) NIM_NIL);
1574 (*result).prev = ((tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*) NIM_NIL);
1575 (*result).Sup.size = size;
1576 (*result).Sup.prevSize = ((NI) 1);
1577 T2_ = (NI)0;
1578 T2_ = pageIndex__system_4412((*((tyObject_BaseChunk__Sdq7WpT6qAH858F5ZEdG3w**) (&(result)))));
1579 incl__system_4247(a, (&(*a).chunkStarts), T2_);
1580 return result;
1581 }
N_NIMCALL(tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw *,getBottom__system_4002)1582 N_LIB_PRIVATE N_NIMCALL(tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw*, getBottom__system_4002)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a) {
1583 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* result;
1584 result = (tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw*)0;
1585 result = (&(*a).bottomData);
1586 {
1587 if (!((*result).link[(((NI) 0))- 0] == ((tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw*) NIM_NIL))) goto LA3_;
1588 (*result).link[(((NI) 0))- 0] = result;
1589 (*result).link[(((NI) 1))- 0] = result;
1590 }
1591 LA3_: ;
1592 return result;
1593 }
N_NIMCALL(tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw *,allocAvlNode__system_4018)1594 N_LIB_PRIVATE N_NIMCALL(tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw*, allocAvlNode__system_4018)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, NI key, NI upperBound) {
1595 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* result;
1596 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* bottom;
1597 result = (tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw*)0;
1598 {
1599 if (!!(((*a).freeAvlNodes == ((tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw*) NIM_NIL)))) goto LA3_;
1600 result = (*a).freeAvlNodes;
1601 (*a).freeAvlNodes = (*(*a).freeAvlNodes).link[(((NI) 0))- 0];
1602 }
1603 goto LA1_;
1604 LA3_: ;
1605 {
1606 void* T6_;
1607 T6_ = (void*)0;
1608 T6_ = llAlloc__system_3976(a, ((NI) 20));
1609 result = ((tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw*) (T6_));
1610 }
1611 LA1_: ;
1612 (*result).key = key;
1613 (*result).upperBound = upperBound;
1614 bottom = getBottom__system_4002(a);
1615 (*result).link[(((NI) 0))- 0] = bottom;
1616 (*result).link[(((NI) 1))- 0] = bottom;
1617 (*result).level = ((NI) 1);
1618 return result;
1619 }
N_INLINE(NIM_BOOL,ltpercent___system_1005)1620 static N_INLINE(NIM_BOOL, ltpercent___system_1005)(NI x, NI y) {
1621 NIM_BOOL result;
1622 result = (NIM_BOOL)0;
1623 result = ((NU32)(((NU) (x))) < (NU32)(((NU) (y))));
1624 return result;
1625 }
N_NIMCALL(void,skew__system_4139)1626 N_LIB_PRIVATE N_NIMCALL(void, skew__system_4139)(tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw** t) {
1627 {
1628 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* temp;
1629 if (!((*(*(*t)).link[(((NI) 0))- 0]).level == (*(*t)).level)) goto LA3_;
1630 temp = (*t);
1631 (*t) = (*(*t)).link[(((NI) 0))- 0];
1632 (*temp).link[(((NI) 0))- 0] = (*(*t)).link[(((NI) 1))- 0];
1633 (*(*t)).link[(((NI) 1))- 0] = temp;
1634 }
1635 LA3_: ;
1636 }
N_NIMCALL(void,split__system_4142)1637 N_LIB_PRIVATE N_NIMCALL(void, split__system_4142)(tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw** t) {
1638 {
1639 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* temp;
1640 if (!((*(*(*(*t)).link[(((NI) 1))- 0]).link[(((NI) 1))- 0]).level == (*(*t)).level)) goto LA3_;
1641 temp = (*t);
1642 (*t) = (*(*t)).link[(((NI) 1))- 0];
1643 (*temp).link[(((NI) 1))- 0] = (*(*t)).link[(((NI) 0))- 0];
1644 (*(*t)).link[(((NI) 0))- 0] = temp;
1645 (*(*t)).level += ((NI) 1);
1646 }
1647 LA3_: ;
1648 }
N_NIMCALL(void,add__system_4149)1649 N_LIB_PRIVATE N_NIMCALL(void, add__system_4149)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw** t, NI key, NI upperBound) {
1650 {
1651 if (!((*(*t)).link[(((NI) 0))- 0] == (*t))) goto LA3_;
1652 (*t) = allocAvlNode__system_4018(a, key, upperBound);
1653 }
1654 goto LA1_;
1655 LA3_: ;
1656 {
1657 {
1658 NIM_BOOL T8_;
1659 T8_ = (NIM_BOOL)0;
1660 T8_ = ltpercent___system_1005(key, (*(*t)).key);
1661 if (!T8_) goto LA9_;
1662 add__system_4149(a, &(*(*t)).link[(((NI) 0))- 0], key, upperBound);
1663 }
1664 goto LA6_;
1665 LA9_: ;
1666 {
1667 NIM_BOOL T12_;
1668 T12_ = (NIM_BOOL)0;
1669 T12_ = ltpercent___system_1005((*(*t)).key, key);
1670 if (!T12_) goto LA13_;
1671 add__system_4149(a, &(*(*t)).link[(((NI) 1))- 0], key, upperBound);
1672 }
1673 goto LA6_;
1674 LA13_: ;
1675 {
1676 }
1677 LA6_: ;
1678 skew__system_4139(t);
1679 split__system_4142(t);
1680 }
1681 LA1_: ;
1682 }
N_NIMCALL(void *,rawAlloc__system_4551)1683 N_LIB_PRIVATE N_NIMCALL(void*, rawAlloc__system_4551)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, NI requestedSize) {
1684 void* result;
1685 NI size;
1686 result = (void*)0;
1687 size = roundup__system_3696(requestedSize, ((NI) 16));
1688 {
1689 NI s;
1690 tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ* c;
1691 if (!(size <= ((NI) 4064))) goto LA3_;
1692 s = (NI)(size / ((NI) 16));
1693 c = (*a).freeSmallChunks[(s)- 0];
1694 {
1695 if (!(c == ((tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ*) NIM_NIL))) goto LA7_;
1696 c = getSmallChunk__system_4530(a);
1697 (*c).freeList = ((tyObject_FreeCell__u6M5LHprqzkn9axr04yg9bGQ*) NIM_NIL);
1698 (*c).Sup.size = size;
1699 (*c).acc = size;
1700 (*c).free = (NI)(((NI) 4064) - size);
1701 (*c).next = ((tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ*) NIM_NIL);
1702 (*c).prev = ((tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ*) NIM_NIL);
1703 listAdd__system_4568(&(*a).freeSmallChunks[(s)- 0], c);
1704 result = ((void*) ((*c).data));
1705 }
1706 goto LA5_;
1707 LA7_: ;
1708 {
1709 {
1710 NI T14_;
1711 if (!((*c).freeList == ((tyObject_FreeCell__u6M5LHprqzkn9axr04yg9bGQ*) NIM_NIL))) goto LA12_;
1712 T14_ = (NI)0;
1713 T14_ = pluspercent___system_696(((NI) (ptrdiff_t) ((*c).data)), (*c).acc);
1714 result = ((void*) (T14_));
1715 (*c).acc += size;
1716 }
1717 goto LA10_;
1718 LA12_: ;
1719 {
1720 result = ((void*) ((*c).freeList));
1721 (*c).freeList = (*(*c).freeList).next;
1722 }
1723 LA10_: ;
1724 (*c).free -= size;
1725 }
1726 LA5_: ;
1727 {
1728 if (!((*c).free < size)) goto LA18_;
1729 listRemove__system_4621(&(*a).freeSmallChunks[(s)- 0], c);
1730 }
1731 LA18_: ;
1732 (*a).occ += size;
1733 }
1734 goto LA1_;
1735 LA3_: ;
1736 {
1737 tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* c_2;
1738 NI T30_;
1739 size = (NI)(requestedSize + ((NI) 16));
1740 {
1741 if (!(((NI) 1056964609) <= size)) goto LA23_;
1742 c_2 = getHugeChunk__system_4522(a, size);
1743 }
1744 goto LA21_;
1745 LA23_: ;
1746 {
1747 c_2 = getBigChunk__system_4507(a, size);
1748 }
1749 LA21_: ;
1750 result = ((void*) ((*c_2).data));
1751 {
1752 if (!((*a).root == ((tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw*) NIM_NIL))) goto LA28_;
1753 (*a).root = getBottom__system_4002(a);
1754 }
1755 LA28_: ;
1756 T30_ = (NI)0;
1757 T30_ = pluspercent___system_696(((NI) (ptrdiff_t) (result)), size);
1758 add__system_4149(a, &(*a).root, ((NI) (ptrdiff_t) (result)), T30_);
1759 (*a).occ += (*c_2).Sup.size;
1760 }
1761 LA1_: ;
1762 return result;
1763 }
N_NIMCALL(void *,alloc__system_4767)1764 N_LIB_PRIVATE N_NIMCALL(void*, alloc__system_4767)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* allocator, NI size) {
1765 void* result;
1766 NI T1_;
1767 result = (void*)0;
1768 result = rawAlloc__system_4551(allocator, (NI)(((NI) (size)) + ((NI) 8)));
1769 (*((tyObject_FreeCell__u6M5LHprqzkn9axr04yg9bGQ*) (result))).zeroField = ((NI) 1);
1770 T1_ = (NI)0;
1771 T1_ = pluspercent___system_696(((NI) (ptrdiff_t) (result)), ((NI) 8));
1772 result = ((void*) (T1_));
1773 return result;
1774 }
N_NIMCALL(void *,alloc0__system_4771)1775 N_LIB_PRIVATE N_NIMCALL(void*, alloc0__system_4771)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* allocator, NI size) {
1776 void* result;
1777 result = (void*)0;
1778 result = alloc__system_4767(allocator, size);
1779 zeroMem__system_1724(result, size);
1780 return result;
1781 }
N_NOCONV(void *,alloc0Impl__system_1745)1782 N_LIB_PRIVATE N_NOCONV(void*, alloc0Impl__system_1745)(NI size) {
1783 void* result;
1784 result = (void*)0;
1785 result = alloc0__system_4771((&gch__system_5209.region), size);
1786 return result;
1787 }
N_NIMCALL(void,init__system_4877)1788 N_LIB_PRIVATE N_NIMCALL(void, init__system_4877)(tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w* s, NI cap) {
1789 void* T1_;
1790 (*s).len = ((NI) 0);
1791 (*s).cap = cap;
1792 T1_ = (void*)0;
1793 T1_ = alloc0Impl__system_1745(((NI) ((NI)(cap * ((NI) 4)))));
1794 (*s).d = ((tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g**) (T1_));
1795 }
N_NIMCALL(void,init__system_4883)1796 N_LIB_PRIVATE N_NIMCALL(void, init__system_4883)(tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ* s) {
1797 void* T1_;
1798 T1_ = (void*)0;
1799 T1_ = alloc0Impl__system_1745(((NI) 4096));
1800 (*s).data = ((tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg**) (T1_));
1801 (*s).max = ((NI) 1023);
1802 (*s).counter = ((NI) 0);
1803 (*s).head = ((tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg*) NIM_NIL);
1804 }
N_INLINE(NI,atomicInc__system_2172)1805 static N_INLINE(NI, atomicInc__system_2172)(NI* memLoc, NI x) {
1806 NI result;
1807 result = (NI)0;
1808 (*memLoc) += x;
1809 result = (*memLoc);
1810 return result;
1811 }
N_NIMCALL(void,initGC__system_2398)1812 N_LIB_PRIVATE N_NIMCALL(void, initGC__system_2398)(void) {
1813 NI T1_;
1814 gch__system_5209.cycleThreshold = ((NI) 4194304);
1815 gch__system_5209.zctThreshold = ((NI) 500);
1816 gch__system_5209.stat.stackScans = ((NI) 0);
1817 gch__system_5209.stat.cycleCollections = ((NI) 0);
1818 gch__system_5209.stat.maxThreshold = ((NI) 0);
1819 gch__system_5209.stat.maxStackSize = ((NI) 0);
1820 gch__system_5209.stat.maxStackCells = ((NI) 0);
1821 gch__system_5209.stat.cycleTableSize = ((NI) 0);
1822 init__system_4877((&gch__system_5209.zct), ((NI) 1024));
1823 init__system_4877((&gch__system_5209.tempStack), ((NI) 1024));
1824 init__system_4877((&gch__system_5209.decStack), ((NI) 1024));
1825 init__system_4883((&gch__system_5209.marked));
1826 init__system_4877((&gch__system_5209.additionalRoots), ((NI) 1024));
1827 T1_ = (NI)0;
1828 T1_ = atomicInc__system_2172((&gHeapidGenerator__system_5476), ((NI) 1));
1829 gch__system_5209.gcThreadId = (NI)(T1_ - ((NI) 1));
1830 }
N_NIMCALL(void,Marker_tySequence__uB9b75OUPRENsBAu4AnoePA)1831 static N_NIMCALL(void, Marker_tySequence__uB9b75OUPRENsBAu4AnoePA)(void* p, NI op) {
1832 tySequence__uB9b75OUPRENsBAu4AnoePA* a;
1833 NI T1_;
1834 a = (tySequence__uB9b75OUPRENsBAu4AnoePA*)p;
1835 T1_ = (NI)0;
1836 }
N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g *,usrToCell__system_5262)1837 static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__system_5262)(void* usr) {
1838 tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* result;
1839 NI T1_;
1840 result = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
1841 T1_ = (NI)0;
1842 T1_ = minuspercent___system_716(((NI) (ptrdiff_t) (usr)), ((NI) 8));
1843 result = ((tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*) (T1_));
1844 return result;
1845 }
N_NOCONV(void *,allocImpl__system_1743)1846 N_LIB_PRIVATE N_NOCONV(void*, allocImpl__system_1743)(NI size) {
1847 void* result;
1848 result = (void*)0;
1849 result = alloc__system_4767((&gch__system_5209.region), size);
1850 return result;
1851 }
N_INLINE(void,nimCopyMem)1852 static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size) {
1853 void* T1_;
1854 T1_ = (void*)0;
1855 T1_ = memcpy(dest, source, ((size_t) (size)));
1856 }
N_INLINE(void,copyMem__system_1727)1857 static N_INLINE(void, copyMem__system_1727)(void* dest, void* source, NI size) {
1858 nimCopyMem(dest, source, size);
1859 }
N_INLINE(tyObject_BaseChunk__Sdq7WpT6qAH858F5ZEdG3w *,pageAddr__system_4426)1860 static N_INLINE(tyObject_BaseChunk__Sdq7WpT6qAH858F5ZEdG3w*, pageAddr__system_4426)(void* p) {
1861 tyObject_BaseChunk__Sdq7WpT6qAH858F5ZEdG3w* result;
1862 result = (tyObject_BaseChunk__Sdq7WpT6qAH858F5ZEdG3w*)0;
1863 result = ((tyObject_BaseChunk__Sdq7WpT6qAH858F5ZEdG3w*) ((NI)(((NI) (ptrdiff_t) (p)) & ((NI) -4096))));
1864 return result;
1865 }
N_INLINE(NIM_BOOL,isSmallChunk__system_4337)1866 static N_INLINE(NIM_BOOL, isSmallChunk__system_4337)(tyObject_BaseChunk__Sdq7WpT6qAH858F5ZEdG3w* c) {
1867 NIM_BOOL result;
1868 result = (NIM_BOOL)0;
1869 result = ((*c).size <= ((NI) 4064));
1870 return result;
1871 }
N_INLINE(NIM_BOOL,chunkUnused__system_4343)1872 static N_INLINE(NIM_BOOL, chunkUnused__system_4343)(tyObject_BaseChunk__Sdq7WpT6qAH858F5ZEdG3w* c) {
1873 NIM_BOOL result;
1874 result = (NIM_BOOL)0;
1875 result = ((NI)((*c).prevSize & ((NI) 1)) == ((NI) 0));
1876 return result;
1877 }
N_NIMCALL(void,removeChunkFromMatrix__system_3911)1878 N_LIB_PRIVATE N_NIMCALL(void, removeChunkFromMatrix__system_3911)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* b) {
1879 tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ T1_;
1880 NI fl;
1881 NI sl;
1882 T1_ = mappingInsert__system_3862((*b).Sup.size);
1883 fl = T1_.Field0;
1884 sl = T1_.Field1;
1885 {
1886 if (!!(((*b).next == ((tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*) NIM_NIL)))) goto LA4_;
1887 (*(*b).next).prev = (*b).prev;
1888 }
1889 LA4_: ;
1890 {
1891 if (!!(((*b).prev == ((tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*) NIM_NIL)))) goto LA8_;
1892 (*(*b).prev).next = (*b).next;
1893 }
1894 LA8_: ;
1895 {
1896 if (!((*a).matrix[(fl)- 0][(sl)- 0] == b)) goto LA12_;
1897 (*a).matrix[(fl)- 0][(sl)- 0] = (*b).next;
1898 {
1899 if (!((*a).matrix[(fl)- 0][(sl)- 0] == ((tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*) NIM_NIL))) goto LA16_;
1900 clearBit__system_3837(sl, (&(*a).slBitmap[(fl)- 0]));
1901 {
1902 if (!((*a).slBitmap[(fl)- 0] == ((NU32) 0))) goto LA20_;
1903 clearBit__system_3837(fl, (&(*a).flBitmap));
1904 }
1905 LA20_: ;
1906 }
1907 LA16_: ;
1908 }
1909 LA12_: ;
1910 (*b).prev = ((tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*) NIM_NIL);
1911 (*b).next = ((tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*) NIM_NIL);
1912 }
N_NIMCALL(void,excl__system_4269)1913 N_LIB_PRIVATE N_NIMCALL(void, excl__system_4269)(tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA* s, NI key) {
1914 tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw* t;
1915 t = intSetGet__system_4186((&(*s)), (NI)((NI32)(key) >> (NU32)(((NI) 9))));
1916 {
1917 NI u;
1918 if (!!((t == ((tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw*) NIM_NIL)))) goto LA3_;
1919 u = (NI)(key & ((NI) 511));
1920 (*t).bits[((NI)((NI32)(u) >> (NU32)(((NI) 5))))- 0] = (NU)((*t).bits[((NI)((NI32)(u) >> (NU32)(((NI) 5))))- 0] & (NU)((NU32) ~((NU)((NU32)(((NU) 1)) << (NU32)((NI)(u & ((NI) 31)))))));
1921 }
1922 LA3_: ;
1923 }
N_NIMCALL(void,freeBigChunk__system_4486)1924 N_LIB_PRIVATE N_NIMCALL(void, freeBigChunk__system_4486)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* c) {
1925 tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* c_2;
1926 NI prevSize;
1927 tyObject_BaseChunk__Sdq7WpT6qAH858F5ZEdG3w* ri;
1928 NI T24_;
1929 c_2 = c;
1930 (*a).freeMem += (*c_2).Sup.size;
1931 (*c_2).Sup.prevSize = (NI)((*c_2).Sup.prevSize & ((NI) -2));
1932 prevSize = (*c_2).Sup.prevSize;
1933 {
1934 tyObject_BaseChunk__Sdq7WpT6qAH858F5ZEdG3w* le;
1935 NI T5_;
1936 if (!!((prevSize == ((NI) 0)))) goto LA3_;
1937 T5_ = (NI)0;
1938 T5_ = minuspercent___system_716(((NI) (ptrdiff_t) (c_2)), prevSize);
1939 le = ((tyObject_BaseChunk__Sdq7WpT6qAH858F5ZEdG3w*) (T5_));
1940 {
1941 NIM_BOOL T8_;
1942 T8_ = (NIM_BOOL)0;
1943 T8_ = isAccessible__system_4453((&(*a)), ((void*) (le)));
1944 if (!(T8_)) goto LA9_;
1945 T8_ = chunkUnused__system_4343(le);
1946 LA9_: ;
1947 if (!T8_) goto LA10_;
1948 {
1949 NIM_BOOL T14_;
1950 NIM_BOOL T15_;
1951 NI T19_;
1952 T14_ = (NIM_BOOL)0;
1953 T15_ = (NIM_BOOL)0;
1954 T15_ = isSmallChunk__system_4337(le);
1955 T14_ = !(T15_);
1956 if (!(T14_)) goto LA16_;
1957 T14_ = ((*le).size < ((NI) 1056964608));
1958 LA16_: ;
1959 if (!T14_) goto LA17_;
1960 removeChunkFromMatrix__system_3911(a, ((tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*) (le)));
1961 (*le).size += (*c_2).Sup.size;
1962 T19_ = (NI)0;
1963 T19_ = pageIndex__system_4412((*((tyObject_BaseChunk__Sdq7WpT6qAH858F5ZEdG3w**) (&(c_2)))));
1964 excl__system_4269((&(*a).chunkStarts), T19_);
1965 c_2 = ((tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*) (le));
1966 {
1967 tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* rest;
1968 if (!(((NI) 1056964608) < (*c_2).Sup.size)) goto LA22_;
1969 rest = splitChunk2__system_4476(a, c_2, ((NI) 1056964608));
1970 addChunkToMatrix__system_3950(a, c_2);
1971 c_2 = rest;
1972 }
1973 LA22_: ;
1974 }
1975 LA17_: ;
1976 }
1977 LA10_: ;
1978 }
1979 LA3_: ;
1980 T24_ = (NI)0;
1981 T24_ = pluspercent___system_696(((NI) (ptrdiff_t) (c_2)), (*c_2).Sup.size);
1982 ri = ((tyObject_BaseChunk__Sdq7WpT6qAH858F5ZEdG3w*) (T24_));
1983 {
1984 NIM_BOOL T27_;
1985 T27_ = (NIM_BOOL)0;
1986 T27_ = isAccessible__system_4453((&(*a)), ((void*) (ri)));
1987 if (!(T27_)) goto LA28_;
1988 T27_ = chunkUnused__system_4343(ri);
1989 LA28_: ;
1990 if (!T27_) goto LA29_;
1991 {
1992 NIM_BOOL T33_;
1993 NIM_BOOL T34_;
1994 NI T38_;
1995 T33_ = (NIM_BOOL)0;
1996 T34_ = (NIM_BOOL)0;
1997 T34_ = isSmallChunk__system_4337(ri);
1998 T33_ = !(T34_);
1999 if (!(T33_)) goto LA35_;
2000 T33_ = ((*c_2).Sup.size < ((NI) 1056964608));
2001 LA35_: ;
2002 if (!T33_) goto LA36_;
2003 removeChunkFromMatrix__system_3911(a, ((tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*) (ri)));
2004 (*c_2).Sup.size += (*ri).size;
2005 T38_ = (NI)0;
2006 T38_ = pageIndex__system_4412(ri);
2007 excl__system_4269((&(*a).chunkStarts), T38_);
2008 {
2009 tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* rest_2;
2010 if (!(((NI) 1056964608) < (*c_2).Sup.size)) goto LA41_;
2011 rest_2 = splitChunk2__system_4476(a, c_2, ((NI) 1056964608));
2012 addChunkToMatrix__system_3950(a, rest_2);
2013 }
2014 LA41_: ;
2015 }
2016 LA36_: ;
2017 }
2018 LA29_: ;
2019 addChunkToMatrix__system_3950(a, c_2);
2020 }
N_INLINE(void,deallocAvlNode__system_4040)2021 static N_INLINE(void, deallocAvlNode__system_4040)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* n) {
2022 (*n).link[(((NI) 0))- 0] = (*a).freeAvlNodes;
2023 (*a).freeAvlNodes = n;
2024 }
N_NIMCALL(void,del__system_4158)2025 N_LIB_PRIVATE N_NIMCALL(void, del__system_4158)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw** t, NI x) {
2026 { {
2027 if (!((*(*t)).link[(((NI) 0))- 0] == (*t))) goto LA3_;
2028 goto BeforeRet_;
2029 }
2030 LA3_: ;
2031 (*a).last = (*t);
2032 {
2033 NIM_BOOL T7_;
2034 T7_ = (NIM_BOOL)0;
2035 T7_ = ltpercent___system_1005(x, (*(*t)).key);
2036 if (!T7_) goto LA8_;
2037 del__system_4158(a, &(*(*t)).link[(((NI) 0))- 0], x);
2038 }
2039 goto LA5_;
2040 LA8_: ;
2041 {
2042 (*a).deleted = (*t);
2043 del__system_4158(a, &(*(*t)).link[(((NI) 1))- 0], x);
2044 }
2045 LA5_: ;
2046 {
2047 NIM_BOOL T13_;
2048 NIM_BOOL T14_;
2049 T13_ = (NIM_BOOL)0;
2050 T14_ = (NIM_BOOL)0;
2051 T14_ = ((*t) == (*a).last);
2052 if (!(T14_)) goto LA15_;
2053 T14_ = !(((*(*a).deleted).link[(((NI) 0))- 0] == (*a).deleted));
2054 LA15_: ;
2055 T13_ = T14_;
2056 if (!(T13_)) goto LA16_;
2057 T13_ = (x == (*(*a).deleted).key);
2058 LA16_: ;
2059 if (!T13_) goto LA17_;
2060 (*(*a).deleted).key = (*(*t)).key;
2061 (*(*a).deleted).upperBound = (*(*t)).upperBound;
2062 (*a).deleted = getBottom__system_4002(a);
2063 (*t) = (*(*t)).link[(((NI) 1))- 0];
2064 deallocAvlNode__system_4040(a, (*a).last);
2065 }
2066 goto LA11_;
2067 LA17_: ;
2068 {
2069 NIM_BOOL T20_;
2070 T20_ = (NIM_BOOL)0;
2071 T20_ = ((*(*(*t)).link[(((NI) 0))- 0]).level < (NI)((*(*t)).level - ((NI) 1)));
2072 if (T20_) goto LA21_;
2073 T20_ = ((*(*(*t)).link[(((NI) 1))- 0]).level < (NI)((*(*t)).level - ((NI) 1)));
2074 LA21_: ;
2075 if (!T20_) goto LA22_;
2076 (*(*t)).level -= ((NI) 1);
2077 {
2078 if (!((*(*t)).level < (*(*(*t)).link[(((NI) 1))- 0]).level)) goto LA26_;
2079 (*(*(*t)).link[(((NI) 1))- 0]).level = (*(*t)).level;
2080 }
2081 LA26_: ;
2082 skew__system_4139(t);
2083 skew__system_4139(&(*(*t)).link[(((NI) 1))- 0]);
2084 skew__system_4139(&(*(*(*t)).link[(((NI) 1))- 0]).link[(((NI) 1))- 0]);
2085 split__system_4142(t);
2086 split__system_4142(&(*(*t)).link[(((NI) 1))- 0]);
2087 }
2088 goto LA11_;
2089 LA22_: ;
2090 LA11_: ;
2091 }BeforeRet_: ;
2092 }
N_INLINE(void,decCurrMem__system_3966)2093 static N_INLINE(void, decCurrMem__system_3966)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, NI bytes) {
2094 (*a).maxMem = (((*a).maxMem >= (*a).currMem) ? (*a).maxMem : (*a).currMem);
2095 (*a).currMem -= bytes;
2096 }
N_INLINE(void,osDeallocPages__system_3722)2097 static N_INLINE(void, osDeallocPages__system_3722)(void* p, NI size) {
2098 int T1_;
2099 T1_ = (int)0;
2100 T1_ = munmap(p, ((size_t) (size)));
2101 (void)(T1_);
2102 }
N_NIMCALL(void,freeHugeChunk__system_4526)2103 N_LIB_PRIVATE N_NIMCALL(void, freeHugeChunk__system_4526)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* c) {
2104 NI size;
2105 NI T1_;
2106 size = (*c).Sup.size;
2107 T1_ = (NI)0;
2108 T1_ = pageIndex__system_4412(&c->Sup);
2109 excl__system_4269((&(*a).chunkStarts), T1_);
2110 decCurrMem__system_3966(a, size);
2111 osDeallocPages__system_3722(((void*) (c)), size);
2112 }
N_NIMCALL(void,rawDealloc__system_4680)2113 N_LIB_PRIVATE N_NIMCALL(void, rawDealloc__system_4680)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, void* p) {
2114 tyObject_BaseChunk__Sdq7WpT6qAH858F5ZEdG3w* c;
2115 c = pageAddr__system_4426(p);
2116 {
2117 NIM_BOOL T3_;
2118 tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ* c_2;
2119 NI s;
2120 tyObject_FreeCell__u6M5LHprqzkn9axr04yg9bGQ* f;
2121 T3_ = (NIM_BOOL)0;
2122 T3_ = isSmallChunk__system_4337(c);
2123 if (!T3_) goto LA4_;
2124 c_2 = ((tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ*) (c));
2125 s = (*c_2).Sup.size;
2126 (*a).occ -= s;
2127 f = ((tyObject_FreeCell__u6M5LHprqzkn9axr04yg9bGQ*) (p));
2128 (*f).zeroField = ((NI) 0);
2129 (*f).next = (*c_2).freeList;
2130 (*c_2).freeList = f;
2131 {
2132 if (!((*c_2).free < s)) goto LA8_;
2133 listAdd__system_4568(&(*a).freeSmallChunks[((NI)(s / ((NI) 16)))- 0], c_2);
2134 (*c_2).free += s;
2135 }
2136 goto LA6_;
2137 LA8_: ;
2138 {
2139 (*c_2).free += s;
2140 {
2141 if (!((*c_2).free == ((NI) 4064))) goto LA13_;
2142 listRemove__system_4621(&(*a).freeSmallChunks[((NI)(s / ((NI) 16)))- 0], c_2);
2143 (*c_2).Sup.size = ((NI) 4096);
2144 freeBigChunk__system_4486(a, ((tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*) (c_2)));
2145 }
2146 LA13_: ;
2147 }
2148 LA6_: ;
2149 }
2150 goto LA1_;
2151 LA4_: ;
2152 {
2153 tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* c_3;
2154 c_3 = ((tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*) (c));
2155 (*a).occ -= (*c_3).Sup.size;
2156 (*a).deleted = getBottom__system_4002(a);
2157 del__system_4158(a, &(*a).root, ((NI) (ptrdiff_t) ((*c_3).data)));
2158 {
2159 if (!(((NI) 1056964609) <= (*c_3).Sup.size)) goto LA18_;
2160 freeHugeChunk__system_4526(a, c_3);
2161 }
2162 goto LA16_;
2163 LA18_: ;
2164 {
2165 freeBigChunk__system_4486(a, c_3);
2166 }
2167 LA16_: ;
2168 }
2169 LA1_: ;
2170 }
N_NIMCALL(void,dealloc__system_4775)2171 N_LIB_PRIVATE N_NIMCALL(void, dealloc__system_4775)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* allocator, void* p) {
2172 void* x;
2173 NI T1_;
2174 T1_ = (NI)0;
2175 T1_ = minuspercent___system_716(((NI) (ptrdiff_t) (p)), ((NI) 8));
2176 x = ((void*) (T1_));
2177 rawDealloc__system_4680(allocator, x);
2178 }
N_NOCONV(void,deallocImpl__system_1747)2179 N_LIB_PRIVATE N_NOCONV(void, deallocImpl__system_1747)(void* p) {
2180 dealloc__system_4775((&gch__system_5209.region), p);
2181 }
N_NOCONV(void,dealloc)2182 N_LIB_PRIVATE N_NOCONV(void, dealloc)(void* p) {
2183 deallocImpl__system_1747(p);
2184 }
N_INLINE(void,add__system_4851)2185 static N_INLINE(void, add__system_4851)(tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w* s, tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
2186 {
2187 tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g** d;
2188 void* T5_;
2189 if (!((*s).cap <= (*s).len)) goto LA3_;
2190 (*s).cap = (NI)((NI)((*s).cap * ((NI) 3)) / ((NI) 2));
2191 T5_ = (void*)0;
2192 T5_ = allocImpl__system_1743(((NI) ((NI)((*s).cap * ((NI) 4)))));
2193 d = ((tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g**) (T5_));
2194 copyMem__system_1727(((void*) (d)), ((void*) ((*s).d)), ((NI) ((NI)((*s).len * ((NI) 4)))));
2195 dealloc(((void*) ((*s).d)));
2196 (*s).d = d;
2197 }
2198 LA3_: ;
2199 (*s).d[(*s).len] = c;
2200 (*s).len += ((NI) 1);
2201 }
N_NOINLINE(void,addZCT__system_5256)2202 N_LIB_PRIVATE N_NOINLINE(void, addZCT__system_5256)(tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w* s, tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
2203 {
2204 if (!((NI)((*c).refcount & ((NI) 4)) == ((NI) 0))) goto LA3_;
2205 (*c).refcount = (NI)((*c).refcount | ((NI) 4));
2206 add__system_4851(s, c);
2207 }
2208 LA3_: ;
2209 }
N_INLINE(void,rtlAddZCT__system_5305)2210 static N_INLINE(void, rtlAddZCT__system_5305)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
2211 addZCT__system_5256((&gch__system_5209.zct), c);
2212 }
N_INLINE(void,decRef__system_5307)2213 static N_INLINE(void, decRef__system_5307)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
2214 (*c).refcount = minuspercent___system_716((*c).refcount, ((NI) 8));
2215 {
2216 NIM_BOOL T3_;
2217 T3_ = (NIM_BOOL)0;
2218 T3_ = ltpercent___system_1005((*c).refcount, ((NI) 8));
2219 if (!T3_) goto LA4_;
2220 rtlAddZCT__system_5305(c);
2221 }
2222 LA4_: ;
2223 }
N_INLINE(NI,nextTry__system_4911)2224 static N_INLINE(NI, nextTry__system_4911)(NI h, NI maxHash) {
2225 NI result;
2226 result = (NI)0;
2227 result = (NI)((NI)((NI)(((NI) 5) * h) + ((NI) 1)) & maxHash);
2228 return result;
2229 }
N_NIMCALL(void,cellSetRawInsert__system_4924)2230 N_LIB_PRIVATE N_NIMCALL(void, cellSetRawInsert__system_4924)(tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ t, tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg** data, tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg* desc) {
2231 NI h;
2232 h = (NI)(((NI) ((*desc).key)) & t.max);
2233 {
2234 while (1) {
2235 if (!!((data[h] == ((tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg*) NIM_NIL)))) goto LA2;
2236 h = nextTry__system_4911(h, t.max);
2237 } LA2: ;
2238 }
2239 data[h] = desc;
2240 }
N_NIMCALL(void,cellSetEnlarge__system_4941)2241 N_LIB_PRIVATE N_NIMCALL(void, cellSetEnlarge__system_4941)(tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ* t) {
2242 NI oldMax;
2243 tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg** n;
2244 void* T1_;
2245 oldMax = (*t).max;
2246 (*t).max = (NI)((NI)((NI)((*t).max + ((NI) 1)) * ((NI) 2)) - ((NI) 1));
2247 T1_ = (void*)0;
2248 T1_ = alloc0Impl__system_1745(((NI) ((NI)((NI)((*t).max + ((NI) 1)) * ((NI) 4)))));
2249 n = ((tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg**) (T1_));
2250 {
2251 NI i;
2252 NI res;
2253 i = (NI)0;
2254 res = ((NI) 0);
2255 {
2256 while (1) {
2257 if (!(res <= oldMax)) goto LA4;
2258 i = res;
2259 {
2260 if (!!(((*t).data[i] == ((tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg*) NIM_NIL)))) goto LA7_;
2261 cellSetRawInsert__system_4924((*t), n, (*t).data[i]);
2262 }
2263 LA7_: ;
2264 res += ((NI) 1);
2265 } LA4: ;
2266 }
2267 }
2268 dealloc(((void*) ((*t).data)));
2269 (*t).data = n;
2270 }
N_NIMCALL(tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg *,cellSetPut__system_4954)2271 N_LIB_PRIVATE N_NIMCALL(tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg*, cellSetPut__system_4954)(tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ* t, NU key) {
2272 tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg* result;
2273 NI h;
2274 void* T19_;
2275 { result = (tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg*)0;
2276 h = (NI)(((NI) (key)) & (*t).max);
2277 {
2278 while (1) {
2279 tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg* x;
2280 x = (*t).data[h];
2281 {
2282 if (!(x == ((tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg*) NIM_NIL))) goto LA5_;
2283 goto LA1;
2284 }
2285 LA5_: ;
2286 {
2287 if (!((*x).key == key)) goto LA9_;
2288 result = x;
2289 goto BeforeRet_;
2290 }
2291 LA9_: ;
2292 h = nextTry__system_4911(h, (*t).max);
2293 }
2294 } LA1: ;
2295 {
2296 NIM_BOOL T13_;
2297 T13_ = (NIM_BOOL)0;
2298 T13_ = ((NI)((NI)((*t).max + ((NI) 1)) * ((NI) 2)) < (NI)((*t).counter * ((NI) 3)));
2299 if (T13_) goto LA14_;
2300 T13_ = ((NI)((NI)((*t).max + ((NI) 1)) - (*t).counter) < ((NI) 4));
2301 LA14_: ;
2302 if (!T13_) goto LA15_;
2303 cellSetEnlarge__system_4941(t);
2304 }
2305 LA15_: ;
2306 (*t).counter += ((NI) 1);
2307 h = (NI)(((NI) (key)) & (*t).max);
2308 {
2309 while (1) {
2310 if (!!(((*t).data[h] == ((tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg*) NIM_NIL)))) goto LA18;
2311 h = nextTry__system_4911(h, (*t).max);
2312 } LA18: ;
2313 }
2314 T19_ = (void*)0;
2315 T19_ = alloc0Impl__system_1745(((NI) 40));
2316 result = ((tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg*) (T19_));
2317 (*result).next = (*t).head;
2318 (*result).key = key;
2319 (*t).head = result;
2320 (*t).data[h] = result;
2321 }BeforeRet_: ;
2322 return result;
2323 }
N_NIMCALL(void,incl__system_5008)2324 N_LIB_PRIVATE N_NIMCALL(void, incl__system_5008)(tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ* s, tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* cell) {
2325 NU u;
2326 tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg* t;
2327 u = ((NU) (ptrdiff_t) (cell));
2328 t = cellSetPut__system_4954(s, (NU)((NU32)(u) >> (NU32)(((NI) 12))));
2329 u = (NU)((NU32)((NU)((NU32)(u) % (NU32)(((NU) 4096)))) / (NU32)(((NU) 16)));
2330 (*t).bits[((NU)((NU32)(u) >> (NU32)(((NI) 5))))- 0] = (NI)((*t).bits[((NU)((NU32)(u) >> (NU32)(((NI) 5))))- 0] | (NI)((NU32)(((NI) 1)) << (NU32)((NU)(u & ((NU) 31)))));
2331 }
N_INLINE(void *,cellToUsr__system_5259)2332 static N_INLINE(void*, cellToUsr__system_5259)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* cell) {
2333 void* result;
2334 NI T1_;
2335 result = (void*)0;
2336 T1_ = (NI)0;
2337 T1_ = pluspercent___system_696(((NI) (ptrdiff_t) (cell)), ((NI) 8));
2338 result = ((void*) (T1_));
2339 return result;
2340 }
N_NIMCALL(NU,getDiscriminant__system_3607)2341 N_LIB_PRIVATE N_NIMCALL(NU, getDiscriminant__system_3607)(void* aa, TNimNode* n) {
2342 NU result;
2343 NU d;
2344 NU a;
2345 { result = (NU)0;
2346 d = (NU)0;
2347 a = ((NU) (ptrdiff_t) (aa));
2348 switch ((*(*n).typ).size) {
2349 case ((NI) 1):
2350 {
2351 d = ((NU) ((*((NU8*) ((NU)((NU32)(a) + (NU32)(((NU) ((*n).offset)))))))));
2352 }
2353 break;
2354 case ((NI) 2):
2355 {
2356 d = ((NU) ((*((NU16*) ((NU)((NU32)(a) + (NU32)(((NU) ((*n).offset)))))))));
2357 }
2358 break;
2359 case ((NI) 4):
2360 {
2361 d = ((NU) ((*((NU32*) ((NU)((NU32)(a) + (NU32)(((NU) ((*n).offset)))))))));
2362 }
2363 break;
2364 case ((NI) 8):
2365 {
2366 d = ((NU) ((*((NU64*) ((NU)((NU32)(a) + (NU32)(((NU) ((*n).offset)))))))));
2367 }
2368 break;
2369 default:
2370 {
2371 d = ((NU) 0);
2372 }
2373 break;
2374 }
2375 result = d;
2376 goto BeforeRet_;
2377 }BeforeRet_: ;
2378 return result;
2379 }
N_NIMCALL(TNimNode *,selectBranch__system_3645)2380 N_LIB_PRIVATE N_NIMCALL(TNimNode*, selectBranch__system_3645)(void* aa, TNimNode* n) {
2381 TNimNode* result;
2382 NU discr;
2383 result = (TNimNode*)0;
2384 discr = getDiscriminant__system_3607(aa, n);
2385 {
2386 if (!((NU32)(discr) < (NU32)(((NU) ((*n).len))))) goto LA3_;
2387 result = (*n).sons[(discr)- 0];
2388 {
2389 if (!(result == ((TNimNode*) NIM_NIL))) goto LA7_;
2390 result = (*n).sons[((*n).len)- 0];
2391 }
2392 LA7_: ;
2393 }
2394 goto LA1_;
2395 LA3_: ;
2396 {
2397 result = (*n).sons[((*n).len)- 0];
2398 }
2399 LA1_: ;
2400 return result;
2401 }
N_NIMCALL(void,forAllSlotsAux__system_5527)2402 N_LIB_PRIVATE N_NIMCALL(void, forAllSlotsAux__system_5527)(void* dest, TNimNode* n, tyEnum_WalkOp__Wfy7gT5VQ8B3aJBxqU8D9cQ op) {
2403 NI d;
2404 d = ((NI) (ptrdiff_t) (dest));
2405 switch ((*n).kind) {
2406 case ((tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ) 1):
2407 {
2408 NI T2_;
2409 T2_ = (NI)0;
2410 T2_ = pluspercent___system_696(d, (*n).offset);
2411 forAllChildrenAux__system_5296(((void*) (T2_)), (*n).typ, op);
2412 }
2413 break;
2414 case ((tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ) 2):
2415 {
2416 {
2417 NI i;
2418 NI colontmp_;
2419 NI res;
2420 i = (NI)0;
2421 colontmp_ = (NI)0;
2422 colontmp_ = (NI)((*n).len - ((NI) 1));
2423 res = ((NI) 0);
2424 {
2425 while (1) {
2426 if (!(res <= colontmp_)) goto LA6;
2427 i = res;
2428 {
2429 if (!((*(*n).sons[(i)- 0]).kind == ((tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ) 1))) goto LA9_;
2430 {
2431 NI T15_;
2432 if (!((*(*(*n).sons[(i)- 0]).typ).kind == ((tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A) 22) || (*(*(*n).sons[(i)- 0]).typ).kind == ((tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A) 28) || (*(*(*n).sons[(i)- 0]).typ).kind == ((tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A) 24))) goto LA13_;
2433 T15_ = (NI)0;
2434 T15_ = pluspercent___system_696(d, (*(*n).sons[(i)- 0]).offset);
2435 doOperation__system_5293((*((void**) (T15_))), op);
2436 }
2437 goto LA11_;
2438 LA13_: ;
2439 {
2440 NI T17_;
2441 T17_ = (NI)0;
2442 T17_ = pluspercent___system_696(d, (*(*n).sons[(i)- 0]).offset);
2443 forAllChildrenAux__system_5296(((void*) (T17_)), (*(*n).sons[(i)- 0]).typ, op);
2444 }
2445 LA11_: ;
2446 }
2447 goto LA7_;
2448 LA9_: ;
2449 {
2450 forAllSlotsAux__system_5527(dest, (*n).sons[(i)- 0], op);
2451 }
2452 LA7_: ;
2453 res += ((NI) 1);
2454 } LA6: ;
2455 }
2456 }
2457 }
2458 break;
2459 case ((tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ) 3):
2460 {
2461 TNimNode* m;
2462 m = selectBranch__system_3645(dest, n);
2463 {
2464 if (!!((m == ((TNimNode*) NIM_NIL)))) goto LA22_;
2465 forAllSlotsAux__system_5527(dest, m, op);
2466 }
2467 LA22_: ;
2468 }
2469 break;
2470 case ((tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ) 0):
2471 {
2472 }
2473 break;
2474 }
2475 }
N_INLINE(NI,starpercent___system_736)2476 static N_INLINE(NI, starpercent___system_736)(NI x, NI y) {
2477 NI result;
2478 result = (NI)0;
2479 result = ((NI) ((NU)((NU32)(((NU) (x))) * (NU32)(((NU) (y))))));
2480 return result;
2481 }
N_NIMCALL(void,forAllChildrenAux__system_5296)2482 N_LIB_PRIVATE N_NIMCALL(void, forAllChildrenAux__system_5296)(void* dest, TNimType* mt, tyEnum_WalkOp__Wfy7gT5VQ8B3aJBxqU8D9cQ op) {
2483 NI d;
2484 { d = ((NI) (ptrdiff_t) (dest));
2485 {
2486 if (!(dest == NIM_NIL)) goto LA3_;
2487 goto BeforeRet_;
2488 }
2489 LA3_: ;
2490 {
2491 if (!!((((*mt).flags &((NU8)1<<((NU)(((tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ) 0))&7U)))!=0))) goto LA7_;
2492 switch ((*mt).kind) {
2493 case ((tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A) 22):
2494 case ((tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A) 28):
2495 case ((tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A) 24):
2496 {
2497 doOperation__system_5293((*((void**) (d))), op);
2498 }
2499 break;
2500 case ((tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A) 17):
2501 case ((tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A) 18):
2502 {
2503 forAllSlotsAux__system_5527(dest, (*mt).node, op);
2504 }
2505 break;
2506 case ((tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A) 16):
2507 case ((tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A) 4):
2508 case ((tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A) 27):
2509 {
2510 {
2511 NI i;
2512 NI colontmp_;
2513 NI res;
2514 i = (NI)0;
2515 colontmp_ = (NI)0;
2516 colontmp_ = (NI)((NI)((*mt).size / (*(*mt).base).size) - ((NI) 1));
2517 res = ((NI) 0);
2518 {
2519 while (1) {
2520 NI T15_;
2521 NI T16_;
2522 if (!(res <= colontmp_)) goto LA14;
2523 i = res;
2524 T15_ = (NI)0;
2525 T15_ = starpercent___system_736(i, (*(*mt).base).size);
2526 T16_ = (NI)0;
2527 T16_ = pluspercent___system_696(d, T15_);
2528 forAllChildrenAux__system_5296(((void*) (T16_)), (*mt).base, op);
2529 res += ((NI) 1);
2530 } LA14: ;
2531 }
2532 }
2533 }
2534 break;
2535 default:
2536 {
2537 }
2538 break;
2539 }
2540 }
2541 LA7_: ;
2542 }BeforeRet_: ;
2543 }
N_NIMCALL(NI,align__system_1624)2544 N_LIB_PRIVATE N_NIMCALL(NI, align__system_1624)(NI address, NI alignment) {
2545 NI result;
2546 result = (NI)0;
2547 {
2548 if (!(alignment == ((NI) 0))) goto LA3_;
2549 result = address;
2550 }
2551 goto LA1_;
2552 LA3_: ;
2553 {
2554 result = (NI)((NI)(address + (NI)(alignment - ((NI) 1))) & (NI)((NU32) ~((NI)(alignment - ((NI) 1)))));
2555 }
2556 LA1_: ;
2557 return result;
2558 }
N_NIMCALL(void,forAllChildren__system_5290)2559 N_LIB_PRIVATE N_NIMCALL(void, forAllChildren__system_5290)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* cell, tyEnum_WalkOp__Wfy7gT5VQ8B3aJBxqU8D9cQ op) {
2560 tyProc__ojoeKfW4VYIm36I9cpDTQIg marker;
2561 marker = (*(*cell).typ).marker;
2562 {
2563 void* T5_;
2564 if (!!((marker == NIM_NIL))) goto LA3_;
2565 T5_ = (void*)0;
2566 T5_ = cellToUsr__system_5259(cell);
2567 marker(T5_, ((NI) (op)));
2568 }
2569 goto LA1_;
2570 LA3_: ;
2571 {
2572 switch ((*(*cell).typ).kind) {
2573 case ((tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A) 22):
2574 {
2575 void* T8_;
2576 T8_ = (void*)0;
2577 T8_ = cellToUsr__system_5259(cell);
2578 forAllChildrenAux__system_5296(T8_, (*(*cell).typ).base, op);
2579 }
2580 break;
2581 case ((tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A) 24):
2582 {
2583 NI d;
2584 void* T10_;
2585 TGenericSeq* s;
2586 T10_ = (void*)0;
2587 T10_ = cellToUsr__system_5259(cell);
2588 d = ((NI) (ptrdiff_t) (T10_));
2589 s = ((TGenericSeq*) (d));
2590 {
2591 if (!!((s == ((TGenericSeq*) NIM_NIL)))) goto LA13_;
2592 {
2593 NI i;
2594 NI colontmp_;
2595 NI res;
2596 i = (NI)0;
2597 colontmp_ = (NI)0;
2598 colontmp_ = (NI)((*s).len - ((NI) 1));
2599 res = ((NI) 0);
2600 {
2601 while (1) {
2602 NI T18_;
2603 NI T19_;
2604 NI T20_;
2605 NI T21_;
2606 if (!(res <= colontmp_)) goto LA17;
2607 i = res;
2608 T18_ = (NI)0;
2609 T18_ = align__system_1624(((NI) 8), (*(*(*cell).typ).base).align);
2610 T19_ = (NI)0;
2611 T19_ = pluspercent___system_696(d, T18_);
2612 T20_ = (NI)0;
2613 T20_ = starpercent___system_736(i, (*(*(*cell).typ).base).size);
2614 T21_ = (NI)0;
2615 T21_ = pluspercent___system_696(T19_, T20_);
2616 forAllChildrenAux__system_5296(((void*) (T21_)), (*(*cell).typ).base, op);
2617 res += ((NI) 1);
2618 } LA17: ;
2619 }
2620 }
2621 }
2622 LA13_: ;
2623 }
2624 break;
2625 default:
2626 {
2627 }
2628 break;
2629 }
2630 }
2631 LA1_: ;
2632 }
N_NIMCALL(tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg *,cellSetGet__system_4915)2633 N_LIB_PRIVATE N_NIMCALL(tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg*, cellSetGet__system_4915)(tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ t, NU key) {
2634 tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg* result;
2635 NI h;
2636 { result = (tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg*)0;
2637 h = (NI)(((NI) (key)) & t.max);
2638 {
2639 while (1) {
2640 if (!!((t.data[h] == ((tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg*) NIM_NIL)))) goto LA2;
2641 {
2642 if (!((*t.data[h]).key == key)) goto LA5_;
2643 result = t.data[h];
2644 goto BeforeRet_;
2645 }
2646 LA5_: ;
2647 h = nextTry__system_4911(h, t.max);
2648 } LA2: ;
2649 }
2650 result = ((tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg*) NIM_NIL);
2651 goto BeforeRet_;
2652 }BeforeRet_: ;
2653 return result;
2654 }
N_NIMCALL(NIM_BOOL,containsOrIncl__system_5054)2655 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, containsOrIncl__system_5054)(tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ* s, tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* cell) {
2656 NIM_BOOL result;
2657 NU u;
2658 tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg* t;
2659 result = (NIM_BOOL)0;
2660 u = ((NU) (ptrdiff_t) (cell));
2661 t = cellSetGet__system_4915((*s), (NU)((NU32)(u) >> (NU32)(((NI) 12))));
2662 {
2663 if (!!((t == ((tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg*) NIM_NIL)))) goto LA3_;
2664 u = (NU)((NU32)((NU)((NU32)(u) % (NU32)(((NU) 4096)))) / (NU32)(((NU) 16)));
2665 result = !(((NI)((*t).bits[((NU)((NU32)(u) >> (NU32)(((NI) 5))))- 0] & (NI)((NU32)(((NI) 1)) << (NU32)((NU)(u & ((NU) 31))))) == ((NI) 0)));
2666 {
2667 if (!!(result)) goto LA7_;
2668 (*t).bits[((NU)((NU32)(u) >> (NU32)(((NI) 5))))- 0] = (NI)((*t).bits[((NU)((NU32)(u) >> (NU32)(((NI) 5))))- 0] | (NI)((NU32)(((NI) 1)) << (NU32)((NU)(u & ((NU) 31)))));
2669 }
2670 LA7_: ;
2671 }
2672 goto LA1_;
2673 LA3_: ;
2674 {
2675 incl__system_5008(s, cell);
2676 result = NIM_FALSE;
2677 }
2678 LA1_: ;
2679 return result;
2680 }
N_NIMCALL(void,markS__system_5711)2681 N_LIB_PRIVATE N_NIMCALL(void, markS__system_5711)(tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ* gch, tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
2682 incl__system_5008((&(*gch).marked), c);
2683 forAllChildren__system_5290(c, ((tyEnum_WalkOp__Wfy7gT5VQ8B3aJBxqU8D9cQ) 1));
2684 {
2685 while (1) {
2686 tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* d;
2687 if (!(((NI) 0) < (*gch).tempStack.len)) goto LA2;
2688 (*gch).tempStack.len -= ((NI) 1);
2689 d = (*gch).tempStack.d[(*gch).tempStack.len];
2690 {
2691 NIM_BOOL T5_;
2692 T5_ = (NIM_BOOL)0;
2693 T5_ = containsOrIncl__system_5054((&(*gch).marked), d);
2694 if (!!(T5_)) goto LA6_;
2695 forAllChildren__system_5290(d, ((tyEnum_WalkOp__Wfy7gT5VQ8B3aJBxqU8D9cQ) 1));
2696 }
2697 LA6_: ;
2698 } LA2: ;
2699 }
2700 }
N_NIMCALL(void,doOperation__system_5293)2701 N_LIB_PRIVATE N_NIMCALL(void, doOperation__system_5293)(void* p, tyEnum_WalkOp__Wfy7gT5VQ8B3aJBxqU8D9cQ op) {
2702 tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c;
2703 { {
2704 if (!(p == NIM_NIL)) goto LA3_;
2705 goto BeforeRet_;
2706 }
2707 LA3_: ;
2708 c = usrToCell__system_5262(p);
2709 switch (op) {
2710 case ((tyEnum_WalkOp__Wfy7gT5VQ8B3aJBxqU8D9cQ) 2):
2711 {
2712 decRef__system_5307(c);
2713 }
2714 break;
2715 case ((tyEnum_WalkOp__Wfy7gT5VQ8B3aJBxqU8D9cQ) 3):
2716 {
2717 add__system_4851((&gch__system_5209.tempStack), c);
2718 }
2719 break;
2720 case ((tyEnum_WalkOp__Wfy7gT5VQ8B3aJBxqU8D9cQ) 0):
2721 {
2722 markS__system_5711((&gch__system_5209), c);
2723 }
2724 break;
2725 case ((tyEnum_WalkOp__Wfy7gT5VQ8B3aJBxqU8D9cQ) 1):
2726 {
2727 add__system_4851((&gch__system_5209.tempStack), c);
2728 }
2729 break;
2730 }
2731 }BeforeRet_: ;
2732 }
N_NIMCALL(void,nimGCvisit)2733 N_LIB_PRIVATE N_NIMCALL(void, nimGCvisit)(void* d, NI op) {
2734 doOperation__system_5293(d, ((tyEnum_WalkOp__Wfy7gT5VQ8B3aJBxqU8D9cQ) (op)));
2735 }
N_NIMCALL(void,Marker_tyRef__vU9aO9cTqOMn6CBzhV8rX7Sw)2736 static N_NIMCALL(void, Marker_tyRef__vU9aO9cTqOMn6CBzhV8rX7Sw)(void* p, NI op) {
2737 Exception* a;
2738 a = (Exception*)p;
2739 nimGCvisit((void*)(*a).parent, op);
2740 nimGCvisit((void*)(*a).message, op);
2741 nimGCvisit((void*)(*a).trace, op);
2742 nimGCvisit((void*)(*a).up, op);
2743 }
N_NIMCALL(void,TM__Q5wkpxktOdTGvlSRo9bzt9aw_4)2744 static N_NIMCALL(void, TM__Q5wkpxktOdTGvlSRo9bzt9aw_4)(void) {
2745 nimGCvisit((void*)currException__system_2566, 0);
2746 }
N_NIMCALL(void,nimRegisterThreadLocalMarker)2747 N_LIB_PRIVATE N_NIMCALL(void, nimRegisterThreadLocalMarker)(tyProc__T4eqaYlFJYZUv9aG9b1TV0bQ markerProc) {
2748 {
2749 if (!(threadLocalMarkersLen <= ((NI) 3499))) goto LA3_;
2750 threadLocalMarkers[(threadLocalMarkersLen)- 0] = markerProc;
2751 threadLocalMarkersLen += ((NI) 1);
2752 }
2753 goto LA1_;
2754 LA3_: ;
2755 {
2756 rawWrite(stderr, "[GC] cannot register thread local variable; too many thread local variables");
2757 exit(((NI) 1));
2758 }
2759 LA1_: ;
2760 }
N_INLINE(void,pushSafePoint)2761 static N_INLINE(void, pushSafePoint)(TSafePoint* s) {
2762 (*s).prev = excHandler__system_2565;
2763 excHandler__system_2565 = s;
2764 }
N_INLINE(NI,getOccupiedMem__system_4811)2765 static N_INLINE(NI, getOccupiedMem__system_4811)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a) {
2766 NI result;
2767 result = (NI)0;
2768 result = (*a).occ;
2769 return result;
2770 }
N_NOINLINE(NI,stackSize__system_5376)2771 N_LIB_PRIVATE N_NOINLINE(NI, stackSize__system_5376)(tyObject_GcStack__7fytPA5bBsob6See21YMRA* stack) {
2772 NI result;
2773 void* volatile pos;
2774 result = (NI)0;
2775 pos = ((void*) ((&pos)));
2776 {
2777 if (!!((pos == NIM_NIL))) goto LA3_;
2778 result = minuspercent___system_716(((NI) (ptrdiff_t) ((*stack).bottom)), ((NI) (ptrdiff_t) (pos)));
2779 }
2780 goto LA1_;
2781 LA3_: ;
2782 {
2783 result = ((NI) 0);
2784 }
2785 LA1_: ;
2786 return result;
2787 }
N_NOINLINE(NI,stackSize__system_5380)2788 N_LIB_PRIVATE N_NOINLINE(NI, stackSize__system_5380)(void) {
2789 NI result;
2790 result = (NI)0;
2791 result = ((NI) 0);
2792 {
2793 tyObject_GcStack__7fytPA5bBsob6See21YMRA* stack;
2794 NI T2_;
2795 stack = (tyObject_GcStack__7fytPA5bBsob6See21YMRA*)0;
2796 stack = (&gch__system_5209.stack);
2797 T2_ = (NI)0;
2798 T2_ = stackSize__system_5376(stack);
2799 result = (NI)(result + T2_);
2800 }
2801 return result;
2802 }
N_NIMCALL(NI,lowGauge__system_4099)2803 N_LIB_PRIVATE N_NIMCALL(NI, lowGauge__system_4099)(tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* n) {
2804 NI result;
2805 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* it;
2806 result = (NI)0;
2807 it = n;
2808 {
2809 while (1) {
2810 if (!!(((*it).link[(((NI) 0))- 0] == it))) goto LA2;
2811 result = (*it).key;
2812 it = (*it).link[(((NI) 0))- 0];
2813 } LA2: ;
2814 }
2815 return result;
2816 }
N_NIMCALL(NI,highGauge__system_4107)2817 N_LIB_PRIVATE N_NIMCALL(NI, highGauge__system_4107)(tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* n) {
2818 NI result;
2819 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* it;
2820 result = (NI)0;
2821 result = ((NI) -1);
2822 it = n;
2823 {
2824 while (1) {
2825 if (!!(((*it).link[(((NI) 0))- 0] == it))) goto LA2;
2826 result = (*it).upperBound;
2827 it = (*it).link[(((NI) 1))- 0];
2828 } LA2: ;
2829 }
2830 return result;
2831 }
N_INLINE(void,prepareForInteriorPointerChecking__system_4732)2832 static N_INLINE(void, prepareForInteriorPointerChecking__system_4732)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a) {
2833 (*a).minLargeObj = lowGauge__system_4099((*a).root);
2834 (*a).maxLargeObj = highGauge__system_4107((*a).root);
2835 }
N_INLINE(NI,percentpercent___system_776)2836 static N_INLINE(NI, percentpercent___system_776)(NI x, NI y) {
2837 NI result;
2838 result = (NI)0;
2839 result = ((NI) ((NU)((NU32)(((NU) (x))) % (NU32)(((NU) (y))))));
2840 return result;
2841 }
N_INLINE(NIM_BOOL,lteqpercent___system_985)2842 static N_INLINE(NIM_BOOL, lteqpercent___system_985)(NI x, NI y) {
2843 NIM_BOOL result;
2844 result = (NIM_BOOL)0;
2845 result = ((NU32)(((NU) (x))) <= (NU32)(((NU) (y))));
2846 return result;
2847 }
N_NIMCALL(tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw *,inRange__system_4127)2848 N_LIB_PRIVATE N_NIMCALL(tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw*, inRange__system_4127)(tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* root, NI key) {
2849 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* result;
2850 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* it;
2851 { result = (tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw*)0;
2852 it = root;
2853 {
2854 while (1) {
2855 NIM_BOOL T9_;
2856 if (!!(((*it).link[(((NI) 0))- 0] == it))) goto LA2;
2857 {
2858 NIM_BOOL T5_;
2859 T5_ = (NIM_BOOL)0;
2860 T5_ = lteqpercent___system_985((*it).key, key);
2861 if (!(T5_)) goto LA6_;
2862 T5_ = ltpercent___system_1005(key, (*it).upperBound);
2863 LA6_: ;
2864 if (!T5_) goto LA7_;
2865 result = it;
2866 goto BeforeRet_;
2867 }
2868 LA7_: ;
2869 T9_ = (NIM_BOOL)0;
2870 T9_ = ltpercent___system_1005((*it).key, key);
2871 it = (*it).link[(T9_)- 0];
2872 } LA2: ;
2873 }
2874 }BeforeRet_: ;
2875 return result;
2876 }
N_NIMCALL(void *,interiorAllocatedPtr__system_4734)2877 N_LIB_PRIVATE N_NIMCALL(void*, interiorAllocatedPtr__system_4734)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, void* p) {
2878 void* result;
2879 result = (void*)0;
2880 {
2881 NIM_BOOL T3_;
2882 tyObject_BaseChunk__Sdq7WpT6qAH858F5ZEdG3w* c;
2883 T3_ = (NIM_BOOL)0;
2884 T3_ = isAccessible__system_4453(a, p);
2885 if (!T3_) goto LA4_;
2886 c = pageAddr__system_4426(p);
2887 {
2888 NIM_BOOL T8_;
2889 T8_ = (NIM_BOOL)0;
2890 T8_ = chunkUnused__system_4343(c);
2891 if (!!(T8_)) goto LA9_;
2892 {
2893 NIM_BOOL T13_;
2894 tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ* c_2;
2895 NI offset;
2896 T13_ = (NIM_BOOL)0;
2897 T13_ = isSmallChunk__system_4337(c);
2898 if (!T13_) goto LA14_;
2899 c_2 = ((tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ*) (c));
2900 offset = minuspercent___system_716((NI)(((NI) (ptrdiff_t) (p)) & ((NI) 4095)), ((NI) 32));
2901 {
2902 NIM_BOOL T18_;
2903 tyObject_FreeCell__u6M5LHprqzkn9axr04yg9bGQ* d;
2904 NI T21_;
2905 NI T22_;
2906 NI T23_;
2907 T18_ = (NIM_BOOL)0;
2908 T18_ = ltpercent___system_1005(offset, (*c_2).acc);
2909 if (!T18_) goto LA19_;
2910 T21_ = (NI)0;
2911 T21_ = pluspercent___system_696(((NI) (ptrdiff_t) ((*c_2).data)), offset);
2912 T22_ = (NI)0;
2913 T22_ = percentpercent___system_776(offset, (*c_2).Sup.size);
2914 T23_ = (NI)0;
2915 T23_ = minuspercent___system_716(T21_, T22_);
2916 d = ((tyObject_FreeCell__u6M5LHprqzkn9axr04yg9bGQ*) (T23_));
2917 {
2918 NIM_BOOL T26_;
2919 T26_ = (NIM_BOOL)0;
2920 T26_ = ltpercent___system_1005(((NI) 1), (*d).zeroField);
2921 if (!T26_) goto LA27_;
2922 result = ((void*) (d));
2923 }
2924 LA27_: ;
2925 }
2926 LA19_: ;
2927 }
2928 goto LA11_;
2929 LA14_: ;
2930 {
2931 tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* c_3;
2932 NU8* d_2;
2933 c_3 = ((tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*) (c));
2934 d_2 = (*c_3).data;
2935 {
2936 NIM_BOOL T32_;
2937 T32_ = (NIM_BOOL)0;
2938 T32_ = (((void*) (d_2)) <= p);
2939 if (!(T32_)) goto LA33_;
2940 T32_ = ltpercent___system_1005(((NI) 1), (*((tyObject_FreeCell__u6M5LHprqzkn9axr04yg9bGQ*) (d_2))).zeroField);
2941 LA33_: ;
2942 if (!T32_) goto LA34_;
2943 result = ((void*) (d_2));
2944 }
2945 LA34_: ;
2946 }
2947 LA11_: ;
2948 }
2949 LA9_: ;
2950 }
2951 goto LA1_;
2952 LA4_: ;
2953 {
2954 NI q;
2955 q = ((NI) (ptrdiff_t) (p));
2956 {
2957 NIM_BOOL T39_;
2958 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* avlNode;
2959 T39_ = (NIM_BOOL)0;
2960 T39_ = lteqpercent___system_985((*a).minLargeObj, q);
2961 if (!(T39_)) goto LA40_;
2962 T39_ = lteqpercent___system_985(q, (*a).maxLargeObj);
2963 LA40_: ;
2964 if (!T39_) goto LA41_;
2965 avlNode = inRange__system_4127((*a).root, q);
2966 {
2967 void* k;
2968 tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* c_4;
2969 tyObject_BaseChunk__Sdq7WpT6qAH858F5ZEdG3w* T47_;
2970 if (!!((avlNode == ((tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw*) NIM_NIL)))) goto LA45_;
2971 k = ((void*) ((*avlNode).key));
2972 T47_ = (tyObject_BaseChunk__Sdq7WpT6qAH858F5ZEdG3w*)0;
2973 T47_ = pageAddr__system_4426(k);
2974 c_4 = ((tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*) (T47_));
2975 {
2976 NIM_BOOL T50_;
2977 T50_ = (NIM_BOOL)0;
2978 T50_ = ltpercent___system_1005(((NI) 1), (*((tyObject_FreeCell__u6M5LHprqzkn9axr04yg9bGQ*) (k))).zeroField);
2979 if (!T50_) goto LA51_;
2980 result = k;
2981 }
2982 LA51_: ;
2983 }
2984 LA45_: ;
2985 }
2986 LA41_: ;
2987 }
2988 LA1_: ;
2989 return result;
2990 }
N_INLINE(void,incRef__system_5300)2991 static N_INLINE(void, incRef__system_5300)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
2992 (*c).refcount = pluspercent___system_696((*c).refcount, ((NI) 8));
2993 }
N_INLINE(void,gcMark__system_5760)2994 static N_INLINE(void, gcMark__system_5760)(tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ* gch, void* p) {
2995 NI c;
2996 c = ((NI) (ptrdiff_t) (p));
2997 {
2998 NIM_BOOL T3_;
2999 tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* objStart;
3000 void* T6_;
3001 T3_ = (NIM_BOOL)0;
3002 T3_ = ltpercent___system_1005(((NI) 4096), c);
3003 if (!T3_) goto LA4_;
3004 T6_ = (void*)0;
3005 T6_ = interiorAllocatedPtr__system_4734((&(*gch).region), p);
3006 objStart = ((tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*) (T6_));
3007 {
3008 if (!!((objStart == ((tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*) NIM_NIL)))) goto LA9_;
3009 incRef__system_5300(objStart);
3010 add__system_4851((&(*gch).decStack), objStart);
3011 }
3012 LA9_: ;
3013 }
3014 LA4_: ;
3015 }
markStackAndRegisters__system_5769(tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ * gch)3016 CLANG_NO_SANITIZE_ADDRESS N_LIB_PRIVATE void markStackAndRegisters__system_5769(tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ* gch) {
3017 void* max;
3018 void** sp;
3019 tyArray__nySJCmQz9aRlAQeu3WJUx9cQ stackTop;
3020 asm("ta 0x3 ! ST_FLUSH_WINDOWS\n"
3021 );
3022 max = (*gch).stack.bottom;
3023 sp = (void**)0;
3024 nimZeroMem((void*)stackTop, sizeof(tyArray__nySJCmQz9aRlAQeu3WJUx9cQ));
3025 sp = (&stackTop[(((NI) 0))- 0]);
3026 {
3027 while (1) {
3028 NI T3_;
3029 if (!(((void*) (sp)) <= max)) goto LA2;
3030 gcMark__system_5760(gch, (*sp));
3031 T3_ = (NI)0;
3032 T3_ = pluspercent___system_696(((NI) (ptrdiff_t) (sp)), ((NI) 4));
3033 sp = ((void**) (T3_));
3034 } LA2: ;
3035 }
3036 }
N_NIMCALL(void,prepareDealloc__system_5422)3037 N_LIB_PRIVATE N_NIMCALL(void, prepareDealloc__system_5422)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* cell) {
3038 TNimType* t;
3039 t = (*cell).typ;
3040 {
3041 void* T5_;
3042 if (!!(((*t).finalizer == NIM_NIL))) goto LA3_;
3043 gch__system_5209.recGcLock += ((NI) 1);
3044 T5_ = (void*)0;
3045 T5_ = cellToUsr__system_5259(cell);
3046 ((Finalizer) ((*t).finalizer))(T5_);
3047 gch__system_5209.recGcLock -= ((NI) 1);
3048 }
3049 LA3_: ;
3050 }
N_NIMCALL(NIM_BOOL,collectZCT__system_5750)3051 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, collectZCT__system_5750)(tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ* gch) {
3052 NIM_BOOL result;
3053 NI* L;
3054 result = (NIM_BOOL)0;
3055 L = (&(*gch).zct.len);
3056 {
3057 while (1) {
3058 tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c;
3059 if (!(((NI) 0) < (*L))) goto LA2;
3060 c = (*gch).zct.d[((NI) 0)];
3061 (*c).refcount = (NI)((*c).refcount & ((NI) -5));
3062 (*gch).zct.d[((NI) 0)] = (*gch).zct.d[(NI)((*L) - ((NI) 1))];
3063 (*L) -= ((NI) 1);
3064 {
3065 NIM_BOOL T5_;
3066 T5_ = (NIM_BOOL)0;
3067 T5_ = ltpercent___system_1005((*c).refcount, ((NI) 8));
3068 if (!T5_) goto LA6_;
3069 prepareDealloc__system_5422(c);
3070 forAllChildren__system_5290(c, ((tyEnum_WalkOp__Wfy7gT5VQ8B3aJBxqU8D9cQ) 2));
3071 rawDealloc__system_4680((&(*gch).region), ((void*) (c)));
3072 }
3073 LA6_: ;
3074 } LA2: ;
3075 }
3076 result = NIM_TRUE;
3077 return result;
3078 }
N_NIMCALL(void,deinit__system_4903)3079 N_LIB_PRIVATE N_NIMCALL(void, deinit__system_4903)(tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ* s) {
3080 tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg* it;
3081 it = (*s).head;
3082 {
3083 while (1) {
3084 tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg* n;
3085 if (!!((it == ((tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg*) NIM_NIL)))) goto LA2;
3086 n = (*it).next;
3087 dealloc(((void*) (it)));
3088 it = n;
3089 } LA2: ;
3090 }
3091 (*s).head = ((tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg*) NIM_NIL);
3092 dealloc(((void*) ((*s).data)));
3093 (*s).data = ((tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg**) NIM_NIL);
3094 (*s).counter = ((NI) 0);
3095 }
N_NIMCALL(void,cellsetReset__system_5525)3096 N_LIB_PRIVATE N_NIMCALL(void, cellsetReset__system_5525)(tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ* s) {
3097 deinit__system_4903(s);
3098 init__system_4883(s);
3099 }
N_NIMCALL(void,markGlobals__system_5719)3100 N_LIB_PRIVATE N_NIMCALL(void, markGlobals__system_5719)(tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ* gch) {
3101 tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g** d;
3102 {
3103 if (!((*gch).gcThreadId == ((NI) 0))) goto LA3_;
3104 {
3105 NI i;
3106 NI colontmp_;
3107 NI res;
3108 i = (NI)0;
3109 colontmp_ = (NI)0;
3110 colontmp_ = (NI)(globalMarkersLen - ((NI) 1));
3111 res = ((NI) 0);
3112 {
3113 while (1) {
3114 if (!(res <= colontmp_)) goto LA7;
3115 i = res;
3116 globalMarkers[(i)- 0]();
3117 res += ((NI) 1);
3118 } LA7: ;
3119 }
3120 }
3121 }
3122 LA3_: ;
3123 {
3124 NI i_2;
3125 NI colontmp__2;
3126 NI res_2;
3127 i_2 = (NI)0;
3128 colontmp__2 = (NI)0;
3129 colontmp__2 = (NI)(threadLocalMarkersLen - ((NI) 1));
3130 res_2 = ((NI) 0);
3131 {
3132 while (1) {
3133 if (!(res_2 <= colontmp__2)) goto LA10;
3134 i_2 = res_2;
3135 threadLocalMarkers[(i_2)- 0]();
3136 res_2 += ((NI) 1);
3137 } LA10: ;
3138 }
3139 }
3140 d = (*gch).additionalRoots.d;
3141 {
3142 NI i_3;
3143 NI colontmp__3;
3144 NI res_3;
3145 i_3 = (NI)0;
3146 colontmp__3 = (NI)0;
3147 colontmp__3 = (NI)((*gch).additionalRoots.len - ((NI) 1));
3148 res_3 = ((NI) 0);
3149 {
3150 while (1) {
3151 if (!(res_3 <= colontmp__3)) goto LA13;
3152 i_3 = res_3;
3153 markS__system_5711(gch, d[i_3]);
3154 res_3 += ((NI) 1);
3155 } LA13: ;
3156 }
3157 }
3158 }
N_INLINE(NIM_BOOL,isCell__system_4400)3159 static N_INLINE(NIM_BOOL, isCell__system_4400)(void* p) {
3160 NIM_BOOL result;
3161 result = (NIM_BOOL)0;
3162 result = ltpercent___system_1005(((NI) 1), (*((tyObject_FreeCell__u6M5LHprqzkn9axr04yg9bGQ*) (p))).zeroField);
3163 return result;
3164 }
N_NIMCALL(NIM_BOOL,contains__system_4976)3165 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, contains__system_4976)(tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ s, tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* cell) {
3166 NIM_BOOL result;
3167 NU u;
3168 tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg* t;
3169 result = (NIM_BOOL)0;
3170 u = ((NU) (ptrdiff_t) (cell));
3171 t = cellSetGet__system_4915(s, (NU)((NU32)(u) >> (NU32)(((NI) 12))));
3172 {
3173 if (!!((t == ((tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg*) NIM_NIL)))) goto LA3_;
3174 u = (NU)((NU32)((NU)((NU32)(u) % (NU32)(((NU) 4096)))) / (NU32)(((NU) 16)));
3175 result = !(((NI)((*t).bits[((NU)((NU32)(u) >> (NU32)(((NI) 5))))- 0] & (NI)((NU32)(((NI) 1)) << (NU32)((NU)(u & ((NU) 31))))) == ((NI) 0)));
3176 }
3177 goto LA1_;
3178 LA3_: ;
3179 {
3180 result = NIM_FALSE;
3181 }
3182 LA1_: ;
3183 return result;
3184 }
N_NIMCALL(void,freeCyclicCell__system_5703)3185 N_LIB_PRIVATE N_NIMCALL(void, freeCyclicCell__system_5703)(tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ* gch, tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
3186 prepareDealloc__system_5422(c);
3187 rawDealloc__system_4680((&(*gch).region), ((void*) (c)));
3188 }
N_NIMCALL(void,sweep__system_5707)3189 N_LIB_PRIVATE N_NIMCALL(void, sweep__system_5707)(tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ* gch) {
3190 {
3191 void* x;
3192 x = (void*)0;
3193 (*gch).region.locked = NIM_TRUE;
3194 {
3195 NI s;
3196 s = (NI)0;
3197 {
3198 NI h;
3199 NI res;
3200 h = (NI)0;
3201 res = ((NI) 0);
3202 {
3203 while (1) {
3204 tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw* r;
3205 if (!(res <= ((NI) 255))) goto LA5;
3206 h = res;
3207 r = (*gch).region.chunkStarts.data[(h)- 0];
3208 {
3209 while (1) {
3210 NI i;
3211 if (!!((r == ((tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw*) NIM_NIL)))) goto LA7;
3212 i = ((NI) 0);
3213 {
3214 while (1) {
3215 NU w;
3216 NI j;
3217 if (!(i <= ((NI) 15))) goto LA9;
3218 w = (*r).bits[(i)- 0];
3219 j = ((NI) 0);
3220 {
3221 while (1) {
3222 if (!!((w == ((NU) 0)))) goto LA11;
3223 {
3224 NI T16_;
3225 if (!!(((NU)(w & ((NU) 1)) == ((NU) 0)))) goto LA14_;
3226 T16_ = (NI)0;
3227 T16_ = pluspercent___system_696((NI)((NU32)(i) << (NU32)(((NI) 5))), j);
3228 s = (NI)((NI)((NU32)((*r).key) << (NU32)(((NI) 9))) | T16_);
3229 {
3230 NIM_BOOL T19_;
3231 tyObject_BaseChunk__Sdq7WpT6qAH858F5ZEdG3w* c;
3232 T19_ = (NIM_BOOL)0;
3233 T19_ = contains__system_4225((&(*gch).region.chunkStarts), s);
3234 if (!T19_) goto LA20_;
3235 c = ((tyObject_BaseChunk__Sdq7WpT6qAH858F5ZEdG3w*) ((NI)((NU32)(s) << (NU32)(((NI) 12)))));
3236 {
3237 NIM_BOOL T24_;
3238 T24_ = (NIM_BOOL)0;
3239 T24_ = chunkUnused__system_4343(c);
3240 if (!!(T24_)) goto LA25_;
3241 {
3242 NIM_BOOL T29_;
3243 tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ* c_2;
3244 NI size;
3245 NI a;
3246 NI limit;
3247 T29_ = (NIM_BOOL)0;
3248 T29_ = isSmallChunk__system_4337(c);
3249 if (!T29_) goto LA30_;
3250 c_2 = ((tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ*) (c));
3251 size = (*c_2).Sup.size;
3252 a = ((NI) (ptrdiff_t) ((*c_2).data));
3253 limit = (NI)(a + (*c_2).acc);
3254 {
3255 while (1) {
3256 NIM_BOOL T34_;
3257 T34_ = (NIM_BOOL)0;
3258 T34_ = ltpercent___system_1005(a, limit);
3259 if (!T34_) goto LA33;
3260 x = ((void*) (a));
3261 {
3262 NIM_BOOL T37_;
3263 tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c_3;
3264 T37_ = (NIM_BOOL)0;
3265 T37_ = isCell__system_4400(x);
3266 if (!T37_) goto LA38_;
3267 c_3 = ((tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*) (x));
3268 {
3269 NIM_BOOL T42_;
3270 T42_ = (NIM_BOOL)0;
3271 T42_ = contains__system_4976((*gch).marked, c_3);
3272 if (!!(T42_)) goto LA43_;
3273 freeCyclicCell__system_5703(gch, c_3);
3274 }
3275 LA43_: ;
3276 }
3277 LA38_: ;
3278 a = pluspercent___system_696(a, size);
3279 } LA33: ;
3280 }
3281 }
3282 goto LA27_;
3283 LA30_: ;
3284 {
3285 tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* c_4;
3286 c_4 = ((tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*) (c));
3287 x = ((void*) ((*c_4).data));
3288 {
3289 NIM_BOOL T48_;
3290 tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c_5;
3291 T48_ = (NIM_BOOL)0;
3292 T48_ = isCell__system_4400(x);
3293 if (!T48_) goto LA49_;
3294 c_5 = ((tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*) (x));
3295 {
3296 NIM_BOOL T53_;
3297 T53_ = (NIM_BOOL)0;
3298 T53_ = contains__system_4976((*gch).marked, c_5);
3299 if (!!(T53_)) goto LA54_;
3300 freeCyclicCell__system_5703(gch, c_5);
3301 }
3302 LA54_: ;
3303 }
3304 LA49_: ;
3305 }
3306 LA27_: ;
3307 }
3308 LA25_: ;
3309 }
3310 LA20_: ;
3311 }
3312 LA14_: ;
3313 j += ((NI) 1);
3314 w = (NU)((NU32)(w) >> (NU32)(((NI) 1)));
3315 } LA11: ;
3316 }
3317 i += ((NI) 1);
3318 } LA9: ;
3319 }
3320 r = (*r).next;
3321 } LA7: ;
3322 }
3323 res += ((NI) 1);
3324 } LA5: ;
3325 }
3326 }
3327 }
3328 (*gch).region.locked = NIM_FALSE;
3329 }
3330 }
N_NIMCALL(void,collectCycles__system_5752)3331 N_LIB_PRIVATE N_NIMCALL(void, collectCycles__system_5752)(tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ* gch) {
3332 tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g** d;
3333 {
3334 while (1) {
3335 NIM_BOOL T3_;
3336 if (!(((NI) 0) < (*gch).zct.len)) goto LA2;
3337 T3_ = (NIM_BOOL)0;
3338 T3_ = collectZCT__system_5750(gch);
3339 (void)(T3_);
3340 } LA2: ;
3341 }
3342 cellsetReset__system_5525((&(*gch).marked));
3343 d = (*gch).decStack.d;
3344 {
3345 NI i;
3346 NI colontmp_;
3347 NI res;
3348 i = (NI)0;
3349 colontmp_ = (NI)0;
3350 colontmp_ = (NI)((*gch).decStack.len - ((NI) 1));
3351 res = ((NI) 0);
3352 {
3353 while (1) {
3354 if (!(res <= colontmp_)) goto LA6;
3355 i = res;
3356 markS__system_5711(gch, d[i]);
3357 res += ((NI) 1);
3358 } LA6: ;
3359 }
3360 }
3361 markGlobals__system_5719(gch);
3362 sweep__system_5707(gch);
3363 }
N_NIMCALL(NI,getOccupiedMem__system_1936)3364 N_LIB_PRIVATE N_NIMCALL(NI, getOccupiedMem__system_1936)(void) {
3365 NI result;
3366 result = (NI)0;
3367 result = gch__system_5209.region.occ;
3368 return result;
3369 }
N_NIMCALL(void,unmarkStackAndRegisters__system_5803)3370 N_LIB_PRIVATE N_NIMCALL(void, unmarkStackAndRegisters__system_5803)(tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ* gch) {
3371 tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g** d;
3372 d = (*gch).decStack.d;
3373 {
3374 NI i;
3375 NI colontmp_;
3376 NI res;
3377 i = (NI)0;
3378 colontmp_ = (NI)0;
3379 colontmp_ = (NI)((*gch).decStack.len - ((NI) 1));
3380 res = ((NI) 0);
3381 {
3382 while (1) {
3383 if (!(res <= colontmp_)) goto LA3;
3384 i = res;
3385 decRef__system_5307(d[i]);
3386 res += ((NI) 1);
3387 } LA3: ;
3388 }
3389 }
3390 (*gch).decStack.len = ((NI) 0);
3391 }
N_NIMCALL(void,collectCTBody__system_5811)3392 N_LIB_PRIVATE N_NIMCALL(void, collectCTBody__system_5811)(tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ* gch) {
3393 NI T1_;
3394 T1_ = (NI)0;
3395 T1_ = stackSize__system_5380();
3396 (*gch).stat.maxStackSize = (((*gch).stat.maxStackSize >= T1_) ? (*gch).stat.maxStackSize : T1_);
3397 prepareForInteriorPointerChecking__system_4732((&(*gch).region));
3398 markStackAndRegisters__system_5769(gch);
3399 (*gch).stat.maxStackCells = (((*gch).stat.maxStackCells >= (*gch).decStack.len) ? (*gch).stat.maxStackCells : (*gch).decStack.len);
3400 (*gch).stat.stackScans += ((NI) 1);
3401 {
3402 NIM_BOOL T4_;
3403 T4_ = (NIM_BOOL)0;
3404 T4_ = collectZCT__system_5750(gch);
3405 if (!T4_) goto LA5_;
3406 {
3407 NIM_BOOL T9_;
3408 NI T10_;
3409 NI T14_;
3410 T9_ = (NIM_BOOL)0;
3411 T10_ = (NI)0;
3412 T10_ = getOccupiedMem__system_4811((&(*gch).region));
3413 T9_ = ((*gch).cycleThreshold <= T10_);
3414 if (T9_) goto LA11_;
3415 T9_ = NIM_FALSE;
3416 LA11_: ;
3417 if (!T9_) goto LA12_;
3418 collectCycles__system_5752(gch);
3419 (*gch).stat.cycleCollections += ((NI) 1);
3420 T14_ = (NI)0;
3421 T14_ = getOccupiedMem__system_1936();
3422 (*gch).cycleThreshold = ((((NI) 4194304) >= (NI)(T14_ * ((NI) 2))) ? ((NI) 4194304) : (NI)(T14_ * ((NI) 2)));
3423 (*gch).stat.maxThreshold = (((*gch).stat.maxThreshold >= (*gch).cycleThreshold) ? (*gch).stat.maxThreshold : (*gch).cycleThreshold);
3424 }
3425 LA12_: ;
3426 }
3427 LA5_: ;
3428 unmarkStackAndRegisters__system_5803(gch);
3429 }
N_NIMCALL(void,collectCT__system_5286)3430 N_LIB_PRIVATE N_NIMCALL(void, collectCT__system_5286)(tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ* gch) {
3431 {
3432 NIM_BOOL T3_;
3433 NIM_BOOL T4_;
3434 NIM_BOOL T5_;
3435 NIM_BOOL T7_;
3436 NI T9_;
3437 T3_ = (NIM_BOOL)0;
3438 T4_ = (NIM_BOOL)0;
3439 T5_ = (NIM_BOOL)0;
3440 T5_ = ((*gch).zctThreshold <= (*gch).zct.len);
3441 if (T5_) goto LA6_;
3442 T7_ = (NIM_BOOL)0;
3443 T7_ = NIM_TRUE;
3444 if (!(T7_)) goto LA8_;
3445 T9_ = (NI)0;
3446 T9_ = getOccupiedMem__system_4811((&(*gch).region));
3447 T7_ = ((*gch).cycleThreshold <= T9_);
3448 LA8_: ;
3449 T5_ = T7_;
3450 LA6_: ;
3451 T4_ = T5_;
3452 if (T4_) goto LA10_;
3453 T4_ = NIM_FALSE;
3454 LA10_: ;
3455 T3_ = T4_;
3456 if (!(T3_)) goto LA11_;
3457 T3_ = ((*gch).recGcLock == ((NI) 0));
3458 LA11_: ;
3459 if (!T3_) goto LA12_;
3460 collectCTBody__system_5811(gch);
3461 (*gch).zctThreshold = ((((NI) 500) >= (NI)((*gch).zct.len * ((NI) 2))) ? ((NI) 500) : (NI)((*gch).zct.len * ((NI) 2)));
3462 }
3463 LA12_: ;
3464 }
N_INLINE(void,addNewObjToZCT__system_5624)3465 static N_INLINE(void, addNewObjToZCT__system_5624)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* res, tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ* gch) {
3466 NI L;
3467 tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g** d;
3468 { L = (*gch).zct.len;
3469 d = (*gch).zct.d;
3470 {
3471 tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c;
3472 if (!(((NI) 8) < L)) goto LA3_;
3473 c = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
3474 c = d[(NI)(L - ((NI) 1))];
3475 {
3476 NIM_BOOL T7_;
3477 T7_ = (NIM_BOOL)0;
3478 T7_ = lteqpercent___system_985(((NI) 8), (*c).refcount);
3479 if (!T7_) goto LA8_;
3480 (*c).refcount = (NI)((*c).refcount & ((NI) -5));
3481 d[(NI)(L - ((NI) 1))] = res;
3482 goto BeforeRet_;
3483 }
3484 LA8_: ;
3485 c = d[(NI)(L - ((NI) 2))];
3486 {
3487 NIM_BOOL T12_;
3488 T12_ = (NIM_BOOL)0;
3489 T12_ = lteqpercent___system_985(((NI) 8), (*c).refcount);
3490 if (!T12_) goto LA13_;
3491 (*c).refcount = (NI)((*c).refcount & ((NI) -5));
3492 d[(NI)(L - ((NI) 2))] = res;
3493 goto BeforeRet_;
3494 }
3495 LA13_: ;
3496 c = d[(NI)(L - ((NI) 3))];
3497 {
3498 NIM_BOOL T17_;
3499 T17_ = (NIM_BOOL)0;
3500 T17_ = lteqpercent___system_985(((NI) 8), (*c).refcount);
3501 if (!T17_) goto LA18_;
3502 (*c).refcount = (NI)((*c).refcount & ((NI) -5));
3503 d[(NI)(L - ((NI) 3))] = res;
3504 goto BeforeRet_;
3505 }
3506 LA18_: ;
3507 c = d[(NI)(L - ((NI) 4))];
3508 {
3509 NIM_BOOL T22_;
3510 T22_ = (NIM_BOOL)0;
3511 T22_ = lteqpercent___system_985(((NI) 8), (*c).refcount);
3512 if (!T22_) goto LA23_;
3513 (*c).refcount = (NI)((*c).refcount & ((NI) -5));
3514 d[(NI)(L - ((NI) 4))] = res;
3515 goto BeforeRet_;
3516 }
3517 LA23_: ;
3518 c = d[(NI)(L - ((NI) 5))];
3519 {
3520 NIM_BOOL T27_;
3521 T27_ = (NIM_BOOL)0;
3522 T27_ = lteqpercent___system_985(((NI) 8), (*c).refcount);
3523 if (!T27_) goto LA28_;
3524 (*c).refcount = (NI)((*c).refcount & ((NI) -5));
3525 d[(NI)(L - ((NI) 5))] = res;
3526 goto BeforeRet_;
3527 }
3528 LA28_: ;
3529 c = d[(NI)(L - ((NI) 6))];
3530 {
3531 NIM_BOOL T32_;
3532 T32_ = (NIM_BOOL)0;
3533 T32_ = lteqpercent___system_985(((NI) 8), (*c).refcount);
3534 if (!T32_) goto LA33_;
3535 (*c).refcount = (NI)((*c).refcount & ((NI) -5));
3536 d[(NI)(L - ((NI) 6))] = res;
3537 goto BeforeRet_;
3538 }
3539 LA33_: ;
3540 c = d[(NI)(L - ((NI) 7))];
3541 {
3542 NIM_BOOL T37_;
3543 T37_ = (NIM_BOOL)0;
3544 T37_ = lteqpercent___system_985(((NI) 8), (*c).refcount);
3545 if (!T37_) goto LA38_;
3546 (*c).refcount = (NI)((*c).refcount & ((NI) -5));
3547 d[(NI)(L - ((NI) 7))] = res;
3548 goto BeforeRet_;
3549 }
3550 LA38_: ;
3551 c = d[(NI)(L - ((NI) 8))];
3552 {
3553 NIM_BOOL T42_;
3554 T42_ = (NIM_BOOL)0;
3555 T42_ = lteqpercent___system_985(((NI) 8), (*c).refcount);
3556 if (!T42_) goto LA43_;
3557 (*c).refcount = (NI)((*c).refcount & ((NI) -5));
3558 d[(NI)(L - ((NI) 8))] = res;
3559 goto BeforeRet_;
3560 }
3561 LA43_: ;
3562 add__system_4851((&(*gch).zct), res);
3563 }
3564 goto LA1_;
3565 LA3_: ;
3566 {
3567 d[L] = res;
3568 (*gch).zct.len += ((NI) 1);
3569 }
3570 LA1_: ;
3571 }BeforeRet_: ;
3572 }
N_NIMCALL(void *,rawNewObj__system_5639)3573 N_LIB_PRIVATE N_NIMCALL(void*, rawNewObj__system_5639)(TNimType* typ, NI size, tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ* gch) {
3574 void* result;
3575 tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* res;
3576 void* T1_;
3577 result = (void*)0;
3578 collectCT__system_5286(gch);
3579 T1_ = (void*)0;
3580 T1_ = rawAlloc__system_4551((&(*gch).region), (NI)(size + ((NI) 8)));
3581 res = ((tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*) (T1_));
3582 (*res).typ = typ;
3583 (*res).refcount = ((NI) 4);
3584 addNewObjToZCT__system_5624(res, gch);
3585 result = cellToUsr__system_5259(res);
3586 return result;
3587 }
N_NIMCALL(void *,newObjNoInit)3588 N_LIB_PRIVATE N_NIMCALL(void*, newObjNoInit)(TNimType* typ, NI size) {
3589 void* result;
3590 result = (void*)0;
3591 result = rawNewObj__system_5639(typ, size, (&gch__system_5209));
3592 return result;
3593 }
N_NIMCALL(NimStringDesc *,rawNewStringNoInit)3594 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, rawNewStringNoInit)(NI space) {
3595 NimStringDesc* result;
3596 NI s;
3597 void* T5_;
3598 result = (NimStringDesc*)0;
3599 s = space;
3600 {
3601 if (!(s < ((NI) 7))) goto LA3_;
3602 s = ((NI) 7);
3603 }
3604 LA3_: ;
3605 T5_ = (void*)0;
3606 T5_ = newObjNoInit((&strDesc__system_2412), (NI)((NI)(((NI) 8) + s) + ((NI) 1)));
3607 result = ((NimStringDesc*) (T5_));
3608 (*result).Sup.reserved = s;
3609 (*result).Sup.len = ((NI) 0);
3610 return result;
3611 }
N_NIMCALL(NimStringDesc *,toNimStr)3612 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, toNimStr)(NCSTRING str, NI len) {
3613 NimStringDesc* result;
3614 result = (NimStringDesc*)0;
3615 result = rawNewStringNoInit(len);
3616 (*result).Sup.len = len;
3617 copyMem__system_1727(((void*) ((*result).data)), ((void*) (str)), ((NI) ((NI)(len + ((NI) 1)))));
3618 return result;
3619 }
N_NIMCALL(NimStringDesc *,cstrToNimstr)3620 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, cstrToNimstr)(NCSTRING str) {
3621 NimStringDesc* result;
3622 result = (NimStringDesc*)0;
3623 {
3624 if (!(((void*) (str)) == NIM_NIL)) goto LA3_;
3625 result = ((NimStringDesc*) NIM_NIL);
3626 }
3627 goto LA1_;
3628 LA3_: ;
3629 {
3630 result = toNimStr(str, (str ? nimCStrLen(str) : 0));
3631 }
3632 LA1_: ;
3633 return result;
3634 }
N_INLINE(void,popSafePoint)3635 static N_INLINE(void, popSafePoint)(void) {
3636 excHandler__system_2565 = (*excHandler__system_2565).prev;
3637 }
N_INLINE(void,asgnRef)3638 static N_INLINE(void, asgnRef)(void** dest, void* src) {
3639 {
3640 tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T5_;
3641 if (!!((src == NIM_NIL))) goto LA3_;
3642 T5_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
3643 T5_ = usrToCell__system_5262(src);
3644 incRef__system_5300(T5_);
3645 }
3646 LA3_: ;
3647 {
3648 tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T10_;
3649 if (!!(((*dest) == NIM_NIL))) goto LA8_;
3650 T10_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
3651 T10_ = usrToCell__system_5262((*dest));
3652 decRef__system_5307(T10_);
3653 }
3654 LA8_: ;
3655 (*dest) = src;
3656 }
N_INLINE(void,popCurrentException)3657 static N_INLINE(void, popCurrentException)(void) {
3658 asgnRef((void**) (&currException__system_2566), (*currException__system_2566).up);
3659 }
N_NIMCALL(void,Marker_tyRef__uG62cfJZ15c2siK3CKLmnQ)3660 static N_NIMCALL(void, Marker_tyRef__uG62cfJZ15c2siK3CKLmnQ)(void* p, NI op) {
3661 tyObject_ReraiseDefect__E0L0wGYS1gPD81VLstNO2g* a;
3662 a = (tyObject_ReraiseDefect__E0L0wGYS1gPD81VLstNO2g*)p;
3663 nimGCvisit((void*)(*a).Sup.Sup.parent, op);
3664 nimGCvisit((void*)(*a).Sup.Sup.message, op);
3665 nimGCvisit((void*)(*a).Sup.Sup.trace, op);
3666 nimGCvisit((void*)(*a).Sup.Sup.up, op);
3667 }
N_NOINLINE(void *,newObj)3668 N_LIB_PRIVATE N_NOINLINE(void*, newObj)(TNimType* typ, NI size) {
3669 void* result;
3670 result = (void*)0;
3671 result = rawNewObj__system_5639(typ, size, (&gch__system_5209));
3672 zeroMem__system_1724(result, ((NI) (size)));
3673 return result;
3674 }
N_NOINLINE(void *,newObjRC1)3675 N_LIB_PRIVATE N_NOINLINE(void*, newObjRC1)(TNimType* typ, NI size) {
3676 void* result;
3677 tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* res;
3678 void* T1_;
3679 result = (void*)0;
3680 collectCT__system_5286((&gch__system_5209));
3681 T1_ = (void*)0;
3682 T1_ = rawAlloc__system_4551((&gch__system_5209.region), (NI)(size + ((NI) 8)));
3683 res = ((tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*) (T1_));
3684 (*res).typ = typ;
3685 (*res).refcount = ((NI) 8);
3686 result = cellToUsr__system_5259(res);
3687 zeroMem__system_1724(result, ((NI) (size)));
3688 return result;
3689 }
N_NIMCALL(NimStringDesc *,copyStringRC1)3690 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, copyStringRC1)(NimStringDesc* src) {
3691 NimStringDesc* result;
3692 result = (NimStringDesc*)0;
3693 {
3694 if (!!((src == ((NimStringDesc*) NIM_NIL)))) goto LA3_;
3695 {
3696 tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T9_;
3697 if (!!(((NI)((*src).Sup.reserved & ((NI) (-2147483647 -1))) == ((NI) 0)))) goto LA7_;
3698 result = src;
3699 T9_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
3700 T9_ = usrToCell__system_5262(((void*) (result)));
3701 incRef__system_5300(T9_);
3702 }
3703 goto LA5_;
3704 LA7_: ;
3705 {
3706 NI s;
3707 void* T15_;
3708 s = (*src).Sup.len;
3709 {
3710 if (!(s < ((NI) 7))) goto LA13_;
3711 s = ((NI) 7);
3712 }
3713 LA13_: ;
3714 T15_ = (void*)0;
3715 T15_ = newObjRC1((&strDesc__system_2412), (NI)((NI)(((NI) 8) + s) + ((NI) 1)));
3716 result = ((NimStringDesc*) (T15_));
3717 (*result).Sup.reserved = s;
3718 (*result).Sup.len = (*src).Sup.len;
3719 copyMem__system_1727(((void*) ((*result).data)), ((void*) ((*src).data)), ((NI) ((NI)((*src).Sup.len + ((NI) 1)))));
3720 }
3721 LA5_: ;
3722 }
3723 LA3_: ;
3724 return result;
3725 }
N_INLINE(void,nimGCunrefNoCycle)3726 static N_INLINE(void, nimGCunrefNoCycle)(void* p) {
3727 tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T1_;
3728 T1_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
3729 T1_ = usrToCell__system_5262(p);
3730 decRef__system_5307(T1_);
3731 }
N_NIMCALL(void,Marker_tyRef__r8GBEWywN07B3Rat3azS4Q)3732 static N_NIMCALL(void, Marker_tyRef__r8GBEWywN07B3Rat3azS4Q)(void* p, NI op) {
3733 tyObject_OverflowDefect__9cxMi1BPLc3UKt9br86bGfGQ* a;
3734 a = (tyObject_OverflowDefect__9cxMi1BPLc3UKt9br86bGfGQ*)p;
3735 nimGCvisit((void*)(*a).Sup.Sup.Sup.parent, op);
3736 nimGCvisit((void*)(*a).Sup.Sup.Sup.message, op);
3737 nimGCvisit((void*)(*a).Sup.Sup.Sup.trace, op);
3738 nimGCvisit((void*)(*a).Sup.Sup.Sup.up, op);
3739 }
N_INLINE(void,sysFatal__system_3375)3740 static N_INLINE(void, sysFatal__system_3375)(NimStringDesc* message) {
3741 tyObject_OverflowDefect__9cxMi1BPLc3UKt9br86bGfGQ* T1_;
3742 NimStringDesc* T2_;
3743 T1_ = NIM_NIL;
3744 T1_ = (tyObject_OverflowDefect__9cxMi1BPLc3UKt9br86bGfGQ*) newObj((&NTIrefoverflowdefect__r8GBEWywN07B3Rat3azS4Q_), sizeof(tyObject_OverflowDefect__9cxMi1BPLc3UKt9br86bGfGQ));
3745 (*T1_).Sup.Sup.Sup.Sup.m_type = (&NTIoverflowdefect__9cxMi1BPLc3UKt9br86bGfGQ_);
3746 (*T1_).Sup.Sup.Sup.name = "OverflowDefect";
3747 T2_ = NIM_NIL;
3748 T2_ = (*T1_).Sup.Sup.Sup.message; (*T1_).Sup.Sup.Sup.message = copyStringRC1(message);
3749 if (T2_) nimGCunrefNoCycle(T2_);
3750 raiseExceptionEx((Exception*)T1_, "OverflowDefect", "sysFatal", "fatal.nim", 53);
3751 }
N_NOINLINE(void,raiseOverflow)3752 N_LIB_PRIVATE N_NOINLINE(void, raiseOverflow)(void) {
3753 sysFatal__system_3375(((NimStringDesc*) &TM__Q5wkpxktOdTGvlSRo9bzt9aw_7));
3754 }
N_NIMCALL(void *,newSeq)3755 N_LIB_PRIVATE N_NIMCALL(void*, newSeq)(TNimType* typ, NI len) {
3756 void* result;
3757 NI size;
3758 NI T1_;
3759 NI TM__Q5wkpxktOdTGvlSRo9bzt9aw_6;
3760 NI TM__Q5wkpxktOdTGvlSRo9bzt9aw_8;
3761 result = (void*)0;
3762 T1_ = (NI)0;
3763 T1_ = align__system_1624(((NI) 8), (*(*typ).base).align);
3764 if (nimMulInt(len, (*(*typ).base).size, &TM__Q5wkpxktOdTGvlSRo9bzt9aw_6)) { raiseOverflow(); };
3765 if (nimAddInt(T1_, (NI)(TM__Q5wkpxktOdTGvlSRo9bzt9aw_6), &TM__Q5wkpxktOdTGvlSRo9bzt9aw_8)) { raiseOverflow(); };
3766 size = (NI)(TM__Q5wkpxktOdTGvlSRo9bzt9aw_8);
3767 result = newObj(typ, size);
3768 (*((TGenericSeq*) (result))).len = len;
3769 (*((TGenericSeq*) (result))).reserved = len;
3770 return result;
3771 }
N_INLINE(NI,resize__system_5866)3772 static N_INLINE(NI, resize__system_5866)(NI old) {
3773 NI result;
3774 result = (NI)0;
3775 {
3776 if (!(old <= ((NI) 0))) goto LA3_;
3777 result = ((NI) 4);
3778 }
3779 goto LA1_;
3780 LA3_: ;
3781 {
3782 if (!(old < ((NI) 65536))) goto LA6_;
3783 result = (NI)(old * ((NI) 2));
3784 }
3785 goto LA1_;
3786 LA6_: ;
3787 {
3788 result = (NI)((NI)(old * ((NI) 3)) / ((NI) 2));
3789 }
3790 LA1_: ;
3791 return result;
3792 }
N_NIMCALL(void *,dataPointer__system_5856)3793 N_LIB_PRIVATE N_NIMCALL(void*, dataPointer__system_5856)(TGenericSeq* a, NI elemAlign) {
3794 void* result;
3795 NI T1_;
3796 NI T2_;
3797 result = (void*)0;
3798 T1_ = (NI)0;
3799 T1_ = align__system_1624(((NI) 8), elemAlign);
3800 T2_ = (NI)0;
3801 T2_ = pluspercent___system_696(((NI) (ptrdiff_t) (a)), T1_);
3802 result = ((void*) (T2_));
3803 return result;
3804 }
N_NIMCALL(TGenericSeq *,incrSeqV3)3805 N_LIB_PRIVATE N_NIMCALL(TGenericSeq*, incrSeqV3)(TGenericSeq* s, TNimType* typ) {
3806 TGenericSeq* result;
3807 result = (TGenericSeq*)0;
3808 {
3809 void* T5_;
3810 if (!(s == ((TGenericSeq*) NIM_NIL))) goto LA3_;
3811 T5_ = (void*)0;
3812 T5_ = newSeq(typ, ((NI) 1));
3813 result = ((TGenericSeq*) (T5_));
3814 (*result).len = ((NI) 0);
3815 }
3816 goto LA1_;
3817 LA3_: ;
3818 {
3819 result = s;
3820 {
3821 NI r;
3822 void* T11_;
3823 void* T12_;
3824 void* T13_;
3825 if (!((NI)((*result).reserved & ((NI) 1073741823)) <= (*result).len)) goto LA9_;
3826 r = resize__system_5866((NI)((*result).reserved & ((NI) 1073741823)));
3827 T11_ = (void*)0;
3828 T11_ = newSeq(typ, r);
3829 result = ((TGenericSeq*) (T11_));
3830 (*result).len = (*s).len;
3831 T12_ = (void*)0;
3832 T12_ = dataPointer__system_5856(result, (*(*typ).base).align);
3833 T13_ = (void*)0;
3834 T13_ = dataPointer__system_5856(s, (*(*typ).base).align);
3835 copyMem__system_1727(T12_, T13_, ((NI) ((NI)((*s).len * (*(*typ).base).size))));
3836 (*s).len = ((NI) 0);
3837 }
3838 LA9_: ;
3839 }
3840 LA1_: ;
3841 return result;
3842 }
N_INLINE(void,pushCurrentException)3843 static N_INLINE(void, pushCurrentException)(Exception* e) {
3844 asgnRef((void**) (&(*e).up), currException__system_2566);
3845 asgnRef((void**) (&currException__system_2566), e);
3846 }
N_NIMCALL(NimStringDesc *,rawNewString)3847 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, rawNewString)(NI space) {
3848 NimStringDesc* result;
3849 NI s;
3850 void* T5_;
3851 result = (NimStringDesc*)0;
3852 s = space;
3853 {
3854 if (!(s < ((NI) 7))) goto LA3_;
3855 s = ((NI) 7);
3856 }
3857 LA3_: ;
3858 T5_ = (void*)0;
3859 T5_ = newObj((&strDesc__system_2412), (NI)((NI)(((NI) 8) + s) + ((NI) 1)));
3860 result = ((NimStringDesc*) (T5_));
3861 (*result).Sup.reserved = s;
3862 (*result).Sup.len = ((NI) 0);
3863 return result;
3864 }
N_INLINE(void,appendString)3865 static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src) {
3866 {
3867 if (!!((src == ((NimStringDesc*) NIM_NIL)))) goto LA3_;
3868 copyMem__system_1727(((void*) ((&(*dest).data[(*dest).Sup.len]))), ((void*) ((*src).data)), ((NI) ((NI)((*src).Sup.len + ((NI) 1)))));
3869 (*dest).Sup.len += (*src).Sup.len;
3870 }
3871 LA3_: ;
3872 }
N_NIMCALL(NimStringDesc *,resizeString)3873 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, resizeString)(NimStringDesc* dest, NI addlen) {
3874 NimStringDesc* result;
3875 result = (NimStringDesc*)0;
3876 {
3877 if (!(dest == ((NimStringDesc*) NIM_NIL))) goto LA3_;
3878 result = rawNewStringNoInit(addlen);
3879 }
3880 goto LA1_;
3881 LA3_: ;
3882 {
3883 if (!((NI)((*dest).Sup.len + addlen) <= (NI)((*dest).Sup.reserved & ((NI) 1073741823)))) goto LA6_;
3884 result = dest;
3885 }
3886 goto LA1_;
3887 LA6_: ;
3888 {
3889 NI sp;
3890 NI T9_;
3891 T9_ = (NI)0;
3892 T9_ = resize__system_5866((NI)((*dest).Sup.reserved & ((NI) 1073741823)));
3893 sp = ((T9_ >= (NI)((*dest).Sup.len + addlen)) ? T9_ : (NI)((*dest).Sup.len + addlen));
3894 result = rawNewStringNoInit(sp);
3895 (*result).Sup.len = (*dest).Sup.len;
3896 copyMem__system_1727(((void*) ((&(*result).data[((NI) 0)]))), ((void*) ((&(*dest).data[((NI) 0)]))), ((NI) ((NI)((*dest).Sup.len + ((NI) 1)))));
3897 (*result).Sup.reserved = sp;
3898 }
3899 LA1_: ;
3900 return result;
3901 }
N_NIMCALL(NimStringDesc *,addChar)3902 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, addChar)(NimStringDesc* s, NIM_CHAR c) {
3903 NimStringDesc* result;
3904 result = (NimStringDesc*)0;
3905 {
3906 if (!(s == ((NimStringDesc*) NIM_NIL))) goto LA3_;
3907 result = rawNewStringNoInit(((NI) 1));
3908 (*result).Sup.len = ((NI) 0);
3909 }
3910 goto LA1_;
3911 LA3_: ;
3912 {
3913 result = s;
3914 {
3915 NI r;
3916 if (!((NI)((*result).Sup.reserved & ((NI) 1073741823)) <= (*result).Sup.len)) goto LA8_;
3917 r = resize__system_5866((NI)((*result).Sup.reserved & ((NI) 1073741823)));
3918 result = rawNewStringNoInit(r);
3919 (*result).Sup.len = (*s).Sup.len;
3920 copyMem__system_1727(((void*) ((&(*result).data[((NI) 0)]))), ((void*) ((&(*s).data[((NI) 0)]))), ((NI) ((NI)((*s).Sup.len + ((NI) 1)))));
3921 (*result).Sup.reserved = r;
3922 }
3923 LA8_: ;
3924 }
3925 LA1_: ;
3926 (*result).data[(*result).Sup.len] = c;
3927 (*result).data[(NI)((*result).Sup.len + ((NI) 1))] = 0;
3928 (*result).Sup.len += ((NI) 1);
3929 return result;
3930 }
N_NIMCALL(tyObject_GcStack__7fytPA5bBsob6See21YMRA *,getActiveStack__system_5398)3931 N_LIB_PRIVATE N_NIMCALL(tyObject_GcStack__7fytPA5bBsob6See21YMRA*, getActiveStack__system_5398)(tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ* gch) {
3932 tyObject_GcStack__7fytPA5bBsob6See21YMRA* result;
3933 result = (tyObject_GcStack__7fytPA5bBsob6See21YMRA*)0;
3934 result = (&(*gch).stack);
3935 return result;
3936 }
N_NOINLINE(NIM_BOOL,isOnStack__system_5288)3937 N_LIB_PRIVATE N_NOINLINE(NIM_BOOL, isOnStack__system_5288)(void* p) {
3938 NIM_BOOL result;
3939 void* volatile stackTop;
3940 NI a;
3941 tyObject_GcStack__7fytPA5bBsob6See21YMRA* T1_;
3942 NI b;
3943 NI T2_;
3944 NI x;
3945 NIM_BOOL T3_;
3946 result = (NIM_BOOL)0;
3947 stackTop = ((void*) ((&stackTop)));
3948 T1_ = (tyObject_GcStack__7fytPA5bBsob6See21YMRA*)0;
3949 T1_ = getActiveStack__system_5398((&gch__system_5209));
3950 a = ((NI) (ptrdiff_t) ((*T1_).bottom));
3951 b = ((NI) (ptrdiff_t) (stackTop));
3952 T2_ = (NI)0;
3953 T2_ = a;
3954 a = b;
3955 b = T2_;
3956 x = ((NI) (ptrdiff_t) (p));
3957 T3_ = (NIM_BOOL)0;
3958 T3_ = lteqpercent___system_985(a, x);
3959 if (!(T3_)) goto LA4_;
3960 T3_ = lteqpercent___system_985(x, b);
3961 LA4_: ;
3962 result = T3_;
3963 return result;
3964 }
N_NIMCALL(void,unsureAsgnRef)3965 N_LIB_PRIVATE N_NIMCALL(void, unsureAsgnRef)(void** dest, void* src) {
3966 {
3967 NIM_BOOL T3_;
3968 T3_ = (NIM_BOOL)0;
3969 T3_ = isOnStack__system_5288(((void*) (dest)));
3970 if (!!(T3_)) goto LA4_;
3971 {
3972 tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T10_;
3973 if (!!((src == NIM_NIL))) goto LA8_;
3974 T10_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
3975 T10_ = usrToCell__system_5262(src);
3976 incRef__system_5300(T10_);
3977 }
3978 LA8_: ;
3979 {
3980 NIM_BOOL T13_;
3981 tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T16_;
3982 T13_ = (NIM_BOOL)0;
3983 T13_ = lteqpercent___system_985(((NI) 4096), ((NI) (ptrdiff_t) ((*dest))));
3984 if (!T13_) goto LA14_;
3985 T16_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
3986 T16_ = usrToCell__system_5262((*dest));
3987 decRef__system_5307(T16_);
3988 }
3989 LA14_: ;
3990 }
3991 goto LA1_;
3992 LA4_: ;
3993 {
3994 }
3995 LA1_: ;
3996 (*dest) = src;
3997 }
N_NIMCALL(void,add__system_2308)3998 N_LIB_PRIVATE N_NIMCALL(void, add__system_2308)(NimStringDesc** x, NCSTRING y) {
3999 NI i;
4000 i = ((NI) 0);
4001 {
4002 if (!!((((void*) (y)) == NIM_NIL))) goto LA3_;
4003 {
4004 while (1) {
4005 if (!!(((NU8)(y[i]) == (NU8)(0)))) goto LA6;
4006 unsureAsgnRef((void**) (&(*x)), addChar((*x), y[i]));
4007 i += ((NI) 1);
4008 } LA6: ;
4009 }
4010 }
4011 LA3_: ;
4012 }
N_NIMCALL(NimStringDesc *,mnewString)4013 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, mnewString)(NI len) {
4014 NimStringDesc* result;
4015 result = (NimStringDesc*)0;
4016 result = rawNewString(len);
4017 (*result).Sup.len = len;
4018 return result;
4019 }
N_NIMCALL(NimStringDesc *,setLengthStr)4020 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, setLengthStr)(NimStringDesc* s, NI newLen) {
4021 NimStringDesc* result;
4022 NI n;
4023 result = (NimStringDesc*)0;
4024 n = ((newLen >= ((NI) 0)) ? newLen : ((NI) 0));
4025 {
4026 if (!(s == ((NimStringDesc*) NIM_NIL))) goto LA3_;
4027 result = mnewString(newLen);
4028 }
4029 goto LA1_;
4030 LA3_: ;
4031 {
4032 if (!(n <= (NI)((*s).Sup.reserved & ((NI) 1073741823)))) goto LA6_;
4033 result = s;
4034 }
4035 goto LA1_;
4036 LA6_: ;
4037 {
4038 NI sp;
4039 NI T9_;
4040 T9_ = (NI)0;
4041 T9_ = resize__system_5866((NI)((*s).Sup.reserved & ((NI) 1073741823)));
4042 sp = ((T9_ >= newLen) ? T9_ : newLen);
4043 result = rawNewStringNoInit(sp);
4044 (*result).Sup.len = (*s).Sup.len;
4045 copyMem__system_1727(((void*) ((&(*result).data[((NI) 0)]))), ((void*) ((&(*s).data[((NI) 0)]))), ((NI) ((NI)((*s).Sup.len + ((NI) 1)))));
4046 zeroMem__system_1724(((void*) ((&(*result).data[(*s).Sup.len]))), ((NI) ((NI)(newLen - (*s).Sup.len))));
4047 (*result).Sup.reserved = sp;
4048 }
4049 LA1_: ;
4050 (*result).Sup.len = n;
4051 (*result).data[n] = 0;
4052 return result;
4053 }
N_INLINE(void,addInt__stdZprivateZdigitsutils_189)4054 static N_INLINE(void, addInt__stdZprivateZdigitsutils_189)(NimStringDesc** result, NI x) {
4055 addInt__stdZprivateZdigitsutils_167(result, ((NI64) (x)));
4056 }
N_NIMCALL(NimStringDesc *,dollar___system_2723)4057 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___system_2723)(tySequence__uB9b75OUPRENsBAu4AnoePA* stackTraceEntries) {
4058 NimStringDesc* result;
4059 tySequence__uB9b75OUPRENsBAu4AnoePA* s;
4060 result = NIM_NIL;
4061 s = stackTraceEntries;
4062 result = rawNewString(((NI) 2000));
4063 {
4064 NI i;
4065 NI colontmp_;
4066 NI T2_;
4067 NI res;
4068 i = (NI)0;
4069 colontmp_ = (NI)0;
4070 T2_ = (s ? s->Sup.len : 0);
4071 colontmp_ = (NI)(T2_ - ((NI) 1));
4072 res = ((NI) 0);
4073 {
4074 while (1) {
4075 if (!(res <= colontmp_)) goto LA4;
4076 i = res;
4077 {
4078 if (!(s->data[i].line == ((NI) -10))) goto LA7_;
4079 result = resizeString(result, 17);
4080 appendString(result, ((NimStringDesc*) &TM__Q5wkpxktOdTGvlSRo9bzt9aw_9));
4081 }
4082 goto LA5_;
4083 LA7_: ;
4084 {
4085 if (!(s->data[i].line == ((NI) -100))) goto LA10_;
4086 result = resizeString(result, 3);
4087 appendString(result, ((NimStringDesc*) &TM__Q5wkpxktOdTGvlSRo9bzt9aw_10));
4088 }
4089 goto LA5_;
4090 LA10_: ;
4091 {
4092 NI oldLenX60gensym69_;
4093 oldLenX60gensym69_ = (result ? result->Sup.len : 0);
4094 add__system_2308((&result), s->data[i].filename);
4095 {
4096 if (!(((NI) 0) < s->data[i].line)) goto LA15_;
4097 result = resizeString(result, 1);
4098 appendString(result, ((NimStringDesc*) &TM__Q5wkpxktOdTGvlSRo9bzt9aw_11));
4099 addInt__stdZprivateZdigitsutils_189((&result), s->data[i].line);
4100 {
4101 if (!NIM_FALSE) goto LA19_;
4102 result = resizeString(result, 2);
4103 appendString(result, ((NimStringDesc*) &TM__Q5wkpxktOdTGvlSRo9bzt9aw_12));
4104 addInt__stdZprivateZdigitsutils_189((&result), ((NI) 0));
4105 }
4106 LA19_: ;
4107 result = resizeString(result, 1);
4108 appendString(result, ((NimStringDesc*) &TM__Q5wkpxktOdTGvlSRo9bzt9aw_13));
4109 }
4110 LA15_: ;
4111 {
4112 NI kX60gensym69_;
4113 NI colontmp__2;
4114 NI res_2;
4115 kX60gensym69_ = (NI)0;
4116 colontmp__2 = (NI)0;
4117 colontmp__2 = ((((NI) 1) >= (NI)(((NI) 25) - (NI)((result ? result->Sup.len : 0) - oldLenX60gensym69_))) ? ((NI) 1) : (NI)(((NI) 25) - (NI)((result ? result->Sup.len : 0) - oldLenX60gensym69_)));
4118 res_2 = ((NI) 1);
4119 {
4120 while (1) {
4121 if (!(res_2 <= colontmp__2)) goto LA23;
4122 kX60gensym69_ = res_2;
4123 result = addChar(result, 32);
4124 res_2 += ((NI) 1);
4125 } LA23: ;
4126 }
4127 }
4128 add__system_2308((&result), s->data[i].procname);
4129 result = resizeString(result, 1);
4130 appendString(result, ((NimStringDesc*) &TM__Q5wkpxktOdTGvlSRo9bzt9aw_14));
4131 }
4132 LA5_: ;
4133 res += ((NI) 1);
4134 } LA4: ;
4135 }
4136 }
4137 return result;
4138 }
N_INLINE(NCSTRING,nimToCStringConv)4139 static N_INLINE(NCSTRING, nimToCStringConv)(NimStringDesc* s) {
4140 NCSTRING result;
4141 result = (NCSTRING)0;
4142 {
4143 NIM_BOOL T3_;
4144 T3_ = (NIM_BOOL)0;
4145 T3_ = (s == ((NimStringDesc*) NIM_NIL));
4146 if (T3_) goto LA4_;
4147 T3_ = ((*s).Sup.len == ((NI) 0));
4148 LA4_: ;
4149 if (!T3_) goto LA5_;
4150 result = "";
4151 }
4152 goto LA1_;
4153 LA5_: ;
4154 {
4155 result = ((NCSTRING) ((*s).data));
4156 }
4157 LA1_: ;
4158 return result;
4159 }
N_NIMCALL(void,reportUnhandledErrorAux__system_2752)4160 N_LIB_PRIVATE N_NIMCALL(void, reportUnhandledErrorAux__system_2752)(Exception* e) {
4161 tyArray__gpc2RrLEcWgv7ONpLYNHOw buf;
4162 NI L;
4163 nimZeroMem((void*)buf, sizeof(tyArray__gpc2RrLEcWgv7ONpLYNHOw));
4164 L = ((NI) 0);
4165 {
4166 NI T3_;
4167 NimStringDesc* trace;
4168 T3_ = ((*e).trace ? (*e).trace->Sup.len : 0);
4169 if (!!((T3_ == ((NI) 0)))) goto LA4_;
4170 trace = dollar___system_2723((*e).trace);
4171 {
4172 if (!((NI)(L + (trace ? trace->Sup.len : 0)) < ((NI) 2000))) goto LA8_;
4173 copyMem__system_1727(((void*) ((&buf[(L)- 0]))), ((void*) (nimToCStringConv(trace))), ((NI) ((trace ? trace->Sup.len : 0))));
4174 L += (trace ? trace->Sup.len : 0);
4175 }
4176 LA8_: ;
4177 eqdestroy___systemZassertions_23((&trace));
4178 }
4179 LA4_: ;
4180 {
4181 if (!((NI)(L + ((NI) 28)) < ((NI) 2000))) goto LA12_;
4182 copyMem__system_1727(((void*) ((&buf[(L)- 0]))), ((void*) ("Error: unhandled exception: ")), ((NI) 28));
4183 L += ((NI) 28);
4184 }
4185 LA12_: ;
4186 {
4187 if (!((NI)(L + ((*e).message ? (*e).message->Sup.len : 0)) < ((NI) 2000))) goto LA16_;
4188 copyMem__system_1727(((void*) ((&buf[(L)- 0]))), ((void*) (nimToCStringConv((*e).message))), ((NI) (((*e).message ? (*e).message->Sup.len : 0))));
4189 L += ((*e).message ? (*e).message->Sup.len : 0);
4190 }
4191 LA16_: ;
4192 {
4193 if (!((NI)(L + ((NI) 2)) < ((NI) 2000))) goto LA20_;
4194 copyMem__system_1727(((void*) ((&buf[(L)- 0]))), ((void*) (" [")), ((NI) 2));
4195 L += ((NI) 2);
4196 }
4197 LA20_: ;
4198 {
4199 if (!((NI)(L + ((*e).name ? nimCStrLen((*e).name) : 0)) < ((NI) 2000))) goto LA24_;
4200 copyMem__system_1727(((void*) ((&buf[(L)- 0]))), ((void*) ((*e).name)), ((NI) (((*e).name ? nimCStrLen((*e).name) : 0))));
4201 L += ((*e).name ? nimCStrLen((*e).name) : 0);
4202 }
4203 LA24_: ;
4204 {
4205 if (!((NI)(L + ((NI) 2)) < ((NI) 2000))) goto LA28_;
4206 copyMem__system_1727(((void*) ((&buf[(L)- 0]))), ((void*) ("]\012")), ((NI) 2));
4207 L += ((NI) 2);
4208 }
4209 LA28_: ;
4210 {
4211 NimStringDesc* T34_;
4212 if (!!((onUnhandledException__system_2751 == NIM_NIL))) goto LA32_;
4213 T34_ = NIM_NIL;
4214 T34_ = cstrToNimstr(((NCSTRING) (buf)));
4215 onUnhandledException__system_2751(T34_);
4216 }
4217 goto LA30_;
4218 LA32_: ;
4219 {
4220 showErrorMessage__system_2536(((NCSTRING) (buf)), L);
4221 }
4222 LA30_: ;
4223 }
N_NIMCALL(void,reportUnhandledError__system_2855)4224 N_LIB_PRIVATE N_NIMCALL(void, reportUnhandledError__system_2855)(Exception* e) {
4225 {
4226 if (!!((unhandledExceptionHook__system_2299 == NIM_NIL))) goto LA3_;
4227 unhandledExceptionHook__system_2299(e);
4228 }
4229 LA3_: ;
4230 reportUnhandledErrorAux__system_2752(e);
4231 }
N_NIMCALL(void,raiseExceptionAux__system_2866)4232 N_LIB_PRIVATE N_NIMCALL(void, raiseExceptionAux__system_2866)(Exception* e) {
4233 { {
4234 if (!!((localRaiseHook__system_2294 == NIM_NIL))) goto LA3_;
4235 {
4236 NIM_BOOL T7_;
4237 T7_ = (NIM_BOOL)0;
4238 T7_ = localRaiseHook__system_2294(e);
4239 if (!!(T7_)) goto LA8_;
4240 goto BeforeRet_;
4241 }
4242 LA8_: ;
4243 }
4244 LA3_: ;
4245 {
4246 if (!!((globalRaiseHook__system_2291 == NIM_NIL))) goto LA12_;
4247 {
4248 NIM_BOOL T16_;
4249 T16_ = (NIM_BOOL)0;
4250 T16_ = globalRaiseHook__system_2291(e);
4251 if (!!(T16_)) goto LA17_;
4252 goto BeforeRet_;
4253 }
4254 LA17_: ;
4255 }
4256 LA12_: ;
4257 {
4258 if (!!((excHandler__system_2565 == ((TSafePoint*) NIM_NIL)))) goto LA21_;
4259 pushCurrentException(e);
4260 _longjmp((*excHandler__system_2565).context, ((int) 1));
4261 }
4262 goto LA19_;
4263 LA21_: ;
4264 {
4265 reportUnhandledError__system_2855(e);
4266 exit(((NI) 1));
4267 }
4268 LA19_: ;
4269 }BeforeRet_: ;
4270 }
N_NIMCALL(void,raiseExceptionEx)4271 N_LIB_PRIVATE N_NIMCALL(void, raiseExceptionEx)(Exception* e, NCSTRING ename, NCSTRING procname, NCSTRING filename, NI line) {
4272 {
4273 if (!((*e).name == 0)) goto LA3_;
4274 (*e).name = ename;
4275 }
4276 LA3_: ;
4277 {
4278 NIM_BOOL T7_;
4279 tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA T11_;
4280 NI T12_;
4281 T7_ = (NIM_BOOL)0;
4282 T7_ = !((((void*) (procname)) == NIM_NIL));
4283 if (!(T7_)) goto LA8_;
4284 T7_ = !((((void*) (filename)) == NIM_NIL));
4285 LA8_: ;
4286 if (!T7_) goto LA9_;
4287 nimZeroMem((void*)(&T11_), sizeof(tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA));
4288 T11_.procname = procname;
4289 T11_.filename = filename;
4290 T11_.line = line;
4291 asgnRef((void**) (&(*e).trace), (tySequence__uB9b75OUPRENsBAu4AnoePA*) incrSeqV3((TGenericSeq*)((*e).trace), (&NTIseqLstacktraceentryT__uB9b75OUPRENsBAu4AnoePA_)));
4292 T12_ = (*e).trace->Sup.len++;
4293 (*e).trace->data[T12_] = T11_;
4294 }
4295 LA9_: ;
4296 raiseExceptionAux__system_2866(e);
4297 }
N_INLINE(void,sysFatal__system_2898)4298 static N_INLINE(void, sysFatal__system_2898)(NimStringDesc* message) {
4299 tyObject_ReraiseDefect__E0L0wGYS1gPD81VLstNO2g* T1_;
4300 NimStringDesc* T2_;
4301 T1_ = NIM_NIL;
4302 T1_ = (tyObject_ReraiseDefect__E0L0wGYS1gPD81VLstNO2g*) newObj((&NTIrefreraisedefect__uG62cfJZ15c2siK3CKLmnQ_), sizeof(tyObject_ReraiseDefect__E0L0wGYS1gPD81VLstNO2g));
4303 (*T1_).Sup.Sup.Sup.m_type = (&NTIreraisedefect__E0L0wGYS1gPD81VLstNO2g_);
4304 (*T1_).Sup.Sup.name = "ReraiseDefect";
4305 T2_ = NIM_NIL;
4306 T2_ = (*T1_).Sup.Sup.message; (*T1_).Sup.Sup.message = copyStringRC1(message);
4307 if (T2_) nimGCunrefNoCycle(T2_);
4308 raiseExceptionEx((Exception*)T1_, "ReraiseDefect", "sysFatal", "fatal.nim", 53);
4309 }
N_NIMCALL(void,reraiseException)4310 N_LIB_PRIVATE N_NIMCALL(void, reraiseException)(void) {
4311 {
4312 if (!(currException__system_2566 == ((Exception*) NIM_NIL))) goto LA3_;
4313 sysFatal__system_2898(((NimStringDesc*) &TM__Q5wkpxktOdTGvlSRo9bzt9aw_15));
4314 }
4315 goto LA1_;
4316 LA3_: ;
4317 {
4318 raiseExceptionAux__system_2866(currException__system_2566);
4319 }
4320 LA1_: ;
4321 }
N_INLINE(void,rawWriteString)4322 static N_INLINE(void, rawWriteString)(FILE* f, NCSTRING s, NI length) {
4323 int T1_;
4324 int T2_;
4325 T1_ = (int)0;
4326 T1_ = fwrite(((void*) (s)), ((size_t) 1), ((size_t) (length)), f);
4327 (void)(T1_);
4328 T2_ = (int)0;
4329 T2_ = fflush(f);
4330 (void)(T2_);
4331 }
N_NIMCALL(void,writeToStdErr__system_2531)4332 N_LIB_PRIVATE N_NIMCALL(void, writeToStdErr__system_2531)(NCSTRING msg, NI length) {
4333 rawWriteString(stderr, msg, length);
4334 }
N_NIMCALL(void,showErrorMessage__system_2536)4335 N_LIB_PRIVATE N_NIMCALL(void, showErrorMessage__system_2536)(NCSTRING data, NI length) {
4336 NIM_BOOL volatile toWrite;
4337 toWrite = NIM_TRUE;
4338 {
4339 TSafePoint TM__Q5wkpxktOdTGvlSRo9bzt9aw_5;
4340 NimStringDesc* T5_;
4341 if (!!((errorMessageWriter__system_2528 == NIM_NIL))) goto LA3_;
4342 pushSafePoint(&TM__Q5wkpxktOdTGvlSRo9bzt9aw_5);
4343 TM__Q5wkpxktOdTGvlSRo9bzt9aw_5.status = _setjmp(TM__Q5wkpxktOdTGvlSRo9bzt9aw_5.context);
4344 if (TM__Q5wkpxktOdTGvlSRo9bzt9aw_5.status == 0) {
4345 T5_ = NIM_NIL;
4346 T5_ = cstrToNimstr(data);
4347 errorMessageWriter__system_2528(T5_);
4348 toWrite = NIM_FALSE;
4349 popSafePoint();
4350 }
4351 else {
4352 popSafePoint();
4353 {
4354 TM__Q5wkpxktOdTGvlSRo9bzt9aw_5.status = 0;
4355 popCurrentException();
4356 }
4357 }
4358 if (TM__Q5wkpxktOdTGvlSRo9bzt9aw_5.status != 0) reraiseException();
4359 }
4360 LA3_: ;
4361 {
4362 if (!toWrite) goto LA10_;
4363 writeToStdErr__system_2531(data, length);
4364 }
4365 LA10_: ;
4366 }
N_NOCONV(void,signalHandler)4367 N_LIB_PRIVATE N_NOCONV(void, signalHandler)(int sign) {
4368 NCSTRING msg;
4369 tyProc__ZEo3s9cIqJYP74f7GMZM2FA T26_;
4370 int T27_;
4371 msg = (NCSTRING)0;
4372 {
4373 if (!(sign == ((int) 2))) goto LA3_;
4374 msg = "SIGINT: Interrupted by Ctrl-C.\012";
4375 }
4376 goto LA1_;
4377 LA3_: ;
4378 {
4379 if (!(sign == ((int) 11))) goto LA6_;
4380 msg = "SIGSEGV: Illegal storage access. (Attempt to read from nil\?)\012";
4381 }
4382 goto LA1_;
4383 LA6_: ;
4384 {
4385 if (!(sign == ((int) 6))) goto LA9_;
4386 msg = "SIGABRT: Abnormal termination.\012";
4387 }
4388 goto LA1_;
4389 LA9_: ;
4390 {
4391 if (!(sign == ((int) 8))) goto LA12_;
4392 msg = "SIGFPE: Arithmetic error.\012";
4393 }
4394 goto LA1_;
4395 LA12_: ;
4396 {
4397 if (!(sign == ((int) 4))) goto LA15_;
4398 msg = "SIGILL: Illegal operation.\012";
4399 }
4400 goto LA1_;
4401 LA15_: ;
4402 {
4403 if (!NIM_FALSE) goto LA18_;
4404 msg = "SIGBUS: Illegal storage access. (Attempt to read from nil\?)\012";
4405 }
4406 goto LA1_;
4407 LA18_: ;
4408 {
4409 {
4410 {
4411 if (!(sign == ((int) 13))) goto LA24_;
4412 msg = "SIGPIPE: Pipe closed.\012";
4413 goto LA21;
4414 }
4415 LA24_: ;
4416 msg = "unknown signal\012";
4417 } LA21: ;
4418 }
4419 LA1_: ;
4420 showErrorMessage__system_2536(msg, (msg ? nimCStrLen(msg) : 0));
4421 T26_ = (tyProc__ZEo3s9cIqJYP74f7GMZM2FA)0;
4422 T26_ = signal(sign, ((tyProc__ZEo3s9cIqJYP74f7GMZM2FA) 0));
4423 T27_ = (int)0;
4424 T27_ = raise(sign);
4425 (void)(T27_);
4426 }
N_NIMCALL(void,registerSignalHandler__system_2992)4427 N_LIB_PRIVATE N_NIMCALL(void, registerSignalHandler__system_2992)(void) {
4428 tyProc__ZEo3s9cIqJYP74f7GMZM2FA T1_;
4429 tyProc__ZEo3s9cIqJYP74f7GMZM2FA T2_;
4430 tyProc__ZEo3s9cIqJYP74f7GMZM2FA T3_;
4431 tyProc__ZEo3s9cIqJYP74f7GMZM2FA T4_;
4432 tyProc__ZEo3s9cIqJYP74f7GMZM2FA T5_;
4433 tyProc__ZEo3s9cIqJYP74f7GMZM2FA T6_;
4434 T1_ = (tyProc__ZEo3s9cIqJYP74f7GMZM2FA)0;
4435 T1_ = signal(((int) 2), signalHandler);
4436 T2_ = (tyProc__ZEo3s9cIqJYP74f7GMZM2FA)0;
4437 T2_ = signal(((int) 11), signalHandler);
4438 T3_ = (tyProc__ZEo3s9cIqJYP74f7GMZM2FA)0;
4439 T3_ = signal(((int) 6), signalHandler);
4440 T4_ = (tyProc__ZEo3s9cIqJYP74f7GMZM2FA)0;
4441 T4_ = signal(((int) 8), signalHandler);
4442 T5_ = (tyProc__ZEo3s9cIqJYP74f7GMZM2FA)0;
4443 T5_ = signal(((int) 4), signalHandler);
4444 T6_ = (tyProc__ZEo3s9cIqJYP74f7GMZM2FA)0;
4445 T6_ = signal(((int) 13), SIG_IGN);
4446 }
N_NIMCALL(NI,getRefcount)4447 N_LIB_PRIVATE N_NIMCALL(NI, getRefcount)(void* p) {
4448 NI result;
4449 tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T1_;
4450 result = (NI)0;
4451 T1_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
4452 T1_ = usrToCell__system_5262(p);
4453 result = (NI)((NI32)((*T1_).refcount) >> (NU32)(((NI) 3)));
4454 return result;
4455 }
N_NIMCALL(void,nimRegisterGlobalMarker)4456 N_LIB_PRIVATE N_NIMCALL(void, nimRegisterGlobalMarker)(tyProc__T4eqaYlFJYZUv9aG9b1TV0bQ markerProc) {
4457 {
4458 if (!(globalMarkersLen <= ((NI) 3499))) goto LA3_;
4459 globalMarkers[(globalMarkersLen)- 0] = markerProc;
4460 globalMarkersLen += ((NI) 1);
4461 }
4462 goto LA1_;
4463 LA3_: ;
4464 {
4465 rawWrite(stderr, "[GC] cannot register global variable; too many global variables");
4466 exit(((NI) 1));
4467 }
4468 LA1_: ;
4469 }
N_NIMCALL(NimStringDesc *,reprEnum)4470 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, reprEnum)(NI e, TNimType* typ) {
4471 NimStringDesc* result;
4472 TNimNode* n;
4473 NimStringDesc* T19_;
4474 NimStringDesc* T20_;
4475 { result = NIM_NIL;
4476 n = (*typ).node;
4477 {
4478 NI o;
4479 if (!!((((*typ).flags &((NU8)1<<((NU)(((tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ) 2))&7U)))!=0))) goto LA3_;
4480 o = (NI)(e - (*(*n).sons[(((NI) 0))- 0]).offset);
4481 {
4482 NIM_BOOL T7_;
4483 T7_ = (NIM_BOOL)0;
4484 T7_ = (((NI) 0) <= o);
4485 if (!(T7_)) goto LA8_;
4486 T7_ = ltpercent___system_1005(o, (*(*typ).node).len);
4487 LA8_: ;
4488 if (!T7_) goto LA9_;
4489 result = cstrToNimstr((*(*n).sons[(o)- 0]).name);
4490 goto BeforeRet_;
4491 }
4492 LA9_: ;
4493 }
4494 goto LA1_;
4495 LA3_: ;
4496 {
4497 TNimNode** s;
4498 s = (*n).sons;
4499 {
4500 NI i;
4501 NI colontmp_;
4502 NI res;
4503 i = (NI)0;
4504 colontmp_ = (NI)0;
4505 colontmp_ = (NI)((*n).len - ((NI) 1));
4506 res = ((NI) 0);
4507 {
4508 while (1) {
4509 if (!(res <= colontmp_)) goto LA14;
4510 i = res;
4511 {
4512 if (!((*s[(i)- 0]).offset == e)) goto LA17_;
4513 result = cstrToNimstr((*s[(i)- 0]).name);
4514 goto BeforeRet_;
4515 }
4516 LA17_: ;
4517 res += ((NI) 1);
4518 } LA14: ;
4519 }
4520 }
4521 }
4522 LA1_: ;
4523 T19_ = NIM_NIL;
4524 T20_ = NIM_NIL;
4525 T20_ = dollar___systemZdollars_3(e);
4526 T19_ = rawNewString((T20_ ? T20_->Sup.len : 0) + 16);
4527 appendString(T19_, T20_);
4528 appendString(T19_, ((NimStringDesc*) &TM__Q5wkpxktOdTGvlSRo9bzt9aw_16));
4529 result = T19_;
4530 }BeforeRet_: ;
4531 return result;
4532 }
N_NIMCALL(void,Marker_tyRef__8SzoIAgLw9ci2v0yafHj9b6Q)4533 static N_NIMCALL(void, Marker_tyRef__8SzoIAgLw9ci2v0yafHj9b6Q)(void* p, NI op) {
4534 tyObject_KeyError__t7nhKLvXTQS9cS8ByJU9bIag* a;
4535 a = (tyObject_KeyError__t7nhKLvXTQS9cS8ByJU9bIag*)p;
4536 nimGCvisit((void*)(*a).Sup.Sup.Sup.parent, op);
4537 nimGCvisit((void*)(*a).Sup.Sup.Sup.message, op);
4538 nimGCvisit((void*)(*a).Sup.Sup.Sup.trace, op);
4539 nimGCvisit((void*)(*a).Sup.Sup.Sup.up, op);
4540 }
N_NIMCALL(NimStringDesc *,copyString)4541 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, copyString)(NimStringDesc* src) {
4542 NimStringDesc* result;
4543 result = (NimStringDesc*)0;
4544 {
4545 if (!!((src == ((NimStringDesc*) NIM_NIL)))) goto LA3_;
4546 {
4547 if (!!(((NI)((*src).Sup.reserved & ((NI) (-2147483647 -1))) == ((NI) 0)))) goto LA7_;
4548 result = src;
4549 }
4550 goto LA5_;
4551 LA7_: ;
4552 {
4553 result = rawNewStringNoInit((*src).Sup.len);
4554 (*result).Sup.len = (*src).Sup.len;
4555 copyMem__system_1727(((void*) ((*result).data)), ((void*) ((*src).data)), ((NI) ((NI)((*src).Sup.len + ((NI) 1)))));
4556 }
4557 LA5_: ;
4558 }
4559 LA3_: ;
4560 return result;
4561 }
N_NIMCALL(void *,dataPointer__system_5860)4562 N_LIB_PRIVATE N_NIMCALL(void*, dataPointer__system_5860)(TGenericSeq* a, NI elemAlign, NI elemSize, NI index) {
4563 void* result;
4564 NI T1_;
4565 NI T2_;
4566 NI T3_;
4567 NI T4_;
4568 result = (void*)0;
4569 T1_ = (NI)0;
4570 T1_ = align__system_1624(((NI) 8), elemAlign);
4571 T2_ = (NI)0;
4572 T2_ = pluspercent___system_696(((NI) (ptrdiff_t) (a)), T1_);
4573 T3_ = (NI)0;
4574 T3_ = starpercent___system_736(index, elemSize);
4575 T4_ = (NI)0;
4576 T4_ = pluspercent___system_696(T2_, T3_);
4577 result = ((void*) (T4_));
4578 return result;
4579 }
N_NIMCALL(TNimType *,extGetCellType)4580 N_LIB_PRIVATE N_NIMCALL(TNimType*, extGetCellType)(void* c) {
4581 TNimType* result;
4582 tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T1_;
4583 result = (TNimType*)0;
4584 T1_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
4585 T1_ = usrToCell__system_5262(c);
4586 result = (*T1_).typ;
4587 return result;
4588 }
N_NIMCALL(TGenericSeq *,setLengthSeqV2)4589 N_LIB_PRIVATE N_NIMCALL(TGenericSeq*, setLengthSeqV2)(TGenericSeq* s, TNimType* typ, NI newLen) {
4590 TGenericSeq* result;
4591 result = (TGenericSeq*)0;
4592 {
4593 void* T5_;
4594 if (!(s == ((TGenericSeq*) NIM_NIL))) goto LA3_;
4595 T5_ = (void*)0;
4596 T5_ = newSeq(typ, newLen);
4597 result = ((TGenericSeq*) (T5_));
4598 }
4599 goto LA1_;
4600 LA3_: ;
4601 {
4602 NI elemSize;
4603 NI elemAlign;
4604 elemSize = (*(*typ).base).size;
4605 elemAlign = (*(*typ).base).align;
4606 {
4607 NI r;
4608 NI T11_;
4609 void* T12_;
4610 void* T13_;
4611 void* T14_;
4612 if (!((NI)((*s).reserved & ((NI) 1073741823)) < newLen)) goto LA9_;
4613 T11_ = (NI)0;
4614 T11_ = resize__system_5866((NI)((*s).reserved & ((NI) 1073741823)));
4615 r = ((T11_ >= newLen) ? T11_ : newLen);
4616 T12_ = (void*)0;
4617 T12_ = newSeq(typ, r);
4618 result = ((TGenericSeq*) (T12_));
4619 T13_ = (void*)0;
4620 T13_ = dataPointer__system_5856(result, elemAlign);
4621 T14_ = (void*)0;
4622 T14_ = dataPointer__system_5856(s, elemAlign);
4623 copyMem__system_1727(T13_, T14_, ((NI) ((NI)((*s).len * elemSize))));
4624 (*s).len = ((NI) 0);
4625 }
4626 goto LA7_;
4627 LA9_: ;
4628 {
4629 void* T27_;
4630 NI T28_;
4631 NI T29_;
4632 if (!(newLen < (*s).len)) goto LA16_;
4633 result = s;
4634 {
4635 if (!!((((*(*typ).base).flags &((NU8)1<<((NU)(((tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ) 0))&7U)))!=0))) goto LA20_;
4636 {
4637 NI i;
4638 NI colontmp_;
4639 NI res;
4640 i = (NI)0;
4641 colontmp_ = (NI)0;
4642 colontmp_ = (NI)((*result).len - ((NI) 1));
4643 res = newLen;
4644 {
4645 while (1) {
4646 void* T25_;
4647 TNimType* T26_;
4648 if (!(res <= colontmp_)) goto LA24;
4649 i = res;
4650 T25_ = (void*)0;
4651 T25_ = dataPointer__system_5860(result, elemAlign, elemSize, i);
4652 T26_ = (TNimType*)0;
4653 T26_ = extGetCellType(((void*) (result)));
4654 forAllChildrenAux__system_5296(T25_, (*T26_).base, ((tyEnum_WalkOp__Wfy7gT5VQ8B3aJBxqU8D9cQ) 2));
4655 res += ((NI) 1);
4656 } LA24: ;
4657 }
4658 }
4659 }
4660 LA20_: ;
4661 T27_ = (void*)0;
4662 T27_ = dataPointer__system_5860(result, elemAlign, elemSize, newLen);
4663 T28_ = (NI)0;
4664 T28_ = minuspercent___system_716((*result).len, newLen);
4665 T29_ = (NI)0;
4666 T29_ = starpercent___system_736(T28_, elemSize);
4667 zeroMem__system_1724(T27_, ((NI) (T29_)));
4668 }
4669 goto LA7_;
4670 LA16_: ;
4671 {
4672 void* T31_;
4673 NI T32_;
4674 NI T33_;
4675 result = s;
4676 T31_ = (void*)0;
4677 T31_ = dataPointer__system_5860(result, elemAlign, elemSize, (*result).len);
4678 T32_ = (NI)0;
4679 T32_ = minuspercent___system_716(newLen, (*result).len);
4680 T33_ = (NI)0;
4681 T33_ = starpercent___system_736(T32_, elemSize);
4682 zeroMem__system_1724(T31_, ((NI) (T33_)));
4683 }
4684 LA7_: ;
4685 (*result).len = newLen;
4686 }
4687 LA1_: ;
4688 return result;
4689 }
N_NIMCALL(void,Marker_tyRef__S8DV6hfcgC9c0IiUsAoR29cQ)4690 static N_NIMCALL(void, Marker_tyRef__S8DV6hfcgC9c0IiUsAoR29cQ)(void* p, NI op) {
4691 tyObject_AssertionDefect__PtYxPmY5X0dorfvxAFbJpQ* a;
4692 a = (tyObject_AssertionDefect__PtYxPmY5X0dorfvxAFbJpQ*)p;
4693 nimGCvisit((void*)(*a).Sup.Sup.parent, op);
4694 nimGCvisit((void*)(*a).Sup.Sup.message, op);
4695 nimGCvisit((void*)(*a).Sup.Sup.trace, op);
4696 nimGCvisit((void*)(*a).Sup.Sup.up, op);
4697 }
N_NIMCALL(NimStringDesc *,substr__system_7713)4698 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, substr__system_7713)(NimStringDesc* s, NI first, NI last) {
4699 NimStringDesc* result;
4700 NI first_2;
4701 NI L;
4702 result = NIM_NIL;
4703 first_2 = ((first >= ((NI) 0)) ? first : ((NI) 0));
4704 L = (((NI)((NI)(((last <= ((s ? s->Sup.len : 0)-1)) ? last : ((s ? s->Sup.len : 0)-1)) - first_2) + ((NI) 1)) >= ((NI) 0)) ? (NI)((NI)(((last <= ((s ? s->Sup.len : 0)-1)) ? last : ((s ? s->Sup.len : 0)-1)) - first_2) + ((NI) 1)) : ((NI) 0));
4705 result = mnewString(((NI) (L)));
4706 {
4707 NI i;
4708 NI colontmp_;
4709 NI res;
4710 i = (NI)0;
4711 colontmp_ = (NI)0;
4712 colontmp_ = (NI)(L - ((NI) 1));
4713 res = ((NI) 0);
4714 {
4715 while (1) {
4716 if (!(res <= colontmp_)) goto LA3;
4717 i = res;
4718 result->data[i] = s->data[(NI)(i + first_2)];
4719 res += ((NI) 1);
4720 } LA3: ;
4721 }
4722 }
4723 return result;
4724 }
N_NIMCALL(NimStringDesc *,nimCharToStr)4725 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nimCharToStr)(NIM_CHAR x) {
4726 NimStringDesc* result;
4727 result = NIM_NIL;
4728 result = mnewString(((NI) 1));
4729 result->data[((NI) 0)] = x;
4730 return result;
4731 }
N_NIMCALL(void,addFloatRoundtrip__system_3127)4732 N_LIB_PRIVATE N_NIMCALL(void, addFloatRoundtrip__system_3127)(NimStringDesc** result, NF x) {
4733 tyArray__eVNFTutn6un5gcq48fQLdg buffer;
4734 NI n;
4735 n = writeFloatToBufferRoundtrip__systemZformatfloat_13(buffer, x);
4736 addCstringN__systemZformatfloat_5(result, ((NCSTRING) ((&buffer[(((NI) 0))- 0]))), n);
4737 }
N_NIMCALL(void,GC_disableMarkAndSweep__system_2267)4738 N_LIB_PRIVATE N_NIMCALL(void, GC_disableMarkAndSweep__system_2267)(void) {
4739 gch__system_5209.cycleThreshold = ((NI) 2147483646);
4740 }
N_NIMCALL(void *,newSeqRC1)4741 N_LIB_PRIVATE N_NIMCALL(void*, newSeqRC1)(TNimType* typ, NI len) {
4742 void* result;
4743 NI size;
4744 NI T1_;
4745 NI TM__Q5wkpxktOdTGvlSRo9bzt9aw_17;
4746 NI TM__Q5wkpxktOdTGvlSRo9bzt9aw_18;
4747 result = (void*)0;
4748 T1_ = (NI)0;
4749 T1_ = align__system_1624(((NI) 8), (*(*typ).base).align);
4750 if (nimMulInt(len, (*(*typ).base).size, &TM__Q5wkpxktOdTGvlSRo9bzt9aw_17)) { raiseOverflow(); };
4751 if (nimAddInt(T1_, (NI)(TM__Q5wkpxktOdTGvlSRo9bzt9aw_17), &TM__Q5wkpxktOdTGvlSRo9bzt9aw_18)) { raiseOverflow(); };
4752 size = (NI)(TM__Q5wkpxktOdTGvlSRo9bzt9aw_18);
4753 result = newObjRC1(typ, size);
4754 (*((TGenericSeq*) (result))).len = len;
4755 (*((TGenericSeq*) (result))).reserved = len;
4756 return result;
4757 }
N_NIMCALL(void *,nimNewSeqOfCap)4758 N_LIB_PRIVATE N_NIMCALL(void*, nimNewSeqOfCap)(TNimType* typ, NI cap) {
4759 void* result;
4760 NI s;
4761 NI T1_;
4762 NI TM__Q5wkpxktOdTGvlSRo9bzt9aw_19;
4763 NI TM__Q5wkpxktOdTGvlSRo9bzt9aw_20;
4764 result = (void*)0;
4765 T1_ = (NI)0;
4766 T1_ = align__system_1624(((NI) 8), (*(*typ).base).align);
4767 if (nimMulInt(cap, (*(*typ).base).size, &TM__Q5wkpxktOdTGvlSRo9bzt9aw_19)) { raiseOverflow(); };
4768 if (nimAddInt(T1_, (NI)(TM__Q5wkpxktOdTGvlSRo9bzt9aw_19), &TM__Q5wkpxktOdTGvlSRo9bzt9aw_20)) { raiseOverflow(); };
4769 s = (NI)(TM__Q5wkpxktOdTGvlSRo9bzt9aw_20);
4770 {
4771 if (!(((*(*typ).base).flags &((NU8)1<<((NU)(((tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ) 0))&7U)))!=0)) goto LA4_;
4772 result = newObjNoInit(typ, s);
4773 }
4774 goto LA2_;
4775 LA4_: ;
4776 {
4777 result = newObj(typ, s);
4778 }
4779 LA2_: ;
4780 (*((TGenericSeq*) (result))).len = ((NI) 0);
4781 (*((TGenericSeq*) (result))).reserved = cap;
4782 return result;
4783 }
N_NIMCALL(void,genericReset)4784 N_LIB_PRIVATE N_NIMCALL(void, genericReset)(void* dest, TNimType* mt) {
4785 NI d;
4786 d = ((NI) (ptrdiff_t) (dest));
4787 switch ((*mt).kind) {
4788 case ((tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A) 22):
4789 {
4790 unsureAsgnRef(((void**) (dest)), NIM_NIL);
4791 }
4792 break;
4793 case ((tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A) 28):
4794 {
4795 unsureAsgnRef(((void**) (dest)), NIM_NIL);
4796 }
4797 break;
4798 case ((tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A) 24):
4799 {
4800 unsureAsgnRef(((void**) (dest)), NIM_NIL);
4801 }
4802 break;
4803 case ((tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A) 18):
4804 {
4805 genericResetAux__system_6374(dest, (*mt).node);
4806 }
4807 break;
4808 case ((tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A) 17):
4809 {
4810 TNimType** pint;
4811 genericResetAux__system_6374(dest, (*mt).node);
4812 pint = ((TNimType**) (dest));
4813 (*pint) = ((TNimType*) NIM_NIL);
4814 }
4815 break;
4816 case ((tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A) 16):
4817 case ((tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A) 4):
4818 {
4819 {
4820 NI i;
4821 NI colontmp_;
4822 NI res;
4823 i = (NI)0;
4824 colontmp_ = (NI)0;
4825 colontmp_ = (NI)((NI)((*mt).size / (*(*mt).base).size) - ((NI) 1));
4826 res = ((NI) 0);
4827 {
4828 while (1) {
4829 NI T10_;
4830 NI T11_;
4831 if (!(res <= colontmp_)) goto LA9;
4832 i = res;
4833 T10_ = (NI)0;
4834 T10_ = starpercent___system_736(i, (*(*mt).base).size);
4835 T11_ = (NI)0;
4836 T11_ = pluspercent___system_696(d, T10_);
4837 genericReset(((void*) (T11_)), (*mt).base);
4838 res += ((NI) 1);
4839 } LA9: ;
4840 }
4841 }
4842 }
4843 break;
4844 default:
4845 {
4846 zeroMem__system_1724(dest, ((NI) ((*mt).size)));
4847 }
4848 break;
4849 }
4850 }
N_NIMCALL(void,genericResetAux__system_6374)4851 N_LIB_PRIVATE N_NIMCALL(void, genericResetAux__system_6374)(void* dest, TNimNode* n) {
4852 NI d;
4853 d = ((NI) (ptrdiff_t) (dest));
4854 switch ((*n).kind) {
4855 case ((tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ) 0):
4856 {
4857 }
4858 break;
4859 case ((tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ) 1):
4860 {
4861 NI T3_;
4862 T3_ = (NI)0;
4863 T3_ = pluspercent___system_696(d, (*n).offset);
4864 genericReset(((void*) (T3_)), (*n).typ);
4865 }
4866 break;
4867 case ((tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ) 2):
4868 {
4869 {
4870 NI i;
4871 NI colontmp_;
4872 NI res;
4873 i = (NI)0;
4874 colontmp_ = (NI)0;
4875 colontmp_ = (NI)((*n).len - ((NI) 1));
4876 res = ((NI) 0);
4877 {
4878 while (1) {
4879 if (!(res <= colontmp_)) goto LA7;
4880 i = res;
4881 genericResetAux__system_6374(dest, (*n).sons[(i)- 0]);
4882 res += ((NI) 1);
4883 } LA7: ;
4884 }
4885 }
4886 }
4887 break;
4888 case ((tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ) 3):
4889 {
4890 TNimNode* m;
4891 NI T13_;
4892 m = selectBranch__system_3645(dest, n);
4893 {
4894 if (!!((m == ((TNimNode*) NIM_NIL)))) goto LA11_;
4895 genericResetAux__system_6374(dest, m);
4896 }
4897 LA11_: ;
4898 T13_ = (NI)0;
4899 T13_ = pluspercent___system_696(d, (*n).offset);
4900 zeroMem__system_1724(((void*) (T13_)), ((NI) ((*(*n).typ).size)));
4901 }
4902 break;
4903 }
4904 }
N_NIMCALL(void,genericAssignAux__system_6382)4905 N_LIB_PRIVATE N_NIMCALL(void, genericAssignAux__system_6382)(void* dest, void* src, TNimNode* n, NIM_BOOL shallow) {
4906 NI d;
4907 NI s;
4908 d = ((NI) (ptrdiff_t) (dest));
4909 s = ((NI) (ptrdiff_t) (src));
4910 switch ((*n).kind) {
4911 case ((tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ) 1):
4912 {
4913 NI T2_;
4914 NI T3_;
4915 T2_ = (NI)0;
4916 T2_ = pluspercent___system_696(d, (*n).offset);
4917 T3_ = (NI)0;
4918 T3_ = pluspercent___system_696(s, (*n).offset);
4919 genericAssignAux__system_6377(((void*) (T2_)), ((void*) (T3_)), (*n).typ, shallow);
4920 }
4921 break;
4922 case ((tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ) 2):
4923 {
4924 {
4925 NI i;
4926 NI colontmp_;
4927 NI res;
4928 i = (NI)0;
4929 colontmp_ = (NI)0;
4930 colontmp_ = (NI)((*n).len - ((NI) 1));
4931 res = ((NI) 0);
4932 {
4933 while (1) {
4934 if (!(res <= colontmp_)) goto LA7;
4935 i = res;
4936 genericAssignAux__system_6382(dest, src, (*n).sons[(i)- 0], shallow);
4937 res += ((NI) 1);
4938 } LA7: ;
4939 }
4940 }
4941 }
4942 break;
4943 case ((tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ) 3):
4944 {
4945 TNimNode* dd;
4946 TNimNode* m;
4947 NI T15_;
4948 NI T16_;
4949 dd = selectBranch__system_3645(dest, n);
4950 m = selectBranch__system_3645(src, n);
4951 {
4952 NIM_BOOL T11_;
4953 T11_ = (NIM_BOOL)0;
4954 T11_ = !((m == dd));
4955 if (!(T11_)) goto LA12_;
4956 T11_ = !((dd == ((TNimNode*) NIM_NIL)));
4957 LA12_: ;
4958 if (!T11_) goto LA13_;
4959 genericResetAux__system_6374(dest, dd);
4960 }
4961 LA13_: ;
4962 T15_ = (NI)0;
4963 T15_ = pluspercent___system_696(d, (*n).offset);
4964 T16_ = (NI)0;
4965 T16_ = pluspercent___system_696(s, (*n).offset);
4966 copyMem__system_1727(((void*) (T15_)), ((void*) (T16_)), ((NI) ((*(*n).typ).size)));
4967 {
4968 if (!!((m == ((TNimNode*) NIM_NIL)))) goto LA19_;
4969 genericAssignAux__system_6382(dest, src, m, shallow);
4970 }
4971 LA19_: ;
4972 }
4973 break;
4974 case ((tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ) 0):
4975 {
4976 }
4977 break;
4978 }
4979 }
N_NIMCALL(void,Marker_tyRef__C0A9bPZSVeyr2BWpBf4Jxqw)4980 static N_NIMCALL(void, Marker_tyRef__C0A9bPZSVeyr2BWpBf4Jxqw)(void* p, NI op) {
4981 tyObject_ObjectAssignmentDefect__6toVe0IizlEwN9bORXEdX3g* a;
4982 a = (tyObject_ObjectAssignmentDefect__6toVe0IizlEwN9bORXEdX3g*)p;
4983 nimGCvisit((void*)(*a).Sup.Sup.parent, op);
4984 nimGCvisit((void*)(*a).Sup.Sup.message, op);
4985 nimGCvisit((void*)(*a).Sup.Sup.trace, op);
4986 nimGCvisit((void*)(*a).Sup.Sup.up, op);
4987 }
N_INLINE(void,sysFatal__system_3290)4988 static N_INLINE(void, sysFatal__system_3290)(NimStringDesc* message) {
4989 tyObject_ObjectAssignmentDefect__6toVe0IizlEwN9bORXEdX3g* T1_;
4990 NimStringDesc* T2_;
4991 T1_ = NIM_NIL;
4992 T1_ = (tyObject_ObjectAssignmentDefect__6toVe0IizlEwN9bORXEdX3g*) newObj((&NTIrefobjectassignmentdefect__C0A9bPZSVeyr2BWpBf4Jxqw_), sizeof(tyObject_ObjectAssignmentDefect__6toVe0IizlEwN9bORXEdX3g));
4993 (*T1_).Sup.Sup.Sup.m_type = (&NTIobjectassignmentdefect__6toVe0IizlEwN9bORXEdX3g_);
4994 (*T1_).Sup.Sup.name = "ObjectAssignmentDefect";
4995 T2_ = NIM_NIL;
4996 T2_ = (*T1_).Sup.Sup.message; (*T1_).Sup.Sup.message = copyStringRC1(message);
4997 if (T2_) nimGCunrefNoCycle(T2_);
4998 raiseExceptionEx((Exception*)T1_, "ObjectAssignmentDefect", "sysFatal", "fatal.nim", 53);
4999 }
N_INLINE(void,chckObjAsgn)5000 static N_INLINE(void, chckObjAsgn)(TNimType* a, TNimType* b) {
5001 {
5002 if (!!((a == b))) goto LA3_;
5003 sysFatal__system_3290(((NimStringDesc*) &TM__Q5wkpxktOdTGvlSRo9bzt9aw_21));
5004 }
5005 LA3_: ;
5006 }
N_NIMCALL(void,genericAssignAux__system_6377)5007 N_LIB_PRIVATE N_NIMCALL(void, genericAssignAux__system_6377)(void* dest, void* src, TNimType* mt, NIM_BOOL shallow) {
5008 NI d;
5009 NI s;
5010 { d = ((NI) (ptrdiff_t) (dest));
5011 s = ((NI) (ptrdiff_t) (src));
5012 switch ((*mt).kind) {
5013 case ((tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A) 28):
5014 {
5015 void** x;
5016 void* s2;
5017 x = ((void**) (dest));
5018 s2 = (*((void**) (s)));
5019 {
5020 NIM_BOOL T4_;
5021 NIM_BOOL T5_;
5022 T4_ = (NIM_BOOL)0;
5023 T5_ = (NIM_BOOL)0;
5024 T5_ = (s2 == NIM_NIL);
5025 if (T5_) goto LA6_;
5026 T5_ = shallow;
5027 LA6_: ;
5028 T4_ = T5_;
5029 if (T4_) goto LA7_;
5030 T4_ = !(((NI)((*((TGenericSeq*) (s2))).reserved & ((NI) (-2147483647 -1))) == ((NI) 0)));
5031 LA7_: ;
5032 if (!T4_) goto LA8_;
5033 unsureAsgnRef(x, s2);
5034 }
5035 goto LA2_;
5036 LA8_: ;
5037 {
5038 NimStringDesc* T11_;
5039 T11_ = (NimStringDesc*)0;
5040 T11_ = copyString(((NimStringDesc*) (s2)));
5041 unsureAsgnRef(x, ((void*) (T11_)));
5042 }
5043 LA2_: ;
5044 }
5045 break;
5046 case ((tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A) 24):
5047 {
5048 void* s2_2;
5049 TGenericSeq* seq;
5050 void** x_2;
5051 s2_2 = (*((void**) (src)));
5052 seq = ((TGenericSeq*) (s2_2));
5053 x_2 = ((void**) (dest));
5054 {
5055 NIM_BOOL T15_;
5056 NIM_BOOL T16_;
5057 T15_ = (NIM_BOOL)0;
5058 T16_ = (NIM_BOOL)0;
5059 T16_ = (s2_2 == NIM_NIL);
5060 if (T16_) goto LA17_;
5061 T16_ = shallow;
5062 LA17_: ;
5063 T15_ = T16_;
5064 if (T15_) goto LA18_;
5065 T15_ = !(((NI)((*seq).reserved & ((NI) (-2147483647 -1))) == ((NI) 0)));
5066 LA18_: ;
5067 if (!T15_) goto LA19_;
5068 unsureAsgnRef(x_2, s2_2);
5069 goto BeforeRet_;
5070 }
5071 LA19_: ;
5072 {
5073 void* ss;
5074 NI dst;
5075 NI T25_;
5076 NI T26_;
5077 NI T27_;
5078 NI T28_;
5079 NI T29_;
5080 if (!(((*(*mt).base).flags &((NU8)1<<((NU)(((tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ) 0))&7U)))!=0)) goto LA23_;
5081 ss = nimNewSeqOfCap(mt, (*seq).len);
5082 (*((TGenericSeq*) (ss))).len = (*seq).len;
5083 unsureAsgnRef(x_2, ss);
5084 dst = ((NI) (ptrdiff_t) ((*((void**) (dest)))));
5085 T25_ = (NI)0;
5086 T25_ = align__system_1624(((NI) 8), (*(*mt).base).align);
5087 T26_ = (NI)0;
5088 T26_ = pluspercent___system_696(dst, T25_);
5089 T27_ = (NI)0;
5090 T27_ = align__system_1624(((NI) 8), (*(*mt).base).align);
5091 T28_ = (NI)0;
5092 T28_ = pluspercent___system_696(((NI) (ptrdiff_t) (s2_2)), T27_);
5093 T29_ = (NI)0;
5094 T29_ = starpercent___system_736((*seq).len, (*(*mt).base).size);
5095 copyMem__system_1727(((void*) (T26_)), ((void*) (T28_)), ((NI) (T29_)));
5096 }
5097 goto LA21_;
5098 LA23_: ;
5099 {
5100 void* T31_;
5101 NI dst_2;
5102 T31_ = (void*)0;
5103 T31_ = newSeq(mt, (*seq).len);
5104 unsureAsgnRef(x_2, T31_);
5105 dst_2 = ((NI) (ptrdiff_t) ((*((void**) (dest)))));
5106 {
5107 NI i;
5108 NI colontmp_;
5109 NI res;
5110 i = (NI)0;
5111 colontmp_ = (NI)0;
5112 colontmp_ = (NI)((*seq).len - ((NI) 1));
5113 res = ((NI) 0);
5114 {
5115 while (1) {
5116 NI T35_;
5117 NI T36_;
5118 NI T37_;
5119 NI T38_;
5120 NI T39_;
5121 NI T40_;
5122 NI T41_;
5123 NI T42_;
5124 if (!(res <= colontmp_)) goto LA34;
5125 i = res;
5126 T35_ = (NI)0;
5127 T35_ = align__system_1624(((NI) 8), (*(*mt).base).align);
5128 T36_ = (NI)0;
5129 T36_ = pluspercent___system_696(dst_2, T35_);
5130 T37_ = (NI)0;
5131 T37_ = starpercent___system_736(i, (*(*mt).base).size);
5132 T38_ = (NI)0;
5133 T38_ = pluspercent___system_696(T36_, T37_);
5134 T39_ = (NI)0;
5135 T39_ = align__system_1624(((NI) 8), (*(*mt).base).align);
5136 T40_ = (NI)0;
5137 T40_ = pluspercent___system_696(((NI) (ptrdiff_t) (s2_2)), T39_);
5138 T41_ = (NI)0;
5139 T41_ = starpercent___system_736(i, (*(*mt).base).size);
5140 T42_ = (NI)0;
5141 T42_ = pluspercent___system_696(T40_, T41_);
5142 genericAssignAux__system_6377(((void*) (T38_)), ((void*) (T42_)), (*mt).base, shallow);
5143 res += ((NI) 1);
5144 } LA34: ;
5145 }
5146 }
5147 }
5148 LA21_: ;
5149 }
5150 break;
5151 case ((tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A) 17):
5152 {
5153 TNimType* it;
5154 TNimType** pint;
5155 TNimType* srcType;
5156 it = (*mt).base;
5157 {
5158 while (1) {
5159 if (!!((it == ((TNimType*) NIM_NIL)))) goto LA45;
5160 genericAssignAux__system_6382(dest, src, (*it).node, shallow);
5161 it = (*it).base;
5162 } LA45: ;
5163 }
5164 genericAssignAux__system_6382(dest, src, (*mt).node, shallow);
5165 pint = ((TNimType**) (dest));
5166 srcType = (*((TNimType**) (src)));
5167 {
5168 if (!!((srcType == ((TNimType*) NIM_NIL)))) goto LA48_;
5169 chckObjAsgn(srcType, mt);
5170 }
5171 LA48_: ;
5172 (*pint) = mt;
5173 }
5174 break;
5175 case ((tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A) 18):
5176 {
5177 genericAssignAux__system_6382(dest, src, (*mt).node, shallow);
5178 }
5179 break;
5180 case ((tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A) 16):
5181 case ((tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A) 4):
5182 {
5183 {
5184 NI i_2;
5185 NI colontmp__2;
5186 NI res_2;
5187 i_2 = (NI)0;
5188 colontmp__2 = (NI)0;
5189 colontmp__2 = (NI)((NI)((*mt).size / (*(*mt).base).size) - ((NI) 1));
5190 res_2 = ((NI) 0);
5191 {
5192 while (1) {
5193 NI T55_;
5194 NI T56_;
5195 NI T57_;
5196 NI T58_;
5197 if (!(res_2 <= colontmp__2)) goto LA54;
5198 i_2 = res_2;
5199 T55_ = (NI)0;
5200 T55_ = starpercent___system_736(i_2, (*(*mt).base).size);
5201 T56_ = (NI)0;
5202 T56_ = pluspercent___system_696(d, T55_);
5203 T57_ = (NI)0;
5204 T57_ = starpercent___system_736(i_2, (*(*mt).base).size);
5205 T58_ = (NI)0;
5206 T58_ = pluspercent___system_696(s, T57_);
5207 genericAssignAux__system_6377(((void*) (T56_)), ((void*) (T58_)), (*mt).base, shallow);
5208 res_2 += ((NI) 1);
5209 } LA54: ;
5210 }
5211 }
5212 }
5213 break;
5214 case ((tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A) 22):
5215 {
5216 unsureAsgnRef(((void**) (dest)), (*((void**) (s))));
5217 }
5218 break;
5219 default:
5220 {
5221 copyMem__system_1727(dest, src, ((NI) ((*mt).size)));
5222 }
5223 break;
5224 }
5225 }BeforeRet_: ;
5226 }
N_NIMCALL(void,genericAssign)5227 N_LIB_PRIVATE N_NIMCALL(void, genericAssign)(void* dest, void* src, TNimType* mt) {
5228 genericAssignAux__system_6377(dest, src, mt, NIM_FALSE);
5229 }
N_NIMCALL(void,genericSeqAssign)5230 N_LIB_PRIVATE N_NIMCALL(void, genericSeqAssign)(void* dest, void* src, TNimType* mt) {
5231 void* src_2;
5232 src_2 = src;
5233 genericAssign(dest, ((void*) ((&src_2))), mt);
5234 }
N_NIMCALL(void,Marker_tyRef__RJnHOb9cQV3neNC9cDkRgMyw)5235 static N_NIMCALL(void, Marker_tyRef__RJnHOb9cQV3neNC9cDkRgMyw)(void* p, NI op) {
5236 tyObject_IndexDefect__n6tGEPHKkh7E1AP9bj30WrQ* a;
5237 a = (tyObject_IndexDefect__n6tGEPHKkh7E1AP9bj30WrQ*)p;
5238 nimGCvisit((void*)(*a).Sup.Sup.parent, op);
5239 nimGCvisit((void*)(*a).Sup.Sup.message, op);
5240 nimGCvisit((void*)(*a).Sup.Sup.trace, op);
5241 nimGCvisit((void*)(*a).Sup.Sup.up, op);
5242 }
N_NIMCALL(NimStringDesc *,substr__system_7725)5243 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, substr__system_7725)(NimStringDesc* s, NI first) {
5244 NimStringDesc* result;
5245 result = NIM_NIL;
5246 result = substr__system_7713(s, first, ((s ? s->Sup.len : 0)-1));
5247 return result;
5248 }
N_NIMCALL(NI,hashString)5249 N_LIB_PRIVATE N_NIMCALL(NI, hashString)(NimStringDesc* s) {
5250 NI result;
5251 NU h;
5252 result = (NI)0;
5253 h = ((NU) 0);
5254 {
5255 NI i;
5256 NI colontmp_;
5257 NI res;
5258 i = (NI)0;
5259 colontmp_ = (NI)0;
5260 colontmp_ = (NI)((s ? s->Sup.len : 0) - ((NI) 1));
5261 res = ((NI) 0);
5262 {
5263 while (1) {
5264 if (!(res <= colontmp_)) goto LA3;
5265 i = res;
5266 h = (NU)((NU32)(h) + (NU32)(((NU) (((NU8)(s->data[i]))))));
5267 h = (NU)((NU32)(h) + (NU32)((NU)((NU32)(h) << (NU32)(((NI) 10)))));
5268 h = (NU)(h ^ (NU)((NU32)(h) >> (NU32)(((NI) 6))));
5269 res += ((NI) 1);
5270 } LA3: ;
5271 }
5272 }
5273 h = (NU)((NU32)(h) + (NU32)((NU)((NU32)(h) << (NU32)(((NI) 3)))));
5274 h = (NU)(h ^ (NU)((NU32)(h) >> (NU32)(((NI) 11))));
5275 h = (NU)((NU32)(h) + (NU32)((NU)((NU32)(h) << (NU32)(((NI) 15)))));
5276 result = ((NI) (h));
5277 return result;
5278 }
N_NIMCALL(void,Marker_tyRef__Ie1m0dv1ZHg72IgPRr1cDw)5279 static N_NIMCALL(void, Marker_tyRef__Ie1m0dv1ZHg72IgPRr1cDw)(void* p, NI op) {
5280 tyObject_ValueError__yoNlBGx0D2tRizIdhQuENw* a;
5281 a = (tyObject_ValueError__yoNlBGx0D2tRizIdhQuENw*)p;
5282 nimGCvisit((void*)(*a).Sup.Sup.parent, op);
5283 nimGCvisit((void*)(*a).Sup.Sup.message, op);
5284 nimGCvisit((void*)(*a).Sup.Sup.trace, op);
5285 nimGCvisit((void*)(*a).Sup.Sup.up, op);
5286 }
N_INLINE(int,nimCmpMem)5287 static N_INLINE(int, nimCmpMem)(void* a, void* b, NI size) {
5288 int result;
5289 result = (int)0;
5290 result = memcmp(a, b, ((size_t) (size)));
5291 return result;
5292 }
N_NIMCALL(NI,cmp__system_1549)5293 N_LIB_PRIVATE N_NIMCALL(NI, cmp__system_1549)(NimStringDesc* x, NimStringDesc* y) {
5294 NI result;
5295 NI minlen;
5296 int T1_;
5297 result = (NI)0;
5298 minlen = (((x ? x->Sup.len : 0) <= (y ? y->Sup.len : 0)) ? (x ? x->Sup.len : 0) : (y ? y->Sup.len : 0));
5299 T1_ = (int)0;
5300 T1_ = nimCmpMem(((void*) (nimToCStringConv(x))), ((void*) (nimToCStringConv(y))), ((NI) (((size_t) (minlen)))));
5301 result = ((NI) (T1_));
5302 {
5303 if (!(result == ((NI) 0))) goto LA4_;
5304 result = (NI)((x ? x->Sup.len : 0) - (y ? y->Sup.len : 0));
5305 }
5306 LA4_: ;
5307 return result;
5308 }
N_NIMCALL(void,Marker_tyRef__9clYsYwyjCqe2PFTuCI3Ubg)5309 static N_NIMCALL(void, Marker_tyRef__9clYsYwyjCqe2PFTuCI3Ubg)(void* p, NI op) {
5310 tyObject_OSError__BeJgrOdDsczOwEWOZbRfKA* a;
5311 a = (tyObject_OSError__BeJgrOdDsczOwEWOZbRfKA*)p;
5312 nimGCvisit((void*)(*a).Sup.Sup.parent, op);
5313 nimGCvisit((void*)(*a).Sup.Sup.message, op);
5314 nimGCvisit((void*)(*a).Sup.Sup.trace, op);
5315 nimGCvisit((void*)(*a).Sup.Sup.up, op);
5316 }
N_NIMCALL(void,nimLeaveFinally)5317 N_LIB_PRIVATE N_NIMCALL(void, nimLeaveFinally)(void) {
5318 {
5319 if (!!((excHandler__system_2565 == ((TSafePoint*) NIM_NIL)))) goto LA3_;
5320 _longjmp((*excHandler__system_2565).context, ((int) 1));
5321 }
5322 goto LA1_;
5323 LA3_: ;
5324 {
5325 reportUnhandledError__system_2855(currException__system_2566);
5326 exit(((NI) 1));
5327 }
5328 LA1_: ;
5329 }
N_NIMCALL(void,Marker_tyRef__HMIVdYjdZYWskTmTQVo5BQ)5330 static N_NIMCALL(void, Marker_tyRef__HMIVdYjdZYWskTmTQVo5BQ)(void* p, NI op) {
5331 tyObject_IOError__iLZrPn9anoh9ad1MmO0RczFw* a;
5332 a = (tyObject_IOError__iLZrPn9anoh9ad1MmO0RczFw*)p;
5333 nimGCvisit((void*)(*a).Sup.Sup.parent, op);
5334 nimGCvisit((void*)(*a).Sup.Sup.message, op);
5335 nimGCvisit((void*)(*a).Sup.Sup.trace, op);
5336 nimGCvisit((void*)(*a).Sup.Sup.up, op);
5337 }
N_NIMCALL(NIM_BOOL,isObj)5338 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isObj)(TNimType* obj, TNimType* subclass) {
5339 NIM_BOOL result;
5340 TNimType* x;
5341 { result = (NIM_BOOL)0;
5342 x = obj;
5343 {
5344 if (!(x == subclass)) goto LA3_;
5345 result = NIM_TRUE;
5346 goto BeforeRet_;
5347 }
5348 LA3_: ;
5349 {
5350 while (1) {
5351 if (!!((x == subclass))) goto LA6;
5352 {
5353 if (!(x == ((TNimType*) NIM_NIL))) goto LA9_;
5354 result = NIM_FALSE;
5355 goto BeforeRet_;
5356 }
5357 LA9_: ;
5358 x = (*x).base;
5359 } LA6: ;
5360 }
5361 result = NIM_TRUE;
5362 goto BeforeRet_;
5363 }BeforeRet_: ;
5364 return result;
5365 }
N_NIMCALL(void,quit__system_7143)5366 N_LIB_PRIVATE N_NIMCALL(void, quit__system_7143)(NimStringDesc* errormsg, NI errorcode) {
5367 rawWrite(stderr, nimToCStringConv(errormsg));
5368 rawWrite(stderr, "\012");
5369 exit(errorcode);
5370 }
N_NIMCALL(NIM_BOOL,stackTraceAvailable__system_2747)5371 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, stackTraceAvailable__system_2747)(void) {
5372 NIM_BOOL result;
5373 result = (NIM_BOOL)0;
5374 result = NIM_FALSE;
5375 return result;
5376 }
N_INLINE(void,showErrorMessage2__system_2544)5377 static N_INLINE(void, showErrorMessage2__system_2544)(NimStringDesc* data) {
5378 showErrorMessage__system_2536(nimToCStringConv(data), (data ? data->Sup.len : 0));
5379 }
N_NIMCALL(void,writeStackTrace__system_2161)5380 N_LIB_PRIVATE N_NIMCALL(void, writeStackTrace__system_2161)(void) {
5381 NimStringDesc* s;
5382 s = copyString(((NimStringDesc*) &TM__Q5wkpxktOdTGvlSRo9bzt9aw_22));
5383 showErrorMessage2__system_2544(s);
5384 }
N_NIMCALL(void,Marker_tyRef__LEclZrWX2FQAodlapxGITw)5385 static N_NIMCALL(void, Marker_tyRef__LEclZrWX2FQAodlapxGITw)(void* p, NI op) {
5386 tyObject_EOFError__KGSY1JdrNB7Xi8KDhXFhSg* a;
5387 a = (tyObject_EOFError__KGSY1JdrNB7Xi8KDhXFhSg*)p;
5388 nimGCvisit((void*)(*a).Sup.Sup.Sup.parent, op);
5389 nimGCvisit((void*)(*a).Sup.Sup.Sup.message, op);
5390 nimGCvisit((void*)(*a).Sup.Sup.Sup.trace, op);
5391 nimGCvisit((void*)(*a).Sup.Sup.Sup.up, op);
5392 }
N_NIMCALL(void,Marker_tyRef__0vJvi4uHbxjbxlkkX7P1EA)5393 static N_NIMCALL(void, Marker_tyRef__0vJvi4uHbxjbxlkkX7P1EA)(void* p, NI op) {
5394 RootObj* a;
5395 a = (RootObj*)p;
5396 }
N_NIMCALL(NI,nimParseBiggestFloat)5397 N_LIB_PRIVATE N_NIMCALL(NI, nimParseBiggestFloat)(NimStringDesc* s, NF* number, NI start) {
5398 NI result;
5399 NI i;
5400 NF sign;
5401 NI kdigits;
5402 NI fdigits;
5403 NI exponent;
5404 NU64 integer;
5405 NI fracExponent;
5406 NI expSign;
5407 NI firstDigit;
5408 NIM_BOOL hasSign;
5409 NI realExponent;
5410 NIM_BOOL expNegative;
5411 NI absExponent;
5412 NI digits;
5413 tyArray__PGLh8drTnaWr3s1qUUSq2Q t;
5414 NI ti;
5415 NI maxlen;
5416 NI endPos;
5417 { result = (NI)0;
5418 i = start;
5419 sign = 1.0;
5420 kdigits = ((NI) 0);
5421 fdigits = ((NI) 0);
5422 exponent = ((NI) 0);
5423 integer = 0ULL;
5424 fracExponent = ((NI) 0);
5425 expSign = ((NI) 1);
5426 firstDigit = ((NI) -1);
5427 hasSign = NIM_FALSE;
5428 {
5429 NIM_BOOL T3_;
5430 NIM_BOOL T5_;
5431 T3_ = (NIM_BOOL)0;
5432 T3_ = (i < (s ? s->Sup.len : 0));
5433 if (!(T3_)) goto LA4_;
5434 T5_ = (NIM_BOOL)0;
5435 T5_ = ((NU8)(s->data[i]) == (NU8)(43));
5436 if (T5_) goto LA6_;
5437 T5_ = ((NU8)(s->data[i]) == (NU8)(45));
5438 LA6_: ;
5439 T3_ = T5_;
5440 LA4_: ;
5441 if (!T3_) goto LA7_;
5442 hasSign = NIM_TRUE;
5443 {
5444 if (!((NU8)(s->data[i]) == (NU8)(45))) goto LA11_;
5445 sign = -1.0;
5446 }
5447 LA11_: ;
5448 i += ((NI) 1);
5449 }
5450 LA7_: ;
5451 {
5452 NIM_BOOL T15_;
5453 NIM_BOOL T17_;
5454 T15_ = (NIM_BOOL)0;
5455 T15_ = ((NI)(i + ((NI) 2)) < (s ? s->Sup.len : 0));
5456 if (!(T15_)) goto LA16_;
5457 T17_ = (NIM_BOOL)0;
5458 T17_ = ((NU8)(s->data[i]) == (NU8)(78));
5459 if (T17_) goto LA18_;
5460 T17_ = ((NU8)(s->data[i]) == (NU8)(110));
5461 LA18_: ;
5462 T15_ = T17_;
5463 LA16_: ;
5464 if (!T15_) goto LA19_;
5465 {
5466 NIM_BOOL T23_;
5467 T23_ = (NIM_BOOL)0;
5468 T23_ = ((NU8)(s->data[(NI)(i + ((NI) 1))]) == (NU8)(65));
5469 if (T23_) goto LA24_;
5470 T23_ = ((NU8)(s->data[(NI)(i + ((NI) 1))]) == (NU8)(97));
5471 LA24_: ;
5472 if (!T23_) goto LA25_;
5473 {
5474 NIM_BOOL T29_;
5475 T29_ = (NIM_BOOL)0;
5476 T29_ = ((NU8)(s->data[(NI)(i + ((NI) 2))]) == (NU8)(78));
5477 if (T29_) goto LA30_;
5478 T29_ = ((NU8)(s->data[(NI)(i + ((NI) 2))]) == (NU8)(110));
5479 LA30_: ;
5480 if (!T29_) goto LA31_;
5481 {
5482 NIM_BOOL T35_;
5483 T35_ = (NIM_BOOL)0;
5484 T35_ = ((s ? s->Sup.len : 0) <= (NI)(i + ((NI) 3)));
5485 if (T35_) goto LA36_;
5486 T35_ = !((((NU8)(s->data[(NI)(i + ((NI) 3))])) >= ((NU8)(97)) && ((NU8)(s->data[(NI)(i + ((NI) 3))])) <= ((NU8)(122)) || ((NU8)(s->data[(NI)(i + ((NI) 3))])) >= ((NU8)(65)) && ((NU8)(s->data[(NI)(i + ((NI) 3))])) <= ((NU8)(90)) || ((NU8)(s->data[(NI)(i + ((NI) 3))])) >= ((NU8)(48)) && ((NU8)(s->data[(NI)(i + ((NI) 3))])) <= ((NU8)(57)) || ((NU8)(s->data[(NI)(i + ((NI) 3))])) == ((NU8)(95))));
5487 LA36_: ;
5488 if (!T35_) goto LA37_;
5489 (*number) = NAN;
5490 result = (NI)((NI)(i + ((NI) 3)) - start);
5491 goto BeforeRet_;
5492 }
5493 LA37_: ;
5494 }
5495 LA31_: ;
5496 }
5497 LA25_: ;
5498 result = ((NI) 0);
5499 goto BeforeRet_;
5500 }
5501 LA19_: ;
5502 {
5503 NIM_BOOL T41_;
5504 NIM_BOOL T43_;
5505 T41_ = (NIM_BOOL)0;
5506 T41_ = ((NI)(i + ((NI) 2)) < (s ? s->Sup.len : 0));
5507 if (!(T41_)) goto LA42_;
5508 T43_ = (NIM_BOOL)0;
5509 T43_ = ((NU8)(s->data[i]) == (NU8)(73));
5510 if (T43_) goto LA44_;
5511 T43_ = ((NU8)(s->data[i]) == (NU8)(105));
5512 LA44_: ;
5513 T41_ = T43_;
5514 LA42_: ;
5515 if (!T41_) goto LA45_;
5516 {
5517 NIM_BOOL T49_;
5518 T49_ = (NIM_BOOL)0;
5519 T49_ = ((NU8)(s->data[(NI)(i + ((NI) 1))]) == (NU8)(78));
5520 if (T49_) goto LA50_;
5521 T49_ = ((NU8)(s->data[(NI)(i + ((NI) 1))]) == (NU8)(110));
5522 LA50_: ;
5523 if (!T49_) goto LA51_;
5524 {
5525 NIM_BOOL T55_;
5526 T55_ = (NIM_BOOL)0;
5527 T55_ = ((NU8)(s->data[(NI)(i + ((NI) 2))]) == (NU8)(70));
5528 if (T55_) goto LA56_;
5529 T55_ = ((NU8)(s->data[(NI)(i + ((NI) 2))]) == (NU8)(102));
5530 LA56_: ;
5531 if (!T55_) goto LA57_;
5532 {
5533 NIM_BOOL T61_;
5534 T61_ = (NIM_BOOL)0;
5535 T61_ = ((s ? s->Sup.len : 0) <= (NI)(i + ((NI) 3)));
5536 if (T61_) goto LA62_;
5537 T61_ = !((((NU8)(s->data[(NI)(i + ((NI) 3))])) >= ((NU8)(97)) && ((NU8)(s->data[(NI)(i + ((NI) 3))])) <= ((NU8)(122)) || ((NU8)(s->data[(NI)(i + ((NI) 3))])) >= ((NU8)(65)) && ((NU8)(s->data[(NI)(i + ((NI) 3))])) <= ((NU8)(90)) || ((NU8)(s->data[(NI)(i + ((NI) 3))])) >= ((NU8)(48)) && ((NU8)(s->data[(NI)(i + ((NI) 3))])) <= ((NU8)(57)) || ((NU8)(s->data[(NI)(i + ((NI) 3))])) == ((NU8)(95))));
5538 LA62_: ;
5539 if (!T61_) goto LA63_;
5540 (*number) = ((NF)(INF) * (NF)(sign));
5541 result = (NI)((NI)(i + ((NI) 3)) - start);
5542 goto BeforeRet_;
5543 }
5544 LA63_: ;
5545 }
5546 LA57_: ;
5547 }
5548 LA51_: ;
5549 result = ((NI) 0);
5550 goto BeforeRet_;
5551 }
5552 LA45_: ;
5553 {
5554 NIM_BOOL T67_;
5555 T67_ = (NIM_BOOL)0;
5556 T67_ = (i < (s ? s->Sup.len : 0));
5557 if (!(T67_)) goto LA68_;
5558 T67_ = (((NU8)(s->data[i])) >= ((NU8)(48)) && ((NU8)(s->data[i])) <= ((NU8)(57)));
5559 LA68_: ;
5560 if (!T67_) goto LA69_;
5561 firstDigit = (NI)(((NU8)(s->data[i])) - ((NI) 48));
5562 }
5563 LA69_: ;
5564 {
5565 while (1) {
5566 NIM_BOOL T73_;
5567 T73_ = (NIM_BOOL)0;
5568 T73_ = (i < (s ? s->Sup.len : 0));
5569 if (!(T73_)) goto LA74_;
5570 T73_ = (((NU8)(s->data[i])) >= ((NU8)(48)) && ((NU8)(s->data[i])) <= ((NU8)(57)));
5571 LA74_: ;
5572 if (!T73_) goto LA72;
5573 kdigits += ((NI) 1);
5574 integer = (NU64)((NU64)((NU64)((NU64)(integer) * (NU64)(10ULL))) + (NU64)(((NU64) ((NI)(((NU8)(s->data[i])) - ((NI) 48))))));
5575 i += ((NI) 1);
5576 {
5577 while (1) {
5578 NIM_BOOL T77_;
5579 T77_ = (NIM_BOOL)0;
5580 T77_ = (i < (s ? s->Sup.len : 0));
5581 if (!(T77_)) goto LA78_;
5582 T77_ = ((NU8)(s->data[i]) == (NU8)(95));
5583 LA78_: ;
5584 if (!T77_) goto LA76;
5585 i += ((NI) 1);
5586 } LA76: ;
5587 }
5588 } LA72: ;
5589 }
5590 {
5591 NIM_BOOL T81_;
5592 T81_ = (NIM_BOOL)0;
5593 T81_ = (i < (s ? s->Sup.len : 0));
5594 if (!(T81_)) goto LA82_;
5595 T81_ = ((NU8)(s->data[i]) == (NU8)(46));
5596 LA82_: ;
5597 if (!T81_) goto LA83_;
5598 i += ((NI) 1);
5599 {
5600 if (!(kdigits <= ((NI) 0))) goto LA87_;
5601 {
5602 while (1) {
5603 NIM_BOOL T91_;
5604 T91_ = (NIM_BOOL)0;
5605 T91_ = (i < (s ? s->Sup.len : 0));
5606 if (!(T91_)) goto LA92_;
5607 T91_ = ((NU8)(s->data[i]) == (NU8)(48));
5608 LA92_: ;
5609 if (!T91_) goto LA90;
5610 fracExponent += ((NI) 1);
5611 i += ((NI) 1);
5612 {
5613 while (1) {
5614 NIM_BOOL T95_;
5615 T95_ = (NIM_BOOL)0;
5616 T95_ = (i < (s ? s->Sup.len : 0));
5617 if (!(T95_)) goto LA96_;
5618 T95_ = ((NU8)(s->data[i]) == (NU8)(95));
5619 LA96_: ;
5620 if (!T95_) goto LA94;
5621 i += ((NI) 1);
5622 } LA94: ;
5623 }
5624 } LA90: ;
5625 }
5626 }
5627 LA87_: ;
5628 {
5629 NIM_BOOL T99_;
5630 NIM_BOOL T100_;
5631 T99_ = (NIM_BOOL)0;
5632 T100_ = (NIM_BOOL)0;
5633 T100_ = (firstDigit == ((NI) -1));
5634 if (!(T100_)) goto LA101_;
5635 T100_ = (i < (s ? s->Sup.len : 0));
5636 LA101_: ;
5637 T99_ = T100_;
5638 if (!(T99_)) goto LA102_;
5639 T99_ = (((NU8)(s->data[i])) >= ((NU8)(48)) && ((NU8)(s->data[i])) <= ((NU8)(57)));
5640 LA102_: ;
5641 if (!T99_) goto LA103_;
5642 firstDigit = (NI)(((NU8)(s->data[i])) - ((NI) 48));
5643 }
5644 LA103_: ;
5645 {
5646 while (1) {
5647 NIM_BOOL T107_;
5648 T107_ = (NIM_BOOL)0;
5649 T107_ = (i < (s ? s->Sup.len : 0));
5650 if (!(T107_)) goto LA108_;
5651 T107_ = (((NU8)(s->data[i])) >= ((NU8)(48)) && ((NU8)(s->data[i])) <= ((NU8)(57)));
5652 LA108_: ;
5653 if (!T107_) goto LA106;
5654 fdigits += ((NI) 1);
5655 fracExponent += ((NI) 1);
5656 integer = (NU64)((NU64)((NU64)((NU64)(integer) * (NU64)(10ULL))) + (NU64)(((NU64) ((NI)(((NU8)(s->data[i])) - ((NI) 48))))));
5657 i += ((NI) 1);
5658 {
5659 while (1) {
5660 NIM_BOOL T111_;
5661 T111_ = (NIM_BOOL)0;
5662 T111_ = (i < (s ? s->Sup.len : 0));
5663 if (!(T111_)) goto LA112_;
5664 T111_ = ((NU8)(s->data[i]) == (NU8)(95));
5665 LA112_: ;
5666 if (!T111_) goto LA110;
5667 i += ((NI) 1);
5668 } LA110: ;
5669 }
5670 } LA106: ;
5671 }
5672 }
5673 LA83_: ;
5674 {
5675 NIM_BOOL T115_;
5676 NIM_BOOL T117_;
5677 NIM_BOOL T119_;
5678 T115_ = (NIM_BOOL)0;
5679 T115_ = ((NI)(kdigits + fdigits) <= ((NI) 0));
5680 if (!(T115_)) goto LA116_;
5681 T117_ = (NIM_BOOL)0;
5682 T117_ = (i == start);
5683 if (T117_) goto LA118_;
5684 T119_ = (NIM_BOOL)0;
5685 T119_ = (i == (NI)(start + ((NI) 1)));
5686 if (!(T119_)) goto LA120_;
5687 T119_ = hasSign;
5688 LA120_: ;
5689 T117_ = T119_;
5690 LA118_: ;
5691 T115_ = T117_;
5692 LA116_: ;
5693 if (!T115_) goto LA121_;
5694 result = ((NI) 0);
5695 goto BeforeRet_;
5696 }
5697 LA121_: ;
5698 {
5699 NIM_BOOL T125_;
5700 T125_ = (NIM_BOOL)0;
5701 T125_ = ((NI)(i + ((NI) 1)) < (s ? s->Sup.len : 0));
5702 if (!(T125_)) goto LA126_;
5703 T125_ = (((NU8)(s->data[i])) == ((NU8)(101)) || ((NU8)(s->data[i])) == ((NU8)(69)));
5704 LA126_: ;
5705 if (!T125_) goto LA127_;
5706 i += ((NI) 1);
5707 {
5708 NIM_BOOL T131_;
5709 T131_ = (NIM_BOOL)0;
5710 T131_ = ((NU8)(s->data[i]) == (NU8)(43));
5711 if (T131_) goto LA132_;
5712 T131_ = ((NU8)(s->data[i]) == (NU8)(45));
5713 LA132_: ;
5714 if (!T131_) goto LA133_;
5715 {
5716 if (!((NU8)(s->data[i]) == (NU8)(45))) goto LA137_;
5717 expSign = ((NI) -1);
5718 }
5719 LA137_: ;
5720 i += ((NI) 1);
5721 }
5722 LA133_: ;
5723 {
5724 if (!!((((NU8)(s->data[i])) >= ((NU8)(48)) && ((NU8)(s->data[i])) <= ((NU8)(57))))) goto LA141_;
5725 result = ((NI) 0);
5726 goto BeforeRet_;
5727 }
5728 LA141_: ;
5729 {
5730 while (1) {
5731 NIM_BOOL T145_;
5732 T145_ = (NIM_BOOL)0;
5733 T145_ = (i < (s ? s->Sup.len : 0));
5734 if (!(T145_)) goto LA146_;
5735 T145_ = (((NU8)(s->data[i])) >= ((NU8)(48)) && ((NU8)(s->data[i])) <= ((NU8)(57)));
5736 LA146_: ;
5737 if (!T145_) goto LA144;
5738 exponent = (NI)((NI)(exponent * ((NI) 10)) + (NI)(((NU8)(s->data[i])) - ((NI) 48)));
5739 i += ((NI) 1);
5740 {
5741 while (1) {
5742 NIM_BOOL T149_;
5743 T149_ = (NIM_BOOL)0;
5744 T149_ = (i < (s ? s->Sup.len : 0));
5745 if (!(T149_)) goto LA150_;
5746 T149_ = ((NU8)(s->data[i]) == (NU8)(95));
5747 LA150_: ;
5748 if (!T149_) goto LA148;
5749 i += ((NI) 1);
5750 } LA148: ;
5751 }
5752 } LA144: ;
5753 }
5754 }
5755 LA127_: ;
5756 realExponent = (NI)((NI)(expSign * exponent) - fracExponent);
5757 expNegative = (realExponent < ((NI) 0));
5758 absExponent = (realExponent > 0? (realExponent) : -(realExponent));
5759 {
5760 if (!(((NI) 999) < absExponent)) goto LA153_;
5761 {
5762 if (!expNegative) goto LA157_;
5763 (*number) = ((NF)(0.0) * (NF)(sign));
5764 }
5765 goto LA155_;
5766 LA157_: ;
5767 {
5768 (*number) = ((NF)(INF) * (NF)(sign));
5769 }
5770 LA155_: ;
5771 result = (NI)(i - start);
5772 goto BeforeRet_;
5773 }
5774 LA153_: ;
5775 digits = (NI)(kdigits + fdigits);
5776 {
5777 NIM_BOOL T162_;
5778 NIM_BOOL T164_;
5779 NI slop;
5780 T162_ = (NIM_BOOL)0;
5781 T162_ = (digits <= ((NI) 15));
5782 if (T162_) goto LA163_;
5783 T164_ = (NIM_BOOL)0;
5784 T164_ = (digits <= ((NI) 16));
5785 if (!(T164_)) goto LA165_;
5786 T164_ = (firstDigit <= ((NI) 8));
5787 LA165_: ;
5788 T162_ = T164_;
5789 LA163_: ;
5790 if (!T162_) goto LA166_;
5791 {
5792 if (!(absExponent <= ((NI) 22))) goto LA170_;
5793 {
5794 if (!expNegative) goto LA174_;
5795 (*number) = ((NF)(((NF)(sign) * (NF)(((NF) (integer))))) / (NF)(powtens__system_6124[(absExponent)- 0]));
5796 }
5797 goto LA172_;
5798 LA174_: ;
5799 {
5800 (*number) = ((NF)(((NF)(sign) * (NF)(((NF) (integer))))) * (NF)(powtens__system_6124[(absExponent)- 0]));
5801 }
5802 LA172_: ;
5803 result = (NI)(i - start);
5804 goto BeforeRet_;
5805 }
5806 LA170_: ;
5807 slop = (NI)((NI)(((NI) 15) - kdigits) - fdigits);
5808 {
5809 NIM_BOOL T179_;
5810 T179_ = (NIM_BOOL)0;
5811 T179_ = (absExponent <= (NI)(((NI) 22) + slop));
5812 if (!(T179_)) goto LA180_;
5813 T179_ = !(expNegative);
5814 LA180_: ;
5815 if (!T179_) goto LA181_;
5816 (*number) = ((NF)(((NF)(((NF)(sign) * (NF)(((NF) (integer))))) * (NF)(powtens__system_6124[(slop)- 0]))) * (NF)(powtens__system_6124[((NI)(absExponent - slop))- 0]));
5817 result = (NI)(i - start);
5818 goto BeforeRet_;
5819 }
5820 LA181_: ;
5821 }
5822 LA166_: ;
5823 nimZeroMem((void*)t, sizeof(tyArray__PGLh8drTnaWr3s1qUUSq2Q));
5824 ti = ((NI) 0);
5825 maxlen = ((NI) 494);
5826 endPos = i;
5827 result = (NI)(endPos - start);
5828 i = start;
5829 {
5830 NIM_BOOL T185_;
5831 T185_ = (NIM_BOOL)0;
5832 T185_ = (i < endPos);
5833 if (!(T185_)) goto LA186_;
5834 T185_ = ((NU8)(s->data[i]) == (NU8)(46));
5835 LA186_: ;
5836 if (!T185_) goto LA187_;
5837 i += ((NI) 1);
5838 }
5839 LA187_: ;
5840 {
5841 while (1) {
5842 NIM_BOOL T191_;
5843 T191_ = (NIM_BOOL)0;
5844 T191_ = (i < endPos);
5845 if (!(T191_)) goto LA192_;
5846 T191_ = (((NU8)(s->data[i])) >= ((NU8)(48)) && ((NU8)(s->data[i])) <= ((NU8)(57)) || ((NU8)(s->data[i])) == ((NU8)(43)) || ((NU8)(s->data[i])) == ((NU8)(45)));
5847 LA192_: ;
5848 if (!T191_) goto LA190;
5849 {
5850 if (!(ti < maxlen)) goto LA195_;
5851 t[(ti)- 0] = s->data[i];
5852 ti += ((NI) 1);
5853 }
5854 LA195_: ;
5855 i += ((NI) 1);
5856 {
5857 while (1) {
5858 NIM_BOOL T199_;
5859 T199_ = (NIM_BOOL)0;
5860 T199_ = (i < endPos);
5861 if (!(T199_)) goto LA200_;
5862 T199_ = (((NU8)(s->data[i])) == ((NU8)(46)) || ((NU8)(s->data[i])) == ((NU8)(95)));
5863 LA200_: ;
5864 if (!T199_) goto LA198;
5865 i += ((NI) 1);
5866 } LA198: ;
5867 }
5868 } LA190: ;
5869 }
5870 t[(ti)- 0] = 69;
5871 ti += ((NI) 1);
5872 {
5873 if (!expNegative) goto LA203_;
5874 t[(ti)- 0] = 45;
5875 }
5876 goto LA201_;
5877 LA203_: ;
5878 {
5879 t[(ti)- 0] = 43;
5880 }
5881 LA201_: ;
5882 ti += ((NI) 4);
5883 t[((NI)(ti - ((NI) 1)))- 0] = ((NIM_CHAR) ((NI)(((NI) 48) + (NI)(absExponent % ((NI) 10)))));
5884 absExponent = (NI)(absExponent / ((NI) 10));
5885 t[((NI)(ti - ((NI) 2)))- 0] = ((NIM_CHAR) ((NI)(((NI) 48) + (NI)(absExponent % ((NI) 10)))));
5886 absExponent = (NI)(absExponent / ((NI) 10));
5887 t[((NI)(ti - ((NI) 3)))- 0] = ((NIM_CHAR) ((NI)(((NI) 48) + (NI)(absExponent % ((NI) 10)))));
5888 (*number) = strtod(((NCSTRING) (t)), ((NCSTRING*) NIM_NIL));
5889 }BeforeRet_: ;
5890 return result;
5891 }
N_INLINE(void,addFloat__system_3122)5892 static N_INLINE(void, addFloat__system_3122)(NimStringDesc** result, NF x) {
5893 addFloatRoundtrip__system_3127(result, x);
5894 }
N_NIMCALL(NimStringDesc *,dollar___system_3118)5895 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___system_3118)(NF x) {
5896 NimStringDesc* result;
5897 result = NIM_NIL;
5898 addFloat__system_3122((&result), x);
5899 return result;
5900 }
N_NIMCALL(void,objectInitAux__system_6492)5901 N_LIB_PRIVATE N_NIMCALL(void, objectInitAux__system_6492)(void* dest, TNimNode* n) {
5902 NI d;
5903 d = ((NI) (ptrdiff_t) (dest));
5904 switch ((*n).kind) {
5905 case ((tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ) 0):
5906 {
5907 }
5908 break;
5909 case ((tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ) 1):
5910 {
5911 NI T3_;
5912 T3_ = (NI)0;
5913 T3_ = pluspercent___system_696(d, (*n).offset);
5914 objectInit(((void*) (T3_)), (*n).typ);
5915 }
5916 break;
5917 case ((tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ) 2):
5918 {
5919 {
5920 NI i;
5921 NI colontmp_;
5922 NI res;
5923 i = (NI)0;
5924 colontmp_ = (NI)0;
5925 colontmp_ = (NI)((*n).len - ((NI) 1));
5926 res = ((NI) 0);
5927 {
5928 while (1) {
5929 if (!(res <= colontmp_)) goto LA7;
5930 i = res;
5931 objectInitAux__system_6492(dest, (*n).sons[(i)- 0]);
5932 res += ((NI) 1);
5933 } LA7: ;
5934 }
5935 }
5936 }
5937 break;
5938 case ((tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ) 3):
5939 {
5940 TNimNode* m;
5941 m = selectBranch__system_3645(dest, n);
5942 {
5943 if (!!((m == ((TNimNode*) NIM_NIL)))) goto LA11_;
5944 objectInitAux__system_6492(dest, m);
5945 }
5946 LA11_: ;
5947 }
5948 break;
5949 }
5950 }
N_NIMCALL(void,objectInit)5951 N_LIB_PRIVATE N_NIMCALL(void, objectInit)(void* dest, TNimType* typ) {
5952 NI d;
5953 d = ((NI) (ptrdiff_t) (dest));
5954 switch ((*typ).kind) {
5955 case ((tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A) 17):
5956 {
5957 TNimType** pint;
5958 pint = ((TNimType**) (dest));
5959 (*pint) = typ;
5960 objectInitAux__system_6492(dest, (*typ).node);
5961 }
5962 break;
5963 case ((tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A) 18):
5964 {
5965 objectInitAux__system_6492(dest, (*typ).node);
5966 }
5967 break;
5968 case ((tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A) 16):
5969 case ((tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A) 4):
5970 {
5971 {
5972 NI i;
5973 NI colontmp_;
5974 NI res;
5975 i = (NI)0;
5976 colontmp_ = (NI)0;
5977 colontmp_ = (NI)((NI)((*typ).size / (*(*typ).base).size) - ((NI) 1));
5978 res = ((NI) 0);
5979 {
5980 while (1) {
5981 NI T7_;
5982 if (!(res <= colontmp_)) goto LA6;
5983 i = res;
5984 T7_ = (NI)0;
5985 T7_ = pluspercent___system_696(d, (NI)(i * (*(*typ).base).size));
5986 objectInit(((void*) (T7_)), (*typ).base);
5987 res += ((NI) 1);
5988 } LA6: ;
5989 }
5990 }
5991 }
5992 break;
5993 default:
5994 {
5995 }
5996 break;
5997 }
5998 }
N_NIMCALL(void,genericShallowAssign)5999 N_LIB_PRIVATE N_NIMCALL(void, genericShallowAssign)(void* dest, void* src, TNimType* mt) {
6000 genericAssignAux__system_6377(dest, src, mt, NIM_TRUE);
6001 }
N_NIMCALL(NI,cmp__system_7422)6002 N_LIB_PRIVATE N_NIMCALL(NI, cmp__system_7422)(NI x, NI y) {
6003 NI result;
6004 { result = (NI)0;
6005 {
6006 if (!(x == y)) goto LA3_;
6007 result = ((NI) 0);
6008 goto BeforeRet_;
6009 }
6010 LA3_: ;
6011 {
6012 if (!(x < y)) goto LA7_;
6013 result = ((NI) -1);
6014 goto BeforeRet_;
6015 }
6016 LA7_: ;
6017 result = ((NI) 1);
6018 goto BeforeRet_;
6019 }BeforeRet_: ;
6020 return result;
6021 }
N_NIMCALL(void,Marker_tyRef__9ai78kkwqt3gikTN9cpHKUVg)6022 static N_NIMCALL(void, Marker_tyRef__9ai78kkwqt3gikTN9cpHKUVg)(void* p, NI op) {
6023 NI* a;
6024 a = (NI*)p;
6025 }
N_NIMCALL(NCSTRING *,allocCStringArray__system_2469)6026 N_LIB_PRIVATE N_NIMCALL(NCSTRING*, allocCStringArray__system_2469)(NimStringDesc** a, NI aLen_0) {
6027 NCSTRING* result;
6028 void* T1_;
6029 NimStringDesc** x;
6030 result = (NCSTRING*)0;
6031 T1_ = (void*)0;
6032 T1_ = alloc0Impl__system_1745(((NI) ((NI)((NI)(aLen_0 + ((NI) 1)) * ((NI) 4)))));
6033 result = ((NCSTRING*) (T1_));
6034 x = ((NimStringDesc**) (a));
6035 {
6036 NI i;
6037 NI colontmp_;
6038 NI res;
6039 i = (NI)0;
6040 colontmp_ = (NI)0;
6041 colontmp_ = (aLen_0-1);
6042 res = ((NI) 0);
6043 {
6044 while (1) {
6045 void* T5_;
6046 if (!(res <= colontmp_)) goto LA4;
6047 i = res;
6048 T5_ = (void*)0;
6049 T5_ = alloc0Impl__system_1745(((NI) ((NI)((x[i] ? x[i]->Sup.len : 0) + ((NI) 1)))));
6050 result[i] = ((NCSTRING) (T5_));
6051 copyMem__system_1727(((void*) (result[i])), ((void*) ((&x[i]->data[((NI) 0)]))), ((NI) ((x[i] ? x[i]->Sup.len : 0))));
6052 res += ((NI) 1);
6053 } LA4: ;
6054 }
6055 }
6056 return result;
6057 }
N_NIMCALL(void,deallocCStringArray__system_2503)6058 N_LIB_PRIVATE N_NIMCALL(void, deallocCStringArray__system_2503)(NCSTRING* a) {
6059 NI i;
6060 i = ((NI) 0);
6061 {
6062 while (1) {
6063 if (!!((((void*) (a[i])) == NIM_NIL))) goto LA2;
6064 dealloc(((void*) (a[i])));
6065 i += ((NI) 1);
6066 } LA2: ;
6067 }
6068 dealloc(((void*) (a)));
6069 }
N_NIMCALL(NimStringDesc *,nimBoolToStr)6070 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nimBoolToStr)(NIM_BOOL x) {
6071 NimStringDesc* result;
6072 { result = NIM_NIL;
6073 {
6074 if (!x) goto LA3_;
6075 result = copyString(((NimStringDesc*) &TM__Q5wkpxktOdTGvlSRo9bzt9aw_23));
6076 }
6077 goto LA1_;
6078 LA3_: ;
6079 {
6080 result = copyString(((NimStringDesc*) &TM__Q5wkpxktOdTGvlSRo9bzt9aw_24));
6081 }
6082 LA1_: ;
6083 goto BeforeRet_;
6084 }BeforeRet_: ;
6085 return result;
6086 }
N_NIMCALL(NI,toInt__system_1708)6087 N_LIB_PRIVATE N_NIMCALL(NI, toInt__system_1708)(NF f) {
6088 NI result;
6089 result = (NI)0;
6090 {
6091 if (!(0.0 <= f)) goto LA3_;
6092 result = ((NI) (((NF)(f) + (NF)(0.5))));
6093 }
6094 goto LA1_;
6095 LA3_: ;
6096 {
6097 result = ((NI) (((NF)(f) - (NF)(0.5))));
6098 }
6099 LA1_: ;
6100 return result;
6101 }
N_NOINLINE(NIM_BOOL,isObjSlowPath__system_3313)6102 N_LIB_PRIVATE N_NOINLINE(NIM_BOOL, isObjSlowPath__system_3313)(TNimType* obj, TNimType* subclass, TNimType** cache) {
6103 NIM_BOOL result;
6104 TNimType* x;
6105 { result = (NIM_BOOL)0;
6106 x = (*obj).base;
6107 {
6108 while (1) {
6109 if (!!((x == subclass))) goto LA2;
6110 {
6111 if (!(x == ((TNimType*) NIM_NIL))) goto LA5_;
6112 cache[(((NI) 0))- 0] = obj;
6113 result = NIM_FALSE;
6114 goto BeforeRet_;
6115 }
6116 LA5_: ;
6117 x = (*x).base;
6118 } LA2: ;
6119 }
6120 cache[(((NI) 1))- 0] = obj;
6121 result = NIM_TRUE;
6122 goto BeforeRet_;
6123 }BeforeRet_: ;
6124 return result;
6125 }
N_NIMCALL(void,addFloatRoundtrip__system_6806)6126 N_LIB_PRIVATE N_NIMCALL(void, addFloatRoundtrip__system_6806)(NimStringDesc** result, NF32 x) {
6127 tyArray__eVNFTutn6un5gcq48fQLdg buffer;
6128 NI n;
6129 n = writeFloatToBufferRoundtrip__systemZformatfloat_44(buffer, x);
6130 addCstringN__systemZformatfloat_5(result, ((NCSTRING) ((&buffer[(((NI) 0))- 0]))), n);
6131 }
N_NIMCALL(void,insert__system_7440)6132 N_LIB_PRIVATE N_NIMCALL(void, insert__system_7440)(NimStringDesc** x, NimStringDesc* item, NI i) {
6133 NI xl;
6134 NI j;
6135 xl = ((*x) ? (*x)->Sup.len : 0);
6136 unsureAsgnRef((void**) (&(*x)), setLengthStr((*x), ((NI) ((NI)(xl + (item ? item->Sup.len : 0))))));
6137 j = (NI)(xl - ((NI) 1));
6138 {
6139 while (1) {
6140 if (!(((NI) (i)) <= j)) goto LA2;
6141 (*x)->data[(NI)(j + (item ? item->Sup.len : 0))] = (*x)->data[j];
6142 j -= ((NI) 1);
6143 } LA2: ;
6144 }
6145 j = ((NI) 0);
6146 {
6147 while (1) {
6148 if (!(j < (item ? item->Sup.len : 0))) goto LA4;
6149 (*x)->data[(NI)(j + ((NI) (i)))] = item->data[j];
6150 j += ((NI) 1);
6151 } LA4: ;
6152 }
6153 }
N_NIMCALL(NimStringDesc *,getStackTrace__system_2521)6154 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, getStackTrace__system_2521)(Exception* e) {
6155 NimStringDesc* result;
6156 result = NIM_NIL;
6157 {
6158 if (!!((e == 0))) goto LA3_;
6159 result = dollar___system_2723((*e).trace);
6160 }
6161 goto LA1_;
6162 LA3_: ;
6163 {
6164 result = ((NimStringDesc*) NIM_NIL);
6165 }
6166 LA1_: ;
6167 return result;
6168 }
N_NIMCALL(NI,getMaxMem__system_3973)6169 N_LIB_PRIVATE N_NIMCALL(NI, getMaxMem__system_3973)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a) {
6170 NI result;
6171 result = (NI)0;
6172 result = (((*a).currMem >= (*a).maxMem) ? (*a).currMem : (*a).maxMem);
6173 return result;
6174 }
N_NIMCALL(NI,getMaxMem__system_5234)6175 N_LIB_PRIVATE N_NIMCALL(NI, getMaxMem__system_5234)(void) {
6176 NI result;
6177 result = (NI)0;
6178 result = getMaxMem__system_3973((&gch__system_5209.region));
6179 return result;
6180 }
N_NIMCALL(NI,getTotalMem__system_1938)6181 N_LIB_PRIVATE N_NIMCALL(NI, getTotalMem__system_1938)(void) {
6182 NI result;
6183 result = (NI)0;
6184 result = gch__system_5209.region.currMem;
6185 return result;
6186 }
N_NIMCALL(NimStringDesc *,GC_getStatistics__system_2268)6187 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, GC_getStatistics__system_2268)(void) {
6188 NimStringDesc* result;
6189 NimStringDesc* T1_;
6190 NI T2_;
6191 NimStringDesc* T3_;
6192 NI T4_;
6193 NimStringDesc* T5_;
6194 NimStringDesc* T6_;
6195 NimStringDesc* T7_;
6196 NimStringDesc* T8_;
6197 NimStringDesc* T9_;
6198 NimStringDesc* T10_;
6199 NimStringDesc* T11_;
6200 NimStringDesc* T12_;
6201 NimStringDesc* T13_;
6202 NimStringDesc* T14_;
6203 result = NIM_NIL;
6204 T1_ = NIM_NIL;
6205 T2_ = (NI)0;
6206 T2_ = getTotalMem__system_1938();
6207 T3_ = NIM_NIL;
6208 T3_ = dollar___systemZdollars_3(T2_);
6209 T4_ = (NI)0;
6210 T4_ = getOccupiedMem__system_1936();
6211 T5_ = NIM_NIL;
6212 T5_ = dollar___systemZdollars_3(T4_);
6213 T6_ = NIM_NIL;
6214 T6_ = dollar___systemZdollars_3(gch__system_5209.stat.stackScans);
6215 T7_ = NIM_NIL;
6216 T7_ = dollar___systemZdollars_3(gch__system_5209.stat.maxStackCells);
6217 T8_ = NIM_NIL;
6218 T8_ = dollar___systemZdollars_3(gch__system_5209.stat.cycleCollections);
6219 T9_ = NIM_NIL;
6220 T9_ = dollar___systemZdollars_3(gch__system_5209.stat.maxThreshold);
6221 T10_ = NIM_NIL;
6222 T10_ = dollar___systemZdollars_3(gch__system_5209.zct.cap);
6223 T11_ = NIM_NIL;
6224 T11_ = dollar___systemZdollars_3(gch__system_5209.stat.cycleTableSize);
6225 T12_ = NIM_NIL;
6226 T12_ = dollar___systemZdollars_6((NI64)(gch__system_5209.stat.maxPause / IL64(1000000)));
6227 T1_ = rawNewString((T3_ ? T3_->Sup.len : 0) + (T5_ ? T5_->Sup.len : 0) + (T6_ ? T6_->Sup.len : 0) + (T7_ ? T7_->Sup.len : 0) + (T8_ ? T8_->Sup.len : 0) + (T9_ ? T9_->Sup.len : 0) + (T10_ ? T10_->Sup.len : 0) + (T11_ ? T11_->Sup.len : 0) + (T12_ ? T12_->Sup.len : 0) + 202);
6228 appendString(T1_, ((NimStringDesc*) &TM__Q5wkpxktOdTGvlSRo9bzt9aw_25));
6229 appendString(T1_, T3_);
6230 appendString(T1_, ((NimStringDesc*) &TM__Q5wkpxktOdTGvlSRo9bzt9aw_26));
6231 appendString(T1_, T5_);
6232 appendString(T1_, ((NimStringDesc*) &TM__Q5wkpxktOdTGvlSRo9bzt9aw_27));
6233 appendString(T1_, T6_);
6234 appendString(T1_, ((NimStringDesc*) &TM__Q5wkpxktOdTGvlSRo9bzt9aw_28));
6235 appendString(T1_, T7_);
6236 appendString(T1_, ((NimStringDesc*) &TM__Q5wkpxktOdTGvlSRo9bzt9aw_29));
6237 appendString(T1_, T8_);
6238 appendString(T1_, ((NimStringDesc*) &TM__Q5wkpxktOdTGvlSRo9bzt9aw_30));
6239 appendString(T1_, T9_);
6240 appendString(T1_, ((NimStringDesc*) &TM__Q5wkpxktOdTGvlSRo9bzt9aw_31));
6241 appendString(T1_, T10_);
6242 appendString(T1_, ((NimStringDesc*) &TM__Q5wkpxktOdTGvlSRo9bzt9aw_32));
6243 appendString(T1_, T11_);
6244 appendString(T1_, ((NimStringDesc*) &TM__Q5wkpxktOdTGvlSRo9bzt9aw_33));
6245 appendString(T1_, T12_);
6246 appendString(T1_, ((NimStringDesc*) &TM__Q5wkpxktOdTGvlSRo9bzt9aw_14));
6247 result = T1_;
6248 T13_ = NIM_NIL;
6249 T14_ = NIM_NIL;
6250 T14_ = dollar___systemZdollars_3(gch__system_5209.stat.maxStackSize);
6251 T13_ = rawNewString((T14_ ? T14_->Sup.len : 0) + 22);
6252 appendString(T13_, ((NimStringDesc*) &TM__Q5wkpxktOdTGvlSRo9bzt9aw_34));
6253 appendString(T13_, T14_);
6254 appendString(T13_, ((NimStringDesc*) &TM__Q5wkpxktOdTGvlSRo9bzt9aw_14));
6255 result = resizeString(result, (T13_ ? T13_->Sup.len : 0) + 0);
6256 appendString(result, T13_);
6257 return result;
6258 }
N_INLINE(void,initStackBottomWith)6259 static N_INLINE(void, initStackBottomWith)(void* locals) {
6260 nimGC_setStackBottom(locals);
6261 }
N_NIMCALL(void,systemInit000)6262 N_LIB_PRIVATE N_NIMCALL(void, systemInit000)(void) {
6263 {
6264 TFrame FR_; FR_.len = 0;
6265
6266 nimRegisterThreadLocalMarker(TM__Q5wkpxktOdTGvlSRo9bzt9aw_4);
6267
6268 }/* preInitProc end */
6269 {
6270 initStackBottom();
6271 initGC__system_2398();
6272 registerSignalHandler__system_2992();
6273 }
6274 }
6275
N_NIMCALL(void,systemDatInit000)6276 N_LIB_PRIVATE N_NIMCALL(void, systemDatInit000)(void) {
6277 static TNimNode* TM__Q5wkpxktOdTGvlSRo9bzt9aw_2_5[5];
6278 static TNimNode* TM__Q5wkpxktOdTGvlSRo9bzt9aw_3_3[3];
6279 static TNimNode TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[26];
6280 NTIrootobj__ytyiCJqK439aF9cIibuRVpAg_.size = sizeof(RootObj);
6281 NTIrootobj__ytyiCJqK439aF9cIibuRVpAg_.align = NIM_ALIGNOF(RootObj);
6282 NTIrootobj__ytyiCJqK439aF9cIibuRVpAg_.kind = 17;
6283 NTIrootobj__ytyiCJqK439aF9cIibuRVpAg_.base = 0;
6284 NTIrootobj__ytyiCJqK439aF9cIibuRVpAg_.flags = 1;
6285 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[0].len = 0; TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[0].kind = 2;
6286 NTIrootobj__ytyiCJqK439aF9cIibuRVpAg_.node = &TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[0];
6287 NTIexception__XEycrCsme5C8CVWAYEcdBQ_.size = sizeof(Exception);
6288 NTIexception__XEycrCsme5C8CVWAYEcdBQ_.align = NIM_ALIGNOF(Exception);
6289 NTIexception__XEycrCsme5C8CVWAYEcdBQ_.kind = 17;
6290 NTIexception__XEycrCsme5C8CVWAYEcdBQ_.base = (&NTIrootobj__ytyiCJqK439aF9cIibuRVpAg_);
6291 TM__Q5wkpxktOdTGvlSRo9bzt9aw_2_5[0] = &TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[2];
6292 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[2].kind = 1;
6293 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[2].offset = offsetof(Exception, parent);
6294 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[2].typ = (&NTIrefexception__vU9aO9cTqOMn6CBzhV8rX7Sw_);
6295 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[2].name = "parent";
6296 TM__Q5wkpxktOdTGvlSRo9bzt9aw_2_5[1] = &TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[3];
6297 NTIcstring__S9agCYBinaYZnGWcjTdxclg_.size = sizeof(NCSTRING);
6298 NTIcstring__S9agCYBinaYZnGWcjTdxclg_.align = NIM_ALIGNOF(NCSTRING);
6299 NTIcstring__S9agCYBinaYZnGWcjTdxclg_.kind = 29;
6300 NTIcstring__S9agCYBinaYZnGWcjTdxclg_.base = 0;
6301 NTIcstring__S9agCYBinaYZnGWcjTdxclg_.flags = 3;
6302 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[3].kind = 1;
6303 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[3].offset = offsetof(Exception, name);
6304 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[3].typ = (&NTIcstring__S9agCYBinaYZnGWcjTdxclg_);
6305 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[3].name = "name";
6306 TM__Q5wkpxktOdTGvlSRo9bzt9aw_2_5[2] = &TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[4];
6307 NTIstring__77mFvmsOLKik79ci2hXkHEg_.size = sizeof(NimStringDesc*);
6308 NTIstring__77mFvmsOLKik79ci2hXkHEg_.align = NIM_ALIGNOF(NimStringDesc*);
6309 NTIstring__77mFvmsOLKik79ci2hXkHEg_.kind = 28;
6310 NTIstring__77mFvmsOLKik79ci2hXkHEg_.base = 0;
6311 NTIstring__77mFvmsOLKik79ci2hXkHEg_.flags = 2;
6312 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[4].kind = 1;
6313 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[4].offset = offsetof(Exception, message);
6314 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[4].typ = (&NTIstring__77mFvmsOLKik79ci2hXkHEg_);
6315 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[4].name = "msg";
6316 TM__Q5wkpxktOdTGvlSRo9bzt9aw_2_5[3] = &TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[5];
6317 NTIstacktraceentry__oLyohQ7O2XOvGnflOss8EA_.size = sizeof(tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA);
6318 NTIstacktraceentry__oLyohQ7O2XOvGnflOss8EA_.align = NIM_ALIGNOF(tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA);
6319 NTIstacktraceentry__oLyohQ7O2XOvGnflOss8EA_.kind = 18;
6320 NTIstacktraceentry__oLyohQ7O2XOvGnflOss8EA_.base = 0;
6321 NTIstacktraceentry__oLyohQ7O2XOvGnflOss8EA_.flags = 1;
6322 TM__Q5wkpxktOdTGvlSRo9bzt9aw_3_3[0] = &TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[7];
6323 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[7].kind = 1;
6324 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[7].offset = offsetof(tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA, procname);
6325 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[7].typ = (&NTIcstring__S9agCYBinaYZnGWcjTdxclg_);
6326 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[7].name = "procname";
6327 TM__Q5wkpxktOdTGvlSRo9bzt9aw_3_3[1] = &TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[8];
6328 NTIint__rR5Bzr1D5krxoo1NcNyeMA_.size = sizeof(NI);
6329 NTIint__rR5Bzr1D5krxoo1NcNyeMA_.align = NIM_ALIGNOF(NI);
6330 NTIint__rR5Bzr1D5krxoo1NcNyeMA_.kind = 31;
6331 NTIint__rR5Bzr1D5krxoo1NcNyeMA_.base = 0;
6332 NTIint__rR5Bzr1D5krxoo1NcNyeMA_.flags = 3;
6333 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[8].kind = 1;
6334 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[8].offset = offsetof(tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA, line);
6335 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[8].typ = (&NTIint__rR5Bzr1D5krxoo1NcNyeMA_);
6336 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[8].name = "line";
6337 TM__Q5wkpxktOdTGvlSRo9bzt9aw_3_3[2] = &TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[9];
6338 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[9].kind = 1;
6339 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[9].offset = offsetof(tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA, filename);
6340 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[9].typ = (&NTIcstring__S9agCYBinaYZnGWcjTdxclg_);
6341 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[9].name = "filename";
6342 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[6].len = 3; TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[6].kind = 2; TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[6].sons = &TM__Q5wkpxktOdTGvlSRo9bzt9aw_3_3[0];
6343 NTIstacktraceentry__oLyohQ7O2XOvGnflOss8EA_.node = &TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[6];
6344 NTIseqLstacktraceentryT__uB9b75OUPRENsBAu4AnoePA_.size = sizeof(tySequence__uB9b75OUPRENsBAu4AnoePA*);
6345 NTIseqLstacktraceentryT__uB9b75OUPRENsBAu4AnoePA_.align = NIM_ALIGNOF(tySequence__uB9b75OUPRENsBAu4AnoePA*);
6346 NTIseqLstacktraceentryT__uB9b75OUPRENsBAu4AnoePA_.kind = 24;
6347 NTIseqLstacktraceentryT__uB9b75OUPRENsBAu4AnoePA_.base = (&NTIstacktraceentry__oLyohQ7O2XOvGnflOss8EA_);
6348 NTIseqLstacktraceentryT__uB9b75OUPRENsBAu4AnoePA_.marker = Marker_tySequence__uB9b75OUPRENsBAu4AnoePA;
6349 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[5].kind = 1;
6350 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[5].offset = offsetof(Exception, trace);
6351 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[5].typ = (&NTIseqLstacktraceentryT__uB9b75OUPRENsBAu4AnoePA_);
6352 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[5].name = "trace";
6353 TM__Q5wkpxktOdTGvlSRo9bzt9aw_2_5[4] = &TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[10];
6354 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[10].kind = 1;
6355 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[10].offset = offsetof(Exception, up);
6356 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[10].typ = (&NTIrefexception__vU9aO9cTqOMn6CBzhV8rX7Sw_);
6357 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[10].name = "up";
6358 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[1].len = 5; TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[1].kind = 2; TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[1].sons = &TM__Q5wkpxktOdTGvlSRo9bzt9aw_2_5[0];
6359 NTIexception__XEycrCsme5C8CVWAYEcdBQ_.node = &TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[1];
6360 NTIrefexception__vU9aO9cTqOMn6CBzhV8rX7Sw_.size = sizeof(Exception*);
6361 NTIrefexception__vU9aO9cTqOMn6CBzhV8rX7Sw_.align = NIM_ALIGNOF(Exception*);
6362 NTIrefexception__vU9aO9cTqOMn6CBzhV8rX7Sw_.kind = 22;
6363 NTIrefexception__vU9aO9cTqOMn6CBzhV8rX7Sw_.base = (&NTIexception__XEycrCsme5C8CVWAYEcdBQ_);
6364 NTIrefexception__vU9aO9cTqOMn6CBzhV8rX7Sw_.marker = Marker_tyRef__vU9aO9cTqOMn6CBzhV8rX7Sw;
6365 NTIdefect__LbeSGvgPzGzXnW9caIkJqMA_.size = sizeof(tyObject_Defect__LbeSGvgPzGzXnW9caIkJqMA);
6366 NTIdefect__LbeSGvgPzGzXnW9caIkJqMA_.align = NIM_ALIGNOF(tyObject_Defect__LbeSGvgPzGzXnW9caIkJqMA);
6367 NTIdefect__LbeSGvgPzGzXnW9caIkJqMA_.kind = 17;
6368 NTIdefect__LbeSGvgPzGzXnW9caIkJqMA_.base = (&NTIexception__XEycrCsme5C8CVWAYEcdBQ_);
6369 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[11].len = 0; TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[11].kind = 2;
6370 NTIdefect__LbeSGvgPzGzXnW9caIkJqMA_.node = &TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[11];
6371 NTIreraisedefect__E0L0wGYS1gPD81VLstNO2g_.size = sizeof(tyObject_ReraiseDefect__E0L0wGYS1gPD81VLstNO2g);
6372 NTIreraisedefect__E0L0wGYS1gPD81VLstNO2g_.align = NIM_ALIGNOF(tyObject_ReraiseDefect__E0L0wGYS1gPD81VLstNO2g);
6373 NTIreraisedefect__E0L0wGYS1gPD81VLstNO2g_.kind = 17;
6374 NTIreraisedefect__E0L0wGYS1gPD81VLstNO2g_.base = (&NTIdefect__LbeSGvgPzGzXnW9caIkJqMA_);
6375 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[12].len = 0; TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[12].kind = 2;
6376 NTIreraisedefect__E0L0wGYS1gPD81VLstNO2g_.node = &TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[12];
6377 NTIrefreraisedefect__uG62cfJZ15c2siK3CKLmnQ_.size = sizeof(tyObject_ReraiseDefect__E0L0wGYS1gPD81VLstNO2g*);
6378 NTIrefreraisedefect__uG62cfJZ15c2siK3CKLmnQ_.align = NIM_ALIGNOF(tyObject_ReraiseDefect__E0L0wGYS1gPD81VLstNO2g*);
6379 NTIrefreraisedefect__uG62cfJZ15c2siK3CKLmnQ_.kind = 22;
6380 NTIrefreraisedefect__uG62cfJZ15c2siK3CKLmnQ_.base = (&NTIreraisedefect__E0L0wGYS1gPD81VLstNO2g_);
6381 NTIrefreraisedefect__uG62cfJZ15c2siK3CKLmnQ_.marker = Marker_tyRef__uG62cfJZ15c2siK3CKLmnQ;
6382 NTIarithmeticdefect__cT9c9bHlHSpA1QTnKbHjnIkA_.size = sizeof(tyObject_ArithmeticDefect__cT9c9bHlHSpA1QTnKbHjnIkA);
6383 NTIarithmeticdefect__cT9c9bHlHSpA1QTnKbHjnIkA_.align = NIM_ALIGNOF(tyObject_ArithmeticDefect__cT9c9bHlHSpA1QTnKbHjnIkA);
6384 NTIarithmeticdefect__cT9c9bHlHSpA1QTnKbHjnIkA_.kind = 17;
6385 NTIarithmeticdefect__cT9c9bHlHSpA1QTnKbHjnIkA_.base = (&NTIdefect__LbeSGvgPzGzXnW9caIkJqMA_);
6386 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[13].len = 0; TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[13].kind = 2;
6387 NTIarithmeticdefect__cT9c9bHlHSpA1QTnKbHjnIkA_.node = &TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[13];
6388 NTIoverflowdefect__9cxMi1BPLc3UKt9br86bGfGQ_.size = sizeof(tyObject_OverflowDefect__9cxMi1BPLc3UKt9br86bGfGQ);
6389 NTIoverflowdefect__9cxMi1BPLc3UKt9br86bGfGQ_.align = NIM_ALIGNOF(tyObject_OverflowDefect__9cxMi1BPLc3UKt9br86bGfGQ);
6390 NTIoverflowdefect__9cxMi1BPLc3UKt9br86bGfGQ_.kind = 17;
6391 NTIoverflowdefect__9cxMi1BPLc3UKt9br86bGfGQ_.base = (&NTIarithmeticdefect__cT9c9bHlHSpA1QTnKbHjnIkA_);
6392 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[14].len = 0; TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[14].kind = 2;
6393 NTIoverflowdefect__9cxMi1BPLc3UKt9br86bGfGQ_.node = &TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[14];
6394 NTIrefoverflowdefect__r8GBEWywN07B3Rat3azS4Q_.size = sizeof(tyObject_OverflowDefect__9cxMi1BPLc3UKt9br86bGfGQ*);
6395 NTIrefoverflowdefect__r8GBEWywN07B3Rat3azS4Q_.align = NIM_ALIGNOF(tyObject_OverflowDefect__9cxMi1BPLc3UKt9br86bGfGQ*);
6396 NTIrefoverflowdefect__r8GBEWywN07B3Rat3azS4Q_.kind = 22;
6397 NTIrefoverflowdefect__r8GBEWywN07B3Rat3azS4Q_.base = (&NTIoverflowdefect__9cxMi1BPLc3UKt9br86bGfGQ_);
6398 NTIrefoverflowdefect__r8GBEWywN07B3Rat3azS4Q_.marker = Marker_tyRef__r8GBEWywN07B3Rat3azS4Q;
6399 NTIbool__VaVACK0bpYmqIQ0mKcHfQQ_.size = sizeof(NIM_BOOL);
6400 NTIbool__VaVACK0bpYmqIQ0mKcHfQQ_.align = NIM_ALIGNOF(NIM_BOOL);
6401 NTIbool__VaVACK0bpYmqIQ0mKcHfQQ_.kind = 1;
6402 NTIbool__VaVACK0bpYmqIQ0mKcHfQQ_.base = 0;
6403 NTIbool__VaVACK0bpYmqIQ0mKcHfQQ_.flags = 3;
6404 NTIcatchableerror__qrLSDoe2oBoAqNtJ9badtnA_.size = sizeof(tyObject_CatchableError__qrLSDoe2oBoAqNtJ9badtnA);
6405 NTIcatchableerror__qrLSDoe2oBoAqNtJ9badtnA_.align = NIM_ALIGNOF(tyObject_CatchableError__qrLSDoe2oBoAqNtJ9badtnA);
6406 NTIcatchableerror__qrLSDoe2oBoAqNtJ9badtnA_.kind = 17;
6407 NTIcatchableerror__qrLSDoe2oBoAqNtJ9badtnA_.base = (&NTIexception__XEycrCsme5C8CVWAYEcdBQ_);
6408 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[15].len = 0; TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[15].kind = 2;
6409 NTIcatchableerror__qrLSDoe2oBoAqNtJ9badtnA_.node = &TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[15];
6410 NTIvalueerror__yoNlBGx0D2tRizIdhQuENw_.size = sizeof(tyObject_ValueError__yoNlBGx0D2tRizIdhQuENw);
6411 NTIvalueerror__yoNlBGx0D2tRizIdhQuENw_.align = NIM_ALIGNOF(tyObject_ValueError__yoNlBGx0D2tRizIdhQuENw);
6412 NTIvalueerror__yoNlBGx0D2tRizIdhQuENw_.kind = 17;
6413 NTIvalueerror__yoNlBGx0D2tRizIdhQuENw_.base = (&NTIcatchableerror__qrLSDoe2oBoAqNtJ9badtnA_);
6414 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[16].len = 0; TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[16].kind = 2;
6415 NTIvalueerror__yoNlBGx0D2tRizIdhQuENw_.node = &TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[16];
6416 NTIkeyerror__t7nhKLvXTQS9cS8ByJU9bIag_.size = sizeof(tyObject_KeyError__t7nhKLvXTQS9cS8ByJU9bIag);
6417 NTIkeyerror__t7nhKLvXTQS9cS8ByJU9bIag_.align = NIM_ALIGNOF(tyObject_KeyError__t7nhKLvXTQS9cS8ByJU9bIag);
6418 NTIkeyerror__t7nhKLvXTQS9cS8ByJU9bIag_.kind = 17;
6419 NTIkeyerror__t7nhKLvXTQS9cS8ByJU9bIag_.base = (&NTIvalueerror__yoNlBGx0D2tRizIdhQuENw_);
6420 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[17].len = 0; TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[17].kind = 2;
6421 NTIkeyerror__t7nhKLvXTQS9cS8ByJU9bIag_.node = &TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[17];
6422 NTIrefkeyerror__8SzoIAgLw9ci2v0yafHj9b6Q_.size = sizeof(tyObject_KeyError__t7nhKLvXTQS9cS8ByJU9bIag*);
6423 NTIrefkeyerror__8SzoIAgLw9ci2v0yafHj9b6Q_.align = NIM_ALIGNOF(tyObject_KeyError__t7nhKLvXTQS9cS8ByJU9bIag*);
6424 NTIrefkeyerror__8SzoIAgLw9ci2v0yafHj9b6Q_.kind = 22;
6425 NTIrefkeyerror__8SzoIAgLw9ci2v0yafHj9b6Q_.base = (&NTIkeyerror__t7nhKLvXTQS9cS8ByJU9bIag_);
6426 NTIrefkeyerror__8SzoIAgLw9ci2v0yafHj9b6Q_.marker = Marker_tyRef__8SzoIAgLw9ci2v0yafHj9b6Q;
6427 NTIassertiondefect__PtYxPmY5X0dorfvxAFbJpQ_.size = sizeof(tyObject_AssertionDefect__PtYxPmY5X0dorfvxAFbJpQ);
6428 NTIassertiondefect__PtYxPmY5X0dorfvxAFbJpQ_.align = NIM_ALIGNOF(tyObject_AssertionDefect__PtYxPmY5X0dorfvxAFbJpQ);
6429 NTIassertiondefect__PtYxPmY5X0dorfvxAFbJpQ_.kind = 17;
6430 NTIassertiondefect__PtYxPmY5X0dorfvxAFbJpQ_.base = (&NTIdefect__LbeSGvgPzGzXnW9caIkJqMA_);
6431 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[18].len = 0; TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[18].kind = 2;
6432 NTIassertiondefect__PtYxPmY5X0dorfvxAFbJpQ_.node = &TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[18];
6433 NTIrefassertiondefect__S8DV6hfcgC9c0IiUsAoR29cQ_.size = sizeof(tyObject_AssertionDefect__PtYxPmY5X0dorfvxAFbJpQ*);
6434 NTIrefassertiondefect__S8DV6hfcgC9c0IiUsAoR29cQ_.align = NIM_ALIGNOF(tyObject_AssertionDefect__PtYxPmY5X0dorfvxAFbJpQ*);
6435 NTIrefassertiondefect__S8DV6hfcgC9c0IiUsAoR29cQ_.kind = 22;
6436 NTIrefassertiondefect__S8DV6hfcgC9c0IiUsAoR29cQ_.base = (&NTIassertiondefect__PtYxPmY5X0dorfvxAFbJpQ_);
6437 NTIrefassertiondefect__S8DV6hfcgC9c0IiUsAoR29cQ_.marker = Marker_tyRef__S8DV6hfcgC9c0IiUsAoR29cQ;
6438 NTIuint4954__M4na42GvebBMnI5wV9cYMxg_.size = sizeof(NU16);
6439 NTIuint4954__M4na42GvebBMnI5wV9cYMxg_.align = NIM_ALIGNOF(NU16);
6440 NTIuint4954__M4na42GvebBMnI5wV9cYMxg_.kind = 42;
6441 NTIuint4954__M4na42GvebBMnI5wV9cYMxg_.base = 0;
6442 NTIuint4954__M4na42GvebBMnI5wV9cYMxg_.flags = 3;
6443 NTIint4954__kDPg4wXyR8DDyA0MeEjIsw_.size = sizeof(NI16);
6444 NTIint4954__kDPg4wXyR8DDyA0MeEjIsw_.align = NIM_ALIGNOF(NI16);
6445 NTIint4954__kDPg4wXyR8DDyA0MeEjIsw_.kind = 33;
6446 NTIint4954__kDPg4wXyR8DDyA0MeEjIsw_.base = 0;
6447 NTIint4954__kDPg4wXyR8DDyA0MeEjIsw_.flags = 3;
6448 NTIint5150__sVg18TP9cLifHyygRe9cro9aA_.size = sizeof(NI32);
6449 NTIint5150__sVg18TP9cLifHyygRe9cro9aA_.align = NIM_ALIGNOF(NI32);
6450 NTIint5150__sVg18TP9cLifHyygRe9cro9aA_.kind = 34;
6451 NTIint5150__sVg18TP9cLifHyygRe9cro9aA_.base = 0;
6452 NTIint5150__sVg18TP9cLifHyygRe9cro9aA_.flags = 3;
6453 NTIint56__chXunH2dwinSkhpA6JnsXw_.size = sizeof(NI8);
6454 NTIint56__chXunH2dwinSkhpA6JnsXw_.align = NIM_ALIGNOF(NI8);
6455 NTIint56__chXunH2dwinSkhpA6JnsXw_.kind = 32;
6456 NTIint56__chXunH2dwinSkhpA6JnsXw_.base = 0;
6457 NTIint56__chXunH2dwinSkhpA6JnsXw_.flags = 3;
6458 NTIfloat__w9bl9a1ul9ctRJWiMl9cNnIMvg_.size = sizeof(NF);
6459 NTIfloat__w9bl9a1ul9ctRJWiMl9cNnIMvg_.align = NIM_ALIGNOF(NF);
6460 NTIfloat__w9bl9a1ul9ctRJWiMl9cNnIMvg_.kind = 36;
6461 NTIfloat__w9bl9a1ul9ctRJWiMl9cNnIMvg_.base = 0;
6462 NTIfloat__w9bl9a1ul9ctRJWiMl9cNnIMvg_.flags = 3;
6463 NTIchar__nmiMWKVIe46vacnhAFrQvw_.size = sizeof(NIM_CHAR);
6464 NTIchar__nmiMWKVIe46vacnhAFrQvw_.align = NIM_ALIGNOF(NIM_CHAR);
6465 NTIchar__nmiMWKVIe46vacnhAFrQvw_.kind = 2;
6466 NTIchar__nmiMWKVIe46vacnhAFrQvw_.base = 0;
6467 NTIchar__nmiMWKVIe46vacnhAFrQvw_.flags = 3;
6468 NTIobjectassignmentdefect__6toVe0IizlEwN9bORXEdX3g_.size = sizeof(tyObject_ObjectAssignmentDefect__6toVe0IizlEwN9bORXEdX3g);
6469 NTIobjectassignmentdefect__6toVe0IizlEwN9bORXEdX3g_.align = NIM_ALIGNOF(tyObject_ObjectAssignmentDefect__6toVe0IizlEwN9bORXEdX3g);
6470 NTIobjectassignmentdefect__6toVe0IizlEwN9bORXEdX3g_.kind = 17;
6471 NTIobjectassignmentdefect__6toVe0IizlEwN9bORXEdX3g_.base = (&NTIdefect__LbeSGvgPzGzXnW9caIkJqMA_);
6472 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[19].len = 0; TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[19].kind = 2;
6473 NTIobjectassignmentdefect__6toVe0IizlEwN9bORXEdX3g_.node = &TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[19];
6474 NTIrefobjectassignmentdefect__C0A9bPZSVeyr2BWpBf4Jxqw_.size = sizeof(tyObject_ObjectAssignmentDefect__6toVe0IizlEwN9bORXEdX3g*);
6475 NTIrefobjectassignmentdefect__C0A9bPZSVeyr2BWpBf4Jxqw_.align = NIM_ALIGNOF(tyObject_ObjectAssignmentDefect__6toVe0IizlEwN9bORXEdX3g*);
6476 NTIrefobjectassignmentdefect__C0A9bPZSVeyr2BWpBf4Jxqw_.kind = 22;
6477 NTIrefobjectassignmentdefect__C0A9bPZSVeyr2BWpBf4Jxqw_.base = (&NTIobjectassignmentdefect__6toVe0IizlEwN9bORXEdX3g_);
6478 NTIrefobjectassignmentdefect__C0A9bPZSVeyr2BWpBf4Jxqw_.marker = Marker_tyRef__C0A9bPZSVeyr2BWpBf4Jxqw;
6479 NTIindexdefect__n6tGEPHKkh7E1AP9bj30WrQ_.size = sizeof(tyObject_IndexDefect__n6tGEPHKkh7E1AP9bj30WrQ);
6480 NTIindexdefect__n6tGEPHKkh7E1AP9bj30WrQ_.align = NIM_ALIGNOF(tyObject_IndexDefect__n6tGEPHKkh7E1AP9bj30WrQ);
6481 NTIindexdefect__n6tGEPHKkh7E1AP9bj30WrQ_.kind = 17;
6482 NTIindexdefect__n6tGEPHKkh7E1AP9bj30WrQ_.base = (&NTIdefect__LbeSGvgPzGzXnW9caIkJqMA_);
6483 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[20].len = 0; TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[20].kind = 2;
6484 NTIindexdefect__n6tGEPHKkh7E1AP9bj30WrQ_.node = &TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[20];
6485 NTIrefindexdefect__RJnHOb9cQV3neNC9cDkRgMyw_.size = sizeof(tyObject_IndexDefect__n6tGEPHKkh7E1AP9bj30WrQ*);
6486 NTIrefindexdefect__RJnHOb9cQV3neNC9cDkRgMyw_.align = NIM_ALIGNOF(tyObject_IndexDefect__n6tGEPHKkh7E1AP9bj30WrQ*);
6487 NTIrefindexdefect__RJnHOb9cQV3neNC9cDkRgMyw_.kind = 22;
6488 NTIrefindexdefect__RJnHOb9cQV3neNC9cDkRgMyw_.base = (&NTIindexdefect__n6tGEPHKkh7E1AP9bj30WrQ_);
6489 NTIrefindexdefect__RJnHOb9cQV3neNC9cDkRgMyw_.marker = Marker_tyRef__RJnHOb9cQV3neNC9cDkRgMyw;
6490 NTIrefvalueerror__Ie1m0dv1ZHg72IgPRr1cDw_.size = sizeof(tyObject_ValueError__yoNlBGx0D2tRizIdhQuENw*);
6491 NTIrefvalueerror__Ie1m0dv1ZHg72IgPRr1cDw_.align = NIM_ALIGNOF(tyObject_ValueError__yoNlBGx0D2tRizIdhQuENw*);
6492 NTIrefvalueerror__Ie1m0dv1ZHg72IgPRr1cDw_.kind = 22;
6493 NTIrefvalueerror__Ie1m0dv1ZHg72IgPRr1cDw_.base = (&NTIvalueerror__yoNlBGx0D2tRizIdhQuENw_);
6494 NTIrefvalueerror__Ie1m0dv1ZHg72IgPRr1cDw_.marker = Marker_tyRef__Ie1m0dv1ZHg72IgPRr1cDw;
6495 NTIoserror__BeJgrOdDsczOwEWOZbRfKA_.size = sizeof(tyObject_OSError__BeJgrOdDsczOwEWOZbRfKA);
6496 NTIoserror__BeJgrOdDsczOwEWOZbRfKA_.align = NIM_ALIGNOF(tyObject_OSError__BeJgrOdDsczOwEWOZbRfKA);
6497 NTIoserror__BeJgrOdDsczOwEWOZbRfKA_.kind = 17;
6498 NTIoserror__BeJgrOdDsczOwEWOZbRfKA_.base = (&NTIcatchableerror__qrLSDoe2oBoAqNtJ9badtnA_);
6499 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[21].kind = 1;
6500 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[21].offset = offsetof(tyObject_OSError__BeJgrOdDsczOwEWOZbRfKA, errorCode);
6501 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[21].typ = (&NTIint5150__sVg18TP9cLifHyygRe9cro9aA_);
6502 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[21].name = "errorCode";
6503 NTIoserror__BeJgrOdDsczOwEWOZbRfKA_.node = &TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[21];
6504 NTIrefoserror__9clYsYwyjCqe2PFTuCI3Ubg_.size = sizeof(tyObject_OSError__BeJgrOdDsczOwEWOZbRfKA*);
6505 NTIrefoserror__9clYsYwyjCqe2PFTuCI3Ubg_.align = NIM_ALIGNOF(tyObject_OSError__BeJgrOdDsczOwEWOZbRfKA*);
6506 NTIrefoserror__9clYsYwyjCqe2PFTuCI3Ubg_.kind = 22;
6507 NTIrefoserror__9clYsYwyjCqe2PFTuCI3Ubg_.base = (&NTIoserror__BeJgrOdDsczOwEWOZbRfKA_);
6508 NTIrefoserror__9clYsYwyjCqe2PFTuCI3Ubg_.marker = Marker_tyRef__9clYsYwyjCqe2PFTuCI3Ubg;
6509 NTIioerror__iLZrPn9anoh9ad1MmO0RczFw_.size = sizeof(tyObject_IOError__iLZrPn9anoh9ad1MmO0RczFw);
6510 NTIioerror__iLZrPn9anoh9ad1MmO0RczFw_.align = NIM_ALIGNOF(tyObject_IOError__iLZrPn9anoh9ad1MmO0RczFw);
6511 NTIioerror__iLZrPn9anoh9ad1MmO0RczFw_.kind = 17;
6512 NTIioerror__iLZrPn9anoh9ad1MmO0RczFw_.base = (&NTIcatchableerror__qrLSDoe2oBoAqNtJ9badtnA_);
6513 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[22].len = 0; TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[22].kind = 2;
6514 NTIioerror__iLZrPn9anoh9ad1MmO0RczFw_.node = &TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[22];
6515 NTIrefioerror__HMIVdYjdZYWskTmTQVo5BQ_.size = sizeof(tyObject_IOError__iLZrPn9anoh9ad1MmO0RczFw*);
6516 NTIrefioerror__HMIVdYjdZYWskTmTQVo5BQ_.align = NIM_ALIGNOF(tyObject_IOError__iLZrPn9anoh9ad1MmO0RczFw*);
6517 NTIrefioerror__HMIVdYjdZYWskTmTQVo5BQ_.kind = 22;
6518 NTIrefioerror__HMIVdYjdZYWskTmTQVo5BQ_.base = (&NTIioerror__iLZrPn9anoh9ad1MmO0RczFw_);
6519 NTIrefioerror__HMIVdYjdZYWskTmTQVo5BQ_.marker = Marker_tyRef__HMIVdYjdZYWskTmTQVo5BQ;
6520 NTIeoferror__KGSY1JdrNB7Xi8KDhXFhSg_.size = sizeof(tyObject_EOFError__KGSY1JdrNB7Xi8KDhXFhSg);
6521 NTIeoferror__KGSY1JdrNB7Xi8KDhXFhSg_.align = NIM_ALIGNOF(tyObject_EOFError__KGSY1JdrNB7Xi8KDhXFhSg);
6522 NTIeoferror__KGSY1JdrNB7Xi8KDhXFhSg_.kind = 17;
6523 NTIeoferror__KGSY1JdrNB7Xi8KDhXFhSg_.base = (&NTIioerror__iLZrPn9anoh9ad1MmO0RczFw_);
6524 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[23].len = 0; TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[23].kind = 2;
6525 NTIeoferror__KGSY1JdrNB7Xi8KDhXFhSg_.node = &TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[23];
6526 NTIrefeoferror__LEclZrWX2FQAodlapxGITw_.size = sizeof(tyObject_EOFError__KGSY1JdrNB7Xi8KDhXFhSg*);
6527 NTIrefeoferror__LEclZrWX2FQAodlapxGITw_.align = NIM_ALIGNOF(tyObject_EOFError__KGSY1JdrNB7Xi8KDhXFhSg*);
6528 NTIrefeoferror__LEclZrWX2FQAodlapxGITw_.kind = 22;
6529 NTIrefeoferror__LEclZrWX2FQAodlapxGITw_.base = (&NTIeoferror__KGSY1JdrNB7Xi8KDhXFhSg_);
6530 NTIrefeoferror__LEclZrWX2FQAodlapxGITw_.marker = Marker_tyRef__LEclZrWX2FQAodlapxGITw;
6531 NTIbiggestint__Aav8dQoMlCFnZRxA0IhTHQ_.size = sizeof(NI64);
6532 NTIbiggestint__Aav8dQoMlCFnZRxA0IhTHQ_.align = NIM_ALIGNOF(NI64);
6533 NTIbiggestint__Aav8dQoMlCFnZRxA0IhTHQ_.kind = 35;
6534 NTIbiggestint__Aav8dQoMlCFnZRxA0IhTHQ_.base = 0;
6535 NTIbiggestint__Aav8dQoMlCFnZRxA0IhTHQ_.flags = 3;
6536 NTIuint5150__JrFyJbYm9b5I4hJ9cWDqvfYA_.size = sizeof(NU32);
6537 NTIuint5150__JrFyJbYm9b5I4hJ9cWDqvfYA_.align = NIM_ALIGNOF(NU32);
6538 NTIuint5150__JrFyJbYm9b5I4hJ9cWDqvfYA_.kind = 43;
6539 NTIuint5150__JrFyJbYm9b5I4hJ9cWDqvfYA_.base = 0;
6540 NTIuint5150__JrFyJbYm9b5I4hJ9cWDqvfYA_.flags = 3;
6541 NTIrootref__0vJvi4uHbxjbxlkkX7P1EA_.size = sizeof(RootObj*);
6542 NTIrootref__0vJvi4uHbxjbxlkkX7P1EA_.align = NIM_ALIGNOF(RootObj*);
6543 NTIrootref__0vJvi4uHbxjbxlkkX7P1EA_.kind = 22;
6544 NTIrootref__0vJvi4uHbxjbxlkkX7P1EA_.base = (&NTIrootobj__ytyiCJqK439aF9cIibuRVpAg_);
6545 NTIrootref__0vJvi4uHbxjbxlkkX7P1EA_.marker = Marker_tyRef__0vJvi4uHbxjbxlkkX7P1EA;
6546 NTIuint56__k3HXouOuhqAKq0dx450lXQ_.size = sizeof(NU8);
6547 NTIuint56__k3HXouOuhqAKq0dx450lXQ_.align = NIM_ALIGNOF(NU8);
6548 NTIuint56__k3HXouOuhqAKq0dx450lXQ_.kind = 41;
6549 NTIuint56__k3HXouOuhqAKq0dx450lXQ_.base = 0;
6550 NTIuint56__k3HXouOuhqAKq0dx450lXQ_.flags = 3;
6551 NTIrangedefect__Rp9adJYTsbbIUzQ8fWxwgdA_.size = sizeof(tyObject_RangeDefect__Rp9adJYTsbbIUzQ8fWxwgdA);
6552 NTIrangedefect__Rp9adJYTsbbIUzQ8fWxwgdA_.align = NIM_ALIGNOF(tyObject_RangeDefect__Rp9adJYTsbbIUzQ8fWxwgdA);
6553 NTIrangedefect__Rp9adJYTsbbIUzQ8fWxwgdA_.kind = 17;
6554 NTIrangedefect__Rp9adJYTsbbIUzQ8fWxwgdA_.base = (&NTIdefect__LbeSGvgPzGzXnW9caIkJqMA_);
6555 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[24].len = 0; TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[24].kind = 2;
6556 NTIrangedefect__Rp9adJYTsbbIUzQ8fWxwgdA_.node = &TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[24];
6557 NTIint__xHTZrq9aYs6boc9bCba0JbpQ_.size = sizeof(NI);
6558 NTIint__xHTZrq9aYs6boc9bCba0JbpQ_.align = NIM_ALIGNOF(NI);
6559 NTIint__xHTZrq9aYs6boc9bCba0JbpQ_.kind = 31;
6560 NTIint__xHTZrq9aYs6boc9bCba0JbpQ_.base = 0;
6561 NTIint__xHTZrq9aYs6boc9bCba0JbpQ_.flags = 3;
6562 NTIrefint__9ai78kkwqt3gikTN9cpHKUVg_.size = sizeof(NI*);
6563 NTIrefint__9ai78kkwqt3gikTN9cpHKUVg_.align = NIM_ALIGNOF(NI*);
6564 NTIrefint__9ai78kkwqt3gikTN9cpHKUVg_.kind = 22;
6565 NTIrefint__9ai78kkwqt3gikTN9cpHKUVg_.base = (&NTIint__rR5Bzr1D5krxoo1NcNyeMA_);
6566 NTIrefint__9ai78kkwqt3gikTN9cpHKUVg_.marker = Marker_tyRef__9ai78kkwqt3gikTN9cpHKUVg;
6567 NTIptrstring__Y36n7l9b7WX4rcaAYCe6LWw_.size = sizeof(NimStringDesc**);
6568 NTIptrstring__Y36n7l9b7WX4rcaAYCe6LWw_.align = NIM_ALIGNOF(NimStringDesc**);
6569 NTIptrstring__Y36n7l9b7WX4rcaAYCe6LWw_.kind = 21;
6570 NTIptrstring__Y36n7l9b7WX4rcaAYCe6LWw_.base = (&NTIstring__77mFvmsOLKik79ci2hXkHEg_);
6571 NTIptrstring__Y36n7l9b7WX4rcaAYCe6LWw_.flags = 3;
6572 NTIcint__nlCscttRCss70IBTyuBqnA_.size = sizeof(int);
6573 NTIcint__nlCscttRCss70IBTyuBqnA_.align = NIM_ALIGNOF(int);
6574 NTIcint__nlCscttRCss70IBTyuBqnA_.kind = 34;
6575 NTIcint__nlCscttRCss70IBTyuBqnA_.base = 0;
6576 NTIcint__nlCscttRCss70IBTyuBqnA_.flags = 3;
6577 NTIdivbyzerodefect__n3A4gjRrFZBuNnTYx1h9a8w_.size = sizeof(tyObject_DivByZeroDefect__n3A4gjRrFZBuNnTYx1h9a8w);
6578 NTIdivbyzerodefect__n3A4gjRrFZBuNnTYx1h9a8w_.align = NIM_ALIGNOF(tyObject_DivByZeroDefect__n3A4gjRrFZBuNnTYx1h9a8w);
6579 NTIdivbyzerodefect__n3A4gjRrFZBuNnTYx1h9a8w_.kind = 17;
6580 NTIdivbyzerodefect__n3A4gjRrFZBuNnTYx1h9a8w_.base = (&NTIarithmeticdefect__cT9c9bHlHSpA1QTnKbHjnIkA_);
6581 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[25].len = 0; TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[25].kind = 2;
6582 NTIdivbyzerodefect__n3A4gjRrFZBuNnTYx1h9a8w_.node = &TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[25];
6583 NTIint__u50F0puw9b9c6p256tX4eJLQ_.size = sizeof(NI);
6584 NTIint__u50F0puw9b9c6p256tX4eJLQ_.align = NIM_ALIGNOF(NI);
6585 NTIint__u50F0puw9b9c6p256tX4eJLQ_.kind = 31;
6586 NTIint__u50F0puw9b9c6p256tX4eJLQ_.base = 0;
6587 NTIint__u50F0puw9b9c6p256tX4eJLQ_.flags = 3;
6588 }
6589
6590