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