|
||||||||||
PREV NEXT | FRAMES NO FRAMES |
Packages that use Instruction | |
---|---|
serp.bytecode | Bytecode Manipuation |
serp.bytecode.visitor | Bytecode Visitor |
Uses of Instruction in serp.bytecode |
---|
Subclasses of Instruction in serp.bytecode | |
---|---|
class |
ArrayInstruction
Any array load or store instruction. |
class |
ArrayLoadInstruction
Loads a value from an array onto the stack. |
class |
ArrayStoreInstruction
Store a value from the stack into an array. |
class |
ClassInstruction
An instruction that takes as an argument a class to operate on. |
class |
CmpInstruction
An instruction comparing two stack values. |
class |
ConstantInstruction
An instruction that that loads a constant onto the stack. |
class |
ConvertInstruction
A conversion opcode such as i2l, f2i , etc. |
class |
FieldInstruction
Instruction that takes as an argument a field to operate on. |
class |
GetFieldInstruction
Loads a value from a field onto the stack. |
class |
GotoInstruction
An instruction that specifies a position in the code block to jump to. |
class |
IfInstruction
An if instruction such as ifnull, ifeq , etc. |
class |
IIncInstruction
The iinc instruction. |
class |
JumpInstruction
An instruction that specifies a position in the code block to jump to. |
class |
LoadInstruction
Loads a value from the locals table to the stack. |
class |
LocalVariableInstruction
An instruction that has an argument of an index into the local variable table of the current frame. |
class |
LookupSwitchInstruction
The lookupswitch instruction. |
class |
MathInstruction
One of the math operations defined in the Constants interface. |
class |
MethodInstruction
An instruction that invokes a method. |
class |
MonitorEnterInstruction
The monitorenter instruction. |
class |
MonitorExitInstruction
The monitorexit instruction. |
class |
MonitorInstruction
A synchronization instruction. |
class |
MultiANewArrayInstruction
The multianewarray instruction, which creates a new
multi-dimensional array. |
class |
NewArrayInstruction
The newarray instruction, which is used to create new
arrays of primitive types. |
class |
PutFieldInstruction
Stores a value from the stack into a field. |
class |
RetInstruction
The ret instruction is used in the implementation of finally. |
class |
ReturnInstruction
Returns a value (or void) from a method. |
class |
StackInstruction
Represents an instruction that manipulates the stack of the current frame. |
class |
StoreInstruction
An instruction to store a value from a local variable onto the stack. |
class |
SwitchInstruction
Contains functionality common to the different switch types (TableSwitch and LookupSwitch). |
class |
TableSwitchInstruction
The tableswitch instruction. |
class |
TypedInstruction
Any typed instruction. |
class |
WideInstruction
The wide instruction, which is used to allow other
instructions to index values beyond what they can normally index baed
on the length of their arguments. |
Methods in serp.bytecode that return Instruction | |
---|---|
Instruction |
Code.add(Instruction ins)
Adds a copy of the given instruction. |
Instruction |
Code.arraylength()
Get the length of an array on the stack; the arraylength
opcode. |
Instruction |
Code.athrow()
Throw an exception; the athrow opcode. |
Instruction |
TableSwitchInstruction.getDefaultTarget()
Synonymous with JumpInstruction.getTarget() . |
Instruction |
SwitchInstruction.getDefaultTarget()
Synonymous with JumpInstruction.getTarget() . |
Instruction |
LookupSwitchInstruction.getDefaultTarget()
Synonymous with JumpInstruction.getTarget() . |
Instruction |
Local.getEnd()
The last Instruction for which this local is in scope. |
Instruction |
ExceptionHandler.getHandlerStart()
Return the instruction marking the beginning of the catch {} block. |
Instruction[] |
Code.getInstructions()
Return all the Instructions of this method. |
Instruction |
Local.getStart()
Return the instruction marking the beginning of this local. |
Instruction |
LineNumber.getStart()
Return the instruction marking the beginning of this line. |
Instruction |
JumpInstruction.getTarget()
Get the current target instruction to jump to, if it has been set. |
Instruction[] |
TableSwitchInstruction.getTargets()
Return the targets for this switch, or empty array if not set. |
Instruction[] |
SwitchInstruction.getTargets()
Return the targets for this switch, or empty array if not set. |
Instruction[] |
LookupSwitchInstruction.getTargets()
Return the targets of the case statements for this switch. |
Instruction |
ExceptionHandler.getTryEnd()
Return the instruction at the end of the try {} block. |
Instruction |
ExceptionHandler.getTryStart()
Return the instruction marking the beginning of the try {} block. |
Instruction |
Code.next()
Return the next instruction. |
Instruction |
Code.nop()
Add the nop opcode. |
Instruction |
Code.previous()
Return the previous instruction. |
Instruction |
Code.set(Instruction ins)
Replaces the last iterated instruction with a copy of the given one. |
Instruction |
ClassConstantInstruction.setClass(BCClass type)
Set the type of class being loaded. |
Instruction |
ClassConstantInstruction.setClass(Class type)
Set the type of class being loaded. |
Instruction |
ClassConstantInstruction.setClass(String name)
Set the type of class being loaded. |
Methods in serp.bytecode with parameters of type Instruction | |
---|---|
Instruction |
Code.add(Instruction ins)
Adds a copy of the given instruction. |
SwitchInstruction |
SwitchInstruction.addCase(int match,
Instruction target)
Add a case to this switch. |
LookupSwitchInstruction |
LookupSwitchInstruction.addCase(int match,
Instruction target)
Add a case to this switch. |
ExceptionHandler |
Code.addExceptionHandler(Instruction tryStart,
Instruction tryEnd,
Instruction handlerStart,
BCClass catchType)
Add an exception handler to this code block. |
ExceptionHandler |
Code.addExceptionHandler(Instruction tryStart,
Instruction tryEnd,
Instruction handlerStart,
Class catchType)
Add an exception handler to this code block. |
ExceptionHandler |
Code.addExceptionHandler(Instruction tryStart,
Instruction tryEnd,
Instruction handlerStart,
String catchType)
Add an exception handler to this code block. |
LineNumber |
LineNumberTable.addLineNumber(Instruction start,
int line)
Add a new line number to this table. |
TableSwitchInstruction |
TableSwitchInstruction.addTarget(Instruction target)
Add a target to this switch. |
SwitchInstruction |
SwitchInstruction.addTarget(Instruction target)
Add a target to this switch. |
void |
Code.after(Instruction ins)
Position the iterator just after the given instruction. |
void |
Code.before(Instruction ins)
Position the iterator just before the given instruction. |
boolean |
WideInstruction.equalsInstruction(Instruction other)
WideInstructions are equal if the instruction they augment is the same or unset. |
boolean |
StoreInstruction.equalsInstruction(Instruction other)
StoreInstructions are equal if the type they reference the same type and locals index or if either is unset. |
boolean |
RetInstruction.equalsInstruction(Instruction other)
|
boolean |
NewArrayInstruction.equalsInstruction(Instruction other)
NewArray instructions are equal if the array type is the same, of if the array type of either is unset. |
boolean |
MultiANewArrayInstruction.equalsInstruction(Instruction other)
Two MultiANewArray instructions are equal if they have the same type and dimensions, or if the type and dimensions of either is unset. |
boolean |
MethodInstruction.equalsInstruction(Instruction other)
MethodInstructions are equal if the method they reference is the same, or if the method of either is unset. |
boolean |
MathInstruction.equalsInstruction(Instruction other)
MathInstructions are equal if they have the same operation and type, or the operation and type of either is unset. |
boolean |
LocalVariableInstruction.equalsInstruction(Instruction other)
Two local variable instructions are equal if the local index they reference is equal or if either index is 0/unset. |
boolean |
LoadInstruction.equalsInstruction(Instruction other)
LoadInstructions are equal if the type they reference the same type and locals index or if either is unset. |
boolean |
JumpInstruction.equalsInstruction(Instruction other)
JumpInstructions are equal if they represent the same operation and the instruction they jump to is the same, or if the jump Instruction of either is unset. |
boolean |
Instruction.equalsInstruction(Instruction other)
Instructions are equal if their opcodes are the same. |
boolean |
IIncInstruction.equalsInstruction(Instruction other)
|
boolean |
FieldInstruction.equalsInstruction(Instruction other)
FieldInstructions are equal if the field they reference is the same, or if the field of either is unset. |
boolean |
ConvertInstruction.equalsInstruction(Instruction other)
ConvertInstructions are equal if the types they convert between are either equal or unset. |
boolean |
ConstantInstruction.equalsInstruction(Instruction other)
ConstantInstructions are equal if the const they reference is the same, or if the const of either is unset. |
boolean |
ClassInstruction.equalsInstruction(Instruction other)
ClassInstructions are equal if the type they reference is the same or unset and if their opcodes are equal. |
LineNumber |
LineNumberTable.getLineNumber(Instruction ins)
Return the line number for the given instruction, or null if none. |
boolean |
LineNumberTable.removeLineNumber(Instruction ins)
Remove the line number for the given instruction. |
int |
Code.replace(Instruction[] templates,
Instruction[] with)
Equivalent to looping over each given template/replacement pair and calling Code.replace(Instruction,Instruction) for each. |
int |
Code.replace(Instruction[] templates,
Instruction[] with)
Equivalent to looping over each given template/replacement pair and calling Code.replace(Instruction,Instruction) for each. |
int |
Code.replace(Instruction template,
Instruction with)
Replaces all the instructions in this code block that match the given template with the given instruction. |
void |
TableSwitchInstruction.replaceTarget(Instruction oldTarget,
Instruction newTarget)
|
void |
SwitchInstruction.replaceTarget(Instruction oldTarget,
Instruction newTarget)
|
void |
LookupSwitchInstruction.replaceTarget(Instruction oldTarget,
Instruction newTarget)
|
void |
LocalTable.replaceTarget(Instruction oldTarget,
Instruction newTarget)
|
void |
Local.replaceTarget(Instruction oldTarget,
Instruction newTarget)
|
void |
LineNumberTable.replaceTarget(Instruction oldTarget,
Instruction newTarget)
|
void |
LineNumber.replaceTarget(Instruction oldTarget,
Instruction newTarget)
|
void |
JumpInstruction.replaceTarget(Instruction oldTarget,
Instruction newTarget)
|
void |
InstructionPtr.replaceTarget(Instruction oldTarget,
Instruction newTarget)
Replace the given old, likely invalid, target with a new target. |
void |
ExceptionHandler.replaceTarget(Instruction oldTarget,
Instruction newTarget)
|
boolean |
Code.searchBackward(Instruction template)
Find the closest previous instruction from the current iterator position that matches the given one, according to the Object.equals(java.lang.Object) methods of the instruction types. |
boolean |
Code.searchForward(Instruction template)
Find the next instruction from the current iterator position that matches the given one, according to the Object.equals(java.lang.Object) methods of
the instruction types. |
Instruction |
Code.set(Instruction ins)
Replaces the last iterated instruction with a copy of the given one. |
SwitchInstruction |
SwitchInstruction.setCases(int[] matches,
Instruction[] targets)
Set the match-jumppt pairs for this switch. |
LookupSwitchInstruction |
LookupSwitchInstruction.setCases(int[] matches,
Instruction[] targets)
Set the match-jumppt pairs for this switch. |
TableSwitchInstruction |
TableSwitchInstruction.setDefaultTarget(Instruction ins)
Synonymous with JumpInstruction.setTarget(serp.bytecode.Instruction) . |
SwitchInstruction |
SwitchInstruction.setDefaultTarget(Instruction ins)
Synonymous with JumpInstruction.setTarget(serp.bytecode.Instruction) . |
LookupSwitchInstruction |
LookupSwitchInstruction.setDefaultTarget(Instruction ins)
Synonymous with JumpInstruction.setTarget(serp.bytecode.Instruction) . |
void |
Local.setEnd(Instruction end)
Set the last Instruction for which this local is in scope. |
void |
ExceptionHandler.setHandlerStart(Instruction instruction)
Set the Instruction marking the beginning of the catch block. |
WideInstruction |
WideInstruction.setInstruction(Instruction ins)
Set the type of instruction this wide instruction modifies. |
void |
Local.setStart(Instruction instruction)
Set the Instruction marking the beginning this local. |
void |
LineNumber.setStart(Instruction instruction)
Set the Instruction marking the beginning this line. |
JumpInstruction |
JumpInstruction.setTarget(Instruction instruction)
Set the instruction to jump to; the instruction must already be added to the code block. |
TableSwitchInstruction |
TableSwitchInstruction.setTargets(Instruction[] targets)
Set the jump points for this switch. |
SwitchInstruction |
SwitchInstruction.setTargets(Instruction[] targets)
Set the jump points for this switch. |
void |
ExceptionHandler.setTryEnd(Instruction instruction)
Set the Instruction at the end of the try block. |
void |
ExceptionHandler.setTryStart(Instruction instruction)
Set the Instruction marking the beginning of the try block. |
Uses of Instruction in serp.bytecode.visitor |
---|
Methods in serp.bytecode.visitor with parameters of type Instruction | |
---|---|
void |
PrettyPrintVisitor.enterInstruction(Instruction obj)
|
void |
BCVisitor.enterInstruction(Instruction obj)
|
void |
PrettyPrintVisitor.exitInstruction(Instruction obj)
|
void |
BCVisitor.exitInstruction(Instruction obj)
|
|
||||||||||
PREV NEXT | FRAMES NO FRAMES |