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