add new node
authorbdemsky <bdemsky>
Thu, 2 Aug 2007 08:23:08 +0000 (08:23 +0000)
committerbdemsky <bdemsky>
Thu, 2 Aug 2007 08:23:08 +0000 (08:23 +0000)
Robust/src/IR/Flat/BuildCode.java
Robust/src/IR/Flat/FKind.java
Robust/src/IR/Flat/FlatGlobalConvNode.java [new file with mode: 0644]

index 05e360a11f676c8601f7e2430816099f05a18fdd..96f6d96e1a220fc75395dd9f70cd1df6c1c6f188 100644 (file)
@@ -1093,6 +1093,12 @@ public class BuildCode {
 
     private void generateFlatNode(FlatMethod fm, FlatNode fn, PrintWriter output) {
        switch(fn.kind()) {
+       case FKind.FlatAtomicEnterNode:
+           generateFlatAtomicEnterNode(fm, (FlatAtomicEnterNode) fn, output);
+           return;
+       case FKind.FlatAtomicExitNode:
+           generateFlatAtomicExitNode(fm, (FlatAtomicExitNode) fn, output);
+           return;
        case FKind.FlatTagDeclaration:
            generateFlatTagDeclaration(fm, (FlatTagDeclaration) fn,output);
            return;
@@ -1146,6 +1152,13 @@ public class BuildCode {
 
     }
 
+    
+    public void generateFlatAtomicEnterNode(FlatMethod fm,  FlatAtomicEnterNode faen, PrintWriter output) {
+    }
+
+    public void generateFlatAtomicExitNode(FlatMethod fm,  FlatAtomicExitNode faen, PrintWriter output) {
+    }
+
     private void generateFlatCheckNode(FlatMethod fm,  FlatCheckNode fcn, PrintWriter output) {
 
        if (state.CONSCHECK) {
index b30de0d2651b2eb3b5ba4aae6811ceea7c3c4512..6ccc78c73d77e6d80b08e03a35dbe10b3e06340c 100644 (file)
@@ -20,4 +20,5 @@ public class FKind {
     public static final int FlatMethod=17;
     public static final int FlatAtomicEnterNode=18;
     public static final int FlatAtomicExitNode=19;
+    public static final int FlagGlobalConvNode=20;
 }
diff --git a/Robust/src/IR/Flat/FlatGlobalConvNode.java b/Robust/src/IR/Flat/FlatGlobalConvNode.java
new file mode 100644 (file)
index 0000000..209233e
--- /dev/null
@@ -0,0 +1,45 @@
+package IR.Flat;
+import IR.TypeDescriptor;
+
+public class FlatGlobalConvNode extends FlatNode {
+    TempDescriptor src;
+    TempDescriptor dst;
+    boolean makePtr;
+
+    public FlatGlobalConvNode(TempDescriptor src, TempDescriptor dst, boolean makePtr) {
+       this.src=src;
+       this.dst=dst;
+       this.makePtr=makePtr;
+    }
+
+    public String toString() {
+       if (makePtr)
+           return dst.toString()+"=(PTR)"+src.toString();
+       else
+           return dst.toString()+"=(OID)"+src.toString();
+    }
+
+    public int kind() {
+       return FKind.FlatGlobalConvNode;
+    }
+
+    public boolean getMakePtr() {
+       return makePtr;
+    }
+
+    public TempDescriptor getSrc() {
+       return src;
+    }
+
+    public TempDescriptor getDst() {
+       return dst;
+    }
+
+    public TempDescriptor [] writesTemps() {
+       return new TempDescriptor[] {dst};
+    }
+
+    public TempDescriptor [] readsTemps() {
+       return new TempDescriptor[] {src};
+    }
+}