1 /* Generated by Nim Compiler v1.6.2 */
2 #define NIM_INTBITS 64
3 #define NIM_EmulateOverflowChecks
4 
5 #include "nimbase.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_PackedSet__IhxwDBRi51nGrosBGFKcsA tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA;
22 typedef struct tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA;
23 typedef struct tySequence__Bre9bNyuQOg1EJKitjSzn8w tySequence__Bre9bNyuQOg1EJKitjSzn8w;
24 typedef struct TGenericSeq TGenericSeq;
25 typedef struct TNimType TNimType;
26 typedef struct TNimNode TNimNode;
27 typedef struct tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g;
28 typedef struct tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w;
29 typedef struct tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ;
30 typedef struct tyObject_GcStack__7fytPA5bBsob6See21YMRA tyObject_GcStack__7fytPA5bBsob6See21YMRA;
31 typedef struct tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg;
32 typedef struct tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ;
33 typedef struct tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg;
34 typedef struct tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw;
35 typedef struct tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA;
36 typedef struct tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw;
37 typedef struct tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw;
38 typedef struct tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg;
39 typedef struct tyTuple__ujsjpB2O9cjj3uDHsXbnSzg tyTuple__ujsjpB2O9cjj3uDHsXbnSzg;
40 typedef struct tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg;
41 typedef struct tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ;
42 typedef struct tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg;
43 typedef NI tyArray__emiAJ8okywrJw7ZHLzlXbQ[34];
44 struct tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA {
45 NI elems;
46 NI counter;
47 NI max;
48 tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA* head;
49 tySequence__Bre9bNyuQOg1EJKitjSzn8w* data;
50 tyArray__emiAJ8okywrJw7ZHLzlXbQ a;
51 };
52 struct TGenericSeq {
53 NI len;
54 NI reserved;
55 };
56 typedef NU8 tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A;
57 typedef NU8 tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ;
58 typedef N_NIMCALL_PTR(void, tyProc__ojoeKfW4VYIm36I9cpDTQIg) (void* p, NI op);
59 typedef N_NIMCALL_PTR(void*, tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ) (void* p);
60 struct TNimType {
61 NI size;
62 NI align;
63 tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A kind;
64 tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ flags;
65 TNimType* base;
66 TNimNode* node;
67 void* finalizer;
68 tyProc__ojoeKfW4VYIm36I9cpDTQIg marker;
69 tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ deepcopy;
70 };
71 typedef NU8 tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ;
72 struct TNimNode {
73 tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ kind;
74 NI offset;
75 TNimType* typ;
76 NCSTRING name;
77 NI len;
78 TNimNode** sons;
79 };
80 typedef NU tyArray__VqSA39cBDWnwnJySTumCdjw[8];
81 struct tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA {
82 tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA* next;
83 NI key;
84 tyArray__VqSA39cBDWnwnJySTumCdjw bits;
85 };
86 struct tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g {
87 NI refcount;
88 TNimType* typ;
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 struct tySequence__Bre9bNyuQOg1EJKitjSzn8w {
177   TGenericSeq Sup;
178   tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA* data[SEQ_DECL_SIZE];
179 };
180 N_LIB_PRIVATE N_NIMCALL(void, unsureAsgnRef)(void** dest, void* src);
181 N_LIB_PRIVATE N_NIMCALL(void*, newSeq)(TNimType* typ, NI len);
182 static N_INLINE(void, bitincl__pureZcollectionsZintsets_98)(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* s, NI key);
183 N_LIB_PRIVATE N_NIMCALL(tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA*, intSetPut__pureZcollectionsZintsets_107)(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* t, NI key);
184 static N_INLINE(NI, nextTry__stdZpackedsets_41)(NI h, NI maxHash, NI* perturb);
185 static N_INLINE(NIM_BOOL, mustRehash__pureZcollectionsZintsets_118)(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* t);
186 N_LIB_PRIVATE N_NIMCALL(void, intSetEnlarge__pureZcollectionsZintsets_126)(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* t);
187 N_LIB_PRIVATE N_NIMCALL(void, intSetRawInsert__pureZcollectionsZintsets_145)(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* t, tySequence__Bre9bNyuQOg1EJKitjSzn8w** data, tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA* desc);
188 static N_INLINE(void, asgnRef)(void** dest, void* src);
189 static N_INLINE(void, incRef__system_5338)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
190 static N_INLINE(NI, pluspercent___system_696)(NI x, NI y);
191 static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__system_5300)(void* usr);
192 static N_INLINE(NI, minuspercent___system_716)(NI x, NI y);
193 static N_INLINE(void, decRef__system_5345)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
194 static N_INLINE(NIM_BOOL, ltpercent___system_1005)(NI x, NI y);
195 static N_INLINE(void, rtlAddZCT__system_5343)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
196 N_LIB_PRIVATE N_NOINLINE(void, addZCT__system_5294)(tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w* s, tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
197 N_LIB_PRIVATE N_NOINLINE(void*, newObj)(TNimType* typ, NI size);
198 extern TNimType NTItrunkseq__Bre9bNyuQOg1EJKitjSzn8w_;
199 extern TNimType NTItrunk__jMZvnc6V09aC24Isyj9alOEA_;
200 extern tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ gch__system_5247;
N_NIMCALL(void,initPackedSet__pureZcollectionsZintsets_16)201 N_LIB_PRIVATE N_NIMCALL(void, initPackedSet__pureZcollectionsZintsets_16)(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* Result) {
202 	NI T1_;
203 	(*Result).elems = 0;
204 	(*Result).counter = 0;
205 	(*Result).max = 0;
206 	unsureAsgnRef((void**)&(*Result).head, NIM_NIL);
207 	unsureAsgnRef((void**)&(*Result).data, NIM_NIL);
208 	T1_ = (NI)0;
209 	for (T1_ = 0; T1_ < 34; T1_++) {
210 	(*Result).a[T1_] = 0;
211 	}
212 	(*Result).elems = ((NI) 0);
213 	(*Result).counter = ((NI) 0);
214 	(*Result).max = ((NI) 0);
215 	unsureAsgnRef((void**) (&(*Result).head), ((tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA*) NIM_NIL));
216 	unsureAsgnRef((void**) (&(*Result).data), NIM_NIL);
217 }
N_INLINE(NI,nextTry__stdZpackedsets_41)218 static N_INLINE(NI, nextTry__stdZpackedsets_41)(NI h, NI maxHash, NI* perturb) {
219 	NI result;
220 	NU perturb2;
221 	result = (NI)0;
222 	perturb2 = (NU)((NU64)(((NU) ((*perturb)))) >> (NU64)(((NI) 5)));
223 	(*perturb) = ((NI) (perturb2));
224 	result = (NI)((NI)((NI)((NI)(((NI) 5) * h) + ((NI) 1)) + (*perturb)) & maxHash);
225 	return result;
226 }
N_INLINE(NIM_BOOL,mustRehash__pureZcollectionsZintsets_118)227 static N_INLINE(NIM_BOOL, mustRehash__pureZcollectionsZintsets_118)(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* t) {
228 	NIM_BOOL result;
229 	NI length;
230 	NIM_BOOL T1_;
231 	result = (NIM_BOOL)0;
232 	length = (NI)((*t).max + ((NI) 1));
233 	T1_ = (NIM_BOOL)0;
234 	T1_ = ((NI)(length * ((NI) 2)) < (NI)((*t).counter * ((NI) 3)));
235 	if (T1_) goto LA2_;
236 	T1_ = ((NI)(length - (*t).counter) < ((NI) 4));
237 	LA2_: ;
238 	result = T1_;
239 	return result;
240 }
N_INLINE(NI,pluspercent___system_696)241 static N_INLINE(NI, pluspercent___system_696)(NI x, NI y) {
242 	NI result;
243 	result = (NI)0;
244 	result = ((NI) ((NU)((NU64)(((NU) (x))) + (NU64)(((NU) (y))))));
245 	return result;
246 }
N_INLINE(void,incRef__system_5338)247 static N_INLINE(void, incRef__system_5338)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
248 	(*c).refcount = pluspercent___system_696((*c).refcount, ((NI) 8));
249 }
N_INLINE(NI,minuspercent___system_716)250 static N_INLINE(NI, minuspercent___system_716)(NI x, NI y) {
251 	NI result;
252 	result = (NI)0;
253 	result = ((NI) ((NU)((NU64)(((NU) (x))) - (NU64)(((NU) (y))))));
254 	return result;
255 }
N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g *,usrToCell__system_5300)256 static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__system_5300)(void* usr) {
257 	tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* result;
258 	NI T1_;
259 	result = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
260 	T1_ = (NI)0;
261 	T1_ = minuspercent___system_716(((NI) (ptrdiff_t) (usr)), ((NI) 16));
262 	result = ((tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*) (T1_));
263 	return result;
264 }
N_INLINE(NIM_BOOL,ltpercent___system_1005)265 static N_INLINE(NIM_BOOL, ltpercent___system_1005)(NI x, NI y) {
266 	NIM_BOOL result;
267 	result = (NIM_BOOL)0;
268 	result = ((NU64)(((NU) (x))) < (NU64)(((NU) (y))));
269 	return result;
270 }
N_INLINE(void,rtlAddZCT__system_5343)271 static N_INLINE(void, rtlAddZCT__system_5343)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
272 	addZCT__system_5294((&gch__system_5247.zct), c);
273 }
N_INLINE(void,decRef__system_5345)274 static N_INLINE(void, decRef__system_5345)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
275 	(*c).refcount = minuspercent___system_716((*c).refcount, ((NI) 8));
276 	{
277 		NIM_BOOL T3_;
278 		T3_ = (NIM_BOOL)0;
279 		T3_ = ltpercent___system_1005((*c).refcount, ((NI) 8));
280 		if (!T3_) goto LA4_;
281 		rtlAddZCT__system_5343(c);
282 	}
283 	LA4_: ;
284 }
N_INLINE(void,asgnRef)285 static N_INLINE(void, asgnRef)(void** dest, void* src) {
286 	{
287 		tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T5_;
288 		if (!!((src == NIM_NIL))) goto LA3_;
289 		T5_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
290 		T5_ = usrToCell__system_5300(src);
291 		incRef__system_5338(T5_);
292 	}
293 	LA3_: ;
294 	{
295 		tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T10_;
296 		if (!!(((*dest) == NIM_NIL))) goto LA8_;
297 		T10_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
298 		T10_ = usrToCell__system_5300((*dest));
299 		decRef__system_5345(T10_);
300 	}
301 	LA8_: ;
302 	(*dest) = src;
303 }
N_NIMCALL(void,intSetRawInsert__pureZcollectionsZintsets_145)304 N_LIB_PRIVATE N_NIMCALL(void, intSetRawInsert__pureZcollectionsZintsets_145)(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* t, tySequence__Bre9bNyuQOg1EJKitjSzn8w** data, tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA* desc) {
305 	NI h;
306 	NI perturb;
307 	h = (NI)((*desc).key & (*t).max);
308 	perturb = (*desc).key;
309 	{
310 		while (1) {
311 			if (!!(((*data)->data[h] == ((tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA*) NIM_NIL)))) goto LA2;
312 			h = nextTry__stdZpackedsets_41(h, (*t).max, (&perturb));
313 		} LA2: ;
314 	}
315 	asgnRef((void**) (&(*data)->data[h]), desc);
316 }
N_NIMCALL(void,intSetEnlarge__pureZcollectionsZintsets_126)317 N_LIB_PRIVATE N_NIMCALL(void, intSetEnlarge__pureZcollectionsZintsets_126)(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* t) {
318 	tySequence__Bre9bNyuQOg1EJKitjSzn8w* n;
319 	NI oldMax;
320 	tySequence__Bre9bNyuQOg1EJKitjSzn8w* T8_;
321 	n = NIM_NIL;
322 	oldMax = (*t).max;
323 	(*t).max = (NI)((NI)((NI)((*t).max + ((NI) 1)) * ((NI) 2)) - ((NI) 1));
324 	n = (tySequence__Bre9bNyuQOg1EJKitjSzn8w*) newSeq((&NTItrunkseq__Bre9bNyuQOg1EJKitjSzn8w_), ((NI) ((NI)((*t).max + ((NI) 1)))));
325 	{
326 		NI i;
327 		NI res;
328 		i = (NI)0;
329 		res = ((NI) 0);
330 		{
331 			while (1) {
332 				if (!(res <= oldMax)) goto LA3;
333 				i = res;
334 				{
335 					if (!!(((*t).data->data[i] == ((tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA*) NIM_NIL)))) goto LA6_;
336 					intSetRawInsert__pureZcollectionsZintsets_145((&(*t)), (&n), (*t).data->data[i]);
337 				}
338 				LA6_: ;
339 				res += ((NI) 1);
340 			} LA3: ;
341 		}
342 	}
343 	T8_ = NIM_NIL;
344 	T8_ = (*t).data;
345 	unsureAsgnRef((void**) (&(*t).data), n);
346 	n = T8_;
347 }
N_NIMCALL(tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA *,intSetPut__pureZcollectionsZintsets_107)348 N_LIB_PRIVATE N_NIMCALL(tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA*, intSetPut__pureZcollectionsZintsets_107)(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* t, NI key) {
349 	tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA* result;
350 	NI h;
351 	NI perturb;
352 {	result = NIM_NIL;
353 	h = (NI)(key & (*t).max);
354 	perturb = key;
355 	{
356 		while (1) {
357 			if (!!(((*t).data->data[h] == ((tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA*) NIM_NIL)))) goto LA2;
358 			{
359 				if (!((*(*t).data->data[h]).key == key)) goto LA5_;
360 				result = (*t).data->data[h];
361 				goto BeforeRet_;
362 			}
363 			LA5_: ;
364 			h = nextTry__stdZpackedsets_41(h, (*t).max, (&perturb));
365 		} LA2: ;
366 	}
367 	{
368 		NIM_BOOL T9_;
369 		T9_ = (NIM_BOOL)0;
370 		T9_ = mustRehash__pureZcollectionsZintsets_118((&(*t)));
371 		if (!T9_) goto LA10_;
372 		intSetEnlarge__pureZcollectionsZintsets_126(t);
373 	}
374 	LA10_: ;
375 	(*t).counter += ((NI) 1);
376 	h = (NI)(key & (*t).max);
377 	perturb = key;
378 	{
379 		while (1) {
380 			if (!!(((*t).data->data[h] == ((tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA*) NIM_NIL)))) goto LA13;
381 			h = nextTry__stdZpackedsets_41(h, (*t).max, (&perturb));
382 		} LA13: ;
383 	}
384 	result = (tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA*) newObj((&NTItrunk__jMZvnc6V09aC24Isyj9alOEA_), sizeof(tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA));
385 	asgnRef((void**) (&(*result).next), (*t).head);
386 	(*result).key = key;
387 	unsureAsgnRef((void**) (&(*t).head), result);
388 	asgnRef((void**) (&(*t).data->data[h]), result);
389 	}BeforeRet_: ;
390 	return result;
391 }
N_INLINE(void,bitincl__pureZcollectionsZintsets_98)392 static N_INLINE(void, bitincl__pureZcollectionsZintsets_98)(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* s, NI key) {
393 	tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA* ret;
394 	tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA* t;
395 	NI u;
396 	ret = NIM_NIL;
397 	t = intSetPut__pureZcollectionsZintsets_107(s, (NI)((NI64)(key) >> (NU64)(((NI) 9))));
398 	u = (NI)(key & ((NI) 511));
399 	(*t).bits[((NI)((NI64)(u) >> (NU64)(((NI) 6))))- 0] = (NU)((*t).bits[((NI)((NI64)(u) >> (NU64)(((NI) 6))))- 0] | (NU)((NU64)(((NU) 1)) << (NU64)((NI)(u & ((NI) 63)))));
400 }
N_NIMCALL(void,incl__pureZcollectionsZintsets_55)401 N_LIB_PRIVATE N_NIMCALL(void, incl__pureZcollectionsZintsets_55)(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* s, NI key) {
402 {	{
403 		if (!((*s).elems <= ((NI) 34))) goto LA3_;
404 		{
405 			NI i;
406 			NI i_2;
407 			i = (NI)0;
408 			i_2 = ((NI) 0);
409 			{
410 				while (1) {
411 					if (!(i_2 < (*s).elems)) goto LA7;
412 					i = i_2;
413 					{
414 						if (!((*s).a[(i)- 0] == key)) goto LA10_;
415 						goto BeforeRet_;
416 					}
417 					LA10_: ;
418 					i_2 += ((NI) 1);
419 				} LA7: ;
420 			}
421 		}
422 		{
423 			if (!((*s).elems < ((NI) 34))) goto LA14_;
424 			(*s).a[((*s).elems)- 0] = key;
425 			(*s).elems += ((NI) 1);
426 			goto BeforeRet_;
427 		}
428 		LA14_: ;
429 		unsureAsgnRef((void**) (&(*s).data), (tySequence__Bre9bNyuQOg1EJKitjSzn8w*) newSeq((&NTItrunkseq__Bre9bNyuQOg1EJKitjSzn8w_), ((NI) 8)));
430 		(*s).max = ((NI) 7);
431 		{
432 			NI i_3;
433 			NI i_4;
434 			i_3 = (NI)0;
435 			i_4 = ((NI) 0);
436 			{
437 				while (1) {
438 					if (!(i_4 < (*s).elems)) goto LA18;
439 					i_3 = i_4;
440 					bitincl__pureZcollectionsZintsets_98(s, (*s).a[(i_3)- 0]);
441 					i_4 += ((NI) 1);
442 				} LA18: ;
443 			}
444 		}
445 		(*s).elems = ((NI) 35);
446 	}
447 	LA3_: ;
448 	bitincl__pureZcollectionsZintsets_98(s, key);
449 	}BeforeRet_: ;
450 }
451