We use our super's target
property as the default target.
LOOKUPSWITCH
, TABLESWITCH
, InstructionList
Modifier and Type | Field and Description |
---|---|
protected int | fixed_length
Deprecated
(since 6.0) will be made private; do not access directly, use getter/setter
|
protected int[] | indices
Deprecated
(since 6.0) will be made private; do not access directly, use getter/setter
|
protected int[] | match
Deprecated
(since 6.0) will be made private; do not access directly, use getter/setter
|
protected int | match_length
Deprecated
(since 6.0) will be made private; do not access directly, use getter/setter
|
protected int | padding
Deprecated
(since 6.0) will be made private; do not access directly, use getter/setter
|
protected InstructionHandle[] | targets
Deprecated
(since 6.0) will be made private; do not access directly, use getter/setter
|
Access | Constructor and Description |
---|---|
pack-priv | |
pack-priv | Select(final short opcode, final int[]
array of matching values match, final InstructionHandle[] instruction targets targets, final InstructionHandle default instruction target defaultTarget)(Match, target) pairs for switch. |
Modifier and Type | Method and Description |
---|---|
protected Object | |
public boolean | Returns: true, if ih is target of this instructionOverrides com. Implements com. |
pack-priv void | dispose()
Overrides com. |
public void | dump(final DataOutputStream
Output stream out)Overrides com. |
pack-priv final int | |
public int[] | |
pack-priv final int | |
pack-priv final int | |
pack-priv final int | |
public int[] | |
pack-priv final int | |
pack-priv final InstructionHandle | |
public InstructionHandle[] | |
protected void | initFromFile(final ByteSequence
input stream bytes, final boolean wide prefix? wide)Overrides com. |
pack-priv final void | |
pack-priv final int | |
pack-priv final void | |
pack-priv final void | |
pack-priv final void | |
pack-priv final int | |
public void | |
pack-priv final void | |
public String | Returns: mnemonic for instructionlong/short format switch verbose)Overrides com. |
protected int | Returns: additional offset caused by possible change of this instruction's lengthadditional offset caused by preceding (variable length) instructions offset, final int the maximum offset that may be caused by these instructions maxOffset)Overrides com. |
public void | updateTarget(final InstructionHandle
old target oldIh, final InstructionHandle new target newIh)Overrides com. Implements com. |
fixed_length | back to summary |
---|---|
protected int fixed_length
Deprecated (since 6.0) will be made private; do not access directly, use getter/setter |
indices | back to summary |
---|---|
protected int[] indices
Deprecated (since 6.0) will be made private; do not access directly, use getter/setter |
match | back to summary |
---|---|
protected int[] match
Deprecated (since 6.0) will be made private; do not access directly, use getter/setter |
match_length | back to summary |
---|---|
protected int match_length
Deprecated (since 6.0) will be made private; do not access directly, use getter/setter |
padding | back to summary |
---|---|
protected int padding
Deprecated (since 6.0) will be made private; do not access directly, use getter/setter |
targets | back to summary |
---|---|
protected InstructionHandle[] targets
Deprecated (since 6.0) will be made private; do not access directly, use getter/setter |
Select | back to summary |
---|---|
pack-priv Select() Empty constructor needed for Instruction.readInstruction. Not to be used otherwise. |
Select | back to summary |
---|---|
pack-priv Select(final short opcode, final int[] match, final InstructionHandle[] targets, final InstructionHandle defaultTarget) (Match, target) pairs for switch. 'Match' and 'targets' must have the same length of course.
|
clone | back to summary |
---|---|
protected Object clone() throws CloneNotSupportedException Overrides java. Doc from java. Creates and returns a copy of this object. The precise meaning
of "copy" may depend on the class of the object. The general
intent is that, for any object will be true, and that the expression:x.clone() != x will bex.clone().getClass() == x.getClass() true , but these are not absolute requirements.
While it is typically the case that:
will bex.clone().equals(x) true , this is not an absolute requirement.
By convention, the returned object should be obtained by calling
By convention, the object returned by this method should be independent
of this object (which is being cloned). To achieve this independence,
it may be necessary to modify one or more fields of the object returned
by
|
containsTarget | back to summary |
---|---|
public boolean containsTarget(final InstructionHandle ih) Overrides com. Implements com. Doc from com. Checks whether this targeter targets the specified instruction handle.
|
dispose | back to summary |
---|---|
pack-priv void dispose() Overrides com. Inform targets that they're not targeted anymore.
|
dump | back to summary |
---|---|
public void dump(final DataOutputStream out) throws IOException Overrides com. Dump instruction as byte code to stream out.
|
getFixedLength | back to summary |
---|---|
pack-priv final int getFixedLength()
|
getIndices | back to summary |
---|---|
public int[] getIndices()
|
getIndices | back to summary |
---|---|
pack-priv final int getIndices(final int index)
|
getMatch | back to summary |
---|---|
pack-priv final int getMatch(final int index)
|
getMatchLength | back to summary |
---|---|
pack-priv final int getMatchLength()
|
getMatchs | back to summary |
---|---|
public int[] getMatchs()
|
getPadding | back to summary |
---|---|
pack-priv final int getPadding()
|
getTarget | back to summary |
---|---|
pack-priv final InstructionHandle getTarget(final int index)
|
getTargets | back to summary |
---|---|
public InstructionHandle[] getTargets()
|
initFromFile | back to summary |
---|---|
protected void initFromFile(final ByteSequence bytes, final boolean wide) throws IOException Overrides com. Read needed data (e.g. index) from file.
|
setFixedLength | back to summary |
---|---|
pack-priv final void setFixedLength(final int fixedLength)
|
setIndices | back to summary |
---|---|
pack-priv final int setIndices(final int i, final int value)
|
setIndices | back to summary |
---|---|
pack-priv final void setIndices(final int[] array)
|
setMatch | back to summary |
---|---|
pack-priv final void setMatch(final int index, final int value)
|
setMatches | back to summary |
---|---|
pack-priv final void setMatches(final int[] array)
|
setMatchLength | back to summary |
---|---|
pack-priv final int setMatchLength(final int matchLength)
|
setTarget | back to summary |
---|---|
public void setTarget(final int i, final InstructionHandle target) Set branch target for 'i'th case |
setTargets | back to summary |
---|---|
pack-priv final void setTargets(final InstructionHandle[] array)
|
toString | back to summary |
---|---|
public String toString(final boolean verbose) Overrides com. Doc from com. Long output format: <position in byte code> <name of opcode> "["<opcode number>"]" "("<length of instruction>")" "<"<target instruction>">" "@"<branch target offset> |
updatePosition | back to summary |
---|---|
protected int updatePosition(final int offset, final int maxOffset) Overrides com. Since this is a variable length instruction, it may shift the following instructions which then need to update their position. Called by InstructionList.setPositions when setting the position for every instruction. In the presence of variable length instructions 'setPositions' performs multiple passes over the instruction list to calculate the correct (byte) positions and offsets by calling this function.
|
updateTarget | back to summary |
---|---|
public void updateTarget(final InstructionHandle oldIh, final InstructionHandle newIh) Overrides com. Implements com. Doc from com. Replaces the target of this targeter from this old handle to the new handle.
|