public final class TableSwitch extends InstructionFormat
Instruction
contains
an explanation of the role of InstructionFormats in the
opt compiler's IR.ALoad_format, ALoad_traits, ARCH_INDEPENDENT_INSTR_FORMAT_END_format, AStore_format, AStore_traits, Athrow_format, Athrow_traits, Attempt_format, Attempt_traits, BBend_format, BBend_traits, Binary_format, Binary_traits, BooleanCmp_format, BooleanCmp_traits, BoundsCheck_format, BoundsCheck_traits, CacheOp_format, CacheOp_traits, Call_format, Call_traits, CondMove_format, CondMove_traits, Empty_format, Empty_traits, GetField_format, GetField_traits, GetStatic_format, GetStatic_traits, Goto_format, Goto_traits, GuardedBinary_format, GuardedBinary_traits, GuardedSet_format, GuardedSet_traits, GuardedUnary_format, GuardedUnary_traits, IfCmp_format, IfCmp_traits, IfCmp2_format, IfCmp2_traits, InlineGuard_format, InlineGuard_traits, InstanceOf_format, InstanceOf_traits, InstrumentedCounter_format, InstrumentedCounter_traits, Label_format, Label_traits, Load_format, Load_traits, LookupSwitch_format, LookupSwitch_traits, LowTableSwitch_format, LowTableSwitch_traits, MIN_OPERAND_ARRAY_LENGTH, MonitorOp_format, MonitorOp_traits, Move_format, Move_traits, Multianewarray_format, Multianewarray_traits, New_format, New_traits, NewArray_format, NewArray_traits, Nullary_format, Nullary_traits, NullCheck_format, NullCheck_traits, OsrBarrier_format, OsrBarrier_traits, OsrPoint_format, OsrPoint_traits, Phi_format, Phi_traits, Prepare_format, Prepare_traits, Prologue_format, Prologue_traits, PutField_format, PutField_traits, PutStatic_format, PutStatic_traits, Return_format, Return_traits, Store_format, Store_traits, StoreCheck_format, StoreCheck_traits, TableSwitch_format, TableSwitch_traits, Trap_format, Trap_traits, TrapIf_format, TrapIf_traits, TypeCheck_format, TypeCheck_traits, Unary_format, Unary_traits, Unassigned_format, ZeroCheck_format, ZeroCheck_traits
Constructor and Description |
---|
TableSwitch() |
Modifier and Type | Method and Description |
---|---|
static boolean |
conforms(Instruction i)
InstructionFormat identification method for TableSwitch.
|
static boolean |
conforms(Operator o)
InstructionFormat identification method for TableSwitch.
|
static Instruction |
create(Operator o,
Operand Value,
Operand Unknown1,
Operand Unknown2,
IntConstantOperand Low,
IntConstantOperand High,
BranchOperand Default,
BranchProfileOperand DefaultBranchProfile,
int numVarOps)
Create an instruction of the TableSwitch instruction format.
|
static BranchProfileOperand |
getBranchProfile(Instruction i,
int k)
Get the k'th operand called BranchProfile from the
argument instruction.
|
static BranchProfileOperand |
getClearBranchProfile(Instruction i,
int k)
Get the k'th operand called BranchProfile from the argument
instruction clearing its instruction pointer.
|
static BranchOperand |
getClearDefault(Instruction i)
Get the operand called Default from the argument
instruction clearing its instruction pointer.
|
static BranchProfileOperand |
getClearDefaultBranchProfile(Instruction i)
Get the operand called DefaultBranchProfile from the argument
instruction clearing its instruction pointer.
|
static IntConstantOperand |
getClearHigh(Instruction i)
Get the operand called High from the argument
instruction clearing its instruction pointer.
|
static IntConstantOperand |
getClearLow(Instruction i)
Get the operand called Low from the argument
instruction clearing its instruction pointer.
|
static BranchOperand |
getClearTarget(Instruction i,
int k)
Get the k'th operand called Target from the argument
instruction clearing its instruction pointer.
|
static Operand |
getClearUnknown1(Instruction i)
Get the operand called Unknown1 from the argument
instruction clearing its instruction pointer.
|
static Operand |
getClearUnknown2(Instruction i)
Get the operand called Unknown2 from the argument
instruction clearing its instruction pointer.
|
static Operand |
getClearValue(Instruction i)
Get the operand called Value from the argument
instruction clearing its instruction pointer.
|
static BranchOperand |
getDefault(Instruction i)
Get the operand called Default from the
argument instruction.
|
static BranchProfileOperand |
getDefaultBranchProfile(Instruction i)
Get the operand called DefaultBranchProfile from the
argument instruction.
|
static IntConstantOperand |
getHigh(Instruction i)
Get the operand called High from the
argument instruction.
|
static IntConstantOperand |
getLow(Instruction i)
Get the operand called Low from the
argument instruction.
|
static int |
getNumberOfBranchProfiles(Instruction i)
How many variable-length operands called BranchProfiles
does the argument instruction have?
|
static int |
getNumberOfTargets(Instruction i)
How many variable-length operands called Targets
does the argument instruction have?
|
static BranchOperand |
getTarget(Instruction i,
int k)
Get the k'th operand called Target from the
argument instruction.
|
static Operand |
getUnknown1(Instruction i)
Get the operand called Unknown1 from the
argument instruction.
|
static Operand |
getUnknown2(Instruction i)
Get the operand called Unknown2 from the
argument instruction.
|
static Operand |
getValue(Instruction i)
Get the operand called Value from the
argument instruction.
|
static boolean |
hasBranchProfile(Instruction i,
int k)
Does the argument instruction have a non-null
k'th operand named BranchProfile?
|
static boolean |
hasBranchProfiles(Instruction i)
Does the argument instruction have any operands
named BranchProfile?
|
static boolean |
hasDefault(Instruction i)
Does the argument instruction have a non-null
operand named Default?
|
static boolean |
hasDefaultBranchProfile(Instruction i)
Does the argument instruction have a non-null
operand named DefaultBranchProfile?
|
static boolean |
hasHigh(Instruction i)
Does the argument instruction have a non-null
operand named High?
|
static boolean |
hasLow(Instruction i)
Does the argument instruction have a non-null
operand named Low?
|
static boolean |
hasTarget(Instruction i,
int k)
Does the argument instruction have a non-null
k'th operand named Target?
|
static boolean |
hasTargets(Instruction i)
Does the argument instruction have any operands
named Target?
|
static boolean |
hasUnknown1(Instruction i)
Does the argument instruction have a non-null
operand named Unknown1?
|
static boolean |
hasUnknown2(Instruction i)
Does the argument instruction have a non-null
operand named Unknown2?
|
static boolean |
hasValue(Instruction i)
Does the argument instruction have a non-null
operand named Value?
|
static int |
indexOfBranchProfile(Instruction i,
int k)
Return the index of the k'th operand called BranchProfile
in the argument instruction.
|
static int |
indexOfBranchProfiles(Instruction i)
Return the index of the first operand called BranchProfile
in the argument instruction.
|
static int |
indexOfDefault(Instruction i)
Return the index of the operand called Default
in the argument instruction.
|
static int |
indexOfDefaultBranchProfile(Instruction i)
Return the index of the operand called DefaultBranchProfile
in the argument instruction.
|
static int |
indexOfHigh(Instruction i)
Return the index of the operand called High
in the argument instruction.
|
static int |
indexOfLow(Instruction i)
Return the index of the operand called Low
in the argument instruction.
|
static int |
indexOfTarget(Instruction i,
int k)
Return the index of the k'th operand called Target
in the argument instruction.
|
static int |
indexOfTargets(Instruction i)
Return the index of the first operand called Target
in the argument instruction.
|
static int |
indexOfUnknown1(Instruction i)
Return the index of the operand called Unknown1
in the argument instruction.
|
static int |
indexOfUnknown2(Instruction i)
Return the index of the operand called Unknown2
in the argument instruction.
|
static int |
indexOfValue(Instruction i)
Return the index of the operand called Value
in the argument instruction.
|
static Instruction |
mutate(Instruction i,
Operator o,
Operand Value,
Operand Unknown1,
Operand Unknown2,
IntConstantOperand Low,
IntConstantOperand High,
BranchOperand Default,
BranchProfileOperand DefaultBranchProfile,
int numVarOps)
Mutate the argument instruction into an instruction of the
TableSwitch instruction format having the specified
operator and operands.
|
static void |
resizeNumberOfBranchProfiles(Instruction i,
int numVarOps)
Change the number of BranchProfiles that may be stored in
the argument instruction to numVarOps.
|
static void |
resizeNumberOfTargets(Instruction i,
int numVarOps)
Change the number of Targets that may be stored in
the argument instruction to numVarOps.
|
static void |
setBranchProfile(Instruction i,
int k,
BranchProfileOperand o)
Set the k'th operand called BranchProfile in the argument
instruction to the argument operand.
|
static void |
setDefault(Instruction i,
BranchOperand Default)
Set the operand called Default in the argument
instruction to the argument operand.
|
static void |
setDefaultBranchProfile(Instruction i,
BranchProfileOperand DefaultBranchProfile)
Set the operand called DefaultBranchProfile in the argument
instruction to the argument operand.
|
static void |
setHigh(Instruction i,
IntConstantOperand High)
Set the operand called High in the argument
instruction to the argument operand.
|
static void |
setLow(Instruction i,
IntConstantOperand Low)
Set the operand called Low in the argument
instruction to the argument operand.
|
static void |
setTarget(Instruction i,
int k,
BranchOperand o)
Set the k'th operand called Target in the argument
instruction to the argument operand.
|
static void |
setUnknown1(Instruction i,
Operand Unknown1)
Set the operand called Unknown1 in the argument
instruction to the argument operand.
|
static void |
setUnknown2(Instruction i,
Operand Unknown2)
Set the operand called Unknown2 in the argument
instruction to the argument operand.
|
static void |
setValue(Instruction i,
Operand Value)
Set the operand called Value in the argument
instruction to the argument operand.
|
fail, fail
public TableSwitch()
public static boolean conforms(Instruction i)
i
- an instructiontrue
if the InstructionFormat of the argument
instruction is TableSwitch or false
if it is not.public static boolean conforms(Operator o)
o
- an instructiontrue
if the InstructionFormat of the argument
operator is TableSwitch or false
if it is not.public static Operand getValue(Instruction i)
i
- the instruction to fetch the operand frompublic static Operand getClearValue(Instruction i)
i
- the instruction to fetch the operand frompublic static void setValue(Instruction i, Operand Value)
i
- the instruction in which to store the operandValue
- the operand to storepublic static int indexOfValue(Instruction i)
i
- the instruction to access.public static boolean hasValue(Instruction i)
i
- the instruction to access.true
if the instruction has an non-null
operand named Value or false
if it does not.public static Operand getUnknown1(Instruction i)
i
- the instruction to fetch the operand frompublic static Operand getClearUnknown1(Instruction i)
i
- the instruction to fetch the operand frompublic static void setUnknown1(Instruction i, Operand Unknown1)
i
- the instruction in which to store the operandUnknown1
- the operand to storepublic static int indexOfUnknown1(Instruction i)
i
- the instruction to access.public static boolean hasUnknown1(Instruction i)
i
- the instruction to access.true
if the instruction has an non-null
operand named Unknown1 or false
if it does not.public static Operand getUnknown2(Instruction i)
i
- the instruction to fetch the operand frompublic static Operand getClearUnknown2(Instruction i)
i
- the instruction to fetch the operand frompublic static void setUnknown2(Instruction i, Operand Unknown2)
i
- the instruction in which to store the operandUnknown2
- the operand to storepublic static int indexOfUnknown2(Instruction i)
i
- the instruction to access.public static boolean hasUnknown2(Instruction i)
i
- the instruction to access.true
if the instruction has an non-null
operand named Unknown2 or false
if it does not.public static IntConstantOperand getLow(Instruction i)
i
- the instruction to fetch the operand frompublic static IntConstantOperand getClearLow(Instruction i)
i
- the instruction to fetch the operand frompublic static void setLow(Instruction i, IntConstantOperand Low)
i
- the instruction in which to store the operandLow
- the operand to storepublic static int indexOfLow(Instruction i)
i
- the instruction to access.public static boolean hasLow(Instruction i)
i
- the instruction to access.true
if the instruction has an non-null
operand named Low or false
if it does not.public static IntConstantOperand getHigh(Instruction i)
i
- the instruction to fetch the operand frompublic static IntConstantOperand getClearHigh(Instruction i)
i
- the instruction to fetch the operand frompublic static void setHigh(Instruction i, IntConstantOperand High)
i
- the instruction in which to store the operandHigh
- the operand to storepublic static int indexOfHigh(Instruction i)
i
- the instruction to access.public static boolean hasHigh(Instruction i)
i
- the instruction to access.true
if the instruction has an non-null
operand named High or false
if it does not.public static BranchOperand getDefault(Instruction i)
i
- the instruction to fetch the operand frompublic static BranchOperand getClearDefault(Instruction i)
i
- the instruction to fetch the operand frompublic static void setDefault(Instruction i, BranchOperand Default)
i
- the instruction in which to store the operandDefault
- the operand to storepublic static int indexOfDefault(Instruction i)
i
- the instruction to access.public static boolean hasDefault(Instruction i)
i
- the instruction to access.true
if the instruction has an non-null
operand named Default or false
if it does not.public static BranchProfileOperand getDefaultBranchProfile(Instruction i)
i
- the instruction to fetch the operand frompublic static BranchProfileOperand getClearDefaultBranchProfile(Instruction i)
i
- the instruction to fetch the operand frompublic static void setDefaultBranchProfile(Instruction i, BranchProfileOperand DefaultBranchProfile)
i
- the instruction in which to store the operandDefaultBranchProfile
- the operand to storepublic static int indexOfDefaultBranchProfile(Instruction i)
i
- the instruction to access.public static boolean hasDefaultBranchProfile(Instruction i)
i
- the instruction to access.true
if the instruction has an non-null
operand named DefaultBranchProfile or false
if it does not.public static BranchOperand getTarget(Instruction i, int k)
i
- the instruction to fetch the operand fromk
- the index of the operandpublic static BranchOperand getClearTarget(Instruction i, int k)
i
- the instruction to fetch the operand fromk
- the index of the operandpublic static void setTarget(Instruction i, int k, BranchOperand o)
i
- the instruction in which to store the operandk
- the index of the operando
- the operand to storepublic static int indexOfTarget(Instruction i, int k)
i
- the instruction to access.k
- the index of the operand.public static boolean hasTarget(Instruction i, int k)
i
- the instruction to access.k
- the index of the operand.true
if the instruction has an non-null
k'th operand named Target or false
if it does not.public static int indexOfTargets(Instruction i)
i
- the instruction to access.public static boolean hasTargets(Instruction i)
i
- the instruction to access.true
if the instruction has operands
named Target or false
if it does not.public static int getNumberOfTargets(Instruction i)
i
- the instruction to accesspublic static void resizeNumberOfTargets(Instruction i, int numVarOps)
i
- the instruction to accessnumVarOps
- the new number of variable operands called Targets
that may be stored in the instructionpublic static BranchProfileOperand getBranchProfile(Instruction i, int k)
i
- the instruction to fetch the operand fromk
- the index of the operandpublic static BranchProfileOperand getClearBranchProfile(Instruction i, int k)
i
- the instruction to fetch the operand fromk
- the index of the operandpublic static void setBranchProfile(Instruction i, int k, BranchProfileOperand o)
i
- the instruction in which to store the operandk
- the index of the operando
- the operand to storepublic static int indexOfBranchProfile(Instruction i, int k)
i
- the instruction to access.k
- the index of the operand.public static boolean hasBranchProfile(Instruction i, int k)
i
- the instruction to access.k
- the index of the operand.true
if the instruction has an non-null
k'th operand named BranchProfile or false
if it does not.public static int indexOfBranchProfiles(Instruction i)
i
- the instruction to access.public static boolean hasBranchProfiles(Instruction i)
i
- the instruction to access.true
if the instruction has operands
named BranchProfile or false
if it does not.public static int getNumberOfBranchProfiles(Instruction i)
i
- the instruction to accesspublic static void resizeNumberOfBranchProfiles(Instruction i, int numVarOps)
i
- the instruction to accessnumVarOps
- the new number of variable operands called BranchProfiles
that may be stored in the instructionpublic static Instruction create(Operator o, Operand Value, Operand Unknown1, Operand Unknown2, IntConstantOperand Low, IntConstantOperand High, BranchOperand Default, BranchProfileOperand DefaultBranchProfile, int numVarOps)
o
- the instruction's operatorValue
- the instruction's Value operandUnknown1
- the instruction's Unknown1 operandUnknown2
- the instruction's Unknown2 operandLow
- the instruction's Low operandHigh
- the instruction's High operandDefault
- the instruction's Default operandDefaultBranchProfile
- the instruction's DefaultBranchProfile operandnumVarOps
- the number of variable length operands that
will be stored in the insruction.public static Instruction mutate(Instruction i, Operator o, Operand Value, Operand Unknown1, Operand Unknown2, IntConstantOperand Low, IntConstantOperand High, BranchOperand Default, BranchProfileOperand DefaultBranchProfile, int numVarOps)
i
- the instruction to mutateo
- the instruction's operatorValue
- the instruction's Value operandUnknown1
- the instruction's Unknown1 operandUnknown2
- the instruction's Unknown2 operandLow
- the instruction's Low operandHigh
- the instruction's High operandDefault
- the instruction's Default operandDefaultBranchProfile
- the instruction's DefaultBranchProfile operandnumVarOps
- the number of variable length operands that
will be stored in the instruction.