changes to build script to increase java heap memory
[IRC.git] / Robust / src / IR / Flat / FlatNew.java
index c8769bdb338d446828e69bf6a298c125dfca3300..48737ecb3c918ad8ce28abaae4c54331dc388b76 100644 (file)
@@ -4,14 +4,32 @@ import IR.TypeDescriptor;
 public class FlatNew extends FlatNode {
     TempDescriptor dst;
     TypeDescriptor type;
+    TempDescriptor size;
+    boolean isglobal;
     
-    public FlatNew(TypeDescriptor type, TempDescriptor dst) {
+    public FlatNew(TypeDescriptor type, TempDescriptor dst, boolean isglobal) {
        this.type=type;
        this.dst=dst;
+       this.size=null;
+       this.isglobal=isglobal;
+    }
+
+    public FlatNew(TypeDescriptor type, TempDescriptor dst, TempDescriptor size, boolean isglobal) {
+       this.type=type;
+       this.dst=dst;
+       this.size=size;
+       this.isglobal=isglobal;
+    }
+
+    public boolean isGlobal() {
+       return isglobal;
     }
 
     public String toString() {
-       return dst.toString()+"= NEW "+type.toString();
+       String str = "FlatNew_"+dst.toString()+"= NEW "+type.toString();
+       if (size!=null)
+           str += "["+size.toString()+"]";
+       return str;
     }
 
     public int kind() {
@@ -21,4 +39,23 @@ public class FlatNew extends FlatNode {
     public TempDescriptor [] writesTemps() {
        return new TempDescriptor[] {dst};
     }
+
+    public TempDescriptor [] readsTemps() {
+       if (size!=null)
+           return new TempDescriptor[] {size};
+       else
+           return new TempDescriptor[0];
+    }
+
+    public TempDescriptor getDst() {
+       return dst;
+    }
+
+    public TempDescriptor getSize() {
+       return size;
+    }
+
+    public TypeDescriptor getType() {
+       return type;
+    }
 }