Exemplo n.º 1
0
Arquivo: SSA.cs Projeto: AxFab/amy
        public string ToIntelASM(SSA ssa)
        {
            string reg1 = "e" + ssa.Name + "x";
              string op1 = ssa.Operand1.Value;
              if ((ssa.Operand1 as Operand).Version > 0)
            op1 = "e" + (ssa.Operand1 as Operand).Code + "x";

              if (ssa.Operator == Amy.Operator.Assign)
            return "MOV " + reg1 + ", " + op1;
              if (ssa.Operator == Amy.Operator.Add)
            return "ADD " + reg1 + ", " + op1;
              if (ssa.Operator == Amy.Operator.Sub)
            return "SUB " + reg1 + ", " + op1;
              if (ssa.Operator == Amy.Operator.Mul)
            return "MUL " + reg1 + ", " + op1;
              if (ssa.Operator == Amy.Operator.Div)
            return "DIV " + reg1 + ", " + op1;

              return "!?";
        }
Exemplo n.º 2
0
Arquivo: SSA.cs Projeto: AxFab/amy
        public void Push(SSA ssa)
        {
            ssa.Previous = current;
              if (top == null)
            top = ssa;
              else
            current.Next1 = ssa;
              current = ssa;

              // Console.WriteLine(this.ToIntelASM(ssa));
        }