Class InstructionAdapter
java.lang.Object
org.objectweb.asm.MethodAdapter
org.objectweb.asm.commons.InstructionAdapter
- All Implemented Interfaces:
MethodVisitor
-
Field Summary
FieldsFields inherited from class MethodAdapter
mv -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidvoidvoidvoidvoidvoidvoidvoidvoidathrow()voidvoidvoidvoidvoiddconst(double cst) voidvoiddup()voiddup2()voiddup2X1()voiddup2X2()voiddupX1()voiddupX2()voidfconst(float cst) voidvoidvoidvoidiconst(int cst) voidvoidvoidvoidvoidvoidvoidvoidvoidvoidvoidvoidvoidvoidvoidvoidvoidiinc(int var, int increment) voidinstanceOf(Type type) voidinvokeinterface(String owner, String name, String desc) voidinvokespecial(String owner, String name, String desc) voidinvokestatic(String owner, String name, String desc) voidinvokevirtual(String owner, String name, String desc) voidvoidlcmp()voidlconst(long cst) voidvoidlookupswitch(Label dflt, int[] keys, Label[] labels) voidvoidvoidvoidvoidmultianewarray(String desc, int dims) voidvoidvoidnop()voidvoidpop()voidpop2()voidvoidvoidvoidret(int var) voidvoidvoidvoidvoidswap()voidtableswitch(int min, int max, Label dflt, Label[] labels) voidvoidvoidvisitFieldInsn(int opcode, String owner, String name, String desc) Visits a field instruction.voidvisitIincInsn(int var, int increment) Visits an IINC instruction.voidvisitInsn(int opcode) Visits a zero operand instruction.voidvisitIntInsn(int opcode, int operand) Visits an instruction with a single int operand.voidvisitJumpInsn(int opcode, Label label) Visits a jump instruction.voidvisitLabel(Label label) Visits a label.voidvisitLdcInsn(Object cst) Visits a LDC instruction.voidvisitLookupSwitchInsn(Label dflt, int[] keys, Label[] labels) Visits a LOOKUPSWITCH instruction.voidvisitMethodInsn(int opcode, String owner, String name, String desc) Visits a method instruction.voidvisitMultiANewArrayInsn(String desc, int dims) Visits a MULTIANEWARRAY instruction.voidvisitTableSwitchInsn(int min, int max, Label dflt, Label[] labels) Visits a TABLESWITCH instruction.voidvisitTypeInsn(int opcode, String type) Visits a type instruction.voidvisitVarInsn(int opcode, int var) Visits a local variable instruction.voidMethods inherited from class MethodAdapter
visitAnnotation, visitAnnotationDefault, visitAttribute, visitCode, visitEnd, visitFrame, visitLineNumber, visitLocalVariable, visitMaxs, visitParameterAnnotation, visitTryCatchBlock
-
Field Details
-
OBJECT_TYPE
-
-
Constructor Details
-
InstructionAdapter
-
-
Method Details
-
visitInsn
public void visitInsn(int opcode) Description copied from interface:MethodVisitorVisits a zero operand instruction.- Specified by:
visitInsnin interfaceMethodVisitor- Overrides:
visitInsnin classMethodAdapter- Parameters:
opcode- the opcode of the instruction to be visited. This opcode is either NOP, ACONST_NULL, ICONST_M1, ICONST_0, ICONST_1, ICONST_2, ICONST_3, ICONST_4, ICONST_5, LCONST_0, LCONST_1, FCONST_0, FCONST_1, FCONST_2, DCONST_0, DCONST_1, IALOAD, LALOAD, FALOAD, DALOAD, AALOAD, BALOAD, CALOAD, SALOAD, IASTORE, LASTORE, FASTORE, DASTORE, AASTORE, BASTORE, CASTORE, SASTORE, POP, POP2, DUP, DUP_X1, DUP_X2, DUP2, DUP2_X1, DUP2_X2, SWAP, IADD, LADD, FADD, DADD, ISUB, LSUB, FSUB, DSUB, IMUL, LMUL, FMUL, DMUL, IDIV, LDIV, FDIV, DDIV, IREM, LREM, FREM, DREM, INEG, LNEG, FNEG, DNEG, ISHL, LSHL, ISHR, LSHR, IUSHR, LUSHR, IAND, LAND, IOR, LOR, IXOR, LXOR, I2L, I2F, I2D, L2I, L2F, L2D, F2I, F2L, F2D, D2I, D2L, D2F, I2B, I2C, I2S, LCMP, FCMPL, FCMPG, DCMPL, DCMPG, IRETURN, LRETURN, FRETURN, DRETURN, ARETURN, RETURN, ARRAYLENGTH, ATHROW, MONITORENTER, or MONITOREXIT.
-
visitIntInsn
public void visitIntInsn(int opcode, int operand) Description copied from interface:MethodVisitorVisits an instruction with a single int operand.- Specified by:
visitIntInsnin interfaceMethodVisitor- Overrides:
visitIntInsnin classMethodAdapter- Parameters:
opcode- the opcode of the instruction to be visited. This opcode is either BIPUSH, SIPUSH or NEWARRAY.operand- the operand of the instruction to be visited.
When opcode is BIPUSH, operand value should be between Byte.MIN_VALUE and Byte.MAX_VALUE.
When opcode is SIPUSH, operand value should be between Short.MIN_VALUE and Short.MAX_VALUE.
When opcode is NEWARRAY, operand value should be one ofOpcodes.T_BOOLEAN,Opcodes.T_CHAR,Opcodes.T_FLOAT,Opcodes.T_DOUBLE,Opcodes.T_BYTE,Opcodes.T_SHORT,Opcodes.T_INTorOpcodes.T_LONG.
-
visitVarInsn
public void visitVarInsn(int opcode, int var) Description copied from interface:MethodVisitorVisits a local variable instruction. A local variable instruction is an instruction that loads or stores the value of a local variable.- Specified by:
visitVarInsnin interfaceMethodVisitor- Overrides:
visitVarInsnin classMethodAdapter- Parameters:
opcode- the opcode of the local variable instruction to be visited. This opcode is either ILOAD, LLOAD, FLOAD, DLOAD, ALOAD, ISTORE, LSTORE, FSTORE, DSTORE, ASTORE or RET.var- the operand of the instruction to be visited. This operand is the index of a local variable.
-
visitTypeInsn
Description copied from interface:MethodVisitorVisits a type instruction. A type instruction is an instruction that takes the internal name of a class as parameter.- Specified by:
visitTypeInsnin interfaceMethodVisitor- Overrides:
visitTypeInsnin classMethodAdapter- Parameters:
opcode- the opcode of the type instruction to be visited. This opcode is either NEW, ANEWARRAY, CHECKCAST or INSTANCEOF.type- the operand of the instruction to be visited. This operand must be the internal name of an object or array class (seegetInternalName).
-
visitFieldInsn
Description copied from interface:MethodVisitorVisits a field instruction. A field instruction is an instruction that loads or stores the value of a field of an object.- Specified by:
visitFieldInsnin interfaceMethodVisitor- Overrides:
visitFieldInsnin classMethodAdapter- Parameters:
opcode- the opcode of the type instruction to be visited. This opcode is either GETSTATIC, PUTSTATIC, GETFIELD or PUTFIELD.owner- the internal name of the field's owner class (seegetInternalName).name- the field's name.desc- the field's descriptor (seeType).
-
visitMethodInsn
Description copied from interface:MethodVisitorVisits a method instruction. A method instruction is an instruction that invokes a method.- Specified by:
visitMethodInsnin interfaceMethodVisitor- Overrides:
visitMethodInsnin classMethodAdapter- Parameters:
opcode- the opcode of the type instruction to be visited. This opcode is either INVOKEVIRTUAL, INVOKESPECIAL, INVOKESTATIC, INVOKEINTERFACE or INVOKEDYNAMIC.owner- the internal name of the method's owner class (seegetInternalName) orOpcodes.INVOKEDYNAMIC_OWNER.name- the method's name.desc- the method's descriptor (seeType).
-
visitJumpInsn
Description copied from interface:MethodVisitorVisits a jump instruction. A jump instruction is an instruction that may jump to another instruction.- Specified by:
visitJumpInsnin interfaceMethodVisitor- Overrides:
visitJumpInsnin classMethodAdapter- Parameters:
opcode- the opcode of the type instruction to be visited. This opcode is either IFEQ, IFNE, IFLT, IFGE, IFGT, IFLE, IF_ICMPEQ, IF_ICMPNE, IF_ICMPLT, IF_ICMPGE, IF_ICMPGT, IF_ICMPLE, IF_ACMPEQ, IF_ACMPNE, GOTO, JSR, IFNULL or IFNONNULL.label- the operand of the instruction to be visited. This operand is a label that designates the instruction to which the jump instruction may jump.
-
visitLabel
Description copied from interface:MethodVisitorVisits a label. A label designates the instruction that will be visited just after it.- Specified by:
visitLabelin interfaceMethodVisitor- Overrides:
visitLabelin classMethodAdapter- Parameters:
label- aLabelobject.
-
visitLdcInsn
Description copied from interface:MethodVisitorVisits a LDC instruction.- Specified by:
visitLdcInsnin interfaceMethodVisitor- Overrides:
visitLdcInsnin classMethodAdapter- Parameters:
cst- the constant to be loaded on the stack. This parameter must be a non nullInteger, aFloat, aLong, aDoubleaString(or aTypefor .class constants, for classes whose version is 49.0 or more).
-
visitIincInsn
public void visitIincInsn(int var, int increment) Description copied from interface:MethodVisitorVisits an IINC instruction.- Specified by:
visitIincInsnin interfaceMethodVisitor- Overrides:
visitIincInsnin classMethodAdapter- Parameters:
var- index of the local variable to be incremented.increment- amount to increment the local variable by.
-
visitTableSwitchInsn
Description copied from interface:MethodVisitorVisits a TABLESWITCH instruction.- Specified by:
visitTableSwitchInsnin interfaceMethodVisitor- Overrides:
visitTableSwitchInsnin classMethodAdapter- Parameters:
min- the minimum key value.max- the maximum key value.dflt- beginning of the default handler block.labels- beginnings of the handler blocks. labels[i] is the beginning of the handler block for the min + i key.
-
visitLookupSwitchInsn
Description copied from interface:MethodVisitorVisits a LOOKUPSWITCH instruction.- Specified by:
visitLookupSwitchInsnin interfaceMethodVisitor- Overrides:
visitLookupSwitchInsnin classMethodAdapter- Parameters:
dflt- beginning of the default handler block.keys- the values of the keys.labels- beginnings of the handler blocks. labels[i] is the beginning of the handler block for the keys[i] key.
-
visitMultiANewArrayInsn
Description copied from interface:MethodVisitorVisits a MULTIANEWARRAY instruction.- Specified by:
visitMultiANewArrayInsnin interfaceMethodVisitor- Overrides:
visitMultiANewArrayInsnin classMethodAdapter- Parameters:
desc- an array type descriptor (seeType).dims- number of dimensions of the array to allocate.
-
nop
public void nop() -
aconst
-
iconst
public void iconst(int cst) -
lconst
public void lconst(long cst) -
fconst
public void fconst(float cst) -
dconst
public void dconst(double cst) -
tconst
-
load
-
aload
-
store
-
astore
-
pop
public void pop() -
pop2
public void pop2() -
dup
public void dup() -
dup2
public void dup2() -
dupX1
public void dupX1() -
dupX2
public void dupX2() -
dup2X1
public void dup2X1() -
dup2X2
public void dup2X2() -
swap
public void swap() -
add
-
sub
-
mul
-
div
-
rem
-
neg
-
shl
-
shr
-
ushr
-
and
-
or
-
xor
-
iinc
public void iinc(int var, int increment) -
cast
-
lcmp
public void lcmp() -
cmpl
-
cmpg
-
ifeq
-
ifne
-
iflt
-
ifge
-
ifgt
-
ifle
-
ificmpeq
-
ificmpne
-
ificmplt
-
ificmpge
-
ificmpgt
-
ificmple
-
ifacmpeq
-
ifacmpne
-
goTo
-
jsr
-
ret
public void ret(int var) -
tableswitch
-
lookupswitch
-
areturn
-
getstatic
-
putstatic
-
getfield
-
putfield
-
invokevirtual
-
invokespecial
-
invokestatic
-
invokeinterface
-
anew
-
newarray
-
arraylength
public void arraylength() -
athrow
public void athrow() -
checkcast
-
instanceOf
-
monitorenter
public void monitorenter() -
monitorexit
public void monitorexit() -
multianewarray
-
ifnull
-
ifnonnull
-
mark
-