0x00:("nop",OpcodeNoArgs,"performs no operation. Stack: [No change]"),
0x01:("aconst_null",OpcodeNoArgs,"pushes a 'null' reference onto the stack. Stack: -> null"),
0x02:("iconst_m1",OpcodeNoArgs,"loads the int value -1 onto the stack. Stack: -> -1"),
0x03:("iconst_0",OpcodeNoArgs,"loads the int value 0 onto the stack. Stack: -> 0"),
0x04:("iconst_1",OpcodeNoArgs,"loads the int value 1 onto the stack. Stack: -> 1"),
0x05:("iconst_2",OpcodeNoArgs,"loads the int value 2 onto the stack. Stack: -> 2"),
0x06:("iconst_3",OpcodeNoArgs,"loads the int value 3 onto the stack. Stack: -> 3"),
0x07:("iconst_4",OpcodeNoArgs,"loads the int value 4 onto the stack. Stack: -> 4"),
0x08:("iconst_5",OpcodeNoArgs,"loads the int value 5 onto the stack. Stack: -> 5"),
0x09:("lconst_0",OpcodeNoArgs,"pushes the long 0 onto the stack. Stack: -> 0L"),
0x0a:("lconst_1",OpcodeNoArgs,"pushes the long 1 onto the stack. Stack: -> 1L"),
0x0b:("fconst_0",OpcodeNoArgs,"pushes '0.0f' onto the stack. Stack: -> 0.0f"),
0x0c:("fconst_1",OpcodeNoArgs,"pushes '1.0f' onto the stack. Stack: -> 1.0f"),
0x0d:("fconst_2",OpcodeNoArgs,"pushes '2.0f' onto the stack. Stack: -> 2.0f"),
0x0e:("dconst_0",OpcodeNoArgs,"pushes the constant '0.0' onto the stack. Stack: -> 0.0"),
0x0f:("dconst_1",OpcodeNoArgs,"pushes the constant '1.0' onto the stack. Stack: -> 1.0"),
0x10:("bipush",OpcodeSpecial_bipush,"pushes the signed 8-bit integer argument onto the stack. Stack: -> value"),
0x11:("sipush",OpcodeSpecial_sipush,"pushes the signed 16-bit integer argument onto the stack. Stack: -> value"),
0x12:("ldc",OpcodeCPIndexShort,"pushes a constant from a constant pool (String, int, float or class type) onto the stack. Stack: -> value"),
0x13:("ldc_w",OpcodeCPIndex,"pushes a constant from a constant pool (String, int, float or class type) onto the stack. Stack: -> value"),
0x14:("ldc2_w",OpcodeCPIndex,"pushes a constant from a constant pool (double or long) onto the stack. Stack: -> value"),
0x15:("iload",OpcodeIndex,"loads an int 'value' from a local variable '#index'. Stack: -> value"),
0x16:("lload",OpcodeIndex,"loads a long value from a local variable '#index'. Stack: -> value"),
0x17:("fload",OpcodeIndex,"loads a float 'value' from a local variable '#index'. Stack: -> value"),
0x18:("dload",OpcodeIndex,"loads a double 'value' from a local variable '#index'. Stack: -> value"),
0x19:("aload",OpcodeIndex,"loads a reference onto the stack from a local variable '#index'. Stack: -> objectref"),
0x1a:("iload_0",OpcodeNoArgs,"loads an int 'value' from variable 0. Stack: -> value"),
0x1b:("iload_1",OpcodeNoArgs,"loads an int 'value' from variable 1. Stack: -> value"),
0x1c:("iload_2",OpcodeNoArgs,"loads an int 'value' from variable 2. Stack: -> value"),
0x1d:("iload_3",OpcodeNoArgs,"loads an int 'value' from variable 3. Stack: -> value"),
0x1e:("lload_0",OpcodeNoArgs,"load a long value from a local variable 0. Stack: -> value"),
0x1f:("lload_1",OpcodeNoArgs,"load a long value from a local variable 1. Stack: -> value"),
0x20:("lload_2",OpcodeNoArgs,"load a long value from a local variable 2. Stack: -> value"),
0x21:("lload_3",OpcodeNoArgs,"load a long value from a local variable 3. Stack: -> value"),
0x22:("fload_0",OpcodeNoArgs,"loads a float 'value' from local variable 0. Stack: -> value"),
0x23:("fload_1",OpcodeNoArgs,"loads a float 'value' from local variable 1. Stack: -> value"),
0x24:("fload_2",OpcodeNoArgs,"loads a float 'value' from local variable 2. Stack: -> value"),
0x25:("fload_3",OpcodeNoArgs,"loads a float 'value' from local variable 3. Stack: -> value"),
0x26:("dload_0",OpcodeNoArgs,"loads a double from local variable 0. Stack: -> value"),
0x27:("dload_1",OpcodeNoArgs,"loads a double from local variable 1. Stack: -> value"),
0x28:("dload_2",OpcodeNoArgs,"loads a double from local variable 2. Stack: -> value"),
0x29:("dload_3",OpcodeNoArgs,"loads a double from local variable 3. Stack: -> value"),
0x2a:("aload_0",OpcodeNoArgs,"loads a reference onto the stack from local variable 0. Stack: -> objectref"),
0x2b:("aload_1",OpcodeNoArgs,"loads a reference onto the stack from local variable 1. Stack: -> objectref"),
0x2c:("aload_2",OpcodeNoArgs,"loads a reference onto the stack from local variable 2. Stack: -> objectref"),
0x2d:("aload_3",OpcodeNoArgs,"loads a reference onto the stack from local variable 3. Stack: -> objectref"),
0x2e:("iaload",OpcodeNoArgs,"loads an int from an array. Stack: arrayref, index -> value"),
0x2f:("laload",OpcodeNoArgs,"load a long from an array. Stack: arrayref, index -> value"),
0x30:("faload",OpcodeNoArgs,"loads a float from an array. Stack: arrayref, index -> value"),
0x31:("daload",OpcodeNoArgs,"loads a double from an array. Stack: arrayref, index -> value"),
0x32:("aaload",OpcodeNoArgs,"loads onto the stack a reference from an array. Stack: arrayref, index -> value"),
0x33:("baload",OpcodeNoArgs,"loads a byte or Boolean value from an array. Stack: arrayref, index -> value"),
0x34:("caload",OpcodeNoArgs,"loads a char from an array. Stack: arrayref, index -> value"),
0x35:("saload",OpcodeNoArgs,"load short from array. Stack: arrayref, index -> value"),
0x36:("istore",OpcodeIndex,"store int 'value' into variable '#index'. Stack: value ->"),
0x37:("lstore",OpcodeIndex,"store a long 'value' in a local variable '#index'. Stack: value ->"),
0x38:("fstore",OpcodeIndex,"stores a float 'value' into a local variable '#index'. Stack: value ->"),
0x39:("dstore",OpcodeIndex,"stores a double 'value' into a local variable '#index'. Stack: value ->"),
0x3a:("astore",OpcodeIndex,"stores a reference into a local variable '#index'. Stack: objectref ->"),
0x3b:("istore_0",OpcodeNoArgs,"store int 'value' into variable 0. Stack: value ->"),
0x3c:("istore_1",OpcodeNoArgs,"store int 'value' into variable 1. Stack: value ->"),
0x3d:("istore_2",OpcodeNoArgs,"store int 'value' into variable 2. Stack: value ->"),
0x3e:("istore_3",OpcodeNoArgs,"store int 'value' into variable 3. Stack: value ->"),
0x3f:("lstore_0",OpcodeNoArgs,"store a long 'value' in a local variable 0. Stack: value ->"),
0x40:("lstore_1",OpcodeNoArgs,"store a long 'value' in a local variable 1. Stack: value ->"),
0x41:("lstore_2",OpcodeNoArgs,"store a long 'value' in a local variable 2. Stack: value ->"),
0x42:("lstore_3",OpcodeNoArgs,"store a long 'value' in a local variable 3. Stack: value ->"),
0x43:("fstore_0",OpcodeNoArgs,"stores a float 'value' into local variable 0. Stack: value ->"),
0x44:("fstore_1",OpcodeNoArgs,"stores a float 'value' into local variable 1. Stack: value ->"),
0x45:("fstore_2",OpcodeNoArgs,"stores a float 'value' into local variable 2. Stack: value ->"),
0x46:("fstore_3",OpcodeNoArgs,"stores a float 'value' into local variable 3. Stack: value ->"),
0x47:("dstore_0",OpcodeNoArgs,"stores a double into local variable 0. Stack: value ->"),
0x48:("dstore_1",OpcodeNoArgs,"stores a double into local variable 1. Stack: value ->"),
0x49:("dstore_2",OpcodeNoArgs,"stores a double into local variable 2. Stack: value ->"),
0x4a:("dstore_3",OpcodeNoArgs,"stores a double into local variable 3. Stack: value ->"),
0x4b:("astore_0",OpcodeNoArgs,"stores a reference into local variable 0. Stack: objectref ->"),
0x4c:("astore_1",OpcodeNoArgs,"stores a reference into local variable 1. Stack: objectref ->"),
0x4d:("astore_2",OpcodeNoArgs,"stores a reference into local variable 2. Stack: objectref ->"),
0x4e:("astore_3",OpcodeNoArgs,"stores a reference into local variable 3. Stack: objectref ->"),
0x4f:("iastore",OpcodeNoArgs,"stores an int into an array. Stack: arrayref, index, value ->"),
0x50:("lastore",OpcodeNoArgs,"store a long to an array. Stack: arrayref, index, value ->"),
0x51:("fastore",OpcodeNoArgs,"stores a float in an array. Stack: arreyref, index, value ->"),
0x52:("dastore",OpcodeNoArgs,"stores a double into an array. Stack: arrayref, index, value ->"),
0x53:("aastore",OpcodeNoArgs,"stores into a reference to an array. Stack: arrayref, index, value ->"),
0x54:("bastore",OpcodeNoArgs,"stores a byte or Boolean value into an array. Stack: arrayref, index, value ->"),
0x55:("castore",OpcodeNoArgs,"stores a char into an array. Stack: arrayref, index, value ->"),
0x56:("sastore",OpcodeNoArgs,"store short to array. Stack: arrayref, index, value ->"),
0x57:("pop",OpcodeNoArgs,"discards the top value on the stack. Stack: value ->"),
0x58:("pop2",OpcodeNoArgs,"discards the top two values on the stack (or one value, if it is a double or long). Stack: {value2, value1} ->"),
0x59:("dup",OpcodeNoArgs,"duplicates the value on top of the stack. Stack: value -> value, value"),
0x5a:("dup_x1",OpcodeNoArgs,"inserts a copy of the top value into the stack two values from the top. Stack: value2, value1 -> value1, value2, value1"),
0x5b:("dup_x2",OpcodeNoArgs,"inserts a copy of the top value into the stack two (if value2 is double or long it takes up the entry of value3, too) or three values (if value2 is neither double nor long) from the top. Stack: value3, value2, value1 -> value1, value3, value2, value1"),
0x5c:("dup2",OpcodeNoArgs,"duplicate top two stack words (two values, if value1 is not double nor long; a single value, if value1 is double or long). Stack: {value2, value1} -> {value2, value1}, {value2, value1}"),
0x5d:("dup2_x1",OpcodeNoArgs,"duplicate two words and insert beneath third word. Stack: value3, {value2, value1} -> {value2, value1}, value3, {value2, value1}"),
0x5e:("dup2_x2",OpcodeNoArgs,"duplicate two words and insert beneath fourth word. Stack: {value4, value3}, {value2, value1} -> {value2, value1}, {value4, value3}, {value2, value1}"),
0x5f:("swap",OpcodeNoArgs,"swaps two top words on the stack (note that value1 and value2 must not be double or long). Stack: value2, value1 -> value1, value2"),
0x60:("iadd",OpcodeNoArgs,"adds two ints together. Stack: value1, value2 -> result"),
0x61:("ladd",OpcodeNoArgs,"add two longs. Stack: value1, value2 -> result"),
0x62:("fadd",OpcodeNoArgs,"adds two floats. Stack: value1, value2 -> result"),
0x63:("dadd",OpcodeNoArgs,"adds two doubles. Stack: value1, value2 -> result"),
0x83:("lxor",OpcodeNoArgs,"bitwise exclusive or of two longs. Stack: value1, value2 -> result"),
0x84:("iinc",OpcodeSpecial_iinc,"increment local variable '#index' by signed byte 'const'. Stack: [No change]"),
0x85:("i2l",OpcodeNoArgs,"converts an int into a long. Stack: value -> result"),
0x86:("i2f",OpcodeNoArgs,"converts an int into a float. Stack: value -> result"),
0x87:("i2d",OpcodeNoArgs,"converts an int into a double. Stack: value -> result"),
0x88:("l2i",OpcodeNoArgs,"converts a long to an int. Stack: value -> result"),
0x89:("l2f",OpcodeNoArgs,"converts a long to a float. Stack: value -> result"),
0x8a:("l2d",OpcodeNoArgs,"converts a long to a double. Stack: value -> result"),
0x8b:("f2i",OpcodeNoArgs,"converts a float to an int. Stack: value -> result"),
0x8c:("f2l",OpcodeNoArgs,"converts a float to a long. Stack: value -> result"),
0x8d:("f2d",OpcodeNoArgs,"converts a float to a double. Stack: value -> result"),
0x8e:("d2i",OpcodeNoArgs,"converts a double to an int. Stack: value -> result"),
0x8f:("d2l",OpcodeNoArgs,"converts a double to a long. Stack: value -> result"),
0x90:("d2f",OpcodeNoArgs,"converts a double to a float. Stack: value -> result"),
0x91:("i2b",OpcodeNoArgs,"converts an int into a byte. Stack: value -> result"),
0x92:("i2c",OpcodeNoArgs,"converts an int into a character. Stack: value -> result"),
0x93:("i2s",OpcodeNoArgs,"converts an int into a short. Stack: value -> result"),
0x94:("lcmp",OpcodeNoArgs,"compares two longs values. Stack: value1, value2 -> result"),
0x95:("fcmpl",OpcodeNoArgs,"compares two floats. Stack: value1, value2 -> result"),
0x96:("fcmpg",OpcodeNoArgs,"compares two floats. Stack: value1, value2 -> result"),
0x97:("dcmpl",OpcodeNoArgs,"compares two doubles. Stack: value1, value2 -> result"),
0x98:("dcmpg",OpcodeNoArgs,"compares two doubles. Stack: value1, value2 -> result"),
0x99:("ifeq",OpcodeShortJump,"if 'value' is 0, branch to the 16-bit instruction offset argument. Stack: value ->"),
0x9a:("ifne",OpcodeShortJump,"if 'value' is not 0, branch to the 16-bit instruction offset argument. Stack: value ->"),
0x9c:("ifge",OpcodeShortJump,"if 'value' is greater than or equal to 0, branch to the 16-bit instruction offset argument. Stack: value ->"),
0x9d:("ifgt",OpcodeShortJump,"if 'value' is greater than 0, branch to the 16-bit instruction offset argument. Stack: value ->"),
0x9e:("ifle",OpcodeShortJump,"if 'value' is less than or equal to 0, branch to the 16-bit instruction offset argument. Stack: value ->"),
0x9f:("if_icmpeq",OpcodeShortJump,"if ints are equal, branch to the 16-bit instruction offset argument. Stack: value1, value2 ->"),
0xa0:("if_icmpne",OpcodeShortJump,"if ints are not equal, branch to the 16-bit instruction offset argument. Stack: value1, value2 ->"),
0xa1:("if_icmplt",OpcodeShortJump,"if 'value1' is less than 'value2', branch to the 16-bit instruction offset argument. Stack: value1, value2 ->"),
0xa2:("if_icmpge",OpcodeShortJump,"if 'value1' is greater than or equal to 'value2', branch to the 16-bit instruction offset argument. Stack: value1, value2 ->"),
0xa3:("if_icmpgt",OpcodeShortJump,"if 'value1' is greater than 'value2', branch to the 16-bit instruction offset argument. Stack: value1, value2 ->"),
0xa4:("if_icmple",OpcodeShortJump,"if 'value1' is less than or equal to 'value2', branch to the 16-bit instruction offset argument. Stack: value1, value2 ->"),
0xa5:("if_acmpeq",OpcodeShortJump,"if references are equal, branch to the 16-bit instruction offset argument. Stack: value1, value2 ->"),
0xa6:("if_acmpne",OpcodeShortJump,"if references are not equal, branch to the 16-bit instruction offset argument. Stack: value1, value2 ->"),
0xa7:("goto",OpcodeShortJump,"goes to the 16-bit instruction offset argument. Stack: [no change]"),
0xa8:("jsr",OpcodeShortJump,"jump to subroutine at the 16-bit instruction offset argument and place the return address on the stack. Stack: -> address"),
0xa9:("ret",OpcodeIndex,"continue execution from address taken from a local variable '#index'. Stack: [No change]"),
0xaa:("tableswitch",OpcodeSpecial_tableswitch,"continue execution from an address in the table at offset 'index'. Stack: index ->"),
0xab:("lookupswitch",OpcodeSpecial_lookupswitch,"a target address is looked up from a table using a key and execution continues from the instruction at that address. Stack: key ->"),
0xac:("ireturn",OpcodeNoArgs,"returns an integer from a method. Stack: value -> [empty]"),
0xad:("lreturn",OpcodeNoArgs,"returns a long value. Stack: value -> [empty]"),
0xae:("freturn",OpcodeNoArgs,"returns a float. Stack: value -> [empty]"),
0xaf:("dreturn",OpcodeNoArgs,"returns a double from a method. Stack: value -> [empty]"),
0xb0:("areturn",OpcodeNoArgs,"returns a reference from a method. Stack: objectref -> [empty]"),
0xb1:("return",OpcodeNoArgs,"return void from method. Stack: -> [empty]"),
0xb2:("getstatic",OpcodeCPIndex,"gets a static field 'value' of a class, where the field is identified by field reference in the constant pool. Stack: -> value"),
0xb3:("putstatic",OpcodeCPIndex,"set static field to 'value' in a class, where the field is identified by a field reference in constant pool. Stack: value ->"),
0xb4:("getfield",OpcodeCPIndex,"gets a field 'value' of an object 'objectref', where the field is identified by field reference <argument> in the constant pool. Stack: objectref -> value"),
0xb5:("putfield",OpcodeCPIndex,"set field to 'value' in an object 'objectref', where the field is identified by a field reference <argument> in constant pool. Stack: objectref, value ->"),
0xb6:("invokevirtual",OpcodeCPIndex,"invoke virtual method on object 'objectref', where the method is identified by method reference <argument> in constant pool. Stack: objectref, [arg1, arg2, ...] ->"),
0xb7:("invokespecial",OpcodeCPIndex,"invoke instance method on object 'objectref', where the method is identified by method reference <argument> in constant pool. Stack: objectref, [arg1, arg2, ...] ->"),
0xb8:("invokestatic",OpcodeCPIndex,"invoke a static method, where the method is identified by method reference <argument> in the constant pool. Stack: [arg1, arg2, ...] ->"),
0xb9:("invokeinterface",OpcodeSpecial_invokeinterface,"invokes an interface method on object 'objectref', where the interface method is identified by method reference <argument> in constant pool. Stack: objectref, [arg1, arg2, ...] ->"),
0xba:("xxxunusedxxx",OpcodeNoArgs,"this opcode is reserved for historical reasons. Stack: "),
0xbb:("new",OpcodeCPIndex,"creates new object of type identified by class reference <argument> in constant pool. Stack: -> objectref"),
0xbc:("newarray",OpcodeSpecial_newarray,"creates new array with 'count' elements of primitive type given in the argument. Stack: count -> arrayref"),
0xbd:("anewarray",OpcodeCPIndex,"creates a new array of references of length 'count' and component type identified by the class reference <argument> in the constant pool. Stack: count -> arrayref"),
0xbe:("arraylength",OpcodeNoArgs,"gets the length of an array. Stack: arrayref -> length"),
0xbf:("athrow",OpcodeNoArgs,"throws an error or exception (notice that the rest of the stack is cleared, leaving only a reference to the Throwable). Stack: objectref -> [empty], objectref"),
0xc0:("checkcast",OpcodeCPIndex,"checks whether an 'objectref' is of a certain type, the class reference of which is in the constant pool. Stack: objectref -> objectref"),
0xc1:("instanceof",OpcodeCPIndex,"determines if an object 'objectref' is of a given type, identified by class reference <argument> in constant pool. Stack: objectref -> result"),
0xc2:("monitorenter",OpcodeNoArgs,"enter monitor for object (\"grab the lock\" - start of synchronized() section). Stack: objectref -> "),
0xc3:("monitorexit",OpcodeNoArgs,"exit monitor for object (\"release the lock\" - end of synchronized() section). Stack: objectref -> "),
0xc4:("wide",OpcodeSpecial_wide,"execute 'opcode', where 'opcode' is either iload, fload, aload, lload, dload, istore, fstore, astore, lstore, dstore, or ret, but assume the 'index' is 16 bit; or execute iinc, where the 'index' is 16 bits and the constant to increment by is a signed 16 bit short. Stack: [same as for corresponding instructions]"),
0xc5:("multianewarray",OpcodeSpecial_multianewarray,"create a new array of 'dimensions' dimensions with elements of type identified by class reference in constant pool; the sizes of each dimension is identified by 'count1', ['count2', etc]. Stack: count1, [count2,...] -> arrayref"),
0xc6:("ifnull",OpcodeShortJump,"if 'value' is null, branch to the 16-bit instruction offset argument. Stack: value ->"),
0xc7:("ifnonnull",OpcodeShortJump,"if 'value' is not null, branch to the 16-bit instruction offset argument. Stack: value ->"),
0xc8:("goto_w",OpcodeLongJump,"goes to another instruction at the 32-bit branch offset argument. Stack: [no change]"),
0xc9:("jsr_w",OpcodeLongJump,"jump to subroutine at the 32-bit branch offset argument and place the return address on the stack. Stack: -> address"),
0xca:("breakpoint",OpcodeNoArgs,"reserved for breakpoints in Java debuggers; should not appear in any class file."),
0xfe:("impdep1",OpcodeNoArgs,"reserved for implementation-dependent operations within debuggers; should not appear in any class file."),
0xff:("impdep2",OpcodeNoArgs,"reserved for implementation-dependent operations within debuggers; should not appear in any class file.")}