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