csources_v2/c_code/2_5/@mic@sbitabs.nim.c
2022-12-16 10:54:01 +08:00

639 lines
18 KiB
C

/* Generated by Nim Compiler v1.9.0 */
#define NIM_INTBITS 64
#include "nimbase.h"
#include <string.h>
#undef LANGUAGE_C
#undef MIPSEB
#undef MIPSEL
#undef PPC
#undef R3000
#undef R4000
#undef i386
#undef linux
#undef mips
#undef near
#undef far
#undef powerpc
#undef unix
#define nimfr_(x, y)
#define nimln_(x, y)
typedef struct tySequence__9bAGqSvkAaFL9bWjsEPslrFA tySequence__9bAGqSvkAaFL9bWjsEPslrFA;
typedef struct tySequence__9bAGqSvkAaFL9bWjsEPslrFA_Content tySequence__9bAGqSvkAaFL9bWjsEPslrFA_Content;
typedef struct tyObject_RodFile__XcLU0inTFUVuN75PWPV9cMA tyObject_RodFile__XcLU0inTFUVuN75PWPV9cMA;
typedef struct tyObject_BiTable__9ai5oxTvigdfDUwtWWva5Wg tyObject_BiTable__9ai5oxTvigdfDUwtWWva5Wg;
typedef struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ tySequence__sM4lkSb7zS6F7OVMvW9cffQ;
typedef struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ_Content tySequence__sM4lkSb7zS6F7OVMvW9cffQ_Content;
typedef struct tyObject_BiTable__iA9a9bnTrbRRuP29bd9cCIke9bg tyObject_BiTable__iA9a9bnTrbRRuP29bd9cCIke9bg;
typedef struct tySequence__IHUFRsFxZNv7YydiUO2esQ tySequence__IHUFRsFxZNv7YydiUO2esQ;
typedef struct tySequence__IHUFRsFxZNv7YydiUO2esQ_Content tySequence__IHUFRsFxZNv7YydiUO2esQ_Content;
typedef struct NimStrPayload NimStrPayload;
typedef struct NimStringV2 NimStringV2;
struct tySequence__9bAGqSvkAaFL9bWjsEPslrFA {
NI len; tySequence__9bAGqSvkAaFL9bWjsEPslrFA_Content* p;
};
struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ {
NI len; tySequence__sM4lkSb7zS6F7OVMvW9cffQ_Content* p;
};
struct tyObject_BiTable__9ai5oxTvigdfDUwtWWva5Wg {
tySequence__sM4lkSb7zS6F7OVMvW9cffQ vals;
tySequence__9bAGqSvkAaFL9bWjsEPslrFA keys;
};
struct tySequence__IHUFRsFxZNv7YydiUO2esQ {
NI len; tySequence__IHUFRsFxZNv7YydiUO2esQ_Content* p;
};
struct tyObject_BiTable__iA9a9bnTrbRRuP29bd9cCIke9bg {
tySequence__IHUFRsFxZNv7YydiUO2esQ vals;
tySequence__9bAGqSvkAaFL9bWjsEPslrFA keys;
};
struct NimStrPayload {
NI cap;
NIM_CHAR data[SEQ_DECL_SIZE];
};
struct NimStringV2 {
NI len;
NimStrPayload* p;
};
#ifndef tySequence__9bAGqSvkAaFL9bWjsEPslrFA_Content_PP
#define tySequence__9bAGqSvkAaFL9bWjsEPslrFA_Content_PP
struct tySequence__9bAGqSvkAaFL9bWjsEPslrFA_Content { NI cap; NU32 data[SEQ_DECL_SIZE];};
#endif
#ifndef tySequence__sM4lkSb7zS6F7OVMvW9cffQ_Content_PP
#define tySequence__sM4lkSb7zS6F7OVMvW9cffQ_Content_PP
struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ_Content { NI cap; NimStringV2 data[SEQ_DECL_SIZE];};
#endif
#ifndef tySequence__sM4lkSb7zS6F7OVMvW9cffQ_Content_PP
#define tySequence__sM4lkSb7zS6F7OVMvW9cffQ_Content_PP
struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ_Content { NI cap; NimStringV2 data[SEQ_DECL_SIZE];};
#endif
#ifndef tySequence__9bAGqSvkAaFL9bWjsEPslrFA_Content_PP
#define tySequence__9bAGqSvkAaFL9bWjsEPslrFA_Content_PP
struct tySequence__9bAGqSvkAaFL9bWjsEPslrFA_Content { NI cap; NU32 data[SEQ_DECL_SIZE];};
#endif
#ifndef tySequence__IHUFRsFxZNv7YydiUO2esQ_Content_PP
#define tySequence__IHUFRsFxZNv7YydiUO2esQ_Content_PP
struct tySequence__IHUFRsFxZNv7YydiUO2esQ_Content { NI cap; NI64 data[SEQ_DECL_SIZE];};
#endif
#ifndef tySequence__IHUFRsFxZNv7YydiUO2esQ_Content_PP
#define tySequence__IHUFRsFxZNv7YydiUO2esQ_Content_PP
struct tySequence__IHUFRsFxZNv7YydiUO2esQ_Content { NI cap; NI64 data[SEQ_DECL_SIZE];};
#endif
N_LIB_PRIVATE N_NIMCALL(void, alignedDealloc)(void* p, NI align);
N_LIB_PRIVATE N_NIMCALL(void, loadSeq__icZic_4356)(tyObject_RodFile__XcLU0inTFUVuN75PWPV9cMA* f, tySequence__sM4lkSb7zS6F7OVMvW9cffQ* s);
N_LIB_PRIVATE N_NIMCALL(void, loadSeq__icZic_4375)(tyObject_RodFile__XcLU0inTFUVuN75PWPV9cMA* f, tySequence__9bAGqSvkAaFL9bWjsEPslrFA* s);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___icZic_1200)(tySequence__9bAGqSvkAaFL9bWjsEPslrFA* dest);
static N_INLINE(NIM_BOOL*, nimErrorFlag)(void);
N_LIB_PRIVATE N_NIMCALL(void, loadSeq__icZic_4573)(tyObject_RodFile__XcLU0inTFUVuN75PWPV9cMA* f, tySequence__IHUFRsFxZNv7YydiUO2esQ* s);
N_LIB_PRIVATE N_NIMCALL(void, setLen__icZic_1088)(tySequence__9bAGqSvkAaFL9bWjsEPslrFA* s, NI newlen);
N_LIB_PRIVATE N_NIMCALL(NI, hash__pureZhashes_284)(NimStringV2 x);
static N_INLINE(NIM_BOOL, eqStrings)(NimStringV2 a, NimStringV2 b);
static N_INLINE(NIM_BOOL, equalMem__system_1727)(void* a, void* b, NI size);
static N_INLINE(int, nimCmpMem)(void* a, void* b, NI size);
static N_INLINE(NI, nextTry__icZbitabs_9)(NI h, NI maxHash);
static N_INLINE(NIM_BOOL, mustRehash__icZbitabs_45)(NI length, NI counter);
N_LIB_PRIVATE N_NIMCALL(void, enlarge__icZic_1073)(tyObject_BiTable__9ai5oxTvigdfDUwtWWva5Wg* t);
N_LIB_PRIVATE N_NIMCALL(void, newSeq__icZic_1080)(tySequence__9bAGqSvkAaFL9bWjsEPslrFA* s, NI len);
N_LIB_PRIVATE N_NIMCALL(void, add__stdZenumutils_69)(tySequence__sM4lkSb7zS6F7OVMvW9cffQ* x, NimStringV2 value);
N_LIB_PRIVATE N_NIMCALL(void, eqcopy___stdZassertions_16)(NimStringV2* dest, NimStringV2 src);
static N_INLINE(NI, hash__pureZjson_3326)(NI64 x);
static N_INLINE(NI, hashWangYi1__pureZhashes_139)(NU64 x);
static N_INLINE(NU64, hiXorLo__pureZhashes_80)(NU64 a, NU64 b);
N_LIB_PRIVATE N_NIMCALL(void, enlarge__icZic_3029)(tyObject_BiTable__iA9a9bnTrbRRuP29bd9cCIke9bg* t);
N_LIB_PRIVATE N_NIMCALL(void, add__icZic_3083)(tySequence__IHUFRsFxZNv7YydiUO2esQ* x, NI64 value);
N_LIB_PRIVATE N_NIMCALL(void, storeSeq__icZic_6236)(tyObject_RodFile__XcLU0inTFUVuN75PWPV9cMA* f, tySequence__sM4lkSb7zS6F7OVMvW9cffQ s);
N_LIB_PRIVATE N_NIMCALL(void, storeSeq__icZic_6269)(tyObject_RodFile__XcLU0inTFUVuN75PWPV9cMA* f, tySequence__9bAGqSvkAaFL9bWjsEPslrFA s);
N_LIB_PRIVATE N_NIMCALL(void, storeSeq__icZic_6381)(tyObject_RodFile__XcLU0inTFUVuN75PWPV9cMA* f, tySequence__IHUFRsFxZNv7YydiUO2esQ s);
extern NIM_BOOL nimInErrorMode__system_3980;
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___icZic_1200)(tySequence__9bAGqSvkAaFL9bWjsEPslrFA* dest) {
if ((*dest).p && !((*dest).p->cap & NIM_STRLIT_FLAG)) {
alignedDealloc((*dest).p, NIM_ALIGNOF(NU32));
}
}
N_LIB_PRIVATE N_NIMCALL(void, eqsink___icZic_1206)(tySequence__9bAGqSvkAaFL9bWjsEPslrFA* dest, tySequence__9bAGqSvkAaFL9bWjsEPslrFA src) {
if ((*dest).p != src.p) { eqdestroy___icZic_1200(dest);
}
(*dest).len = src.len; (*dest).p = src.p;
}
static N_INLINE(NIM_BOOL*, nimErrorFlag)(void) {
NIM_BOOL* result;
result = (NIM_BOOL*)0;
result = (&nimInErrorMode__system_3980);
return result;
}
N_LIB_PRIVATE N_NIMCALL(void, load__icZic_4352)(tyObject_RodFile__XcLU0inTFUVuN75PWPV9cMA* f, tyObject_BiTable__9ai5oxTvigdfDUwtWWva5Wg* t) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
loadSeq__icZic_4356(f, (&(*t).vals));
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
loadSeq__icZic_4375(f, (&(*t).keys));
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, load__icZic_4569)(tyObject_RodFile__XcLU0inTFUVuN75PWPV9cMA* f, tyObject_BiTable__iA9a9bnTrbRRuP29bd9cCIke9bg* t) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
loadSeq__icZic_4573(f, (&(*t).vals));
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
loadSeq__icZic_4375(f, (&(*t).keys));
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, eqcopy___icZic_1203)(tySequence__9bAGqSvkAaFL9bWjsEPslrFA* dest, tySequence__9bAGqSvkAaFL9bWjsEPslrFA src) {
NI T1_;
NI colontmp_;
T1_ = src.len;
setLen__icZic_1088((&(*dest)), T1_);
colontmp_ = ((NI)0);
{
while (1) {
NI T4_;
T4_ = (*dest).len;
if (!(colontmp_ < T4_)) goto LA3 ;
(*dest).p->data[colontmp_] = src.p->data[colontmp_];
colontmp_ += ((NI)1);
} LA3: ;
}
}
static N_INLINE(int, nimCmpMem)(void* a, void* b, NI size) {
int result;
result = (int)0;
result = memcmp(a, b, ((size_t) (size)));
return result;
}
static N_INLINE(NIM_BOOL, equalMem__system_1727)(void* a, void* b, NI size) {
NIM_BOOL result;
int T1_;
result = (NIM_BOOL)0;
T1_ = (int)0;
T1_ = nimCmpMem(a, b, size);
result = (T1_ == ((NI32)0));
return result;
}
static N_INLINE(NIM_BOOL, eqStrings)(NimStringV2 a, NimStringV2 b) {
NIM_BOOL result;
NI alen;
NI blen;
{ result = (NIM_BOOL)0;
alen = a.len;
blen = b.len;
{
if (!(alen == blen)) goto LA3_;
{
if (!(alen == ((NI)0))) goto LA7_;
result = NIM_TRUE;
goto BeforeRet_;
}
LA7_: ;
result = equalMem__system_1727(((void*) ((&a.p->data[((NI)0)]))), ((void*) ((&b.p->data[((NI)0)]))), ((NI) (alen)));
goto BeforeRet_;
}
LA3_: ;
}BeforeRet_: ;
return result;
}
static N_INLINE(NI, nextTry__icZbitabs_9)(NI h, NI maxHash) {
NI result;
result = (NI)0;
result = (NI)((NI)(h + ((NI)1)) & maxHash);
return result;
}
static N_INLINE(NIM_BOOL, mustRehash__icZbitabs_45)(NI length, NI counter) {
NIM_BOOL result;
NIM_BOOL T1_;
result = (NIM_BOOL)0;
T1_ = (NIM_BOOL)0;
T1_ = ((NI)(length * ((NI)2)) < (NI)(counter * ((NI)3)));
if (T1_) goto LA2_;
T1_ = ((NI)(length - counter) < ((NI)4));
LA2_: ;
result = T1_;
return result;
}
N_LIB_PRIVATE N_NIMCALL(void, enlarge__icZic_1073)(tyObject_BiTable__9ai5oxTvigdfDUwtWWva5Wg* t) {
tySequence__9bAGqSvkAaFL9bWjsEPslrFA n;
NI T1_;
tySequence__9bAGqSvkAaFL9bWjsEPslrFA T2_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
n.len = 0; n.p = NIM_NIL;
T1_ = (*t).keys.len;
newSeq__icZic_1080((&n), ((NI) ((NI)(T1_ * ((NI)2)))));
T2_.len = 0; T2_.p = NIM_NIL;
T2_ = (*t).keys;
(*t).keys = n;
n = T2_;
{
NI i;
NI colontmp_;
NI T4_;
NI res;
i = (NI)0;
colontmp_ = (NI)0;
T4_ = (n.len-1);
colontmp_ = T4_;
res = ((NI)0);
{
while (1) {
NU32 eh;
if (!(res <= colontmp_)) goto LA6 ;
i = res;
eh = n.p->data[i];
{
NI j;
NI T11_;
NI T12_;
if (!((NU32)(((NU32)0)) < (NU32)(eh))) goto LA9_;
T11_ = (NI)0;
T11_ = hash__pureZhashes_284((*t).vals.p->data[(NI)(((NI) (eh)) - ((NI)256))]);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
T12_ = ((*t).keys.len-1);
j = (NI)(T11_ & T12_);
{
while (1) {
NI T15_;
if (!((NU32)(((NU32)0)) < (NU32)((*t).keys.p->data[j]))) goto LA14 ;
T15_ = ((*t).keys.len-1);
j = nextTry__icZbitabs_9(j, T15_);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
} LA14: ;
}
(*t).keys.p->data[j] = n.p->data[i];
n.p->data[i] = 0;
}
LA9_: ;
res += ((NI)1);
} LA6: ;
}
}
eqdestroy___icZic_1200((&n));
}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(NU32, getOrIncl__icZic_1047)(tyObject_BiTable__9ai5oxTvigdfDUwtWWva5Wg* t, NimStringV2 v) {
NU32 result;
NimStringV2 colontmpD_;
NI origH;
NI h;
NI T1_;
NI T35_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
result = (NU32)0;
colontmpD_.len = 0; colontmpD_.p = NIM_NIL;
origH = hash__pureZhashes_284(v);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
T1_ = ((*t).keys.len-1);
h = (NI)(origH & T1_);
{
NI T4_;
T4_ = (*t).keys.len;
if (!!((T4_ == ((NI)0)))) goto LA5_;
{
while (1) {
NU32 litId;
NI T17_;
litId = (*t).keys.p->data[h];
{
if (!!(((NU32)(((NU32)0)) < (NU32)(litId)))) goto LA11_;
goto LA7;
}
LA11_: ;
{
if (!eqStrings((*t).vals.p->data[(NI)(((NI) ((*t).keys.p->data[h])) - ((NI)256))], v)) goto LA15_;
result = litId;
goto BeforeRet_;
}
LA15_: ;
T17_ = ((*t).keys.len-1);
h = nextTry__icZbitabs_9(h, T17_);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}
} LA7: ;
{
NI T20_;
NI T21_;
NIM_BOOL T22_;
NI T25_;
T20_ = (*t).keys.len;
T21_ = (*t).vals.len;
T22_ = (NIM_BOOL)0;
T22_ = mustRehash__icZbitabs_45(T20_, T21_);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
if (!T22_) goto LA23_;
enlarge__icZic_1073(t);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
T25_ = ((*t).keys.len-1);
h = (NI)(origH & T25_);
{
while (1) {
NU32 litId_2;
NI T32_;
litId_2 = (*t).keys.p->data[h];
{
if (!!(((NU32)(((NU32)0)) < (NU32)(litId_2)))) goto LA30_;
goto LA26;
}
LA30_: ;
T32_ = ((*t).keys.len-1);
h = nextTry__icZbitabs_9(h, T32_);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}
} LA26: ;
}
LA23_: ;
}
goto LA2_;
LA5_: ;
{
NI T34_;
setLen__icZic_1088((&(*t).keys), ((NI)16));
T34_ = ((*t).keys.len-1);
h = (NI)(origH & T34_);
}
LA2_: ;
T35_ = (*t).vals.len;
result = ((NU32) ((NI)(T35_ + ((NI)256))));
(*t).keys.p->data[h] = result;
colontmpD_.len = 0; colontmpD_.p = NIM_NIL;
eqcopy___stdZassertions_16((&colontmpD_), v);
add__stdZenumutils_69((&(*t).vals), colontmpD_);
}BeforeRet_: ;
return result;
}
static N_INLINE(NU64, hiXorLo__pureZhashes_80)(NU64 a, NU64 b) {
NU64 result;
result = (NU64)0;
__uint128_t r = a; r *= b; result = (r >> 64) ^ r;
return result;
}
static N_INLINE(NI, hashWangYi1__pureZhashes_139)(NU64 x) {
NI result;
NU64 T1_;
NU64 T2_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
result = (NI)0;
T1_ = (NU64)0;
T1_ = hiXorLo__pureZhashes_80(11562461410679940143ULL, (NU64)(x ^ 16646288086500911323ULL));
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
T2_ = (NU64)0;
T2_ = hiXorLo__pureZhashes_80(T1_, 16952864883938283885ULL);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
result = ((NI) (T2_));
}BeforeRet_: ;
return result;
}
static N_INLINE(NI, hash__pureZjson_3326)(NI64 x) {
NI result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
result = (NI)0;
result = hashWangYi1__pureZhashes_139(((NU64) (x)));
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}BeforeRet_: ;
return result;
}
N_LIB_PRIVATE N_NIMCALL(void, enlarge__icZic_3029)(tyObject_BiTable__iA9a9bnTrbRRuP29bd9cCIke9bg* t) {
tySequence__9bAGqSvkAaFL9bWjsEPslrFA n;
NI T1_;
tySequence__9bAGqSvkAaFL9bWjsEPslrFA T2_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
n.len = 0; n.p = NIM_NIL;
T1_ = (*t).keys.len;
newSeq__icZic_1080((&n), ((NI) ((NI)(T1_ * ((NI)2)))));
T2_.len = 0; T2_.p = NIM_NIL;
T2_ = (*t).keys;
(*t).keys = n;
n = T2_;
{
NI i;
NI colontmp_;
NI T4_;
NI res;
i = (NI)0;
colontmp_ = (NI)0;
T4_ = (n.len-1);
colontmp_ = T4_;
res = ((NI)0);
{
while (1) {
NU32 eh;
if (!(res <= colontmp_)) goto LA6 ;
i = res;
eh = n.p->data[i];
{
NI j;
NI T11_;
NI T12_;
if (!((NU32)(((NU32)0)) < (NU32)(eh))) goto LA9_;
T11_ = (NI)0;
T11_ = hash__pureZjson_3326((*t).vals.p->data[(NI)(((NI) (eh)) - ((NI)256))]);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
T12_ = ((*t).keys.len-1);
j = (NI)(T11_ & T12_);
{
while (1) {
NI T15_;
if (!((NU32)(((NU32)0)) < (NU32)((*t).keys.p->data[j]))) goto LA14 ;
T15_ = ((*t).keys.len-1);
j = nextTry__icZbitabs_9(j, T15_);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
} LA14: ;
}
(*t).keys.p->data[j] = n.p->data[i];
n.p->data[i] = 0;
}
LA9_: ;
res += ((NI)1);
} LA6: ;
}
}
eqdestroy___icZic_1200((&n));
}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(NU32, getOrIncl__icZic_3001)(tyObject_BiTable__iA9a9bnTrbRRuP29bd9cCIke9bg* t, NI64 v) {
NU32 result;
NI64 colontmpD_;
NI origH;
NI h;
NI T1_;
NI T35_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
result = (NU32)0;
colontmpD_ = (NI64)0;
origH = hash__pureZjson_3326(v);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
T1_ = ((*t).keys.len-1);
h = (NI)(origH & T1_);
{
NI T4_;
T4_ = (*t).keys.len;
if (!!((T4_ == ((NI)0)))) goto LA5_;
{
while (1) {
NU32 litId;
NI T17_;
litId = (*t).keys.p->data[h];
{
if (!!(((NU32)(((NU32)0)) < (NU32)(litId)))) goto LA11_;
goto LA7;
}
LA11_: ;
{
if (!((*t).vals.p->data[(NI)(((NI) ((*t).keys.p->data[h])) - ((NI)256))] == v)) goto LA15_;
result = litId;
goto BeforeRet_;
}
LA15_: ;
T17_ = ((*t).keys.len-1);
h = nextTry__icZbitabs_9(h, T17_);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}
} LA7: ;
{
NI T20_;
NI T21_;
NIM_BOOL T22_;
NI T25_;
T20_ = (*t).keys.len;
T21_ = (*t).vals.len;
T22_ = (NIM_BOOL)0;
T22_ = mustRehash__icZbitabs_45(T20_, T21_);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
if (!T22_) goto LA23_;
enlarge__icZic_3029(t);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
T25_ = ((*t).keys.len-1);
h = (NI)(origH & T25_);
{
while (1) {
NU32 litId_2;
NI T32_;
litId_2 = (*t).keys.p->data[h];
{
if (!!(((NU32)(((NU32)0)) < (NU32)(litId_2)))) goto LA30_;
goto LA26;
}
LA30_: ;
T32_ = ((*t).keys.len-1);
h = nextTry__icZbitabs_9(h, T32_);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}
} LA26: ;
}
LA23_: ;
}
goto LA2_;
LA5_: ;
{
NI T34_;
setLen__icZic_1088((&(*t).keys), ((NI)16));
T34_ = ((*t).keys.len-1);
h = (NI)(origH & T34_);
}
LA2_: ;
T35_ = (*t).vals.len;
result = ((NU32) ((NI)(T35_ + ((NI)256))));
(*t).keys.p->data[h] = result;
colontmpD_ = v;
add__icZic_3083((&(*t).vals), colontmpD_);
}BeforeRet_: ;
return result;
}
N_LIB_PRIVATE N_NIMCALL(void, store__icZic_6232)(tyObject_RodFile__XcLU0inTFUVuN75PWPV9cMA* f, tyObject_BiTable__9ai5oxTvigdfDUwtWWva5Wg* t) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
storeSeq__icZic_6236(f, (*t).vals);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
storeSeq__icZic_6269(f, (*t).keys);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, store__icZic_6377)(tyObject_RodFile__XcLU0inTFUVuN75PWPV9cMA* f, tyObject_BiTable__iA9a9bnTrbRRuP29bd9cCIke9bg* t) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
storeSeq__icZic_6381(f, (*t).vals);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
storeSeq__icZic_6269(f, (*t).keys);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(NU32, getKeyId__icZnavigator_338)(tyObject_BiTable__9ai5oxTvigdfDUwtWWva5Wg* t, NimStringV2 v) {
NU32 result;
NI origH;
NI h;
NI T1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
result = (NU32)0;
origH = hash__pureZhashes_284(v);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
T1_ = ((*t).keys.len-1);
h = (NI)(origH & T1_);
{
NI T4_;
T4_ = (*t).keys.len;
if (!!((T4_ == ((NI)0)))) goto LA5_;
{
while (1) {
NU32 litId;
NI T17_;
litId = (*t).keys.p->data[h];
{
if (!!(((NU32)(((NU32)0)) < (NU32)(litId)))) goto LA11_;
goto LA7;
}
LA11_: ;
{
if (!eqStrings((*t).vals.p->data[(NI)(((NI) ((*t).keys.p->data[h])) - ((NI)256))], v)) goto LA15_;
result = litId;
goto BeforeRet_;
}
LA15_: ;
T17_ = ((*t).keys.len-1);
h = nextTry__icZbitabs_9(h, T17_);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}
} LA7: ;
}
LA5_: ;
result = ((NU32)0);
goto BeforeRet_;
}BeforeRet_: ;
return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, len__icZic_11769)(tyObject_BiTable__9ai5oxTvigdfDUwtWWva5Wg* t) {
NI result;
NI T1_;
result = (NI)0;
T1_ = (*t).vals.len;
result = T1_;
return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, len__icZic_11822)(tyObject_BiTable__iA9a9bnTrbRRuP29bd9cCIke9bg* t) {
NI result;
NI T1_;
result = (NI)0;
T1_ = (*t).vals.len;
result = T1_;
return result;
}