Class Insn
java.lang.Object
com.sun.jdo.api.persistence.enhancer.classfile.Insn
- All Implemented Interfaces:
VMConstants
- Direct Known Subclasses:
InsnConstOp,InsnIInc,InsnIntOp,InsnLookupSwitch,InsnMultiDimArrayNew,InsnSingle,InsnTableSwitch,InsnTarget,InsnTargetOp
Insn is an abstract class which represents a java VM instruction in a
sequence of instructions.
-
Field Summary
FieldsFields inherited from interface com.sun.jdo.api.persistence.enhancer.classfile.VMConstants
ACCAbstract, ACCFinal, ACCInterface, ACCNative, ACCPrivate, ACCProtected, ACCPublic, ACCStatic, ACCSuper, ACCSynchronized, ACCTransient, ACCVolatile, CONSTANTClass, CONSTANTDouble, CONSTANTFieldRef, CONSTANTFloat, CONSTANTInteger, CONSTANTInterfaceMethodRef, CONSTANTLong, CONSTANTMethodRef, CONSTANTNameAndType, CONSTANTString, CONSTANTUnicode, CONSTANTUtf8, opc_aaload, opc_aastore, opc_aconst_null, opc_aload, opc_aload_0, opc_aload_1, opc_aload_2, opc_aload_3, opc_anewarray, opc_areturn, opc_arraylength, opc_astore, opc_astore_0, opc_astore_1, opc_astore_2, opc_astore_3, opc_athrow, opc_baload, opc_bastore, opc_bipush, opc_caload, opc_castore, opc_checkcast, opc_d2f, opc_d2i, opc_d2l, opc_dadd, opc_daload, opc_dastore, opc_dcmpg, opc_dcmpl, opc_dconst_0, opc_dconst_1, opc_ddiv, opc_dload, opc_dload_0, opc_dload_1, opc_dload_2, opc_dload_3, opc_dmul, opc_dneg, opc_drem, opc_dreturn, opc_dstore, opc_dstore_0, opc_dstore_1, opc_dstore_2, opc_dstore_3, opc_dsub, opc_dup, opc_dup_x1, opc_dup_x2, opc_dup2, opc_dup2_x1, opc_dup2_x2, opc_f2d, opc_f2i, opc_f2l, opc_fadd, opc_faload, opc_fastore, opc_fcmpg, opc_fcmpl, opc_fconst_0, opc_fconst_1, opc_fconst_2, opc_fdiv, opc_fload, opc_fload_0, opc_fload_1, opc_fload_2, opc_fload_3, opc_fmul, opc_fneg, opc_frem, opc_freturn, opc_fstore, opc_fstore_0, opc_fstore_1, opc_fstore_2, opc_fstore_3, opc_fsub, opc_getfield, opc_getstatic, opc_goto, opc_goto_w, opc_i2b, opc_i2c, opc_i2d, opc_i2f, opc_i2l, opc_i2s, opc_iadd, opc_iaload, opc_iand, opc_iastore, opc_iconst_0, opc_iconst_1, opc_iconst_2, opc_iconst_3, opc_iconst_4, opc_iconst_5, opc_iconst_m1, opc_idiv, opc_if_acmpeq, opc_if_acmpne, opc_if_icmpeq, opc_if_icmpge, opc_if_icmpgt, opc_if_icmple, opc_if_icmplt, opc_if_icmpne, opc_ifeq, opc_ifge, opc_ifgt, opc_ifle, opc_iflt, opc_ifne, opc_ifnonnull, opc_ifnull, opc_iinc, opc_iload, opc_iload_0, opc_iload_1, opc_iload_2, opc_iload_3, opc_imul, opc_ineg, opc_instanceof, opc_invokeinterface, opc_invokespecial, opc_invokestatic, opc_invokevirtual, opc_ior, opc_irem, opc_ireturn, opc_ishl, opc_ishr, opc_istore, opc_istore_0, opc_istore_1, opc_istore_2, opc_istore_3, opc_isub, opc_iushr, opc_ixor, opc_jsr, opc_jsr_w, opc_l2d, opc_l2f, opc_l2i, opc_ladd, opc_laload, opc_land, opc_lastore, opc_lcmp, opc_lconst_0, opc_lconst_1, opc_ldc, opc_ldc_w, opc_ldc2_w, opc_ldiv, opc_lload, opc_lload_0, opc_lload_1, opc_lload_2, opc_lload_3, opc_lmul, opc_lneg, opc_lookupswitch, opc_lor, opc_lrem, opc_lreturn, opc_lshl, opc_lshr, opc_lstore, opc_lstore_0, opc_lstore_1, opc_lstore_2, opc_lstore_3, opc_lsub, opc_lushr, opc_lxor, opc_monitorenter, opc_monitorexit, opc_multianewarray, opc_new, opc_newarray, opc_nop, opc_pop, opc_pop2, opc_putfield, opc_putstatic, opc_ret, opc_return, opc_saload, opc_sastore, opc_sipush, opc_swap, opc_tableswitch, opc_wide, opc_xxxunusedxxx, T_BOOLEAN, T_BYTE, T_CHAR, T_DOUBLE, T_FLOAT, T_INT, T_LONG, T_SHORT, T_TWOWORD, T_UNKNOWN, T_WORD, TC_INTERFACE, TC_OBJECT, TC_STRING -
Method Summary
Modifier and TypeMethodDescriptionAppend an instruction sequence at the end of this instruction sequence.abstract StringargTypes()What are the types of the stack operands ?abstract booleanbranches()Does this instruction branch?static Insncreate(int theOpCode) Create an instruction which requires no immediate operandsstatic Insncreate(int theOpCode, int intValue) Create an instruction which requires a single integral constant as an immediate operand.static Insncreate(int theOpCode, ConstBasic constValue) Create an instruction which requires a single constant from the constant pool as an immediate operand.static Insncreate(int theOpCode, InsnTarget target) Create an instruction which requires a single branch offset as an immediate operand.Insert an instruction sequence in the code sequence after this instruction.static final intloadStoreDataType(int opcode) Return the type of value manipulated by the load/store instructionvoidMark possible branch targetsnext()Returns the next instruction in the code sequenceabstract intHow many words of stack operands does this instruction take?abstract intHow many words of stack results does this instruction deposit?intoffset()Return the offset of this instruction in the containing code sequenceintopcode()Return the opcode for this instructionstatic StringopName(int opcode) Return the name of the operation for a given opcodeprev()Returns the previous instruction in the code sequencevoidprintInsn(PrintStream out) Print this instruction to the output streamvoidprintList(PrintStream out) Print the sequence of instructions to the output streamvoidremove()Removes the current instruction from it's embedding sequence.abstract StringWhat are the types of the stack results?Insert the single instruction in the code sequence after this instruction.
-
Field Details
-
opc_target
public static final int opc_target- See Also:
-
-
Method Details
-
next
Returns the next instruction in the code sequence -
prev
Returns the previous instruction in the code sequence -
remove
public void remove()Removes the current instruction from it's embedding sequence. -
setNext
Insert the single instruction in the code sequence after this instruction. Returns the inserted instruction. -
insert
Insert an instruction sequence in the code sequence after this instruction. Returns the final instruction. -
append
Append an instruction sequence at the end of this instruction sequence. Returns the final instruction. -
opcode
public int opcode()Return the opcode for this instruction -
offset
public int offset()Return the offset of this instruction in the containing code sequence -
nStackArgs
public abstract int nStackArgs()How many words of stack operands does this instruction take? -
nStackResults
public abstract int nStackResults()How many words of stack results does this instruction deposit? -
argTypes
What are the types of the stack operands ? -
resultTypes
What are the types of the stack results? -
branches
public abstract boolean branches()Does this instruction branch? -
markTargets
public void markTargets()Mark possible branch targets -
opName
Return the name of the operation for a given opcode -
create
Create an instruction which requires no immediate operands -
create
Create an instruction which requires a single constant from the constant pool as an immediate operand. -
create
Create an instruction which requires a single integral constant as an immediate operand. -
create
Create an instruction which requires a single branch offset as an immediate operand. -
printList
Print the sequence of instructions to the output stream -
printInsn
Print this instruction to the output stream -
loadStoreDataType
public static final int loadStoreDataType(int opcode) Return the type of value manipulated by the load/store instruction
-