/* Generated by Nim Compiler v1.6.2 */ #define NIM_INTBITS 32 #include "nimbase.h" #include #include #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 tyObject_Int128__9a9axPfb75jdWY25AamJewkA tyObject_Int128__9a9axPfb75jdWY25AamJewkA; typedef struct NimStringDesc NimStringDesc; typedef struct TGenericSeq TGenericSeq; typedef struct tyTuple__0titlMXgFgzRLN6v28f9azA tyTuple__0titlMXgFgzRLN6v28f9azA; typedef NU32 tyArray__FleBT9cC2nxhgiXmSYYnEKA[4]; struct tyObject_Int128__9a9axPfb75jdWY25AamJewkA { tyArray__FleBT9cC2nxhgiXmSYYnEKA udata; }; struct TGenericSeq { NI len; NI reserved; }; struct NimStringDesc { TGenericSeq Sup; NIM_CHAR data[SEQ_DECL_SIZE]; }; struct tyTuple__0titlMXgFgzRLN6v28f9azA { tyObject_Int128__9a9axPfb75jdWY25AamJewkA Field0; tyObject_Int128__9a9axPfb75jdWY25AamJewkA Field1; }; static N_INLINE(void, nimZeroMem)(void* p, NI size); static N_INLINE(void, nimSetMem__systemZmemory_7)(void* a, int v, NI size); N_LIB_PRIVATE N_NIMCALL(NI, cmp__int495056_279)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a, tyObject_Int128__9a9axPfb75jdWY25AamJewkA b); N_LIB_PRIVATE N_NIMCALL(NI, cmp__int495056_283)(NI32 x, NI32 y); N_LIB_PRIVATE N_NIMCALL(NI, cmp__int495056_289)(NU32 x, NU32 y); N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, toInt128__int495056_725)(NI64 arg); N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, eqeq___int495056_313)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a, tyObject_Int128__9a9axPfb75jdWY25AamJewkA b); N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, plus___int495056_448)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a, tyObject_Int128__9a9axPfb75jdWY25AamJewkA b); N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, minus___int495056_471)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a); N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, bitnot__int495056_319)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a); N_LIB_PRIVATE N_NIMCALL(void, inc__int495056_251)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA* a, NU32 y); N_LIB_PRIVATE N_NIMCALL(void, failedAssertImpl__systemZassertions_56)(NimStringDesc* msg); N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, minus___int495056_474)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a, tyObject_Int128__9a9axPfb75jdWY25AamJewkA b); N_LIB_PRIVATE N_NIMCALL(NU64, bitconcat__int495056_64)(NU32 a, NU32 b); N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, star___int495056_487)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a, NU32 b); N_LIB_PRIVATE N_NIMCALL(NI, abs__int495056_484)(NI32 a); static N_INLINE(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, maskUInt8__int495056_847)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA arg); static N_INLINE(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, maskUInt16__int495056_844)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA arg); static N_INLINE(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, maskUInt32__int495056_841)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA arg); static N_INLINE(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, maskUInt64__int495056_838)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA arg); N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, makeInt128__int495056_522)(NU64 high, NU64 low); N_LIB_PRIVATE N_NIMCALL(NU64, high64__int495056_534)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a); N_LIB_PRIVATE N_NIMCALL(NU64, low64__int495056_537)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a); N_LIB_PRIVATE N_NIMCALL(void, pluseq___int495056_468)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA* a, tyObject_Int128__9a9axPfb75jdWY25AamJewkA b); N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, shl__int495056_379)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a, NI b); N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, toInt128__int495056_556)(NU64 arg); N_LIB_PRIVATE N_NIMCALL(void, divMod__int495056_601)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA dividend, tyObject_Int128__9a9axPfb75jdWY25AamJewkA divisor, tyTuple__0titlMXgFgzRLN6v28f9azA* Result); N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, abs__int495056_481)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a); N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, lt___int495056_305)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a, tyObject_Int128__9a9axPfb75jdWY25AamJewkA b); N_LIB_PRIVATE N_NIMCALL(NI, fastLog2__int495056_575)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a); static N_INLINE(NI, fastLog2__int495056_578)(NU32 x); N_CDECL(int, __builtin_clz)(unsigned int x); N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, lteq___int495056_309)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a, tyObject_Int128__9a9axPfb75jdWY25AamJewkA b); N_LIB_PRIVATE N_NIMCALL(void, minuseq___int495056_478)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA* a, tyObject_Int128__9a9axPfb75jdWY25AamJewkA b); N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, bitor__int495056_326)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a, tyObject_Int128__9a9axPfb75jdWY25AamJewkA b); N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, shr__int495056_334)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a, NI b); N_LIB_PRIVATE N_NIMCALL(void, addInt128__int495056_643)(NimStringDesc** result, tyObject_Int128__9a9axPfb75jdWY25AamJewkA value); static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src); static N_INLINE(void, copyMem__system_1727)(void* dest, void* source, NI size); static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size); N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, resizeString)(NimStringDesc* dest, NI addlen); N_LIB_PRIVATE N_NIMCALL(void, unsureAsgnRef)(void** dest, void* src); N_LIB_PRIVATE N_NIMCALL(NI64, toInt64__int495056_88)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA arg); N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, addChar)(NimStringDesc* s, NIM_CHAR c); static N_INLINE(NF, abs__pureZmath_150)(NF x); N_LIB_PRIVATE N_NIMCALL(NI32, toInt32__int495056_107)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA arg); N_LIB_PRIVATE NIM_CONST tyObject_Int128__9a9axPfb75jdWY25AamJewkA Zero__int495056_7 = {{((NU32) 0), ((NU32) 0), ((NU32) 0), ((NU32) 0)} } ; N_LIB_PRIVATE NIM_CONST tyObject_Int128__9a9axPfb75jdWY25AamJewkA Max__int495056_27 = {{((NU32) IL64(4294967295)), ((NU32) IL64(4294967295)), ((NU32) IL64(4294967295)), ((NU32) 2147483647)} } ; STRING_LITERAL(TM__nQVdjfHleOuOqvMTepKJUw_2, "int128.nim(186, 17) `a.sdata(3) != low(int32)` overflow", 55); N_LIB_PRIVATE NIM_CONST tyObject_Int128__9a9axPfb75jdWY25AamJewkA One__int495056_8 = {{((NU32) 1), ((NU32) 0), ((NU32) 0), ((NU32) 0)} } ; N_LIB_PRIVATE NIM_CONST tyObject_Int128__9a9axPfb75jdWY25AamJewkA NegOne__int495056_28 = {{((NU32) IL64(4294967295)), ((NU32) IL64(4294967295)), ((NU32) IL64(4294967295)), ((NU32) IL64(4294967295))} } ; STRING_LITERAL(TM__nQVdjfHleOuOqvMTepKJUw_3, "0", 1); N_LIB_PRIVATE NIM_CONST tyObject_Int128__9a9axPfb75jdWY25AamJewkA Min__int495056_10 = {{((NU32) 0), ((NU32) 0), ((NU32) 0), ((NU32) IL64(2147483648))} } ; STRING_LITERAL(TM__nQVdjfHleOuOqvMTepKJUw_4, "-170141183460469231731687303715884105728", 40); N_LIB_PRIVATE NIM_CONST tyObject_Int128__9a9axPfb75jdWY25AamJewkA Ten__int495056_9 = {{((NU32) 10), ((NU32) 0), ((NU32) 0), ((NU32) 0)} } ; STRING_LITERAL(TM__nQVdjfHleOuOqvMTepKJUw_5, "0123456789", 10); N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, eqeq___int495056_313)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a, tyObject_Int128__9a9axPfb75jdWY25AamJewkA b) { NIM_BOOL result; { result = (NIM_BOOL)0; { if (!!((a.udata[(((NI) 0))- 0] == b.udata[(((NI) 0))- 0]))) goto LA3_; result = NIM_FALSE; goto BeforeRet_; } LA3_: ; { if (!!((a.udata[(((NI) 1))- 0] == b.udata[(((NI) 1))- 0]))) goto LA7_; result = NIM_FALSE; goto BeforeRet_; } LA7_: ; { if (!!((a.udata[(((NI) 2))- 0] == b.udata[(((NI) 2))- 0]))) goto LA11_; result = NIM_FALSE; goto BeforeRet_; } LA11_: ; { if (!!((a.udata[(((NI) 3))- 0] == b.udata[(((NI) 3))- 0]))) goto LA15_; result = NIM_FALSE; goto BeforeRet_; } LA15_: ; result = NIM_TRUE; goto BeforeRet_; }BeforeRet_: ; return result; } static N_INLINE(void, nimSetMem__systemZmemory_7)(void* a, int v, NI size) { void* T1_; T1_ = (void*)0; T1_ = memset(a, v, ((size_t) (size))); } static N_INLINE(void, nimZeroMem)(void* p, NI size) { nimSetMem__systemZmemory_7(p, ((int) 0), size); } N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, toInt128__int495056_556)(NU64 arg) { tyObject_Int128__9a9axPfb75jdWY25AamJewkA result; nimZeroMem((void*)(&result), sizeof(tyObject_Int128__9a9axPfb75jdWY25AamJewkA)); result.udata[(((NI) 0))- 0] = ((NU32) ((NU64)(arg & 4294967295ULL))); result.udata[(((NI) 1))- 0] = ((NU32) ((NU64)((NU64)(arg) >> (NU64)(((NI) 32))))); return result; } N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, toInt128__int495056_725)(NI64 arg) { tyObject_Int128__9a9axPfb75jdWY25AamJewkA result; NI64 tmp; nimZeroMem((void*)(&result), sizeof(tyObject_Int128__9a9axPfb75jdWY25AamJewkA)); tmp = arg; result.udata[(((NI) 0))- 0] = ((NU32) ((NI64)(tmp & IL64(4294967295)))); (*((NI32*) ((&result.udata[(((NI) 1))- 0])))) = ((NI32) ((NI64)((NI64)(tmp) >> (NU64)(((NI) 32))))); { if (!(arg < IL64(0))) goto LA3_; (*((NI32*) ((&result.udata[(((NI) 2))- 0])))) = ((NI32) -1); (*((NI32*) ((&result.udata[(((NI) 3))- 0])))) = ((NI32) -1); } LA3_: ; return result; } N_LIB_PRIVATE N_NIMCALL(NI, cmp__int495056_283)(NI32 x, NI32 y) { NI result; { result = (NI)0; { if (!(x == y)) goto LA3_; result = ((NI) 0); goto BeforeRet_; } LA3_: ; { if (!(x < y)) goto LA7_; result = ((NI) -1); goto BeforeRet_; } LA7_: ; result = ((NI) 1); goto BeforeRet_; }BeforeRet_: ; return result; } N_LIB_PRIVATE N_NIMCALL(NI, cmp__int495056_289)(NU32 x, NU32 y) { NI result; { result = (NI)0; { if (!(x == y)) goto LA3_; result = ((NI) 0); goto BeforeRet_; } LA3_: ; { if (!((NU32)(x) < (NU32)(y))) goto LA7_; result = ((NI) -1); goto BeforeRet_; } LA7_: ; result = ((NI) 1); goto BeforeRet_; }BeforeRet_: ; return result; } N_LIB_PRIVATE N_NIMCALL(NI, cmp__int495056_279)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a, tyObject_Int128__9a9axPfb75jdWY25AamJewkA b) { NI result; NI tmp1; NI tmp2; NI tmp3; NI tmp4; { result = (NI)0; tmp1 = cmp__int495056_283((*((NI32*) ((&a.udata[(((NI) 3))- 0])))), (*((NI32*) ((&b.udata[(((NI) 3))- 0]))))); { if (!!((tmp1 == ((NI) 0)))) goto LA3_; result = tmp1; goto BeforeRet_; } LA3_: ; tmp2 = cmp__int495056_289(a.udata[(((NI) 2))- 0], b.udata[(((NI) 2))- 0]); { if (!!((tmp2 == ((NI) 0)))) goto LA7_; result = tmp2; goto BeforeRet_; } LA7_: ; tmp3 = cmp__int495056_289(a.udata[(((NI) 1))- 0], b.udata[(((NI) 1))- 0]); { if (!!((tmp3 == ((NI) 0)))) goto LA11_; result = tmp3; goto BeforeRet_; } LA11_: ; tmp4 = cmp__int495056_289(a.udata[(((NI) 0))- 0], b.udata[(((NI) 0))- 0]); result = tmp4; goto BeforeRet_; }BeforeRet_: ; return result; } N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, lteq___int495056_309)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a, tyObject_Int128__9a9axPfb75jdWY25AamJewkA b) { NIM_BOOL result; NI T1_; result = (NIM_BOOL)0; T1_ = (NI)0; T1_ = cmp__int495056_279(a, b); result = (T1_ <= ((NI) 0)); return result; } N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, lteq___int495056_745)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a, NI64 b) { NIM_BOOL result; tyObject_Int128__9a9axPfb75jdWY25AamJewkA T1_; NI T2_; result = (NIM_BOOL)0; T1_ = toInt128__int495056_725(b); T2_ = (NI)0; T2_ = cmp__int495056_279(a, T1_); result = (T2_ <= ((NI) 0)); return result; } N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, lteq___int495056_752)(NI64 a, tyObject_Int128__9a9axPfb75jdWY25AamJewkA b) { NIM_BOOL result; tyObject_Int128__9a9axPfb75jdWY25AamJewkA T1_; NI T2_; result = (NIM_BOOL)0; T1_ = toInt128__int495056_725(a); T2_ = (NI)0; T2_ = cmp__int495056_279(T1_, b); result = (T2_ <= ((NI) 0)); return result; } N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, eqeq___int495056_759)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a, NI64 b) { NIM_BOOL result; tyObject_Int128__9a9axPfb75jdWY25AamJewkA T1_; result = (NIM_BOOL)0; T1_ = toInt128__int495056_725(b); result = eqeq___int495056_313(a, T1_); return result; } N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, plus___int495056_448)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a, tyObject_Int128__9a9axPfb75jdWY25AamJewkA b) { tyObject_Int128__9a9axPfb75jdWY25AamJewkA result; NU64 tmp0; NU64 tmp1; NU64 tmp2; NU64 tmp3; nimZeroMem((void*)(&result), sizeof(tyObject_Int128__9a9axPfb75jdWY25AamJewkA)); tmp0 = (NU64)((NU64)(((NU64) (a.udata[(((NI) 0))- 0]))) + (NU64)(((NU64) (b.udata[(((NI) 0))- 0])))); result.udata[(((NI) 0))- 0] = ((NU32) (tmp0)); tmp1 = (NU64)((NU64)((NU64)((NU64)(((NU64) (a.udata[(((NI) 1))- 0]))) + (NU64)(((NU64) (b.udata[(((NI) 1))- 0]))))) + (NU64)((NU64)((NU64)(tmp0) >> (NU64)(((NI) 32))))); result.udata[(((NI) 1))- 0] = ((NU32) (tmp1)); tmp2 = (NU64)((NU64)((NU64)((NU64)(((NU64) (a.udata[(((NI) 2))- 0]))) + (NU64)(((NU64) (b.udata[(((NI) 2))- 0]))))) + (NU64)((NU64)((NU64)(tmp1) >> (NU64)(((NI) 32))))); result.udata[(((NI) 2))- 0] = ((NU32) (tmp2)); tmp3 = (NU64)((NU64)((NU64)((NU64)(((NU64) (a.udata[(((NI) 3))- 0]))) + (NU64)(((NU64) (b.udata[(((NI) 3))- 0]))))) + (NU64)((NU64)((NU64)(tmp2) >> (NU64)(((NI) 32))))); result.udata[(((NI) 3))- 0] = ((NU32) (tmp3)); return result; } N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, bitnot__int495056_319)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a) { tyObject_Int128__9a9axPfb75jdWY25AamJewkA result; nimZeroMem((void*)(&result), sizeof(tyObject_Int128__9a9axPfb75jdWY25AamJewkA)); result.udata[(((NI) 0))- 0] = (NU32)((NU32) ~(a.udata[(((NI) 0))- 0])); result.udata[(((NI) 1))- 0] = (NU32)((NU32) ~(a.udata[(((NI) 1))- 0])); result.udata[(((NI) 2))- 0] = (NU32)((NU32) ~(a.udata[(((NI) 2))- 0])); result.udata[(((NI) 3))- 0] = (NU32)((NU32) ~(a.udata[(((NI) 3))- 0])); return result; } N_LIB_PRIVATE N_NIMCALL(void, inc__int495056_251)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA* a, NU32 y) { (*a).udata[(((NI) 0))- 0] += y; { NIM_BOOL T3_; T3_ = (NIM_BOOL)0; T3_ = NIM_UNLIKELY(((NU32)((*a).udata[(((NI) 0))- 0]) < (NU32)(y))); if (!T3_) goto LA4_; (*a).udata[(((NI) 1))- 0] += ((NI) 1); { NIM_BOOL T8_; T8_ = (NIM_BOOL)0; T8_ = NIM_UNLIKELY(((*a).udata[(((NI) 1))- 0] == ((NU32) 0))); if (!T8_) goto LA9_; (*a).udata[(((NI) 2))- 0] += ((NI) 1); { NIM_BOOL T13_; T13_ = (NIM_BOOL)0; T13_ = NIM_UNLIKELY(((*a).udata[(((NI) 2))- 0] == ((NU32) 0))); if (!T13_) goto LA14_; (*a).udata[(((NI) 3))- 0] += ((NI) 1); { if (!!(!(((*((NI32*) ((&(*a).udata[(((NI) 3))- 0])))) == ((NI32) (-2147483647 -1)))))) goto LA18_; failedAssertImpl__systemZassertions_56(((NimStringDesc*) &TM__nQVdjfHleOuOqvMTepKJUw_2)); } LA18_: ; } LA14_: ; } LA9_: ; } LA4_: ; } N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, minus___int495056_471)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a) { tyObject_Int128__9a9axPfb75jdWY25AamJewkA result; nimZeroMem((void*)(&result), sizeof(tyObject_Int128__9a9axPfb75jdWY25AamJewkA)); result = bitnot__int495056_319(a); inc__int495056_251((&result), ((NU32) 1)); return result; } N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, minus___int495056_474)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a, tyObject_Int128__9a9axPfb75jdWY25AamJewkA b) { tyObject_Int128__9a9axPfb75jdWY25AamJewkA result; tyObject_Int128__9a9axPfb75jdWY25AamJewkA T1_; nimZeroMem((void*)(&result), sizeof(tyObject_Int128__9a9axPfb75jdWY25AamJewkA)); T1_ = minus___int495056_471(b); result = plus___int495056_448(a, T1_); return result; } N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, minus___int495056_780)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a, NI64 b) { tyObject_Int128__9a9axPfb75jdWY25AamJewkA result; tyObject_Int128__9a9axPfb75jdWY25AamJewkA T1_; nimZeroMem((void*)(&result), sizeof(tyObject_Int128__9a9axPfb75jdWY25AamJewkA)); T1_ = toInt128__int495056_725(b); result = minus___int495056_474(a, T1_); return result; } N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, plus___int495056_794)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a, NI64 b) { tyObject_Int128__9a9axPfb75jdWY25AamJewkA result; tyObject_Int128__9a9axPfb75jdWY25AamJewkA T1_; nimZeroMem((void*)(&result), sizeof(tyObject_Int128__9a9axPfb75jdWY25AamJewkA)); T1_ = toInt128__int495056_725(b); result = plus___int495056_448(a, T1_); return result; } N_LIB_PRIVATE N_NIMCALL(NU64, bitconcat__int495056_64)(NU32 a, NU32 b) { NU64 result; result = (NU64)0; result = (NU64)((NU64)((NU64)(((NU64) (a))) << (NU64)(((NI) 32))) | ((NU64) (b))); return result; } N_LIB_PRIVATE N_NIMCALL(NI64, toInt64__int495056_88)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA arg) { NI64 result; NU64 T6_; result = (NI64)0; { if (!((*((NI32*) ((&arg.udata[(((NI) 3))- 0])))) < ((NI32) 0))) goto LA3_; } goto LA1_; LA3_: ; { } LA1_: ; T6_ = (NU64)0; T6_ = bitconcat__int495056_64(arg.udata[(((NI) 1))- 0], arg.udata[(((NI) 0))- 0]); result = ((NI64) (T6_)); return result; } N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, lt___int495056_721)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a, NI64 b) { NIM_BOOL result; tyObject_Int128__9a9axPfb75jdWY25AamJewkA T1_; NI T2_; result = (NIM_BOOL)0; T1_ = toInt128__int495056_725(b); T2_ = (NI)0; T2_ = cmp__int495056_279(a, T1_); result = (T2_ < ((NI) 0)); return result; } N_LIB_PRIVATE N_NIMCALL(NI64, toInt64Checked__int495056_103)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA arg, NI64 onError) { NI64 result; NU64 T18_; { result = (NI64)0; { if (!((*((NI32*) ((&arg.udata[(((NI) 3))- 0])))) < ((NI32) 0))) goto LA3_; { NIM_BOOL T7_; T7_ = (NIM_BOOL)0; T7_ = !(((*((NI32*) ((&arg.udata[(((NI) 3))- 0])))) == ((NI32) -1))); if (T7_) goto LA8_; T7_ = !(((*((NI32*) ((&arg.udata[(((NI) 2))- 0])))) == ((NI32) -1))); LA8_: ; if (!T7_) goto LA9_; result = onError; goto BeforeRet_; } LA9_: ; } goto LA1_; LA3_: ; { { NIM_BOOL T14_; T14_ = (NIM_BOOL)0; T14_ = !(((*((NI32*) ((&arg.udata[(((NI) 3))- 0])))) == ((NI32) 0))); if (T14_) goto LA15_; T14_ = !(((*((NI32*) ((&arg.udata[(((NI) 2))- 0])))) == ((NI32) 0))); LA15_: ; if (!T14_) goto LA16_; result = onError; goto BeforeRet_; } LA16_: ; } LA1_: ; T18_ = (NU64)0; T18_ = bitconcat__int495056_64(arg.udata[(((NI) 1))- 0], arg.udata[(((NI) 0))- 0]); result = ((NI64) (T18_)); goto BeforeRet_; }BeforeRet_: ; return result; } N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, star___int495056_487)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a, NU32 b) { tyObject_Int128__9a9axPfb75jdWY25AamJewkA result; NU64 tmp0; NU64 tmp1; NU64 tmp2; NU64 tmp3; nimZeroMem((void*)(&result), sizeof(tyObject_Int128__9a9axPfb75jdWY25AamJewkA)); tmp0 = (NU64)((NU64)(((NU64) (a.udata[(((NI) 0))- 0]))) * (NU64)(((NU64) (b)))); tmp1 = (NU64)((NU64)(((NU64) (a.udata[(((NI) 1))- 0]))) * (NU64)(((NU64) (b)))); tmp2 = (NU64)((NU64)(((NU64) (a.udata[(((NI) 2))- 0]))) * (NU64)(((NU64) (b)))); tmp3 = (NU64)((NU64)(((NU64) (a.udata[(((NI) 3))- 0]))) * (NU64)(((NU64) (b)))); { NIM_BOOL T3_; T3_ = (NIM_BOOL)0; T3_ = NIM_UNLIKELY(((NU64)(2147483647ULL) < (NU64)(tmp3))); if (!T3_) goto LA4_; } LA4_: ; result.udata[(((NI) 0))- 0] = ((NU32) (tmp0)); result.udata[(((NI) 1))- 0] = (NU32)((NU32)(((NU32) (tmp1))) + (NU32)(((NU32) ((NU64)((NU64)(tmp0) >> (NU64)(((NI) 32))))))); result.udata[(((NI) 2))- 0] = (NU32)((NU32)(((NU32) (tmp2))) + (NU32)(((NU32) ((NU64)((NU64)(tmp1) >> (NU64)(((NI) 32))))))); result.udata[(((NI) 3))- 0] = (NU32)((NU32)(((NU32) (tmp3))) + (NU32)(((NU32) ((NU64)((NU64)(tmp2) >> (NU64)(((NI) 32))))))); return result; } N_LIB_PRIVATE N_NIMCALL(NI, abs__int495056_484)(NI32 a) { NI result; NI32 T1_; result = (NI)0; T1_ = (NI32)0; { if (!(a < ((NI32) 0))) goto LA4_; T1_ = ((NI32)-(a)); } goto LA2_; LA4_: ; { T1_ = a; } LA2_: ; result = ((NI) (T1_)); return result; } N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, star___int495056_514)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a, NI32 b) { tyObject_Int128__9a9axPfb75jdWY25AamJewkA result; NI T1_; nimZeroMem((void*)(&result), sizeof(tyObject_Int128__9a9axPfb75jdWY25AamJewkA)); T1_ = (NI)0; T1_ = abs__int495056_484(b); result = star___int495056_487(a, ((NU32) (T1_))); { if (!(b < ((NI32) 0))) goto LA4_; result = minus___int495056_471(result); } LA4_: ; return result; } N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, lt___int495056_305)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a, tyObject_Int128__9a9axPfb75jdWY25AamJewkA b) { NIM_BOOL result; NI T1_; result = (NIM_BOOL)0; T1_ = (NI)0; T1_ = cmp__int495056_279(a, b); result = (T1_ < ((NI) 0)); return result; } N_LIB_PRIVATE N_NIMCALL(NI64, castToInt64__int495056_221)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA arg) { NI64 result; NU64 T1_; result = (NI64)0; T1_ = (NU64)0; T1_ = bitconcat__int495056_64(arg.udata[(((NI) 1))- 0], arg.udata[(((NI) 0))- 0]); result = ((NI64) (T1_)); return result; } static N_INLINE(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, maskUInt8__int495056_847)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA arg) { tyObject_Int128__9a9axPfb75jdWY25AamJewkA result; result.udata[(((NI) 0))- 0] = (NU32)(arg.udata[(((NI) 0))- 0] & ((NU32) 255)); result.udata[(((NI) 1))- 0] = ((NU32) 0); result.udata[(((NI) 2))- 0] = ((NU32) 0); result.udata[(((NI) 3))- 0] = ((NU32) 0); return result; } static N_INLINE(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, maskUInt16__int495056_844)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA arg) { tyObject_Int128__9a9axPfb75jdWY25AamJewkA result; result.udata[(((NI) 0))- 0] = (NU32)(arg.udata[(((NI) 0))- 0] & ((NU32) 65535)); result.udata[(((NI) 1))- 0] = ((NU32) 0); result.udata[(((NI) 2))- 0] = ((NU32) 0); result.udata[(((NI) 3))- 0] = ((NU32) 0); return result; } static N_INLINE(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, maskUInt32__int495056_841)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA arg) { tyObject_Int128__9a9axPfb75jdWY25AamJewkA result; result.udata[(((NI) 0))- 0] = arg.udata[(((NI) 0))- 0]; result.udata[(((NI) 1))- 0] = ((NU32) 0); result.udata[(((NI) 2))- 0] = ((NU32) 0); result.udata[(((NI) 3))- 0] = ((NU32) 0); return result; } static N_INLINE(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, maskUInt64__int495056_838)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA arg) { tyObject_Int128__9a9axPfb75jdWY25AamJewkA result; result.udata[(((NI) 0))- 0] = arg.udata[(((NI) 0))- 0]; result.udata[(((NI) 1))- 0] = arg.udata[(((NI) 1))- 0]; result.udata[(((NI) 2))- 0] = ((NU32) 0); result.udata[(((NI) 3))- 0] = ((NU32) 0); return result; } N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, maskBytes__int495056_850)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA arg, NI numbytes) { tyObject_Int128__9a9axPfb75jdWY25AamJewkA result; { switch (numbytes) { case ((NI) 1): { result = maskUInt8__int495056_847(arg); goto BeforeRet_; } break; case ((NI) 2): { result = maskUInt16__int495056_844(arg); goto BeforeRet_; } break; case ((NI) 4): { result = maskUInt32__int495056_841(arg); goto BeforeRet_; } break; case ((NI) 8): { result = maskUInt64__int495056_838(arg); goto BeforeRet_; } break; default: { } break; } }BeforeRet_: ; return result; } N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, abs__int495056_481)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a) { tyObject_Int128__9a9axPfb75jdWY25AamJewkA result; nimZeroMem((void*)(&result), sizeof(tyObject_Int128__9a9axPfb75jdWY25AamJewkA)); { if (!((*((NI32*) ((&a.udata[(((NI) 3))- 0])))) < ((NI32) 0))) goto LA3_; result = minus___int495056_471(a); } goto LA1_; LA3_: ; { result = a; } LA1_: ; return result; } N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, makeInt128__int495056_522)(NU64 high, NU64 low) { tyObject_Int128__9a9axPfb75jdWY25AamJewkA result; nimZeroMem((void*)(&result), sizeof(tyObject_Int128__9a9axPfb75jdWY25AamJewkA)); result.udata[(((NI) 0))- 0] = ((NU32) (low)); result.udata[(((NI) 1))- 0] = ((NU32) ((NU64)((NU64)(low) >> (NU64)(((NI) 32))))); result.udata[(((NI) 2))- 0] = ((NU32) (high)); result.udata[(((NI) 3))- 0] = ((NU32) ((NU64)((NU64)(high) >> (NU64)(((NI) 32))))); return result; } N_LIB_PRIVATE N_NIMCALL(NU64, high64__int495056_534)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a) { NU64 result; result = (NU64)0; result = bitconcat__int495056_64(a.udata[(((NI) 3))- 0], a.udata[(((NI) 2))- 0]); return result; } N_LIB_PRIVATE N_NIMCALL(NU64, low64__int495056_537)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a) { NU64 result; result = (NU64)0; result = bitconcat__int495056_64(a.udata[(((NI) 1))- 0], a.udata[(((NI) 0))- 0]); return result; } N_LIB_PRIVATE N_NIMCALL(void, pluseq___int495056_468)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA* a, tyObject_Int128__9a9axPfb75jdWY25AamJewkA b) { (*a) = plus___int495056_448((*a), b); } N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, shl__int495056_379)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a, NI b) { tyObject_Int128__9a9axPfb75jdWY25AamJewkA result; NI b_2; nimZeroMem((void*)(&result), sizeof(tyObject_Int128__9a9axPfb75jdWY25AamJewkA)); b_2 = (NI)(b & ((NI) 127)); { NU64 T5_; NU64 T6_; NU64 T7_; if (!(b_2 < ((NI) 32))) goto LA3_; result.udata[(((NI) 0))- 0] = (NU32)((NU32)(a.udata[(((NI) 0))- 0]) << (NU32)(b_2)); T5_ = (NU64)0; T5_ = bitconcat__int495056_64(a.udata[(((NI) 1))- 0], a.udata[(((NI) 0))- 0]); result.udata[(((NI) 1))- 0] = ((NU32) ((NU64)((NU64)((NU64)((NU64)(T5_) << (NU64)(b_2))) >> (NU64)(((NI) 32))))); T6_ = (NU64)0; T6_ = bitconcat__int495056_64(a.udata[(((NI) 2))- 0], a.udata[(((NI) 1))- 0]); result.udata[(((NI) 2))- 0] = ((NU32) ((NU64)((NU64)((NU64)((NU64)(T6_) << (NU64)(b_2))) >> (NU64)(((NI) 32))))); T7_ = (NU64)0; T7_ = bitconcat__int495056_64(a.udata[(((NI) 3))- 0], a.udata[(((NI) 2))- 0]); result.udata[(((NI) 3))- 0] = ((NU32) ((NU64)((NU64)((NU64)((NU64)(T7_) << (NU64)(b_2))) >> (NU64)(((NI) 32))))); } goto LA1_; LA3_: ; { NU64 T11_; NU64 T12_; if (!(b_2 < ((NI) 64))) goto LA9_; result.udata[(((NI) 0))- 0] = ((NU32) 0); result.udata[(((NI) 1))- 0] = (NU32)((NU32)(a.udata[(((NI) 0))- 0]) << (NU32)((NI)(b_2 & ((NI) 31)))); T11_ = (NU64)0; T11_ = bitconcat__int495056_64(a.udata[(((NI) 1))- 0], a.udata[(((NI) 0))- 0]); result.udata[(((NI) 2))- 0] = ((NU32) ((NU64)((NU64)((NU64)((NU64)(T11_) << (NU64)((NI)(b_2 & ((NI) 31))))) >> (NU64)(((NI) 32))))); T12_ = (NU64)0; T12_ = bitconcat__int495056_64(a.udata[(((NI) 2))- 0], a.udata[(((NI) 1))- 0]); result.udata[(((NI) 3))- 0] = ((NU32) ((NU64)((NU64)((NU64)((NU64)(T12_) << (NU64)((NI)(b_2 & ((NI) 31))))) >> (NU64)(((NI) 32))))); } goto LA1_; LA9_: ; { NU64 T16_; if (!(b_2 < ((NI) 96))) goto LA14_; result.udata[(((NI) 0))- 0] = ((NU32) 0); result.udata[(((NI) 1))- 0] = ((NU32) 0); result.udata[(((NI) 2))- 0] = (NU32)((NU32)(a.udata[(((NI) 0))- 0]) << (NU32)((NI)(b_2 & ((NI) 31)))); T16_ = (NU64)0; T16_ = bitconcat__int495056_64(a.udata[(((NI) 1))- 0], a.udata[(((NI) 0))- 0]); result.udata[(((NI) 3))- 0] = ((NU32) ((NU64)((NU64)((NU64)((NU64)(T16_) << (NU64)((NI)(b_2 & ((NI) 31))))) >> (NU64)(((NI) 32))))); } goto LA1_; LA14_: ; { result.udata[(((NI) 0))- 0] = ((NU32) 0); result.udata[(((NI) 1))- 0] = ((NU32) 0); result.udata[(((NI) 2))- 0] = ((NU32) 0); result.udata[(((NI) 3))- 0] = (NU32)((NU32)(a.udata[(((NI) 0))- 0]) << (NU32)((NI)(b_2 & ((NI) 31)))); } LA1_: ; return result; } N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, star___int495056_540)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA lhs, tyObject_Int128__9a9axPfb75jdWY25AamJewkA rhs) { tyObject_Int128__9a9axPfb75jdWY25AamJewkA result; NU64 a; NU64 b; NU64 c; NU64 d; NU64 e; NU64 f; NU64 g; NU64 h; NU64 a32; NU64 a00; NU64 b32; NU64 b00; NU64 T1_; NU64 T2_; NU64 T3_; NU64 T4_; tyObject_Int128__9a9axPfb75jdWY25AamJewkA T5_; tyObject_Int128__9a9axPfb75jdWY25AamJewkA T6_; tyObject_Int128__9a9axPfb75jdWY25AamJewkA T7_; tyObject_Int128__9a9axPfb75jdWY25AamJewkA T8_; nimZeroMem((void*)(&result), sizeof(tyObject_Int128__9a9axPfb75jdWY25AamJewkA)); a = ((NU64) (lhs.udata[(((NI) 0))- 0])); b = ((NU64) (lhs.udata[(((NI) 1))- 0])); c = ((NU64) (lhs.udata[(((NI) 2))- 0])); d = ((NU64) (lhs.udata[(((NI) 3))- 0])); e = ((NU64) (rhs.udata[(((NI) 0))- 0])); f = ((NU64) (rhs.udata[(((NI) 1))- 0])); g = ((NU64) (rhs.udata[(((NI) 2))- 0])); h = ((NU64) (rhs.udata[(((NI) 3))- 0])); a32 = ((NU64) (lhs.udata[(((NI) 1))- 0])); a00 = ((NU64) (lhs.udata[(((NI) 0))- 0])); b32 = ((NU64) (rhs.udata[(((NI) 1))- 0])); b00 = ((NU64) (rhs.udata[(((NI) 0))- 0])); T1_ = (NU64)0; T1_ = high64__int495056_534(lhs); T2_ = (NU64)0; T2_ = low64__int495056_537(rhs); T3_ = (NU64)0; T3_ = low64__int495056_537(lhs); T4_ = (NU64)0; T4_ = high64__int495056_534(rhs); result = makeInt128__int495056_522((NU64)((NU64)((NU64)((NU64)((NU64)((NU64)(T1_) * (NU64)(T2_))) + (NU64)((NU64)((NU64)(T3_) * (NU64)(T4_))))) + (NU64)((NU64)((NU64)(a32) * (NU64)(b32)))), (NU64)((NU64)(a00) * (NU64)(b00))); T5_ = toInt128__int495056_556((NU64)((NU64)(a32) * (NU64)(b00))); T6_ = shl__int495056_379(T5_, ((NI) 32)); pluseq___int495056_468((&result), T6_); T7_ = toInt128__int495056_556((NU64)((NU64)(a00) * (NU64)(b32))); T8_ = shl__int495056_379(T7_, ((NI) 32)); pluseq___int495056_468((&result), T8_); return result; } N_LIB_PRIVATE N_NIMCALL(NI8, toInt8__int495056_149)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA arg) { NI8 result; result = (NI8)0; { if (!((*((NI32*) ((&arg.udata[(((NI) 3))- 0])))) < ((NI32) 0))) goto LA3_; } goto LA1_; LA3_: ; { } LA1_: ; result = ((NI8) ((*((NI32*) ((&arg.udata[(((NI) 0))- 0])))))); return result; } N_LIB_PRIVATE N_NIMCALL(NI16, toInt16__int495056_128)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA arg) { NI16 result; result = (NI16)0; { if (!((*((NI32*) ((&arg.udata[(((NI) 3))- 0])))) < ((NI32) 0))) goto LA3_; } goto LA1_; LA3_: ; { } LA1_: ; result = ((NI16) ((*((NI32*) ((&arg.udata[(((NI) 0))- 0])))))); return result; } N_LIB_PRIVATE N_NIMCALL(NI32, toInt32__int495056_107)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA arg) { NI32 result; result = (NI32)0; { if (!((*((NI32*) ((&arg.udata[(((NI) 3))- 0])))) < ((NI32) 0))) goto LA3_; } goto LA1_; LA3_: ; { } LA1_: ; result = (*((NI32*) ((&arg.udata[(((NI) 0))- 0])))); return result; } N_LIB_PRIVATE N_NIMCALL(NU8, toUInt8__int495056_206)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA arg) { NU8 result; result = (NU8)0; result = ((NU8) (arg.udata[(((NI) 0))- 0])); return result; } N_LIB_PRIVATE N_NIMCALL(NU16, toUInt16__int495056_194)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA arg) { NU16 result; result = (NU16)0; result = ((NU16) (arg.udata[(((NI) 0))- 0])); return result; } N_LIB_PRIVATE N_NIMCALL(NU32, toUInt32__int495056_182)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA arg) { NU32 result; result = (NU32)0; result = arg.udata[(((NI) 0))- 0]; return result; } N_LIB_PRIVATE N_NIMCALL(NU64, toUInt64__int495056_173)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA arg) { NU64 result; result = (NU64)0; result = bitconcat__int495056_64(arg.udata[(((NI) 1))- 0], arg.udata[(((NI) 0))- 0]); return result; } static N_INLINE(NI, fastLog2__int495056_578)(NU32 x) { NI result; int T1_; result = (NI)0; T1_ = (int)0; T1_ = __builtin_clz(x); result = (NI)(((NI) 31) - ((NI) (T1_))); return result; } N_LIB_PRIVATE N_NIMCALL(NI, fastLog2__int495056_575)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a) { NI result; { result = (NI)0; { NI T5_; if (!!((a.udata[(((NI) 3))- 0] == ((NU32) 0)))) goto LA3_; T5_ = (NI)0; T5_ = fastLog2__int495056_578(a.udata[(((NI) 3))- 0]); result = (NI)(((NI) 96) + T5_); goto BeforeRet_; } LA3_: ; { NI T10_; if (!!((a.udata[(((NI) 2))- 0] == ((NU32) 0)))) goto LA8_; T10_ = (NI)0; T10_ = fastLog2__int495056_578(a.udata[(((NI) 2))- 0]); result = (NI)(((NI) 64) + T10_); goto BeforeRet_; } LA8_: ; { NI T15_; if (!!((a.udata[(((NI) 1))- 0] == ((NU32) 0)))) goto LA13_; T15_ = (NI)0; T15_ = fastLog2__int495056_578(a.udata[(((NI) 1))- 0]); result = (NI)(((NI) 32) + T15_); goto BeforeRet_; } LA13_: ; { if (!!((a.udata[(((NI) 0))- 0] == ((NU32) 0)))) goto LA18_; result = fastLog2__int495056_578(a.udata[(((NI) 0))- 0]); goto BeforeRet_; } LA18_: ; }BeforeRet_: ; return result; } N_LIB_PRIVATE N_NIMCALL(void, minuseq___int495056_478)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA* a, tyObject_Int128__9a9axPfb75jdWY25AamJewkA b) { (*a) = minus___int495056_474((*a), b); } N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, bitor__int495056_326)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a, tyObject_Int128__9a9axPfb75jdWY25AamJewkA b) { tyObject_Int128__9a9axPfb75jdWY25AamJewkA result; nimZeroMem((void*)(&result), sizeof(tyObject_Int128__9a9axPfb75jdWY25AamJewkA)); result.udata[(((NI) 0))- 0] = (NU32)(a.udata[(((NI) 0))- 0] | b.udata[(((NI) 0))- 0]); result.udata[(((NI) 1))- 0] = (NU32)(a.udata[(((NI) 1))- 0] | b.udata[(((NI) 1))- 0]); result.udata[(((NI) 2))- 0] = (NU32)(a.udata[(((NI) 2))- 0] | b.udata[(((NI) 2))- 0]); result.udata[(((NI) 3))- 0] = (NU32)(a.udata[(((NI) 3))- 0] | b.udata[(((NI) 3))- 0]); return result; } N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, shr__int495056_334)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a, NI b) { tyObject_Int128__9a9axPfb75jdWY25AamJewkA result; NI b_2; nimZeroMem((void*)(&result), sizeof(tyObject_Int128__9a9axPfb75jdWY25AamJewkA)); b_2 = (NI)(b & ((NI) 127)); { NU64 T5_; NU64 T6_; NU64 T7_; if (!(b_2 < ((NI) 32))) goto LA3_; (*((NI32*) ((&result.udata[(((NI) 3))- 0])))) = (NI32)((NI32)((*((NI32*) ((&a.udata[(((NI) 3))- 0]))))) >> (NU32)(b_2)); T5_ = (NU64)0; T5_ = bitconcat__int495056_64(a.udata[(((NI) 3))- 0], a.udata[(((NI) 2))- 0]); result.udata[(((NI) 2))- 0] = ((NU32) ((NU64)((NU64)(T5_) >> (NU64)(b_2)))); T6_ = (NU64)0; T6_ = bitconcat__int495056_64(a.udata[(((NI) 2))- 0], a.udata[(((NI) 1))- 0]); result.udata[(((NI) 1))- 0] = ((NU32) ((NU64)((NU64)(T6_) >> (NU64)(b_2)))); T7_ = (NU64)0; T7_ = bitconcat__int495056_64(a.udata[(((NI) 1))- 0], a.udata[(((NI) 0))- 0]); result.udata[(((NI) 0))- 0] = ((NU32) ((NU64)((NU64)(T7_) >> (NU64)(b_2)))); } goto LA1_; LA3_: ; { NU64 T15_; NU64 T16_; if (!(b_2 < ((NI) 64))) goto LA9_; { if (!((*((NI32*) ((&a.udata[(((NI) 3))- 0])))) < ((NI32) 0))) goto LA13_; (*((NI32*) ((&result.udata[(((NI) 3))- 0])))) = ((NI32) -1); } LA13_: ; (*((NI32*) ((&result.udata[(((NI) 2))- 0])))) = (NI32)((NI32)((*((NI32*) ((&a.udata[(((NI) 3))- 0]))))) >> (NU32)((NI)(b_2 & ((NI) 31)))); T15_ = (NU64)0; T15_ = bitconcat__int495056_64(a.udata[(((NI) 3))- 0], a.udata[(((NI) 2))- 0]); result.udata[(((NI) 1))- 0] = ((NU32) ((NU64)((NU64)(T15_) >> (NU64)((NI)(b_2 & ((NI) 31)))))); T16_ = (NU64)0; T16_ = bitconcat__int495056_64(a.udata[(((NI) 2))- 0], a.udata[(((NI) 1))- 0]); result.udata[(((NI) 0))- 0] = ((NU32) ((NU64)((NU64)(T16_) >> (NU64)((NI)(b_2 & ((NI) 31)))))); } goto LA1_; LA9_: ; { NU64 T24_; if (!(b_2 < ((NI) 96))) goto LA18_; { if (!((*((NI32*) ((&a.udata[(((NI) 3))- 0])))) < ((NI32) 0))) goto LA22_; (*((NI32*) ((&result.udata[(((NI) 3))- 0])))) = ((NI32) -1); (*((NI32*) ((&result.udata[(((NI) 2))- 0])))) = ((NI32) -1); } LA22_: ; (*((NI32*) ((&result.udata[(((NI) 1))- 0])))) = (NI32)((NI32)((*((NI32*) ((&a.udata[(((NI) 3))- 0]))))) >> (NU32)((NI)(b_2 & ((NI) 31)))); T24_ = (NU64)0; T24_ = bitconcat__int495056_64(a.udata[(((NI) 3))- 0], a.udata[(((NI) 2))- 0]); result.udata[(((NI) 0))- 0] = ((NU32) ((NU64)((NU64)(T24_) >> (NU64)((NI)(b_2 & ((NI) 31)))))); } goto LA1_; LA18_: ; { { if (!((*((NI32*) ((&a.udata[(((NI) 3))- 0])))) < ((NI32) 0))) goto LA28_; (*((NI32*) ((&result.udata[(((NI) 3))- 0])))) = ((NI32) -1); (*((NI32*) ((&result.udata[(((NI) 2))- 0])))) = ((NI32) -1); (*((NI32*) ((&result.udata[(((NI) 1))- 0])))) = ((NI32) -1); } LA28_: ; (*((NI32*) ((&result.udata[(((NI) 0))- 0])))) = (NI32)((NI32)((*((NI32*) ((&a.udata[(((NI) 3))- 0]))))) >> (NU32)((NI)(b_2 & ((NI) 31)))); } LA1_: ; return result; } N_LIB_PRIVATE N_NIMCALL(void, divMod__int495056_601)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA dividend, tyObject_Int128__9a9axPfb75jdWY25AamJewkA divisor, tyTuple__0titlMXgFgzRLN6v28f9azA* Result) { NIM_BOOL isNegativeA; NIM_BOOL isNegativeB; tyObject_Int128__9a9axPfb75jdWY25AamJewkA dividend_2; tyObject_Int128__9a9axPfb75jdWY25AamJewkA divisor_2; tyObject_Int128__9a9axPfb75jdWY25AamJewkA denominator; tyObject_Int128__9a9axPfb75jdWY25AamJewkA quotient; NI shift; NI T21_; NI T22_; { nimZeroMem((void*)Result, sizeof(tyTuple__0titlMXgFgzRLN6v28f9azA)); isNegativeA = ((*((NI32*) ((÷nd.udata[(((NI) 3))- 0])))) < ((NI32) 0)); isNegativeB = ((*((NI32*) ((&divisor.udata[(((NI) 3))- 0])))) < ((NI32) 0)); dividend_2 = abs__int495056_481(dividend); divisor_2 = abs__int495056_481(divisor); { NIM_BOOL T3_; T3_ = (NIM_BOOL)0; T3_ = lt___int495056_305(dividend_2, divisor_2); if (!T3_) goto LA4_; (*Result).Field0 = Zero__int495056_7; { if (!isNegativeA) goto LA8_; (*Result).Field1 = minus___int495056_471(dividend_2); } goto LA6_; LA8_: ; { (*Result).Field1 = dividend_2; } LA6_: ; goto BeforeRet_; } LA4_: ; { NIM_BOOL T13_; T13_ = (NIM_BOOL)0; T13_ = eqeq___int495056_313(divisor_2, dividend_2); if (!T13_) goto LA14_; { if (!(isNegativeA != isNegativeB)) goto LA18_; (*Result).Field0 = NegOne__int495056_28; } goto LA16_; LA18_: ; { (*Result).Field0 = One__int495056_8; } LA16_: ; (*Result).Field1 = Zero__int495056_7; goto BeforeRet_; } LA14_: ; denominator = divisor_2; quotient = Zero__int495056_7; T21_ = (NI)0; T21_ = fastLog2__int495056_575(dividend_2); T22_ = (NI)0; T22_ = fastLog2__int495056_575(denominator); shift = (NI)(T21_ - T22_); denominator = shl__int495056_379(denominator, shift); { NI i; NI res; i = (NI)0; res = ((NI) 0); { while (1) { if (!(res <= shift)) goto LA25; i = res; quotient = shl__int495056_379(quotient, ((NI) 1)); { NIM_BOOL T28_; T28_ = (NIM_BOOL)0; T28_ = lteq___int495056_309(denominator, dividend_2); if (!T28_) goto LA29_; minuseq___int495056_478((÷nd_2), denominator); quotient = bitor__int495056_326(quotient, One__int495056_8); } LA29_: ; denominator = shr__int495056_334(denominator, ((NI) 1)); res += ((NI) 1); } LA25: ; } } { if (!(isNegativeA != isNegativeB)) goto LA33_; (*Result).Field0 = minus___int495056_471(quotient); } goto LA31_; LA33_: ; { (*Result).Field0 = quotient; } LA31_: ; { if (!isNegativeA) goto LA38_; (*Result).Field1 = minus___int495056_471(dividend_2); } goto LA36_; LA38_: ; { (*Result).Field1 = dividend_2; } LA36_: ; }BeforeRet_: ; } N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, div__int495056_622)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a, tyObject_Int128__9a9axPfb75jdWY25AamJewkA b) { tyObject_Int128__9a9axPfb75jdWY25AamJewkA result; tyTuple__0titlMXgFgzRLN6v28f9azA T1_; tyObject_Int128__9a9axPfb75jdWY25AamJewkA a_2; tyObject_Int128__9a9axPfb75jdWY25AamJewkA b_2; { nimZeroMem((void*)(&result), sizeof(tyObject_Int128__9a9axPfb75jdWY25AamJewkA)); nimZeroMem((void*)(&T1_), sizeof(tyTuple__0titlMXgFgzRLN6v28f9azA)); divMod__int495056_601(a, b, (&T1_)); nimZeroMem((void*)(&a_2), sizeof(tyObject_Int128__9a9axPfb75jdWY25AamJewkA)); a_2 = T1_.Field0; nimZeroMem((void*)(&b_2), sizeof(tyObject_Int128__9a9axPfb75jdWY25AamJewkA)); b_2 = T1_.Field1; result = a_2; goto BeforeRet_; }BeforeRet_: ; return result; } N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, mod__int495056_637)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a, tyObject_Int128__9a9axPfb75jdWY25AamJewkA b) { tyObject_Int128__9a9axPfb75jdWY25AamJewkA result; tyTuple__0titlMXgFgzRLN6v28f9azA T1_; tyObject_Int128__9a9axPfb75jdWY25AamJewkA a_2; tyObject_Int128__9a9axPfb75jdWY25AamJewkA b_2; { nimZeroMem((void*)(&result), sizeof(tyObject_Int128__9a9axPfb75jdWY25AamJewkA)); nimZeroMem((void*)(&T1_), sizeof(tyTuple__0titlMXgFgzRLN6v28f9azA)); divMod__int495056_601(a, b, (&T1_)); nimZeroMem((void*)(&a_2), sizeof(tyObject_Int128__9a9axPfb75jdWY25AamJewkA)); a_2 = T1_.Field0; nimZeroMem((void*)(&b_2), sizeof(tyObject_Int128__9a9axPfb75jdWY25AamJewkA)); b_2 = T1_.Field1; result = b_2; goto BeforeRet_; }BeforeRet_: ; return result; } N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, bitand__int495056_322)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a, tyObject_Int128__9a9axPfb75jdWY25AamJewkA b) { tyObject_Int128__9a9axPfb75jdWY25AamJewkA result; nimZeroMem((void*)(&result), sizeof(tyObject_Int128__9a9axPfb75jdWY25AamJewkA)); result.udata[(((NI) 0))- 0] = (NU32)(a.udata[(((NI) 0))- 0] & b.udata[(((NI) 0))- 0]); result.udata[(((NI) 1))- 0] = (NU32)(a.udata[(((NI) 1))- 0] & b.udata[(((NI) 1))- 0]); result.udata[(((NI) 2))- 0] = (NU32)(a.udata[(((NI) 2))- 0] & b.udata[(((NI) 2))- 0]); result.udata[(((NI) 3))- 0] = (NU32)(a.udata[(((NI) 3))- 0] & b.udata[(((NI) 3))- 0]); return result; } N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, bitxor__int495056_330)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a, tyObject_Int128__9a9axPfb75jdWY25AamJewkA b) { tyObject_Int128__9a9axPfb75jdWY25AamJewkA result; nimZeroMem((void*)(&result), sizeof(tyObject_Int128__9a9axPfb75jdWY25AamJewkA)); result.udata[(((NI) 0))- 0] = (NU32)(a.udata[(((NI) 0))- 0] ^ b.udata[(((NI) 0))- 0]); result.udata[(((NI) 1))- 0] = (NU32)(a.udata[(((NI) 1))- 0] ^ b.udata[(((NI) 1))- 0]); result.udata[(((NI) 2))- 0] = (NU32)(a.udata[(((NI) 2))- 0] ^ b.udata[(((NI) 2))- 0]); result.udata[(((NI) 3))- 0] = (NU32)(a.udata[(((NI) 3))- 0] ^ b.udata[(((NI) 3))- 0]); return result; } static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size) { void* T1_; T1_ = (void*)0; T1_ = memcpy(dest, source, ((size_t) (size))); } static N_INLINE(void, copyMem__system_1727)(void* dest, void* source, NI size) { nimCopyMem(dest, source, size); } static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src) { { if (!!((src == ((NimStringDesc*) NIM_NIL)))) goto LA3_; copyMem__system_1727(((void*) ((&(*dest).data[(*dest).Sup.len]))), ((void*) ((*src).data)), ((NI) ((NI)((*src).Sup.len + ((NI) 1))))); (*dest).Sup.len += (*src).Sup.len; } LA3_: ; } N_LIB_PRIVATE N_NIMCALL(void, addInt128__int495056_643)(NimStringDesc** result, tyObject_Int128__9a9axPfb75jdWY25AamJewkA value) { NI initialSize; initialSize = ((*result) ? (*result)->Sup.len : 0); { NIM_BOOL T3_; T3_ = (NIM_BOOL)0; T3_ = eqeq___int495056_313(value, Zero__int495056_7); if (!T3_) goto LA4_; unsureAsgnRef((void**) (&(*result)), resizeString((*result), 1)); appendString((*result), ((NimStringDesc*) &TM__nQVdjfHleOuOqvMTepKJUw_3)); } goto LA1_; LA4_: ; { NIM_BOOL T7_; T7_ = (NIM_BOOL)0; T7_ = eqeq___int495056_313(value, Min__int495056_10); if (!T7_) goto LA8_; unsureAsgnRef((void**) (&(*result)), resizeString((*result), 40)); appendString((*result), ((NimStringDesc*) &TM__nQVdjfHleOuOqvMTepKJUw_4)); } goto LA1_; LA8_: ; { NIM_BOOL isNegative; tyObject_Int128__9a9axPfb75jdWY25AamJewkA value_2; NI i; NI j; isNegative = ((*((NI32*) ((&value.udata[(((NI) 3))- 0])))) < ((NI32) 0)); value_2 = abs__int495056_481(value); { while (1) { NIM_BOOL T13_; tyTuple__0titlMXgFgzRLN6v28f9azA T14_; tyObject_Int128__9a9axPfb75jdWY25AamJewkA quot; tyObject_Int128__9a9axPfb75jdWY25AamJewkA rem; NI64 T15_; T13_ = (NIM_BOOL)0; T13_ = lt___int495056_305(Zero__int495056_7, value_2); if (!T13_) goto LA12; nimZeroMem((void*)(&T14_), sizeof(tyTuple__0titlMXgFgzRLN6v28f9azA)); divMod__int495056_601(value_2, Ten__int495056_9, (&T14_)); nimZeroMem((void*)("), sizeof(tyObject_Int128__9a9axPfb75jdWY25AamJewkA)); quot = T14_.Field0; nimZeroMem((void*)(&rem), sizeof(tyObject_Int128__9a9axPfb75jdWY25AamJewkA)); rem = T14_.Field1; T15_ = (NI64)0; T15_ = toInt64__int495056_88(rem); unsureAsgnRef((void**) (&(*result)), addChar((*result), ((NimStringDesc*) &TM__nQVdjfHleOuOqvMTepKJUw_5)->data[T15_])); value_2 = quot; } LA12: ; } { if (!isNegative) goto LA18_; unsureAsgnRef((void**) (&(*result)), addChar((*result), 45)); } LA18_: ; i = initialSize; j = (((*result) ? (*result)->Sup.len : 0)-1); { while (1) { NIM_CHAR T22_; if (!(i < j)) goto LA21; T22_ = (NIM_CHAR)0; T22_ = (*result)->data[i]; (*result)->data[i] = (*result)->data[j]; (*result)->data[j] = T22_; i += ((NI) 1); j -= ((NI) 1); } LA21: ; } } LA1_: ; } N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___int495056_53)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a) { NimStringDesc* result; result = NIM_NIL; addInt128__int495056_643((&result), a); return result; } N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, eqeq___int495056_766)(NI64 a, tyObject_Int128__9a9axPfb75jdWY25AamJewkA b) { NIM_BOOL result; tyObject_Int128__9a9axPfb75jdWY25AamJewkA T1_; result = (NIM_BOOL)0; T1_ = toInt128__int495056_725(a); result = eqeq___int495056_313(T1_, b); return result; } N_LIB_PRIVATE N_NIMCALL(NF, toFloat64__int495056_801)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA arg) { NF result; NIM_BOOL isNegative; tyObject_Int128__9a9axPfb75jdWY25AamJewkA arg_2; NF a; NU64 T1_; NF b; NU64 T2_; result = (NF)0; isNegative = ((*((NI32*) ((&arg.udata[(((NI) 3))- 0])))) < ((NI32) 0)); arg_2 = abs__int495056_481(arg); T1_ = (NU64)0; T1_ = bitconcat__int495056_64(arg_2.udata[(((NI) 1))- 0], arg_2.udata[(((NI) 0))- 0]); a = ((NF) (T1_)); T2_ = (NU64)0; T2_ = bitconcat__int495056_64(arg_2.udata[(((NI) 3))- 0], arg_2.udata[(((NI) 2))- 0]); b = ((NF) (T2_)); result = ((NF)(a) + (NF)(((NF)(1.8446744073709552e+19) * (NF)(b)))); { if (!isNegative) goto LA5_; result = -(result); } LA5_: ; return result; } static N_INLINE(NF, abs__pureZmath_150)(NF x) { NF result; result = (NF)0; result = fabs(x); return result; } N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, toInt128__int495056_815)(NF arg) { tyObject_Int128__9a9axPfb75jdWY25AamJewkA result; NIM_BOOL isNegative; NF v0; NF T1_; NU64 w0; NF T2_; NF v1; NU64 w1; NF T3_; NF v2; NU64 w2; NF T4_; tyObject_Int128__9a9axPfb75jdWY25AamJewkA res; tyObject_Int128__9a9axPfb75jdWY25AamJewkA T5_; tyObject_Int128__9a9axPfb75jdWY25AamJewkA T6_; tyObject_Int128__9a9axPfb75jdWY25AamJewkA T7_; tyObject_Int128__9a9axPfb75jdWY25AamJewkA T8_; tyObject_Int128__9a9axPfb75jdWY25AamJewkA T9_; tyObject_Int128__9a9axPfb75jdWY25AamJewkA T10_; { nimZeroMem((void*)(&result), sizeof(tyObject_Int128__9a9axPfb75jdWY25AamJewkA)); isNegative = (arg < 0.0); T1_ = (NF)0; T1_ = abs__pureZmath_150(arg); v0 = ldexp(T1_, ((int) -100)); T2_ = (NF)0; T2_ = trunc(v0); w0 = ((NU64) (T2_)); v1 = ldexp(((NF)(v0) - (NF)(((NF) (w0)))), ((int) 50)); T3_ = (NF)0; T3_ = trunc(v1); w1 = ((NU64) (T3_)); v2 = ldexp(((NF)(v1) - (NF)(((NF) (w1)))), ((int) 50)); T4_ = (NF)0; T4_ = trunc(v2); w2 = ((NU64) (T4_)); T5_ = toInt128__int495056_556(w0); T6_ = shl__int495056_379(T5_, ((NI) 100)); T7_ = toInt128__int495056_556(w1); T8_ = shl__int495056_379(T7_, ((NI) 50)); T9_ = bitor__int495056_326(T6_, T8_); T10_ = toInt128__int495056_556(w2); res = bitor__int495056_326(T9_, T10_); { if (!isNegative) goto LA13_; result = minus___int495056_471(res); goto BeforeRet_; } goto LA11_; LA13_: ; { result = res; goto BeforeRet_; } LA11_: ; }BeforeRet_: ; return result; } N_LIB_PRIVATE N_NIMCALL(NI, toInt__int495056_170)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA arg) { NI result; NI32 T1_; result = (NI)0; T1_ = (NI32)0; T1_ = toInt32__int495056_107(arg); result = ((NI) (T1_)); return result; } N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, lt___int495056_738)(NI64 a, tyObject_Int128__9a9axPfb75jdWY25AamJewkA b) { NIM_BOOL result; tyObject_Int128__9a9axPfb75jdWY25AamJewkA T1_; NI T2_; result = (NIM_BOOL)0; T1_ = toInt128__int495056_725(a); T2_ = (NI)0; T2_ = cmp__int495056_279(T1_, b); result = (T2_ < ((NI) 0)); return result; }