From: bdemsky Date: Thu, 2 Aug 2007 08:23:08 +0000 (+0000) Subject: add new node X-Git-Tag: preEdgeChange~505 X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=06936a72175edc5eb6109f359d0c3c9df932a643;p=IRC.git add new node --- diff --git a/Robust/src/IR/Flat/BuildCode.java b/Robust/src/IR/Flat/BuildCode.java index 05e360a1..96f6d96e 100644 --- a/Robust/src/IR/Flat/BuildCode.java +++ b/Robust/src/IR/Flat/BuildCode.java @@ -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) { diff --git a/Robust/src/IR/Flat/FKind.java b/Robust/src/IR/Flat/FKind.java index b30de0d2..6ccc78c7 100644 --- a/Robust/src/IR/Flat/FKind.java +++ b/Robust/src/IR/Flat/FKind.java @@ -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 index 00000000..209233e9 --- /dev/null +++ b/Robust/src/IR/Flat/FlatGlobalConvNode.java @@ -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}; + } +}