edu.rice.cs.cunit.classFile.code
Class Opcode

java.lang.Object
  extended by edu.rice.cs.cunit.classFile.code.Opcode

public abstract class Opcode
extends java.lang.Object

Java opcode class.

Author:
Mathias Ricken

Field Summary
static byte AALOAD
           
static byte AASTORE
           
static byte ACONST_NULL
           
static byte ALOAD
           
static byte ALOAD_0
           
static byte ALOAD_1
           
static byte ALOAD_2
           
static byte ALOAD_3
           
static byte ANEWARRAY
           
static byte ANEWARRAY_QUICK
           
static byte ARETURN
           
static byte ARRAYLENGTH
           
static byte ASTORE
           
static byte ASTORE_0
           
static byte ASTORE_1
           
static byte ASTORE_2
           
static byte ASTORE_3
           
static byte ATHROW
           
static byte BALOAD
           
static byte BASTORE
           
static byte BIPUSH
           
static byte BREAKPOINT
           
static byte CALOAD
           
static byte CASTORE
           
static byte CHECKCAST
           
static byte CHECKCAST_QUICK
           
static byte D2F
           
static byte D2I
           
static byte D2L
           
static byte DADD
           
static byte DALOAD
           
static byte DASTORE
           
static byte DCMPG
           
static byte DCMPL
           
static byte DCONST_0
           
static byte DCONST_1
           
static byte DDIV
           
static byte DLOAD
           
static byte DLOAD_0
           
static byte DLOAD_1
           
static byte DLOAD_2
           
static byte DLOAD_3
           
static byte DMUL
           
static byte DNEG
           
static byte DREM
           
static byte DRETURN
           
static byte DSTORE
           
static byte DSTORE_0
           
static byte DSTORE_1
           
static byte DSTORE_2
           
static byte DSTORE_3
           
static byte DSUB
           
static byte DUP
           
static byte DUP_X1
           
static byte DUP_X2
           
static byte DUP2
           
static byte DUP2_X1
           
static byte DUP2_X2
           
static byte F2D
           
static byte F2I
           
static byte F2L
           
static byte FADD
           
static byte FALOAD
           
static byte FASTORE
           
static byte FCMPG
           
static byte FCMPL
           
static byte FCONST_0
           
static byte FCONST_1
           
static byte FCONST_2
           
static byte FDIV
           
static byte FLOAD
           
static byte FLOAD_0
           
static byte FLOAD_1
           
static byte FLOAD_2
           
static byte FLOAD_3
           
static byte FMUL
           
static byte FNEG
           
static byte FREM
           
static byte FRETURN
           
static byte FSTORE
           
static byte FSTORE_0
           
static byte FSTORE_1
           
static byte FSTORE_2
           
static byte FSTORE_3
           
static byte FSUB
           
static byte GETFIELD
           
static byte GETFIELD_QUICK
           
static byte GETFIELD_QUICK_W
           
static byte GETFIELD2_QUICK
           
static byte GETSTATIC
           
static byte GETSTATIC_QUICK
           
static byte GETSTATIC2_QUICK
           
static byte GOTO
           
static byte GOTO_W
           
static byte I2B
           
static byte I2C
           
static byte I2D
           
static byte I2F
           
static byte I2L
           
static byte I2S
           
static byte IADD
           
static byte IALOAD
           
static byte IAND
           
static byte IASTORE
           
static byte ICONST_0
           
static byte ICONST_1
           
static byte ICONST_2
           
static byte ICONST_3
           
static byte ICONST_4
           
static byte ICONST_5
           
static byte ICONST_M1
           
static byte IDIV
           
static byte IF_ACMPEQ
           
static byte IF_ACMPNE
           
static byte IF_ICMPEQ
           
static byte IF_ICMPGE
           
static byte IF_ICMPGT
           
static byte IF_ICMPLE
           
static byte IF_ICMPLT
           
static byte IF_ICMPNE
           
static byte IFEQ
           
static byte IFGE
           
static byte IFGT
           
static byte IFLE
           
static byte IFLT
           
static byte IFNE
           
static byte IFNONNULL
           
static byte IFNULL
           
static byte IINC
           
static byte ILOAD
           
static byte ILOAD_0
           
static byte ILOAD_1
           
static byte ILOAD_2
           
static byte ILOAD_3
           
static byte IMPDEP1
           
static byte IMPDEP2
           
static byte IMUL
           
static byte INEG
           
static byte INSTANCEOF
           
static byte INSTANCEOF_QUICK
           
static byte INVOKEINTERFACE
           
static byte INVOKEINTERFACE_QUICK
           
static byte INVOKENONVIRTUAL_QUICK
           
static byte INVOKESPECIAL
           
static byte INVOKESTATIC
           
static byte INVOKESTATIC_QUICK
           
static byte INVOKESUPER_QUICK
           
static byte INVOKEVIRTUAL
           
static byte INVOKEVIRTUAL_QUICK
           
static byte INVOKEVIRTUAL_QUICK_W
           
static byte INVOKEVIRTUALOBJECT_QUICK
           
static byte IOR
           
static byte IREM
           
static byte IRETURN
           
private static boolean[] isBranch
          Table determining if an code is a branch instruction.
static byte ISHL
           
static byte ISHR
           
static byte ISTORE
           
static byte ISTORE_0
           
static byte ISTORE_1
           
static byte ISTORE_2
           
static byte ISTORE_3
           
static byte ISUB
           
static byte IUSHR
           
static byte IXOR
           
static byte JSR
           
static byte JSR_W
           
static byte L2D
           
static byte L2F
           
static byte L2I
           
static byte LADD
           
static byte LALOAD
           
static byte LAND
           
static byte LASTORE
           
static byte LCMP
           
static byte LCONST_0
           
static byte LCONST_1
           
static byte LDC
           
static byte LDC_QUICK
           
static byte LDC_W
           
static byte LDC_W_QUICK
           
static byte LDC2_W
           
static byte LDC2_W_QUICK
           
static byte LDIV
           
static byte LLOAD
           
static byte LLOAD_0
           
static byte LLOAD_1
           
static byte LLOAD_2
           
static byte LLOAD_3
           
static byte LMUL
           
static byte LNEG
           
static byte LOOKUPSWITCH
           
static byte LOR
           
static byte LREM
           
static byte LRETURN
           
static byte LSHL
           
static byte LSHR
           
static byte LSTORE
           
static byte LSTORE_0
           
static byte LSTORE_1
           
static byte LSTORE_2
           
static byte LSTORE_3
           
static byte LSUB
           
static byte LUSHR
           
static byte LXOR
           
static byte MONITORENTER
           
static byte MONITOREXIT
           
static byte MULTIANEWARRAY
           
static byte MULTIANEWARRAY_QUICK
           
private static java.lang.String[] NAMES
          Table of mnemonics.
static byte NEW
           
static byte NEW_QUICK
           
static byte NEWARRAY
           
static byte NOP
           
private static byte[] OFFSET
          Table with code offsets.
static byte POP
           
static byte POP2
           
static byte PUTFIELD
           
static byte PUTFIELD_QUICK
           
static byte PUTFIELD_QUICK_W
           
static byte PUTFIELD2_QUICK
           
static byte PUTSTATIC
           
static byte PUTSTATIC_QUICK
           
static byte PUTSTATIC2_QUICK
           
static byte RET
           
static byte RETURN
           
static byte SALOAD
           
static byte SASTORE
           
static byte SIPUSH
           
static byte SWAP
           
static byte TABLESWITCH
           
static byte UNKNOWN_DC
           
static byte UNKNOWN_E5
           
static byte UNKNOWN_E6
           
static byte UNKNOWN_E7
           
static byte UNKNOWN_E8
           
static byte UNKNOWN_E9
           
static byte UNKNOWN_EA
           
static byte UNKNOWN_EB
           
static byte UNKNOWN_EC
           
static byte UNKNOWN_ED
           
static byte UNKNOWN_EE
           
static byte UNKNOWN_EF
           
static byte UNKNOWN_F0
           
static byte UNKNOWN_F1
           
static byte UNKNOWN_F2
           
static byte UNKNOWN_F3
           
static byte UNKNOWN_F4
           
static byte UNKNOWN_F5
           
static byte UNKNOWN_F6
           
static byte UNKNOWN_F7
           
static byte UNKNOWN_F8
           
static byte UNKNOWN_F9
           
static byte UNKNOWN_FA
           
static byte UNKNOWN_FB
           
static byte UNKNOWN_FC
           
static byte UNKNOWN_FD
           
static byte WIDE
           
static byte XXXUNUSEDXXX
           
 
Constructor Summary
Opcode()
           
 
Method Summary
static int[] getBranchTargets(byte[] code, int pc, int paddingPC)
          Returns an array of branch targets for the instruction.
static int getInstrSize(byte[] code, int pc)
          Return the length of the instruction at the specified offset in the bytecode array.
static int getInstrSize(byte[] code, int pc, int paddingPC)
          Return the length of the instruction at the specified offset in the bytecode array.
static java.lang.String getOpcodeName(byte opcode)
          Return a human-readable version of the code.
static AInstruction getShortestLoadInstruction(byte baseOpcode, short index)
          Return the shortest instruction possible that loads local variable index onto the stack.
static boolean isBranch(byte opcode)
          Return true if the specified code is a branch instruction.
static boolean isJSR(byte opcode)
          Return true if the specified code is a subroutine call.
static boolean isReturn(byte opcode)
          Return true if the specified code is a return instruction.
static boolean isUnconditionalBranch(byte opcode)
          Return true if the specified code is an unconditional branch instruction.
static byte[] repadInstr(byte[] code, int pc, int paddingPC, int newPC)
          Change the padding on the inside of the instruction found at pc, so that it is padded for a PC=newPC, not for a PC=paddingPC.
static void setBranchTargets(byte[] code, int pc, int[] branchTargets)
          Sets the branch targets for an instruction.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

NOP

public static final byte NOP
See Also:
Constant Field Values

ACONST_NULL

public static final byte ACONST_NULL
See Also:
Constant Field Values

ICONST_M1

public static final byte ICONST_M1
See Also:
Constant Field Values

ICONST_0

public static final byte ICONST_0
See Also:
Constant Field Values

ICONST_1

public static final byte ICONST_1
See Also:
Constant Field Values

ICONST_2

public static final byte ICONST_2
See Also:
Constant Field Values

ICONST_3

public static final byte ICONST_3
See Also:
Constant Field Values

ICONST_4

public static final byte ICONST_4
See Also:
Constant Field Values

ICONST_5

public static final byte ICONST_5
See Also:
Constant Field Values

LCONST_0

public static final byte LCONST_0
See Also:
Constant Field Values

LCONST_1

public static final byte LCONST_1
See Also:
Constant Field Values

FCONST_0

public static final byte FCONST_0
See Also:
Constant Field Values

FCONST_1

public static final byte FCONST_1
See Also:
Constant Field Values

FCONST_2

public static final byte FCONST_2
See Also:
Constant Field Values

DCONST_0

public static final byte DCONST_0
See Also:
Constant Field Values

DCONST_1

public static final byte DCONST_1
See Also:
Constant Field Values

BIPUSH

public static final byte BIPUSH
See Also:
Constant Field Values

SIPUSH

public static final byte SIPUSH
See Also:
Constant Field Values

LDC

public static final byte LDC
See Also:
Constant Field Values

LDC_W

public static final byte LDC_W
See Also:
Constant Field Values

LDC2_W

public static final byte LDC2_W
See Also:
Constant Field Values

ILOAD

public static final byte ILOAD
See Also:
Constant Field Values

LLOAD

public static final byte LLOAD
See Also:
Constant Field Values

FLOAD

public static final byte FLOAD
See Also:
Constant Field Values

DLOAD

public static final byte DLOAD
See Also:
Constant Field Values

ALOAD

public static final byte ALOAD
See Also:
Constant Field Values

ILOAD_0

public static final byte ILOAD_0
See Also:
Constant Field Values

ILOAD_1

public static final byte ILOAD_1
See Also:
Constant Field Values

ILOAD_2

public static final byte ILOAD_2
See Also:
Constant Field Values

ILOAD_3

public static final byte ILOAD_3
See Also:
Constant Field Values

LLOAD_0

public static final byte LLOAD_0
See Also:
Constant Field Values

LLOAD_1

public static final byte LLOAD_1
See Also:
Constant Field Values

LLOAD_2

public static final byte LLOAD_2
See Also:
Constant Field Values

LLOAD_3

public static final byte LLOAD_3
See Also:
Constant Field Values

FLOAD_0

public static final byte FLOAD_0
See Also:
Constant Field Values

FLOAD_1

public static final byte FLOAD_1
See Also:
Constant Field Values

FLOAD_2

public static final byte FLOAD_2
See Also:
Constant Field Values

FLOAD_3

public static final byte FLOAD_3
See Also:
Constant Field Values

DLOAD_0

public static final byte DLOAD_0
See Also:
Constant Field Values

DLOAD_1

public static final byte DLOAD_1
See Also:
Constant Field Values

DLOAD_2

public static final byte DLOAD_2
See Also:
Constant Field Values

DLOAD_3

public static final byte DLOAD_3
See Also:
Constant Field Values

ALOAD_0

public static final byte ALOAD_0
See Also:
Constant Field Values

ALOAD_1

public static final byte ALOAD_1
See Also:
Constant Field Values

ALOAD_2

public static final byte ALOAD_2
See Also:
Constant Field Values

ALOAD_3

public static final byte ALOAD_3
See Also:
Constant Field Values

IALOAD

public static final byte IALOAD
See Also:
Constant Field Values

LALOAD

public static final byte LALOAD
See Also:
Constant Field Values

FALOAD

public static final byte FALOAD
See Also:
Constant Field Values

DALOAD

public static final byte DALOAD
See Also:
Constant Field Values

AALOAD

public static final byte AALOAD
See Also:
Constant Field Values

BALOAD

public static final byte BALOAD
See Also:
Constant Field Values

CALOAD

public static final byte CALOAD
See Also:
Constant Field Values

SALOAD

public static final byte SALOAD
See Also:
Constant Field Values

ISTORE

public static final byte ISTORE
See Also:
Constant Field Values

LSTORE

public static final byte LSTORE
See Also:
Constant Field Values

FSTORE

public static final byte FSTORE
See Also:
Constant Field Values

DSTORE

public static final byte DSTORE
See Also:
Constant Field Values

ASTORE

public static final byte ASTORE
See Also:
Constant Field Values

ISTORE_0

public static final byte ISTORE_0
See Also:
Constant Field Values

ISTORE_1

public static final byte ISTORE_1
See Also:
Constant Field Values

ISTORE_2

public static final byte ISTORE_2
See Also:
Constant Field Values

ISTORE_3

public static final byte ISTORE_3
See Also:
Constant Field Values

LSTORE_0

public static final byte LSTORE_0
See Also:
Constant Field Values

LSTORE_1

public static final byte LSTORE_1
See Also:
Constant Field Values

LSTORE_2

public static final byte LSTORE_2
See Also:
Constant Field Values

LSTORE_3

public static final byte LSTORE_3
See Also:
Constant Field Values

FSTORE_0

public static final byte FSTORE_0
See Also:
Constant Field Values

FSTORE_1

public static final byte FSTORE_1
See Also:
Constant Field Values

FSTORE_2

public static final byte FSTORE_2
See Also:
Constant Field Values

FSTORE_3

public static final byte FSTORE_3
See Also:
Constant Field Values

DSTORE_0

public static final byte DSTORE_0
See Also:
Constant Field Values

DSTORE_1

public static final byte DSTORE_1
See Also:
Constant Field Values

DSTORE_2

public static final byte DSTORE_2
See Also:
Constant Field Values

DSTORE_3

public static final byte DSTORE_3
See Also:
Constant Field Values

ASTORE_0

public static final byte ASTORE_0
See Also:
Constant Field Values

ASTORE_1

public static final byte ASTORE_1
See Also:
Constant Field Values

ASTORE_2

public static final byte ASTORE_2
See Also:
Constant Field Values

ASTORE_3

public static final byte ASTORE_3
See Also:
Constant Field Values