1 /* Generated by Nim Compiler v1.6.2 */
2 #define NIM_INTBITS 64
3 #define NIM_EmulateOverflowChecks
4 
5 #include "nimbase.h"
6 #include <string.h>
7 #undef LANGUAGE_C
8 #undef MIPSEB
9 #undef MIPSEL
10 #undef PPC
11 #undef R3000
12 #undef R4000
13 #undef i386
14 #undef linux
15 #undef mips
16 #undef near
17 #undef far
18 #undef powerpc
19 #undef unix
20 #define nimfr_(x, y)
21 #define nimln_(x, y)
22 typedef struct tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw;
23 typedef struct tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q;
24 typedef struct NimStringDesc NimStringDesc;
25 typedef struct TGenericSeq TGenericSeq;
26 typedef struct tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw;
27 typedef struct tyObject_TPassContext__Hb6rFM0ecvtlLf2kv9aU75w tyObject_TPassContext__Hb6rFM0ecvtlLf2kv9aU75w;
28 typedef struct RootObj RootObj;
29 typedef struct TNimType TNimType;
30 typedef struct TNimNode TNimNode;
31 typedef struct tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q;
32 typedef struct tySequence__YdLNCDKYeipzJx3I8Xw82Q tySequence__YdLNCDKYeipzJx3I8Xw82Q;
33 typedef struct tySequence__PJMRIt5QxCm6bRaVyQ5CGA tySequence__PJMRIt5QxCm6bRaVyQ5CGA;
34 typedef struct tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A;
35 typedef struct tyObject_PProccolonObjectType___VFEBuxrDHC6kHPzc1TWaRQ tyObject_PProccolonObjectType___VFEBuxrDHC6kHPzc1TWaRQ;
36 typedef struct tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ;
37 typedef struct tySequence__YWbgnI9b9a4j9aDYnupShIg3A tySequence__YWbgnI9b9a4j9aDYnupShIg3A;
38 typedef struct tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw;
39 typedef struct tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw;
40 typedef struct tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ;
41 typedef struct tyObject_Profiler__X5SfC6PDEhDFna4qLF0vtg tyObject_Profiler__X5SfC6PDEhDFna4qLF0vtg;
42 typedef struct tyObject_TStackFrame__DYXeymOyKb0OnIuD1ihEpQ tyObject_TStackFrame__DYXeymOyKb0OnIuD1ihEpQ;
43 typedef struct tySequence__Q9atPKk5Xsv6h4rje4WzNLQ tySequence__Q9atPKk5Xsv6h4rje4WzNLQ;
44 typedef struct tyObject_Table__Ea0e9azliYta9cYyn0d49ah0w tyObject_Table__Ea0e9azliYta9cYyn0d49ah0w;
45 typedef struct tySequence__E8pi9b5QNahsURYzXMjh3qw tySequence__E8pi9b5QNahsURYzXMjh3qw;
46 typedef struct tyTuple__4707W0MdkBgzyuDClNdLBQ tyTuple__4707W0MdkBgzyuDClNdLBQ;
47 typedef struct tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g;
48 typedef struct tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w;
49 typedef struct tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ;
50 typedef struct tyObject_GcStack__7fytPA5bBsob6See21YMRA tyObject_GcStack__7fytPA5bBsob6See21YMRA;
51 typedef struct tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg;
52 typedef struct tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ;
53 typedef struct tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg;
54 typedef struct tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw;
55 typedef struct tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA;
56 typedef struct tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw;
57 typedef struct tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw;
58 typedef struct tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg;
59 typedef struct tyTuple__ujsjpB2O9cjj3uDHsXbnSzg tyTuple__ujsjpB2O9cjj3uDHsXbnSzg;
60 typedef struct tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg;
61 typedef struct tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ;
62 typedef struct tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg;
63 typedef struct tyObject_TType__facALICuu8zUj0hjvbTLFg tyObject_TType__facALICuu8zUj0hjvbTLFg;
64 typedef struct tyTuple__C1iPjdrPjiQaUrcFhIp9aGw tyTuple__C1iPjdrPjiQaUrcFhIp9aGw;
65 typedef struct tyObject_VmArgs__0UUl6e5CNNQfMon2xW2bVA tyObject_VmArgs__0UUl6e5CNNQfMon2xW2bVA;
66 typedef struct tyTuple__47w2DboNEPf69aPgubZdd7Q tyTuple__47w2DboNEPf69aPgubZdd7Q;
67 typedef struct tyObject_TFullReg__GJRDbRqzZnSsmt2gZMzKBA tyObject_TFullReg__GJRDbRqzZnSsmt2gZMzKBA;
68 struct tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q {
69 NU16 line;
70 NI16 col;
71 NI32 fileIndex;
72 };
73 struct TGenericSeq {
74 NI len;
75 NI reserved;
76 };
77 struct NimStringDesc {
78   TGenericSeq Sup;
79 NIM_CHAR data[SEQ_DECL_SIZE];
80 };
81 typedef NU8 tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw;
82 typedef NU8 tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A;
83 typedef NU8 tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ;
84 typedef N_NIMCALL_PTR(void, tyProc__ojoeKfW4VYIm36I9cpDTQIg) (void* p, NI op);
85 typedef N_NIMCALL_PTR(void*, tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ) (void* p);
86 struct TNimType {
87 NI size;
88 NI align;
89 tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A kind;
90 tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ flags;
91 TNimType* base;
92 TNimNode* node;
93 void* finalizer;
94 tyProc__ojoeKfW4VYIm36I9cpDTQIg marker;
95 tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ deepcopy;
96 };
97 struct RootObj {
98 TNimType* m_type;
99 };
100 struct tyObject_TPassContext__Hb6rFM0ecvtlLf2kv9aU75w {
101   RootObj Sup;
102 tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* idgen;
103 };
104 typedef NU8 tyEnum_TEvalMode__UbrbHUpo4hYFr1DbYzJgRQ;
105 typedef NU8 tySet_tyEnum_TSandboxFlag__JyPEhkAmDAldmLHNNrLR0A;
106 struct tyObject_Profiler__X5SfC6PDEhDFna4qLF0vtg {
107 NF tEnter;
108 tyObject_TStackFrame__DYXeymOyKb0OnIuD1ihEpQ* tos;
109 };
110 struct tyObject_Table__Ea0e9azliYta9cYyn0d49ah0w {
111 tySequence__E8pi9b5QNahsURYzXMjh3qw* data;
112 NI counter;
113 };
114 struct tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw {
115   tyObject_TPassContext__Hb6rFM0ecvtlLf2kv9aU75w Sup;
116 tySequence__YdLNCDKYeipzJx3I8Xw82Q* code;
117 tySequence__PJMRIt5QxCm6bRaVyQ5CGA* debug;
118 tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* globals;
119 tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* constants;
120 tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A* types;
121 tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* currentExceptionA;
122 tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* currentExceptionB;
123 NI exceptionInstr;
124 tyObject_PProccolonObjectType___VFEBuxrDHC6kHPzc1TWaRQ* prc;
125 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* module;
126 tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* callsite;
127 tyEnum_TEvalMode__UbrbHUpo4hYFr1DbYzJgRQ mode;
128 tySet_tyEnum_TSandboxFlag__JyPEhkAmDAldmLHNNrLR0A features;
129 NIM_BOOL traceActive;
130 NI loopIterations;
131 tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q comesFromHeuristic;
132 tySequence__YWbgnI9b9a4j9aDYnupShIg3A* callbacks;
133 NimStringDesc* errorFlag;
134 tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* cache;
135 tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config;
136 tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph;
137 NI oldErrorCount;
138 tyObject_Profiler__X5SfC6PDEhDFna4qLF0vtg profiler;
139 NI* templInstCounter;
140 tySequence__Q9atPKk5Xsv6h4rje4WzNLQ* vmstateDiff;
141 tyObject_Table__Ea0e9azliYta9cYyn0d49ah0w procToCodePos;
142 };
143 struct tyTuple__4707W0MdkBgzyuDClNdLBQ {
144 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* Field0;
145 tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* Field1;
146 };
147 typedef NU8 tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ;
148 struct TNimNode {
149 tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ kind;
150 NI offset;
151 TNimType* typ;
152 NCSTRING name;
153 NI len;
154 TNimNode** sons;
155 };
156 struct tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g {
157 NI refcount;
158 TNimType* typ;
159 };
160 struct tyObject_GcStack__7fytPA5bBsob6See21YMRA {
161 void* bottom;
162 };
163 struct tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w {
164 NI len;
165 NI cap;
166 tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g** d;
167 };
168 typedef tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ* tyArray__SPr7N6UKfuF549bNPiUvSRw[256];
169 typedef NU32 tyArray__BHbOSqU1t9b3Gt7K2c6fQig[24];
170 typedef tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* tyArray__N1u1nqOgmuJN9cSZrnMHgOQ[32];
171 typedef tyArray__N1u1nqOgmuJN9cSZrnMHgOQ tyArray__B6durA4ZCi1xjJvRtyYxMg[24];
172 typedef tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw* tyArray__lh2A89ahMmYg9bCmpVaplLbA[256];
173 struct tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA {
174 tyArray__lh2A89ahMmYg9bCmpVaplLbA data;
175 };
176 typedef tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* tyArray__0aOLqZchNi8nWtMTi8ND8w[2];
177 struct tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw {
178 tyArray__0aOLqZchNi8nWtMTi8ND8w link;
179 NI key;
180 NI upperBound;
181 NI level;
182 };
183 struct tyTuple__ujsjpB2O9cjj3uDHsXbnSzg {
184 tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* Field0;
185 NI Field1;
186 };
187 typedef tyTuple__ujsjpB2O9cjj3uDHsXbnSzg tyArray__LzOv2eCDGiceMKQstCLmhw[30];
188 struct tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg {
189 NI len;
190 tyArray__LzOv2eCDGiceMKQstCLmhw chunks;
191 tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg* next;
192 };
193 struct tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg {
194 NI minLargeObj;
195 NI maxLargeObj;
196 tyArray__SPr7N6UKfuF549bNPiUvSRw freeSmallChunks;
197 NU32 flBitmap;
198 tyArray__BHbOSqU1t9b3Gt7K2c6fQig slBitmap;
199 tyArray__B6durA4ZCi1xjJvRtyYxMg matrix;
200 tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw* llmem;
201 NI currMem;
202 NI maxMem;
203 NI freeMem;
204 NI occ;
205 NI lastSize;
206 tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA chunkStarts;
207 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* root;
208 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* deleted;
209 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* last;
210 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* freeAvlNodes;
211 NIM_BOOL locked;
212 NIM_BOOL blockChunkSizeIncrease;
213 NI nextChunkSize;
214 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw bottomData;
215 tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg heapLinks;
216 };
217 struct tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg {
218 NI stackScans;
219 NI cycleCollections;
220 NI maxThreshold;
221 NI maxStackSize;
222 NI maxStackCells;
223 NI cycleTableSize;
224 NI64 maxPause;
225 };
226 struct tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ {
227 NI counter;
228 NI max;
229 tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg* head;
230 tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg** data;
231 };
232 struct tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ {
233 tyObject_GcStack__7fytPA5bBsob6See21YMRA stack;
234 NI cycleThreshold;
235 NI zctThreshold;
236 tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w zct;
237 tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w decStack;
238 tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w tempStack;
239 NI recGcLock;
240 tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg region;
241 tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg stat;
242 tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ marked;
243 tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w additionalRoots;
244 NI gcThreadId;
245 };
246 typedef struct {
247 N_NIMCALL_PTR(void, ClP_0) (tyObject_VmArgs__0UUl6e5CNNQfMon2xW2bVA* args, void* ClE_0);
248 void* ClE_0;
249 } tyProc__5QC9cKfPJmKuW0XbCTd8ylA;
250 struct tyTuple__C1iPjdrPjiQaUrcFhIp9aGw {
251 NimStringDesc* Field0;
252 tyProc__5QC9cKfPJmKuW0XbCTd8ylA Field1;
253 };
254 struct tyTuple__47w2DboNEPf69aPgubZdd7Q {
255 NI Field0;
256 NI Field1;
257 NI Field2;
258 };
259 struct tyObject_VmArgs__0UUl6e5CNNQfMon2xW2bVA {
260 NI ra;
261 NI rb;
262 NI rc;
263 tyObject_TFullReg__GJRDbRqzZnSsmt2gZMzKBA* slots;
264 tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* currentException;
265 tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q currentLineInfo;
266 };
267 struct tySequence__Q9atPKk5Xsv6h4rje4WzNLQ {
268   TGenericSeq Sup;
269   tyTuple__4707W0MdkBgzyuDClNdLBQ data[SEQ_DECL_SIZE];
270 };
271 struct tySequence__YdLNCDKYeipzJx3I8Xw82Q {
272   TGenericSeq Sup;
273   NU64 data[SEQ_DECL_SIZE];
274 };
275 struct tySequence__PJMRIt5QxCm6bRaVyQ5CGA {
276   TGenericSeq Sup;
277   tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q data[SEQ_DECL_SIZE];
278 };
279 struct tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A {
280   TGenericSeq Sup;
281   tyObject_TType__facALICuu8zUj0hjvbTLFg* data[SEQ_DECL_SIZE];
282 };
283 struct tySequence__YWbgnI9b9a4j9aDYnupShIg3A {
284   TGenericSeq Sup;
285   tyTuple__C1iPjdrPjiQaUrcFhIp9aGw data[SEQ_DECL_SIZE];
286 };
287 struct tySequence__E8pi9b5QNahsURYzXMjh3qw {
288   TGenericSeq Sup;
289   tyTuple__47w2DboNEPf69aPgubZdd7Q data[SEQ_DECL_SIZE];
290 };
291 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newNodeI__ast_3356)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
292 N_LIB_PRIVATE N_NIMCALL(void, add__ast_4797)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* father, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* son);
293 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newStrNode__ast_3817)(NimStringDesc* strVal, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
294 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newIntNode__ast_3723)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, NI64 intVal);
295 N_LIB_PRIVATE N_NIMCALL(void, append__macrocacheimpl_4)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
296 static N_INLINE(void, nimZeroMem)(void* p, NI size);
297 static N_INLINE(void, nimSetMem__systemZmemory_7)(void* a, int v, NI size);
298 N_LIB_PRIVATE N_NIMCALL(TGenericSeq*, incrSeqV3)(TGenericSeq* s, TNimType* typ);
299 static N_INLINE(void, asgnRef)(void** dest, void* src);
300 static N_INLINE(void, incRef__system_5338)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
301 static N_INLINE(NI, pluspercent___system_696)(NI x, NI y);
302 static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__system_5300)(void* usr);
303 static N_INLINE(NI, minuspercent___system_716)(NI x, NI y);
304 static N_INLINE(void, decRef__system_5345)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
305 static N_INLINE(NIM_BOOL, ltpercent___system_1005)(NI x, NI y);
306 static N_INLINE(void, rtlAddZCT__system_5343)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
307 N_LIB_PRIVATE N_NOINLINE(void, addZCT__system_5294)(tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w* s, tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
308 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, copyTree__ast_4431)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* src);
309 STRING_LITERAL(TM__HpV7Go5mo9cm54tY2JkX3mg_2, "inc", 3);
310 extern TNimType NTIseqLLpsym_pnodeTT__Q9atPKk5Xsv6h4rje4WzNLQ_;
311 STRING_LITERAL(TM__HpV7Go5mo9cm54tY2JkX3mg_3, "add", 3);
312 STRING_LITERAL(TM__HpV7Go5mo9cm54tY2JkX3mg_4, "incl", 4);
313 STRING_LITERAL(TM__HpV7Go5mo9cm54tY2JkX3mg_5, "put", 3);
314 extern tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ gch__system_5247;
N_INLINE(void,nimSetMem__systemZmemory_7)315 static N_INLINE(void, nimSetMem__systemZmemory_7)(void* a, int v, NI size) {
316 	void* T1_;
317 	T1_ = (void*)0;
318 	T1_ = memset(a, v, ((size_t) (size)));
319 }
N_INLINE(void,nimZeroMem)320 static N_INLINE(void, nimZeroMem)(void* p, NI size) {
321 	nimSetMem__systemZmemory_7(p, ((int) 0), size);
322 }
N_INLINE(NI,pluspercent___system_696)323 static N_INLINE(NI, pluspercent___system_696)(NI x, NI y) {
324 	NI result;
325 	result = (NI)0;
326 	result = ((NI) ((NU)((NU64)(((NU) (x))) + (NU64)(((NU) (y))))));
327 	return result;
328 }
N_INLINE(void,incRef__system_5338)329 static N_INLINE(void, incRef__system_5338)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
330 	(*c).refcount = pluspercent___system_696((*c).refcount, ((NI) 8));
331 }
N_INLINE(NI,minuspercent___system_716)332 static N_INLINE(NI, minuspercent___system_716)(NI x, NI y) {
333 	NI result;
334 	result = (NI)0;
335 	result = ((NI) ((NU)((NU64)(((NU) (x))) - (NU64)(((NU) (y))))));
336 	return result;
337 }
N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g *,usrToCell__system_5300)338 static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__system_5300)(void* usr) {
339 	tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* result;
340 	NI T1_;
341 	result = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
342 	T1_ = (NI)0;
343 	T1_ = minuspercent___system_716(((NI) (ptrdiff_t) (usr)), ((NI) 16));
344 	result = ((tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*) (T1_));
345 	return result;
346 }
N_INLINE(NIM_BOOL,ltpercent___system_1005)347 static N_INLINE(NIM_BOOL, ltpercent___system_1005)(NI x, NI y) {
348 	NIM_BOOL result;
349 	result = (NIM_BOOL)0;
350 	result = ((NU64)(((NU) (x))) < (NU64)(((NU) (y))));
351 	return result;
352 }
N_INLINE(void,rtlAddZCT__system_5343)353 static N_INLINE(void, rtlAddZCT__system_5343)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
354 	addZCT__system_5294((&gch__system_5247.zct), c);
355 }
N_INLINE(void,decRef__system_5345)356 static N_INLINE(void, decRef__system_5345)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
357 	(*c).refcount = minuspercent___system_716((*c).refcount, ((NI) 8));
358 	{
359 		NIM_BOOL T3_;
360 		T3_ = (NIM_BOOL)0;
361 		T3_ = ltpercent___system_1005((*c).refcount, ((NI) 8));
362 		if (!T3_) goto LA4_;
363 		rtlAddZCT__system_5343(c);
364 	}
365 	LA4_: ;
366 }
N_INLINE(void,asgnRef)367 static N_INLINE(void, asgnRef)(void** dest, void* src) {
368 	{
369 		tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T5_;
370 		if (!!((src == NIM_NIL))) goto LA3_;
371 		T5_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
372 		T5_ = usrToCell__system_5300(src);
373 		incRef__system_5338(T5_);
374 	}
375 	LA3_: ;
376 	{
377 		tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T10_;
378 		if (!!(((*dest) == NIM_NIL))) goto LA8_;
379 		T10_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
380 		T10_ = usrToCell__system_5300((*dest));
381 		decRef__system_5345(T10_);
382 	}
383 	LA8_: ;
384 	(*dest) = src;
385 }
N_NIMCALL(void,append__macrocacheimpl_4)386 N_LIB_PRIVATE N_NIMCALL(void, append__macrocacheimpl_4)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
387 	tyTuple__4707W0MdkBgzyuDClNdLBQ T1_;
388 	NI T2_;
389 	nimZeroMem((void*)(&T1_), sizeof(tyTuple__4707W0MdkBgzyuDClNdLBQ));
390 	T1_.Field0 = (*c).module;
391 	T1_.Field1 = n;
392 	asgnRef((void**) (&(*c).vmstateDiff), (tySequence__Q9atPKk5Xsv6h4rje4WzNLQ*) incrSeqV3((TGenericSeq*)((*c).vmstateDiff), (&NTIseqLLpsym_pnodeTT__Q9atPKk5Xsv6h4rje4WzNLQ_)));
393 	T2_ = (*c).vmstateDiff->Sup.len++;
394 	asgnRef((void**) (&(*c).vmstateDiff->data[T2_].Field0), T1_.Field0);
395 	asgnRef((void**) (&(*c).vmstateDiff->data[T2_].Field1), T1_.Field1);
396 }
N_NIMCALL(void,recordInc__macrocacheimpl_20)397 N_LIB_PRIVATE N_NIMCALL(void, recordInc__macrocacheimpl_20)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, NimStringDesc* key, NI64 by) {
398 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* recorded;
399 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T1_;
400 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T2_;
401 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T3_;
402 	recorded = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 163), info);
403 	T1_ = NIM_NIL;
404 	T1_ = newStrNode__ast_3817(((NimStringDesc*) &TM__HpV7Go5mo9cm54tY2JkX3mg_2), info);
405 	add__ast_4797(recorded, T1_);
406 	T2_ = NIM_NIL;
407 	T2_ = newStrNode__ast_3817(key, info);
408 	add__ast_4797(recorded, T2_);
409 	T3_ = NIM_NIL;
410 	T3_ = newIntNode__ast_3723(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6), by);
411 	add__ast_4797(recorded, T3_);
412 	append__macrocacheimpl_4(c, recorded);
413 }
N_NIMCALL(void,recordAdd__macrocacheimpl_61)414 N_LIB_PRIVATE N_NIMCALL(void, recordAdd__macrocacheimpl_61)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, NimStringDesc* key, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* val) {
415 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* recorded;
416 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T1_;
417 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T2_;
418 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T3_;
419 	recorded = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 163), info);
420 	T1_ = NIM_NIL;
421 	T1_ = newStrNode__ast_3817(((NimStringDesc*) &TM__HpV7Go5mo9cm54tY2JkX3mg_3), info);
422 	add__ast_4797(recorded, T1_);
423 	T2_ = NIM_NIL;
424 	T2_ = newStrNode__ast_3817(key, info);
425 	add__ast_4797(recorded, T2_);
426 	T3_ = NIM_NIL;
427 	T3_ = copyTree__ast_4431(val);
428 	add__ast_4797(recorded, T3_);
429 	append__macrocacheimpl_4(c, recorded);
430 }
N_NIMCALL(void,recordIncl__macrocacheimpl_79)431 N_LIB_PRIVATE N_NIMCALL(void, recordIncl__macrocacheimpl_79)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, NimStringDesc* key, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* val) {
432 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* recorded;
433 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T1_;
434 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T2_;
435 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T3_;
436 	recorded = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 163), info);
437 	T1_ = NIM_NIL;
438 	T1_ = newStrNode__ast_3817(((NimStringDesc*) &TM__HpV7Go5mo9cm54tY2JkX3mg_4), info);
439 	add__ast_4797(recorded, T1_);
440 	T2_ = NIM_NIL;
441 	T2_ = newStrNode__ast_3817(key, info);
442 	add__ast_4797(recorded, T2_);
443 	T3_ = NIM_NIL;
444 	T3_ = copyTree__ast_4431(val);
445 	add__ast_4797(recorded, T3_);
446 	append__macrocacheimpl_4(c, recorded);
447 }
N_NIMCALL(void,recordPut__macrocacheimpl_38)448 N_LIB_PRIVATE N_NIMCALL(void, recordPut__macrocacheimpl_38)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, NimStringDesc* key, NimStringDesc* k, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* val) {
449 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* recorded;
450 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T1_;
451 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T2_;
452 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T3_;
453 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T4_;
454 	recorded = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 163), info);
455 	T1_ = NIM_NIL;
456 	T1_ = newStrNode__ast_3817(((NimStringDesc*) &TM__HpV7Go5mo9cm54tY2JkX3mg_5), info);
457 	add__ast_4797(recorded, T1_);
458 	T2_ = NIM_NIL;
459 	T2_ = newStrNode__ast_3817(key, info);
460 	add__ast_4797(recorded, T2_);
461 	T3_ = NIM_NIL;
462 	T3_ = newStrNode__ast_3817(k, info);
463 	add__ast_4797(recorded, T3_);
464 	T4_ = NIM_NIL;
465 	T4_ = copyTree__ast_4431(val);
466 	add__ast_4797(recorded, T4_);
467 	append__macrocacheimpl_4(c, recorded);
468 }
469