예제 #1
0
 public exprClause(src.XPos pos = default, ref ptr <Node> lo = default, ref ptr <Node> hi = default, ref ptr <Node> jmp = default)
 {
     this.pos = pos;
     this.lo  = lo;
     this.hi  = hi;
     this.jmp = jmp;
 }
예제 #2
0
 public scopedPCs(long start = default, long end = default, src.XPos pos = default, ScopeID scope = default)
 {
     this.start = start;
     this.end   = end;
     this.pos   = pos;
     this.scope = scope;
 }
예제 #3
0
 public LoggedOpt(src.XPos pos = default, @string pass = default, @string fname = default, @string what = default, slice <object> target = default)
 {
     this.pos    = pos;
     this.pass   = pass;
     this.fname  = fname;
     this.what   = what;
     this.target = target;
 }
예제 #4
0
                    private static ScopeID findScope(slice <Mark> marks, src.XPos pos)
                    {
                        var i = sort.Search(len(marks), i =>
                        {
                            return(xposBefore(pos, marks[i].Pos));
                        });

                        if (i == 0L)
                        {
                            return(0L);
                        }
                        return(marks[i - 1L].Scope);
                    }
예제 #5
0
 public Block(ID ID = default, src.XPos Pos = default, BlockKind Kind = default, BranchPrediction Likely = default, bool FlagsLiveAtEnd = default, slice <Edge> Succs = default, slice <Edge> Preds = default, array <ptr <Value> > Controls = default, long AuxInt = default, slice <ptr <Value> > Values = default, ref ptr <Func> Func = default, array <Edge> succstorage = default, array <Edge> predstorage = default, array <ptr <Value> > valstorage = default)
 {
     this.ID             = ID;
     this.Pos            = Pos;
     this.Kind           = Kind;
     this.Likely         = Likely;
     this.FlagsLiveAtEnd = FlagsLiveAtEnd;
     this.Succs          = Succs;
     this.Preds          = Preds;
     this.Controls       = Controls;
     this.AuxInt         = AuxInt;
     this.Values         = Values;
     this.Func           = Func;
     this.succstorage    = succstorage;
     this.predstorage    = predstorage;
     this.valstorage     = valstorage;
 }
예제 #6
0
 public sparseEntry(ID key = default, int val = default, src.XPos aux = default)
 {
     this.key = key;
     this.val = val;
     this.aux = aux;
 }
예제 #7
0
 private static ptr <Node> npos(src.XPos pos, ptr <Node> _addr_n)
 {
     ref Node n = ref _addr_n.val;
예제 #8
0
 public startReg(register r = default, ref ptr <Value> v = default, ref ptr <Value> c = default, src.XPos pos = default)
 {
     this.r   = r;
     this.v   = v;
     this.c   = c;
     this.pos = pos;
 }
예제 #9
0
 public largeStack(long locals = default, long args = default, long callee = default, src.XPos pos = default)
 {
     this.locals = locals;
     this.args   = args;
     this.callee = callee;
     this.pos    = pos;
 }
예제 #10
0
파일: scope.cs 프로젝트: zjmit/go2cs
 // See golang.org/issue/20390.
 private static bool xposBefore(src.XPos p, src.XPos q)
 {
     return(Ctxt.PosTable.Pos(p).Before(Ctxt.PosTable.Pos(q)));
 }
예제 #11
0
 public use(int dist = default, src.XPos pos = default, ref ptr <use> next = default)
 {
     this.dist = dist;
     this.pos  = pos;
     this.next = next;
 }
예제 #12
0
 public Func(ref ptr <types.Sym> Shortname = default, Nodes Enter = default, Nodes Exit = default, Nodes Cvars = default, slice <ptr <Node> > Dcl = default, slice <ScopeID> Parents = default, slice <Mark> Marks = default, long Closgen = default, ref ptr <ssa.FuncDebug> DebugInfo = default, ref ptr <Node> Ntype = default, long Top = default, ref ptr <Node> Closure = default, ref ptr <Node> Nname = default, ref ptr <obj.LSym> lsym = default, ref ptr <Inline> Inl = default, int Label = default, src.XPos Endlineno = default, src.XPos WBPos = default, PragmaFlag Pragma = default, bitset16 flags = default, long numDefers = default, long numReturns = default, ref ptr <slice <nowritebarrierrecCallSym> > nwbrCalls = default)
 {
     this.Shortname  = Shortname;
     this.Enter      = Enter;
     this.Exit       = Exit;
     this.Cvars      = Cvars;
     this.Dcl        = Dcl;
     this.Parents    = Parents;
     this.Marks      = Marks;
     this.Closgen    = Closgen;
     this.DebugInfo  = DebugInfo;
     this.Ntype      = Ntype;
     this.Top        = Top;
     this.Closure    = Closure;
     this.Nname      = Nname;
     this.lsym       = lsym;
     this.Inl        = Inl;
     this.Label      = Label;
     this.Endlineno  = Endlineno;
     this.WBPos      = WBPos;
     this.Pragma     = Pragma;
     this.flags      = flags;
     this.numDefers  = numDefers;
     this.numReturns = numReturns;
     this.nwbrCalls  = nwbrCalls;
 }
예제 #13
0
 public nowritebarrierrecCallSym(ref ptr <obj.LSym> target = default, src.XPos lineno = default)
 {
     this.target = target;
     this.lineno = lineno;
 }
예제 #14
0
 public liveInfo(ID ID = default, int dist = default, src.XPos pos = default)
 {
     this.ID   = ID;
     this.dist = dist;
     this.pos  = pos;
 }
예제 #15
0
 public dsym(ref ptr <Sym> sym = default, ref ptr <Node> def = default, int block = default, src.XPos lastlineno = default)
 {
     this.sym        = sym;
     this.def        = def;
     this.block      = block;
     this.lastlineno = lastlineno;
 }
예제 #16
0
 public typeSetEntry(src.XPos pos = default, ref ptr <types.Type> typ = default)
 {
     this.pos = pos;
     this.typ = typ;
 }
예제 #17
0
 public Progs(ref ptr <obj.Prog> Text = default, ref ptr <obj.Prog> next = default, long pc = default, src.XPos pos = default, ref ptr <Node> curfn = default, slice <obj.Prog> progcache = default, long cacheidx = default, LivenessIndex nextLive = default, LivenessIndex prevLive = default)
 {
     this.Text      = Text;
     this.next      = next;
     this.pc        = pc;
     this.pos       = pos;
     this.curfn     = curfn;
     this.progcache = progcache;
     this.cacheidx  = cacheidx;
     this.nextLive  = nextLive;
     this.prevLive  = prevLive;
 }
예제 #18
0
 public contentRecord(ID vid = default, ref ptr <Value> c = default, bool final = default, src.XPos pos = default)
 {
     this.vid   = vid;
     this.c     = c;
     this.final = final;
     this.pos   = pos;
 }
예제 #19
0
 public Value(ID ID = default, Op Op = default, ref ptr <types.Type> Type = default, long AuxInt = default, slice <ptr <Value> > Args = default, ref ptr <Block> Block = default, src.XPos Pos = default, int Uses = default, bool OnWasmStack = default, array <ptr <Value> > argstorage = default)
 {
     this.ID          = ID;
     this.Op          = Op;
     this.Type        = Type;
     this.AuxInt      = AuxInt;
     this.Args        = Args;
     this.Block       = Block;
     this.Pos         = Pos;
     this.Uses        = Uses;
     this.OnWasmStack = OnWasmStack;
     this.argstorage  = argstorage;
 }
 public nowritebarrierrecCall(ref ptr <Node> target = default, src.XPos lineno = default)
 {
     this.target = target;
     this.lineno = lineno;
 }
예제 #21
0
 public Sym(ref ptr <Pkg> Importdef = default, @string Linkname = default, ref ptr <Pkg> Pkg = default, @string Name = default, ref ptr <Node> Def = default, int Block = default, src.XPos Lastlineno = default, bitset8 flags = default, ref ptr <Node> Label = default, ref ptr <Pkg> Origpkg = default)
 {
     this.Importdef  = Importdef;
     this.Linkname   = Linkname;
     this.Pkg        = Pkg;
     this.Name       = Name;
     this.Def        = Def;
     this.Block      = Block;
     this.Lastlineno = Lastlineno;
     this.flags      = flags;
     this.Label      = Label;
     this.Origpkg    = Origpkg;
 }
예제 #22
0
 public Error(src.XPos pos = default, @string msg = default)
 {
     this.pos = pos;
     this.msg = msg;
 }
예제 #23
0
 public Field(bitset8 flags = default, byte Embedded = default, src.XPos Pos = default, ref ptr <Sym> Sym = default, ref ptr <Type> Type = default, @string Note = default, ref ptr <Node> Nname = default, long Offset = default)
 {
     this.flags    = flags;
     this.Embedded = Embedded;
     this.Pos      = Pos;
     this.Sym      = Sym;
     this.Type     = Type;
     this.Note     = Note;
     this.Nname    = Nname;
     this.Offset   = Offset;
 }
예제 #24
0
 public state(ref ptr <ssa.Config> config = default, ref ptr <ssa.Func> f = default, ref ptr <Node> curfn = default, map <@string, ptr <ssaLabel> > labels = default, map <ptr <Node>, ptr <ssaLabel> > labeledNodes = default, ref ptr <ssa.Block> breakTo = default, ref ptr <ssa.Block> continueTo = default, ref ptr <ssa.Block> curBlock = default, map <ptr <Node>, ptr <ssa.Value> > vars = default, map <ptr <Node>, ptr <ssa.Value> > fwdVars = default, slice <map <ptr <Node>, ptr <ssa.Value> > > defvars = default, map <ptr <Node>, ptr <ssa.Value> > decladdrs = default, ref ptr <ssa.Value> startmem = default, ref ptr <ssa.Value> sp = default, ref ptr <ssa.Value> sb = default, ref ptr <ssa.Value> deferBitsAddr = default, ref ptr <Node> deferBitsTemp = default, slice <src.XPos> line = default, src.XPos lastPos = default, map <funcLine, ptr <ssa.Block> > panics = default, slice <ptr <Node> > returns = default, bool cgoUnsafeArgs = default, bool hasdefer = default, bool softFloat = default, bool hasOpenDefers = default, slice <ptr <openDeferInfo> > openDefers = default, ref ptr <ssa.Block> lastDeferExit = default, ref ptr <ssa.Block> lastDeferFinalBlock = default, long lastDeferCount = default)
 {
     this.config              = config;
     this.f                   = f;
     this.curfn               = curfn;
     this.labels              = labels;
     this.labeledNodes        = labeledNodes;
     this.breakTo             = breakTo;
     this.continueTo          = continueTo;
     this.curBlock            = curBlock;
     this.vars                = vars;
     this.fwdVars             = fwdVars;
     this.defvars             = defvars;
     this.decladdrs           = decladdrs;
     this.startmem            = startmem;
     this.sp                  = sp;
     this.sb                  = sb;
     this.deferBitsAddr       = deferBitsAddr;
     this.deferBitsTemp       = deferBitsTemp;
     this.line                = line;
     this.lastPos             = lastPos;
     this.panics              = panics;
     this.returns             = returns;
     this.cgoUnsafeArgs       = cgoUnsafeArgs;
     this.hasdefer            = hasdefer;
     this.softFloat           = softFloat;
     this.hasOpenDefers       = hasOpenDefers;
     this.openDefers          = openDefers;
     this.lastDeferExit       = lastDeferExit;
     this.lastDeferFinalBlock = lastDeferFinalBlock;
     this.lastDeferCount      = lastDeferCount;
 }
예제 #25
0
 public dstRecord(Location loc = default, ID vid = default, ref ptr <ptr <Value> > splice = default, src.XPos pos = default)
 {
     this.loc    = loc;
     this.vid    = vid;
     this.splice = splice;
     this.pos    = pos;
 }
예제 #26
0
 public Node(ref ptr <Node> Left = default, ref ptr <Node> Right = default, Nodes Ninit = default, Nodes Nbody = default, Nodes List = default, Nodes Rlist = default, ref ptr <types.Type> Type = default, ref ptr <Node> Orig = default, ref ptr <Func> Func = default, ref ptr <Name> Name = default, ref ptr <types.Sym> Sym = default, long Xoffset = default, src.XPos Pos = default, bitset32 flags = default, ushort Esc = default, Op Op = default, byte aux = default)
 {
     this.Left    = Left;
     this.Right   = Right;
     this.Ninit   = Ninit;
     this.Nbody   = Nbody;
     this.List    = List;
     this.Rlist   = Rlist;
     this.Type    = Type;
     this.Orig    = Orig;
     this.Func    = Func;
     this.Name    = Name;
     this.Sym     = Sym;
     this.Xoffset = Xoffset;
     this.Pos     = Pos;
     this.flags   = flags;
     this.Esc     = Esc;
     this.Op      = Op;
     this.aux     = aux;
 }
예제 #27
0
 public Forward(slice <ptr <Type> > Copyto = default, src.XPos Embedlineno = default)
 {
     this.Copyto      = Copyto;
     this.Embedlineno = Embedlineno;
 }
예제 #28
0
 public importedPkg(src.XPos pos = default, @string path = default, @string name = default)
 {
     this.pos  = pos;
     this.path = path;
     this.name = name;
 }
예제 #29
0
 public Mark(src.XPos Pos = default, ScopeID Scope = default)
 {
     this.Pos   = Pos;
     this.Scope = Scope;
 }