Uses of Class org.apache.bcel.generic.Instruction

Uses in package org.apache.bcel.generic

Classes derived from org.apache.bcel.generic.Instruction

class
AALOAD - Load reference from array
Stack: ..., arrayref, index -> value
class
AASTORE - Store into reference array
Stack: ..., arrayref, index, value -> ...
class
ACONST_NULL - Push null reference
Stack: ...
class
ALOAD - Load reference from local variable
Stack: ...
class
ANEWARRAY - Create new array of references
Stack: ..., count -> ..., arrayref
class
Super class for the family of arithmetic instructions.
class
Super class for instructions dealing with array access such as IALOAD.
class
ARETURN - Return reference from method
Stack: ..., objectref -> <empty>
class
ARRAYLENGTH - Get length of array
Stack: ..., arrayref -> ..., length
class
ASTORE - Store reference into local variable
Stack ..., objectref -> ...
class
ATHROW - Throw exception
Stack: ..., objectref -> objectref
class
BALOAD - Load byte or boolean from array
Stack: ..., arrayref, index -> ..., value
class
BASTORE - Store into byte or boolean array
Stack: ..., arrayref, index, value -> ...
class
BIPUSH - Push byte on stack
Stack: ...
class
Abstract super class for branching instructions like GOTO, IFEQ, etc..
class
BREAKPOINT, JVM dependent, ignored by default
class
CALOAD - Load char from array
Stack: ..., arrayref, index -> ..., value
class
CASTORE - Store into char array
Stack: ..., arrayref, index, value -> ...
class
CHECKCAST - Check whether object is of given type
Stack: ..., objectref -> ..., objectref
class
Super class for the x2y family of instructions.
class
Abstract super class for instructions that use an index into the constant pool such as LDC, INVOKEVIRTUAL, etc.
class
D2F - Convert double to float
Stack: ..., value.word1, value.word2 -> ..., result
class
D2I - Convert double to int
Stack: ..., value.word1, value.word2 -> ..., result
class
D2L - Convert double to long
Stack: ..., value.word1, value.word2 -> ..., result.word1, result.word2
class
DADD - Add doubles
Stack: ..., value1.word1, value1.word2, value2.word1, value2.word2 ->
..., result.word1, result1.word2
class
DALOAD - Load double from array
Stack: ..., arrayref, index -> ..., result.word1, result.word2
class
DASTORE - Store into double array
Stack: ..., arrayref, index, value.word1, value.word2 -> ...
class
DCMPG - Compare doubles: value1 > value2
Stack: ..., value1.word1, value1.word2, value2.word1, value2.word2 ->
..., result
class
DCMPL - Compare doubles: value1 <32value2
Stack: ..., value1.word1, value1.word2, value2.word1, value2.word2 ->
..., result
class
DCONST - Push 0.0 or 1.0, other values cause an exception
Stack: ...
class
DDIV - Divide doubles
Stack: ..., value1.word1, value1.word2, value2.word1, value2.word2 ->
..., result.word1, result.word2
class
DLOAD - Load double from local variable
Stack ...
class
DMUL - Multiply doubles
Stack: ..., value1.word1, value1.word2, value2.word1, value2.word2 ->
..., result.word1, result.word2
class
DNEG - Negate double
Stack: ..., value.word1, value.word2 -> ..., result.word1, result.word2
class
DREM - Remainder of doubles
Stack: ..., value1.word1, value1.word2, value2.word1, value2.word2 ->
..., result.word1, result.word2
class
DRETURN - Return double from method
Stack: ..., value.word1, value.word2 -> <empty>
class
DSTORE - Store double into local variable
Stack: ..., value.word1, value.word2 -> ...
class
DSUB - Substract doubles
Stack: ..., value1.word1, value1.word2, value2.word1, value2.word2 ->
..., result.word1, result.word2
class
DUP - Duplicate top operand stack word
Stack: ..., word -> ..., word, word
class
DUP2 - Duplicate two top operand stack words
Stack: ..., word2, word1 -> ..., word2, word1, word2, word1
class
DUP2_X1 - Duplicate two top operand stack words and put three down
Stack: ..., word3, word2, word1 -> ..., word2, word1, word3, word2, word1
class
DUP2_X2 - Duplicate two top operand stack words and put four down
Stack: ..., word4, word3, word2, word1 -> ..., word2, word1, word4, word3, word2, word1
class
DUP_X1 - Duplicate top operand stack word and put two down
Stack: ..., word2, word1 -> ..., word1, word2, word1
class
DUP_X2 - Duplicate top operand stack word and put three down
Stack: ..., word3, word2, word1 -> ..., word1, word3, word2, word1
class
F2D - Convert float to double
Stack: ..., value -> ..., result.word1, result.word2
class
F2I - Convert float to int
Stack: ..., value -> ..., result
class
F2L - Convert float to long
Stack: ..., value -> ..., result.word1, result.word2
class
FADD - Add floats
Stack: ..., value1, value2 -> result
class
FALOAD - Load float from array
Stack: ..., arrayref, index -> ..., value
class
FASTORE - Store into float array
Stack: ..., arrayref, index, value -> ...
class
FCMPG - Compare floats: value1 > value2
Stack: ..., value1, value2 -> ..., result
class
FCMPL - Compare floats: value1 <32value2
Stack: ..., value1, value2 -> ..., result
class
FCONST - Push 0.0, 1.0 or 2.0, other values cause an exception
Stack: ...
class
FDIV - Divide floats
Stack: ..., value1, value2 -> result
class
Super class for InvokeInstruction and FieldInstruction, since they have some methods in common!
class
FLOAD - Load float from local variable
Stack ...
class
FMUL - Multiply floats
Stack: ..., value1, value2 -> result
class
FNEG - Negate float
Stack: ..., value -> ..., result
class
FREM - Remainder of floats
Stack: ..., value1, value2 -> result
class
FRETURN - Return float from method
Stack: ..., value -> <empty>
class
FSTORE - Store float into local variable
Stack: ..., value -> ...
class
FSUB - Substract floats
Stack: ..., value1, value2 -> result
class
Super class for GOTO
class
GOTO - Branch always (to relative offset, not absolute address)
class
GOTO_W - Branch always (to relative offset, not absolute address)
class
I2B - Convert int to byte
Stack: ..., value -> ..., result
class
I2C - Convert int to char
Stack: ..., value -> ..., result
class
I2D - Convert int to double
Stack: ..., value -> ..., result.word1, result.word2
class
I2F - Convert int to float
Stack: ..., value -> ..., result
class
I2L - Convert int to long
Stack: ..., value -> ..., result.word1, result.word2
class
I2S - Convert int to short
Stack: ..., value -> ..., result
class
IADD - Add ints
Stack: ..., value1, value2 -> result
class
IALOAD - Load int from array
Stack: ..., arrayref, index -> ..., value
class
IAND - Bitwise AND int
Stack: ..., value1, value2 -> ..., result
class
IASTORE - Store into int array
Stack: ..., arrayref, index, value -> ...
class
ICONST - Push value between -1, ..., 5, other values cause an exception
Stack: ...
class
IDIV - Divide ints
Stack: ..., value1, value2 -> result
class
Super class for the IFxxx family of instructions.
class
IFEQ - Branch if int comparison with zero succeeds
Stack: ..., value -> ...
class
IFGE - Branch if int comparison with zero succeeds
Stack: ..., value -> ...
class
IFGT - Branch if int comparison with zero succeeds
Stack: ..., value -> ...
class
IFLE - Branch if int comparison with zero succeeds
Stack: ..., value -> ...
class
IFLT - Branch if int comparison with zero succeeds
Stack: ..., value -> ...
class
IFNE - Branch if int comparison with zero succeeds
Stack: ..., value -> ...
class
IFNONNULL - Branch if reference is not null
Stack: ..., reference -> ...
class
IFNULL - Branch if reference is not null
Stack: ..., reference -> ...
class
IF_ACMPEQ - Branch if reference comparison succeeds
Stack: ..., value1, value2 -> ...
class
IF_ACMPNE - Branch if reference comparison doesn't succeed
Stack: ..., value1, value2 -> ...
class
IF_ICMPEQ - Branch if int comparison succeeds
Stack: ..., value1, value2 -> ...
class
IF_ICMPGE - Branch if int comparison succeeds
Stack: ..., value1, value2 -> ...
class
IF_ICMPGT - Branch if int comparison succeeds
Stack: ..., value1, value2 -> ...
class
IF_ICMPLE - Branch if int comparison succeeds
Stack: ..., value1, value2 -> ...
class
IF_ICMPLT - Branch if int comparison succeeds
Stack: ..., value1, value2 -> ...
class
IF_ICMPNE - Branch if int comparison doesn't succeed
Stack: ..., value1, value2 -> ...
class
IINC - Increment local variable by constant
class
ILOAD - Load int from local variable onto stack
Stack: ...
class
IMPDEP1 - Implementation dependent
class
IMPDEP2 - Implementation dependent
class
IMUL - Multiply ints
Stack: ..., value1, value2 -> result
class
INEG - Negate int
Stack: ..., value -> ..., result
class
INSTANCEOF - Determine if object is of given type
Stack: ..., objectref -> ..., result
class
IOR - Bitwise OR int
Stack: ..., value1, value2 -> ..., result
class
IREM - Remainder of int
Stack: ..., value1, value2 -> result
class
IRETURN - Return int from method
Stack: ..., value -> <empty>
class
ISHL - Arithmetic shift left int
Stack: ..., value1, value2 -> ..., result
class
ISHR - Arithmetic shift right int
Stack: ..., value1, value2 -> ..., result
class
ISTORE - Store int from stack into local variable
Stack: ..., value -> ...
class
ISUB - Substract ints
Stack: ..., value1, value2 -> result
class
IUSHR - Logical shift right int
Stack: ..., value1, value2 -> ..., result
class
IXOR - Bitwise XOR int
Stack: ..., value1, value2 -> ..., result
class
Super class for JSR - Jump to subroutine
class
JSR - Jump to subroutine
class
JSR_W - Jump to subroutine
class
L2D - Convert long to double
Stack: ..., value.word1, value.word2 -> ..., result.word1, result.word2
class
L2F - Convert long to float
Stack: ..., value.word1, value.word2 -> ..., result
class
L2I - Convert long to int
Stack: ..., value.word1, value.word2 -> ..., result
class
LADD - Add longs
Stack: ..., value1.word1, value1.word2, value2.word1, value2.word2 ->
..., result.word1, result.word2
class
LALOAD - Load long from array
Stack: ..., arrayref, index -> ..., value1, value2
class
LAND - Bitwise AND longs
Stack: ..., value1.word1, value1.word2, value2.word1, value2.word2 ->
..., result.word1, result.word2
class
LASTORE - Store into long array
Stack: ..., arrayref, index, value.word1, value.word2 -> ...
class
LCMP - Compare longs:
Stack: ..., value1.word1, value1.word2, value2.word1, value2.word2 ->
..., result <= -1, 0, 1>
class
LCONST - Push 0 or 1, other values cause an exception
Stack: ...
class
LDC - Push item from constant pool.
class
LDC2_W - Push long or double from constant pool
Stack: ...
class
LDC_W - Push item from constant pool (wide index)
Stack: ...
class
LDIV - Divide longs
Stack: ..., value1.word1, value1.word2, value2.word1, value2.word2 ->
..., result.word1, result.word2
class
LLOAD - Load long from local variable
Stack ...
class
LMUL - Multiply longs
Stack: ..., value1.word1, value1.word2, value2.word1, value2.word2 ->
..., result.word1, result.word2
class
LNEG - Negate long
Stack: ..., value.word1, value.word2 -> ..., result.word1, result.word2
class
Denotes an unparameterized instruction to load a value from a local variable, e.g.
class
Abstract super class for instructions dealing with local variables.
class
LOOKUPSWITCH - Switch with unordered set of values
class
LOR - Bitwise OR long
Stack: ..., value1, value2 -> ..., result
class
LREM - Remainder of long
Stack: ..., value1, value2 -> result
class
LRETURN - Return long from method
Stack: ..., value.word1, value.word2 -> <empty>
class
LSHL - Arithmetic shift left long
Stack: ..., value1.word1, value1.word2, value2 -> ..., result.word1, result.word2
class
LSHR - Arithmetic shift right long
Stack: ..., value1.word1, value1.word2, value2 -> ..., result.word1, result.word2
class
LSTORE - Store long into local variable
Stack: ..., value.word1, value.word2 -> ...
class
LSUB - Substract longs
Stack: ..., value1.word1, value1.word2, value2.word1, value2.word2 ->
..., result.word1, result.word2
class
LUSHR - Logical shift right long
Stack: ..., value1, value2 -> ..., result
class
LXOR - Bitwise XOR long
Stack: ..., value1, value2 -> ..., result
class
MONITORENTER - Enter monitor for object
Stack: ..., objectref -> ...
class
MONITOREXIT - Exit monitor for object
Stack: ..., objectref -> ...
class
MULTIANEWARRAY - Create new mutidimensional array of references
Stack: ..., count1, [count2, ...] -> ..., arrayref
class
NEW - Create new object
Stack: ...
class
NEWARRAY - Create new array of basic type (int, short, ...)
Stack: ..., count -> ..., arrayref
type must be one of T_INT, T_SHORT, ...
class
NOP - Do nothing
class
POP - Pop top operand stack word
Stack: ..., word -> ...
class
POP2 - Pop two top operand stack words
Stack: ..., word2, word1 -> ...
class
Super class for the xRETURN family of instructions.
class
RET - Return from subroutine
Stack: ..., -> ..., address
class
RETURN - Return from void method
Stack: ...
class
SALOAD - Load short from array
Stack: ..., arrayref, index -> ..., value
class
SASTORE - Store into short array
Stack: ..., arrayref, index, value -> ...
class
Select - Abstract super class for LOOKUPSWITCH and TABLESWITCH instructions.
class
SIPUSH - Push short
Stack: ...
class
Super class for stack operations like DUP and POP.
class
Denotes an unparameterized instruction to store a value into a local variable, e.g.
class
SWAP - Swa top operand stack word
Stack: ..., word2, word1 -> ..., word1, word2
class
TABLESWITCH - Switch within given range of values, i.e., low..high

Constructors with parameter type org.apache.bcel.generic.Instruction

Create instruction list containing one instruction.

Fields of type org.apache.bcel.generic.Instruction

Instruction
Instruction
Instruction
Instruction
Instruction
Instruction
Instruction
Instruction
Instruction
Instruction
Instruction
Instruction
Instruction
Instruction
Instruction
Instruction
Instruction
Instruction
Instruction
Instruction[]
Get object via its opcode, for immutable instructions like branch instructions entries are set to null.
Instruction
Instruction
Instruction
Instruction
Instruction
Instruction
Predefined instruction objects

Methods with parameter type org.apache.bcel.generic.Instruction

InstructionHandle
Append an instruction to the end of this list.
InstructionHandle
Append a compound instruction, after instruction i.
InstructionHandle
Append a single instruction j after another instruction i, which must be in this list of course!
InstructionHandle
Append another list after instruction i contained in this list.
InstructionHandle
Append an instruction after instruction (handle) ih contained in this list.
boolean
void
Remove instruction from this list.
void
Remove instructions from instruction `from' to instruction `to' contained in this list.
boolean
InstructionHandle
Insert an instruction at start of this list.
InstructionHandle
Insert a compound instruction before instruction i.
InstructionHandle
Insert a single instruction j before another instruction i, which must be in this list of course!
InstructionHandle
Insert another list before Instruction i contained in this list.
InstructionHandle
Insert an instruction before instruction (handle) ih contained in this list.
void
Set new contents.
void
Replace current instruction contained in this handle.
Instruction
Temporarily swap the current instruction, without disturbing anything.

Methods with return type org.apache.bcel.generic.Instruction

Instruction
Use with caution, since `BranchInstruction's have a `target' reference which is not copied correctly (only basic types are).
Instruction
Instruction
InstructionFactory.createCast(Type src_type, Type dest_type)
Create conversion operation for two stack operands, this may be an I2C, instruction, e.g., if the operands are basic types and CHECKCAST if they are reference types.
Instruction
Uses PUSH to push a constant value onto the stack.
Instruction
Create new array of given size and type.
Instruction
Create "null" value for reference types, 0 for basic types like int
Instruction
Create reference to `this'
Instruction
Instruction
Instruction
Instruction[]
Instruction
Read an instruction from (byte code) input stream and return the appropiate object.
Instruction
Temporarily swap the current instruction, without disturbing anything.