public abstract class Instruction
extends java.lang.Object
Modifier and Type | Field and Description |
---|---|
private InstructionSet.ByteCode |
byteCode |
private Instruction |
firstChild |
private java.util.LinkedList<InstructionSet.ConditionalBranch> |
forwardConditionalBranchTargets |
private java.util.LinkedList<InstructionSet.Branch> |
forwardUnconditionalBranchTargets |
private Instruction |
lastChild |
private int |
length |
protected MethodModel |
method |
private Instruction |
nextExpr |
private Instruction |
nextPC |
private Instruction |
parentExpr |
protected int |
pc |
private Instruction |
prevExpr |
private Instruction |
prevPC |
private java.util.LinkedList<InstructionSet.ConditionalBranch> |
reverseConditionalBranchTargets |
private java.util.LinkedList<InstructionSet.Branch> |
reverseUnconditionalBranchTargets |
Modifier | Constructor and Description |
---|---|
protected |
Instruction(MethodModel _method,
InstructionSet.ByteCode _byteCode,
ByteReader _byteReader,
boolean _wide) |
protected |
Instruction(MethodModel _method,
InstructionSet.ByteCode _byteCode,
int _pc) |
protected MethodModel method
private final InstructionSet.ByteCode byteCode
private int length
protected int pc
private Instruction nextPC
private Instruction prevPC
private Instruction nextExpr
private Instruction prevExpr
private Instruction parentExpr
private java.util.LinkedList<InstructionSet.ConditionalBranch> forwardConditionalBranchTargets
private java.util.LinkedList<InstructionSet.ConditionalBranch> reverseConditionalBranchTargets
private java.util.LinkedList<InstructionSet.Branch> forwardUnconditionalBranchTargets
private java.util.LinkedList<InstructionSet.Branch> reverseUnconditionalBranchTargets
private Instruction firstChild
private Instruction lastChild
protected Instruction(MethodModel _method, InstructionSet.ByteCode _byteCode, int _pc)
protected Instruction(MethodModel _method, InstructionSet.ByteCode _byteCode, ByteReader _byteReader, boolean _wide)
abstract java.lang.String getDescription()
public void setChildren(Instruction _firstChild, Instruction _lastChild)
public Instruction getPrevExpr()
public Instruction getNextExpr()
public void setNextPC(Instruction _nextByPC)
public void setPrevPC(Instruction _prevByPC)
public void setPrevExpr(Instruction _prevExpr)
public void setNextExpr(Instruction _nextExpr)
public Instruction toInstruction()
public int getLength()
public void setLength(int _length)
public final InstructionSet.ByteCode getByteCode()
public int getThisPC()
public int getStartPC()
public int getStackConsumeCount()
public int getStackProduceCount()
public int getStackDelta()
public java.lang.String toString()
toString
in class java.lang.Object
public boolean isBranch()
public int compareTo(Instruction _other)
public boolean isAfter(Instruction _other)
public boolean isAfterOrEqual(Instruction _other)
public boolean isBefore(Instruction _other)
public boolean isBeforeOrEqual(Instruction _other)
public Instruction getFirstChild()
public Instruction getLastChild()
public Instruction getStartInstruction()
public MethodModel getMethod()
public Instruction getNextPC()
public Instruction getPrevPC()
public void setParentExpr(Instruction _parentExpr)
public Instruction getParentExpr()
public Instruction getRootExpr()
public boolean isReverseConditionalBranchTarget()
public boolean isForwardConditionalBranchTarget()
public boolean isReverseUnconditionalBranchTarget()
public boolean isForwardUnconditionalBranchTarget()
public boolean isReverseBranchTarget()
public boolean isConditionalBranchTarget()
public boolean isUnconditionalBranchTarget()
public boolean isForwardBranchTarget()
public boolean isBranchTarget()
public boolean producesStack()
public Instruction getReal()
public InstructionSet.Branch asBranch()
public boolean consumesStack()
public void addBranchTarget(InstructionSet.Branch _branch)
public void removeBranchTarget(InstructionSet.Branch _branch)
public java.util.LinkedList<InstructionSet.Branch> getForwardUnconditionalBranches()
public java.util.LinkedList<InstructionSet.ConditionalBranch> getForwardConditionalBranches()
public java.util.LinkedList<InstructionSet.Branch> getReverseUnconditionalBranches()
public java.util.LinkedList<InstructionSet.ConditionalBranch> getReverseConditionalBranches()
public boolean isForwardBranch()
public boolean sameAs(Instruction _other)