Mercurial > hg > truffle
changeset 16354:b6e70c59b32d
Introduce InstructionStateProcedure.
author | Josef Eisl <josef.eisl@jku.at> |
---|---|
date | Wed, 02 Jul 2014 15:26:28 +0200 |
parents | 7c47610015a9 |
children | eeb911056079 |
files | graal/com.oracle.graal.lir/src/com/oracle/graal/lir/LIRInstruction.java graal/com.oracle.graal.lir/src/com/oracle/graal/lir/LIRInstructionClass.java |
diffstat | 2 files changed, 17 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/LIRInstruction.java Wed Jul 02 14:56:30 2014 +0200 +++ b/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/LIRInstruction.java Wed Jul 02 15:26:28 2014 +0200 @@ -121,19 +121,29 @@ } @Override - final protected Value doValue(LIRInstruction instruction, Value value) { + protected final Value doValue(LIRInstruction instruction, Value value) { throw GraalInternalError.shouldNotReachHere("This doValue() methods should never be called"); } @Override - final public Value doValue(LIRInstruction instruction, Value value, OperandMode mode, EnumSet<OperandFlag> flags) { + public final Value doValue(LIRInstruction instruction, Value value, OperandMode mode, EnumSet<OperandFlag> flags) { return doValue(value, mode, flags); } } - public abstract static class StateProcedure { + public abstract static class InstructionStateProcedure { + + protected abstract void doState(LIRInstruction instruction, LIRFrameState state); + } + + public abstract static class StateProcedure extends InstructionStateProcedure { protected abstract void doState(LIRFrameState state); + + @Override + protected final void doState(LIRInstruction instruction, LIRFrameState state) { + doState(state); + } } /** @@ -349,7 +359,7 @@ instructionClass.forEachState(this, proc); } - public final void forEachState(StateProcedure proc) { + public final void forEachState(InstructionStateProcedure proc) { instructionClass.forEachState(this, proc); }
--- a/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/LIRInstructionClass.java Wed Jul 02 14:56:30 2014 +0200 +++ b/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/LIRInstructionClass.java Wed Jul 02 15:26:28 2014 +0200 @@ -28,10 +28,10 @@ import com.oracle.graal.api.code.*; import com.oracle.graal.api.meta.*; import com.oracle.graal.compiler.common.*; +import com.oracle.graal.lir.LIRInstruction.InstructionStateProcedure; import com.oracle.graal.lir.LIRInstruction.InstructionValueProcedure; import com.oracle.graal.lir.LIRInstruction.OperandFlag; import com.oracle.graal.lir.LIRInstruction.OperandMode; -import com.oracle.graal.lir.LIRInstruction.StateProcedure; import com.oracle.graal.lir.LIRInstruction.ValuePositionProcedure; public class LIRInstructionClass extends LIRIntrospection { @@ -371,11 +371,11 @@ } } - public final void forEachState(LIRInstruction obj, StateProcedure proc) { + public final void forEachState(LIRInstruction obj, InstructionStateProcedure proc) { for (int i = 0; i < stateOffsets.length; i++) { LIRFrameState state = getState(obj, stateOffsets[i]); if (state != null) { - proc.doState(state); + proc.doState(obj, state); } } }