Mercurial > hg > truffle
diff graal/GraalCompiler/src/com/sun/c1x/ir/ArithmeticOp.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 | 51ebe5f0516f |
children | 91d3952f7eb7 |
line wrap: on
line diff
--- a/graal/GraalCompiler/src/com/sun/c1x/ir/ArithmeticOp.java Mon May 09 14:11:13 2011 +0200 +++ b/graal/GraalCompiler/src/com/sun/c1x/ir/ArithmeticOp.java Mon May 09 17:00:25 2011 +0200 @@ -33,10 +33,33 @@ */ public final class ArithmeticOp extends Op2 { - private static final int INPUT_COUNT = 0; + private static final int INPUT_COUNT = 1; + private static final int INPUT_STATE_BEFORE = 0; + private static final int SUCCESSOR_COUNT = 0; - private final FrameState stateBefore; + @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 stateBefore() { + return (FrameState) inputs().get(super.inputCount() + INPUT_STATE_BEFORE); + } + + private FrameState setStateBefore(FrameState n) { + return (FrameState) inputs().set(super.inputCount() + INPUT_STATE_BEFORE, n); + } + private final boolean isStrictFP; /** @@ -51,12 +74,7 @@ public ArithmeticOp(int opcode, CiKind kind, Value x, Value y, boolean isStrictFP, FrameState stateBefore, Graph graph) { super(kind, opcode, x, y, INPUT_COUNT, SUCCESSOR_COUNT, graph); this.isStrictFP = isStrictFP; - this.stateBefore = stateBefore; - } - - @Override - public FrameState stateBefore() { - return stateBefore; + setStateBefore(stateBefore); } /** @@ -74,7 +92,7 @@ */ @Override public boolean canTrap() { - return stateBefore != null; + return stateBefore() != null; } @Override @@ -90,4 +108,9 @@ public void print(LogStream out) { out.print(x()).print(' ').print(Bytecodes.operator(opcode)).print(' ').print(y()); } + + @Override + public String shortName() { + return Bytecodes.operator(opcode); + } }