@Override
 public void VisitReturnNode(GtReturnNode Node) {
   if (Node.ValueNode != null) {
     Node.ValueNode.Accept(this);
     this.VisitingBuilder.Append(
         "NMOV " + "REG" + ReturnIndex + ", REG" + this.PopRegister() + "\n");
   }
   this.VisitingBuilder.Append("RET\n");
 }
 @Override
 public void VisitSetterNode(GtSetterNode Node) {
   Node.RecvNode.Accept(this);
   /*local*/ int TargetReg = this.PopRegister();
   /*local*/ ArrayList<GtFieldInfo> FieldList = this.ClassFieldMap.get(Node.RecvNode.Type);
   /*local*/ int Offset = this.GetFieldOffset(FieldList, Node.NativeName);
   Node.ValueNode.Accept(this);
   this.VisitingBuilder.Append(
       "XNMOV " + "REG" + TargetReg + ", " + Offset + ", REG" + this.PopRegister() + "\n");
 }
 @Override
 public void VisitSetLocalNode(GtSetLocalNode Node) {
   Node.ValueNode.Accept(this);
   this.VisitingBuilder.Append(
       "NMOV "
           + "REG"
           + this.LocalVarMap.get(Node.NativeName)
           + ", REG"
           + this.PopRegister()
           + "\n");
 }
 @Override
 public void VisitSetIndexNode(GtSetIndexNode Node) {
   /*local*/ int TargetReg = this.ReserveRegister(3 /*ArgumentSize*/ + CallParameters);
   /*local*/ int CallReg = TargetReg - ReturnIndex + ThisIndex;
   Node.RecvNode.Accept(this);
   /// *local*/int ArrayVarReg = this.PopRegister();
   // this.VisitingBuilder.Append("NMOV " + "REG" + (CallReg+1) + ", REG" + ArrayVarReg + "\n");
   this.VisitingBuilder.Append(
       "NMOV " + "REG" + (CallReg + 1) + ", REG" + this.PopRegister() + "\n");
   Node.IndexNode.Accept(this);
   this.VisitingBuilder.Append(
       "NMOV " + "REG" + (CallReg + 2) + ", REG" + this.PopRegister() + "\n");
   Node.ValueNode.Accept(this);
   this.VisitingBuilder.Append(
       "NMOV " + "REG" + (CallReg + 3) + ", REG" + this.PopRegister() + "\n");
   this.VisitingBuilder.Append(
       "NSET " + "REG" + (CallReg + MethodIndex) + ", METHOD\"SetIndex\"\n");
   this.VisitingBuilder.Append("CALL " + "REG" + CallReg + ", " + 3 /*ArgumentSize*/ + "\n");
   // this.VisitingBuilder.Append("NMOV " + "REG" + ArrayVarReg + ", REG" + TargetReg + "\n");
   this.FreeRegister(TargetReg);
 }