public abstract class Select extends BranchInstruction implements VariableLengthInstruction, StackConsumer, StackProducer
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
|
index, position, targetlength, opcode| Modifier and Type | Method and Description |
|---|---|
protected Object |
clone() |
boolean |
containsTarget(InstructionHandle ih)
Checks whether this targeter targets the specified instruction handle.
|
void |
dump(DataOutputStream out)
Dump instruction as byte code to stream out.
|
int[] |
getIndices() |
int[] |
getMatchs() |
InstructionHandle[] |
getTargets() |
protected void |
initFromFile(ByteSequence bytes,
boolean wide)
Read needed data (e.g.
|
void |
setTarget(int i,
InstructionHandle target)
Set branch target for `i'th case
|
String |
toString(boolean verbose)
Long output format:
<position in byte code> <name of opcode> "["<opcode number>"]" "("<length of instruction>")"
"<"<target instruction>">" "@"<branch target offset>
|
protected int |
updatePosition(int offset,
int maxOffset)
Since this is a variable length instruction, it may shift the following instructions which then need to update their
position.
|
void |
updateTarget(InstructionHandle oldIh,
InstructionHandle newIh)
Replaces the target of this targeter from this old handle to the new handle.
|
getIndex, getPosition, getTarget, getTargetOffset, getTargetOffset, setIndex, setPosition, setTargetaccept, consumeStack, copy, equals, getComparator, getLength, getName, getOpcode, hashCode, isValidByte, isValidShort, produceStack, readInstruction, setComparator, toString, toStringfinalize, getClass, notify, notifyAll, wait, wait, waitconsumeStackproduceStack@Deprecated protected int[] match
@Deprecated protected int[] indices
@Deprecated protected InstructionHandle[] targets
@Deprecated protected int fixed_length
@Deprecated protected int match_length
@Deprecated protected int padding
protected Object clone() throws CloneNotSupportedException
clone in class ObjectCloneNotSupportedExceptionpublic boolean containsTarget(InstructionHandle ih)
InstructionTargetercontainsTarget in interface InstructionTargetercontainsTarget in class BranchInstructionpublic void dump(DataOutputStream out) throws IOException
dump in class BranchInstructionout - Output streamIOExceptionpublic int[] getIndices()
public int[] getMatchs()
public InstructionHandle[] getTargets()
protected void initFromFile(ByteSequence bytes, boolean wide) throws IOException
initFromFile in class BranchInstructionbytes - input streamwide - wide prefix?IOException - may be thrown if the implementation needs to read data from the fileInstructionListpublic void setTarget(int i, InstructionHandle target)
public String toString(boolean verbose)
BranchInstructiontoString in class BranchInstructionverbose - long/short format switchprotected int updatePosition(int offset, int maxOffset)
updatePosition in class BranchInstructionoffset - additional offset caused by preceding (variable length) instructionsmaxOffset - the maximum offset that may be caused by these instructionspublic void updateTarget(InstructionHandle oldIh, InstructionHandle newIh)
InstructionTargeterupdateTarget in interface InstructionTargeterupdateTarget in class BranchInstructionoldIh - old targetnewIh - new targetCopyright © 2004–2022 The Apache Software Foundation. All rights reserved.