711 lines
20 KiB
C
711 lines
20 KiB
C
/* Generated by Nim Compiler v1.7.3 */
|
|
#define NIM_INTBITS 32
|
|
#define NIM_EmulateOverflowChecks
|
|
|
|
#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);
|
|
static N_INLINE(NU64, hiXorLoFallback64__pureZhashes_36)(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_3994;
|
|
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_3994);
|
|
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, hiXorLoFallback64__pureZhashes_36)(NU64 a, NU64 b) {
|
|
NU64 result;
|
|
NU64 colontmpD_;
|
|
NU64 colontmpD__2;
|
|
NU64 colontmpD__3;
|
|
NU64 colontmpD__4;
|
|
NU64 aH;
|
|
NU64 aL;
|
|
NU64 bH;
|
|
NU64 bL;
|
|
NU64 rHH;
|
|
NU64 rHL;
|
|
NU64 rLH;
|
|
NU64 rLL;
|
|
NU64 t;
|
|
NU64 c;
|
|
NU64 lo;
|
|
NU64 T6_;
|
|
NU64 hi;
|
|
{ result = (NU64)0;
|
|
colontmpD_ = (NU64)0;
|
|
colontmpD__2 = (NU64)0;
|
|
colontmpD__3 = (NU64)0;
|
|
colontmpD__4 = (NU64)0;
|
|
aH = (NU64)((NU64)(a) >> (NU64)(((NI)32)));
|
|
aL = (NU64)(a & 4294967295ULL);
|
|
bH = (NU64)((NU64)(b) >> (NU64)(((NI)32)));
|
|
bL = (NU64)(b & 4294967295ULL);
|
|
rHH = (NU64)((NU64)(aH) * (NU64)(bH));
|
|
rHL = (NU64)((NU64)(aH) * (NU64)(bL));
|
|
rLH = (NU64)((NU64)(aL) * (NU64)(bH));
|
|
rLL = (NU64)((NU64)(aL) * (NU64)(bL));
|
|
t = (NU64)((NU64)(rLL) + (NU64)((NU64)((NU64)(rHL) << (NU64)(((NI)32)))));
|
|
{
|
|
if (!((NU64)(t) < (NU64)(rLL))) goto LA3_;
|
|
colontmpD_ = 1ULL;
|
|
c = colontmpD_;
|
|
}
|
|
goto LA1_;
|
|
LA3_: ;
|
|
{
|
|
colontmpD__2 = 0ULL;
|
|
c = colontmpD__2;
|
|
}
|
|
LA1_: ;
|
|
lo = (NU64)((NU64)(t) + (NU64)((NU64)((NU64)(rLH) << (NU64)(((NI)32)))));
|
|
T6_ = (NU64)0;
|
|
{
|
|
if (!((NU64)(lo) < (NU64)(t))) goto LA9_;
|
|
colontmpD__3 = 1ULL;
|
|
T6_ = colontmpD__3;
|
|
}
|
|
goto LA7_;
|
|
LA9_: ;
|
|
{
|
|
colontmpD__4 = 0ULL;
|
|
T6_ = colontmpD__4;
|
|
}
|
|
LA7_: ;
|
|
c += T6_;
|
|
hi = (NU64)((NU64)((NU64)((NU64)((NU64)((NU64)(rHH) + (NU64)((NU64)((NU64)(rHL) >> (NU64)(((NI)32)))))) + (NU64)((NU64)((NU64)(rLH) >> (NU64)(((NI)32)))))) + (NU64)(c));
|
|
result = (NU64)(hi ^ lo);
|
|
goto BeforeRet_;
|
|
}BeforeRet_: ;
|
|
return result;
|
|
}
|
|
static N_INLINE(NU64, hiXorLo__pureZhashes_80)(NU64 a, NU64 b) {
|
|
NU64 result;
|
|
NIM_BOOL* nimErr_;
|
|
{nimErr_ = nimErrorFlag();
|
|
result = (NU64)0;
|
|
result = hiXorLoFallback64__pureZhashes_36(a, b);
|
|
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
|
|
}BeforeRet_: ;
|
|
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;
|
|
}
|