1 /* Generated by Nim Compiler v1.6.2 */
2 #define NIM_INTBITS 32
3 
4 #include "nimbase.h"
5 #undef LANGUAGE_C
6 #undef MIPSEB
7 #undef MIPSEL
8 #undef PPC
9 #undef R3000
10 #undef R4000
11 #undef i386
12 #undef linux
13 #undef mips
14 #undef near
15 #undef far
16 #undef powerpc
17 #undef unix
18 #define nimfr_(x, y)
19 #define nimln_(x, y)
20 typedef struct tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA;
21 typedef struct tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA;
22 typedef struct tySequence__Bre9bNyuQOg1EJKitjSzn8w tySequence__Bre9bNyuQOg1EJKitjSzn8w;
23 typedef struct TGenericSeq TGenericSeq;
24 typedef struct TNimType TNimType;
25 typedef struct TNimNode TNimNode;
26 typedef struct tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g;
27 typedef struct tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w;
28 typedef struct tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ;
29 typedef struct tyObject_GcStack__7fytPA5bBsob6See21YMRA tyObject_GcStack__7fytPA5bBsob6See21YMRA;
30 typedef struct tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg;
31 typedef struct tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ;
32 typedef struct tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg;
33 typedef struct tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw;
34 typedef struct tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA;
35 typedef struct tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw;
36 typedef struct tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw;
37 typedef struct tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg;
38 typedef struct tyTuple__ujsjpB2O9cjj3uDHsXbnSzg tyTuple__ujsjpB2O9cjj3uDHsXbnSzg;
39 typedef struct tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg;
40 typedef struct tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ;
41 typedef struct tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg;
42 typedef NI tyArray__emiAJ8okywrJw7ZHLzlXbQ[34];
43 struct tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA {
44 NI elems;
45 NI counter;
46 NI max;
47 tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA* head;
48 tySequence__Bre9bNyuQOg1EJKitjSzn8w* data;
49 tyArray__emiAJ8okywrJw7ZHLzlXbQ a;
50 };
51 struct TGenericSeq {
52 NI len;
53 NI reserved;
54 };
55 typedef NU8 tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A;
56 typedef NU8 tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ;
57 typedef N_NIMCALL_PTR(void, tyProc__ojoeKfW4VYIm36I9cpDTQIg) (void* p, NI op);
58 typedef N_NIMCALL_PTR(void*, tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ) (void* p);
59 struct TNimType {
60 NI size;
61 NI align;
62 tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A kind;
63 tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ flags;
64 TNimType* base;
65 TNimNode* node;
66 void* finalizer;
67 tyProc__ojoeKfW4VYIm36I9cpDTQIg marker;
68 tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ deepcopy;
69 };
70 typedef NU8 tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ;
71 struct TNimNode {
72 tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ kind;
73 NI offset;
74 TNimType* typ;
75 NCSTRING name;
76 NI len;
77 TNimNode** sons;
78 };
79 typedef NU tyArray__cC4ce9cdvDKtIpar5g9cDejA[16];
80 struct tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA {
81 tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA* next;
82 NI key;
83 tyArray__cC4ce9cdvDKtIpar5g9cDejA bits;
84 };
85 struct tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g {
86 NI refcount;
87 TNimType* typ;
88 };
89 struct tyObject_GcStack__7fytPA5bBsob6See21YMRA {
90 void* bottom;
91 };
92 struct tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w {
93 NI len;
94 NI cap;
95 tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g** d;
96 };
97 typedef tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ* tyArray__SPr7N6UKfuF549bNPiUvSRw[256];
98 typedef NU32 tyArray__BHbOSqU1t9b3Gt7K2c6fQig[24];
99 typedef tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* tyArray__N1u1nqOgmuJN9cSZrnMHgOQ[32];
100 typedef tyArray__N1u1nqOgmuJN9cSZrnMHgOQ tyArray__B6durA4ZCi1xjJvRtyYxMg[24];
101 typedef tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw* tyArray__lh2A89ahMmYg9bCmpVaplLbA[256];
102 struct tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA {
103 tyArray__lh2A89ahMmYg9bCmpVaplLbA data;
104 };
105 typedef tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* tyArray__0aOLqZchNi8nWtMTi8ND8w[2];
106 struct tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw {
107 tyArray__0aOLqZchNi8nWtMTi8ND8w link;
108 NI key;
109 NI upperBound;
110 NI level;
111 };
112 struct tyTuple__ujsjpB2O9cjj3uDHsXbnSzg {
113 tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* Field0;
114 NI Field1;
115 };
116 typedef tyTuple__ujsjpB2O9cjj3uDHsXbnSzg tyArray__LzOv2eCDGiceMKQstCLmhw[30];
117 struct tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg {
118 NI len;
119 tyArray__LzOv2eCDGiceMKQstCLmhw chunks;
120 tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg* next;
121 };
122 struct tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg {
123 NI minLargeObj;
124 NI maxLargeObj;
125 tyArray__SPr7N6UKfuF549bNPiUvSRw freeSmallChunks;
126 NU32 flBitmap;
127 tyArray__BHbOSqU1t9b3Gt7K2c6fQig slBitmap;
128 tyArray__B6durA4ZCi1xjJvRtyYxMg matrix;
129 tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw* llmem;
130 NI currMem;
131 NI maxMem;
132 NI freeMem;
133 NI occ;
134 NI lastSize;
135 tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA chunkStarts;
136 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* root;
137 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* deleted;
138 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* last;
139 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* freeAvlNodes;
140 NIM_BOOL locked;
141 NIM_BOOL blockChunkSizeIncrease;
142 NI nextChunkSize;
143 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw bottomData;
144 tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg heapLinks;
145 };
146 struct tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg {
147 NI stackScans;
148 NI cycleCollections;
149 NI maxThreshold;
150 NI maxStackSize;
151 NI maxStackCells;
152 NI cycleTableSize;
153 NI64 maxPause;
154 };
155 struct tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ {
156 NI counter;
157 NI max;
158 tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg* head;
159 tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg** data;
160 };
161 struct tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ {
162 tyObject_GcStack__7fytPA5bBsob6See21YMRA stack;
163 NI cycleThreshold;
164 NI zctThreshold;
165 tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w zct;
166 tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w decStack;
167 tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w tempStack;
168 NI recGcLock;
169 tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg region;
170 tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg stat;
171 tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ marked;
172 tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w additionalRoots;
173 NI gcThreadId;
174 };
175 struct tySequence__Bre9bNyuQOg1EJKitjSzn8w {
176   TGenericSeq Sup;
177   tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA* data[SEQ_DECL_SIZE];
178 };
179 N_LIB_PRIVATE N_NIMCALL(void, unsureAsgnRef)(void** dest, void* src);
180 N_LIB_PRIVATE N_NIMCALL(void*, newSeq)(TNimType* typ, NI len);
181 static N_INLINE(void, bitincl__pureZcollectionsZintsets_98)(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* s, NI key);
182 N_LIB_PRIVATE N_NIMCALL(tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA*, intSetPut__pureZcollectionsZintsets_107)(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* t, NI key);
183 static N_INLINE(NI, nextTry__stdZpackedsets_41)(NI h, NI maxHash, NI* perturb);
184 static N_INLINE(NIM_BOOL, mustRehash__pureZcollectionsZintsets_118)(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* t);
185 N_LIB_PRIVATE N_NIMCALL(void, intSetEnlarge__pureZcollectionsZintsets_126)(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* t);
186 N_LIB_PRIVATE N_NIMCALL(void, intSetRawInsert__pureZcollectionsZintsets_145)(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* t, tySequence__Bre9bNyuQOg1EJKitjSzn8w** data, tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA* desc);
187 static N_INLINE(void, asgnRef)(void** dest, void* src);
188 static N_INLINE(void, incRef__system_5308)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
189 static N_INLINE(NI, pluspercent___system_696)(NI x, NI y);
190 static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__system_5270)(void* usr);
191 static N_INLINE(NI, minuspercent___system_716)(NI x, NI y);
192 static N_INLINE(void, decRef__system_5315)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
193 static N_INLINE(NIM_BOOL, ltpercent___system_1005)(NI x, NI y);
194 static N_INLINE(void, rtlAddZCT__system_5313)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
195 N_LIB_PRIVATE N_NOINLINE(void, addZCT__system_5264)(tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w* s, tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
196 N_LIB_PRIVATE N_NOINLINE(void*, newObj)(TNimType* typ, NI size);
197 extern TNimType NTItrunkseq__Bre9bNyuQOg1EJKitjSzn8w_;
198 extern TNimType NTItrunk__jMZvnc6V09aC24Isyj9alOEA_;
199 extern tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ gch__system_5217;
N_NIMCALL(void,initPackedSet__pureZcollectionsZintsets_16)200 N_LIB_PRIVATE N_NIMCALL(void, initPackedSet__pureZcollectionsZintsets_16)(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* Result) {
201 	NI T1_;
202 	(*Result).elems = 0;
203 	(*Result).counter = 0;
204 	(*Result).max = 0;
205 	unsureAsgnRef((void**)&(*Result).head, NIM_NIL);
206 	unsureAsgnRef((void**)&(*Result).data, NIM_NIL);
207 	T1_ = (NI)0;
208 	for (T1_ = 0; T1_ < 34; T1_++) {
209 	(*Result).a[T1_] = 0;
210 	}
211 	(*Result).elems = ((NI) 0);
212 	(*Result).counter = ((NI) 0);
213 	(*Result).max = ((NI) 0);
214 	unsureAsgnRef((void**) (&(*Result).head), ((tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA*) NIM_NIL));
215 	unsureAsgnRef((void**) (&(*Result).data), NIM_NIL);
216 }
N_INLINE(NI,nextTry__stdZpackedsets_41)217 static N_INLINE(NI, nextTry__stdZpackedsets_41)(NI h, NI maxHash, NI* perturb) {
218 	NI result;
219 	NU perturb2;
220 	result = (NI)0;
221 	perturb2 = (NU)((NU32)(((NU) ((*perturb)))) >> (NU32)(((NI) 5)));
222 	(*perturb) = ((NI) (perturb2));
223 	result = (NI)((NI)((NI)((NI)(((NI) 5) * h) + ((NI) 1)) + (*perturb)) & maxHash);
224 	return result;
225 }
N_INLINE(NIM_BOOL,mustRehash__pureZcollectionsZintsets_118)226 static N_INLINE(NIM_BOOL, mustRehash__pureZcollectionsZintsets_118)(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* t) {
227 	NIM_BOOL result;
228 	NI length;
229 	NIM_BOOL T1_;
230 	result = (NIM_BOOL)0;
231 	length = (NI)((*t).max + ((NI) 1));
232 	T1_ = (NIM_BOOL)0;
233 	T1_ = ((NI)(length * ((NI) 2)) < (NI)((*t).counter * ((NI) 3)));
234 	if (T1_) goto LA2_;
235 	T1_ = ((NI)(length - (*t).counter) < ((NI) 4));
236 	LA2_: ;
237 	result = T1_;
238 	return result;
239 }
N_INLINE(NI,pluspercent___system_696)240 static N_INLINE(NI, pluspercent___system_696)(NI x, NI y) {
241 	NI result;
242 	result = (NI)0;
243 	result = ((NI) ((NU)((NU32)(((NU) (x))) + (NU32)(((NU) (y))))));
244 	return result;
245 }
N_INLINE(void,incRef__system_5308)246 static N_INLINE(void, incRef__system_5308)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
247 	(*c).refcount = pluspercent___system_696((*c).refcount, ((NI) 8));
248 }
N_INLINE(NI,minuspercent___system_716)249 static N_INLINE(NI, minuspercent___system_716)(NI x, NI y) {
250 	NI result;
251 	result = (NI)0;
252 	result = ((NI) ((NU)((NU32)(((NU) (x))) - (NU32)(((NU) (y))))));
253 	return result;
254 }
N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g *,usrToCell__system_5270)255 static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__system_5270)(void* usr) {
256 	tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* result;
257 	NI T1_;
258 	result = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
259 	T1_ = (NI)0;
260 	T1_ = minuspercent___system_716(((NI) (ptrdiff_t) (usr)), ((NI) 8));
261 	result = ((tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*) (T1_));
262 	return result;
263 }
N_INLINE(NIM_BOOL,ltpercent___system_1005)264 static N_INLINE(NIM_BOOL, ltpercent___system_1005)(NI x, NI y) {
265 	NIM_BOOL result;
266 	result = (NIM_BOOL)0;
267 	result = ((NU32)(((NU) (x))) < (NU32)(((NU) (y))));
268 	return result;
269 }
N_INLINE(void,rtlAddZCT__system_5313)270 static N_INLINE(void, rtlAddZCT__system_5313)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
271 	addZCT__system_5264((&gch__system_5217.zct), c);
272 }
N_INLINE(void,decRef__system_5315)273 static N_INLINE(void, decRef__system_5315)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
274 	(*c).refcount = minuspercent___system_716((*c).refcount, ((NI) 8));
275 	{
276 		NIM_BOOL T3_;
277 		T3_ = (NIM_BOOL)0;
278 		T3_ = ltpercent___system_1005((*c).refcount, ((NI) 8));
279 		if (!T3_) goto LA4_;
280 		rtlAddZCT__system_5313(c);
281 	}
282 	LA4_: ;
283 }
N_INLINE(void,asgnRef)284 static N_INLINE(void, asgnRef)(void** dest, void* src) {
285 	{
286 		tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T5_;
287 		if (!!((src == NIM_NIL))) goto LA3_;
288 		T5_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
289 		T5_ = usrToCell__system_5270(src);
290 		incRef__system_5308(T5_);
291 	}
292 	LA3_: ;
293 	{
294 		tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T10_;
295 		if (!!(((*dest) == NIM_NIL))) goto LA8_;
296 		T10_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
297 		T10_ = usrToCell__system_5270((*dest));
298 		decRef__system_5315(T10_);
299 	}
300 	LA8_: ;
301 	(*dest) = src;
302 }
N_NIMCALL(void,intSetRawInsert__pureZcollectionsZintsets_145)303 N_LIB_PRIVATE N_NIMCALL(void, intSetRawInsert__pureZcollectionsZintsets_145)(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* t, tySequence__Bre9bNyuQOg1EJKitjSzn8w** data, tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA* desc) {
304 	NI h;
305 	NI perturb;
306 	h = (NI)((*desc).key & (*t).max);
307 	perturb = (*desc).key;
308 	{
309 		while (1) {
310 			if (!!(((*data)->data[h] == ((tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA*) NIM_NIL)))) goto LA2;
311 			h = nextTry__stdZpackedsets_41(h, (*t).max, (&perturb));
312 		} LA2: ;
313 	}
314 	asgnRef((void**) (&(*data)->data[h]), desc);
315 }
N_NIMCALL(void,intSetEnlarge__pureZcollectionsZintsets_126)316 N_LIB_PRIVATE N_NIMCALL(void, intSetEnlarge__pureZcollectionsZintsets_126)(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* t) {
317 	tySequence__Bre9bNyuQOg1EJKitjSzn8w* n;
318 	NI oldMax;
319 	tySequence__Bre9bNyuQOg1EJKitjSzn8w* T8_;
320 	n = NIM_NIL;
321 	oldMax = (*t).max;
322 	(*t).max = (NI)((NI)((NI)((*t).max + ((NI) 1)) * ((NI) 2)) - ((NI) 1));
323 	n = (tySequence__Bre9bNyuQOg1EJKitjSzn8w*) newSeq((&NTItrunkseq__Bre9bNyuQOg1EJKitjSzn8w_), ((NI) ((NI)((*t).max + ((NI) 1)))));
324 	{
325 		NI i;
326 		NI res;
327 		i = (NI)0;
328 		res = ((NI) 0);
329 		{
330 			while (1) {
331 				if (!(res <= oldMax)) goto LA3;
332 				i = res;
333 				{
334 					if (!!(((*t).data->data[i] == ((tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA*) NIM_NIL)))) goto LA6_;
335 					intSetRawInsert__pureZcollectionsZintsets_145((&(*t)), (&n), (*t).data->data[i]);
336 				}
337 				LA6_: ;
338 				res += ((NI) 1);
339 			} LA3: ;
340 		}
341 	}
342 	T8_ = NIM_NIL;
343 	T8_ = (*t).data;
344 	unsureAsgnRef((void**) (&(*t).data), n);
345 	n = T8_;
346 }
N_NIMCALL(tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA *,intSetPut__pureZcollectionsZintsets_107)347 N_LIB_PRIVATE N_NIMCALL(tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA*, intSetPut__pureZcollectionsZintsets_107)(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* t, NI key) {
348 	tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA* result;
349 	NI h;
350 	NI perturb;
351 {	result = NIM_NIL;
352 	h = (NI)(key & (*t).max);
353 	perturb = key;
354 	{
355 		while (1) {
356 			if (!!(((*t).data->data[h] == ((tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA*) NIM_NIL)))) goto LA2;
357 			{
358 				if (!((*(*t).data->data[h]).key == key)) goto LA5_;
359 				result = (*t).data->data[h];
360 				goto BeforeRet_;
361 			}
362 			LA5_: ;
363 			h = nextTry__stdZpackedsets_41(h, (*t).max, (&perturb));
364 		} LA2: ;
365 	}
366 	{
367 		NIM_BOOL T9_;
368 		T9_ = (NIM_BOOL)0;
369 		T9_ = mustRehash__pureZcollectionsZintsets_118((&(*t)));
370 		if (!T9_) goto LA10_;
371 		intSetEnlarge__pureZcollectionsZintsets_126(t);
372 	}
373 	LA10_: ;
374 	(*t).counter += ((NI) 1);
375 	h = (NI)(key & (*t).max);
376 	perturb = key;
377 	{
378 		while (1) {
379 			if (!!(((*t).data->data[h] == ((tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA*) NIM_NIL)))) goto LA13;
380 			h = nextTry__stdZpackedsets_41(h, (*t).max, (&perturb));
381 		} LA13: ;
382 	}
383 	result = (tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA*) newObj((&NTItrunk__jMZvnc6V09aC24Isyj9alOEA_), sizeof(tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA));
384 	asgnRef((void**) (&(*result).next), (*t).head);
385 	(*result).key = key;
386 	unsureAsgnRef((void**) (&(*t).head), result);
387 	asgnRef((void**) (&(*t).data->data[h]), result);
388 	}BeforeRet_: ;
389 	return result;
390 }
N_INLINE(void,bitincl__pureZcollectionsZintsets_98)391 static N_INLINE(void, bitincl__pureZcollectionsZintsets_98)(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* s, NI key) {
392 	tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA* ret;
393 	tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA* t;
394 	NI u;
395 	ret = NIM_NIL;
396 	t = intSetPut__pureZcollectionsZintsets_107(s, (NI)((NI32)(key) >> (NU32)(((NI) 9))));
397 	u = (NI)(key & ((NI) 511));
398 	(*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)))));
399 }
N_NIMCALL(void,incl__pureZcollectionsZintsets_55)400 N_LIB_PRIVATE N_NIMCALL(void, incl__pureZcollectionsZintsets_55)(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* s, NI key) {
401 {	{
402 		if (!((*s).elems <= ((NI) 34))) goto LA3_;
403 		{
404 			NI i;
405 			NI i_2;
406 			i = (NI)0;
407 			i_2 = ((NI) 0);
408 			{
409 				while (1) {
410 					if (!(i_2 < (*s).elems)) goto LA7;
411 					i = i_2;
412 					{
413 						if (!((*s).a[(i)- 0] == key)) goto LA10_;
414 						goto BeforeRet_;
415 					}
416 					LA10_: ;
417 					i_2 += ((NI) 1);
418 				} LA7: ;
419 			}
420 		}
421 		{
422 			if (!((*s).elems < ((NI) 34))) goto LA14_;
423 			(*s).a[((*s).elems)- 0] = key;
424 			(*s).elems += ((NI) 1);
425 			goto BeforeRet_;
426 		}
427 		LA14_: ;
428 		unsureAsgnRef((void**) (&(*s).data), (tySequence__Bre9bNyuQOg1EJKitjSzn8w*) newSeq((&NTItrunkseq__Bre9bNyuQOg1EJKitjSzn8w_), ((NI) 8)));
429 		(*s).max = ((NI) 7);
430 		{
431 			NI i_3;
432 			NI i_4;
433 			i_3 = (NI)0;
434 			i_4 = ((NI) 0);
435 			{
436 				while (1) {
437 					if (!(i_4 < (*s).elems)) goto LA18;
438 					i_3 = i_4;
439 					bitincl__pureZcollectionsZintsets_98(s, (*s).a[(i_3)- 0]);
440 					i_4 += ((NI) 1);
441 				} LA18: ;
442 			}
443 		}
444 		(*s).elems = ((NI) 35);
445 	}
446 	LA3_: ;
447 	bitincl__pureZcollectionsZintsets_98(s, key);
448 	}BeforeRet_: ;
449 }
450