Package com.tonic.analysis.instruction
One type per JVM instruction, with the factory that decodes a method body into them.
-
Interface Summary Interface Description InvokeInsn Common supertype for the four owner-bearing invoke instructions -InvokeVirtualInstruction,InvokeSpecialInstruction,InvokeStaticInstruction, andInvokeInterfaceInstruction.LocalVarInstruction Implemented by instructions that reference a local-variable slot: the load/store family,iinc,ret, and the wide forms. -
Class Summary Class Description AALoadInstruction Represents the AALOAD instruction (0x32).AAStoreInstruction Represents the AASTORE instruction (0x53).AConstNullInstruction Represents the ACONST_NULL instruction (0x01).ALoadInstruction Represents the ALOAD instructions (0x19, 0x2A-0x2D).ANewArrayInstruction Represents the ANEWARRAY instruction (0xBD).ArithmeticInstruction Represents arithmetic instructions.ArithmeticShiftInstruction Represents shift instructions (ISHL, LSHL, ISHR, LSHR, IUSHR, LUSHR).ArrayLengthInstruction Represents the ARRAYLENGTH instruction (0xBE).AStoreInstruction Represents the ASTORE instruction and its variants (ASTORE, ASTORE_0-3) (0x4B-0x4E).ATHROWInstruction Represents the ATHROW instruction (0xBF).BALOADInstruction Represents the BALOAD instruction (0x33).BAStoreInstruction Represents the BASTORE instruction (0x54).BipushInstruction Represents the BIPUSH instruction (0x10).CALoadInstruction Represents the CALOAD instruction (0x34).CAStoreInstruction Represents the CASTORE instruction (0x55).CheckCastInstruction Represents the CHECKCAST instruction (0xC0).CompareInstruction Represents the compare instructions (LCMP, FCMPL, FCMPG, DCMPL, DCMPG).ConditionalBranchInstruction Represents the conditional branch instructions.ConversionInstruction Represents the type conversion instructions (I2F, I2D, L2I, L2F, L2D, F2I, F2L, F2D, D2I, D2L, D2F).DALoadInstruction Represents the DALOAD instruction (0x31).DAStoreInstruction Represents the DASTORE instruction (0x52).DConstInstruction Represents the JVM DCONST_0 and DCONST_1 instructions.DLoadInstruction Represents the JVM DLOAD instruction.DNegInstruction Represents the JVM DNEG instruction.DStoreInstruction Represents the JVM DSTORE instruction.DupInstruction Represents the JVM DUP instruction and its variants.FALoadInstruction Represents the JVM FALOAD instruction.FAStoreInstruction Represents the JVM FASTORE instruction (0x51).FConstInstruction Represents the JVM FCONST_0, FCONST_1, and FCONST_2 instructions.FLoadInstruction Represents the JVM FLOAD instruction.FNegInstruction Represents the JVM FNEG instruction.FStoreInstruction Represents the JVM FSTORE instruction.GetFieldInstruction Represents the JVM GETFIELD and GETSTATIC instructions.GotoInstruction Represents the JVM GOTO and GOTO_W instructions.I2LInstruction Represents the JVM I2L instruction.IALoadInstruction Represents the JVM IALOAD instruction.IAndInstruction Represents the JVM IAND instruction.IAStoreInstruction Represents the JVM IASTORE instruction.IConstInstruction Represents the JVM ICONST_M1, ICONST_0, ICONST_1, ICONST_2, ICONST_3, ICONST_4, and ICONST_5 instructions.IIncInstruction Represents the JVM IINC instruction.ILoadInstruction Represents the JVM ILOAD instruction.INegInstruction Represents the JVM INEG instruction.InstanceOfInstruction Represents the INSTANCEOF instruction (0xC1).Instruction Represents a single bytecode instruction.InstructionFactory Decodes raw bytecode intoInstructionobjects.InvokeDynamicInstruction Represents the INVOKEDYNAMIC instruction (0xBA).InvokeInterfaceInstruction Represents the INVOKEINTERFACE instruction (0xB9).InvokeSpecialInstruction Represents the INVOKESPECIAL instruction (0xB7).InvokeStaticInstruction Represents the INVOKESTATIC instruction (0xB8).InvokeVirtualInstruction Represents the INVOKEVIRTUAL instruction (0xB6).IOrInstruction Represents the IOR instruction (0x80).IStoreInstruction Represents the ISTORE instructions (0x36, 0x3B-0x3E).IXorInstruction Represents the IXOR instruction (0x82).JsrInstruction Represents the JSR (0xA8) and JSR_W (0xC9) instructions.LALoadInstruction Represents the LALOAD instruction (0x2F).LandInstruction Represents the LAND instruction (0x7F).LAStoreInstruction Represents the LASTORE instruction (0x50).LConstInstruction Represents the LCONST_* instructions (0x09 and 0x0A).Ldc2WInstruction Represents the LDC2_W instruction (0x14).LdcInstruction Represents the LDC instruction (0x12).LdcWInstruction Represents the LDC_W instruction (0x13).LLoadInstruction Represents the LLOAD instruction (0x16).LNegInstruction Represents the LNEG instruction (0x75).LookupSwitchInstruction Represents the LOOKUPSWITCH instruction (0xAB).LorInstruction Represents the LOR instruction (0x81).LStoreInstruction Represents the LSTORE instructions (0x37, 0x3F-0x42).LXorInstruction Represents the LXOR instruction (0x83).MethodReturnInstruction Represents the return instructions (IRETURN, LRETURN, FRETURN, DRETURN, ARETURN, RETURN).MonitorEnterInstruction Represents the MONITORENTER instruction (0xC2).MonitorExitInstruction Represents the MONITOREXIT instruction (0xC3).MultiANewArrayInstruction Represents the MULTIANEWARRAY instruction (0xC5).NarrowingConversionInstruction Represents the narrowing conversion instructions (I2B, I2C, I2S).NewObjectInstruction Represents the NEW instruction (0xBB).NewPrimitiveArrayInstruction Represents the NEWARRAY instruction (0xBC).NopInstruction Represents the NOP instruction (0x00).Pop2Instruction Represents the POP2 instruction (0x58).PopInstruction Represents the POP instruction (0x57).PutFieldInstruction Represents the PUTFIELD and PUTSTATIC instructions (0xB5, 0xB3).RetInstruction Represents the RET instruction (0xA9).SALoadInstruction Represents the SALOAD instruction (0x35).SAStoreInstruction Represents the SASTORE instruction (0x56).SipushInstruction Represents the SIPUSH instruction (0x11).SwapInstruction Represents the SWAP instruction (0x5F).TableSwitchInstruction Represents the TABLESWITCH instruction (0xAA).UnknownInstruction Represents an unknown or unhandled instruction.WideIIncInstruction Represents the JVM WIDE IINC instruction.WideInstruction Represents the WIDE instruction (0xC4). -
Enum Summary Enum Description ArithmeticInstruction.ArithmeticType The arithmetic operation kinds, each pairing a JVM opcode with its mnemonic.ArithmeticShiftInstruction.ShiftType The shift operation kinds, each pairing a JVM opcode with its mnemonic.CompareInstruction.CompareType The compare operation kinds, each pairing a JVM opcode with its mnemonic.ConditionalBranchInstruction.BranchType The conditional branch kinds, each pairing a JVM opcode with its mnemonic.ConversionInstruction.ConversionType The widening conversion kinds, each pairing a JVM opcode with its mnemonic.DupInstruction.DupType The stack-duplication variants (DUP through DUP2_X2), each pairing a JVM opcode with its mnemonic.GetFieldInstruction.FieldType The field-read kinds (instance GETFIELD vs static GETSTATIC), each pairing a JVM opcode with its mnemonic.GotoInstruction.GotoType The goto widths (16-bit GOTO vs 32-bit GOTO_W), each pairing a JVM opcode with its mnemonic.LdcInstruction.ConstantType The kinds of constant-pool entry an ldc-family instruction can load.NarrowingConversionInstruction.NarrowingType The narrowing conversion kinds, each pairing a JVM opcode with its mnemonic.NewPrimitiveArrayInstruction.ArrayType The primitive element types NEWARRAY can allocate, each pairing an atype code with a description.PutFieldInstruction.FieldType The field-write kinds (instance PUTFIELD vs static PUTSTATIC), each pairing a JVM opcode with its mnemonic.