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