public abstract class Insn extends Object implements VMConstants
Modifier and Type | Field and Description |
---|---|
static int |
opc_target |
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
Modifier and Type | Method and Description |
---|---|
Insn |
append(Insn i)
Append an instruction sequence at the end of this instruction
sequence.
|
abstract String |
argTypes()
What are the types of the stack operands ?
|
abstract boolean |
branches()
Does this instruction branch?
|
static Insn |
create(int theOpCode)
Create an instruction which requires no immediate operands
|
static Insn |
create(int theOpCode,
ConstBasic constValue)
Create an instruction which requires a single constant from the
constant pool as an immediate operand.
|
static Insn |
create(int theOpCode,
InsnTarget target)
Create an instruction which requires a single branch offset
as an immediate operand.
|
static Insn |
create(int theOpCode,
int intValue)
Create an instruction which requires a single integral constant
as an immediate operand.
|
Insn |
insert(Insn i)
Insert an instruction sequence in the code sequence after this
instruction.
|
static int |
loadStoreDataType(int opcode)
Return the type of value manipulated by the load/store instruction
|
void |
markTargets()
Mark possible branch targets
|
Insn |
next()
Returns the next instruction in the code sequence
|
abstract int |
nStackArgs()
How many words of stack operands does this instruction take?
|
abstract int |
nStackResults()
How many words of stack results does this instruction deposit?
|
int |
offset()
Return the offset of this instruction in the containing code sequence
|
int |
opcode()
Return the opcode for this instruction
|
static String |
opName(int opcode)
Return the name of the operation for a given opcode
|
Insn |
prev()
Returns the previous instruction in the code sequence
|
void |
printInsn(PrintStream out)
Print this instruction to the output stream
|
void |
printList(PrintStream out)
Print the sequence of instructions to the output stream
|
void |
remove()
Removes the current instruction from it's embedding sequence.
|
abstract String |
resultTypes()
What are the types of the stack results?
|
Insn |
setNext(Insn i)
Insert the single instruction in the code sequence after this
instruction.
|
public static final int opc_target
public Insn next()
public Insn prev()
public void remove()
public Insn setNext(Insn i)
public Insn insert(Insn i)
public Insn append(Insn i)
public int opcode()
public int offset()
public abstract int nStackArgs()
public abstract int nStackResults()
public abstract String argTypes()
public abstract String resultTypes()
public abstract boolean branches()
public void markTargets()
public static String opName(int opcode)
public static Insn create(int theOpCode)
public static Insn create(int theOpCode, ConstBasic constValue)
public static Insn create(int theOpCode, int intValue)
public static Insn create(int theOpCode, InsnTarget target)
public void printList(PrintStream out)
public void printInsn(PrintStream out)
public static final int loadStoreDataType(int opcode)
Copyright © 2019. All rights reserved.