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
public abstract class Insn extends Object implements VMConstants
Insn is an abstract class which represents a java VM instruction in a sequence of instructions.
-
-
Field Summary
Fields Modifier and Type Field Description static intopc_target-
Fields 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
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description Insnappend(Insn i)Append 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.Insninsert(Insn i)Insert an instruction sequence in the code sequence after this instruction.static intloadStoreDataType(int opcode)Return the type of value manipulated by the load/store instructionvoidmarkTargets()Mark possible branch targetsInsnnext()Returns the next instruction in the code sequenceabstract intnStackArgs()How many words of stack operands does this instruction take?abstract intnStackResults()How 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 opcodeInsnprev()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 StringresultTypes()What are the types of the stack results?InsnsetNext(Insn i)Insert the single instruction in the code sequence after this instruction.
-
-
-
Field Detail
-
opc_target
public static final int opc_target
- See Also:
- Constant Field Values
-
-
Method Detail
-
next
public Insn next()
Returns the next instruction in the code sequence
-
prev
public Insn prev()
Returns the previous instruction in the code sequence
-
remove
public void remove()
Removes the current instruction from it's embedding sequence.
-
setNext
public Insn setNext(Insn i)
Insert the single instruction in the code sequence after this instruction. Returns the inserted instruction.
-
insert
public Insn insert(Insn i)
Insert an instruction sequence in the code sequence after this instruction. Returns the final instruction.
-
append
public Insn append(Insn i)
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
public abstract String argTypes()
What are the types of the stack operands ?
-
resultTypes
public abstract String 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
public static String opName(int opcode)
Return the name of the operation for a given opcode
-
create
public static Insn create(int theOpCode)
Create an instruction which requires no immediate operands
-
create
public static Insn create(int theOpCode, ConstBasic constValue)
Create an instruction which requires a single constant from the constant pool as an immediate operand.
-
create
public static Insn create(int theOpCode, int intValue)
Create an instruction which requires a single integral constant as an immediate operand.
-
create
public static Insn create(int theOpCode, InsnTarget target)
Create an instruction which requires a single branch offset as an immediate operand.
-
printList
public void printList(PrintStream out)
Print the sequence of instructions to the output stream
-
printInsn
public void printInsn(PrintStream out)
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
-
-