类 Instruction
java.lang.Object
proguard.classfile.instruction.Instruction
- 直接已知子类:
BranchInstruction,CodeAttributeEditor.Label,ConstantInstruction,InstructionSequenceReplacer.Label,SimpleInstruction,SwitchInstruction,VariableInstruction
Base class for representing instructions.
-
字段概要
字段修饰符和类型字段说明static final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final String[]static final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytestatic final bytebyte -
构造器概要
构造器 -
方法概要
修饰符和类型方法说明abstract voidaccept(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, InstructionVisitor instructionVisitor) Accepts the given visitor.byteReturns the actual opcode of this instruction, i.e. the opcode that is stored in the bytecode.byteReturns the canonical opcode of this instruction, i.e. typically the opcode whose extension has been removed.abstract booleangetName()Returns the name of the instruction.abstract inthashCode()booleanReturns whether the instruction is a Category 2 instruction.protected booleanisWide()Returns whether the instruction is wide, i.e. preceded by a wide opcode.abstract intlength(int offset) Returns the length in bytes of the instruction.booleanmayInstanceThrowExceptions(Clazz clazz) Returns whether a particular instance of an instruction may throw exceptions.booleanReturns whether the instruction may conservatively throw exceptions.protected static intreadByte(byte[] code, int offset) protected abstract voidreadInfo(byte[] code, int offset) Reads the data following the instruction opcode.protected static intreadInt(byte[] code, int offset) protected static intreadShort(byte[] code, int offset) protected static intreadSignedByte(byte[] code, int offset) protected static intreadSignedShort(byte[] code, int offset) protected static intreadSignedValue(byte[] code, int offset, int valueSize) protected static intreadValue(byte[] code, int offset, int valueSize) abstract Instructionshrink()Shrinks this instruction to its shortest possible form.intstackEntryIndexBefore(Clazz clazz, int stackEntryIndexAfter) Returns the stack entry index from which the specified stack entry is copied by a dup/swap/checkcast instruction, or -1 otherwise.intstackPopCount(Clazz clazz) Returns the number of entries popped from the stack during the execution of the instruction.intstackPushCount(Clazz clazz) Returns the number of entries pushed onto the stack during the execution of the instruction.toString(int offset) Returns a description of the instruction, at the given offset.Returns a description of the instruction, at the given offset.voidwrite(byte[] code, int offset) Writes the Instruction at the given offset in the given code array.final voidwrite(CodeAttribute codeAttribute, int offset) Writes the Instruction at the given offset in the given code attribute.protected static voidwriteByte(byte[] code, int offset, int value) protected abstract voidwriteInfo(byte[] code, int offset) Writes data following the instruction opcode.protected static voidwriteInt(byte[] code, int offset, int value) protected static voidwriteShort(byte[] code, int offset, int value) protected static voidwriteSignedByte(byte[] code, int offset, int value) protected static voidwriteSignedShort(byte[] code, int offset, int value) protected static voidwriteSignedValue(byte[] code, int offset, int value, int valueSize) protected static voidwriteValue(byte[] code, int offset, int value, int valueSize)
-
字段详细资料
-
OP_NOP
public static final byte OP_NOP- 另请参阅:
-
OP_ACONST_NULL
public static final byte OP_ACONST_NULL- 另请参阅:
-
OP_ICONST_M1
public static final byte OP_ICONST_M1- 另请参阅:
-
OP_ICONST_0
public static final byte OP_ICONST_0- 另请参阅:
-
OP_ICONST_1
public static final byte OP_ICONST_1- 另请参阅:
-
OP_ICONST_2
public static final byte OP_ICONST_2- 另请参阅:
-
OP_ICONST_3
public static final byte OP_ICONST_3- 另请参阅:
-
OP_ICONST_4
public static final byte OP_ICONST_4- 另请参阅:
-
OP_ICONST_5
public static final byte OP_ICONST_5- 另请参阅:
-
OP_LCONST_0
public static final byte OP_LCONST_0- 另请参阅:
-
OP_LCONST_1
public static final byte OP_LCONST_1- 另请参阅:
-
OP_FCONST_0
public static final byte OP_FCONST_0- 另请参阅:
-
OP_FCONST_1
public static final byte OP_FCONST_1- 另请参阅:
-
OP_FCONST_2
public static final byte OP_FCONST_2- 另请参阅:
-
OP_DCONST_0
public static final byte OP_DCONST_0- 另请参阅:
-
OP_DCONST_1
public static final byte OP_DCONST_1- 另请参阅:
-
OP_BIPUSH
public static final byte OP_BIPUSH- 另请参阅:
-
OP_SIPUSH
public static final byte OP_SIPUSH- 另请参阅:
-
OP_LDC
public static final byte OP_LDC- 另请参阅:
-
OP_LDC_W
public static final byte OP_LDC_W- 另请参阅:
-
OP_LDC2_W
public static final byte OP_LDC2_W- 另请参阅:
-
OP_ILOAD
public static final byte OP_ILOAD- 另请参阅:
-
OP_LLOAD
public static final byte OP_LLOAD- 另请参阅:
-
OP_FLOAD
public static final byte OP_FLOAD- 另请参阅:
-
OP_DLOAD
public static final byte OP_DLOAD- 另请参阅:
-
OP_ALOAD
public static final byte OP_ALOAD- 另请参阅:
-
OP_ILOAD_0
public static final byte OP_ILOAD_0- 另请参阅:
-
OP_ILOAD_1
public static final byte OP_ILOAD_1- 另请参阅:
-
OP_ILOAD_2
public static final byte OP_ILOAD_2- 另请参阅:
-
OP_ILOAD_3
public static final byte OP_ILOAD_3- 另请参阅:
-
OP_LLOAD_0
public static final byte OP_LLOAD_0- 另请参阅:
-
OP_LLOAD_1
public static final byte OP_LLOAD_1- 另请参阅:
-
OP_LLOAD_2
public static final byte OP_LLOAD_2- 另请参阅:
-
OP_LLOAD_3
public static final byte OP_LLOAD_3- 另请参阅:
-
OP_FLOAD_0
public static final byte OP_FLOAD_0- 另请参阅:
-
OP_FLOAD_1
public static final byte OP_FLOAD_1- 另请参阅:
-
OP_FLOAD_2
public static final byte OP_FLOAD_2- 另请参阅:
-
OP_FLOAD_3
public static final byte OP_FLOAD_3- 另请参阅:
-
OP_DLOAD_0
public static final byte OP_DLOAD_0- 另请参阅:
-
OP_DLOAD_1
public static final byte OP_DLOAD_1- 另请参阅:
-
OP_DLOAD_2
public static final byte OP_DLOAD_2- 另请参阅:
-
OP_DLOAD_3
public static final byte OP_DLOAD_3- 另请参阅:
-
OP_ALOAD_0
public static final byte OP_ALOAD_0- 另请参阅:
-
OP_ALOAD_1
public static final byte OP_ALOAD_1- 另请参阅:
-
OP_ALOAD_2
public static final byte OP_ALOAD_2- 另请参阅:
-
OP_ALOAD_3
public static final byte OP_ALOAD_3- 另请参阅:
-
OP_IALOAD
public static final byte OP_IALOAD- 另请参阅:
-
OP_LALOAD
public static final byte OP_LALOAD- 另请参阅:
-
OP_FALOAD
public static final byte OP_FALOAD- 另请参阅:
-
OP_DALOAD
public static final byte OP_DALOAD- 另请参阅:
-
OP_AALOAD
public static final byte OP_AALOAD- 另请参阅:
-
OP_BALOAD
public static final byte OP_BALOAD- 另请参阅:
-
OP_CALOAD
public static final byte OP_CALOAD- 另请参阅:
-
OP_SALOAD
public static final byte OP_SALOAD- 另请参阅:
-
OP_ISTORE
public static final byte OP_ISTORE- 另请参阅:
-
OP_LSTORE
public static final byte OP_LSTORE- 另请参阅:
-
OP_FSTORE
public static final byte OP_FSTORE- 另请参阅:
-
OP_DSTORE
public static final byte OP_DSTORE- 另请参阅:
-
OP_ASTORE
public static final byte OP_ASTORE- 另请参阅:
-
OP_ISTORE_0
public static final byte OP_ISTORE_0- 另请参阅:
-
OP_ISTORE_1
public static final byte OP_ISTORE_1- 另请参阅:
-
OP_ISTORE_2
public static final byte OP_ISTORE_2- 另请参阅:
-
OP_ISTORE_3
public static final byte OP_ISTORE_3- 另请参阅:
-
OP_LSTORE_0
public static final byte OP_LSTORE_0- 另请参阅:
-
OP_LSTORE_1
public static final byte OP_LSTORE_1- 另请参阅:
-
OP_LSTORE_2
public static final byte OP_LSTORE_2- 另请参阅:
-
OP_LSTORE_3
public static final byte OP_LSTORE_3- 另请参阅:
-
OP_FSTORE_0
public static final byte OP_FSTORE_0- 另请参阅:
-
OP_FSTORE_1
public static final byte OP_FSTORE_1- 另请参阅:
-
OP_FSTORE_2
public static final byte OP_FSTORE_2- 另请参阅:
-
OP_FSTORE_3
public static final byte OP_FSTORE_3- 另请参阅:
-
OP_DSTORE_0
public static final byte OP_DSTORE_0- 另请参阅:
-
OP_DSTORE_1
public static final byte OP_DSTORE_1- 另请参阅:
-
OP_DSTORE_2
public static final byte OP_DSTORE_2- 另请参阅:
-
OP_DSTORE_3
public static final byte OP_DSTORE_3- 另请参阅:
-
OP_ASTORE_0
public static final byte OP_ASTORE_0- 另请参阅:
-
OP_ASTORE_1
public static final byte OP_ASTORE_1- 另请参阅:
-
OP_ASTORE_2
public static final byte OP_ASTORE_2- 另请参阅:
-
OP_ASTORE_3
public static final byte OP_ASTORE_3- 另请参阅:
-
OP_IASTORE
public static final byte OP_IASTORE- 另请参阅:
-
OP_LASTORE
public static final byte OP_LASTORE- 另请参阅:
-
OP_FASTORE
public static final byte OP_FASTORE- 另请参阅:
-
OP_DASTORE
public static final byte OP_DASTORE- 另请参阅:
-
OP_AASTORE
public static final byte OP_AASTORE- 另请参阅:
-
OP_BASTORE
public static final byte OP_BASTORE- 另请参阅:
-
OP_CASTORE
public static final byte OP_CASTORE- 另请参阅:
-
OP_SASTORE
public static final byte OP_SASTORE- 另请参阅:
-
OP_POP
public static final byte OP_POP- 另请参阅:
-
OP_POP2
public static final byte OP_POP2- 另请参阅:
-
OP_DUP
public static final byte OP_DUP- 另请参阅:
-
OP_DUP_X1
public static final byte OP_DUP_X1- 另请参阅:
-
OP_DUP_X2
public static final byte OP_DUP_X2- 另请参阅:
-
OP_DUP2
public static final byte OP_DUP2- 另请参阅:
-
OP_DUP2_X1
public static final byte OP_DUP2_X1- 另请参阅:
-
OP_DUP2_X2
public static final byte OP_DUP2_X2- 另请参阅:
-
OP_SWAP
public static final byte OP_SWAP- 另请参阅:
-
OP_IADD
public static final byte OP_IADD- 另请参阅:
-
OP_LADD
public static final byte OP_LADD- 另请参阅:
-
OP_FADD
public static final byte OP_FADD- 另请参阅:
-
OP_DADD
public static final byte OP_DADD- 另请参阅:
-
OP_ISUB
public static final byte OP_ISUB- 另请参阅:
-
OP_LSUB
public static final byte OP_LSUB- 另请参阅:
-
OP_FSUB
public static final byte OP_FSUB- 另请参阅:
-
OP_DSUB
public static final byte OP_DSUB- 另请参阅:
-
OP_IMUL
public static final byte OP_IMUL- 另请参阅:
-
OP_LMUL
public static final byte OP_LMUL- 另请参阅:
-
OP_FMUL
public static final byte OP_FMUL- 另请参阅:
-
OP_DMUL
public static final byte OP_DMUL- 另请参阅:
-
OP_IDIV
public static final byte OP_IDIV- 另请参阅:
-
OP_LDIV
public static final byte OP_LDIV- 另请参阅:
-
OP_FDIV
public static final byte OP_FDIV- 另请参阅:
-
OP_DDIV
public static final byte OP_DDIV- 另请参阅:
-
OP_IREM
public static final byte OP_IREM- 另请参阅:
-
OP_LREM
public static final byte OP_LREM- 另请参阅:
-
OP_FREM
public static final byte OP_FREM- 另请参阅:
-
OP_DREM
public static final byte OP_DREM- 另请参阅:
-
OP_INEG
public static final byte OP_INEG- 另请参阅:
-
OP_LNEG
public static final byte OP_LNEG- 另请参阅:
-
OP_FNEG
public static final byte OP_FNEG- 另请参阅:
-
OP_DNEG
public static final byte OP_DNEG- 另请参阅:
-
OP_ISHL
public static final byte OP_ISHL- 另请参阅:
-
OP_LSHL
public static final byte OP_LSHL- 另请参阅:
-
OP_ISHR
public static final byte OP_ISHR- 另请参阅:
-
OP_LSHR
public static final byte OP_LSHR- 另请参阅:
-
OP_IUSHR
public static final byte OP_IUSHR- 另请参阅:
-
OP_LUSHR
public static final byte OP_LUSHR- 另请参阅:
-
OP_IAND
public static final byte OP_IAND- 另请参阅:
-
OP_LAND
public static final byte OP_LAND- 另请参阅:
-
OP_IOR
public static final byte OP_IOR- 另请参阅:
-
OP_LOR
public static final byte OP_LOR- 另请参阅:
-
OP_IXOR
public static final byte OP_IXOR- 另请参阅:
-
OP_LXOR
public static final byte OP_LXOR- 另请参阅:
-
OP_IINC
public static final byte OP_IINC- 另请参阅:
-
OP_I2L
public static final byte OP_I2L- 另请参阅:
-
OP_I2F
public static final byte OP_I2F- 另请参阅:
-
OP_I2D
public static final byte OP_I2D- 另请参阅:
-
OP_L2I
public static final byte OP_L2I- 另请参阅:
-
OP_L2F
public static final byte OP_L2F- 另请参阅:
-
OP_L2D
public static final byte OP_L2D- 另请参阅:
-
OP_F2I
public static final byte OP_F2I- 另请参阅:
-
OP_F2L
public static final byte OP_F2L- 另请参阅:
-
OP_F2D
public static final byte OP_F2D- 另请参阅:
-
OP_D2I
public static final byte OP_D2I- 另请参阅:
-
OP_D2L
public static final byte OP_D2L- 另请参阅:
-
OP_D2F
public static final byte OP_D2F- 另请参阅:
-
OP_I2B
public static final byte OP_I2B- 另请参阅:
-
OP_I2C
public static final byte OP_I2C- 另请参阅:
-
OP_I2S
public static final byte OP_I2S- 另请参阅:
-
OP_LCMP
public static final byte OP_LCMP- 另请参阅:
-
OP_FCMPL
public static final byte OP_FCMPL- 另请参阅:
-
OP_FCMPG
public static final byte OP_FCMPG- 另请参阅:
-
OP_DCMPL
public static final byte OP_DCMPL- 另请参阅:
-
OP_DCMPG
public static final byte OP_DCMPG- 另请参阅:
-
OP_IFEQ
public static final byte OP_IFEQ- 另请参阅:
-
OP_IFNE
public static final byte OP_IFNE- 另请参阅:
-
OP_IFLT
public static final byte OP_IFLT- 另请参阅:
-
OP_IFGE
public static final byte OP_IFGE- 另请参阅:
-
OP_IFGT
public static final byte OP_IFGT- 另请参阅:
-
OP_IFLE
public static final byte OP_IFLE- 另请参阅:
-
OP_IFICMPEQ
public static final byte OP_IFICMPEQ- 另请参阅:
-
OP_IFICMPNE
public static final byte OP_IFICMPNE- 另请参阅:
-
OP_IFICMPLT
public static final byte OP_IFICMPLT- 另请参阅:
-
OP_IFICMPGE
public static final byte OP_IFICMPGE- 另请参阅:
-
OP_IFICMPGT
public static final byte OP_IFICMPGT- 另请参阅:
-
OP_IFICMPLE
public static final byte OP_IFICMPLE- 另请参阅:
-
OP_IFACMPEQ
public static final byte OP_IFACMPEQ- 另请参阅:
-
OP_IFACMPNE
public static final byte OP_IFACMPNE- 另请参阅:
-
OP_GOTO
public static final byte OP_GOTO- 另请参阅:
-
OP_JSR
public static final byte OP_JSR- 另请参阅:
-
OP_RET
public static final byte OP_RET- 另请参阅:
-
OP_TABLESWITCH
public static final byte OP_TABLESWITCH- 另请参阅:
-
OP_LOOKUPSWITCH
public static final byte OP_LOOKUPSWITCH- 另请参阅:
-
OP_IRETURN
public static final byte OP_IRETURN- 另请参阅:
-
OP_LRETURN
public static final byte OP_LRETURN- 另请参阅:
-
OP_FRETURN
public static final byte OP_FRETURN- 另请参阅:
-
OP_DRETURN
public static final byte OP_DRETURN- 另请参阅:
-
OP_ARETURN
public static final byte OP_ARETURN- 另请参阅:
-
OP_RETURN
public static final byte OP_RETURN- 另请参阅:
-
OP_GETSTATIC
public static final byte OP_GETSTATIC- 另请参阅:
-
OP_PUTSTATIC
public static final byte OP_PUTSTATIC- 另请参阅:
-
OP_GETFIELD
public static final byte OP_GETFIELD- 另请参阅:
-
OP_PUTFIELD
public static final byte OP_PUTFIELD- 另请参阅:
-
OP_INVOKEVIRTUAL
public static final byte OP_INVOKEVIRTUAL- 另请参阅:
-
OP_INVOKESPECIAL
public static final byte OP_INVOKESPECIAL- 另请参阅:
-
OP_INVOKESTATIC
public static final byte OP_INVOKESTATIC- 另请参阅:
-
OP_INVOKEINTERFACE
public static final byte OP_INVOKEINTERFACE- 另请参阅:
-
OP_INVOKEDYNAMIC
public static final byte OP_INVOKEDYNAMIC- 另请参阅:
-
OP_NEW
public static final byte OP_NEW- 另请参阅:
-
OP_NEWARRAY
public static final byte OP_NEWARRAY- 另请参阅:
-
OP_ANEWARRAY
public static final byte OP_ANEWARRAY- 另请参阅:
-
OP_ARRAYLENGTH
public static final byte OP_ARRAYLENGTH- 另请参阅:
-
OP_ATHROW
public static final byte OP_ATHROW- 另请参阅:
-
OP_CHECKCAST
public static final byte OP_CHECKCAST- 另请参阅:
-
OP_INSTANCEOF
public static final byte OP_INSTANCEOF- 另请参阅:
-
OP_MONITORENTER
public static final byte OP_MONITORENTER- 另请参阅:
-
OP_MONITOREXIT
public static final byte OP_MONITOREXIT- 另请参阅:
-
OP_WIDE
public static final byte OP_WIDE- 另请参阅:
-
OP_MULTIANEWARRAY
public static final byte OP_MULTIANEWARRAY- 另请参阅:
-
OP_IFNULL
public static final byte OP_IFNULL- 另请参阅:
-
OP_IFNONNULL
public static final byte OP_IFNONNULL- 另请参阅:
-
OP_GOTO_W
public static final byte OP_GOTO_W- 另请参阅:
-
OP_JSR_W
public static final byte OP_JSR_W- 另请参阅:
-
NAMES
-
ARRAY_T_BOOLEAN
public static final byte ARRAY_T_BOOLEAN- 另请参阅:
-
ARRAY_T_CHAR
public static final byte ARRAY_T_CHAR- 另请参阅:
-
ARRAY_T_FLOAT
public static final byte ARRAY_T_FLOAT- 另请参阅:
-
ARRAY_T_DOUBLE
public static final byte ARRAY_T_DOUBLE- 另请参阅:
-
ARRAY_T_BYTE
public static final byte ARRAY_T_BYTE- 另请参阅:
-
ARRAY_T_SHORT
public static final byte ARRAY_T_SHORT- 另请参阅:
-
ARRAY_T_INT
public static final byte ARRAY_T_INT- 另请参阅:
-
ARRAY_T_LONG
public static final byte ARRAY_T_LONG- 另请参阅:
-
opcode
public byte opcode
-
-
构造器详细资料
-
Instruction
public Instruction()
-
-
方法详细资料
-
equals
-
hashCode
public abstract int hashCode() -
canonicalOpcode
public byte canonicalOpcode()Returns the canonical opcode of this instruction, i.e. typically the opcode whose extension has been removed. -
actualOpcode
public byte actualOpcode()Returns the actual opcode of this instruction, i.e. the opcode that is stored in the bytecode. -
shrink
Shrinks this instruction to its shortest possible form.- 返回:
- this instruction.
-
write
Writes the Instruction at the given offset in the given code attribute. -
write
public void write(byte[] code, int offset) Writes the Instruction at the given offset in the given code array. -
isWide
protected boolean isWide()Returns whether the instruction is wide, i.e. preceded by a wide opcode. With the current specifications, only variable instructions can be wide. -
readInfo
protected abstract void readInfo(byte[] code, int offset) Reads the data following the instruction opcode. -
writeInfo
protected abstract void writeInfo(byte[] code, int offset) Writes data following the instruction opcode. -
length
public abstract int length(int offset) Returns the length in bytes of the instruction. -
accept
public abstract void accept(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, InstructionVisitor instructionVisitor) Accepts the given visitor. -
toString
Returns a description of the instruction, at the given offset. -
toString
Returns a description of the instruction, at the given offset. -
getName
Returns the name of the instruction. -
mayThrowExceptions
public boolean mayThrowExceptions()Returns whether the instruction may conservatively throw exceptions. -
mayInstanceThrowExceptions
Returns whether a particular instance of an instruction may throw exceptions. -
isCategory2
public boolean isCategory2()Returns whether the instruction is a Category 2 instruction. This means that it operates on long or double arguments. -
stackPopCount
Returns the number of entries popped from the stack during the execution of the instruction. -
stackPushCount
Returns the number of entries pushed onto the stack during the execution of the instruction. -
stackEntryIndexBefore
Returns the stack entry index from which the specified stack entry is copied by a dup/swap/checkcast instruction, or -1 otherwise. Stack entry indices are counted from the top of the stack.- checkcast: after: 0 (before: 0 ) -- not anymore
- dup: after: 0 0 (before: 0 )
- dup_x1: after: 0 1 0 (before: 1 0 )
- dup_x2: after: 0 2 1 0 (before: 2 1 0 )
- dup2: after: 1 0 1 0 (before: 1 0 )
- dup2_x1: after: 1 0 2 1 0 (before: 2 1 0 )
- dup2_x2: after: 1 0 3 2 1 0 (before: 3 2 1 0)
-
readByte
protected static int readByte(byte[] code, int offset) -
readShort
protected static int readShort(byte[] code, int offset) -
readInt
protected static int readInt(byte[] code, int offset) -
readValue
protected static int readValue(byte[] code, int offset, int valueSize) -
readSignedByte
protected static int readSignedByte(byte[] code, int offset) -
readSignedShort
protected static int readSignedShort(byte[] code, int offset) -
readSignedValue
protected static int readSignedValue(byte[] code, int offset, int valueSize) -
writeByte
protected static void writeByte(byte[] code, int offset, int value) -
writeShort
protected static void writeShort(byte[] code, int offset, int value) -
writeInt
protected static void writeInt(byte[] code, int offset, int value) -
writeValue
protected static void writeValue(byte[] code, int offset, int value, int valueSize) -
writeSignedByte
protected static void writeSignedByte(byte[] code, int offset, int value) -
writeSignedShort
protected static void writeSignedShort(byte[] code, int offset, int value) -
writeSignedValue
protected static void writeSignedValue(byte[] code, int offset, int value, int valueSize)
-