Package | Description |
---|---|
org.apache.bcel.generic |
This package contains the "generic" part of the
Byte Code Engineering
Library, i.e., classes to dynamically modify class objects and
byte code instructions.
|
org.apache.bcel.verifier.structurals |
Provides a PassVerifier class mostly used internally by JustIce, yielding a control flow graph for public use as
a nice side effect.
|
Modifier and Type | Interface and Description |
---|---|
interface |
ConstantPushInstruction
Denotes a push instruction that produces a literal on the stack
such as SIPUSH, BIPUSH, ICONST, etc.
|
interface |
PushInstruction
Denotes an unparameterized instruction to produce a value on top of the stack,
such as ILOAD, LDC, SIPUSH, DUP, ICONST, etc.
|
Modifier and Type | Class and Description |
---|---|
class |
AALOAD
AALOAD - Load reference from array
Stack: ..., arrayref, index -> value
|
class |
ACONST_NULL
ACONST_NULL - Push null reference
Stack: ...
|
class |
ALOAD
ALOAD - Load reference from local variable
Stack: ...
|
class |
ANEWARRAY
ANEWARRAY - Create new array of references
Stack: ..., count -> ..., arrayref
|
class |
ArithmeticInstruction
Super class for the family of arithmetic instructions.
|
class |
ARRAYLENGTH
ARRAYLENGTH - Get length of array
Stack: ..., arrayref -> ..., length
|
class |
BALOAD
BALOAD - Load byte or boolean from array
Stack: ..., arrayref, index -> ..., value
|
class |
BIPUSH
BIPUSH - Push byte on stack
Stack: ...
|
class |
CALOAD
CALOAD - Load char from array
Stack: ..., arrayref, index -> ..., value
|
class |
CHECKCAST
CHECKCAST - Check whether object is of given type
Stack: ..., objectref -> ..., objectref
|
class |
ConversionInstruction
Super class for the x2y family of instructions.
|
class |
D2F
D2F - Convert double to float
Stack: ..., value.word1, value.word2 -> ..., result
|
class |
D2I
D2I - Convert double to int
Stack: ..., value.word1, value.word2 -> ..., result
|
class |
D2L
D2L - Convert double to long
Stack: ..., value.word1, value.word2 -> ..., result.word1, result.word2
|
class |
DADD
DADD - Add doubles
Stack: ..., value1.word1, value1.word2, value2.word1, value2.word2 ->
..., result.word1, result1.word2
|
class |
DALOAD
DALOAD - Load double from array
Stack: ..., arrayref, index -> ..., result.word1, result.word2
|
class |
DCMPG
DCMPG - Compare doubles: value1 > value2
Stack: ..., value1.word1, value1.word2, value2.word1, value2.word2 ->
..., result
|
class |
DCMPL
DCMPL - Compare doubles: value1 < value2
Stack: ..., value1.word1, value1.word2, value2.word1, value2.word2 ->
..., result
|
class |
DCONST
DCONST - Push 0.0 or 1.0, other values cause an exception
Stack: ...
|
class |
DDIV
DDIV - Divide doubles
Stack: ..., value1.word1, value1.word2, value2.word1, value2.word2 ->
..., result.word1, result.word2
|
class |
DLOAD
DLOAD - Load double from local variable
Stack ...
|
class |
DMUL
DMUL - Multiply doubles
Stack: ..., value1.word1, value1.word2, value2.word1, value2.word2 ->
..., result.word1, result.word2
|
class |
DNEG
DNEG - Negate double
Stack: ..., value.word1, value.word2 -> ..., result.word1, result.word2
|
class |
DREM
DREM - Remainder of doubles
Stack: ..., value1.word1, value1.word2, value2.word1, value2.word2 ->
..., result.word1, result.word2
|
class |
DSUB
DSUB - Substract doubles
Stack: ..., value1.word1, value1.word2, value2.word1, value2.word2 ->
..., result.word1, result.word2
|
class |
DUP
DUP - Duplicate top operand stack word
Stack: ..., word -> ..., word, word
|
class |
DUP2
DUP2 - Duplicate two top operand stack words
Stack: ..., word2, word1 -> ..., word2, word1, word2, word1
|
class |
F2D
F2D - Convert float to double
Stack: ..., value -> ..., result.word1, result.word2
|
class |
F2I
F2I - Convert float to int
Stack: ..., value -> ..., result
|
class |
F2L
F2L - Convert float to long
Stack: ..., value -> ..., result.word1, result.word2
|
class |
FADD
FADD - Add floats
Stack: ..., value1, value2 -> result
|
class |
FALOAD
FALOAD - Load float from array
Stack: ..., arrayref, index -> ..., value
|
class |
FCMPG
FCMPG - Compare floats: value1 > value2
Stack: ..., value1, value2 -> ..., result
|
class |
FCMPL
FCMPL - Compare floats: value1 < value2
Stack: ..., value1, value2 -> ..., result
|
class |
FCONST
FCONST - Push 0.0, 1.0 or 2.0, other values cause an exception
Stack: ...
|
class |
FDIV
FDIV - Divide floats
Stack: ..., value1, value2 -> result
|
class |
FLOAD
FLOAD - Load float from local variable
Stack ...
|
class |
FMUL
FMUL - Multiply floats
Stack: ..., value1, value2 -> result
|
class |
FNEG
FNEG - Negate float
Stack: ..., value -> ..., result
|
class |
FREM
FREM - Remainder of floats
Stack: ..., value1, value2 -> result
|
class |
FSUB
FSUB - Substract floats
Stack: ..., value1, value2 -> result
|
class |
GETFIELD
GETFIELD - Fetch field from object
Stack: ..., objectref -> ..., value
OR
Stack: ..., objectref -> ..., value.word1, value.word2
|
class |
GETSTATIC
GETSTATIC - Fetch static field from class
Stack: ..., -> ..., value
OR
Stack: ..., -> ..., value.word1, value.word2
|
class |
I2B
I2B - Convert int to byte
Stack: ..., value -> ..., result
|
class |
I2C
I2C - Convert int to char
Stack: ..., value -> ..., result
|
class |
I2D
I2D - Convert int to double
Stack: ..., value -> ..., result.word1, result.word2
|
class |
I2F
I2F - Convert int to float
Stack: ..., value -> ..., result
|
class |
I2L
I2L - Convert int to long
Stack: ..., value -> ..., result.word1, result.word2
|
class |
I2S
I2S - Convert int to short
Stack: ..., value -> ..., result
|
class |
IADD
IADD - Add ints
Stack: ..., value1, value2 -> result
|
class |
IALOAD
IALOAD - Load int from array
Stack: ..., arrayref, index -> ..., value
|
class |
IAND
IAND - Bitwise AND int
Stack: ..., value1, value2 -> ..., result
|
class |
ICONST
ICONST - Push value between -1, ..., 5, other values cause an exception
Stack: ...
|
class |
IDIV
IDIV - Divide ints
Stack: ..., value1, value2 -> result
|
class |
ILOAD
ILOAD - Load int from local variable onto stack
Stack: ...
|
class |
IMUL
IMUL - Multiply ints
Stack: ..., value1, value2 -> result
|
class |
INEG
INEG - Negate int
Stack: ..., value -> ..., result
|
class |
INSTANCEOF
INSTANCEOF - Determine if object is of given type
Stack: ..., objectref -> ..., result
|
class |
INVOKEDYNAMIC
Class for INVOKEDYNAMIC.
|
class |
InvokeInstruction
Super class for the INVOKExxx family of instructions.
|
class |
INVOKEINTERFACE
INVOKEINTERFACE - Invoke interface method
Stack: ..., objectref, [arg1, [arg2 ...]]
|
class |
INVOKESPECIAL
INVOKESPECIAL - Invoke instance method; special handling for superclass, private
and instance initialization method invocations
Stack: ..., objectref, [arg1, [arg2 ...]]
|
class |
INVOKESTATIC
INVOKESTATIC - Invoke a class (static) method
Stack: ..., [arg1, [arg2 ...]]
|
class |
INVOKEVIRTUAL
INVOKEVIRTUAL - Invoke instance method; dispatch based on class
Stack: ..., objectref, [arg1, [arg2 ...]]
|
class |
IOR
IOR - Bitwise OR int
Stack: ..., value1, value2 -> ..., result
|
class |
IREM
IREM - Remainder of int
Stack: ..., value1, value2 -> result
|
class |
ISHL
ISHL - Arithmetic shift left int
Stack: ..., value1, value2 -> ..., result
|
class |
ISHR
ISHR - Arithmetic shift right int
Stack: ..., value1, value2 -> ..., result
|
class |
ISUB
ISUB - Substract ints
Stack: ..., value1, value2 -> result
|
class |
IUSHR
IUSHR - Logical shift right int
Stack: ..., value1, value2 -> ..., result
|
class |
IXOR
IXOR - Bitwise XOR int
Stack: ..., value1, value2 -> ..., result
|
class |
JSR
JSR - Jump to subroutine
|
class |
JSR_W
JSR_W - Jump to subroutine
|
class |
JsrInstruction
Super class for JSR - Jump to subroutine
|
class |
L2D
L2D - Convert long to double
Stack: ..., value.word1, value.word2 -> ..., result.word1, result.word2
|
class |
L2F
L2F - Convert long to float
Stack: ..., value.word1, value.word2 -> ..., result
|
class |
L2I
L2I - Convert long to int
Stack: ..., value.word1, value.word2 -> ..., result
|
class |
LADD
LADD - Add longs
Stack: ..., value1.word1, value1.word2, value2.word1, value2.word2 ->
..., result.word1, result.word2
|
class |
LALOAD
LALOAD - Load long from array
Stack: ..., arrayref, index -> ..., value1, value2
|
class |
LAND
LAND - Bitwise AND longs
Stack: ..., value1.word1, value1.word2, value2.word1, value2.word2 ->
..., result.word1, result.word2
|
class |
LCMP
LCMP - Compare longs:
Stack: ..., value1.word1, value1.word2, value2.word1, value2.word2 ->
..., result <= -1, 0, 1>
|
class |
LCONST
LCONST - Push 0 or 1, other values cause an exception
Stack: ...
|
class |
LDC
LDC - Push item from constant pool.
|
class |
LDC_W
LDC_W - Push item from constant pool (wide index)
Stack: ...
|
class |
LDC2_W
LDC2_W - Push long or double from constant pool
Stack: ...
|
class |
LDIV
LDIV - Divide longs
Stack: ..., value1.word1, value1.word2, value2.word1, value2.word2 ->
..., result.word1, result.word2
|
class |
LLOAD
LLOAD - Load long from local variable
Stack ...
|
class |
LMUL
LMUL - Multiply longs
Stack: ..., value1.word1, value1.word2, value2.word1, value2.word2 ->
..., result.word1, result.word2
|
class |
LNEG
LNEG - Negate long
Stack: ..., value.word1, value.word2 -> ..., result.word1, result.word2
|
class |
LoadInstruction
Denotes an unparameterized instruction to load a value from a local
variable, e.g.
|
class |
LOOKUPSWITCH
LOOKUPSWITCH - Switch with unordered set of values
|
class |
LOR
LOR - Bitwise OR long
Stack: ..., value1, value2 -> ..., result
|
class |
LREM
LREM - Remainder of long
Stack: ..., value1, value2 -> result
|
class |
LSHL
LSHL - Arithmetic shift left long
Stack: ..., value1.word1, value1.word2, value2 -> ..., result.word1, result.word2
|
class |
LSHR
LSHR - Arithmetic shift right long
Stack: ..., value1.word1, value1.word2, value2 -> ..., result.word1, result.word2
|
class |
LSUB
LSUB - Substract longs
Stack: ..., value1.word1, value1.word2, value2.word1, value2.word2 ->
..., result.word1, result.word2
|
class |
LUSHR
LUSHR - Logical shift right long
Stack: ..., value1, value2 -> ..., result
|
class |
LXOR
LXOR - Bitwise XOR long
Stack: ..., value1, value2 -> ..., result
|
class |
NEW
NEW - Create new object
Stack: ...
|
class |
NEWARRAY
NEWARRAY - Create new array of basic type (int, short, ...)
|
class |
SALOAD
SALOAD - Load short from array
Stack: ..., arrayref, index -> ..., value
|
class |
Select
Select - Abstract super class for LOOKUPSWITCH and TABLESWITCH instructions.
|
class |
SIPUSH
SIPUSH - Push short
Stack: ...
|
class |
SWAP
SWAP - Swa top operand stack word
Stack: ..., word2, word1 -> ..., word1, word2
|
class |
TABLESWITCH
TABLESWITCH - Switch within given range of values, i.e., low..high
|
Modifier and Type | Method and Description |
---|---|
void |
Visitor.visitStackProducer(StackProducer obj) |
void |
EmptyVisitor.visitStackProducer(StackProducer obj) |
Modifier and Type | Method and Description |
---|---|
void |
InstConstraintVisitor.visitStackProducer(StackProducer o)
Ensures the general preconditions of a StackProducer instance.
|
Copyright © 2016. All rights reserved.