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