示例#1
0
 private int? constantValue(MilocInstruction s, Register r)
 {
     var d = defs.GetDef(s, r.IntVal);
     if (d.Count != 1)
         return null;
     var load = d[0] as LoadiInstruction;
     if (load == null)
         return null;
     if (!powersOfTwoToExponent.ContainsKey(load.Immed0))
         return null;
     return powersOfTwoToExponent[load.Immed0];
 }
        public SubInstruction(
Register regDest0,Register regSource0,Register regSource1	)
            : base("sub")
        {
            this.RegDest0 = regDest0;this.RegSource0 = regSource0;this.RegSource1 = regSource1;
        }
        public XoriInstruction(
Register regDest0,Register regSource0,int immed0	)
            : base("xor")
        {
            this.RegDest0 = regDest0;this.RegSource0 = regSource0;this.Immed0 = immed0;
        }
        public AddInstruction(
Register regDest0,Register regSource0,Register regSource1	)
            : base("add")
        {
            this.RegDest0 = regDest0;this.RegSource0 = regSource0;this.RegSource1 = regSource1;
        }
        public StoreInstruction(
Register regSource0,Register regSource1	)
            : base("store")
        {
            this.RegSource0 = regSource0;this.RegSource1 = regSource1;
        }
        public OrInstruction(
Register regDest0,Register regSource0,Register regSource1	)
            : base("or")
        {
            this.RegDest0 = regDest0;this.RegSource0 = regSource0;this.RegSource1 = regSource1;
        }
        public RetvalueInstruction(
Register regSource0	)
            : base("retvalue")
        {
            this.RegSource0 = regSource0;
        }
        public MulInstruction(
Register regDest0,Register regSource0,Register regSource1	)
            : base("mul")
        {
            this.RegDest0 = regDest0;this.RegSource0 = regSource0;this.RegSource1 = regSource1;
        }
        public LoadInstruction(
Register regDest0,Register regSource0	)
            : base("load")
        {
            this.RegDest0 = regDest0;this.RegSource0 = regSource0;
        }
示例#10
0
        public LoadiInstruction(
Register regDest0,int immed0	)
            : base("loadi")
        {
            this.RegDest0 = regDest0;this.Immed0 = immed0;
        }
示例#11
0
        public BrcondInstruction(
Register regSource0,Label label0,Label label1	)
            : base("br")
        {
            this.RegSource0 = regSource0;this.Label0 = label0;this.Label1 = label1;
        }
示例#12
0
        public AllocaInstruction(
Register regDest0	)
            : base("alloca")
        {
            this.RegDest0 = regDest0;
        }