getICount() public method

public getICount ( ) : int
return int
Example #1
0
File: asm.cs Project: ydunk/masters
        public void Load(IAsm a)
        {
            StringBuilder sb = new StringBuilder(MyC.MAXSTR);
            Var           e  = a.getVar();

            if (e == null)
            {
                Console.WriteLine("?Load instruction with no variable ptr");
                Environment.Exit(1);
            }
            switch (e.getClassId())
            {
            case Tok.T_STATIC:
            {
                sb.Append("\tldsfld ");
                sb.Append(genFieldRef(e));
                sb.Append("\t//");
                sb.Append(a.getICount());
                sb.Append(", ");
                sb.Append(e.getName());
                sb.Append("\r\n");
                break;
            }

            case Tok.T_AUTO:
            case Tok.T_DEFCLASS:
                sb.Append("\tldloc ");
                sb.Append(e.getIndex());
                sb.Append("\t//");
                sb.Append(a.getICount());
                sb.Append(", ");
                sb.Append(e.getName());
                sb.Append("\r\n");
                break;

            case Tok.T_PARAM:
                sb.Append("\tldarg ");
                sb.Append(e.getIndex());
                sb.Append("\t//");
                sb.Append(a.getICount());
                sb.Append(", ");
                sb.Append(e.getName());
                sb.Append("\r\n");
                break;

            default:
                Console.Write("?Instruction load of unknown class (");
                Console.Write(e.getClassId());
                Console.WriteLine(")");
                Environment.Exit(1);
                break;
            }
            io.Out(sb.ToString());
        }
Example #2
0
File: asm.cs Project: ydunk/masters
        public void LoadConst(IAsm a)
        {
            StringBuilder sb    = new StringBuilder(MyC.MAXSTR);
            int           value = Convert.ToInt32(a.getInsn());

            sb.Append("\tldc.i4");
            if (value > 127 || value < -128) /* if must use long form */
            {
                sb.Append(" ");
            }
            else if (value > 8 || value < -1) /* if must use medium form */
            {
                sb.Append(".s ");
            }
            else                        /* else use short form */
            {
                sb.Append(".");
            }
            sb.Append(a.getInsn());
            sb.Append("\t//");
            sb.Append(a.getICount());
            sb.Append("\r\n");

            io.Out(sb.ToString());
        }
Example #3
0
File: asm.cs Project: ydunk/masters
        public void Call(IAsm a)
        {
            Var    func    = a.getVar();
            String funcsig = genDataTypeSig(a.getVar()); /* gen type info */

            VarList x        = func.getParams();         /* get any params */
            String  paramsig = "";

            if (x.Length() > 0)
            {
                int           max = x.Length();
                StringBuilder t   = new StringBuilder(MyC.MAXSTR);
                for (int i = 0; i < max; i++)
                {
                    Var e = x.FindByIndex(i);
                    t.Append(genDataTypeSig(e));
                    if (i < max - 1)
                    {
                        t.Append(",");
                    }
                }
                paramsig = t.ToString();
            }

            StringBuilder sb = new StringBuilder(MyC.MAXSTR);

            sb.Append("\tcall ");
            sb.Append(funcsig);
            sb.Append("(");
            sb.Append(paramsig);
            sb.Append(")\t//");
            sb.Append(a.getICount());
            sb.Append("\r\n");
            io.Out(sb.ToString());
        }
Example #4
0
File: asm.cs Project: ydunk/masters
        public void Ret(IAsm a)
        {
            StringBuilder sb = new StringBuilder(MyC.MAXSTR);

            sb.Append("\tret\t\t//");
            sb.Append(a.getICount());
            sb.Append("\r\n");
            io.Out(sb.ToString());
        }
Example #5
0
File: asm.cs Project: ydunk/masters
        public void Branch(IAsm a)
        {
            StringBuilder sb = new StringBuilder(MyC.MAXSTR);

            sb.Append("\t");
            sb.Append(a.getInsn());
            sb.Append(" ");
            sb.Append(a.getLabel());
            sb.Append("\t//");
            sb.Append(a.getICount());
            sb.Append("\r\n");
            io.Out(sb.ToString());
        }
Example #6
0
        void NextInsn(int incr)
        {
            int ncount = 0;

            if (iroot == null)
            {
                icur = iroot = new IAsm();
            }
            else
            {
                ncount = icur.getICount() + incr; /* propogate previous count */
                icur.setNext(new IAsm());
                icur = icur.getNext();
            }
            icur.setICount(ncount);
        }
Example #7
0
  public void Load(IAsm a)
    {
    StringBuilder sb = new StringBuilder(MyC.MAXSTR);
    Var e = a.getVar();
    if (e == null)
      {
      Console.WriteLine("?Load instruction with no variable ptr");
      Environment.Exit(1);
      }
    switch (e.getClassId())
      {
      case Tok.T_STATIC:
	{
	sb.Append("\tldsfld ");
	sb.Append(genFieldRef(e));
	sb.Append("\t//");
	sb.Append(a.getICount());
	sb.Append(", ");
	sb.Append(e.getName());
	sb.Append("\r\n");
	break;
	}
      case Tok.T_AUTO:
      case Tok.T_DEFCLASS:
	sb.Append("\tldloc ");
	sb.Append(e.getIndex());
	sb.Append("\t//");
	sb.Append(a.getICount());
	sb.Append(", ");
	sb.Append(e.getName());
	sb.Append("\r\n");
	break;
      case Tok.T_PARAM:
	sb.Append("\tldarg ");
	sb.Append(e.getIndex());
	sb.Append("\t//");
	sb.Append(a.getICount());
	sb.Append(", ");
	sb.Append(e.getName());
	sb.Append("\r\n");
	break;
      default:
	Console.Write("?Instruction load of unknown class (");
	Console.Write(e.getClassId());
	Console.WriteLine(")");
	Environment.Exit(1);
	break;
      }
    io.Out(sb.ToString());
    }
Example #8
0
  public void LoadConst(IAsm a)
    {
    StringBuilder sb = new StringBuilder(MyC.MAXSTR);
    int value = Convert.ToInt32(a.getInsn());

    sb.Append("\tldc.i4");
    if (value > 127 || value < -128) /* if must use long form */
      {
      sb.Append(" ");
      }
    else if (value > 8 || value < -1)	/* if must use medium form */
      {
      sb.Append(".s ");
      }
    else				/* else use short form */
      {
      sb.Append(".");
      }
    sb.Append(a.getInsn());
    sb.Append("\t//");
    sb.Append(a.getICount());
    sb.Append("\r\n");

    io.Out(sb.ToString());
    }
Example #9
0
 public void Ret(IAsm a)
   {
   StringBuilder sb = new StringBuilder(MyC.MAXSTR);
   sb.Append("\tret\t\t//");
   sb.Append(a.getICount());
   sb.Append("\r\n");
   io.Out(sb.ToString());
   }
Example #10
0
 public void Branch(IAsm a)
   {
   StringBuilder sb = new StringBuilder(MyC.MAXSTR);
   sb.Append("\t");
   sb.Append(a.getInsn());
   sb.Append(" ");
   sb.Append(a.getLabel());
   sb.Append("\t//");
   sb.Append(a.getICount());
   sb.Append("\r\n");
   io.Out(sb.ToString());
   }
Example #11
0
  public void Call(IAsm a)
    {
    Var func = a.getVar();
    String funcsig = genDataTypeSig(a.getVar()); /* gen type info */

    VarList x = func.getParams(); /* get any params */
    String paramsig = "";
    if (x.Length() > 0)
      {
      int max = x.Length();
      StringBuilder t = new StringBuilder(MyC.MAXSTR);
      for (int i = 0; i < max; i++)
	{
	Var e = x.FindByIndex(i);
	t.Append(genDataTypeSig(e));
	if (i < max-1)
	  t.Append(",");
	}
      paramsig = t.ToString();
      }

    StringBuilder sb = new StringBuilder(MyC.MAXSTR);
    sb.Append("\tcall ");
    sb.Append(funcsig);
    sb.Append("(");
    sb.Append(paramsig);
    sb.Append(")\t//");
    sb.Append(a.getICount());
    sb.Append("\r\n");
    io.Out(sb.ToString());
    }