1 /* 2 * Javassist, a Java-bytecode translator toolkit. 3 * Copyright (C) 1999-2007 Shigeru Chiba. All Rights Reserved. 4 * 5 * The contents of this file are subject to the Mozilla Public License Version 6 * 1.1 (the "License"); you may not use this file except in compliance with 7 * the License. Alternatively, the contents of this file may be used under 8 * the terms of the GNU Lesser General Public License Version 2.1 or later. 9 * 10 * Software distributed under the License is distributed on an "AS IS" basis, 11 * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License 12 * for the specific language governing rights and limitations under the 13 * License. 14 */ 15 16 package javassist.bytecode; 17 18 /** 19 * JVM Instruction Names. 20 * 21 * <p>This interface has been separated from javassist.bytecode.Opcode 22 * because typical bytecode translators do not use mnemonics. If this 23 * interface were merged with Opcode, extra memory would be unnecessary 24 * consumed. 25 * 26 * @see Opcode 27 */ 28 public interface Mnemonic { 29 30 /** 31 * The instruction names (mnemonics) sorted by the opcode. 32 * The length of this array is 202 (jsr_w=201). 33 * 34 * <p>The value at index 186 is null since no instruction is 35 * assigned to 186. 36 */ 37 String[] OPCODE = { 38 "nop", /* 0*/ 39 "aconst_null", /* 1*/ 40 "iconst_m1", /* 2*/ 41 "iconst_0", /* 3*/ 42 "iconst_1", /* 4*/ 43 "iconst_2", /* 5*/ 44 "iconst_3", /* 6*/ 45 "iconst_4", /* 7*/ 46 "iconst_5", /* 8*/ 47 "lconst_0", /* 9*/ 48 "lconst_1", /* 10*/ 49 "fconst_0", /* 11*/ 50 "fconst_1", /* 12*/ 51 "fconst_2", /* 13*/ 52 "dconst_0", /* 14*/ 53 "dconst_1", /* 15*/ 54 "bipush", /* 16*/ 55 "sipush", /* 17*/ 56 "ldc", /* 18*/ 57 "ldc_w", /* 19*/ 58 "ldc2_w", /* 20*/ 59 "iload", /* 21*/ 60 "lload", /* 22*/ 61 "fload", /* 23*/ 62 "dload", /* 24*/ 63 "aload", /* 25*/ 64 "iload_0", /* 26*/ 65 "iload_1", /* 27*/ 66 "iload_2", /* 28*/ 67 "iload_3", /* 29*/ 68 "lload_0", /* 30*/ 69 "lload_1", /* 31*/ 70 "lload_2", /* 32*/ 71 "lload_3", /* 33*/ 72 "fload_0", /* 34*/ 73 "fload_1", /* 35*/ 74 "fload_2", /* 36*/ 75 "fload_3", /* 37*/ 76 "dload_0", /* 38*/ 77 "dload_1", /* 39*/ 78 "dload_2", /* 40*/ 79 "dload_3", /* 41*/ 80 "aload_0", /* 42*/ 81 "aload_1", /* 43*/ 82 "aload_2", /* 44*/ 83 "aload_3", /* 45*/ 84 "iaload", /* 46*/ 85 "laload", /* 47*/ 86 "faload", /* 48*/ 87 "daload", /* 49*/ 88 "aaload", /* 50*/ 89 "baload", /* 51*/ 90 "caload", /* 52*/ 91 "saload", /* 53*/ 92 "istore", /* 54*/ 93 "lstore", /* 55*/ 94 "fstore", /* 56*/ 95 "dstore", /* 57*/ 96 "astore", /* 58*/ 97 "istore_0", /* 59*/ 98 "istore_1", /* 60*/ 99 "istore_2", /* 61*/ 100 "istore_3", /* 62*/ 101 "lstore_0", /* 63*/ 102 "lstore_1", /* 64*/ 103 "lstore_2", /* 65*/ 104 "lstore_3", /* 66*/ 105 "fstore_0", /* 67*/ 106 "fstore_1", /* 68*/ 107 "fstore_2", /* 69*/ 108 "fstore_3", /* 70*/ 109 "dstore_0", /* 71*/ 110 "dstore_1", /* 72*/ 111 "dstore_2", /* 73*/ 112 "dstore_3", /* 74*/ 113 "astore_0", /* 75*/ 114 "astore_1", /* 76*/ 115 "astore_2", /* 77*/ 116 "astore_3", /* 78*/ 117 "iastore", /* 79*/ 118 "lastore", /* 80*/ 119 "fastore", /* 81*/ 120 "dastore", /* 82*/ 121 "aastore", /* 83*/ 122 "bastore", /* 84*/ 123 "castore", /* 85*/ 124 "sastore", /* 86*/ 125 "pop", /* 87*/ 126 "pop2", /* 88*/ 127 "dup", /* 89*/ 128 "dup_x1", /* 90*/ 129 "dup_x2", /* 91*/ 130 "dup2", /* 92*/ 131 "dup2_x1", /* 93*/ 132 "dup2_x2", /* 94*/ 133 "swap", /* 95*/ 134 "iadd", /* 96*/ 135 "ladd", /* 97*/ 136 "fadd", /* 98*/ 137 "dadd", /* 99*/ 138 "isub", /* 100*/ 139 "lsub", /* 101*/ 140 "fsub", /* 102*/ 141 "dsub", /* 103*/ 142 "imul", /* 104*/ 143 "lmul", /* 105*/ 144 "fmul", /* 106*/ 145 "dmul", /* 107*/ 146 "idiv", /* 108*/ 147 "ldiv", /* 109*/ 148 "fdiv", /* 110*/ 149 "ddiv", /* 111*/ 150 "irem", /* 112*/ 151 "lrem", /* 113*/ 152 "frem", /* 114*/ 153 "drem", /* 115*/ 154 "ineg", /* 116*/ 155 "lneg", /* 117*/ 156 "fneg", /* 118*/ 157 "dneg", /* 119*/ 158 "ishl", /* 120*/ 159 "lshl", /* 121*/ 160 "ishr", /* 122*/ 161 "lshr", /* 123*/ 162 "iushr", /* 124*/ 163 "lushr", /* 125*/ 164 "iand", /* 126*/ 165 "land", /* 127*/ 166 "ior", /* 128*/ 167 "lor", /* 129*/ 168 "ixor", /* 130*/ 169 "lxor", /* 131*/ 170 "iinc", /* 132*/ 171 "i2l", /* 133*/ 172 "i2f", /* 134*/ 173 "i2d", /* 135*/ 174 "l2i", /* 136*/ 175 "l2f", /* 137*/ 176 "l2d", /* 138*/ 177 "f2i", /* 139*/ 178 "f2l", /* 140*/ 179 "f2d", /* 141*/ 180 "d2i", /* 142*/ 181 "d2l", /* 143*/ 182 "d2f", /* 144*/ 183 "i2b", /* 145*/ 184 "i2c", /* 146*/ 185 "i2s", /* 147*/ 186 "lcmp", /* 148*/ 187 "fcmpl", /* 149*/ 188 "fcmpg", /* 150*/ 189 "dcmpl", /* 151*/ 190 "dcmpg", /* 152*/ 191 "ifeq", /* 153*/ 192 "ifne", /* 154*/ 193 "iflt", /* 155*/ 194 "ifge", /* 156*/ 195 "ifgt", /* 157*/ 196 "ifle", /* 158*/ 197 "if_icmpeq", /* 159*/ 198 "if_icmpne", /* 160*/ 199 "if_icmplt", /* 161*/ 200 "if_icmpge", /* 162*/ 201 "if_icmpgt", /* 163*/ 202 "if_icmple", /* 164*/ 203 "if_acmpeq", /* 165*/ 204 "if_acmpne", /* 166*/ 205 "goto", /* 167*/ 206 "jsr", /* 168*/ 207 "ret", /* 169*/ 208 "tableswitch", /* 170*/ 209 "lookupswitch", /* 171*/ 210 "ireturn", /* 172*/ 211 "lreturn", /* 173*/ 212 "freturn", /* 174*/ 213 "dreturn", /* 175*/ 214 "areturn", /* 176*/ 215 "return", /* 177*/ 216 "getstatic", /* 178*/ 217 "putstatic", /* 179*/ 218 "getfield", /* 180*/ 219 "putfield", /* 181*/ 220 "invokevirtual", /* 182*/ 221 "invokespecial", /* 183*/ 222 "invokestatic", /* 184*/ 223 "invokeinterface", /* 185*/ 224 null, 225 "new", /* 187*/ 226 "newarray", /* 188*/ 227 "anewarray", /* 189*/ 228 "arraylength", /* 190*/ 229 "athrow", /* 191*/ 230 "checkcast", /* 192*/ 231 "instanceof", /* 193*/ 232 "monitorenter", /* 194*/ 233 "monitorexit", /* 195*/ 234 "wide", /* 196*/ 235 "multianewarray", /* 197*/ 236 "ifnull", /* 198*/ 237 "ifnonnull", /* 199*/ 238 "goto_w", /* 200*/ 239 "jsr_w" /* 201*/ 240 }; 241 } 242