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() {
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;
+ }
}