public class CodeArray extends java.lang.Object implements InstructionVisitor, Opcode
The byte array is returned by calling the array method.
This code assumes no branch will be longer than 65536 bytes.
Instruction,
MethodInfo,
MethodInfo.setCode(byte[])| Modifier and Type | Field and Description |
|---|---|
static boolean |
DEBUG |
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_aswizzle, opc_aswrange, opc_athrow, opc_aupdate, opc_baload, opc_bastore, opc_bipush, opc_breakpoint, 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_putfield_nowb, opc_putstatic, opc_putstatic_nowb, opc_rc, opc_ret, opc_return, opc_saload, opc_sastore, opc_sipush, opc_supdate, opc_swap, opc_tableswitch, opc_wide, opc_xxxunusedxxx, opcNames, opcSize, opcx_aaload, opcx_aastore, opcx_aload, opcx_areturn, opcx_arraylength, opcx_astore, opcx_aswizzle, opcx_aswrange, opcx_athrow, opcx_aupdate, opcx_baload, opcx_bastore, opcx_caload, opcx_castore, opcx_checkcast, opcx_d2f, opcx_d2i, opcx_d2l, opcx_dadd, opcx_daload, opcx_dastore, opcx_dcmpg, opcx_dcmpl, opcx_ddiv, opcx_dload, opcx_dmul, opcx_dneg, opcx_drem, opcx_dreturn, opcx_dstore, opcx_dsub, opcx_dup, opcx_dup_x1, opcx_dup_x2, opcx_dup2, opcx_dup2_x1, opcx_dup2_x2, opcx_f2d, opcx_f2i, opcx_f2l, opcx_fadd, opcx_faload, opcx_fastore, opcx_fcmpg, opcx_fcmpl, opcx_fdiv, opcx_fload, opcx_fmul, opcx_fneg, opcx_frem, opcx_freturn, opcx_fstore, opcx_fsub, opcx_getfield, opcx_getstatic, opcx_goto, opcx_i2b, opcx_i2c, opcx_i2d, opcx_i2f, opcx_i2l, opcx_i2s, opcx_iadd, opcx_iaload, opcx_iand, opcx_iastore, opcx_idiv, opcx_if_acmpeq, opcx_if_acmpne, opcx_if_icmpeq, opcx_if_icmpge, opcx_if_icmpgt, opcx_if_icmple, opcx_if_icmplt, opcx_if_icmpne, opcx_ifeq, opcx_ifge, opcx_ifgt, opcx_ifle, opcx_iflt, opcx_ifne, opcx_ifnonnull, opcx_ifnull, opcx_iinc, opcx_iload, opcx_imul, opcx_ineg, opcx_instanceof, opcx_invokeinterface, opcx_invokespecial, opcx_invokestatic, opcx_invokevirtual, opcx_ior, opcx_irem, opcx_ireturn, opcx_ishl, opcx_ishr, opcx_istore, opcx_isub, opcx_iushr, opcx_ixor, opcx_jsr, opcx_l2d, opcx_l2f, opcx_l2i, opcx_ladd, opcx_laload, opcx_land, opcx_lastore, opcx_lcmp, opcx_ldc, opcx_ldiv, opcx_lload, opcx_lmul, opcx_lneg, opcx_lor, opcx_lrem, opcx_lreturn, opcx_lshl, opcx_lshr, opcx_lstore, opcx_lsub, opcx_lushr, opcx_lxor, opcx_monitorenter, opcx_monitorexit, opcx_multianewarray, opcx_new, opcx_newarray, opcx_nop, opcx_pop, opcx_pop2, opcx_putfield, opcx_putfield_nowb, opcx_putstatic, opcx_putstatic_nowb, opcx_rc, opcx_ret, opcx_return, opcx_saload, opcx_sastore, opcx_supdate, opcx_swap, opcx_switch, opcXMap, VARIABLE| Constructor and Description |
|---|
CodeArray(MethodEditor method,
ConstantPool constants,
java.util.List insts)
Create the byte array for a method.
|
public CodeArray(MethodEditor method, ConstantPool constants, java.util.List insts)
method - The method being edited.constants - The constant pool of the class.insts - A List of Instructions and Labels to convert to a byte array.MethodEditor,
ConstantPool,
Instruction,
Labelpublic int maxLocals()
public int maxStack()
public int labelIndex(Label label)
public byte[] array()
public void addLabel(Label label)
public void addLongBranch(Label label)
public void addBranch(Label label)
public void addOpcode(int opcode)
opcode - The opcode.Opcodepublic void addByte(int i)
public void addShort(int i)
public void addInt(int i)
public void visit_nop(Instruction inst)
visit_nop in interface InstructionVisitorpublic void visit_ldc(Instruction inst)
visit_ldc in interface InstructionVisitorpublic void visit_iload(Instruction inst)
visit_iload in interface InstructionVisitorpublic void visit_lload(Instruction inst)
visit_lload in interface InstructionVisitorpublic void visit_fload(Instruction inst)
visit_fload in interface InstructionVisitorpublic void visit_dload(Instruction inst)
visit_dload in interface InstructionVisitorpublic void visit_aload(Instruction inst)
visit_aload in interface InstructionVisitorpublic void visit_iaload(Instruction inst)
visit_iaload in interface InstructionVisitorpublic void visit_laload(Instruction inst)
visit_laload in interface InstructionVisitorpublic void visit_faload(Instruction inst)
visit_faload in interface InstructionVisitorpublic void visit_daload(Instruction inst)
visit_daload in interface InstructionVisitorpublic void visit_aaload(Instruction inst)
visit_aaload in interface InstructionVisitorpublic void visit_baload(Instruction inst)
visit_baload in interface InstructionVisitorpublic void visit_caload(Instruction inst)
visit_caload in interface InstructionVisitorpublic void visit_saload(Instruction inst)
visit_saload in interface InstructionVisitorpublic void visit_istore(Instruction inst)
visit_istore in interface InstructionVisitorpublic void visit_lstore(Instruction inst)
visit_lstore in interface InstructionVisitorpublic void visit_fstore(Instruction inst)
visit_fstore in interface InstructionVisitorpublic void visit_dstore(Instruction inst)
visit_dstore in interface InstructionVisitorpublic void visit_astore(Instruction inst)
visit_astore in interface InstructionVisitorpublic void visit_iastore(Instruction inst)
visit_iastore in interface InstructionVisitorpublic void visit_lastore(Instruction inst)
visit_lastore in interface InstructionVisitorpublic void visit_fastore(Instruction inst)
visit_fastore in interface InstructionVisitorpublic void visit_dastore(Instruction inst)
visit_dastore in interface InstructionVisitorpublic void visit_aastore(Instruction inst)
visit_aastore in interface InstructionVisitorpublic void visit_bastore(Instruction inst)
visit_bastore in interface InstructionVisitorpublic void visit_castore(Instruction inst)
visit_castore in interface InstructionVisitorpublic void visit_sastore(Instruction inst)
visit_sastore in interface InstructionVisitorpublic void visit_pop(Instruction inst)
visit_pop in interface InstructionVisitorpublic void visit_pop2(Instruction inst)
visit_pop2 in interface InstructionVisitorpublic void visit_dup(Instruction inst)
visit_dup in interface InstructionVisitorpublic void visit_dup_x1(Instruction inst)
visit_dup_x1 in interface InstructionVisitorpublic void visit_dup_x2(Instruction inst)
visit_dup_x2 in interface InstructionVisitorpublic void visit_dup2(Instruction inst)
visit_dup2 in interface InstructionVisitorpublic void visit_dup2_x1(Instruction inst)
visit_dup2_x1 in interface InstructionVisitorpublic void visit_dup2_x2(Instruction inst)
visit_dup2_x2 in interface InstructionVisitorpublic void visit_swap(Instruction inst)
visit_swap in interface InstructionVisitorpublic void visit_iadd(Instruction inst)
visit_iadd in interface InstructionVisitorpublic void visit_ladd(Instruction inst)
visit_ladd in interface InstructionVisitorpublic void visit_fadd(Instruction inst)
visit_fadd in interface InstructionVisitorpublic void visit_dadd(Instruction inst)
visit_dadd in interface InstructionVisitorpublic void visit_isub(Instruction inst)
visit_isub in interface InstructionVisitorpublic void visit_lsub(Instruction inst)
visit_lsub in interface InstructionVisitorpublic void visit_fsub(Instruction inst)
visit_fsub in interface InstructionVisitorpublic void visit_dsub(Instruction inst)
visit_dsub in interface InstructionVisitorpublic void visit_imul(Instruction inst)
visit_imul in interface InstructionVisitorpublic void visit_lmul(Instruction inst)
visit_lmul in interface InstructionVisitorpublic void visit_fmul(Instruction inst)
visit_fmul in interface InstructionVisitorpublic void visit_dmul(Instruction inst)
visit_dmul in interface InstructionVisitorpublic void visit_idiv(Instruction inst)
visit_idiv in interface InstructionVisitorpublic void visit_ldiv(Instruction inst)
visit_ldiv in interface InstructionVisitorpublic void visit_fdiv(Instruction inst)
visit_fdiv in interface InstructionVisitorpublic void visit_ddiv(Instruction inst)
visit_ddiv in interface InstructionVisitorpublic void visit_irem(Instruction inst)
visit_irem in interface InstructionVisitorpublic void visit_lrem(Instruction inst)
visit_lrem in interface InstructionVisitorpublic void visit_frem(Instruction inst)
visit_frem in interface InstructionVisitorpublic void visit_drem(Instruction inst)
visit_drem in interface InstructionVisitorpublic void visit_ineg(Instruction inst)
visit_ineg in interface InstructionVisitorpublic void visit_lneg(Instruction inst)
visit_lneg in interface InstructionVisitorpublic void visit_fneg(Instruction inst)
visit_fneg in interface InstructionVisitorpublic void visit_dneg(Instruction inst)
visit_dneg in interface InstructionVisitorpublic void visit_ishl(Instruction inst)
visit_ishl in interface InstructionVisitorpublic void visit_lshl(Instruction inst)
visit_lshl in interface InstructionVisitorpublic void visit_ishr(Instruction inst)
visit_ishr in interface InstructionVisitorpublic void visit_lshr(Instruction inst)
visit_lshr in interface InstructionVisitorpublic void visit_iushr(Instruction inst)
visit_iushr in interface InstructionVisitorpublic void visit_lushr(Instruction inst)
visit_lushr in interface InstructionVisitorpublic void visit_iand(Instruction inst)
visit_iand in interface InstructionVisitorpublic void visit_land(Instruction inst)
visit_land in interface InstructionVisitorpublic void visit_ior(Instruction inst)
visit_ior in interface InstructionVisitorpublic void visit_lor(Instruction inst)
visit_lor in interface InstructionVisitorpublic void visit_ixor(Instruction inst)
visit_ixor in interface InstructionVisitorpublic void visit_lxor(Instruction inst)
visit_lxor in interface InstructionVisitorpublic void visit_iinc(Instruction inst)
visit_iinc in interface InstructionVisitorpublic void visit_i2l(Instruction inst)
visit_i2l in interface InstructionVisitorpublic void visit_i2f(Instruction inst)
visit_i2f in interface InstructionVisitorpublic void visit_i2d(Instruction inst)
visit_i2d in interface InstructionVisitorpublic void visit_l2i(Instruction inst)
visit_l2i in interface InstructionVisitorpublic void visit_l2f(Instruction inst)
visit_l2f in interface InstructionVisitorpublic void visit_l2d(Instruction inst)
visit_l2d in interface InstructionVisitorpublic void visit_f2i(Instruction inst)
visit_f2i in interface InstructionVisitorpublic void visit_f2l(Instruction inst)
visit_f2l in interface InstructionVisitorpublic void visit_f2d(Instruction inst)
visit_f2d in interface InstructionVisitorpublic void visit_d2i(Instruction inst)
visit_d2i in interface InstructionVisitorpublic void visit_d2l(Instruction inst)
visit_d2l in interface InstructionVisitorpublic void visit_d2f(Instruction inst)
visit_d2f in interface InstructionVisitorpublic void visit_i2b(Instruction inst)
visit_i2b in interface InstructionVisitorpublic void visit_i2c(Instruction inst)
visit_i2c in interface InstructionVisitorpublic void visit_i2s(Instruction inst)
visit_i2s in interface InstructionVisitorpublic void visit_lcmp(Instruction inst)
visit_lcmp in interface InstructionVisitorpublic void visit_fcmpl(Instruction inst)
visit_fcmpl in interface InstructionVisitorpublic void visit_fcmpg(Instruction inst)
visit_fcmpg in interface InstructionVisitorpublic void visit_dcmpl(Instruction inst)
visit_dcmpl in interface InstructionVisitorpublic void visit_dcmpg(Instruction inst)
visit_dcmpg in interface InstructionVisitorpublic void visit_ifeq(Instruction inst)
visit_ifeq in interface InstructionVisitorpublic void visit_ifne(Instruction inst)
visit_ifne in interface InstructionVisitorpublic void visit_iflt(Instruction inst)
visit_iflt in interface InstructionVisitorpublic void visit_ifge(Instruction inst)
visit_ifge in interface InstructionVisitorpublic void visit_ifgt(Instruction inst)
visit_ifgt in interface InstructionVisitorpublic void visit_ifle(Instruction inst)
visit_ifle in interface InstructionVisitorpublic void visit_if_icmpeq(Instruction inst)
visit_if_icmpeq in interface InstructionVisitorpublic void visit_if_icmpne(Instruction inst)
visit_if_icmpne in interface InstructionVisitorpublic void visit_if_icmplt(Instruction inst)
visit_if_icmplt in interface InstructionVisitorpublic void visit_if_icmpge(Instruction inst)
visit_if_icmpge in interface InstructionVisitorpublic void visit_if_icmpgt(Instruction inst)
visit_if_icmpgt in interface InstructionVisitorpublic void visit_if_icmple(Instruction inst)
visit_if_icmple in interface InstructionVisitorpublic void visit_if_acmpeq(Instruction inst)
visit_if_acmpeq in interface InstructionVisitorpublic void visit_if_acmpne(Instruction inst)
visit_if_acmpne in interface InstructionVisitorpublic void visit_goto(Instruction inst)
visit_goto in interface InstructionVisitorpublic void visit_jsr(Instruction inst)
visit_jsr in interface InstructionVisitorpublic void visit_ret(Instruction inst)
visit_ret in interface InstructionVisitorpublic void visit_switch(Instruction inst)
visit_switch in interface InstructionVisitorpublic void visit_ireturn(Instruction inst)
visit_ireturn in interface InstructionVisitorpublic void visit_lreturn(Instruction inst)
visit_lreturn in interface InstructionVisitorpublic void visit_freturn(Instruction inst)
visit_freturn in interface InstructionVisitorpublic void visit_dreturn(Instruction inst)
visit_dreturn in interface InstructionVisitorpublic void visit_areturn(Instruction inst)
visit_areturn in interface InstructionVisitorpublic void visit_return(Instruction inst)
visit_return in interface InstructionVisitorpublic void visit_getstatic(Instruction inst)
visit_getstatic in interface InstructionVisitorpublic void visit_putstatic(Instruction inst)
visit_putstatic in interface InstructionVisitorpublic void visit_putstatic_nowb(Instruction inst)
visit_putstatic_nowb in interface InstructionVisitorpublic void visit_getfield(Instruction inst)
visit_getfield in interface InstructionVisitorpublic void visit_putfield(Instruction inst)
visit_putfield in interface InstructionVisitorpublic void visit_putfield_nowb(Instruction inst)
visit_putfield_nowb in interface InstructionVisitorpublic void visit_invokevirtual(Instruction inst)
visit_invokevirtual in interface InstructionVisitorpublic void visit_invokespecial(Instruction inst)
visit_invokespecial in interface InstructionVisitorpublic void visit_invokestatic(Instruction inst)
visit_invokestatic in interface InstructionVisitorpublic void visit_invokeinterface(Instruction inst)
visit_invokeinterface in interface InstructionVisitorpublic void visit_new(Instruction inst)
visit_new in interface InstructionVisitorpublic void visit_newarray(Instruction inst)
visit_newarray in interface InstructionVisitorpublic void visit_arraylength(Instruction inst)
visit_arraylength in interface InstructionVisitorpublic void visit_athrow(Instruction inst)
visit_athrow in interface InstructionVisitorpublic void visit_checkcast(Instruction inst)
visit_checkcast in interface InstructionVisitorpublic void visit_instanceof(Instruction inst)
visit_instanceof in interface InstructionVisitorpublic void visit_monitorenter(Instruction inst)
visit_monitorenter in interface InstructionVisitorpublic void visit_monitorexit(Instruction inst)
visit_monitorexit in interface InstructionVisitorpublic void visit_multianewarray(Instruction inst)
visit_multianewarray in interface InstructionVisitorpublic void visit_ifnull(Instruction inst)
visit_ifnull in interface InstructionVisitorpublic void visit_ifnonnull(Instruction inst)
visit_ifnonnull in interface InstructionVisitorpublic void visit_rc(Instruction inst)
visit_rc in interface InstructionVisitorpublic void visit_aswizzle(Instruction inst)
visit_aswizzle in interface InstructionVisitorpublic void visit_aswrange(Instruction inst)
visit_aswrange in interface InstructionVisitorpublic void visit_aupdate(Instruction inst)
visit_aupdate in interface InstructionVisitorpublic void visit_supdate(Instruction inst)
visit_supdate in interface InstructionVisitor