diff graal/GraalCompiler/src/com/sun/c1x/ir/MonitorEnter.java @ 2616:3558ca7088c0

FrameState and Graphviz changes: * removed popx, pushx methods from GraphBuilder * FrameState subclass of Value * added String shortName() to Node * added GraphvizPrinter option to use short names * small hack in GraphvizPrinter: omit FrameState->Local connections * added GraalGraphviz to implicit classpatch (read from GRAAL env var)
author Lukas Stadler <lukas.stadler@jku.at>
date Mon, 09 May 2011 17:00:25 +0200
parents 1c36b17f7ee0
children dd115f80acf8
line wrap: on
line diff
--- a/graal/GraalCompiler/src/com/sun/c1x/ir/MonitorEnter.java	Mon May 09 14:11:13 2011 +0200
+++ b/graal/GraalCompiler/src/com/sun/c1x/ir/MonitorEnter.java	Mon May 09 17:00:25 2011 +0200
@@ -31,10 +31,32 @@
  */
 public final class MonitorEnter extends AccessMonitor {
 
-    private static final int INPUT_COUNT = 0;
+    private static final int INPUT_COUNT = 1;
+    private static final int INPUT_STATE_AFTER = 0;
+
     private static final int SUCCESSOR_COUNT = 0;
 
-    private FrameState stateAfter;
+    @Override
+    protected int inputCount() {
+        return super.inputCount() + INPUT_COUNT;
+    }
+
+    @Override
+    protected int successorCount() {
+        return super.successorCount() + SUCCESSOR_COUNT;
+    }
+
+    /**
+     * The state for this instruction.
+     */
+     @Override
+    public FrameState stateAfter() {
+        return (FrameState) inputs().get(super.inputCount() + INPUT_STATE_AFTER);
+    }
+
+    public FrameState setStateAfter(FrameState n) {
+        return (FrameState) inputs().set(super.inputCount() + INPUT_STATE_AFTER, n);
+    }
 
     /**
      * Creates a new MonitorEnter instruction.
@@ -54,15 +76,6 @@
         v.visitMonitorEnter(this);
     }
 
-    public void setStateAfter(FrameState frameState) {
-        this.stateAfter = frameState;
-    }
-
-    @Override
-    public FrameState stateAfter() {
-        return stateAfter;
-    }
-
     @Override
     public void print(LogStream out) {
         out.print("enter monitor[").print(lockNumber).print("](").print(object()).print(')');