/* Generated by Nimrod Compiler v0.9.5 */
/*   (c) 2014 Andreas Rumpf */
/* The generated code is subject to the original license. */
/* Compiled for: Linux, i386, gcc */
/* Command for C compiler:
   gcc -c  -w -O3 -fno-strict-aliasing  -I/build/nimrod/src/nimrod/lib -o compiler/nimcache/vm.o compiler/nimcache/vm.c */
#define NIM_INTBITS 32
#include "nimbase.h"

#include <string.h>

#include <stdio.h>

#include <stdlib.h>
typedef struct tctx249037 tctx249037;
typedef struct tnode188803 tnode188803;
typedef struct tsym188833 tsym188833;
typedef struct tlineinfo163527 tlineinfo163527;
typedef struct NimStringDesc NimStringDesc;
typedef struct TGenericSeq TGenericSeq;
typedef struct ttype188837 ttype188837;
typedef struct tident167019 tident167019;
typedef struct tnodeseq188797 tnodeseq188797;
typedef struct tcell41090 tcell41090;
typedef struct TNimType TNimType;
typedef struct TNimNode TNimNode;
typedef struct tcellset41102 tcellset41102;
typedef struct tgcheap43016 tgcheap43016;
typedef struct tcellseq41106 tcellseq41106;
typedef struct tpagedesc41098 tpagedesc41098;
typedef struct tmemregion23410 tmemregion23410;
typedef struct tsmallchunk22638 tsmallchunk22638;
typedef struct tllchunk23404 tllchunk23404;
typedef struct tbigchunk22640 tbigchunk22640;
typedef struct tintset22615 tintset22615;
typedef struct ttrunk22611 ttrunk22611;
typedef struct tavlnode23408 tavlnode23408;
typedef struct tgcstat43014 tgcstat43014;
typedef struct tpasscontext246003 tpasscontext246003;
typedef struct TNimObject TNimObject;
typedef struct TY249229 TY249229;
typedef struct TY164208 TY164208;
typedef struct ttypeseq188835 ttypeseq188835;
typedef struct pprocHEX3Aobjecttype249216 pprocHEX3Aobjecttype249216;
typedef struct tstackframe391208 tstackframe391208;
typedef struct TY391224 TY391224;
typedef struct tfullreg391204 tfullreg391204;
typedef struct TY298698 TY298698;
typedef struct tidobj167013 tidobj167013;
typedef struct tscope188827 tscope188827;
typedef struct TY188933 TY188933;
typedef struct tinstantiation188823 tinstantiation188823;
typedef struct tstrtable188807 tstrtable188807;
typedef struct tsymseq188805 tsymseq188805;
typedef struct tloc188817 tloc188817;
typedef struct trope145007 trope145007;
typedef struct tlib188821 tlib188821;
typedef struct TY393074 TY393074;
typedef struct TY79484 TY79484;
typedef struct TY249217 TY249217;
typedef struct tblock249023 tblock249023;
typedef struct TY249198 TY249198;
typedef struct TY249223 TY249223;
typedef struct tbasechunk22636 tbasechunk22636;
typedef struct tfreecell22628 tfreecell22628;
typedef struct TY188922 TY188922;
typedef struct tlistentry118017 tlistentry118017;
struct  tlineinfo163527  {
NI16 Line;
NI16 Col;
NI32 Fileindex;
};
struct  TGenericSeq  {
NI len;
NI reserved;
};
struct  NimStringDesc  {
  TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
struct  tnode188803  {
ttype188837* Typ;
tlineinfo163527 Info;
NU16 Flags;
NU8 Kind;
union {
struct {NI64 Intval;
} S1;
struct {NF Floatval;
} S2;
struct {NimStringDesc* Strval;
} S3;
struct {tsym188833* Sym;
} S4;
struct {tident167019* Ident;
} S5;
struct {tnodeseq188797* Sons;
} S6;
} kindU;
NimStringDesc* Comment;
};
struct  tcell41090  {
NI Refcount;
TNimType* Typ;
};
typedef N_NIMCALL_PTR(void, TY2289) (void* p, NI op);
struct  TNimType  {
NI size;
NU8 kind;
NU8 flags;
TNimType* base;
TNimNode* node;
void* finalizer;
TY2289 marker;
};
struct  tcellseq41106  {
NI Len;
NI Cap;
tcell41090** D;
};
struct  tcellset41102  {
NI Counter;
NI Max;
tpagedesc41098* Head;
tpagedesc41098** Data;
};
typedef tsmallchunk22638* TY23422[512];
typedef ttrunk22611* ttrunkbuckets22613[256];
struct  tintset22615  {
ttrunkbuckets22613 Data;
};
struct  tmemregion23410  {
NI Minlargeobj;
NI Maxlargeobj;
TY23422 Freesmallchunks;
tllchunk23404* Llmem;
NI Currmem;
NI Maxmem;
NI Freemem;
NI Lastsize;
tbigchunk22640* Freechunkslist;
tintset22615 Chunkstarts;
tavlnode23408* Root;
tavlnode23408* Deleted;
tavlnode23408* Last;
tavlnode23408* Freeavlnodes;
};
struct  tgcstat43014  {
NI Stackscans;
NI Cyclecollections;
NI Maxthreshold;
NI Maxstacksize;
NI Maxstackcells;
NI Cycletablesize;
NI64 Maxpause;
};
struct  tgcheap43016  {
void* Stackbottom;
NI Cyclethreshold;
tcellseq41106 Zct;
tcellseq41106 Decstack;
tcellset41102 Cycleroots;
tcellseq41106 Tempstack;
NI Recgclock;
tmemregion23410 Region;
tgcstat43014 Stat;
};
struct  TNimObject  {
TNimType* m_type;
};
struct  tpasscontext246003  {
  TNimObject Sup;
NIM_BOOL Fromcache;
};
struct  tctx249037  {
  tpasscontext246003 Sup;
TY249229* Code;
TY164208* Debug;
tnode188803* Globals;
tnode188803* Constants;
ttypeseq188835* Types;
tnode188803* Currentexceptiona;
tnode188803* Currentexceptionb;
NI Exceptioninstr;
pprocHEX3Aobjecttype249216* Prc;
tsym188833* Module;
tnode188803* Callsite;
NU8 Mode;
NU8 Features;
NIM_BOOL Traceactive;
NI Loopiterations;
};
struct  tfullreg391204  {
NU8 Kind;
union {
NI64 Intval;
NF Floatval;
tnode188803* Node;
tfullreg391204* Regaddr;
tnode188803** Nodeaddr;
} kindU;
};
struct  tstackframe391208  {
tsym188833* Prc;
TY391224* Slots;
tstackframe391208* Next;
NI Comesfrom;
TY298698* Safepoints;
};
struct  TNimNode  {
NU8 kind;
NI offset;
TNimType* typ;
NCSTRING name;
NI len;
TNimNode** sons;
};
struct  tidobj167013  {
  TNimObject Sup;
NI Id;
};
struct  tstrtable188807  {
NI Counter;
tsymseq188805* Data;
};
struct  tloc188817  {
NU8 K;
NU8 S;
NU8 Flags;
ttype188837* T;
trope145007* R;
trope145007* Heaproot;
NI A;
};
struct  tsym188833  {
  tidobj167013 Sup;
NU8 Kind;
union {
struct {ttypeseq188835* Typeinstcache;
tscope188827* Typscope;
} S1;
struct {TY188933* Procinstcache;
tscope188827* Scope;
} S2;
struct {TY188933* Usedgenerics;
tstrtable188807 Tab;
} S3;
} kindU;
NU16 Magic;
ttype188837* Typ;
tident167019* Name;
tlineinfo163527 Info;
tsym188833* Owner;
NU32 Flags;
tnode188803* Ast;
NU32 Options;
NI Position;
NI Offset;
tloc188817 Loc;
tlib188821* Annex;
tnode188803* Constraint;
};
struct  ttype188837  {
  tidobj167013 Sup;
NU8 Kind;
NU8 Callconv;
NU32 Flags;
ttypeseq188835* Sons;
tnode188803* N;
tsym188833* Destructor;
tsym188833* Owner;
tsym188833* Sym;
NI64 Size;
NI Align;
tloc188817 Loc;
};
struct  tident167019  {
  tidobj167013 Sup;
NimStringDesc* S;
tident167019* Next;
NI H;
};
typedef NimStringDesc* TY165002[1];
typedef NimStringDesc* TY137892[2];
struct TY393074 {
NI Field0;
tstackframe391208* Field1;
};
struct TY79484 {
NimStringDesc* Field0;
NI Field1;
};
struct  tblock249023  {
tsym188833* Label;
TY249198* Fixups;
};
struct TY249223 {
NIM_BOOL Field0;
NU8 Field1;
};
typedef TY249223 TY249220[256];
struct  pprocHEX3Aobjecttype249216  {
TY249217* Blocks;
tsym188833* Sym;
TY249220 Slots;
NI Maxslots;
};
typedef NI TY22618[16];
struct  tpagedesc41098  {
tpagedesc41098* Next;
NI Key;
TY22618 Bits;
};
struct  tbasechunk22636  {
NI Prevsize;
NI Size;
NIM_BOOL Used;
};
struct  tsmallchunk22638  {
  tbasechunk22636 Sup;
tsmallchunk22638* Next;
tsmallchunk22638* Prev;
tfreecell22628* Freelist;
NI Free;
NI Acc;
NF Data;
};
struct  tllchunk23404  {
NI Size;
NI Acc;
tllchunk23404* Next;
};
struct  tbigchunk22640  {
  tbasechunk22636 Sup;
tbigchunk22640* Next;
tbigchunk22640* Prev;
NI Align;
NF Data;
};
struct  ttrunk22611  {
ttrunk22611* Next;
NI Key;
TY22618 Bits;
};
typedef tavlnode23408* TY23414[2];
struct  tavlnode23408  {
TY23414 Link;
NI Key;
NI Upperbound;
NI Level;
};
struct  tscope188827  {
NI Depthlevel;
tstrtable188807 Symbols;
tnodeseq188797* Usingsyms;
tscope188827* Parent;
};
struct  tinstantiation188823  {
tsym188833* Sym;
ttypeseq188835* Concretetypes;
TY188922* Usedby;
};
struct  trope145007  {
  TNimObject Sup;
trope145007* Left;
trope145007* Right;
NI Length;
NimStringDesc* Data;
};
struct  tlistentry118017  {
  TNimObject Sup;
tlistentry118017* Prev;
tlistentry118017* Next;
};
struct  tlib188821  {
  tlistentry118017 Sup;
NU8 Kind;
NIM_BOOL Generated;
NIM_BOOL Isoverriden;
trope145007* Name;
tnode188803* Path;
};
struct  tfreecell22628  {
tfreecell22628* Next;
NI Zerofield;
};
struct tnodeseq188797 {
  TGenericSeq Sup;
  tnode188803* data[SEQ_DECL_SIZE];
};
struct TY249229 {
  TGenericSeq Sup;
  NU32 data[SEQ_DECL_SIZE];
};
struct TY164208 {
  TGenericSeq Sup;
  tlineinfo163527 data[SEQ_DECL_SIZE];
};
struct ttypeseq188835 {
  TGenericSeq Sup;
  ttype188837* data[SEQ_DECL_SIZE];
};
struct TY391224 {
  TGenericSeq Sup;
  tfullreg391204 data[SEQ_DECL_SIZE];
};
struct TY298698 {
  TGenericSeq Sup;
  NI data[SEQ_DECL_SIZE];
};
struct TY188933 {
  TGenericSeq Sup;
  tinstantiation188823* data[SEQ_DECL_SIZE];
};
struct tsymseq188805 {
  TGenericSeq Sup;
  tsym188833* data[SEQ_DECL_SIZE];
};
struct TY249198 {
  TGenericSeq Sup;
  NI data[SEQ_DECL_SIZE];
};
struct TY249217 {
  TGenericSeq Sup;
  tblock249023 data[SEQ_DECL_SIZE];
};
struct TY188922 {
  TGenericSeq Sup;
  NI32 data[SEQ_DECL_SIZE];
};
N_NIMCALL(void, globalerror_165558)(tlineinfo163527 info, NU16 msg, NimStringDesc* arg);
N_NIMCALL(void, setupglobalctx_409807)(tsym188833* module);
N_NIMCALL(tctx249037*, newctx_249249)(tsym188833* module);
static N_INLINE(void, asgnRef)(void** dest, void* src);
static N_INLINE(void, incref_46827)(tcell41090* c);
static N_INLINE(NIM_BOOL, canbecycleroot_44462)(tcell41090* c);
static N_INLINE(void, rtladdcycleroot_45235)(tcell41090* c);
N_NOINLINE(void, incl_41855)(tcellset41102* s, tcell41090* cell);
static N_INLINE(tcell41090*, usrtocell_44443)(void* usr);
static N_INLINE(void, decref_46402)(tcell41090* c);
static N_INLINE(void, rtladdzct_46002)(tcell41090* c);
N_NOINLINE(void, addzct_44418)(tcellseq41106* s, tcell41090* c);
N_NIMCALL(void, refresh_249337)(tctx249037* c, tsym188833* module);
static N_INLINE(void, asgnRefNoCycle)(void** dest, void* src);
N_NIMCALL(NI, genproc_387355)(tctx249037* c, tsym188833* s);
N_NIMCALL(void, nimGCvisit)(void* d, NI op);
N_NIMCALL(void, TMP2607)(void* p, NI op);
N_NIMCALL(void, TMP2608)(void* p, NI op);
N_NIMCALL(void*, newObj)(TNimType* typ, NI size);
static N_INLINE(void, nimGCunrefNoCycle)(void* p);
N_NIMCALL(void*, newSeqRC1)(TNimType* typ, NI len);
static N_INLINE(NI, safelen_189320)(tnode188803* n);
N_NIMCALL(tnode188803*, newnodeit_189104)(NU8 kind, tlineinfo163527 info, ttype188837* typ);
N_NIMCALL(tnode188803*, setupmacroparam_410450)(tnode188803* x);
N_NIMCALL(tnode188803*, canonvalue_381788)(tnode188803* n);
N_NIMCALL(tnode188803*, regtonode_392854)(tfullreg391204 x);
N_NIMCALL(tnode188803*, newnode_189065)(NU8 kind);
N_NIMCALL(void, unsureAsgnRef)(void** dest, void* src);
N_NIMCALL(void, rawexecute_394236)(tctx249037* c, NI start, tstackframe391208* tos_394240, tfullreg391204* Result);
N_NIMCALL(void, genericAssign)(void* dest, void* src, TNimType* mt);
N_NIMCALL(void, myreset_391401)(tfullreg391204* n);
N_NIMCALL(void, genericReset)(void* dest, TNimType* mt);
N_NIMCALL(void, createstrkeepnode_391649)(tfullreg391204* x);
N_NIMCALL(NimStringDesc*, copyStringRC1)(NimStringDesc* src);
N_NIMCALL(void, asgncomplex_392419)(tfullreg391204* x, tfullreg391204 y);
N_NIMCALL(tnode188803*, copyvalue_391967)(tnode188803* src);
static N_INLINE(NI, sonslen_189181)(tnode188803* n);
N_NIMCALL(void, moveconst_391804)(tfullreg391204* x, tfullreg391204 y);
N_NIMCALL(void, putintonode_392575)(tnode188803** n, tfullreg391204 x);
N_NIMCALL(void, stacktrace_391333)(tctx249037* c, tstackframe391208* tos, NI pc, NU16 msg, NimStringDesc* arg);
N_NIMCALL(void, msgwriteln_164937)(NimStringDesc* s);
N_NIMCALL(void, stacktraceaux_391231)(tctx249037* c, tstackframe391208* x_391234, NI pc, NI recursionlimit);
N_NIMCALL(NimStringDesc*, nimIntToStr)(NI x);
static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src);
N_NIMCALL(NimStringDesc*, rawNewString)(NI space);
N_NIMCALL(NimStringDesc*, tofilename_164780)(NI32 fileidx);
static N_INLINE(NI, tolinenumber_164812)(tlineinfo163527 info);
N_NIMCALL(NimStringDesc*, addChar)(NimStringDesc* s, NIM_CHAR c);
N_NIMCALL(NimStringDesc*, resizeString)(NimStringDesc* dest, NI addlen);
N_NIMCALL(void, localerror_165571)(tlineinfo163527 info, NU16 msg, NimStringDesc* arg);
static N_INLINE(NI, len_189264)(tnode188803* n);
N_NIMCALL(tnode188803*, skipcolon_394207)(tnode188803* n);
N_NIMCALL(NIM_BOOL, inset_244013)(tnode188803* s, tnode188803* elem);
N_NIMCALL(void, addson_189207)(tnode188803* father, tnode188803* son);
N_NIMCALL(tnode188803*, copytree_189237)(tnode188803* src);
N_NIMCALL(void, add_189390)(tnode188803* father, tnode188803* son);
N_NIMCALL(tnode188803*, diffsets_244038)(tnode188803* a, tnode188803* b);
N_NIMCALL(void, discardsons_189260)(tnode188803* father);
N_NIMCALL(NI64, cardset_244063)(tnode188803* s);
static N_INLINE(NIM_BOOL, eqStrings)(NimStringDesc* a, NimStringDesc* b);
static N_INLINE(NI, cmpStrings)(NimStringDesc* a, NimStringDesc* b);
N_NIMCALL(NIM_BOOL, containssets_244053)(tnode188803* a, tnode188803* b);
N_NIMCALL(NIM_BOOL, equalsets_244058)(tnode188803* a, tnode188803* b);
N_NIMCALL(tnode188803*, intersectsets_244043)(tnode188803* a, tnode188803* b);
N_NIMCALL(tnode188803*, unionsets_244033)(tnode188803* a, tnode188803* b);
N_NIMCALL(tnode188803*, symdiffsets_244048)(tnode188803* a, tnode188803* b);
N_NIMCALL(NimStringDesc*, nimCharToStr)(NIM_CHAR x);
N_NIMCALL(NimStringDesc*, copyString)(NimStringDesc* src);
N_NIMCALL(void, write_10463)(FILE* f, NimStringDesc* s);
static N_INLINE(void, writeln_138205)(FILE* f_138209, NimStringDesc** x_138213, NI x_138213Len0);
N_NIMCALL(NimStringDesc*, copyStrLast)(NimStringDesc* s, NI start_70624, NI last);
N_NIMCALL(NimStringDesc*, copyStrLast)(NimStringDesc* s, NI first, NI last);
N_NIMCALL(NIM_BOOL, levalueconv_261015)(tnode188803* a, tnode188803* b);
N_NIMCALL(NimStringDesc*, nsuFormatOpenArray)(NimStringDesc* formatstr, NimStringDesc** a, NI aLen0);
N_NIMCALL(NimStringDesc*, msgkindtostring_165071)(NU16 kind);
N_NIMCALL(NI, compile_394115)(tctx249037* c, tsym188833* s);
static N_INLINE(NIM_BOOL, isemptytype_195210)(ttype188837* t);
N_NIMCALL(void, putintoreg_392721)(tfullreg391204* dest, tnode188803* n);
N_NIMCALL(tnode188803*, getnullvalue_386003)(ttype188837* typ, tlineinfo163527 info);
N_NIMCALL(tnode188803*, newnodei_189099)(NU8 kind, tlineinfo163527 info);
N_NIMCALL(tnode188803*, newsymnode_189095)(tsym188833* sym);
N_NIMCALL(tnode188803*, evaltemplate_390275)(tnode188803* n, tsym188833* tmpl, tsym188833* gensymowner);
static N_INLINE(tnode188803*, HEX5BHEX5D_189694)(tnode188803* n, NI i);
N_NIMCALL(NIM_BOOL, overlap_244008)(tnode188803* a, tnode188803* b);
N_NIMCALL(void, pushsafepoint_392965)(tstackframe391208* f, NI pc);
N_NIMCALL(TGenericSeq*, incrSeq)(TGenericSeq* seq, NI elemsize);
N_NIMCALL(void, popsafepoint_393020)(tstackframe391208* f);
static N_INLINE(NI, pop_393026)(TY298698** s_393034);
N_NIMCALL(TGenericSeq*, setLengthSeq)(TGenericSeq* seq, NI elemsize, NI newlen);
N_NIMCALL(void, cleanuponexception_393070)(tctx249037* c, tstackframe391208* tos, TY393074* Result);
N_NIMCALL(ttype188837*, skiptypes_192793)(ttype188837* t, NU64 kinds);
N_NIMCALL(NI, inheritancediff_230560)(ttype188837* a, ttype188837* b);
N_NIMCALL(void, bailout_391351)(tctx249037* c, tstackframe391208* tos);
N_NIMCALL(NimStringDesc*, mnewString)(NI len);
N_NIMCALL(NimStringDesc*, mnewString)(NI len);
N_NIMCALL(NIM_BOOL, fitsregister_385046)(ttype188837* t);
N_NIMCALL(NimStringDesc*, rendertree_211051)(tnode188803* n, NU8 renderflags);
N_NIMCALL(void, message_165584)(tlineinfo163527 info, NU16 msg, NimStringDesc* arg);
N_NIMCALL(NI64, getordvalue_223150)(tnode188803* n);
N_NIMCALL(void, genericShallowAssign)(void* dest, void* src, TNimType* mt);
N_NIMCALL(NimStringDesc*, setLengthStr)(NimStringDesc* s, NI newlen);
N_NIMCALL(NIM_BOOL, sametype_228116)(ttype188837* a, ttype188837* b, NU8 flags);
N_NIMCALL(void, internalerror_165591)(tlineinfo163527 info, NimStringDesc* errmsg);
N_NIMCALL(NimStringDesc*, nsuFormatSingleElem)(NimStringDesc* formatstr, NimStringDesc* a);
N_NIMCALL(tnode188803*, copynode_189233)(tnode188803* src);
N_NIMCALL(NimStringDesc*, reprEnum)(NI e_75880, TNimType* typ);
N_NIMCALL(NimStringDesc*, opslurp_389022)(NimStringDesc* file, tlineinfo163527 info, tsym188833* module);
N_NIMCALL(NimStringDesc*, opgorge_389014)(NimStringDesc* cmd, NimStringDesc* input);
N_NIMCALL(tnode188803*, parsestring_205227)(NimStringDesc* s, NimStringDesc* filename, NI line);
static N_INLINE(NimStringDesc*, tofilelinecol_164830)(tlineinfo163527 info);
N_NIMCALL(tident167019*, getident_167456)(NimStringDesc* identifier);
N_NIMCALL(NIM_BOOL, opconv_393341)(tfullreg391204* dest, tfullreg391204 src, ttype188837* desttyp, ttype188837* srctyp);
N_NIMCALL(void, internalerror_165606)(NimStringDesc* errmsg);
N_NIMCALL(NimStringDesc*, nimInt64ToStr)(NI64 x);
N_NIMCALL(NimStringDesc*, HEX24_5001)(NU64 x);
N_NIMCALL(NimStringDesc*, nimFloatToStr)(NF x);
N_NIMCALL(NimStringDesc*, typetostring_223020)(ttype188837* typ, NU8 prefer);
N_NIMCALL(NI64, firstord_223002)(ttype188837* t);
N_NIMCALL(NI64, lastord_223006)(ttype188837* t);
N_NIMCALL(void, globalerror_165565)(tlineinfo163527 info, NimStringDesc* arg);
N_NIMCALL(NimStringDesc*, HEX24_165714)(TY79484 x_165718);
N_NIMCALL(void, delson_189212)(tnode188803* father, NI idx);
N_NIMCALL(tsym188833*, newsym_189053)(NU8 symkind, tident167019* name, tsym188833* owner, tlineinfo163527 info);
N_NIMCALL(NI, len_192569)(ttype188837* n);
N_NIMCALL(NIM_BOOL, cyclictree_221143)(tnode188803* n);
N_NIMCALL(tnode188803*, evalconstexpraux_410015)(tsym188833* module, tsym188833* prc, tnode188803* n_410019, NU8 mode);
N_NIMCALL(tnode188803*, transformexpr_378603)(tsym188833* module, tnode188803* n);
N_NIMCALL(NI, genexpr_388057)(tctx249037* c, tnode188803* n, NIM_BOOL requiresvalue);
N_NIMCALL(void, evalstmt_409654)(tctx249037* c, tnode188803* n_409657);
N_NIMCALL(NI, genstmt_388036)(tctx249037* c, tnode188803* n);
N_NIMCALL(tnode188803*, execute_409629)(tctx249037* c, NI start);
STRING_LITERAL(TMP2571, "", 0);
TNimNode* NimDT_tfullreg_kind[7];
STRING_LITERAL(TMP2609, "stack trace: (most recent call last)", 36);
STRING_LITERAL(TMP2610, " calls omitted\012", 15);
STRING_LITERAL(TMP2616, "\012", 1);
STRING_LITERAL(TMP2619, "unknown type", 12);
NIM_CONST TY137892 TMP2618 = {((NimStringDesc*) &TMP2619),
((NimStringDesc*) &TMP2619)}
;
STRING_LITERAL(TMP2620, "VM not allowed to do FFI", 24);
STRING_LITERAL(TMP2621, "VM not built with FFI support", 29);
NIM_CONST TY393074 TMP2625 = {-1,
NIM_NIL}
;
STRING_LITERAL(TMP2626, "cannot swap operands", 20);
STRING_LITERAL(TMP2627, "too implement", 13);
STRING_LITERAL(TMP2628, "value out of range", 18);
STRING_LITERAL(TMP2629, "intVal", 6);
STRING_LITERAL(TMP2630, "floatVal", 8);
STRING_LITERAL(TMP2631, "symbol", 6);
STRING_LITERAL(TMP2632, "ident", 5);
STRING_LITERAL(TMP2633, "unknown opcode ", 15);
STRING_LITERAL(TMP2637, "strVal", 6);
STRING_LITERAL(TMP2657, "multiple statements", 19);
STRING_LITERAL(TMP2658, "callsite", 8);
STRING_LITERAL(TMP2659, "(", 1);
STRING_LITERAL(TMP2660, ",", 1);
STRING_LITERAL(TMP2661, ")", 1);
STRING_LITERAL(TMP2662, "cannot set type", 15);
STRING_LITERAL(TMP2663, "opConv for enum", 15);
STRING_LITERAL(TMP2664, "false", 5);
STRING_LITERAL(TMP2665, "true", 4);
STRING_LITERAL(TMP2666, "cannot convert to string ", 25);
STRING_LITERAL(TMP2667, "cannot evaluate cast", 20);
STRING_LITERAL(TMP2669, "compiler/vm.nim", 15);
NIM_CONST TY79484 TMP2668 = {((NimStringDesc*) &TMP2669),
1223}
;
NIM_CONST TY79484 TMP2670 = {((NimStringDesc*) &TMP2669),
1224}
;
STRING_LITERAL(TMP2671, "request to create a NimNode of invalid kind", 43);
STRING_LITERAL(TMP2672, ":tmp", 4);
STRING_LITERAL(TMP2673, "request to create symbol of invalid kind", 40);
NIM_CONST TY79484 TMP2674 = {((NimStringDesc*) &TMP2669),
1270}
;
tctx249037* globalctx_409804;
NI olderrorcount_410003;
NI evalmacrocounter_410500;
extern tgcheap43016 gch_43044;
TNimType NTI391208; /* TStackFrame */
extern TNimType NTI188801; /* PSym */
TNimType NTI391204; /* TFullReg */
TNimType NTI391202; /* TRegisterKind */
extern TNimType NTI4289; /* BiggestInt */
extern TNimType NTI4291; /* BiggestFloat */
extern TNimType NTI188795; /* PNode */
TNimType NTI391219; /* ptr TFullReg */
extern TNimType NTI391221; /* ptr PNode */
TNimType NTI391224; /* seq[TFullReg] */
extern TNimType NTI106; /* int */
extern TNimType NTI298698; /* seq[int] */
TNimType NTI391206; /* PStackFrame */
extern TNimType NTI188803; /* TNode */
extern TNimType NTI188797; /* TNodeSeq */
extern TNimType NTI249021; /* TOpcode */
extern tnode188803* emptynode_189727;
extern NI gerrorcounter_164182;

static N_INLINE(NIM_BOOL, canbecycleroot_44462)(tcell41090* c) {
	NIM_BOOL result;
	result = 0;
	result = !((((*(*c).Typ).flags &(1<<((((NU8) 1))&7)))!=0));
	return result;
}

static N_INLINE(void, rtladdcycleroot_45235)(tcell41090* c) {
	{
		if (!!((((NI) ((NI)((*c).Refcount & 3))) == 3))) goto LA3;
		(*c).Refcount = (NI)((NI)((*c).Refcount & -4) | 3);
		incl_41855(&gch_43044.Cycleroots, c);
	}
	LA3: ;
}

static N_INLINE(void, incref_46827)(tcell41090* c) {
	(*c).Refcount = (NI)((NU32)((*c).Refcount) + (NU32)(8));
	{
		NIM_BOOL LOC3;
		LOC3 = 0;
		LOC3 = canbecycleroot_44462(c);
		if (!LOC3) goto LA4;
		rtladdcycleroot_45235(c);
	}
	LA4: ;
}

static N_INLINE(tcell41090*, usrtocell_44443)(void* usr) {
	tcell41090* result;
	result = 0;
	result = ((tcell41090*) ((NI)((NU32)(((NI) (usr))) - (NU32)(((NI)sizeof(tcell41090))))));
	return result;
}

static N_INLINE(void, rtladdzct_46002)(tcell41090* c) {
	addzct_44418(&gch_43044.Zct, c);
}

static N_INLINE(void, decref_46402)(tcell41090* c) {
	{
		(*c).Refcount -= 8;
		if (!((NU32)((*c).Refcount) < (NU32)(8))) goto LA3;
		rtladdzct_46002(c);
	}
	goto LA1;
	LA3: ;
	{
		NIM_BOOL LOC6;
		LOC6 = 0;
		LOC6 = canbecycleroot_44462(c);
		if (!LOC6) goto LA7;
		rtladdcycleroot_45235(c);
	}
	goto LA1;
	LA7: ;
	LA1: ;
}

static N_INLINE(void, asgnRef)(void** dest, void* src) {
	{
		tcell41090* LOC5;
		if (!!((src == NIM_NIL))) goto LA3;
		LOC5 = 0;
		LOC5 = usrtocell_44443(src);
		incref_46827(LOC5);
	}
	LA3: ;
	{
		tcell41090* LOC10;
		if (!!(((*dest) == NIM_NIL))) goto LA8;
		LOC10 = 0;
		LOC10 = usrtocell_44443((*dest));
		decref_46402(LOC10);
	}
	LA8: ;
	(*dest) = src;
}

N_NIMCALL(void, setupglobalctx_409807)(tsym188833* module) {
	{
		if (!globalctx_409804 == 0) goto LA3;
		asgnRef((void**) &globalctx_409804, newctx_249249(module));
	}
	goto LA1;
	LA3: ;
	{
		refresh_249337(globalctx_409804, module);
	}
	LA1: ;
}

static N_INLINE(void, asgnRefNoCycle)(void** dest, void* src) {
	{
		tcell41090* c;
		if (!!((src == NIM_NIL))) goto LA3;
		c = usrtocell_44443(src);
		(*c).Refcount += 8;
	}
	LA3: ;
	{
		tcell41090* c;
		if (!!(((*dest) == NIM_NIL))) goto LA7;
		c = usrtocell_44443((*dest));
		{
			(*c).Refcount -= 8;
			if (!((NU32)((*c).Refcount) < (NU32)(8))) goto LA11;
			rtladdzct_46002(c);
		}
		LA11: ;
	}
	LA7: ;
	(*dest) = src;
}
N_NIMCALL(void, TMP2607)(void* p, NI op) {
	TY391224* a;
	NI LOC1;
	a = (TY391224*)p;
	LOC1 = 0;
	for (LOC1 = 0; LOC1 < a->Sup.len; LOC1++) {
	switch (a->data[LOC1].Kind) {
	case ((NU8) 0):
	break;
	case ((NU8) 2):
	break;
	case ((NU8) 3):
	break;
	case ((NU8) 1):
	nimGCvisit((void*)a->data[LOC1].kindU.Node, op);
	break;
	case ((NU8) 4):
	break;
	case ((NU8) 5):
	break;
	} 
	}
}
N_NIMCALL(void, TMP2608)(void* p, NI op) {
	tstackframe391208* a;
	a = (tstackframe391208*)p;
	nimGCvisit((void*)(*a).Prc, op);
	nimGCvisit((void*)(*a).Slots, op);
	nimGCvisit((void*)(*a).Next, op);
	nimGCvisit((void*)(*a).Safepoints, op);
}

static N_INLINE(void, nimGCunrefNoCycle)(void* p) {
	tcell41090* c;
	c = usrtocell_44443(p);
	{
		(*c).Refcount -= 8;
		if (!((NU32)((*c).Refcount) < (NU32)(8))) goto LA3;
		rtladdzct_46002(c);
	}
	LA3: ;
}

static N_INLINE(NI, safelen_189320)(tnode188803* n) {
	NI result;
	result = 0;
	{
		NIM_BOOL LOC3;
		LOC3 = 0;
		LOC3 = ((*n).Kind >= ((NU8) 0) && (*n).Kind <= ((NU8) 23));
		if (LOC3) goto LA4;
		LOC3 = (*n).kindU.S6.Sons == 0;
		LA4: ;
		if (!LOC3) goto LA5;
		result = 0;
	}
	goto LA1;
	LA5: ;
	{
		result = (*n).kindU.S6.Sons->Sup.len;
	}
	LA1: ;
	return result;
}

N_NIMCALL(tnode188803*, setupmacroparam_410450)(tnode188803* x) {
	tnode188803* result;
	result = 0;
	result = x;
	{
		if (!((*result).Kind == ((NU8) 59) || (*result).Kind == ((NU8) 58))) goto LA3;
		result = (*result).kindU.S6.Sons->data[1];
	}
	LA3: ;
	result = canonvalue_381788(result);
	(*result).Flags |=((NI16)(1)<<((((NU8) 11))%(sizeof(NI16)*8)));
	asgnRefNoCycle((void**) &(*result).Typ, (*x).Typ);
	return result;
}

N_NIMCALL(tnode188803*, regtonode_392854)(tfullreg391204 x) {
	tnode188803* result;
	result = 0;
	switch (x.Kind) {
	case ((NU8) 0):
	{
		result = newnode_189065(((NU8) 1));
	}
	break;
	case ((NU8) 2):
	{
		result = newnode_189065(((NU8) 6));
		(*result).kindU.S1.Intval = x.kindU.Intval;
	}
	break;
	case ((NU8) 3):
	{
		result = newnode_189065(((NU8) 16));
		(*result).kindU.S2.Floatval = x.kindU.Floatval;
	}
	break;
	case ((NU8) 1):
	{
		result = x.kindU.Node;
	}
	break;
	case ((NU8) 4):
	{
		result = regtonode_392854((*x.kindU.Regaddr));
	}
	break;
	case ((NU8) 5):
	{
		unsureAsgnRef((void**) &result, (*x.kindU.Nodeaddr));
	}
	break;
	}
	return result;
}

N_NIMCALL(void, myreset_391401)(tfullreg391204* n) {
	genericReset((void*)&(*n), (&NTI391204));
}

N_NIMCALL(void, createstrkeepnode_391649)(tfullreg391204* x) {
	{
		if (!(*x).kindU.Node == 0) goto LA3;
		unsureAsgnRef((void**) &(*x).kindU.Node, newnode_189065(((NU8) 20)));
	}
	goto LA1;
	LA3: ;
	{
		if (!((*(*x).kindU.Node).Kind == ((NU8) 23))) goto LA6;
		genericReset((void*)&(*(*x).kindU.Node), (&NTI188803));
		(*(*x).kindU.Node).Kind = ((NU8) 20);
	}
	goto LA1;
	LA6: ;
	{
		if (!!(((*(*x).kindU.Node).Kind >= ((NU8) 20) && (*(*x).kindU.Node).Kind <= ((NU8) 22)))) goto LA9;
		unsureAsgnRef((void**) &(*x).kindU.Node, newnode_189065(((NU8) 20)));
	}
	goto LA1;
	LA9: ;
	LA1: ;
}

static N_INLINE(NI, sonslen_189181)(tnode188803* n) {
	NI result;
	result = 0;
	{
		if (!(*n).kindU.S6.Sons == 0) goto LA3;
		result = 0;
	}
	goto LA1;
	LA3: ;
	{
		result = (*n).kindU.S6.Sons->Sup.len;
	}
	LA1: ;
	return result;
}

N_NIMCALL(tnode188803*, copyvalue_391967)(tnode188803* src) {
	tnode188803* result;
	result = 0;
	{
		NIM_BOOL LOC3;
		LOC3 = 0;
		LOC3 = (src == NIM_NIL);
		if (LOC3) goto LA4;
		LOC3 = (((*src).Flags &(1<<((((NU8) 11))&15)))!=0);
		LA4: ;
		if (!LOC3) goto LA5;
		result = src;
		goto BeforeRet;
	}
	LA5: ;
	result = newnode_189065((*src).Kind);
	(*result).Info = (*src).Info;
	asgnRefNoCycle((void**) &(*result).Typ, (*src).Typ);
	(*result).Flags = ((*src).Flags & 2462);
	switch ((*src).Kind) {
	case ((NU8) 5) ... ((NU8) 15):
	{
		(*result).kindU.S1.Intval = (*src).kindU.S1.Intval;
	}
	break;
	case ((NU8) 16) ... ((NU8) 19):
	{
		(*result).kindU.S2.Floatval = (*src).kindU.S2.Floatval;
	}
	break;
	case ((NU8) 3):
	{
		asgnRefNoCycle((void**) &(*result).kindU.S4.Sym, (*src).kindU.S4.Sym);
	}
	break;
	case ((NU8) 2):
	{
		asgnRefNoCycle((void**) &(*result).kindU.S5.Ident, (*src).kindU.S5.Ident);
	}
	break;
	case ((NU8) 20) ... ((NU8) 22):
	{
		NimStringDesc* LOC12;
		LOC12 = 0;
		LOC12 = (*result).kindU.S3.Strval; (*result).kindU.S3.Strval = copyStringRC1((*src).kindU.S3.Strval);
		if (LOC12) nimGCunrefNoCycle(LOC12);
	}
	break;
	default:
	{
		NI LOC14;
		NI i_392383;
		NI HEX3Atmp_392412;
		NI LOC15;
		NI res_392414;
		LOC14 = 0;
		LOC14 = sonslen_189181(src);
		if ((*result).kindU.S6.Sons) nimGCunrefNoCycle((*result).kindU.S6.Sons);
		(*result).kindU.S6.Sons = (tnodeseq188797*) newSeqRC1((&NTI188797), LOC14);
		i_392383 = 0;
		HEX3Atmp_392412 = 0;
		LOC15 = 0;
		LOC15 = sonslen_189181(src);
		HEX3Atmp_392412 = (NI32)(LOC15 - 1);
		res_392414 = 0;
		while (1) {
			if (!(res_392414 <= HEX3Atmp_392412)) goto LA16;
			i_392383 = res_392414;
			asgnRefNoCycle((void**) &(*result).kindU.S6.Sons->data[i_392383], copyvalue_391967((*src).kindU.S6.Sons->data[i_392383]));
			res_392414 += 1;
		} LA16: ;
	}
	break;
	}
	BeforeRet: ;
	return result;
}

N_NIMCALL(void, asgncomplex_392419)(tfullreg391204* x, tfullreg391204 y) {
	{
		if (!!(((*x).Kind == y.Kind))) goto LA3;
		myreset_391401(x);
		(*x).Kind = y.Kind;
	}
	LA3: ;
	switch ((*x).Kind) {
	case ((NU8) 0):
	{
	}
	break;
	case ((NU8) 2):
	{
		(*x).kindU.Intval = y.kindU.Intval;
	}
	break;
	case ((NU8) 3):
	{
		(*x).kindU.Floatval = y.kindU.Floatval;
	}
	break;
	case ((NU8) 1):
	{
		unsureAsgnRef((void**) &(*x).kindU.Node, copyvalue_391967(y.kindU.Node));
	}
	break;
	case ((NU8) 4):
	{
		(*x).kindU.Regaddr = y.kindU.Regaddr;
	}
	break;
	case ((NU8) 5):
	{
		(*x).kindU.Nodeaddr = y.kindU.Nodeaddr;
	}
	break;
	}
}

N_NIMCALL(void, moveconst_391804)(tfullreg391204* x, tfullreg391204 y) {
	{
		if (!!(((*x).Kind == y.Kind))) goto LA3;
		myreset_391401(x);
		(*x).Kind = y.Kind;
	}
	LA3: ;
	switch ((*x).Kind) {
	case ((NU8) 0):
	{
	}
	break;
	case ((NU8) 2):
	{
		(*x).kindU.Intval = y.kindU.Intval;
	}
	break;
	case ((NU8) 3):
	{
		(*x).kindU.Floatval = y.kindU.Floatval;
	}
	break;
	case ((NU8) 1):
	{
		unsureAsgnRef((void**) &(*x).kindU.Node, y.kindU.Node);
	}
	break;
	case ((NU8) 4):
	{
		(*x).kindU.Regaddr = y.kindU.Regaddr;
	}
	break;
	case ((NU8) 5):
	{
		(*x).kindU.Nodeaddr = y.kindU.Nodeaddr;
	}
	break;
	}
}

N_NIMCALL(void, putintonode_392575)(tnode188803** n, tfullreg391204 x) {
	switch (x.Kind) {
	case ((NU8) 0):
	{
	}
	break;
	case ((NU8) 2):
	{
		(*(*n)).kindU.S1.Intval = x.kindU.Intval;
	}
	break;
	case ((NU8) 3):
	{
		(*(*n)).kindU.S2.Floatval = x.kindU.Floatval;
	}
	break;
	case ((NU8) 1):
	{
		{
			if (!(((*x.kindU.Node).Flags &(1<<((((NU8) 11))&15)))!=0)) goto LA7;
			unsureAsgnRef((void**) &(*n), x.kindU.Node);
		}
		goto LA5;
		LA7: ;
		{
			genericAssign((void*)&(*(*n)), (void*)&(*x.kindU.Node), (&NTI188803));
		}
		LA5: ;
	}
	break;
	case ((NU8) 4):
	{
		putintonode_392575(n, (*x.kindU.Regaddr));
	}
	break;
	case ((NU8) 5):
	{
		genericAssign((void*)&(*(*n)), (void*)&(*(*x.kindU.Nodeaddr)), (&NTI188803));
	}
	break;
	}
}

static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src) {
	memcpy(((NCSTRING) (&(*dest).data[((*dest).Sup.len)- 0])), ((NCSTRING) ((*src).data)), (NI32)((*src).Sup.len + 1));
	(*dest).Sup.len += (*src).Sup.len;
}

static N_INLINE(NI, tolinenumber_164812)(tlineinfo163527 info) {
	NI result;
	result = 0;
	result = ((NI) (info.Line));
	return result;
}

N_NIMCALL(void, stacktraceaux_391231)(tctx249037* c, tstackframe391208* x_391234, NI pc, NI recursionlimit) {
	{
		tlineinfo163527 info;
		NimStringDesc* s;
		NI line;
		if (!!((x_391234 == NIM_NIL))) goto LA3;
		{
			NI calls;
			tstackframe391208* x;
			NimStringDesc* LOC10;
			NimStringDesc* LOC11;
			if (!(recursionlimit == 0)) goto LA7;
			calls = 0;
			x = x_391234;
			while (1) {
				if (!!((x == NIM_NIL))) goto LA9;
				calls += 1;
				x = (*x).Next;
			} LA9: ;
			LOC10 = 0;
			LOC11 = 0;
			LOC11 = nimIntToStr(calls);
			LOC10 = rawNewString(LOC11->Sup.len + 15);
appendString(LOC10, LOC11);
appendString(LOC10, ((NimStringDesc*) &TMP2610));
			msgwriteln_164937(LOC10);
			goto BeforeRet;
		}
		LA7: ;
		stacktraceaux_391231(c, (*x_391234).Next, (*x_391234).Comesfrom, (NI32)(recursionlimit - 1));
		info = (*c).Debug->data[pc];
		s = tofilename_164780(info.Fileindex);
		line = tolinenumber_164812(info);
		{
			NimStringDesc* LOC16;
			if (!(0 < line)) goto LA14;
			s = addChar(s, 40);
			LOC16 = 0;
			LOC16 = nimIntToStr(line);
			s = resizeString(s, LOC16->Sup.len + 0);
appendString(s, LOC16);
			s = addChar(s, 41);
		}
		LA14: ;
		{
			NI k_391324;
			NI HEX3Atmp_391325;
			NI res_391327;
			if (!!(((*x_391234).Prc == NIM_NIL))) goto LA19;
			k_391324 = 0;
			HEX3Atmp_391325 = 0;
			HEX3Atmp_391325 = ((1 >= (NI32)(25 - s->Sup.len)) ? 1 : (NI32)(25 - s->Sup.len));
			res_391327 = 1;
			while (1) {
				if (!(res_391327 <= HEX3Atmp_391325)) goto LA21;
				k_391324 = res_391327;
				s = addChar(s, 32);
				res_391327 += 1;
			} LA21: ;
			s = resizeString(s, (*(*(*x_391234).Prc).Name).S->Sup.len + 0);
appendString(s, (*(*(*x_391234).Prc).Name).S);
		}
		LA19: ;
		msgwriteln_164937(s);
	}
	LA3: ;
	BeforeRet: ;
}

N_NIMCALL(void, stacktrace_391333)(tctx249037* c, tstackframe391208* tos, NI pc, NU16 msg, NimStringDesc* arg) {
	msgwriteln_164937(((NimStringDesc*) &TMP2609));
	stacktraceaux_391231(c, tos, pc, 100);
	{
		if (!((*c).Mode == ((NU8) 0))) goto LA3;
		globalerror_165558((*c).Debug->data[pc], msg, arg);
	}
	goto LA1;
	LA3: ;
	{
		localerror_165571((*c).Debug->data[pc], msg, arg);
	}
	LA1: ;
}

static N_INLINE(NI, len_189264)(tnode188803* n) {
	NI result;
	result = 0;
	{
		if (!(*n).kindU.S6.Sons == 0) goto LA3;
		result = 0;
	}
	goto LA1;
	LA3: ;
	{
		result = (*n).kindU.S6.Sons->Sup.len;
	}
	LA1: ;
	return result;
}

N_NIMCALL(tnode188803*, skipcolon_394207)(tnode188803* n) {
	tnode188803* result;
	result = 0;
	result = n;
	{
		if (!((*n).Kind == ((NU8) 34))) goto LA3;
		result = (*n).kindU.S6.Sons->data[1];
	}
	LA3: ;
	return result;
}

static N_INLINE(NIM_BOOL, eqStrings)(NimStringDesc* a, NimStringDesc* b) {
	NIM_BOOL result;
	NIM_BOOL LOC11;
	int LOC13;
	result = 0;
	{
		if (!(a == b)) goto LA3;
		result = NIM_TRUE;
		goto BeforeRet;
	}
	LA3: ;
	{
		NIM_BOOL LOC7;
		LOC7 = 0;
		LOC7 = (a == NIM_NIL);
		if (LOC7) goto LA8;
		LOC7 = (b == NIM_NIL);
		LA8: ;
		if (!LOC7) goto LA9;
		result = NIM_FALSE;
		goto BeforeRet;
	}
	LA9: ;
	LOC11 = 0;
	LOC11 = ((*a).Sup.len == (*b).Sup.len);
	if (!(LOC11)) goto LA12;
	LOC13 = 0;
	LOC13 = memcmp(((NCSTRING) ((*a).data)), ((NCSTRING) ((*b).data)), (NI32)((*a).Sup.len * 1));
	LOC11 = (LOC13 == ((NI32) 0));
	LA12: ;
	result = LOC11;
	goto BeforeRet;
	BeforeRet: ;
	return result;
}

static N_INLINE(NI, cmpStrings)(NimStringDesc* a, NimStringDesc* b) {
	NI result;
	int LOC13;
	result = 0;
	{
		if (!(a == b)) goto LA3;
		result = 0;
		goto BeforeRet;
	}
	LA3: ;
	{
		if (!(a == NIM_NIL)) goto LA7;
		result = -1;
		goto BeforeRet;
	}
	LA7: ;
	{
		if (!(b == NIM_NIL)) goto LA11;
		result = 1;
		goto BeforeRet;
	}
	LA11: ;
	LOC13 = 0;
	LOC13 = strcmp(((NCSTRING) ((*a).data)), ((NCSTRING) ((*b).data)));
	result = ((NI) (LOC13));
	goto BeforeRet;
	BeforeRet: ;
	return result;
}

static N_INLINE(void, writeln_138205)(FILE* f_138209, NimStringDesc** x_138213, NI x_138213Len0) {
	NimStringDesc* i_138226;
	NI i_138232;
	i_138226 = 0;
	i_138232 = 0;
	while (1) {
		if (!(i_138232 < x_138213Len0)) goto LA1;
		i_138226 = x_138213[i_138232];
		write_10463(f_138209, i_138226);
		i_138232 += 1;
	} LA1: ;
	write_10463(f_138209, ((NimStringDesc*) &TMP2616));
}

N_NIMCALL(NI, compile_394115)(tctx249037* c, tsym188833* s) {
	NI result;
	result = 0;
	result = genproc_387355(c, s);
	return result;
}

static N_INLINE(NIM_BOOL, isemptytype_195210)(ttype188837* t) {
	NIM_BOOL result;
	NIM_BOOL LOC1;
	result = 0;
	LOC1 = 0;
	LOC1 = (t == NIM_NIL);
	if (LOC1) goto LA2;
	LOC1 = ((*t).Kind == ((NU8) 3) || (*t).Kind == ((NU8) 7));
	LA2: ;
	result = LOC1;
	return result;
}

N_NIMCALL(void, putintoreg_392721)(tfullreg391204* dest, tnode188803* n) {
	switch ((*n).Kind) {
	case ((NU8) 20) ... ((NU8) 22):
	{
		NimStringDesc* LOC2;
		(*dest).Kind = ((NU8) 1);
		unsureAsgnRef((void**) &(*dest).kindU.Node, newnode_189065(((NU8) 20)));
		LOC2 = 0;
		LOC2 = (*(*dest).kindU.Node).kindU.S3.Strval; (*(*dest).kindU.Node).kindU.S3.Strval = copyStringRC1((*n).kindU.S3.Strval);
		if (LOC2) nimGCunrefNoCycle(LOC2);
	}
	break;
	case ((NU8) 5) ... ((NU8) 15):
	{
		(*dest).Kind = ((NU8) 2);
		(*dest).kindU.Intval = (*n).kindU.S1.Intval;
	}
	break;
	case ((NU8) 16) ... ((NU8) 19):
	{
		(*dest).Kind = ((NU8) 3);
		(*dest).kindU.Floatval = (*n).kindU.S2.Floatval;
	}
	break;
	default:
	{
		(*dest).Kind = ((NU8) 1);
		unsureAsgnRef((void**) &(*dest).kindU.Node, n);
	}
	break;
	}
}

static N_INLINE(tnode188803*, HEX5BHEX5D_189694)(tnode188803* n, NI i) {
	tnode188803* result;
	result = 0;
	result = (*n).kindU.S6.Sons->data[i];
	return result;
}

N_NIMCALL(void, pushsafepoint_392965)(tstackframe391208* f, NI pc) {
	{
		if (!(*f).Safepoints == 0) goto LA3;
		if ((*f).Safepoints) nimGCunrefNoCycle((*f).Safepoints);
		(*f).Safepoints = (TY298698*) newSeqRC1((&NTI298698), 0);
	}
	LA3: ;
	(*f).Safepoints = (TY298698*) incrSeq(&((*f).Safepoints)->Sup, sizeof(NI));
	(*f).Safepoints->data[(*f).Safepoints->Sup.len-1] = pc;
}

static N_INLINE(NI, pop_393026)(TY298698** s_393034) {
	NI result;
	NI l;
	result = 0;
	l = (NI32)((*s_393034)->Sup.len - 1);
	result = (*s_393034)->data[l];
	(*s_393034) = (TY298698*) setLengthSeq(&((*s_393034))->Sup, sizeof(NI), l);
	return result;
}

N_NIMCALL(void, popsafepoint_393020)(tstackframe391208* f) {
	NI LOC1;
	LOC1 = 0;
	LOC1 = pop_393026(&(*f).Safepoints);
}

N_NIMCALL(void, cleanuponexception_393070)(tctx249037* c, tstackframe391208* tos, TY393074* Result) {
	ttype188837* raisedtype;
	tstackframe391208* f;
	raisedtype = skiptypes_192793((*(*c).Currentexceptiona).Typ, IL64(211106247256320));
	f = tos;
	while (1) {
		NI pc2;
		NI nextexceptorfinally;
		NI LOC27;
		while (1) {
			NIM_BOOL LOC3;
			LOC3 = 0;
			LOC3 = (*f).Safepoints == 0;
			if (LOC3) goto LA4;
			LOC3 = ((*f).Safepoints->Sup.len == 0);
			LA4: ;
			if (!LOC3) goto LA2;
			f = (*f).Next;
			{
				if (!f == 0) goto LA7;
				(*Result).Field0 = TMP2625.Field0;
				unsureAsgnRef((void**) &(*Result).Field1, TMP2625.Field1);
				goto BeforeRet;
			}
			LA7: ;
		} LA2: ;
		pc2 = (*f).Safepoints->data[((*f).Safepoints->Sup.len-1)];
		nextexceptorfinally = -1;
		{
			if (!(((NU8) ((NU32)((*c).Code->data[pc2] & ((NU32) 255)))) == ((NU8) 138))) goto LA11;
			nextexceptorfinally = (NI32)((NI32)(pc2 + ((NI) ((NU32)((NU32)((*c).Code->data[pc2]) >> (NU32)(((NU32) 16)))))) - 32768);
			pc2 += 1;
		}
		LA11: ;
		while (1) {
			ttype188837* excepttype;
			if (!(((NU8) ((NU32)((*c).Code->data[pc2] & ((NU32) 255)))) == ((NU8) 138))) goto LA13;
			excepttype = skiptypes_192793((*c).Types->data[(NI32)(((NI) ((NU32)((NU32)((*c).Code->data[pc2]) >> (NU32)(((NU32) 16))))) - 32768)], IL64(211106247256320));
			{
				NI LOC16;
				LOC16 = 0;
				LOC16 = inheritancediff_230560(excepttype, raisedtype);
				if (!(LOC16 <= 0)) goto LA17;
				asgnRefNoCycle((void**) &(*c).Currentexceptionb, (*c).Currentexceptiona);
				asgnRefNoCycle((void**) &(*c).Currentexceptiona, NIM_NIL);
				(*Result).Field0 = pc2;
				unsureAsgnRef((void**) &(*Result).Field1, f);
				goto BeforeRet;
			}
			LA17: ;
			pc2 += 1;
		} LA13: ;
		{
			if (!(0 <= nextexceptorfinally)) goto LA21;
			pc2 = nextexceptorfinally;
		}
		LA21: ;
		{
			if (!(((NU8) ((NU32)((*c).Code->data[pc2] & ((NU32) 255)))) == ((NU8) 139))) goto LA25;
			(*Result).Field0 = pc2;
			unsureAsgnRef((void**) &(*Result).Field1, f);
			goto BeforeRet;
		}
		LA25: ;
		LOC27 = 0;
		LOC27 = pop_393026(&(*f).Safepoints);
	}
	BeforeRet: ;
}

N_NIMCALL(void, bailout_391351)(tctx249037* c, tstackframe391208* tos) {
	stacktrace_391333(c, tos, (*c).Exceptioninstr, ((NU16) 214), (*(*(*c).Currentexceptiona).kindU.S6.Sons->data[2]).kindU.S3.Strval);
}

static N_INLINE(NimStringDesc*, tofilelinecol_164830)(tlineinfo163527 info) {
	NimStringDesc* result;
	NimStringDesc* LOC1;
	NimStringDesc* LOC2;
	NimStringDesc* LOC3;
	NimStringDesc* LOC4;
	result = 0;
	LOC1 = 0;
	LOC2 = 0;
	LOC2 = tofilename_164780(info.Fileindex);
	LOC3 = 0;
	LOC3 = nimIntToStr(((NI) (info.Line)));
	LOC4 = 0;
	LOC4 = nimIntToStr(((NI) (info.Col)));
	LOC1 = rawNewString(LOC2->Sup.len + LOC3->Sup.len + LOC4->Sup.len + 3);
appendString(LOC1, LOC2);
appendString(LOC1, ((NimStringDesc*) &TMP2659));
appendString(LOC1, LOC3);
appendString(LOC1, ((NimStringDesc*) &TMP2660));
appendString(LOC1, LOC4);
appendString(LOC1, ((NimStringDesc*) &TMP2661));
	result = LOC1;
	return result;
}

N_NIMCALL(NIM_BOOL, opconv_393341)(tfullreg391204* dest, tfullreg391204 src, ttype188837* desttyp, ttype188837* srctyp) {
	NIM_BOOL result;
	result = 0;
	{
		ttype188837* styp;
		if (!((*desttyp).Kind == ((NU8) 28))) goto LA3;
		{
			if (!!(((*dest).Kind == ((NU8) 1)))) goto LA7;
			myreset_391401(dest);
			(*dest).Kind = ((NU8) 1);
		}
		LA7: ;
		unsureAsgnRef((void**) &(*dest).kindU.Node, newnode_189065(((NU8) 20)));
		styp = skiptypes_192793(srctyp, IL64(211106233624832));
		switch ((*styp).Kind) {
		case ((NU8) 14):
		{
			tnode188803* n;
			NI x;
			n = (*styp).N;
			x = ((NI) (src.kindU.Intval));
			{
				NIM_BOOL LOC12;
				NI LOC13;
				tsym188833* f;
				LOC12 = 0;
				LOC13 = 0;
				LOC13 = len_189264(n);
				LOC12 = ((NU32)(x) < (NU32)(LOC13));
				if (!(LOC12)) goto LA14;
				f = (*(*n).kindU.S6.Sons->data[x]).kindU.S4.Sym;
				LOC12 = ((*f).Position == x);
				LA14: ;
				if (!LOC12) goto LA15;
				{
					NimStringDesc* LOC21;
					if (!(*f).Ast == 0) goto LA19;
					LOC21 = 0;
					LOC21 = (*(*dest).kindU.Node).kindU.S3.Strval; (*(*dest).kindU.Node).kindU.S3.Strval = copyStringRC1((*(*f).Name).S);
					if (LOC21) nimGCunrefNoCycle(LOC21);
				}
				goto LA17;
				LA19: ;
				{
					NimStringDesc* LOC23;
					LOC23 = 0;
					LOC23 = (*(*dest).kindU.Node).kindU.S3.Strval; (*(*dest).kindU.Node).kindU.S3.Strval = copyStringRC1((*(*f).Ast).kindU.S3.Strval);
					if (LOC23) nimGCunrefNoCycle(LOC23);
				}
				LA17: ;
			}
			goto LA10;
			LA15: ;
			{
				NI i_393510;
				NI HEX3Atmp_394107;
				NI LOC25;
				NI res_394109;
				i_393510 = 0;
				HEX3Atmp_394107 = 0;
				LOC25 = 0;
				LOC25 = len_189264(n);
				HEX3Atmp_394107 = LOC25 - 1;
				res_394109 = 0;
				while (1) {
					tsym188833* f;
					if (!(res_394109 <= HEX3Atmp_394107)) goto LA26;
					i_393510 = res_394109;
					{
						if (!!(((*(*n).kindU.S6.Sons->data[i_393510]).Kind == ((NU8) 3)))) goto LA29;
						internalerror_165606(((NimStringDesc*) &TMP2663));
					}
					LA29: ;
					f = (*(*n).kindU.S6.Sons->data[i_393510]).kindU.S4.Sym;
					{
						if (!((*f).Position == x)) goto LA33;
						{
							NimStringDesc* LOC39;
							if (!(*f).Ast == 0) goto LA37;
							LOC39 = 0;
							LOC39 = (*(*dest).kindU.Node).kindU.S3.Strval; (*(*dest).kindU.Node).kindU.S3.Strval = copyStringRC1((*(*f).Name).S);
							if (LOC39) nimGCunrefNoCycle(LOC39);
						}
						goto LA35;
						LA37: ;
						{
							NimStringDesc* LOC41;
							LOC41 = 0;
							LOC41 = (*(*dest).kindU.Node).kindU.S3.Strval; (*(*dest).kindU.Node).kindU.S3.Strval = copyStringRC1((*(*f).Ast).kindU.S3.Strval);
							if (LOC41) nimGCunrefNoCycle(LOC41);
						}
						LA35: ;
						goto BeforeRet;
					}
					LA33: ;
					res_394109 += 1;
				} LA26: ;
				internalerror_165606(((NimStringDesc*) &TMP2663));
			}
			LA10: ;
		}
		break;
		case ((NU8) 31) ... ((NU8) 35):
		{
			asgnRefNoCycle((void**) &(*(*dest).kindU.Node).kindU.S3.Strval, nimInt64ToStr(src.kindU.Intval));
		}
		break;
		case ((NU8) 40) ... ((NU8) 44):
		{
			asgnRefNoCycle((void**) &(*(*dest).kindU.Node).kindU.S3.Strval, HEX24_5001(((NU64) (src.kindU.Intval))));
		}
		break;
		case ((NU8) 1):
		{
			{
				NimStringDesc* LOC49;
				if (!(src.kindU.Intval == 0)) goto LA47;
				LOC49 = 0;
				LOC49 = (*(*dest).kindU.Node).kindU.S3.Strval; (*(*dest).kindU.Node).kindU.S3.Strval = copyStringRC1(((NimStringDesc*) &TMP2664));
				if (LOC49) nimGCunrefNoCycle(LOC49);
			}
			goto LA45;
			LA47: ;
			{
				NimStringDesc* LOC51;
				LOC51 = 0;
				LOC51 = (*(*dest).kindU.Node).kindU.S3.Strval; (*(*dest).kindU.Node).kindU.S3.Strval = copyStringRC1(((NimStringDesc*) &TMP2665));
				if (LOC51) nimGCunrefNoCycle(LOC51);
			}
			LA45: ;
		}
		break;
		case ((NU8) 36) ... ((NU8) 39):
		{
			asgnRefNoCycle((void**) &(*(*dest).kindU.Node).kindU.S3.Strval, nimFloatToStr(src.kindU.Floatval));
		}
		break;
		case ((NU8) 28):
		case ((NU8) 29):
		{
			NimStringDesc* LOC54;
			LOC54 = 0;
			LOC54 = (*(*dest).kindU.Node).kindU.S3.Strval; (*(*dest).kindU.Node).kindU.S3.Strval = copyStringRC1((*src.kindU.Node).kindU.S3.Strval);
			if (LOC54) nimGCunrefNoCycle(LOC54);
		}
		break;
		case ((NU8) 2):
		{
			asgnRefNoCycle((void**) &(*(*dest).kindU.Node).kindU.S3.Strval, nimCharToStr(((NIM_CHAR) (((NI) (src.kindU.Intval))))));
		}
		break;
		default:
		{
			NimStringDesc* LOC57;
			NimStringDesc* LOC58;
			LOC57 = 0;
			LOC58 = 0;
			LOC58 = typetostring_223020(desttyp, ((NU8) 0));
			LOC57 = rawNewString(LOC58->Sup.len + 25);
appendString(LOC57, ((NimStringDesc*) &TMP2666));
appendString(LOC57, LOC58);
			internalerror_165606(LOC57);
		}
		break;
		}
	}
	goto LA1;
	LA3: ;
	{
		ttype188837* LOC60;
		LOC60 = 0;
		LOC60 = skiptypes_192793(desttyp, IL64(211106233624832));
		switch ((*LOC60).Kind) {
		case ((NU8) 31) ... ((NU8) 35):
		{
			ttype188837* LOC66;
			{
				if (!!(((*dest).Kind == ((NU8) 2)))) goto LA64;
				myreset_391401(dest);
				(*dest).Kind = ((NU8) 2);
			}
			LA64: ;
			LOC66 = 0;
			LOC66 = skiptypes_192793(srctyp, IL64(211106233624832));
			switch ((*LOC66).Kind) {
			case ((NU8) 36) ... ((NU8) 38):
			{
				(*dest).kindU.Intval = ((NI64) (float64ToInt32(src.kindU.Floatval)));
			}
			break;
			default:
			{
				(*dest).kindU.Intval = src.kindU.Intval;
			}
			break;
			}
			{
				NIM_BOOL LOC71;
				NI64 LOC72;
				NI64 LOC74;
				LOC71 = 0;
				LOC72 = 0;
				LOC72 = firstord_223002(desttyp);
				LOC71 = ((*dest).kindU.Intval < LOC72);
				if (LOC71) goto LA73;
				LOC74 = 0;
				LOC74 = lastord_223006(desttyp);
				LOC71 = (LOC74 < (*dest).kindU.Intval);
				LA73: ;
				if (!LOC71) goto LA75;
				result = NIM_TRUE;
				goto BeforeRet;
			}
			LA75: ;
		}
		break;
		case ((NU8) 40) ... ((NU8) 44):
		{
			ttype188837* LOC82;
			{
				if (!!(((*dest).Kind == ((NU8) 2)))) goto LA80;
				myreset_391401(dest);
				(*dest).Kind = ((NU8) 2);
			}
			LA80: ;
			LOC82 = 0;
			LOC82 = skiptypes_192793(srctyp, IL64(211106233624832));
			switch ((*LOC82).Kind) {
			case ((NU8) 36) ... ((NU8) 38):
			{
				(*dest).kindU.Intval = ((NI64) (float64ToInt32(src.kindU.Floatval)));
			}
			break;
			default:
			{
				(*dest).kindU.Intval = (NI64)(src.kindU.Intval & (NI64)((NI64)((NU64)(1) << (NU64)((NI64)((*desttyp).Size * 8))) - 1));
			}
			break;
			}
		}
		break;
		case ((NU8) 36) ... ((NU8) 38):
		{
			ttype188837* LOC90;
			{
				if (!!(((*dest).Kind == ((NU8) 3)))) goto LA88;
				myreset_391401(dest);
				(*dest).Kind = ((NU8) 3);
			}
			LA88: ;
			LOC90 = 0;
			LOC90 = skiptypes_192793(srctyp, IL64(211106233624832));
			switch ((*LOC90).Kind) {
			case ((NU8) 31) ... ((NU8) 35):
			case ((NU8) 40) ... ((NU8) 44):
			case ((NU8) 14):
			case ((NU8) 1):
			case ((NU8) 2):
			{
				(*dest).kindU.Floatval = ((double) (((NI) (src.kindU.Intval))));
			}
			break;
			default:
			{
				(*dest).kindU.Floatval = src.kindU.Floatval;
			}
			break;
			}
		}
		break;
		default:
		{
			asgncomplex_392419(dest, src);
		}
		break;
		}
	}
	LA1: ;
	BeforeRet: ;
	return result;
}

N_NIMCALL(void, rawexecute_394236)(tctx249037* c, NI start, tstackframe391208* tos_394240, tfullreg391204* Result) {
	NI pc;
	tstackframe391208* tos;
	TY391224* regs;
	pc = start;
	tos = tos_394240;
	regs = 0;
	regs = (*tos).Slots;
	while (1) {
		NU32 instr;
		NI ra_394266;
		instr = (*c).Code->data[pc];
		ra_394266 = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 8))) & ((NU32) 255))));
		switch (((NU8) ((NU32)(instr & ((NU32) 255))))) {
		case ((NU8) 0):
		{
			genericAssign((void*)Result, (void*)&regs->data[ra_394266], (&NTI391204));
			goto BeforeRet;
		}
		break;
		case ((NU8) 1):
		{
			tfullreg391204 retval;
			pc = (*tos).Comesfrom;
			tos = (*tos).Next;
			memcpy((void*)&retval, (NIM_CONST void*)&regs->data[0], sizeof(retval));
			{
				if (!tos == 0) goto LA6;
				genericAssign((void*)Result, (void*)&retval, (&NTI391204));
				goto BeforeRet;
			}
			LA6: ;
			regs = (*tos).Slots;
			{
				if (!(((NU8) ((NU32)((*c).Code->data[pc] & ((NU32) 255)))) == ((NU8) 126))) goto LA10;
				genericAssign((void*)&regs->data[((NI) ((NU32)((NU32)((NU32)((*c).Code->data[pc]) >> (NU32)(((NU32) 8))) & ((NU32) 255))))], (void*)&retval, (&NTI391204));
			}
			LA10: ;
		}
		break;
		case ((NU8) 2):
		{
		}
		break;
		case ((NU8) 3):
		{
		}
		break;
		case ((NU8) 4):
		{
			NI rb;
			rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
			{
				if (!!((regs->data[ra_394266].Kind == ((NU8) 2)))) goto LA17;
				myreset_391401(&regs->data[ra_394266]);
				regs->data[ra_394266].Kind = ((NU8) 2);
			}
			LA17: ;
			regs->data[ra_394266].kindU.Intval = regs->data[rb].kindU.Intval;
		}
		break;
		case ((NU8) 5):
		{
			NI rb;
			NimStringDesc* LOC24;
			rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
			{
				if (!!((regs->data[ra_394266].Kind == ((NU8) 1)))) goto LA22;
				myreset_391401(&regs->data[ra_394266]);
				regs->data[ra_394266].Kind = ((NU8) 1);
			}
			LA22: ;
			createstrkeepnode_391649(&regs->data[ra_394266]);
			LOC24 = 0;
			LOC24 = (*regs->data[ra_394266].kindU.Node).kindU.S3.Strval; (*regs->data[ra_394266].kindU.Node).kindU.S3.Strval = copyStringRC1((*regs->data[rb].kindU.Node).kindU.S3.Strval);
			if (LOC24) nimGCunrefNoCycle(LOC24);
		}
		break;
		case ((NU8) 6):
		{
			NI rb;
			rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
			{
				if (!!((regs->data[ra_394266].Kind == ((NU8) 3)))) goto LA28;
				myreset_391401(&regs->data[ra_394266]);
				regs->data[ra_394266].Kind = ((NU8) 3);
			}
			LA28: ;
			regs->data[ra_394266].kindU.Floatval = regs->data[rb].kindU.Floatval;
		}
		break;
		case ((NU8) 8):
		{
			asgncomplex_392419(&regs->data[ra_394266], regs->data[((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))))]);
		}
		break;
		case ((NU8) 7):
		{
			moveconst_391804(&regs->data[ra_394266], regs->data[((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))))]);
		}
		break;
		case ((NU8) 9):
		{
			NI rb;
			rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
			{
				if (!!((regs->data[ra_394266].Kind == ((NU8) 1)))) goto LA35;
				myreset_391401(&regs->data[ra_394266]);
				regs->data[ra_394266].Kind = ((NU8) 1);
			}
			LA35: ;
			putintonode_392575(&regs->data[ra_394266].kindU.Node, regs->data[rb]);
		}
		break;
		case ((NU8) 10):
		{
			NI ra;
			NI rb;
			ra = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 8))) & ((NU32) 255))));
			rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
			{
				if (!!((regs->data[rb].Kind == ((NU8) 1)))) goto LA40;
				genericAssign((void*)&regs->data[ra], (void*)&regs->data[rb], (&NTI391204));
			}
			goto LA38;
			LA40: ;
			{
				tnode188803* nb;
				nb = regs->data[rb].kindU.Node;
				switch ((*nb).Kind) {
				case ((NU8) 5) ... ((NU8) 10):
				{
					{
						if (!!((regs->data[ra].Kind == ((NU8) 2)))) goto LA46;
						myreset_391401(&regs->data[ra]);
						regs->data[ra].Kind = ((NU8) 2);
					}
					LA46: ;
					regs->data[ra].kindU.Intval = (*nb).kindU.S1.Intval;
				}
				break;
				case ((NU8) 16) ... ((NU8) 18):
				{
					{
						if (!!((regs->data[ra].Kind == ((NU8) 3)))) goto LA51;
						myreset_391401(&regs->data[ra]);
						regs->data[ra].Kind = ((NU8) 3);
					}
					LA51: ;
					regs->data[ra].kindU.Floatval = (*nb).kindU.S2.Floatval;
				}
				break;
				default:
				{
					{
						if (!!((regs->data[ra].Kind == ((NU8) 1)))) goto LA56;
						myreset_391401(&regs->data[ra]);
						regs->data[ra].Kind = ((NU8) 1);
					}
					LA56: ;
					asgnRefNoCycle((void**) &regs->data[ra].kindU.Node, nb);
				}
				break;
				}
			}
			LA38: ;
		}
		break;
		case ((NU8) 11):
		{
			NI rb;
			NI rc;
			NI idx;
			tnode188803* src;
			rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
			rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
			{
				if (!!((regs->data[ra_394266].Kind == ((NU8) 1)))) goto LA61;
				myreset_391401(&regs->data[ra_394266]);
				regs->data[ra_394266].Kind = ((NU8) 1);
			}
			LA61: ;
			{
				if (!(2147483647 < regs->data[rc].kindU.Intval)) goto LA65;
				stacktrace_391333(c, tos, pc, ((NU16) 82), ((NimStringDesc*) &TMP2571));
			}
			LA65: ;
			idx = ((NI) (regs->data[rc].kindU.Intval));
			src = regs->data[rb].kindU.Node;
			{
				NIM_BOOL LOC69;
				NI LOC71;
				LOC69 = 0;
				LOC69 = !(((*src).Kind >= ((NU8) 1) && (*src).Kind <= ((NU8) 23)));
				if (!(LOC69)) goto LA70;
				LOC71 = 0;
				LOC71 = len_189264(src);
				LOC69 = ((NU32)(idx) < (NU32)(LOC71));
				LA70: ;
				if (!LOC69) goto LA72;
				asgnRefNoCycle((void**) &regs->data[ra_394266].kindU.Node, (*src).kindU.S6.Sons->data[idx]);
			}
			goto LA67;
			LA72: ;
			{
				stacktrace_391333(c, tos, pc, ((NU16) 82), ((NimStringDesc*) &TMP2571));
			}
			LA67: ;
		}
		break;
		case ((NU8) 20):
		{
			NI rb;
			NI rc;
			NI idx;
			rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
			rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
			{
				if (!!((regs->data[ra_394266].Kind == ((NU8) 2)))) goto LA78;
				myreset_391401(&regs->data[ra_394266]);
				regs->data[ra_394266].Kind = ((NU8) 2);
			}
			LA78: ;
			idx = ((NI) (regs->data[rc].kindU.Intval));
			{
				if (!((NU32)(idx) <= (NU32)((*regs->data[rb].kindU.Node).kindU.S3.Strval->Sup.len))) goto LA82;
				regs->data[ra_394266].kindU.Intval = ((NI64) (((NU8)((*regs->data[rb].kindU.Node).kindU.S3.Strval->data[idx]))));
			}
			goto LA80;
			LA82: ;
			{
				stacktrace_391333(c, tos, pc, ((NU16) 82), ((NimStringDesc*) &TMP2571));
			}
			LA80: ;
		}
		break;
		case ((NU8) 12):
		{
			NI rb;
			NI rc;
			NI idx;
			rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
			rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
			{
				if (!!((regs->data[ra_394266].Kind == ((NU8) 1)))) goto LA88;
				myreset_391401(&regs->data[ra_394266]);
				regs->data[ra_394266].Kind = ((NU8) 1);
			}
			LA88: ;
			idx = ((NI) (regs->data[rb].kindU.Intval));
			{
				NI LOC92;
				LOC92 = 0;
				LOC92 = len_189264(regs->data[ra_394266].kindU.Node);
				if (!((NU32)(idx) < (NU32)(LOC92))) goto LA93;
				putintonode_392575(&(*regs->data[ra_394266].kindU.Node).kindU.S6.Sons->data[idx], regs->data[rc]);
			}
			goto LA90;
			LA93: ;
			{
				stacktrace_391333(c, tos, pc, ((NU16) 82), ((NimStringDesc*) &TMP2571));
			}
			LA90: ;
		}
		break;
		case ((NU8) 13):
		{
			NI rb;
			NI rc;
			tnode188803* src;
			rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
			rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
			{
				if (!!((regs->data[ra_394266].Kind == ((NU8) 1)))) goto LA99;
				myreset_391401(&regs->data[ra_394266]);
				regs->data[ra_394266].Kind = ((NU8) 1);
			}
			LA99: ;
			src = regs->data[rb].kindU.Node;
			{
				tnode188803* n;
				if (!!(((*src).Kind >= ((NU8) 1) && (*src).Kind <= ((NU8) 23)))) goto LA103;
				n = skipcolon_394207((*src).kindU.S6.Sons->data[rc]);
				asgnRefNoCycle((void**) &regs->data[ra_394266].kindU.Node, n);
			}
			goto LA101;
			LA103: ;
			{
				stacktrace_391333(c, tos, pc, ((NU16) 81), ((NimStringDesc*) &TMP2571));
			}
			LA101: ;
		}
		break;
		case ((NU8) 14):
		{
			NI rb;
			NI rc;
			rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
			rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
			{
				if (!!((regs->data[ra_394266].Kind == ((NU8) 1)))) goto LA109;
				myreset_391401(&regs->data[ra_394266]);
				regs->data[ra_394266].Kind = ((NU8) 1);
			}
			LA109: ;
			putintonode_392575(&(*regs->data[ra_394266].kindU.Node).kindU.S6.Sons->data[rb], regs->data[rc]);
		}
		break;
		case ((NU8) 19):
		{
			NI rb;
			NI rc;
			NI idx;
			rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
			rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
			{
				if (!!((regs->data[ra_394266].Kind == ((NU8) 1)))) goto LA114;
				myreset_391401(&regs->data[ra_394266]);
				regs->data[ra_394266].Kind = ((NU8) 1);
			}
			LA114: ;
			idx = ((NI) (regs->data[rb].kindU.Intval));
			{
				if (!((NU32)(idx) < (NU32)((*regs->data[ra_394266].kindU.Node).kindU.S3.Strval->Sup.len))) goto LA118;
				(*regs->data[ra_394266].kindU.Node).kindU.S3.Strval->data[idx] = ((NIM_CHAR) (((NI) (regs->data[rc].kindU.Intval))));
			}
			goto LA116;
			LA118: ;
			{
				stacktrace_391333(c, tos, pc, ((NU16) 82), ((NimStringDesc*) &TMP2571));
			}
			LA116: ;
		}
		break;
		case ((NU8) 15):
		{
			NI rb;
			rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
			{
				if (!!((regs->data[ra_394266].Kind == ((NU8) 4)))) goto LA124;
				myreset_391401(&regs->data[ra_394266]);
				regs->data[ra_394266].Kind = ((NU8) 4);
			}
			LA124: ;
			regs->data[ra_394266].kindU.Regaddr = &regs->data[rb];
		}
		break;
		case ((NU8) 16):
		{
			NI rb;
			rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
			{
				if (!!((regs->data[ra_394266].Kind == ((NU8) 5)))) goto LA129;
				myreset_391401(&regs->data[ra_394266]);
				regs->data[ra_394266].Kind = ((NU8) 5);
			}
			LA129: ;
			regs->data[ra_394266].kindU.Nodeaddr = &regs->data[rb].kindU.Node;
		}
		break;
		case ((NU8) 17):
		{
			NI ra;
			NI rb;
			ra = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 8))) & ((NU32) 255))));
			rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
			switch (regs->data[rb].Kind) {
			case ((NU8) 5):
			{
				{
					if (!!((regs->data[ra].Kind == ((NU8) 1)))) goto LA135;
					myreset_391401(&regs->data[ra]);
					regs->data[ra].Kind = ((NU8) 1);
				}
				LA135: ;
				unsureAsgnRef((void**) &regs->data[ra].kindU.Node, (*regs->data[rb].kindU.Nodeaddr));
			}
			break;
			case ((NU8) 4):
			{
				{
					if (!!((regs->data[ra].Kind == (*regs->data[rb].kindU.Regaddr).Kind))) goto LA140;
					myreset_391401(&regs->data[ra]);
					regs->data[ra].Kind = (*regs->data[rb].kindU.Regaddr).Kind;
				}
				LA140: ;
				genericAssign((void*)&regs->data[ra], (void*)&(*regs->data[rb].kindU.Regaddr), (&NTI391204));
			}
			break;
			case ((NU8) 1):
			{
				{
					if (!((*regs->data[rb].kindU.Node).Kind == ((NU8) 23))) goto LA145;
					stacktrace_391333(c, tos, pc, ((NU16) 81), ((NimStringDesc*) &TMP2571));
				}
				LA145: ;
				asgnRefNoCycle((void**) &regs->data[ra].kindU.Node, (*regs->data[rb].kindU.Node).kindU.S6.Sons->data[0]);
			}
			break;
			default:
			{
				stacktrace_391333(c, tos, pc, ((NU16) 81), ((NimStringDesc*) &TMP2571));
			}
			break;
			}
		}
		break;
		case ((NU8) 18):
		{
			NI ra;
			NI rb;
			ra = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 8))) & ((NU32) 255))));
			rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
			switch (regs->data[ra].Kind) {
			case ((NU8) 5):
			{
				putintonode_392575(regs->data[ra].kindU.Nodeaddr, regs->data[rb]);
			}
			break;
			case ((NU8) 4):
			{
				genericAssign((void*)&(*regs->data[ra].kindU.Regaddr), (void*)&regs->data[rb], (&NTI391204));
			}
			break;
			case ((NU8) 1):
			{
				putintonode_392575(&regs->data[ra].kindU.Node, regs->data[rb]);
			}
			break;
			default:
			{
				stacktrace_391333(c, tos, pc, ((NU16) 81), ((NimStringDesc*) &TMP2571));
			}
			break;
			}
		}
		break;
		case ((NU8) 21):
		{
			NI rb;
			NI rc;
			NI64 bval;
			NI64 cval;
			NI64 sum;
			rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
			rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
			{
				if (!!((regs->data[ra_394266].Kind == ((NU8) 2)))) goto LA156;
				myreset_391401(&regs->data[ra_394266]);
				regs->data[ra_394266].Kind = ((NU8) 2);
			}
			LA156: ;
			bval = regs->data[rb].kindU.Intval;
			cval = regs->data[rc].kindU.Intval;
			sum = (NI64)((NU64)(bval) + (NU64)(cval));
			{
				NIM_BOOL LOC160;
				LOC160 = 0;
				LOC160 = (0 <= (NI64)(sum ^ bval));
				if (LOC160) goto LA161;
				LOC160 = (0 <= (NI64)(sum ^ cval));
				LA161: ;
				if (!LOC160) goto LA162;
				regs->data[ra_394266].kindU.Intval = sum;
			}
			goto LA158;
			LA162: ;
			{
				stacktrace_391333(c, tos, pc, ((NU16) 76), ((NimStringDesc*) &TMP2571));
			}
			LA158: ;
		}
		break;
		case ((NU8) 22):
		{
			NI rb;
			NI imm;
			NI64 bval;
			NI cval;
			NI64 sum;
			rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
			imm = (NI32)(((NI) (((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24))))))) - 128);
			{
				if (!!((regs->data[ra_394266].Kind == ((NU8) 2)))) goto LA168;
				myreset_391401(&regs->data[ra_394266]);
				regs->data[ra_394266].Kind = ((NU8) 2);
			}
			LA168: ;
			bval = regs->data[rb].kindU.Intval;
			cval = imm;
			sum = (NI64)((NU64)(bval) + (NU64)(((NI64) (cval))));
			{
				NIM_BOOL LOC172;
				LOC172 = 0;
				LOC172 = (0 <= (NI64)(sum ^ bval));
				if (LOC172) goto LA173;
				LOC172 = (0 <= (NI64)(sum ^ ((NI64) (cval))));
				LA173: ;
				if (!LOC172) goto LA174;
				regs->data[ra_394266].kindU.Intval = sum;
			}
			goto LA170;
			LA174: ;
			{
				stacktrace_391333(c, tos, pc, ((NU16) 76), ((NimStringDesc*) &TMP2571));
			}
			LA170: ;
		}
		break;
		case ((NU8) 23):
		{
			NI rb;
			NI rc;
			NI64 bval;
			NI64 cval;
			NI64 diff;
			rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
			rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
			{
				if (!!((regs->data[ra_394266].Kind == ((NU8) 2)))) goto LA180;
				myreset_391401(&regs->data[ra_394266]);
				regs->data[ra_394266].Kind = ((NU8) 2);
			}
			LA180: ;
			bval = regs->data[rb].kindU.Intval;
			cval = regs->data[rc].kindU.Intval;
			diff = (NI64)((NU64)(bval) - (NU64)(cval));
			{
				NIM_BOOL LOC184;
				LOC184 = 0;
				LOC184 = (0 <= (NI64)(diff ^ bval));
				if (LOC184) goto LA185;
				LOC184 = (0 <= (NI64)(diff ^ (NI64)((NU64) ~(cval))));
				LA185: ;
				if (!LOC184) goto LA186;
				regs->data[ra_394266].kindU.Intval = diff;
			}
			goto LA182;
			LA186: ;
			{
				stacktrace_391333(c, tos, pc, ((NU16) 76), ((NimStringDesc*) &TMP2571));
			}
			LA182: ;
		}
		break;
		case ((NU8) 24):
		{
			NI rb;
			NI imm;
			NI64 bval;
			NI cval;
			NI64 diff;
			rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
			imm = (NI32)(((NI) (((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24))))))) - 128);
			{
				if (!!((regs->data[ra_394266].Kind == ((NU8) 2)))) goto LA192;
				myreset_391401(&regs->data[ra_394266]);
				regs->data[ra_394266].Kind = ((NU8) 2);
			}
			LA192: ;
			bval = regs->data[rb].kindU.Intval;
			cval = imm;
			diff = (NI64)((NU64)(bval) - (NU64)(((NI64) (cval))));
			{
				NIM_BOOL LOC196;
				LOC196 = 0;
				LOC196 = (0 <= (NI64)(diff ^ bval));
				if (LOC196) goto LA197;
				LOC196 = (0 <= (NI64)(diff ^ ((NI64) ((NI)((NU32) ~(((NI) (cval))))))));
				LA197: ;
				if (!LOC196) goto LA198;
				regs->data[ra_394266].kindU.Intval = diff;
			}
			goto LA194;
			LA198: ;
			{
				stacktrace_391333(c, tos, pc, ((NU16) 76), ((NimStringDesc*) &TMP2571));
			}
			LA194: ;
		}
		break;
		case ((NU8) 25):
		{
			NI rb;
			NI imm;
			NI LOC206;
			rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
			imm = (NI32)(((NI) (((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24))))))) - 128);
			{
				if (!!((regs->data[ra_394266].Kind == ((NU8) 2)))) goto LA204;
				myreset_391401(&regs->data[ra_394266]);
				regs->data[ra_394266].Kind = ((NU8) 2);
			}
			LA204: ;
			LOC206 = 0;
			LOC206 = safelen_189320(regs->data[rb].kindU.Node);
			regs->data[ra_394266].kindU.Intval = ((NI64) ((NI32)(LOC206 - ((NI) (imm)))));
		}
		break;
		case ((NU8) 26):
		{
			NI rb;
			NI imm;
			rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
			imm = (NI32)(((NI) (((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24))))))) - 128);
			{
				if (!!((regs->data[ra_394266].Kind == ((NU8) 2)))) goto LA210;
				myreset_391401(&regs->data[ra_394266]);
				regs->data[ra_394266].Kind = ((NU8) 2);
			}
			LA210: ;
			regs->data[ra_394266].kindU.Intval = ((NI64) ((NI32)((*regs->data[rb].kindU.Node).kindU.S3.Strval->Sup.len - ((NI) (imm)))));
		}
		break;
		case ((NU8) 27):
		{
			NI rb;
			tnode188803* b;
			rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
			{
				if (!!((regs->data[ra_394266].Kind == ((NU8) 1)))) goto LA215;
				myreset_391401(&regs->data[ra_394266]);
				regs->data[ra_394266].Kind = ((NU8) 1);
			}
			LA215: ;
			b = regtonode_392854(regs->data[rb]);
			{
				NIM_BOOL LOC219;
				tnode188803* LOC222;
				LOC219 = 0;
				LOC219 = inset_244013(regs->data[ra_394266].kindU.Node, b);
				if (!!(LOC219)) goto LA220;
				LOC222 = 0;
				LOC222 = copytree_189237(b);
				addson_189207(regs->data[ra_394266].kindU.Node, LOC222);
			}
			LA220: ;
		}
		break;
		case ((NU8) 28):
		{
			NI rb;
			NI rc;
			tnode188803* r;
			tnode188803* LOC228;
			tnode188803* LOC229;
			tnode188803* LOC230;
			rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
			rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
			{
				if (!!((regs->data[ra_394266].Kind == ((NU8) 1)))) goto LA226;
				myreset_391401(&regs->data[ra_394266]);
				regs->data[ra_394266].Kind = ((NU8) 1);
			}
			LA226: ;
			r = newnode_189065(((NU8) 44));
			LOC228 = 0;
			LOC228 = regtonode_392854(regs->data[rb]);
			add_189390(r, LOC228);
			LOC229 = 0;
			LOC229 = regtonode_392854(regs->data[rc]);
			add_189390(r, LOC229);
			LOC230 = 0;
			LOC230 = copytree_189237(r);
			addson_189207(regs->data[ra_394266].kindU.Node, LOC230);
		}
		break;
		case ((NU8) 29):
		{
			NI rb;
			tnode188803* b;
			tnode188803* LOC236;
			tnode188803* r;
			NI i_397257;
			NI HEX3Atmp_409306;
			NI LOC237;
			NI res_409308;
			rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
			{
				if (!!((regs->data[ra_394266].Kind == ((NU8) 1)))) goto LA234;
				myreset_391401(&regs->data[ra_394266]);
				regs->data[ra_394266].Kind = ((NU8) 1);
			}
			LA234: ;
			b = newnodeit_189104(((NU8) 39), (*regs->data[rb].kindU.Node).Info, (*regs->data[rb].kindU.Node).Typ);
			LOC236 = 0;
			LOC236 = regtonode_392854(regs->data[rb]);
			addson_189207(b, LOC236);
			r = diffsets_244038(regs->data[ra_394266].kindU.Node, b);
			discardsons_189260(regs->data[ra_394266].kindU.Node);
			i_397257 = 0;
			HEX3Atmp_409306 = 0;
			LOC237 = 0;
			LOC237 = sonslen_189181(r);
			HEX3Atmp_409306 = (NI32)(LOC237 - 1);
			res_409308 = 0;
			while (1) {
				if (!(res_409308 <= HEX3Atmp_409306)) goto LA238;
				i_397257 = res_409308;
				addson_189207(regs->data[ra_394266].kindU.Node, (*r).kindU.S6.Sons->data[i_397257]);
				res_409308 += 1;
			} LA238: ;
		}
		break;
		case ((NU8) 30):
		{
			NI rb;
			rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
			{
				if (!!((regs->data[ra_394266].Kind == ((NU8) 2)))) goto LA242;
				myreset_391401(&regs->data[ra_394266]);
				regs->data[ra_394266].Kind = ((NU8) 2);
			}
			LA242: ;
			regs->data[ra_394266].kindU.Intval = cardset_244063(regs->data[rb].kindU.Node);
		}
		break;
		case ((NU8) 31):
		{
			NI rb;
			NI rc;
			NI64 bval;
			NI64 cval;
			NI64 product;
			NF floatprod;
			NF resasfloat;
			rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
			rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
			{
				if (!!((regs->data[ra_394266].Kind == ((NU8) 2)))) goto LA247;
				myreset_391401(&regs->data[ra_394266]);
				regs->data[ra_394266].Kind = ((NU8) 2);
			}
			LA247: ;
			bval = regs->data[rb].kindU.Intval;
			cval = regs->data[rc].kindU.Intval;
			product = (NI64)((NU64)(bval) * (NU64)(cval));
			floatprod = ((NF)(((double) (bval))) * (NF)(((double) (cval))));
			resasfloat = ((double) (product));
			{
				if (!(resasfloat == floatprod)) goto LA251;
				regs->data[ra_394266].kindU.Intval = product;
			}
			goto LA249;
			LA251: ;
			{
				if (!(((NF)(3.2000000000000000e+01) * (NF)((((NF)(resasfloat) - (NF)(floatprod)) > 0? (((NF)(resasfloat) - (NF)(floatprod))) : -(((NF)(resasfloat) - (NF)(floatprod)))))) <= (floatprod > 0? (floatprod) : -(floatprod)))) goto LA254;
				regs->data[ra_394266].kindU.Intval = product;
			}
			goto LA249;
			LA254: ;
			{
				stacktrace_391333(c, tos, pc, ((NU16) 76), ((NimStringDesc*) &TMP2571));
			}
			LA249: ;
		}
		break;
		case ((NU8) 32):
		{
			NI rb;
			NI rc;
			rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
			rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
			{
				if (!!((regs->data[ra_394266].Kind == ((NU8) 2)))) goto LA260;
				myreset_391401(&regs->data[ra_394266]);
				regs->data[ra_394266].Kind = ((NU8) 2);
			}
			LA260: ;
			{
				if (!(regs->data[rc].kindU.Intval == 0)) goto LA264;
				stacktrace_391333(c, tos, pc, ((NU16) 73), ((NimStringDesc*) &TMP2571));
			}
			goto LA262;
			LA264: ;
			{
				regs->data[ra_394266].kindU.Intval = (NI64)(regs->data[rb].kindU.Intval / regs->data[rc].kindU.Intval);
			}
			LA262: ;
		}
		break;
		case ((NU8) 33):
		{
			NI rb;
			NI rc;
			rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
			rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
			{
				if (!!((regs->data[ra_394266].Kind == ((NU8) 2)))) goto LA270;
				myreset_391401(&regs->data[ra_394266]);
				regs->data[ra_394266].Kind = ((NU8) 2);
			}
			LA270: ;
			{
				if (!(regs->data[rc].kindU.Intval == 0)) goto LA274;
				stacktrace_391333(c, tos, pc, ((NU16) 73), ((NimStringDesc*) &TMP2571));
			}
			goto LA272;
			LA274: ;
			{
				regs->data[ra_394266].kindU.Intval = (NI64)(regs->data[rb].kindU.Intval % regs->data[rc].kindU.Intval);
			}
			LA272: ;
		}
		break;
		case ((NU8) 34):
		{
			NI rb;
			NI rc;
			rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
			rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
			{
				if (!!((regs->data[ra_394266].Kind == ((NU8) 3)))) goto LA280;
				myreset_391401(&regs->data[ra_394266]);
				regs->data[ra_394266].Kind = ((NU8) 3);
			}
			LA280: ;
			regs->data[ra_394266].kindU.Floatval = ((NF)(regs->data[rb].kindU.Floatval) + (NF)(regs->data[rc].kindU.Floatval));
		}
		break;
		case ((NU8) 35):
		{
			NI rb;
			NI rc;
			rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
			rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
			{
				if (!!((regs->data[ra_394266].Kind == ((NU8) 3)))) goto LA285;
				myreset_391401(&regs->data[ra_394266]);
				regs->data[ra_394266].Kind = ((NU8) 3);
			}
			LA285: ;
			regs->data[ra_394266].kindU.Floatval = ((NF)(regs->data[rb].kindU.Floatval) - (NF)(regs->data[rc].kindU.Floatval));
		}
		break;
		case ((NU8) 36):
		{
			NI rb;
			NI rc;
			rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
			rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
			{
				if (!!((regs->data[ra_394266].Kind == ((NU8) 3)))) goto LA290;
				myreset_391401(&regs->data[ra_394266]);
				regs->data[ra_394266].Kind = ((NU8) 3);
			}
			LA290: ;
			regs->data[ra_394266].kindU.Floatval = ((NF)(regs->data[rb].kindU.Floatval) * (NF)(regs->data[rc].kindU.Floatval));
		}
		break;
		case ((NU8) 37):
		{
			NI rb;
			NI rc;
			rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
			rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
			{
				if (!!((regs->data[ra_394266].Kind == ((NU8) 3)))) goto LA295;
				myreset_391401(&regs->data[ra_394266]);
				regs->data[ra_394266].Kind = ((NU8) 3);
			}
			LA295: ;
			regs->data[ra_394266].kindU.Floatval = ((NF)(regs->data[rb].kindU.Floatval) / (NF)(regs->data[rc].kindU.Floatval));
		}
		break;
		case ((NU8) 38):
		{
			NI rb;
			NI rc;
			rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
			rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
			{
				if (!!((regs->data[ra_394266].Kind == ((NU8) 2)))) goto LA300;
				myreset_391401(&regs->data[ra_394266]);
				regs->data[ra_394266].Kind = ((NU8) 2);
			}
			LA300: ;
			regs->data[ra_394266].kindU.Intval = (NI64)((NU64)(regs->data[rb].kindU.Intval) >> (NU64)(regs->data[rc].kindU.Intval));
		}
		break;
		case ((NU8) 39):
		{
			NI rb;
			NI rc;
			rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
			rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
			{
				if (!!((regs->data[ra_394266].Kind == ((NU8) 2)))) goto LA305;
				myreset_391401(&regs->data[ra_394266]);
				regs->data[ra_394266].Kind = ((NU8) 2);
			}
			LA305: ;
			regs->data[ra_394266].kindU.Intval = (NI64)((NU64)(regs->data[rb].kindU.Intval) << (NU64)(regs->data[rc].kindU.Intval));
		}
		break;
		case ((NU8) 40):
		{
			NI rb;
			NI rc;
			rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
			rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
			{
				if (!!((regs->data[ra_394266].Kind == ((NU8) 2)))) goto LA310;
				myreset_391401(&regs->data[ra_394266]);
				regs->data[ra_394266].Kind = ((NU8) 2);
			}
			LA310: ;
			regs->data[ra_394266].kindU.Intval = (NI64)(regs->data[rb].kindU.Intval & regs->data[rc].kindU.Intval);
		}
		break;
		case ((NU8) 41):
		{
			NI rb;
			NI rc;
			rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
			rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
			{
				if (!!((regs->data[ra_394266].Kind == ((NU8) 2)))) goto LA315;
				myreset_391401(&regs->data[ra_394266]);
				regs->data[ra_394266].Kind = ((NU8) 2);
			}
			LA315: ;
			regs->data[ra_394266].kindU.Intval = (NI64)(regs->data[rb].kindU.Intval | regs->data[rc].kindU.Intval);
		}
		break;
		case ((NU8) 42):
		{
			NI rb;
			NI rc;
			rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
			rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
			{
				if (!!((regs->data[ra_394266].Kind == ((NU8) 2)))) goto LA320;
				myreset_391401(&regs->data[ra_394266]);
				regs->data[ra_394266].Kind = ((NU8) 2);
			}
			LA320: ;
			regs->data[ra_394266].kindU.Intval = (NI64)(regs->data[rb].kindU.Intval ^ regs->data[rc].kindU.Intval);
		}
		break;
		case ((NU8) 43):
		{
			NI rb;
			NI rc;
			rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
			rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
			{
				if (!!((regs->data[ra_394266].Kind == ((NU8) 2)))) goto LA325;
				myreset_391401(&regs->data[ra_394266]);
				regs->data[ra_394266].Kind = ((NU8) 2);
			}
			LA325: ;
			regs->data[ra_394266].kindU.Intval = (NI64)((NU64)(regs->data[rb].kindU.Intval) + (NU64)(regs->data[rc].kindU.Intval));
		}
		break;
		case ((NU8) 44):
		{
			NI rb;
			NI rc;
			rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
			rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
			{
				if (!!((regs->data[ra_394266].Kind == ((NU8) 2)))) goto LA330;
				myreset_391401(&regs->data[ra_394266]);
				regs->data[ra_394266].Kind = ((NU8) 2);
			}
			LA330: ;
			regs->data[ra_394266].kindU.Intval = (NI64)((NU64)(regs->data[rb].kindU.Intval) - (NU64)(regs->data[rc].kindU.Intval));
		}
		break;
		case ((NU8) 45):
		{
			NI rb;
			NI rc;
			rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
			rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
			{
				if (!!((regs->data[ra_394266].Kind == ((NU8) 2)))) goto LA335;
				myreset_391401(&regs->data[ra_394266]);
				regs->data[ra_394266].Kind = ((NU8) 2);
			}
			LA335: ;
			regs->data[ra_394266].kindU.Intval = (NI64)((NU64)(regs->data[rb].kindU.Intval) * (NU64)(regs->data[rc].kindU.Intval));
		}
		break;
		case ((NU8) 46):
		{
			NI rb;
			NI rc;
			rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
			rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
			{
				if (!!((regs->data[ra_394266].Kind == ((NU8) 2)))) goto LA340;
				myreset_391401(&regs->data[ra_394266]);
				regs->data[ra_394266].Kind = ((NU8) 2);
			}
			LA340: ;
			regs->data[ra_394266].kindU.Intval = (NI64)((NU64)(regs->data[rb].kindU.Intval) / (NU64)(regs->data[rc].kindU.Intval));
		}
		break;
		case ((NU8) 47):
		{
			NI rb;
			NI rc;
			rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
			rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
			{
				if (!!((regs->data[ra_394266].Kind == ((NU8) 2)))) goto LA345;
				myreset_391401(&regs->data[ra_394266]);
				regs->data[ra_394266].Kind = ((NU8) 2);
			}
			LA345: ;
			regs->data[ra_394266].kindU.Intval = (NI64)((NU64)(regs->data[rb].kindU.Intval) % (NU64)(regs->data[rc].kindU.Intval));
		}
		break;
		case ((NU8) 48):
		{
			NI rb;
			NI rc;
			rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
			rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
			{
				if (!!((regs->data[ra_394266].Kind == ((NU8) 2)))) goto LA350;
				myreset_391401(&regs->data[ra_394266]);
				regs->data[ra_394266].Kind = ((NU8) 2);
			}
			LA350: ;
			regs->data[ra_394266].kindU.Intval = ((NI64) ((regs->data[rb].kindU.Intval == regs->data[rc].kindU.Intval)));
		}
		break;
		case ((NU8) 49):
		{
			NI rb;
			NI rc;
			rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
			rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
			{
				if (!!((regs->data[ra_394266].Kind == ((NU8) 2)))) goto LA355;
				myreset_391401(&regs->data[ra_394266]);
				regs->data[ra_394266].Kind = ((NU8) 2);
			}
			LA355: ;
			regs->data[ra_394266].kindU.Intval = ((NI64) ((regs->data[rb].kindU.Intval <= regs->data[rc].kindU.Intval)));
		}
		break;
		case ((NU8) 50):
		{
			NI rb;
			NI rc;
			rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
			rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
			{
				if (!!((regs->data[ra_394266].Kind == ((NU8) 2)))) goto LA360;
				myreset_391401(&regs->data[ra_394266]);
				regs->data[ra_394266].Kind = ((NU8) 2);
			}
			LA360: ;
			regs->data[ra_394266].kindU.Intval = ((NI64) ((regs->data[rb].kindU.Intval < regs->data[rc].kindU.Intval)));
		}
		break;
		case ((NU8) 51):
		{
			NI rb;
			NI rc;
			rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
			rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
			{
				if (!!((regs->data[ra_394266].Kind == ((NU8) 2)))) goto LA365;
				myreset_391401(&regs->data[ra_394266]);
				regs->data[ra_394266].Kind = ((NU8) 2);
			}
			LA365: ;
			regs->data[ra_394266].kindU.Intval = ((NI64) ((regs->data[rb].kindU.Floatval == regs->data[rc].kindU.Floatval)));
		}
		break;
		case ((NU8) 52):
		{
			NI rb;
			NI rc;
			rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
			rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
			{
				if (!!((regs->data[ra_394266].Kind == ((NU8) 2)))) goto LA370;
				myreset_391401(&regs->data[ra_394266]);
				regs->data[ra_394266].Kind = ((NU8) 2);
			}
			LA370: ;
			regs->data[ra_394266].kindU.Intval = ((NI64) ((regs->data[rb].kindU.Floatval <= regs->data[rc].kindU.Floatval)));
		}
		break;
		case ((NU8) 53):
		{
			NI rb;
			NI rc;
			rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
			rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
			{
				if (!!((regs->data[ra_394266].Kind == ((NU8) 2)))) goto LA375;
				myreset_391401(&regs->data[ra_394266]);
				regs->data[ra_394266].Kind = ((NU8) 2);
			}
			LA375: ;
			regs->data[ra_394266].kindU.Intval = ((NI64) ((regs->data[rb].kindU.Floatval < regs->data[rc].kindU.Floatval)));
		}
		break;
		case ((NU8) 54):
		{
			NI rb;
			NI rc;
			rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
			rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
			{
				if (!!((regs->data[ra_394266].Kind == ((NU8) 2)))) goto LA380;
				myreset_391401(&regs->data[ra_394266]);
				regs->data[ra_394266].Kind = ((NU8) 2);
			}
			LA380: ;
			regs->data[ra_394266].kindU.Intval = ((NI64) (((NU64)(regs->data[rb].kindU.Intval) <= (NU64)(regs->data[rc].kindU.Intval))));
		}
		break;
		case ((NU8) 55):
		{
			NI rb;
			NI rc;
			rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
			rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
			{
				if (!!((regs->data[ra_394266].Kind == ((NU8) 2)))) goto LA385;
				myreset_391401(&regs->data[ra_394266]);
				regs->data[ra_394266].Kind = ((NU8) 2);
			}
			LA385: ;
			regs->data[ra_394266].kindU.Intval = ((NI64) (((NU64)(regs->data[rb].kindU.Intval) < (NU64)(regs->data[rc].kindU.Intval))));
		}
		break;
		case ((NU8) 56):
		{
			NI rb;
			NI rc;
			NIM_BOOL LOC392;
			NIM_BOOL LOC393;
			rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
			rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
			{
				if (!!((regs->data[ra_394266].Kind == ((NU8) 2)))) goto LA390;
				myreset_391401(&regs->data[ra_394266]);
				regs->data[ra_394266].Kind = ((NU8) 2);
			}
			LA390: ;
			LOC392 = 0;
			LOC393 = 0;
			LOC393 = ((*regs->data[rb].kindU.Node).Kind == ((NU8) 23));
			if (!(LOC393)) goto LA394;
			LOC393 = ((*regs->data[rc].kindU.Node).Kind == ((NU8) 23));
			LA394: ;
			LOC392 = LOC393;
			if (LOC392) goto LA395;
			LOC392 = (regs->data[rb].kindU.Node == regs->data[rc].kindU.Node);
			LA395: ;
			regs->data[ra_394266].kindU.Intval = ((NI64) (LOC392));
		}
		break;
		case ((NU8) 57):
		{
			NI rb;
			NI rc;
			rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
			rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
			{
				if (!!((regs->data[ra_394266].Kind == ((NU8) 2)))) goto LA399;
				myreset_391401(&regs->data[ra_394266]);
				regs->data[ra_394266].Kind = ((NU8) 2);
			}
			LA399: ;
			regs->data[ra_394266].kindU.Intval = ((NI64) ((regs->data[rb].kindU.Node == regs->data[rc].kindU.Node)));
		}
		break;
		case ((NU8) 58):
		{
			NI rb;
			NI rc;
			rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
			rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
			{
				if (!!((regs->data[ra_394266].Kind == ((NU8) 2)))) goto LA404;
				myreset_391401(&regs->data[ra_394266]);
				regs->data[ra_394266].Kind = ((NU8) 2);
			}
			LA404: ;
			regs->data[ra_394266].kindU.Intval = ((NI64) (!((regs->data[rb].kindU.Intval == regs->data[rc].kindU.Intval))));
		}
		break;
		case ((NU8) 59):
		{
			NI rb;
			rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
			{
				if (!!((regs->data[ra_394266].Kind == ((NU8) 2)))) goto LA409;
				myreset_391401(&regs->data[ra_394266]);
				regs->data[ra_394266].Kind = ((NU8) 2);
			}
			LA409: ;
			regs->data[ra_394266].kindU.Intval = (NI64)(1 - regs->data[rb].kindU.Intval);
		}
		break;
		case ((NU8) 60):
		{
			NI rb;
			NI64 val;
			rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
			{
				if (!!((regs->data[ra_394266].Kind == ((NU8) 2)))) goto LA414;
				myreset_391401(&regs->data[ra_394266]);
				regs->data[ra_394266].Kind = ((NU8) 2);
			}
			LA414: ;
			val = regs->data[rb].kindU.Intval;
			{
				if (!!((val == (IL64(-9223372036854775807) - IL64(1))))) goto LA418;
				regs->data[ra_394266].kindU.Intval = -(val);
			}
			goto LA416;
			LA418: ;
			{
				stacktrace_391333(c, tos, pc, ((NU16) 76), ((NimStringDesc*) &TMP2571));
			}
			LA416: ;
		}
		break;
		case ((NU8) 61):
		{
			NI rb;
			rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
			{
				if (!!((regs->data[ra_394266].Kind == ((NU8) 3)))) goto LA424;
				myreset_391401(&regs->data[ra_394266]);
				regs->data[ra_394266].Kind = ((NU8) 3);
			}
			LA424: ;
			regs->data[ra_394266].kindU.Floatval = -(regs->data[rb].kindU.Floatval);
		}
		break;
		case ((NU8) 62):
		{
			NI rb;
			rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
			{
				if (!!((regs->data[ra_394266].Kind == ((NU8) 2)))) goto LA429;
				myreset_391401(&regs->data[ra_394266]);
				regs->data[ra_394266].Kind = ((NU8) 2);
			}
			LA429: ;
			regs->data[ra_394266].kindU.Intval = (NI64)((NU64) ~(regs->data[rb].kindU.Intval));
		}
		break;
		case ((NU8) 63):
		{
			NI rb;
			NI rc;
			rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
			rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
			{
				if (!!((regs->data[ra_394266].Kind == ((NU8) 2)))) goto LA434;
				myreset_391401(&regs->data[ra_394266]);
				regs->data[ra_394266].Kind = ((NU8) 2);
			}
			LA434: ;
			regs->data[ra_394266].kindU.Intval = ((NI64) (eqStrings((*regs->data[rb].kindU.Node).kindU.S3.Strval, (*regs->data[rc].kindU.Node).kindU.S3.Strval)));
		}
		break;
		case ((NU8) 64):
		{
			NI rb;
			NI rc;
			rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
			rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
			{
				if (!!((regs->data[ra_394266].Kind == ((NU8) 2)))) goto LA439;
				myreset_391401(&regs->data[ra_394266]);
				regs->data[ra_394266].Kind = ((NU8) 2);
			}
			LA439: ;
			regs->data[ra_394266].kindU.Intval = ((NI64) ((cmpStrings((*regs->data[rb].kindU.Node).kindU.S3.Strval, (*regs->data[rc].kindU.Node).kindU.S3.Strval) <= 0)));
		}
		break;
		case ((NU8) 65):
		{
			NI rb;
			NI rc;
			rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
			rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
			{
				if (!!((regs->data[ra_394266].Kind == ((NU8) 2)))) goto LA444;
				myreset_391401(&regs->data[ra_394266]);
				regs->data[ra_394266].Kind = ((NU8) 2);
			}
			LA444: ;
			regs->data[ra_394266].kindU.Intval = ((NI64) ((cmpStrings((*regs->data[rb].kindU.Node).kindU.S3.Strval, (*regs->data[rc].kindU.Node).kindU.S3.Strval) < 0)));
		}
		break;
		case ((NU8) 67):
		{
			NI rb;
			NI rc;
			NIM_BOOL LOC451;
			rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
			rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
			{
				if (!!((regs->data[ra_394266].Kind == ((NU8) 2)))) goto LA449;
				myreset_391401(&regs->data[ra_394266]);
				regs->data[ra_394266].Kind = ((NU8) 2);
			}
			LA449: ;
			LOC451 = 0;
			LOC451 = containssets_244053(regs->data[rb].kindU.Node, regs->data[rc].kindU.Node);
			regs->data[ra_394266].kindU.Intval = ((NI64) (LOC451));
		}
		break;
		case ((NU8) 66):
		{
			NI rb;
			NI rc;
			NIM_BOOL LOC457;
			rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
			rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
			{
				if (!!((regs->data[ra_394266].Kind == ((NU8) 2)))) goto LA455;
				myreset_391401(&regs->data[ra_394266]);
				regs->data[ra_394266].Kind = ((NU8) 2);
			}
			LA455: ;
			LOC457 = 0;
			LOC457 = equalsets_244058(regs->data[rb].kindU.Node, regs->data[rc].kindU.Node);
			regs->data[ra_394266].kindU.Intval = ((NI64) (LOC457));
		}
		break;
		case ((NU8) 68):
		{
			NI rb;
			NI rc;
			tnode188803* a;
			tnode188803* b;
			NIM_BOOL LOC463;
			NIM_BOOL LOC465;
			rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
			rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
			{
				if (!!((regs->data[ra_394266].Kind == ((NU8) 2)))) goto LA461;
				myreset_391401(&regs->data[ra_394266]);
				regs->data[ra_394266].Kind = ((NU8) 2);
			}
			LA461: ;
			a = regs->data[rb].kindU.Node;
			b = regs->data[rc].kindU.Node;
			LOC463 = 0;
			LOC463 = containssets_244053(a, b);
			if (!(LOC463)) goto LA464;
			LOC465 = 0;
			LOC465 = equalsets_244058(a, b);
			LOC463 = !(LOC465);
			LA464: ;
			regs->data[ra_394266].kindU.Intval = ((NI64) (LOC463));
		}
		break;
		case ((NU8) 69):
		{
			NI rb;
			NI rc;
			tnode188803* LOC471;
			rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
			rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
			{
				if (!!((regs->data[ra_394266].Kind == ((NU8) 1)))) goto LA469;
				myreset_391401(&regs->data[ra_394266]);
				regs->data[ra_394266].Kind = ((NU8) 1);
			}
			LA469: ;
			LOC471 = 0;
			LOC471 = intersectsets_244043(regs->data[rb].kindU.Node, regs->data[rc].kindU.Node);
			asgnRefNoCycle((void**) &(*regs->data[ra_394266].kindU.Node).kindU.S6.Sons, (*LOC471).kindU.S6.Sons);
		}
		break;
		case ((NU8) 70):
		{
			NI rb;
			NI rc;
			tnode188803* LOC477;
			rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
			rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
			{
				if (!!((regs->data[ra_394266].Kind == ((NU8) 1)))) goto LA475;
				myreset_391401(&regs->data[ra_394266]);
				regs->data[ra_394266].Kind = ((NU8) 1);
			}
			LA475: ;
			LOC477 = 0;
			LOC477 = unionsets_244033(regs->data[rb].kindU.Node, regs->data[rc].kindU.Node);
			asgnRefNoCycle((void**) &(*regs->data[ra_394266].kindU.Node).kindU.S6.Sons, (*LOC477).kindU.S6.Sons);
		}
		break;
		case ((NU8) 71):
		{
			NI rb;
			NI rc;
			tnode188803* LOC483;
			rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
			rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
			{
				if (!!((regs->data[ra_394266].Kind == ((NU8) 1)))) goto LA481;
				myreset_391401(&regs->data[ra_394266]);
				regs->data[ra_394266].Kind = ((NU8) 1);
			}
			LA481: ;
			LOC483 = 0;
			LOC483 = diffsets_244038(regs->data[rb].kindU.Node, regs->data[rc].kindU.Node);
			asgnRefNoCycle((void**) &(*regs->data[ra_394266].kindU.Node).kindU.S6.Sons, (*LOC483).kindU.S6.Sons);
		}
		break;
		case ((NU8) 72):
		{
			NI rb;
			NI rc;
			tnode188803* LOC489;
			rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
			rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
			{
				if (!!((regs->data[ra_394266].Kind == ((NU8) 1)))) goto LA487;
				myreset_391401(&regs->data[ra_394266]);
				regs->data[ra_394266].Kind = ((NU8) 1);
			}
			LA487: ;
			LOC489 = 0;
			LOC489 = symdiffsets_244048(regs->data[rb].kindU.Node, regs->data[rc].kindU.Node);
			asgnRefNoCycle((void**) &(*regs->data[ra_394266].kindU.Node).kindU.S6.Sons, (*LOC489).kindU.S6.Sons);
		}
		break;
		case ((NU8) 73):
		{
			NI rb;
			NI rc;
			NI i_401862;
			NI HEX3Atmp_409438;
			NI HEX3Atmp_409439;
			NI res_409441;
			rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
			rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
			{
				if (!!((regs->data[ra_394266].Kind == ((NU8) 1)))) goto LA493;
				myreset_391401(&regs->data[ra_394266]);
				regs->data[ra_394266].Kind = ((NU8) 1);
			}
			LA493: ;
			asgnRefNoCycle((void**) &regs->data[ra_394266].kindU.Node, newnode_189065(((NU8) 20)));
			{
				NimStringDesc* LOC499;
				if (!(regs->data[rb].Kind == ((NU8) 1))) goto LA497;
				LOC499 = 0;
				LOC499 = (*regs->data[ra_394266].kindU.Node).kindU.S3.Strval; (*regs->data[ra_394266].kindU.Node).kindU.S3.Strval = copyStringRC1((*regs->data[rb].kindU.Node).kindU.S3.Strval);
				if (LOC499) nimGCunrefNoCycle(LOC499);
			}
			goto LA495;
			LA497: ;
			{
				asgnRefNoCycle((void**) &(*regs->data[ra_394266].kindU.Node).kindU.S3.Strval, nimCharToStr(((NIM_CHAR) (((NI) (((NI) (regs->data[rb].kindU.Intval))))))));
			}
			LA495: ;
			i_401862 = 0;
			HEX3Atmp_409438 = 0;
			HEX3Atmp_409439 = 0;
			HEX3Atmp_409438 = (NI32)(((NI) (rb)) + 1);
			HEX3Atmp_409439 = (NI32)(((NI) ((NI32)(((NI) (rb)) + ((NI) (rc))))) - 1);
			res_409441 = ((NI) (HEX3Atmp_409438));
			while (1) {
				NimStringDesc* LOC502;
				if (!(((NI) (res_409441)) <= ((NI) (HEX3Atmp_409439)))) goto LA501;
				i_401862 = res_409441;
				LOC502 = 0;
				{
					if (!(regs->data[i_401862].Kind == ((NU8) 1))) goto LA505;
					LOC502 = copyString((*regs->data[i_401862].kindU.Node).kindU.S3.Strval);
				}
				goto LA503;
				LA505: ;
				{
					LOC502 = nimCharToStr(((NIM_CHAR) (((NI) (((NI) (regs->data[i_401862].kindU.Intval)))))));
				}
				LA503: ;
				(*regs->data[ra_394266].kindU.Node).kindU.S3.Strval = resizeString((*regs->data[ra_394266].kindU.Node).kindU.S3.Strval, LOC502->Sup.len + 0);
appendString((*regs->data[ra_394266].kindU.Node).kindU.S3.Strval, LOC502);
				res_409441 += 1;
			} LA501: ;
		}
		break;
		case ((NU8) 89):
		{
			NI rb;
			rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
			{
				if (!!((regs->data[ra_394266].Kind == ((NU8) 1)))) goto LA511;
				myreset_391401(&regs->data[ra_394266]);
				regs->data[ra_394266].Kind = ((NU8) 1);
			}
			LA511: ;
			createstrkeepnode_391649(&regs->data[ra_394266]);
			(*regs->data[ra_394266].kindU.Node).kindU.S3.Strval = addChar((*regs->data[ra_394266].kindU.Node).kindU.S3.Strval, ((NIM_CHAR) (((NI) (regs->data[rb].kindU.Intval)))));
		}
		break;
		case ((NU8) 90):
		{
			NI rb;
			rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
			{
				if (!!((regs->data[ra_394266].Kind == ((NU8) 1)))) goto LA516;
				myreset_391401(&regs->data[ra_394266]);
				regs->data[ra_394266].Kind = ((NU8) 1);
			}
			LA516: ;
			createstrkeepnode_391649(&regs->data[ra_394266]);
			(*regs->data[ra_394266].kindU.Node).kindU.S3.Strval = resizeString((*regs->data[ra_394266].kindU.Node).kindU.S3.Strval, (*regs->data[rb].kindU.Node).kindU.S3.Strval->Sup.len + 0);
appendString((*regs->data[ra_394266].kindU.Node).kindU.S3.Strval, (*regs->data[rb].kindU.Node).kindU.S3.Strval);
		}
		break;
		case ((NU8) 91):
		{
			NI rb;
			rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
			{
				if (!!((regs->data[ra_394266].Kind == ((NU8) 1)))) goto LA521;
				myreset_391401(&regs->data[ra_394266]);
				regs->data[ra_394266].Kind = ((NU8) 1);
			}
			LA521: ;
			{
				tnode188803* LOC527;
				tnode188803* LOC528;
				if (!((*regs->data[ra_394266].kindU.Node).Kind == ((NU8) 41))) goto LA525;
				LOC527 = 0;
				LOC527 = regtonode_392854(regs->data[rb]);
				LOC528 = 0;
				LOC528 = copytree_189237(LOC527);
				add_189390(regs->data[ra_394266].kindU.Node, LOC528);
			}
			goto LA523;
			LA525: ;
			{
				stacktrace_391333(c, tos, pc, ((NU16) 81), ((NimStringDesc*) &TMP2571));
			}
			LA523: ;
		}
		break;
		case ((NU8) 124):
		{
			NI rb;
			NI i_402222;
			NI HEX3Atmp_409451;
			NI res_409453;
			TY165002 LOC532;
			rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
			i_402222 = 0;
			HEX3Atmp_409451 = 0;
			HEX3Atmp_409451 = (NI32)(((NI) ((NI32)(((NI) (ra_394266)) + ((NI) (rb))))) - 1);
			res_409453 = ((NI) (ra_394266));
			while (1) {
				if (!(((NI) (res_409453)) <= ((NI) (HEX3Atmp_409451)))) goto LA531;
				i_402222 = res_409453;
				write_10463(stdout, (*regs->data[i_402222].kindU.Node).kindU.S3.Strval);
				res_409453 += 1;
			} LA531: ;
			memset((void*)LOC532, 0, sizeof(LOC532));
			LOC532[0] = copyString(((NimStringDesc*) &TMP2571));
			writeln_138205(stdout, LOC532, 1);
		}
		break;
		case ((NU8) 74):
		{
			NI rb;
			NI rc;
			tnode188803* LOC538;
			NIM_BOOL LOC539;
			rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
			rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
			{
				if (!!((regs->data[ra_394266].Kind == ((NU8) 2)))) goto LA536;
				myreset_391401(&regs->data[ra_394266]);
				regs->data[ra_394266].Kind = ((NU8) 2);
			}
			LA536: ;
			LOC538 = 0;
			LOC538 = regtonode_392854(regs->data[rc]);
			LOC539 = 0;
			LOC539 = inset_244013(regs->data[rb].kindU.Node, LOC538);
			regs->data[ra_394266].kindU.Intval = ((NI64) (LOC539));
		}
		break;
		case ((NU8) 82):
		{
			NI rb;
			NI rc;
			NI rd;
			rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
			rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
			{
				if (!!((regs->data[ra_394266].Kind == ((NU8) 1)))) goto LA543;
				myreset_391401(&regs->data[ra_394266]);
				regs->data[ra_394266].Kind = ((NU8) 1);
			}
			LA543: ;
			pc += 1;
			rd = ((NI) ((NU32)((NU32)((NU32)((*c).Code->data[pc]) >> (NU32)(((NU32) 8))) & ((NU32) 255))));
			asgnRefNoCycle((void**) &regs->data[ra_394266].kindU.Node, newnode_189065(((NU8) 20)));
			asgnRefNoCycle((void**) &(*regs->data[ra_394266].kindU.Node).kindU.S3.Strval, copyStrLast((*regs->data[rb].kindU.Node).kindU.S3.Strval, ((NI) (regs->data[rc].kindU.Intval)), ((NI) (regs->data[rd].kindU.Intval))));
		}
		break;
		case ((NU8) 92):
		{
			NI rb;
			NI rc;
			rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
			rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
			{
				NIM_BOOL LOC548;
				tnode188803* LOC549;
				tnode188803* LOC550;
				tnode188803* LOC552;
				tnode188803* LOC553;
				NimStringDesc* LOC556;
				NimStringDesc* LOC557;
				LOC548 = 0;
				LOC549 = 0;
				LOC549 = regtonode_392854(regs->data[rb]);
				LOC550 = 0;
				LOC550 = regtonode_392854(regs->data[ra_394266]);
				LOC548 = levalueconv_261015(LOC549, LOC550);
				if (!(LOC548)) goto LA551;
				LOC552 = 0;
				LOC552 = regtonode_392854(regs->data[ra_394266]);
				LOC553 = 0;
				LOC553 = regtonode_392854(regs->data[rc]);
				LOC548 = levalueconv_261015(LOC552, LOC553);
				LA551: ;
				if (!!(LOC548)) goto LA554;
				LOC556 = 0;
				LOC556 = msgkindtostring_165071(((NU16) 142));
				LOC557 = 0;
				LOC557 = nsuFormatOpenArray(LOC556, TMP2618, 2);
				stacktrace_391333(c, tos, pc, ((NU16) 4), LOC557);
			}
			LA554: ;
		}
		break;
		case ((NU8) 125):
		case ((NU8) 126):
		{
			NI rb;
			NI rc;
			tnode188803* bb;
			NIM_BOOL isclosure;
			tsym188833* prc;
			rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
			rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
			bb = regs->data[rb].kindU.Node;
			isclosure = ((*bb).Kind == ((NU8) 37));
			{
				if (!!(isclosure)) goto LA561;
				prc = (*bb).kindU.S4.Sym;
			}
			goto LA559;
			LA561: ;
			{
				prc = (*(*bb).kindU.S6.Sons->data[0]).kindU.S4.Sym;
			}
			LA559: ;
			{
				if (!(((*prc).Flags &(1<<((((NU8) 5))&31)))!=0)) goto LA566;
				{
					if (!!((((*c).Features &(1<<((((NU8) 1))&7)))!=0))) goto LA570;
					globalerror_165558((*c).Debug->data[pc], ((NU16) 4), ((NimStringDesc*) &TMP2620));
				}
				LA570: ;
				globalerror_165558((*c).Debug->data[pc], ((NU16) 4), ((NimStringDesc*) &TMP2621));
			}
			goto LA564;
			LA566: ;
			{
				NI newpc;
				tstackframe391208* newframe;
				tstackframe391208* LOC588;
				NI i_403099;
				NI HEX3Atmp_409470;
				NI res_409472;
				if (!!(((*prc).Kind == ((NU8) 18)))) goto LA573;
				newpc = compile_394115(c, prc);
				{
					if (!(newpc < pc)) goto LA577;
					{
						if (!((*c).Loopiterations <= 0)) goto LA581;
						{
							if (!(((*c).Features &(1<<((((NU8) 2))&7)))!=0)) goto LA585;
							(*c).Loopiterations = 500000;
						}
						goto LA583;
						LA585: ;
						{
							msgwriteln_164937(((NimStringDesc*) &TMP2609));
							stacktraceaux_391231(c, tos, pc, 100);
							globalerror_165558((*c).Debug->data[pc], ((NU16) 207), ((NimStringDesc*) &TMP2571));
						}
						LA583: ;
					}
					LA581: ;
					(*c).Loopiterations -= 1;
				}
				LA577: ;
				LOC588 = 0;
				LOC588 = (tstackframe391208*) newObj((&NTI391206), sizeof(tstackframe391208));
				asgnRefNoCycle((void**) &(*LOC588).Prc, prc);
				(*LOC588).Comesfrom = pc;
				asgnRef((void**) &(*LOC588).Next, tos);
				newframe = LOC588;
				if ((*newframe).Slots) nimGCunrefNoCycle((*newframe).Slots);
				(*newframe).Slots = (TY391224*) newSeqRC1((&NTI391224), (*prc).Offset);
				{
					NIM_BOOL LOC591;
					NIM_BOOL LOC592;
					tnode188803* LOC596;
					LOC591 = 0;
					LOC592 = 0;
					LOC592 = isemptytype_195210((*(*prc).Typ).Sons->data[0]);
					LOC591 = !(LOC592);
					if (LOC591) goto LA593;
					LOC591 = ((*prc).Kind == ((NU8) 17));
					LA593: ;
					if (!LOC591) goto LA594;
					LOC596 = 0;
					LOC596 = getnullvalue_386003((*(*prc).Typ).Sons->data[0], (*prc).Info);
					putintoreg_392721(&(*newframe).Slots->data[0], LOC596);
				}
				LA594: ;
				i_403099 = 0;
				HEX3Atmp_409470 = 0;
				HEX3Atmp_409470 = (NI32)(((NI) (rc)) - 1);
				res_409472 = 1;
				while (1) {
					if (!(((NI) (res_409472)) <= ((NI) (HEX3Atmp_409470)))) goto LA597;
					i_403099 = res_409472;
					genericAssign((void*)&(*newframe).Slots->data[i_403099], (void*)&regs->data[(NI32)(((NI) (rb)) + ((NI) (i_403099)))], (&NTI391204));
					res_409472 += 1;
				} LA597: ;
				{
					if (!isclosure) goto LA600;
					(*newframe).Slots->data[rc].Kind = ((NU8) 1);
					asgnRefNoCycle((void**) &(*newframe).Slots->data[rc].kindU.Node, (*regs->data[rb].kindU.Node).kindU.S6.Sons->data[1]);
				}
				LA600: ;
				tos = newframe;
				regs = (*newframe).Slots;
				pc = (NI32)(newpc - 1);
			}
			goto LA564;
			LA573: ;
			{
				tsym188833* gensymowner;
				tnode188803* macrocall;
				tnode188803* LOC610;
				NI i_403190;
				NI HEX3Atmp_409473;
				NI res_409475;
				tnode188803* a;
				{
					NIM_BOOL LOC605;
					LOC605 = 0;
					LOC605 = !(((*tos).Next == NIM_NIL));
					if (!(LOC605)) goto LA606;
					LOC605 = !(((*(*tos).Next).Prc == NIM_NIL));
					LA606: ;
					if (!LOC605) goto LA607;
					gensymowner = (*(*tos).Next).Prc;
				}
				goto LA603;
				LA607: ;
				{
					gensymowner = (*c).Module;
				}
				LA603: ;
				macrocall = newnodei_189099(((NU8) 27), (*c).Debug->data[pc]);
				LOC610 = 0;
				LOC610 = newsymnode_189095(prc);
				add_189390(macrocall, LOC610);
				i_403190 = 0;
				HEX3Atmp_409473 = 0;
				HEX3Atmp_409473 = (NI32)(((NI) (rc)) - 1);
				res_409475 = 1;
				while (1) {
					tnode188803* LOC612;
					if (!(((NI) (res_409475)) <= ((NI) (HEX3Atmp_409473)))) goto LA611;
					i_403190 = res_409475;
					LOC612 = 0;
					LOC612 = regtonode_392854(regs->data[(NI32)(((NI) (rb)) + ((NI) (i_403190)))]);
					add_189390(macrocall, LOC612);
					res_409475 += 1;
				} LA611: ;
				a = evaltemplate_390275(macrocall, prc, gensymowner);
				{
					if (!!((regs->data[ra_394266].Kind == ((NU8) 1)))) goto LA615;
					myreset_391401(&regs->data[ra_394266]);
					regs->data[ra_394266].Kind = ((NU8) 1);
				}
				LA615: ;
				asgnRefNoCycle((void**) &regs->data[ra_394266].kindU.Node, a);
			}
			LA564: ;
		}
		break;
		case ((NU8) 132):
		{
			NI rbx;
			rbx = (NI32)((NI32)(((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))))) - 32768) - 1);
			{
				if (!!((regs->data[ra_394266].kindU.Intval == 0))) goto LA620;
				pc += rbx;
			}
			LA620: ;
		}
		break;
		case ((NU8) 133):
		{
			NI rbx;
			rbx = (NI32)((NI32)(((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))))) - 32768) - 1);
			{
				if (!(regs->data[ra_394266].kindU.Intval == 0)) goto LA625;
				pc += rbx;
			}
			LA625: ;
		}
		break;
		case ((NU8) 134):
		{
			NI rbx;
			rbx = (NI32)((NI32)(((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))))) - 32768) - 1);
			pc += rbx;
		}
		break;
		case ((NU8) 135):
		{
			NI rbx;
			rbx = (NI32)((NI32)(((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))))) - 32768) - 1);
			pc += rbx;
			{
				if (!((*c).Loopiterations <= 0)) goto LA631;
				{
					if (!(((*c).Features &(1<<((((NU8) 2))&7)))!=0)) goto LA635;
					(*c).Loopiterations = 500000;
				}
				goto LA633;
				LA635: ;
				{
					msgwriteln_164937(((NimStringDesc*) &TMP2609));
					stacktraceaux_391231(c, tos, pc, 100);
					globalerror_165558((*c).Debug->data[pc], ((NU16) 207), ((NimStringDesc*) &TMP2571));
				}
				LA633: ;
			}
			LA631: ;
			(*c).Loopiterations -= 1;
		}
		break;
		case ((NU8) 136):
		{
			tnode188803* branch;
			NIM_BOOL cond;
			NI j_403401;
			NI HEX3Atmp_409481;
			NI LOC639;
			NI res_409483;
			branch = HEX5BHEX5D_189694((*c).Constants, (NI32)(((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))))) - 32768));
			cond = NIM_FALSE;
			j_403401 = 0;
			HEX3Atmp_409481 = 0;
			LOC639 = 0;
			LOC639 = sonslen_189181(branch);
			HEX3Atmp_409481 = (NI32)(LOC639 - 2);
			res_409483 = 0;
			while (1) {
				if (!(res_409483 <= HEX3Atmp_409481)) goto LA640;
				j_403401 = res_409483;
				{
					tnode188803* LOC643;
					NIM_BOOL LOC644;
					LOC643 = 0;
					LOC643 = regtonode_392854(regs->data[ra_394266]);
					LOC644 = 0;
					LOC644 = overlap_244008(LOC643, (*branch).kindU.S6.Sons->data[j_403401]);
					if (!LOC644) goto LA645;
					cond = NIM_TRUE;
					goto LA640;
				}
				LA645: ;
				res_409483 += 1;
			} LA640: ;
			pc += 1;
			{
				NU32 instr2;
				NI rbx;
				if (!!(cond)) goto LA649;
				instr2 = (*c).Code->data[pc];
				rbx = (NI32)((NI32)(((NI) ((NU32)((NU32)(instr2) >> (NU32)(((NU32) 16))))) - 32768) - 1);
				pc += rbx;
			}
			LA649: ;
		}
		break;
		case ((NU8) 137):
		{
			NI rbx;
			rbx = (NI32)(((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))))) - 32768);
			pushsafepoint_392965(tos, (NI32)(pc + rbx));
		}
		break;
		case ((NU8) 138):
		{
		}
		break;
		case ((NU8) 139):
		{
			popsafepoint_393020(tos);
		}
		break;
		case ((NU8) 140):
		{
			{
				TY393074 LOC659;
				NI newpc;
				tstackframe391208* newtos;
				if (!!(((*c).Currentexceptiona == NIM_NIL))) goto LA657;
				memset((void*)&LOC659, 0, sizeof(LOC659));
				cleanuponexception_393070(c, tos, &LOC659);
				newpc = LOC659.Field0;
				newtos = LOC659.Field1;
				{
					if (!((NI32)(newpc - 1) < 0)) goto LA662;
					bailout_391351(c, tos);
					goto BeforeRet;
				}
				LA662: ;
				pc = (NI32)(newpc - 1);
				{
					if (!!((tos == newtos))) goto LA666;
					tos = newtos;
					regs = (*tos).Slots;
				}
				LA666: ;
			}
			LA657: ;
		}
		break;
		case ((NU8) 127):
		{
			tnode188803* raised;
			TY393074 LOC669;
			NI newpc;
			tstackframe391208* newtos;
			raised = regs->data[ra_394266].kindU.Node;
			asgnRefNoCycle((void**) &(*c).Currentexceptiona, raised);
			(*c).Exceptioninstr = pc;
			memset((void*)&LOC669, 0, sizeof(LOC669));
			cleanuponexception_393070(c, tos, &LOC669);
			newpc = LOC669.Field0;
			newtos = LOC669.Field1;
			{
				if (!((NI32)(pc - 1) < 0)) goto LA672;
				bailout_391351(c, tos);
				goto BeforeRet;
			}
			LA672: ;
			pc = (NI32)(newpc - 1);
			{
				if (!!((tos == newtos))) goto LA676;
				tos = newtos;
				regs = (*tos).Slots;
			}
			LA676: ;
		}
		break;
		case ((NU8) 141):
		{
			ttype188837* typ;
			{
				if (!!((regs->data[ra_394266].Kind == ((NU8) 1)))) goto LA681;
				myreset_391401(&regs->data[ra_394266]);
				regs->data[ra_394266].Kind = ((NU8) 1);
			}
			LA681: ;
			typ = (*c).Types->data[(NI32)(((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))))) - 32768)];
			asgnRefNoCycle((void**) &regs->data[ra_394266].kindU.Node, getnullvalue_386003(typ, (*c).Debug->data[pc]));
			(*regs->data[ra_394266].kindU.Node).Flags |=((NI16)(1)<<((((NU8) 11))%(sizeof(NI16)*8)));
		}
		break;
		case ((NU8) 142):
		{
			ttype188837* typ;
			NU32 instr2;
			NI count;
			NI i_403952;
			NI HEX3Atmp_409491;
			NI res_409493;
			typ = (*c).Types->data[(NI32)(((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))))) - 32768)];
			pc += 1;
			{
				if (!!((regs->data[ra_394266].Kind == ((NU8) 1)))) goto LA686;
				myreset_391401(&regs->data[ra_394266]);
				regs->data[ra_394266].Kind = ((NU8) 1);
			}
			LA686: ;
			instr2 = (*c).Code->data[pc];
			count = ((NI) (regs->data[((NI) ((NU32)((NU32)((NU32)(instr2) >> (NU32)(((NU32) 8))) & ((NU32) 255))))].kindU.Intval));
			asgnRefNoCycle((void**) &regs->data[ra_394266].kindU.Node, newnodei_189099(((NU8) 41), (*c).Debug->data[pc]));
			asgnRefNoCycle((void**) &(*regs->data[ra_394266].kindU.Node).Typ, typ);
			if ((*regs->data[ra_394266].kindU.Node).kindU.S6.Sons) nimGCunrefNoCycle((*regs->data[ra_394266].kindU.Node).kindU.S6.Sons);
			(*regs->data[ra_394266].kindU.Node).kindU.S6.Sons = (tnodeseq188797*) newSeqRC1((&NTI188797), count);
			i_403952 = 0;
			HEX3Atmp_409491 = 0;
			HEX3Atmp_409491 = count - 1;
			res_409493 = 0;
			while (1) {
				if (!(res_409493 <= HEX3Atmp_409491)) goto LA688;
				i_403952 = res_409493;
				asgnRefNoCycle((void**) &(*regs->data[ra_394266].kindU.Node).kindU.S6.Sons->data[i_403952], getnullvalue_386003((*typ).Sons->data[0], (*c).Debug->data[pc]));
				res_409493 += 1;
			} LA688: ;
		}
		break;
		case ((NU8) 131):
		{
			NI rb;
			rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
			{
				if (!!((regs->data[ra_394266].Kind == ((NU8) 1)))) goto LA692;
				myreset_391401(&regs->data[ra_394266]);
				regs->data[ra_394266].Kind = ((NU8) 1);
			}
			LA692: ;
			asgnRefNoCycle((void**) &regs->data[ra_394266].kindU.Node, newnodei_189099(((NU8) 20), (*c).Debug->data[pc]));
			asgnRefNoCycle((void**) &(*regs->data[ra_394266].kindU.Node).kindU.S3.Strval, mnewString(((NI) (regs->data[rb].kindU.Intval))));
		}
		break;
		case ((NU8) 149):
		{
			NI rbx;
			rbx = (NI32)(((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))))) - 32768);
			{
				if (!!((regs->data[ra_394266].Kind == ((NU8) 2)))) goto LA697;
				myreset_391401(&regs->data[ra_394266]);
				regs->data[ra_394266].Kind = ((NU8) 2);
			}
			LA697: ;
			regs->data[ra_394266].kindU.Intval = ((NI64) (rbx));
		}
		break;
		case ((NU8) 143):
		{
			ttype188837* typ;
			{
				if (!!((regs->data[ra_394266].Kind == ((NU8) 1)))) goto LA702;
				myreset_391401(&regs->data[ra_394266]);
				regs->data[ra_394266].Kind = ((NU8) 1);
			}
			LA702: ;
			typ = (*c).Types->data[(NI32)(((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))))) - 32768)];
			asgnRefNoCycle((void**) &regs->data[ra_394266].kindU.Node, getnullvalue_386003(typ, (*c).Debug->data[pc]));
		}
		break;
		case ((NU8) 144):
		{
			ttype188837* typ;
			typ = (*c).Types->data[(NI32)(((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))))) - 32768)];
			{
				ttype188837* LOC707;
				LOC707 = 0;
				LOC707 = skiptypes_192793(typ, IL64(211106233624576));
				if (!((*LOC707).Kind >= ((NU8) 36) && (*LOC707).Kind <= ((NU8) 39))) goto LA708;
				{
					if (!!((regs->data[ra_394266].Kind == ((NU8) 3)))) goto LA712;
					myreset_391401(&regs->data[ra_394266]);
					regs->data[ra_394266].Kind = ((NU8) 3);
				}
				LA712: ;
				regs->data[ra_394266].kindU.Floatval = 0.0;
			}
			goto LA705;
			LA708: ;
			{
				{
					if (!!((regs->data[ra_394266].Kind == ((NU8) 2)))) goto LA717;
					myreset_391401(&regs->data[ra_394266]);
					regs->data[ra_394266].Kind = ((NU8) 2);
				}
				LA717: ;
				regs->data[ra_394266].kindU.Intval = 0;
			}
			LA705: ;
		}
		break;
		case ((NU8) 145):
		{
			NI rb;
			tnode188803* cnst;
			rb = (NI32)(((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))))) - 32768);
			cnst = (*(*c).Constants).kindU.S6.Sons->data[rb];
			{
				NIM_BOOL LOC722;
				LOC722 = 0;
				LOC722 = fitsregister_385046((*cnst).Typ);
				if (!LOC722) goto LA723;
				putintoreg_392721(&regs->data[ra_394266], cnst);
			}
			goto LA720;
			LA723: ;
			{
				{
					if (!!((regs->data[ra_394266].Kind == ((NU8) 1)))) goto LA728;
					myreset_391401(&regs->data[ra_394266]);
					regs->data[ra_394266].Kind = ((NU8) 1);
				}
				LA728: ;
				asgnRefNoCycle((void**) &regs->data[ra_394266].kindU.Node, cnst);
			}
			LA720: ;
		}
		break;
		case ((NU8) 146):
		{
			NI rb;
			tnode188803* cnst;
			rb = (NI32)(((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))))) - 32768);
			cnst = (*(*c).Constants).kindU.S6.Sons->data[rb];
			{
				NIM_BOOL LOC733;
				LOC733 = 0;
				LOC733 = fitsregister_385046((*cnst).Typ);
				if (!LOC733) goto LA734;
				putintoreg_392721(&regs->data[ra_394266], cnst);
			}
			goto LA731;
			LA734: ;
			{
				{
					if (!!((regs->data[ra_394266].Kind == ((NU8) 1)))) goto LA739;
					myreset_391401(&regs->data[ra_394266]);
					regs->data[ra_394266].Kind = ((NU8) 1);
				}
				LA739: ;
				asgnRefNoCycle((void**) &regs->data[ra_394266].kindU.Node, copytree_189237(cnst));
			}
			LA731: ;
		}
		break;
		case ((NU8) 147):
		{
			NI rb;
			rb = (NI32)((NI32)(((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))))) - 32768) - 1);
			{
				if (!!((regs->data[ra_394266].Kind == ((NU8) 1)))) goto LA744;
				myreset_391401(&regs->data[ra_394266]);
				regs->data[ra_394266].Kind = ((NU8) 1);
			}
			LA744: ;
			asgnRefNoCycle((void**) &regs->data[ra_394266].kindU.Node, (*(*c).Globals).kindU.S6.Sons->data[rb]);
		}
		break;
		case ((NU8) 148):
		{
			NI rb;
			rb = (NI32)((NI32)(((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))))) - 32768) - 1);
			{
				if (!!((regs->data[ra_394266].Kind == ((NU8) 5)))) goto LA749;
				myreset_391401(&regs->data[ra_394266]);
				regs->data[ra_394266].Kind = ((NU8) 5);
			}
			LA749: ;
			regs->data[ra_394266].kindU.Nodeaddr = &(*(*c).Globals).kindU.S6.Sons->data[rb];
		}
		break;
		case ((NU8) 75):
		{
			NI rb;
			tnode188803* LOC756;
			rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
			{
				if (!!((regs->data[ra_394266].Kind == ((NU8) 1)))) goto LA754;
				myreset_391401(&regs->data[ra_394266]);
				regs->data[ra_394266].Kind = ((NU8) 1);
			}
			LA754: ;
			asgnRefNoCycle((void**) &regs->data[ra_394266].kindU.Node, newnode_189065(((NU8) 20)));
			LOC756 = 0;
			LOC756 = regtonode_392854(regs->data[rb]);
			asgnRefNoCycle((void**) &(*regs->data[ra_394266].kindU.Node).kindU.S3.Strval, rendertree_211051(LOC756, 4));
		}
		break;
		case ((NU8) 85):
		{
			{
				tnode188803* LOC762;
				NI64 LOC763;
				if (!((25 &(1<<(((*c).Mode)&7)))!=0)) goto LA760;
				message_165584((*c).Debug->data[pc], ((NU16) 264), ((NimStringDesc*) &TMP2571));
				LOC762 = 0;
				LOC762 = regtonode_392854(regs->data[ra_394266]);
				LOC763 = 0;
				LOC763 = getordvalue_223150(LOC762);
				exit(((NI) (LOC763)));
			}
			goto LA758;
			LA760: ;
			{
				tfullreg391204 LOC765;
				memset((void*)&LOC765, 0, sizeof(LOC765));
				memset((void*)&LOC765, 0, sizeof(LOC765));
				LOC765.Kind = ((NU8) 0);
				genericShallowAssign((void*)Result, (void*)&LOC765, (&NTI391204));
				goto BeforeRet;
			}
			LA758: ;
		}
		break;
		case ((NU8) 76):
		{
			NI rb;
			rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
			{
				if (!!((regs->data[ra_394266].Kind == ((NU8) 1)))) goto LA769;
				myreset_391401(&regs->data[ra_394266]);
				regs->data[ra_394266].Kind = ((NU8) 1);
			}
			LA769: ;
			createstrkeepnode_391649(&regs->data[ra_394266]);
			(*regs->data[ra_394266].kindU.Node).kindU.S3.Strval = setLengthStr((*regs->data[ra_394266].kindU.Node).kindU.S3.Strval, ((NI) (regs->data[rb].kindU.Intval)));
		}
		break;
		case ((NU8) 80):
		{
			NI rb;
			NI rc;
			ttype188837* typ;
			NI LOC776;
			rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
			rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
			{
				if (!!((regs->data[ra_394266].Kind == ((NU8) 2)))) goto LA774;
				myreset_391401(&regs->data[ra_394266]);
				regs->data[ra_394266].Kind = ((NU8) 2);
			}
			LA774: ;
			typ = (*c).Types->data[regs->data[rc].kindU.Intval];
			LOC776 = 0;
			LOC776 = inheritancediff_230560((*regs->data[rb].kindU.Node).Typ, typ);
			regs->data[ra_394266].kindU.Intval = ((NI64) ((0 <= LOC776)));
		}
		break;
		case ((NU8) 81):
		{
			NI rb;
			NI rc;
			ttype188837* t1;
			ttype188837* t2;
			NIM_BOOL match;
			rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
			rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
			{
				if (!!((regs->data[ra_394266].Kind == ((NU8) 2)))) goto LA780;
				myreset_391401(&regs->data[ra_394266]);
				regs->data[ra_394266].Kind = ((NU8) 2);
			}
			LA780: ;
			t1 = skiptypes_192793((*regs->data[rb].kindU.Node).Typ, 256);
			t2 = (*c).Types->data[regs->data[rc].kindU.Intval];
			{
				if (!((*t2).Kind == ((NU8) 52))) goto LA784;
				match = NIM_TRUE;
			}
			goto LA782;
			LA784: ;
			{
				match = sametype_228116(t1, t2, 0);
			}
			LA782: ;
			regs->data[ra_394266].kindU.Intval = ((NI64) (match));
		}
		break;
		case ((NU8) 77):
		{
			NI rb;
			NI newlen;
			rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
			{
				if (!!((regs->data[ra_394266].Kind == ((NU8) 1)))) goto LA790;
				myreset_391401(&regs->data[ra_394266]);
				regs->data[ra_394266].Kind = ((NU8) 1);
			}
			LA790: ;
			newlen = ((NI) (regs->data[rb].kindU.Intval));
			{
				if (!regs->data[ra_394266].kindU.Node == 0) goto LA794;
				stacktrace_391333(c, tos, pc, ((NU16) 81), ((NimStringDesc*) &TMP2571));
			}
			goto LA792;
			LA794: ;
			{
				(*regs->data[ra_394266].kindU.Node).kindU.S6.Sons = (tnodeseq188797*) setLengthSeq(&((*regs->data[ra_394266].kindU.Node).kindU.S6.Sons)->Sup, sizeof(tnode188803*), newlen);
			}
			LA792: ;
		}
		break;
		case ((NU8) 78):
		{
			NI rb;
			rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
			{
				if (!(regs->data[ra_394266].Kind == regs->data[rb].Kind)) goto LA800;
				switch (regs->data[ra_394266].Kind) {
				case ((NU8) 0):
				{
				}
				break;
				case ((NU8) 2):
				{
					NI64 LOC804;
					LOC804 = 0;
					LOC804 = regs->data[ra_394266].kindU.Intval;
					regs->data[ra_394266].kindU.Intval = regs->data[rb].kindU.Intval;
					regs->data[rb].kindU.Intval = LOC804;
				}
				break;
				case ((NU8) 3):
				{
					NF LOC806;
					LOC806 = 0;
					LOC806 = regs->data[ra_394266].kindU.Floatval;
					regs->data[ra_394266].kindU.Floatval = regs->data[rb].kindU.Floatval;
					regs->data[rb].kindU.Floatval = LOC806;
				}
				break;
				case ((NU8) 1):
				{
					tnode188803* LOC808;
					LOC808 = 0;
					LOC808 = regs->data[ra_394266].kindU.Node;
					asgnRefNoCycle((void**) &regs->data[ra_394266].kindU.Node, regs->data[rb].kindU.Node);
					asgnRefNoCycle((void**) &regs->data[rb].kindU.Node, LOC808);
				}
				break;
				case ((NU8) 4):
				{
					tfullreg391204* LOC810;
					LOC810 = 0;
					LOC810 = regs->data[ra_394266].kindU.Regaddr;
					regs->data[ra_394266].kindU.Regaddr = regs->data[rb].kindU.Regaddr;
					regs->data[rb].kindU.Regaddr = LOC810;
				}
				break;
				case ((NU8) 5):
				{
					tnode188803** LOC812;
					LOC812 = 0;
					LOC812 = regs->data[ra_394266].kindU.Nodeaddr;
					regs->data[ra_394266].kindU.Nodeaddr = regs->data[rb].kindU.Nodeaddr;
					regs->data[rb].kindU.Nodeaddr = LOC812;
				}
				break;
				}
			}
			goto LA798;
			LA800: ;
			{
				internalerror_165591((*c).Debug->data[pc], ((NimStringDesc*) &TMP2626));
			}
			LA798: ;
		}
		break;
		case ((NU8) 86):
		{
			internalerror_165591((*c).Debug->data[pc], ((NimStringDesc*) &TMP2627));
		}
		break;
		case ((NU8) 87):
		{
			NI rb;
			NI min;
			NI max;
			rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
			{
				if (!!((regs->data[ra_394266].Kind == ((NU8) 2)))) goto LA818;
				myreset_391401(&regs->data[ra_394266]);
				regs->data[ra_394266].Kind = ((NU8) 2);
			}
			LA818: ;
			min = ((NI32)-((NI)((NU32)(1) << (NU32)(((NI) ((NI32)(((NI) (rb)) - 1)))))));
			max = (NI32)((NI)((NU32)(1) << (NU32)(((NI) ((NI32)(((NI) (rb)) - 1))))) - 1);
			{
				NIM_BOOL LOC822;
				NimStringDesc* LOC826;
				NimStringDesc* LOC827;
				LOC822 = 0;
				LOC822 = (regs->data[ra_394266].kindU.Intval < ((NI64) (min)));
				if (LOC822) goto LA823;
				LOC822 = (((NI64) (max)) < regs->data[ra_394266].kindU.Intval);
				LA823: ;
				if (!LOC822) goto LA824;
				LOC826 = 0;
				LOC826 = msgkindtostring_165071(((NU16) 214));
				LOC827 = 0;
				LOC827 = nsuFormatSingleElem(LOC826, ((NimStringDesc*) &TMP2628));
				stacktrace_391333(c, tos, pc, ((NU16) 4), LOC827);
			}
			LA824: ;
		}
		break;
		case ((NU8) 88):
		{
			NI rb;
			rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
			{
				if (!!((regs->data[ra_394266].Kind == ((NU8) 2)))) goto LA831;
				myreset_391401(&regs->data[ra_394266]);
				regs->data[ra_394266].Kind = ((NU8) 2);
			}
			LA831: ;
			regs->data[ra_394266].kindU.Intval = (NI64)(regs->data[ra_394266].kindU.Intval & (NI64)((NI64)((NU64)(1) << (NU64)(((NI64) (rb)))) - 1));
		}
		break;
		case ((NU8) 79):
		{
			NI rb;
			rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
			{
				if (!!((regs->data[ra_394266].Kind == ((NU8) 2)))) goto LA836;
				myreset_391401(&regs->data[ra_394266]);
				regs->data[ra_394266].Kind = ((NU8) 2);
			}
			LA836: ;
			regs->data[ra_394266].kindU.Intval = ((NI64) (((*regs->data[rb].kindU.Node).Kind == ((NU8) 23))));
		}
		break;
		case ((NU8) 150):
		{
			NI rbx;
			rbx = (NI32)(((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))))) - 32768);
			{
				if (!!((regs->data[ra_394266].Kind == ((NU8) 1)))) goto LA841;
				myreset_391401(&regs->data[ra_394266]);
				regs->data[ra_394266].Kind = ((NU8) 1);
			}
			LA841: ;
			asgnRefNoCycle((void**) &regs->data[ra_394266].kindU.Node, copytree_189237((*(*c).Constants).kindU.S6.Sons->data[rbx]));
		}
		break;
		case ((NU8) 128):
		{
			NI rb;
			NI rc;
			NI idx;
			tnode188803* src;
			rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
			rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
			{
				if (!!((regs->data[ra_394266].Kind == ((NU8) 1)))) goto LA846;
				myreset_391401(&regs->data[ra_394266]);
				regs->data[ra_394266].Kind = ((NU8) 1);
			}
			LA846: ;
			idx = ((NI) (regs->data[rc].kindU.Intval));
			src = regs->data[rb].kindU.Node;
			{
				NIM_BOOL LOC850;
				NI LOC852;
				LOC850 = 0;
				LOC850 = !(((*src).Kind >= ((NU8) 1) && (*src).Kind <= ((NU8) 23)));
				if (!(LOC850)) goto LA851;
				LOC852 = 0;
				LOC852 = len_189264(src);
				LOC850 = ((NU32)(idx) < (NU32)(LOC852));
				LA851: ;
				if (!LOC850) goto LA853;
				asgnRefNoCycle((void**) &regs->data[ra_394266].kindU.Node, (*src).kindU.S6.Sons->data[idx]);
			}
			goto LA848;
			LA853: ;
			{
				stacktrace_391333(c, tos, pc, ((NU16) 82), ((NimStringDesc*) &TMP2571));
			}
			LA848: ;
		}
		break;
		case ((NU8) 129):
		{
			NI rb;
			NI rc;
			NI idx;
			tnode188803* dest;
			rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
			rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
			{
				if (!!((regs->data[ra_394266].Kind == ((NU8) 1)))) goto LA859;
				myreset_391401(&regs->data[ra_394266]);
				regs->data[ra_394266].Kind = ((NU8) 1);
			}
			LA859: ;
			idx = ((NI) (regs->data[rb].kindU.Intval));
			dest = regs->data[ra_394266].kindU.Node;
			{
				NIM_BOOL LOC863;
				NI LOC865;
				LOC863 = 0;
				LOC863 = !(((*dest).Kind >= ((NU8) 1) && (*dest).Kind <= ((NU8) 23)));
				if (!(LOC863)) goto LA864;
				LOC865 = 0;
				LOC865 = len_189264(dest);
				LOC863 = ((NU32)(idx) < (NU32)(LOC865));
				LA864: ;
				if (!LOC863) goto LA866;
				asgnRefNoCycle((void**) &(*dest).kindU.S6.Sons->data[idx], regs->data[rc].kindU.Node);
			}
			goto LA861;
			LA866: ;
			{
				stacktrace_391333(c, tos, pc, ((NU16) 82), ((NimStringDesc*) &TMP2571));
			}
			LA861: ;
		}
		break;
		case ((NU8) 93):
		{
			NI rb;
			NI rc;
			tnode188803* u;
			rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
			rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
			{
				if (!!((regs->data[ra_394266].Kind == ((NU8) 1)))) goto LA872;
				myreset_391401(&regs->data[ra_394266]);
				regs->data[ra_394266].Kind = ((NU8) 1);
			}
			LA872: ;
			u = regs->data[rb].kindU.Node;
			add_189390(u, regs->data[rc].kindU.Node);
			asgnRefNoCycle((void**) &regs->data[ra_394266].kindU.Node, u);
		}
		break;
		case ((NU8) 94):
		{
			NI rb;
			NI rc;
			tnode188803* x;
			tnode188803* u;
			NI i_405814;
			NI HEX3Atmp_409538;
			NI LOC879;
			NI res_409540;
			rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
			rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
			{
				if (!!((regs->data[ra_394266].Kind == ((NU8) 1)))) goto LA877;
				myreset_391401(&regs->data[ra_394266]);
				regs->data[ra_394266].Kind = ((NU8) 1);
			}
			LA877: ;
			x = regs->data[rc].kindU.Node;
			u = regs->data[rb].kindU.Node;
			i_405814 = 0;
			HEX3Atmp_409538 = 0;
			LOC879 = 0;
			LOC879 = len_189264(x);
			HEX3Atmp_409538 = LOC879 - 1;
			res_409540 = 0;
			while (1) {
				if (!(res_409540 <= HEX3Atmp_409538)) goto LA880;
				i_405814 = res_409540;
				add_189390(u, (*x).kindU.S6.Sons->data[i_405814]);
				res_409540 += 1;
			} LA880: ;
			asgnRefNoCycle((void**) &regs->data[ra_394266].kindU.Node, u);
		}
		break;
		case ((NU8) 95):
		{
			NI rb;
			rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
			{
				if (!!((regs->data[ra_394266].Kind == ((NU8) 2)))) goto LA884;
				myreset_391401(&regs->data[ra_394266]);
				regs->data[ra_394266].Kind = ((NU8) 2);
			}
			LA884: ;
			regs->data[ra_394266].kindU.Intval = ((NI64) ((*regs->data[rb].kindU.Node).Kind));
		}
		break;
		case ((NU8) 96):
		{
			NI rb;
			tnode188803* a;
			rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
			{
				if (!!((regs->data[ra_394266].Kind == ((NU8) 2)))) goto LA889;
				myreset_391401(&regs->data[ra_394266]);
				regs->data[ra_394266].Kind = ((NU8) 2);
			}
			LA889: ;
			a = regs->data[rb].kindU.Node;
			switch ((*a).Kind) {
			case ((NU8) 5) ... ((NU8) 10):
			{
				regs->data[ra_394266].kindU.Intval = (*a).kindU.S1.Intval;
			}
			break;
			default:
			{
				stacktrace_391333(c, tos, pc, ((NU16) 209), ((NimStringDesc*) &TMP2629));
			}
			break;
			}
		}
		break;
		case ((NU8) 97):
		{
			NI rb;
			tnode188803* a;
			rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
			{
				if (!!((regs->data[ra_394266].Kind == ((NU8) 3)))) goto LA896;
				myreset_391401(&regs->data[ra_394266]);
				regs->data[ra_394266].Kind = ((NU8) 3);
			}
			LA896: ;
			a = regs->data[rb].kindU.Node;
			switch ((*a).Kind) {
			case ((NU8) 16) ... ((NU8) 18):
			{
				regs->data[ra_394266].kindU.Floatval = (*a).kindU.S2.Floatval;
			}
			break;
			default:
			{
				stacktrace_391333(c, tos, pc, ((NU16) 209), ((NimStringDesc*) &TMP2630));
			}
			break;
			}
		}
		break;
		case ((NU8) 98):
		{
			NI rb;
			tnode188803* a;
			rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
			{
				if (!!((regs->data[ra_394266].Kind == ((NU8) 1)))) goto LA903;
				myreset_391401(&regs->data[ra_394266]);
				regs->data[ra_394266].Kind = ((NU8) 1);
			}
			LA903: ;
			a = regs->data[rb].kindU.Node;
			{
				if (!((*a).Kind == ((NU8) 3))) goto LA907;
				asgnRefNoCycle((void**) &regs->data[ra_394266].kindU.Node, copynode_189233(a));
			}
			goto LA905;
			LA907: ;
			{
				stacktrace_391333(c, tos, pc, ((NU16) 209), ((NimStringDesc*) &TMP2631));
			}
			LA905: ;
		}
		break;
		case ((NU8) 99):
		{
			NI rb;
			tnode188803* a;
			rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
			{
				if (!!((regs->data[ra_394266].Kind == ((NU8) 1)))) goto LA913;
				myreset_391401(&regs->data[ra_394266]);
				regs->data[ra_394266].Kind = ((NU8) 1);
			}
			LA913: ;
			a = regs->data[rb].kindU.Node;
			{
				if (!((*a).Kind == ((NU8) 2))) goto LA917;
				asgnRefNoCycle((void**) &regs->data[ra_394266].kindU.Node, copynode_189233(a));
			}
			goto LA915;
			LA917: ;
			{
				stacktrace_391333(c, tos, pc, ((NU16) 209), ((NimStringDesc*) &TMP2632));
			}
			LA915: ;
		}
		break;
		case ((NU8) 100):
		{
			NimStringDesc* LOC921;
			LOC921 = 0;
			LOC921 = rawNewString(reprEnum(((NU8) ((NU32)(instr & ((NU32) 255)))), (&NTI249021))->Sup.len + 15);
appendString(LOC921, ((NimStringDesc*) &TMP2633));
appendString(LOC921, reprEnum(((NU8) ((NU32)(instr & ((NU32) 255)))), (&NTI249021)));
			internalerror_165591((*c).Debug->data[pc], LOC921);
		}
		break;
		case ((NU8) 101):
		{
			NI rb;
			tnode188803* a;
			rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
			{
				if (!!((regs->data[ra_394266].Kind == ((NU8) 1)))) goto LA925;
				myreset_391401(&regs->data[ra_394266]);
				regs->data[ra_394266].Kind = ((NU8) 1);
			}
			LA925: ;
			asgnRefNoCycle((void**) &regs->data[ra_394266].kindU.Node, newnode_189065(((NU8) 20)));
			a = regs->data[rb].kindU.Node;
			{
				NimStringDesc* LOC931;
				if (!((*a).Kind >= ((NU8) 20) && (*a).Kind <= ((NU8) 22))) goto LA929;
				LOC931 = 0;
				LOC931 = (*regs->data[ra_394266].kindU.Node).kindU.S3.Strval; (*regs->data[ra_394266].kindU.Node).kindU.S3.Strval = copyStringRC1((*a).kindU.S3.Strval);
				if (LOC931) nimGCunrefNoCycle(LOC931);
			}
			goto LA927;
			LA929: ;
			{
				stacktrace_391333(c, tos, pc, ((NU16) 209), ((NimStringDesc*) &TMP2637));
			}
			LA927: ;
		}
		break;
		case ((NU8) 113):
		{
			NI rb;
			rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
			{
				if (!!((regs->data[ra_394266].Kind == ((NU8) 1)))) goto LA936;
				myreset_391401(&regs->data[ra_394266]);
				regs->data[ra_394266].Kind = ((NU8) 1);
			}
			LA936: ;
			asgnRefNoCycle((void**) &regs->data[ra_394266].kindU.Node, newnode_189065(((NU8) 20)));
			asgnRefNoCycle((void**) &(*regs->data[ra_394266].kindU.Node).kindU.S3.Strval, opslurp_389022((*regs->data[rb].kindU.Node).kindU.S3.Strval, (*c).Debug->data[pc], (*c).Module));
		}
		break;
		case ((NU8) 114):
		{
			NI rb;
			NI rc;
			rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
			rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
			{
				if (!!((regs->data[ra_394266].Kind == ((NU8) 1)))) goto LA941;
				myreset_391401(&regs->data[ra_394266]);
				regs->data[ra_394266].Kind = ((NU8) 1);
			}
			LA941: ;
			asgnRefNoCycle((void**) &regs->data[ra_394266].kindU.Node, newnode_189065(((NU8) 20)));
			asgnRefNoCycle((void**) &(*regs->data[ra_394266].kindU.Node).kindU.S3.Strval, opgorge_389014((*regs->data[rb].kindU.Node).kindU.S3.Strval, (*regs->data[rc].kindU.Node).kindU.S3.Strval));
		}
		break;
		case ((NU8) 117):
		{
			stacktrace_391333(c, tos, pc, ((NU16) 229), (*regs->data[ra_394266].kindU.Node).kindU.S3.Strval);
		}
		break;
		case ((NU8) 118):
		{
			message_165584((*c).Debug->data[pc], ((NU16) 256), (*regs->data[ra_394266].kindU.Node).kindU.S3.Strval);
		}
		break;
		case ((NU8) 119):
		{
			message_165584((*c).Debug->data[pc], ((NU16) 272), (*regs->data[ra_394266].kindU.Node).kindU.S3.Strval);
		}
		break;
		case ((NU8) 115):
		{
			NI rb;
			tnode188803* ast;
			NimStringDesc* LOC951;
			rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
			{
				if (!!((regs->data[ra_394266].Kind == ((NU8) 1)))) goto LA949;
				myreset_391401(&regs->data[ra_394266]);
				regs->data[ra_394266].Kind = ((NU8) 1);
			}
			LA949: ;
			LOC951 = 0;
			LOC951 = tofilename_164780((*c).Debug->data[pc].Fileindex);
			ast = parsestring_205227((*regs->data[rb].kindU.Node).kindU.S3.Strval, LOC951, ((NI) ((*c).Debug->data[pc].Line)));
			{
				NI LOC954;
				LOC954 = 0;
				LOC954 = sonslen_189181(ast);
				if (!!((LOC954 == 1))) goto LA955;
				globalerror_165558((*c).Debug->data[pc], ((NU16) 60), ((NimStringDesc*) &TMP2657));
			}
			LA955: ;
			asgnRefNoCycle((void**) &regs->data[ra_394266].kindU.Node, (*ast).kindU.S6.Sons->data[0]);
		}
		break;
		case ((NU8) 116):
		{
			NI rb;
			tnode188803* ast;
			NimStringDesc* LOC962;
			rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
			{
				if (!!((regs->data[ra_394266].Kind == ((NU8) 1)))) goto LA960;
				myreset_391401(&regs->data[ra_394266]);
				regs->data[ra_394266].Kind = ((NU8) 1);
			}
			LA960: ;
			LOC962 = 0;
			LOC962 = tofilename_164780((*c).Debug->data[pc].Fileindex);
			ast = parsestring_205227((*regs->data[rb].kindU.Node).kindU.S3.Strval, LOC962, ((NI) ((*c).Debug->data[pc].Line)));
			asgnRefNoCycle((void**) &regs->data[ra_394266].kindU.Node, ast);
		}
		break;
		case ((NU8) 130):
		{
			{
				if (!!((regs->data[ra_394266].Kind == ((NU8) 1)))) goto LA966;
				myreset_391401(&regs->data[ra_394266]);
				regs->data[ra_394266].Kind = ((NU8) 1);
			}
			LA966: ;
			{
				if (!!(((*c).Callsite == NIM_NIL))) goto LA970;
				asgnRefNoCycle((void**) &regs->data[ra_394266].kindU.Node, (*c).Callsite);
			}
			goto LA968;
			LA970: ;
			{
				stacktrace_391333(c, tos, pc, ((NU16) 209), ((NimStringDesc*) &TMP2658));
			}
			LA968: ;
		}
		break;
		case ((NU8) 120):
		{
			NI rb;
			tnode188803* n;
			rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
			{
				if (!!((regs->data[ra_394266].Kind == ((NU8) 1)))) goto LA976;
				myreset_391401(&regs->data[ra_394266]);
				regs->data[ra_394266].Kind = ((NU8) 1);
			}
			LA976: ;
			n = regs->data[rb].kindU.Node;
			asgnRefNoCycle((void**) &regs->data[ra_394266].kindU.Node, newnode_189065(((NU8) 20)));
			asgnRefNoCycle((void**) &(*regs->data[ra_394266].kindU.Node).kindU.S3.Strval, tofilelinecol_164830((*n).Info));
			(*regs->data[ra_394266].kindU.Node).Info = (*c).Debug->data[pc];
		}
		break;
		case ((NU8) 121):
		{
			NI rb;
			NI rc;
			rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
			rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
			{
				if (!!((regs->data[ra_394266].Kind == ((NU8) 2)))) goto LA981;
				myreset_391401(&regs->data[ra_394266]);
				regs->data[ra_394266].Kind = ((NU8) 2);
			}
			LA981: ;
			{
				NIM_BOOL LOC985;
				LOC985 = 0;
				LOC985 = ((*regs->data[rb].kindU.Node).Kind == ((NU8) 2));
				if (!(LOC985)) goto LA986;
				LOC985 = ((*regs->data[rc].kindU.Node).Kind == ((NU8) 2));
				LA986: ;
				if (!LOC985) goto LA987;
				regs->data[ra_394266].kindU.Intval = ((NI64) (((*(*regs->data[rb].kindU.Node).kindU.S5.Ident).Sup.Id == (*(*regs->data[rc].kindU.Node).kindU.S5.Ident).Sup.Id)));
			}
			goto LA983;
			LA987: ;
			{
				regs->data[ra_394266].kindU.Intval = 0;
			}
			LA983: ;
		}
		break;
		case ((NU8) 122):
		{
			NI rb;
			rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
			{
				if (!!((regs->data[ra_394266].Kind == ((NU8) 1)))) goto LA993;
				myreset_391401(&regs->data[ra_394266]);
				regs->data[ra_394266].Kind = ((NU8) 1);
			}
			LA993: ;
			{
				if (!!(((*regs->data[rb].kindU.Node).Kind >= ((NU8) 20) && (*regs->data[rb].kindU.Node).Kind <= ((NU8) 22)))) goto LA997;
				stacktrace_391333(c, tos, pc, ((NU16) 209), ((NimStringDesc*) &TMP2637));
			}
			goto LA995;
			LA997: ;
			{
				asgnRefNoCycle((void**) &regs->data[ra_394266].kindU.Node, newnodei_189099(((NU8) 2), (*c).Debug->data[pc]));
				asgnRefNoCycle((void**) &(*regs->data[ra_394266].kindU.Node).kindU.S5.Ident, getident_167456((*regs->data[rb].kindU.Node).kindU.S3.Strval));
			}
			LA995: ;
		}
		break;
		case ((NU8) 123):
		{
			NI rb;
			tnode188803* a;
			rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
			{
				if (!!((regs->data[ra_394266].Kind == ((NU8) 1)))) goto LA1003;
				myreset_391401(&regs->data[ra_394266]);
				regs->data[ra_394266].Kind = ((NU8) 1);
			}
			LA1003: ;
			a = regs->data[rb].kindU.Node;
			asgnRefNoCycle((void**) &regs->data[ra_394266].kindU.Node, newnode_189065(((NU8) 20)));
			(*regs->data[ra_394266].kindU.Node).Info = (*c).Debug->data[pc];
			{
				NimStringDesc* LOC1009;
				if (!((*a).Kind == ((NU8) 3))) goto LA1007;
				LOC1009 = 0;
				LOC1009 = (*regs->data[ra_394266].kindU.Node).kindU.S3.Strval; (*regs->data[ra_394266].kindU.Node).kindU.S3.Strval = copyStringRC1((*(*(*a).kindU.S4.Sym).Name).S);
				if (LOC1009) nimGCunrefNoCycle(LOC1009);
			}
			goto LA1005;
			LA1007: ;
			{
				NimStringDesc* LOC1013;
				if (!((*a).Kind == ((NU8) 2))) goto LA1011;
				LOC1013 = 0;
				LOC1013 = (*regs->data[ra_394266].kindU.Node).kindU.S3.Strval; (*regs->data[ra_394266].kindU.Node).kindU.S3.Strval = copyStringRC1((*(*a).kindU.S5.Ident).S);
				if (LOC1013) nimGCunrefNoCycle(LOC1013);
			}
			goto LA1005;
			LA1011: ;
			{
				stacktrace_391333(c, tos, pc, ((NU16) 209), ((NimStringDesc*) &TMP2632));
			}
			LA1005: ;
		}
		break;
		case ((NU8) 151):
		{
			{
				if (!!((regs->data[ra_394266].Kind == ((NU8) 1)))) goto LA1018;
				internalerror_165591((*c).Debug->data[pc], ((NimStringDesc*) &TMP2662));
			}
			LA1018: ;
			asgnRefNoCycle((void**) &(*regs->data[ra_394266].kindU.Node).Typ, (*c).Types->data[(NI32)(((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))))) - 32768)]);
		}
		break;
		case ((NU8) 83):
		{
			NI rb;
			ttype188837* desttyp;
			ttype188837* srctyp;
			rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
			pc += 1;
			desttyp = (*c).Types->data[(NI32)(((NI) ((NU32)((NU32)((*c).Code->data[pc]) >> (NU32)(((NU32) 16))))) - 32768)];
			pc += 1;
			srctyp = (*c).Types->data[(NI32)(((NI) ((NU32)((NU32)((*c).Code->data[pc]) >> (NU32)(((NU32) 16))))) - 32768)];
			{
				NIM_BOOL LOC1023;
				NimStringDesc* LOC1026;
				TY137892 LOC1027;
				NimStringDesc* LOC1028;
				LOC1023 = 0;
				LOC1023 = opconv_393341(&regs->data[ra_394266], regs->data[rb], desttyp, srctyp);
				if (!LOC1023) goto LA1024;
				LOC1026 = 0;
				LOC1026 = msgkindtostring_165071(((NU16) 142));
				memset((void*)LOC1027, 0, sizeof(LOC1027));
				LOC1027[0] = typetostring_223020(srctyp, ((NU8) 0));
				LOC1027[1] = typetostring_223020(desttyp, ((NU8) 0));
				LOC1028 = 0;
				LOC1028 = nsuFormatOpenArray(LOC1026, LOC1027, 2);
				stacktrace_391333(c, tos, pc, ((NU16) 4), LOC1028);
			}
			LA1024: ;
		}
		break;
		case ((NU8) 84):
		{
			NI rb;
			ttype188837* desttyp;
			ttype188837* srctyp;
			rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
			pc += 1;
			desttyp = (*c).Types->data[(NI32)(((NI) ((NU32)((NU32)((*c).Code->data[pc]) >> (NU32)(((NU32) 16))))) - 32768)];
			pc += 1;
			srctyp = (*c).Types->data[(NI32)(((NI) ((NU32)((NU32)((*c).Code->data[pc]) >> (NU32)(((NU32) 16))))) - 32768)];
			globalerror_165565((*c).Debug->data[pc], ((NimStringDesc*) &TMP2667));
		}
		break;
		case ((NU8) 102):
		{
			NI rb;
			tnode188803* dest;
			rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
			{
				if (!!((regs->data[ra_394266].Kind == ((NU8) 1)))) goto LA1033;
				myreset_391401(&regs->data[ra_394266]);
				regs->data[ra_394266].Kind = ((NU8) 1);
			}
			LA1033: ;
			dest = regs->data[ra_394266].kindU.Node;
			{
				NIM_BOOL LOC1037;
				LOC1037 = 0;
				LOC1037 = ((*dest).Kind >= ((NU8) 5) && (*dest).Kind <= ((NU8) 10));
				if (!(LOC1037)) goto LA1038;
				LOC1037 = ((4 &(1<<((regs->data[rb].Kind)&7)))!=0);
				LA1038: ;
				if (!LOC1037) goto LA1039;
				(*dest).kindU.S1.Intval = regs->data[rb].kindU.Intval;
			}
			goto LA1035;
			LA1039: ;
			{
				stacktrace_391333(c, tos, pc, ((NU16) 209), ((NimStringDesc*) &TMP2629));
			}
			LA1035: ;
		}
		break;
		case ((NU8) 103):
		{
			NI rb;
			tnode188803* dest;
			rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
			{
				if (!!((regs->data[ra_394266].Kind == ((NU8) 1)))) goto LA1045;
				myreset_391401(&regs->data[ra_394266]);
				regs->data[ra_394266].Kind = ((NU8) 1);
			}
			LA1045: ;
			dest = regs->data[ra_394266].kindU.Node;
			{
				NIM_BOOL LOC1049;
				LOC1049 = 0;
				LOC1049 = ((*dest).Kind >= ((NU8) 16) && (*dest).Kind <= ((NU8) 18));
				if (!(LOC1049)) goto LA1050;
				LOC1049 = ((8 &(1<<((regs->data[rb].Kind)&7)))!=0);
				LA1050: ;
				if (!LOC1049) goto LA1051;
				(*dest).kindU.S2.Floatval = regs->data[rb].kindU.Floatval;
			}
			goto LA1047;
			LA1051: ;
			{
				stacktrace_391333(c, tos, pc, ((NU16) 209), ((NimStringDesc*) &TMP2630));
			}
			LA1047: ;
		}
		break;
		case ((NU8) 104):
		{
			NI rb;
			tnode188803* dest;
			rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
			{
				if (!!((regs->data[ra_394266].Kind == ((NU8) 1)))) goto LA1057;
				myreset_391401(&regs->data[ra_394266]);
				regs->data[ra_394266].Kind = ((NU8) 1);
			}
			LA1057: ;
			dest = regs->data[ra_394266].kindU.Node;
			{
				NIM_BOOL LOC1061;
				LOC1061 = 0;
				LOC1061 = ((*dest).Kind == ((NU8) 3));
				if (!(LOC1061)) goto LA1062;
				LOC1061 = ((*regs->data[rb].kindU.Node).Kind == ((NU8) 3));
				LA1062: ;
				if (!LOC1061) goto LA1063;
				asgnRefNoCycle((void**) &(*dest).kindU.S4.Sym, (*regs->data[rb].kindU.Node).kindU.S4.Sym);
			}
			goto LA1059;
			LA1063: ;
			{
				stacktrace_391333(c, tos, pc, ((NU16) 209), ((NimStringDesc*) &TMP2631));
			}
			LA1059: ;
		}
		break;
		case ((NU8) 105):
		{
			NI rb;
			tnode188803* dest;
			rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
			{
				if (!!((regs->data[ra_394266].Kind == ((NU8) 1)))) goto LA1069;
				myreset_391401(&regs->data[ra_394266]);
				regs->data[ra_394266].Kind = ((NU8) 1);
			}
			LA1069: ;
			dest = regs->data[ra_394266].kindU.Node;
			{
				NIM_BOOL LOC1073;
				LOC1073 = 0;
				LOC1073 = ((*dest).Kind == ((NU8) 2));
				if (!(LOC1073)) goto LA1074;
				LOC1073 = ((*regs->data[rb].kindU.Node).Kind == ((NU8) 2));
				LA1074: ;
				if (!LOC1073) goto LA1075;
				asgnRefNoCycle((void**) &(*dest).kindU.S5.Ident, (*regs->data[rb].kindU.Node).kindU.S5.Ident);
			}
			goto LA1071;
			LA1075: ;
			{
				stacktrace_391333(c, tos, pc, ((NU16) 209), ((NimStringDesc*) &TMP2632));
			}
			LA1071: ;
		}
		break;
		case ((NU8) 106):
		{
			NI rb;
			tnode188803* b;
			rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
			{
				if (!!((regs->data[ra_394266].Kind == ((NU8) 1)))) goto LA1081;
				myreset_391401(&regs->data[ra_394266]);
				regs->data[ra_394266].Kind = ((NU8) 1);
			}
			LA1081: ;
			b = regs->data[rb].kindU.Node;
			{
				NIM_BOOL LOC1085;
				NimStringDesc* LOC1089;
				LOC1085 = 0;
				LOC1085 = ((*b).Kind == ((NU8) 3));
				if (!(LOC1085)) goto LA1086;
				LOC1085 = ((*(*b).kindU.S4.Sym).Kind == ((NU8) 7));
				LA1086: ;
				if (!!(LOC1085)) goto LA1087;
				LOC1089 = 0;
				LOC1089 = HEX24_165714(TMP2668);
				internalerror_165606(LOC1089);
			}
			LA1087: ;
			{
				NimStringDesc* LOC1094;
				if (!!(!((regs->data[ra_394266].kindU.Node == NIM_NIL)))) goto LA1092;
				LOC1094 = 0;
				LOC1094 = HEX24_165714(TMP2670);
				internalerror_165606(LOC1094);
			}
			LA1092: ;
			asgnRefNoCycle((void**) &(*regs->data[ra_394266].kindU.Node).Typ, (*(*b).kindU.S4.Sym).Typ);
		}
		break;
		case ((NU8) 107):
		{
			NI rb;
			tnode188803* dest;
			rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
			{
				if (!!((regs->data[ra_394266].Kind == ((NU8) 1)))) goto LA1098;
				myreset_391401(&regs->data[ra_394266]);
				regs->data[ra_394266].Kind = ((NU8) 1);
			}
			LA1098: ;
			dest = regs->data[ra_394266].kindU.Node;
			{
				NIM_BOOL LOC1102;
				NimStringDesc* LOC1106;
				LOC1102 = 0;
				LOC1102 = ((*dest).Kind >= ((NU8) 20) && (*dest).Kind <= ((NU8) 22));
				if (!(LOC1102)) goto LA1103;
				LOC1102 = ((2 &(1<<((regs->data[rb].Kind)&7)))!=0);
				LA1103: ;
				if (!LOC1102) goto LA1104;
				LOC1106 = 0;
				LOC1106 = (*dest).kindU.S3.Strval; (*dest).kindU.S3.Strval = copyStringRC1((*regs->data[rb].kindU.Node).kindU.S3.Strval);
				if (LOC1106) nimGCunrefNoCycle(LOC1106);
			}
			goto LA1100;
			LA1104: ;
			{
				stacktrace_391333(c, tos, pc, ((NU16) 209), ((NimStringDesc*) &TMP2637));
			}
			LA1100: ;
		}
		break;
		case ((NU8) 108):
		{
			NI rb;
			NI rc;
			NI64 k;
			tnode188803* cc;
			tlineinfo163527 LOC1119;
			rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
			rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
			{
				if (!!((regs->data[ra_394266].Kind == ((NU8) 1)))) goto LA1111;
				myreset_391401(&regs->data[ra_394266]);
				regs->data[ra_394266].Kind = ((NU8) 1);
			}
			LA1111: ;
			k = regs->data[rb].kindU.Intval;
			{
				NIM_BOOL LOC1115;
				LOC1115 = 0;
				LOC1115 = (k < 0);
				if (LOC1115) goto LA1116;
				LOC1115 = (156 < k);
				LA1116: ;
				if (!LOC1115) goto LA1117;
				internalerror_165591((*c).Debug->data[pc], ((NimStringDesc*) &TMP2671));
			}
			LA1117: ;
			cc = regs->data[rc].kindU.Node;
			{
				if (!((*cc).Kind == ((NU8) 23))) goto LA1122;
				LOC1119 = (*c).Debug->data[pc];
			}
			goto LA1120;
			LA1122: ;
			{
				LOC1119 = (*cc).Info;
			}
			LA1120: ;
			asgnRefNoCycle((void**) &regs->data[ra_394266].kindU.Node, newnodei_189099(((NU8) (((NI) (k)))), LOC1119));
			(*regs->data[ra_394266].kindU.Node).Flags |=((NI16)(1)<<((((NU8) 11))%(sizeof(NI16)*8)));
		}
		break;
		case ((NU8) 109):
		{
			NI rb;
			rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
			{
				if (!!((regs->data[ra_394266].Kind == ((NU8) 1)))) goto LA1128;
				myreset_391401(&regs->data[ra_394266]);
				regs->data[ra_394266].Kind = ((NU8) 1);
			}
			LA1128: ;
			asgnRefNoCycle((void**) &regs->data[ra_394266].kindU.Node, copynode_189233(regs->data[rb].kindU.Node));
		}
		break;
		case ((NU8) 110):
		{
			NI rb;
			rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
			{
				if (!!((regs->data[ra_394266].Kind == ((NU8) 1)))) goto LA1133;
				myreset_391401(&regs->data[ra_394266]);
				regs->data[ra_394266].Kind = ((NU8) 1);
			}
			LA1133: ;
			asgnRefNoCycle((void**) &regs->data[ra_394266].kindU.Node, copytree_189237(regs->data[rb].kindU.Node));
		}
		break;
		case ((NU8) 111):
		{
			NI rb;
			NI rc;
			NI bb;
			NI i_408902;
			NI HEX3Atmp_409607;
			NI res_409609;
			rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
			rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
			{
				if (!!((regs->data[ra_394266].Kind == ((NU8) 1)))) goto LA1138;
				myreset_391401(&regs->data[ra_394266]);
				regs->data[ra_394266].Kind = ((NU8) 1);
			}
			LA1138: ;
			bb = ((NI) (regs->data[rb].kindU.Intval));
			i_408902 = 0;
			HEX3Atmp_409607 = 0;
			HEX3Atmp_409607 = (NI32)(((NI) (regs->data[rc].kindU.Intval)) - 1);
			res_409609 = 0;
			while (1) {
				if (!(res_409609 <= HEX3Atmp_409607)) goto LA1140;
				i_408902 = res_409609;
				delson_189212(regs->data[ra_394266].kindU.Node, bb);
				res_409609 += 1;
			} LA1140: ;
		}
		break;
		case ((NU8) 112):
		{
			NI rb;
			NI rc;
			NI64 k;
			NimStringDesc* name;
			tsym188833* sym;
			tident167019* LOC1157;
			rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
			rc = ((NI) ((NU32)((NU32)(instr) >> (NU32)(((NU32) 24)))));
			{
				if (!!((regs->data[ra_394266].Kind == ((NU8) 1)))) goto LA1144;
				myreset_391401(&regs->data[ra_394266]);
				regs->data[ra_394266].Kind = ((NU8) 1);
			}
			LA1144: ;
			k = regs->data[rb].kindU.Intval;
			{
				if (!((*regs->data[rc].kindU.Node).kindU.S3.Strval->Sup.len == 0)) goto LA1148;
				name = copyString(((NimStringDesc*) &TMP2672));
			}
			goto LA1146;
			LA1148: ;
			{
				name = (*regs->data[rc].kindU.Node).kindU.S3.Strval;
			}
			LA1146: ;
			{
				NIM_BOOL LOC1153;
				LOC1153 = 0;
				LOC1153 = (k < 0);
				if (LOC1153) goto LA1154;
				LOC1153 = (24 < k);
				LA1154: ;
				if (!LOC1153) goto LA1155;
				internalerror_165591((*c).Debug->data[pc], ((NimStringDesc*) &TMP2673));
			}
			LA1155: ;
			LOC1157 = 0;
			LOC1157 = getident_167456(name);
			sym = newsym_189053(((NU8) (k)), LOC1157, (*c).Module, (*c).Debug->data[pc]);
			(*sym).Flags |=((NI32)(1)<<((((NU8) 31))%(sizeof(NI32)*8)));
			asgnRefNoCycle((void**) &regs->data[ra_394266].kindU.Node, newsymnode_189095(sym));
		}
		break;
		case ((NU8) 152):
		{
			NI rb;
			ttype188837* typ;
			rb = ((NI) ((NU32)((NU32)((NU32)(instr) >> (NU32)(((NU32) 16))) & ((NU32) 255))));
			{
				if (!!((regs->data[ra_394266].Kind == ((NU8) 1)))) goto LA1161;
				myreset_391401(&regs->data[ra_394266]);
				regs->data[ra_394266].Kind = ((NU8) 1);
			}
			LA1161: ;
			typ = (*regs->data[rb].kindU.Node).Typ;
			{
				NimStringDesc* LOC1167;
				if (!!(!((typ == NIM_NIL)))) goto LA1165;
				LOC1167 = 0;
				LOC1167 = HEX24_165714(TMP2674);
				internalerror_165606(LOC1167);
			}
			LA1165: ;
			while (1) {
				NIM_BOOL LOC1169;
				NI LOC1171;
				LOC1169 = 0;
				LOC1169 = ((*typ).Kind == ((NU8) 8));
				if (!(LOC1169)) goto LA1170;
				LOC1171 = 0;
				LOC1171 = len_192569(typ);
				LOC1169 = (0 < LOC1171);
				LA1170: ;
				if (!LOC1169) goto LA1168;
				typ = (*typ).Sons->data[0];
			} LA1168: ;
			asgnRefNoCycle((void**) &regs->data[ra_394266].kindU.Node, newnode_189065(((NU8) 20)));
			asgnRefNoCycle((void**) &(*regs->data[ra_394266].kindU.Node).kindU.S3.Strval, typetostring_223020(typ, ((NU8) 2)));
		}
		break;
		}
		pc += 1;
	}
	BeforeRet: ;
}

N_NIMCALL(tnode188803*, evalmacrocall_410503)(tsym188833* module, tnode188803* n, tnode188803* norig, tsym188833* sym) {
	tnode188803* result;
	tctx249037* c;
	NI start;
	tstackframe391208* tos;
	tstackframe391208* LOC5;
	NI maxslots;
	NI l;
	NI i_410598;
	NI HEX3Atmp_410644;
	NI res_410646;
	tfullreg391204 LOC11;
	result = 0;
	evalmacrocounter_410500 += 1;
	{
		if (!(100 < evalmacrocounter_410500)) goto LA3;
		globalerror_165558((*n).Info, ((NU16) 183), ((NimStringDesc*) &TMP2571));
	}
	LA3: ;
	setupglobalctx_409807(module);
	c = globalctx_409804;
	asgnRefNoCycle((void**) &(*c).Callsite, norig);
	start = genproc_387355(c, sym);
	LOC5 = 0;
	LOC5 = (tstackframe391208*) newObj((&NTI391206), sizeof(tstackframe391208));
	asgnRefNoCycle((void**) &(*LOC5).Prc, sym);
	(*LOC5).Comesfrom = 0;
	asgnRef((void**) &(*LOC5).Next, NIM_NIL);
	tos = LOC5;
	maxslots = (*sym).Offset;
	if ((*tos).Slots) nimGCunrefNoCycle((*tos).Slots);
	(*tos).Slots = (TY391224*) newSeqRC1((&NTI391224), maxslots);
	l = safelen_189320(n);
	{
		if (!(l == 0)) goto LA8;
		l = 1;
	}
	LA8: ;
	(*tos).Slots->data[0].Kind = ((NU8) 1);
	asgnRefNoCycle((void**) &(*tos).Slots->data[0].kindU.Node, newnodeit_189104(((NU8) 1), (*n).Info, (*(*sym).Typ).Sons->data[0]));
	i_410598 = 0;
	HEX3Atmp_410644 = 0;
	HEX3Atmp_410644 = (((*tos).Slots->Sup.len <= l) ? (*tos).Slots->Sup.len : l) - 1;
	res_410646 = 1;
	while (1) {
		if (!(res_410646 <= HEX3Atmp_410644)) goto LA10;
		i_410598 = res_410646;
		(*tos).Slots->data[i_410598].Kind = ((NU8) 1);
		asgnRefNoCycle((void**) &(*tos).Slots->data[i_410598].kindU.Node, setupmacroparam_410450((*n).kindU.S6.Sons->data[i_410598]));
		res_410646 += 1;
	} LA10: ;
	memset((void*)&LOC11, 0, sizeof(LOC11));
	rawexecute_394236(c, start, tos, &LOC11);
	result = regtonode_392854(LOC11);
	{
		NIM_BOOL LOC14;
		LOC14 = 0;
		LOC14 = cyclictree_221143(result);
		if (!LOC14) goto LA15;
		globalerror_165558((*n).Info, ((NU16) 215), ((NimStringDesc*) &TMP2571));
	}
	LA15: ;
	evalmacrocounter_410500 -= 1;
	asgnRefNoCycle((void**) &(*c).Callsite, NIM_NIL);
	return result;
}

N_NIMCALL(tnode188803*, evalconstexpraux_410015)(tsym188833* module, tsym188833* prc, tnode188803* n_410019, NU8 mode) {
	tnode188803* result;
	tnode188803* n;
	tctx249037* c;
	NI start;
	tstackframe391208* tos;
	tstackframe391208* LOC5;
	tfullreg391204 LOC6;
	result = 0;
	n = transformexpr_378603(module, n_410019);
	setupglobalctx_409807(module);
	c = globalctx_409804;
	(*c).Mode = mode;
	start = genexpr_388057(c, n, !((mode == ((NU8) 4))));
	{
		if (!(((NU8) ((NU32)((*c).Code->data[start] & ((NU32) 255)))) == ((NU8) 0))) goto LA3;
		result = emptynode_189727;
		goto BeforeRet;
	}
	LA3: ;
	LOC5 = 0;
	LOC5 = (tstackframe391208*) newObj((&NTI391206), sizeof(tstackframe391208));
	asgnRefNoCycle((void**) &(*LOC5).Prc, prc);
	(*LOC5).Comesfrom = 0;
	asgnRef((void**) &(*LOC5).Next, NIM_NIL);
	tos = LOC5;
	if ((*tos).Slots) nimGCunrefNoCycle((*tos).Slots);
	(*tos).Slots = (TY391224*) newSeqRC1((&NTI391224), (*(*c).Prc).Maxslots);
	memset((void*)&LOC6, 0, sizeof(LOC6));
	rawexecute_394236(c, start, tos, &LOC6);
	result = regtonode_392854(LOC6);
	BeforeRet: ;
	return result;
}

N_NIMCALL(tnode188803*, evalstaticexpr_410429)(tsym188833* module, tnode188803* e, tsym188833* prc) {
	tnode188803* result;
	result = 0;
	result = evalconstexpraux_410015(module, prc, e, ((NU8) 3));
	return result;
}

N_NIMCALL(tnode188803*, evalconstexpr_410422)(tsym188833* module, tnode188803* e) {
	tnode188803* result;
	result = 0;
	result = evalconstexpraux_410015(module, NIM_NIL, e, ((NU8) 1));
	return result;
}

N_NIMCALL(void, setupcompiletimevar_410444)(tsym188833* module, tnode188803* n) {
	tnode188803* LOC1;
	LOC1 = 0;
	LOC1 = evalconstexpraux_410015(module, NIM_NIL, n, ((NU8) 4));
}

N_NIMCALL(void, evalstaticstmt_410437)(tsym188833* module, tnode188803* e, tsym188833* prc) {
	tnode188803* LOC1;
	LOC1 = 0;
	LOC1 = evalconstexpraux_410015(module, prc, e, ((NU8) 4));
}

N_NIMCALL(tpasscontext246003*, myopen_409823)(tsym188833* module) {
	tpasscontext246003* result;
	result = 0;
	setupglobalctx_409807(module);
	result = &globalctx_409804->Sup;
	return result;
}

N_NIMCALL(tnode188803*, execute_409629)(tctx249037* c, NI start) {
	tnode188803* result;
	tstackframe391208* tos;
	tstackframe391208* LOC1;
	tfullreg391204 LOC2;
	result = 0;
	LOC1 = 0;
	LOC1 = (tstackframe391208*) newObj((&NTI391206), sizeof(tstackframe391208));
	asgnRefNoCycle((void**) &(*LOC1).Prc, NIM_NIL);
	(*LOC1).Comesfrom = 0;
	asgnRef((void**) &(*LOC1).Next, NIM_NIL);
	tos = LOC1;
	if ((*tos).Slots) nimGCunrefNoCycle((*tos).Slots);
	(*tos).Slots = (TY391224*) newSeqRC1((&NTI391224), (*(*c).Prc).Maxslots);
	memset((void*)&LOC2, 0, sizeof(LOC2));
	rawexecute_394236(c, start, tos, &LOC2);
	result = regtonode_392854(LOC2);
	return result;
}

N_NIMCALL(void, evalstmt_409654)(tctx249037* c, tnode188803* n_409657) {
	tnode188803* n;
	NI start;
	n = transformexpr_378603((*c).Module, n_409657);
	start = genstmt_388036(c, n);
	{
		tnode188803* LOC5;
		if (!!((((NU8) ((NU32)((*c).Code->data[start] & ((NU32) 255)))) == ((NU8) 0)))) goto LA3;
		LOC5 = 0;
		LOC5 = execute_409629(c, start);
	}
	LA3: ;
}

N_NIMCALL(tnode188803*, myprocess_410006)(tpasscontext246003* c, tnode188803* n) {
	tnode188803* result;
	result = 0;
	{
		if (!(olderrorcount_410003 == gerrorcounter_164182)) goto LA3;
		evalstmt_409654(((tctx249037*) (c)), n);
		result = emptynode_189727;
	}
	goto LA1;
	LA3: ;
	{
		result = n;
	}
	LA1: ;
	olderrorcount_410003 = gerrorcounter_164182;
	return result;
}
N_NOINLINE(void, vmInit)(void) {
}

N_NOINLINE(void, vmDatInit)(void) {
static TNimNode* TMP2603[5];
static TNimNode* TMP2604[6];
NI TMP2606;
static char* NIM_CONST TMP2605[6] = {
"rkNone", 
"rkNode", 
"rkInt", 
"rkFloat", 
"rkRegisterAddr", 
"rkNodeAddr"};
static TNimNode TMP920[20];
NTI391208.size = sizeof(tstackframe391208);
NTI391208.kind = 18;
NTI391208.base = 0;
TMP2603[0] = &TMP920[1];
TMP920[1].kind = 1;
TMP920[1].offset = offsetof(tstackframe391208, Prc);
TMP920[1].typ = (&NTI188801);
TMP920[1].name = "prc";
TMP2603[1] = &TMP920[2];
NTI391204.size = sizeof(tfullreg391204);
NTI391204.kind = 18;
NTI391204.base = 0;
NTI391204.flags = 2;
NTI391202.size = sizeof(NU8);
NTI391202.kind = 14;
NTI391202.base = 0;
NTI391202.flags = 3;
for (TMP2606 = 0; TMP2606 < 6; TMP2606++) {
TMP920[TMP2606+4].kind = 1;
TMP920[TMP2606+4].offset = TMP2606;
TMP920[TMP2606+4].name = TMP2605[TMP2606];
TMP2604[TMP2606] = &TMP920[TMP2606+4];
}
TMP920[10].len = 6; TMP920[10].kind = 2; TMP920[10].sons = &TMP2604[0];
NTI391202.node = &TMP920[10];
TMP920[3].kind = 3;
TMP920[3].offset = offsetof(tfullreg391204, Kind);
TMP920[3].typ = (&NTI391202);
TMP920[3].name = "kind";
TMP920[3].sons = &NimDT_tfullreg_kind[0];
TMP920[3].len = 6;
TMP920[11].len = 0; TMP920[11].kind = 2;
NimDT_tfullreg_kind[0] = &TMP920[11];
TMP920[12].kind = 1;
TMP920[12].offset = offsetof(tfullreg391204, kindU.Intval);
TMP920[12].typ = (&NTI4289);
TMP920[12].name = "intVal";
NimDT_tfullreg_kind[2] = &TMP920[12];
TMP920[13].kind = 1;
TMP920[13].offset = offsetof(tfullreg391204, kindU.Floatval);
TMP920[13].typ = (&NTI4291);
TMP920[13].name = "floatVal";
NimDT_tfullreg_kind[3] = &TMP920[13];
TMP920[14].kind = 1;
TMP920[14].offset = offsetof(tfullreg391204, kindU.Node);
TMP920[14].typ = (&NTI188795);
TMP920[14].name = "node";
NimDT_tfullreg_kind[1] = &TMP920[14];
NTI391219.size = sizeof(tfullreg391204*);
NTI391219.kind = 21;
NTI391219.base = (&NTI391204);
NTI391219.flags = 3;
TMP920[15].kind = 1;
TMP920[15].offset = offsetof(tfullreg391204, kindU.Regaddr);
TMP920[15].typ = (&NTI391219);
TMP920[15].name = "regAddr";
NimDT_tfullreg_kind[4] = &TMP920[15];
TMP920[16].kind = 1;
TMP920[16].offset = offsetof(tfullreg391204, kindU.Nodeaddr);
TMP920[16].typ = (&NTI391221);
TMP920[16].name = "nodeAddr";
NimDT_tfullreg_kind[5] = &TMP920[16];
NTI391204.node = &TMP920[3];
NTI391224.size = sizeof(TY391224*);
NTI391224.kind = 24;
NTI391224.base = (&NTI391204);
NTI391224.flags = 2;
NTI391224.marker = TMP2607;
TMP920[2].kind = 1;
TMP920[2].offset = offsetof(tstackframe391208, Slots);
TMP920[2].typ = (&NTI391224);
TMP920[2].name = "slots";
TMP2603[2] = &TMP920[17];
TMP920[17].kind = 1;
TMP920[17].offset = offsetof(tstackframe391208, Next);
TMP920[17].typ = (&NTI391206);
TMP920[17].name = "next";
TMP2603[3] = &TMP920[18];
TMP920[18].kind = 1;
TMP920[18].offset = offsetof(tstackframe391208, Comesfrom);
TMP920[18].typ = (&NTI106);
TMP920[18].name = "comesFrom";
TMP2603[4] = &TMP920[19];
TMP920[19].kind = 1;
TMP920[19].offset = offsetof(tstackframe391208, Safepoints);
TMP920[19].typ = (&NTI298698);
TMP920[19].name = "safePoints";
TMP920[0].len = 5; TMP920[0].kind = 2; TMP920[0].sons = &TMP2603[0];
NTI391208.node = &TMP920[0];
NTI391206.size = sizeof(tstackframe391208*);
NTI391206.kind = 22;
NTI391206.base = (&NTI391208);
NTI391206.marker = TMP2608;
}

