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