package com.redhat.ceylon.compiler.java.test.fordebug; public enum Opcode { nop(0,"nop","perform no operation"), aconst_null(1,"aconst_null","push a null reference onto the stack"), iconst_m1(2,"iconst_m1","load the int value -1 onto the stack"), iconst_0(3,"iconst_0","load the int value 0 onto the stack"), iconst_1(4,"iconst_1","load the int value 1 onto the stack"), iconst_2(5,"iconst_2","load the int value 2 onto the stack"), iconst_3(6,"iconst_3","load the int value 3 onto the stack"), iconst_4(7,"iconst_4","load the int value 4 onto the stack"), iconst_5(8,"iconst_5","load the int value 5 onto the stack"), lconst_0(9,"lconst_0","push the long 0 onto the stack"), lconst_1(10,"lconst_1","push the long 1 onto the stack"), fconst_0(11,"fconst_0","push 0.0f on the stack"), fconst_1(12,"fconst_1","push 1.0f on the stack"), fconst_2(13,"fconst_2","push 2.0f on the stack"), dconst_0(14,"dconst_0","push the constant 0.0 onto the stack"), dconst_1(15,"dconst_1","push the constant 1.0 onto the stack"), bipush(16,"bipush","push a byte onto the stack as an integer value"), sipush(17,"sipush","push a short onto the stack"), ldc(18,"ldc","push a constant #index from a constant pool (String, int or float) onto the stack"), ldc_w(19,"ldc_w","push a constant #index from a constant pool (String, int or float) onto the stack (wide index is constructed as indexbyte1 << 8 + indexbyte2)"), ldc2_w(20,"ldc2_w","push a constant #index from a constant pool (double or long) onto the stack (wide index is constructed as indexbyte1 << 8 + indexbyte2)"), iload(21,"iload","load an int value from a local variable #index"), lload(22,"lload","load a long value from a local variable #index"), fload(23,"fload","load a float value from a local variable #index"), dload(24,"dload","load a double value from a local variable #index"), aload(25,"aload","load a reference onto the stack from a local variable #index"), iload_0(26,"iload_0","load an int value from local variable 0"), iload_1(27,"iload_1","load an int value from local variable 1"), iload_2(28,"iload_2","load an int value from local variable 2"), iload_3(29,"iload_3","load an int value from local variable 3"), lload_0(30,"lload_0","load a long value from a local variable 0"), lload_1(31,"lload_1","load a long value from a local variable 1"), lload_2(32,"lload_2","load a long value from a local variable 2"), lload_3(33,"lload_3","load a long value from a local variable 3"), fload_0(34,"fload_0","load a float value from local variable 0"), fload_1(35,"fload_1","load a float value from local variable 1"), fload_2(36,"fload_2","load a float value from local variable 2"), fload_3(37,"fload_3","load a float value from local variable 3"), dload_0(38,"dload_0","load a double from local variable 0"), dload_1(39,"dload_1","load a double from local variable 1"), dload_2(40,"dload_2","load a double from local variable 2"), dload_3(41,"dload_3","load a double from local variable 3"), aload_0(42,"aload_0","load a reference onto the stack from local variable 0"), aload_1(43,"aload_1","load a reference onto the stack from local variable 1"), aload_2(44,"aload_2","load a reference onto the stack from local variable 2"), aload_3(45,"aload_3","load a reference onto the stack from local variable 3"), iaload(46,"iaload","load an int from an array"), laload(47,"laload","load a long from an array"), faload(48,"faload","load a float from an array"), daload(49,"daload","load a double from an array"), aaload(50,"aaload","load onto the stack a reference from an array"), baload(51,"baload","load a byte or Boolean value from an array"), caload(52,"caload","load a char from an array"), saload(53,"saload","load short from array"), istore(54,"istore","store int value into variable #index"), lstore(55,"lstore","store a long value in a local variable #index"), fstore(56,"fstore","store a float value into a local variable #index"), dstore(57,"dstore","store a double value into a local variable #index"), astore(58,"astore","store a reference into a local variable #index"), istore_0(59,"istore_0","store int value into variable 0"), istore_1(60,"istore_1","store int value into variable 1"), istore_2(61,"istore_2","store int value into variable 2"), istore_3(62,"istore_3","store int value into variable 3"), lstore_0(63,"lstore_0","store a long value in a local variable 0"), lstore_1(64,"lstore_1","store a long value in a local variable 1"), lstore_2(65,"lstore_2","store a long value in a local variable 2"), lstore_3(66,"lstore_3","store a long value in a local variable 3"), fstore_0(67,"fstore_0","store a float value into local variable 0"), fstore_1(68,"fstore_1","store a float value into local variable 1"), fstore_2(69,"fstore_2","store a float value into local variable 2"), fstore_3(70,"fstore_3","store a float value into local variable 3"), dstore_0(71,"dstore_0","store a double into local variable 0"), dstore_1(72,"dstore_1","store a double into local variable 1"), dstore_2(73,"dstore_2","store a double into local variable 2"), dstore_3(74,"dstore_3","store a double into local variable 3"), astore_0(75,"astore_0","store a reference into local variable 0"), astore_1(76,"astore_1","store a reference into local variable 1"), astore_2(77,"astore_2","store a reference into local variable 2"), astore_3(78,"astore_3","store a reference into local variable 3"), iastore(79,"iastore","store an int into an array"), lastore(80,"lastore","store a long to an array"), fastore(81,"fastore","store a float in an array"), dastore(82,"dastore","store a double into an array"), aastore(83,"aastore","store into a reference in an array"), bastore(84,"bastore","store a byte or Boolean value into an array"), castore(85,"castore","store a char into an array"), sastore(86,"sastore","store short to array"), pop(87,"pop","discard the top value on the stack"), pop2(88,"pop2","discard the top two values on the stack (or one value, if it is a double or long)"), dup(89,"dup","duplicate the value on top of the stack"), dup_x1(90,"dup_x1","insert a copy of the top value into the stack two values from the top. value1 and value2 must not be of the type double or long."), dup_x2(91,"dup_x2","insert 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"), dup2(92,"dup2","duplicate top two stack words (two values, if value1 is not double nor long; a single value, if value1 is double or long)"), dup2_x1(93,"dup2_x1","duplicate two words and insert beneath third word (see explanation above)"), dup2_x2(94,"dup2_x2","duplicate two words and insert beneath fourth word"), swap(95,"swap","swaps two top words on the stack (note that value1 and value2 must not be double or long)"), iadd(96,"iadd","add two ints"), ladd(97,"ladd","add two longs"), fadd(98,"fadd","add two floats"), dadd(99,"dadd","add two doubles"), isub(100,"isub","int subtract"), lsub(101,"lsub","subtract two longs"), fsub(102,"fsub","subtract two floats"), dsub(103,"dsub","subtract a double from another"), imul(104,"imul","multiply two integers"), lmul(105,"lmul","multiply two longs"), fmul(106,"fmul","multiply two floats"), dmul(107,"dmul","multiply two doubles"), idiv(108,"idiv","divide two integers"), ldiv(109,"ldiv","divide two longs"), fdiv(110,"fdiv","divide two floats"), ddiv(111,"ddiv","divide two doubles"), irem(112,"irem","logical int remainder"), lrem(113,"lrem","remainder of division of two longs"), frem(114,"frem","get the remainder from a division between two floats"), drem(115,"drem","get the remainder from a division between two doubles"), ineg(116,"ineg","negate int"), lneg(117,"lneg","negate a long"), fneg(118,"fneg","negate a float"), dneg(119,"dneg","negate a double"), ishl(120,"ishl","int shift left"), lshl(121,"lshl","bitwise shift left of a long value1 by int value2 positions"), ishr(122,"ishr","int arithmetic shift right"), lshr(123,"lshr","bitwise shift right of a long value1 by int value2 positions"), iushr(124,"iushr","int logical shift right"), lushr(125,"lushr","bitwise shift right of a long value1 by int value2 positions, unsigned"), iand(126,"iand","perform a bitwise and on two integers"), land(127,"land","bitwise and of two longs"), ior(128,"ior","bitwise int or"), lor(129,"lor","bitwise or of two longs"), ixor(130,"ixor","int xor"), lxor(131,"lxor","bitwise exclusive or of two longs"), iinc(132,"iinc","increment local variable #index by signed byte const"), i2l(133,"i2l","convert an int into a long"), i2f(134,"i2f","convert an int into a float"), i2d(135,"i2d","convert an int into a double"), l2i(136,"l2i","convert a long to a int"), l2f(137,"l2f","convert a long to a float"), l2d(138,"l2d","convert a long to a double"), f2i(139,"f2i","convert a float to an int"), f2l(140,"f2l","convert a float to a long"), f2d(141,"f2d","convert a float to a double"), d2i(142,"d2i","convert a double to an int"), d2l(143,"d2l","convert a double to a long"), d2f(144,"d2f","convert a double to a float"), i2b(145,"i2b","convert an int into a byte"), i2c(146,"i2c","convert an int into a character"), i2s(147,"i2s","convert an int into a short"), lcmp(148,"lcmp","compare two longs values"), fcmpl(149,"fcmpl","compare two floats"), fcmpg(150,"fcmpg","compare two floats"), dcmpl(151,"dcmpl","compare two doubles"), dcmpg(152,"dcmpg","compare two doubles"), ifeq(153,"ifeq","if value is 0, branch to instruction at branchoffset (signed short constructed from unsigned bytes branchbyte1 << 8 + branchbyte2)"), ifne(154,"ifne","if value is not 0, branch to instruction at branchoffset (signed short constructed from unsigned bytes branchbyte1 << 8 + branchbyte2)"), iflt(155,"iflt","if value is less than 0, branch to instruction at branchoffset (signed short constructed from unsigned bytes branchbyte1 << 8 + branchbyte2)"), ifge(156,"ifge","if value is greater than or equal to 0, branch to instruction at branchoffset (signed short constructed from unsigned bytes branchbyte1 << 8 + branchbyte2)"), ifgt(157,"ifgt","if value is greater than 0, branch to instruction at branchoffset (signed short constructed from unsigned bytes branchbyte1 << 8 + branchbyte2)"), ifle(158,"ifle","if value is less than or equal to 0, branch to instruction at branchoffset (signed short constructed from unsigned bytes branchbyte1 << 8 + branchbyte2)"), if_icmpeq(159,"if_icmpeq","if ints are equal, branch to instruction at branchoffset (signed short constructed from unsigned bytes branchbyte1 << 8 + branchbyte2)"), if_icmpne(160,"if_icmpne","if ints are not equal, branch to instruction at branchoffset (signed short constructed from unsigned bytes branchbyte1 << 8 + branchbyte2)"), if_icmplt(161,"if_icmplt","if value1 is less than value2, branch to instruction at branchoffset (signed short constructed from unsigned bytes branchbyte1 << 8 + branchbyte2)"), if_icmpge(162,"if_icmpge","if value1 is greater than or equal to value2, branch to instruction at branchoffset (signed short constructed from unsigned bytes branchbyte1 << 8 + branchbyte2)"), if_icmpgt(163,"if_icmpgt","if value1 is greater than value2, branch to instruction at branchoffset (signed short constructed from unsigned bytes branchbyte1 << 8 + branchbyte2)"), if_icmple(164,"if_icmple","if value1 is less than or equal to value2, branch to instruction at branchoffset (signed short constructed from unsigned bytes branchbyte1 << 8 + branchbyte2)"), if_acmpeq(165,"if_acmpeq","if references are equal, branch to instruction at branchoffset (signed short constructed from unsigned bytes branchbyte1 << 8 + branchbyte2)"), if_acmpne(166,"if_acmpne","if references are not equal, branch to instruction at branchoffset (signed short constructed from unsigned bytes branchbyte1 << 8 + branchbyte2)"), goto_(167,"goto","goes to another instruction at branchoffset (signed short constructed from unsigned bytes branchbyte1 << 8 + branchbyte2)"), jsr(168,"jsr","jump to subroutine at branchoffset (signed short constructed from unsigned bytes branchbyte1 << 8 + branchbyte2) and place the return address on the stack"), ret(169,"ret","continue execution from address taken from a local variable #index (the asymmetry with jsr is intentional)"), tableswitch(170,"tableswitch","continue execution from an address in the table at offset index"), lookupswitch(171,"lookupswitch","a target address is looked up from a table using a key and execution continues from the instruction at that address"), ireturn(172,"ireturn","return an integer from a method"), lreturn(173,"lreturn","return a long value"), freturn(174,"freturn","return a float"), dreturn(175,"dreturn","return a double from a method"), areturn(176,"areturn","return a reference from a method"), return_(177,"return","return void from method"), getstatic(178,"getstatic","get a static field value of a class, where the field is identified by field reference in the constant pool index (index1 << 8 + index2)"), putstatic(179,"putstatic","set static field to value in a class, where the field is identified by a field reference index in constant pool (indexbyte1 << 8 + indexbyte2)"), getfield(180,"getfield","get a field value of an object objectref, where the field is identified by field reference in the constant pool index (index1 << 8 + index2)"), putfield(181,"putfield","set field to value in an object objectref, where the field is identified by a field reference index in constant pool (indexbyte1 << 8 + indexbyte2)"), invokevirtual(182,"invokevirtual","invoke virtual method on object objectref, where the method is identified by method reference index in constant pool (indexbyte1 << 8 + indexbyte2)"), invokespecial(183,"invokespecial","invoke instance method on object objectref, where the method is identified by method reference index in constant pool (indexbyte1 << 8 + indexbyte2)"), invokestatic(184,"invokestatic","invoke a static method, where the method is identified by method reference index in constant pool (indexbyte1 << 8 + indexbyte2)"), invokeinterface(185,"invokeinterface","invokes an interface method on object objectref, where the interface method is identified by method reference index in constant pool (indexbyte1 << 8 + indexbyte2)"), invokedynamic(186,"invokedynamic","invokes a dynamic method identified by method reference index in constant pool (indexbyte1 << 8 + indexbyte2)"), new_(187,"new","create new object of type identified by class reference in constant pool index (indexbyte1 << 8 + indexbyte2)"), newarray(188,"newarray","create new array with count elements of primitive type identified by atype"), anewarray(189,"anewarray","create a new array of references of length count and component type identified by the class reference index (indexbyte1 << 8 + indexbyte2) in the constant pool"), arraylength(190,"arraylength","get the length of an array"), athrow(191,"athrow","throws an error or exception (notice that the rest of the stack is cleared, leaving only a reference to the Throwable)"), checkcast(192,"checkcast","checks whether an objectref is of a certain type, the class reference of which is in the constant pool at index (indexbyte1 << 8 + indexbyte2)"), instanceof_(193,"instanceof","determines if an object objectref is of a given type, identified by class reference index in constant pool (indexbyte1 << 8 + indexbyte2)"), monitorenter(194,"monitorenter","enter monitor for object (\"grab the lock\" - start of synchronized() section)"), monitorexit(195,"monitorexit","exit monitor for object (\"release the lock\" - end of synchronized() section)"), wide(196,"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"), multianewarray(197,"multianewarray","create a new array of dimensions dimensions with elements of type identified by class reference in constant pool index (indexbyte1 << 8 + indexbyte2); the sizes of each dimension is identified by count1, [count2, etc.]"), ifnull(198,"ifnull","if value is null, branch to instruction at branchoffset (signed short constructed from unsigned bytes branchbyte1 << 8 + branchbyte2)"), ifnonnull(199,"ifnonnull","if value is not null, branch to instruction at branchoffset (signed short constructed from unsigned bytes branchbyte1 << 8 + branchbyte2)"), goto_w(200,"goto_w","goes to another instruction at branchoffset (signed int constructed from unsigned bytes branchbyte1 << 24 + branchbyte2 << 16 + branchbyte3 << 8 + branchbyte4)"), jsr_w(201,"jsr_w","jump to subroutine at branchoffset (signed int constructed from unsigned bytes branchbyte1 << 24 + branchbyte2 << 16 + branchbyte3 << 8 + branchbyte4) and place the return address on the stack"), breakpoint(202,"breakpoint","reserved for breakpoints in Java debuggers; should not appear in any class file"), reserved1(203, "reserved1", "reserved for future use"), reserved2(204, "reserved2", "reserved for future use"), reserved3(205, "reserved3", "reserved for future use"), reserved4(206, "reserved4", "reserved for future use"), reserved5(207, "reserved5", "reserved for future use"), reserved6(208, "reserved6", "reserved for future use"), reserved7(209, "reserved7", "reserved for future use"), reserved8(210, "reserved8", "reserved for future use"), reserved9(211, "reserved9", "reserved for future use"), reserved10(212, "reserved10", "reserved for future use"), reserved11(213, "reserved11", "reserved for future use"), reserved12(214, "reserved12", "reserved for future use"), reserved13(215, "reserved13", "reserved for future use"), reserved14(216, "reserved14", "reserved for future use"), reserved15(217, "reserved15", "reserved for future use"), reserved16(218, "reserved16", "reserved for future use"), reserved17(219, "reserved17", "reserved for future use"), reserved18(220, "reserved18", "reserved for future use"), reserved19(221, "reserved19", "reserved for future use"), reserved20(222, "reserved20", "reserved for future use"), reserved21(223, "reserved21", "reserved for future use"), reserved22(224, "reserved22", "reserved for future use"), reserved23(225, "reserved23", "reserved for future use"), reserved24(226, "reserved24", "reserved for future use"), reserved25(227, "reserved25", "reserved for future use"), reserved26(228, "reserved26", "reserved for future use"), reserved27(229, "reserved27", "reserved for future use"), reserved28(230, "reserved28", "reserved for future use"), reserved29(231, "reserved29", "reserved for future use"), reserved30(232, "reserved30", "reserved for future use"), reserved31(233, "reserved31", "reserved for future use"), reserved32(234, "reserved32", "reserved for future use"), reserved33(235, "reserved33", "reserved for future use"), reserved34(236, "reserved34", "reserved for future use"), reserved35(237, "reserved35", "reserved for future use"), reserved36(238, "reserved36", "reserved for future use"), reserved37(239, "reserved37", "reserved for future use"), reserved38(240, "reserved38", "reserved for future use"), reserved39(241, "reserved39", "reserved for future use"), reserved40(242, "reserved40", "reserved for future use"), reserved41(243, "reserved41", "reserved for future use"), reserved42(244, "reserved42", "reserved for future use"), reserved43(245, "reserved43", "reserved for future use"), reserved44(246, "reserved44", "reserved for future use"), reserved45(247, "reserved45", "reserved for future use"), reserved46(248, "reserved46", "reserved for future use"), reserved47(249, "reserved47", "reserved for future use"), reserved48(250, "reserved48", "reserved for future use"), reserved49(251, "reserved49", "reserved for future use"), reserved50(252, "reserved50", "reserved for future use"), reserved51(253, "reserved51", "reserved for future use"), impdep1(254,"impdep1","reserved for implementation-dependent operations within debuggers; should not appear in any class file"), impdep2(255,"impdep2","reserved for implementation-dependent operations within debuggers; should not appear in any class file"); private final byte code; private final String mnemonic; private final String description; private Opcode(int code, String mnemonic, String description) { this.code = (byte)code; this.mnemonic = mnemonic; this.description = description; } public byte getCode() { return code; } public String getMnemonic() { return mnemonic; } public String getDescription() { return description; } public String toString() { return String.format("%02x (%s)", code, mnemonic); } }