--- /dev/null
+/*\r
+\r
+ Derby - Class org.apache.derby.impl.services.bytecode.OpcodeDebug\r
+\r
+ Licensed to the Apache Software Foundation (ASF) under one or more\r
+ contributor license agreements. See the NOTICE file distributed with\r
+ this work for additional information regarding copyright ownership.\r
+ The ASF licenses this file to you under the Apache License, Version 2.0\r
+ (the "License"); you may not use this file except in compliance with\r
+ the License. You may obtain a copy of the License at\r
+\r
+ http://www.apache.org/licenses/LICENSE-2.0\r
+\r
+ Unless required by applicable law or agreed to in writing, software\r
+ distributed under the License is distributed on an "AS IS" BASIS,\r
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+ See the License for the specific language governing permissions and\r
+ limitations under the License.\r
+\r
+ */\r
+\r
+package org.apache.derby.impl.services.bytecode;\r
+\r
+\r
+import org.apache.derby.iapi.services.sanity.SanityManager;\r
+\r
+/**\r
+ * This contains mnemonics for all of the opcodes of the JVM.\r
+ * It is a separate class so that it will not get loaded\r
+ * if the system does not need it (i.e. when compiled without\r
+ * debugging). We even leave out the initialization in that case.\r
+ */\r
+class OpcodeDebug {\r
+ static final String Name[];\r
+\r
+ static {\r
+ if (SanityManager.DEBUG) {\r
+ // we assign these to a temp var first because\r
+ // "Array constants can only be used in initializers"\r
+ // to quote the compiler.\r
+ String NameInit[] = { \r
+ "NOP", // 0\r
+ "ACONST_NULL", // 1\r
+ "ICONST_M1", // 2\r
+ "ICONST_0", // 3\r
+ "ICONST_1", // 4\r
+ "ICONST_2", // 5\r
+ "ICONST_3", // 6\r
+ "ICONST_4", // 7\r
+ "ICONST_5", // 8\r
+ "LCONST_0", // 9\r
+ "LCONST_1", // 10\r
+ "FCONST_0", // 11\r
+ "FCONST_1", // 12\r
+ "FCONST_2", // 13\r
+ "DCONST_0", // 14\r
+ "DCONST_1", // 15\r
+ "BIPUSH", // 16\r
+ "SIPUSH", // 17\r
+ "LDC", // 18\r
+ "LDC_W", // 19\r
+ "LDC2_W", // 20\r
+ "ILOAD", // 21\r
+ "LLOAD", // 22\r
+ "FLOAD", // 23\r
+ "DLOAD", // 24\r
+ "ALOAD", // 25\r
+ "ILOAD_0", // 26\r
+ "ILOAD_1", // 27\r
+ "ILOAD_2", // 28\r
+ "ILOAD_3", // 29\r
+ "LLOAD_0", // 30\r
+ "LLOAD_1", // 31\r
+ "LLOAD_2", // 32\r
+ "LLOAD_3", // 33\r
+ "FLOAD_0", // 34\r
+ "FLOAD_1", // 35\r
+ "FLOAD_2", // 36\r
+ "FLOAD_3", // 37\r
+ "DLOAD_0", // 38\r
+ "DLOAD_1", // 39\r
+ "DLOAD_2", // 40\r
+ "DLOAD_3", // 41\r
+ "ALOAD_0", // 42\r
+ "ALOAD_1", // 43\r
+ "ALOAD_2", // 44\r
+ "ALOAD_3", // 45\r
+ "IALOAD", // 46\r
+ "LALOAD", // 47\r
+ "FALOAD", // 48\r
+ "DALOAD", // 49\r
+ "AALOAD", // 50\r
+ "BALOAD", // 51\r
+ "CALOAD", // 52\r
+ "SALOAD", // 53\r
+ "ISTORE", // 54\r
+ "LSTORE", // 55\r
+ "FSTORE", // 56\r
+ "DSTORE", // 57\r
+ "ASTORE", // 58\r
+ "ISTORE_0", // 59\r
+ "ISTORE_1", // 60\r
+ "ISTORE_2", // 61\r
+ "ISTORE_3", // 62\r
+ "LSTORE_0", // 63\r
+ "LSTORE_1", // 64\r
+ "LSTORE_2", // 65\r
+ "LSTORE_3", // 66\r
+ "FSTORE_0", // 67\r
+ "FSTORE_1", // 68\r
+ "FSTORE_2", // 69\r
+ "FSTORE_3", // 70\r
+ "DSTORE_0", // 71\r
+ "DSTORE_1", // 72\r
+ "DSTORE_2", // 73\r
+ "DSTORE_3", // 74\r
+ "ASTORE_0", // 75\r
+ "ASTORE_1", // 76\r
+ "ASTORE_2", // 77\r
+ "ASTORE_3", // 78\r
+ "IASTORE", // 79\r
+ "LASTORE", // 80\r
+ "FASTORE", // 81\r
+ "DASTORE", // 82\r
+ "AASTORE", // 83\r
+ "BASTORE", // 84\r
+ "CASTORE", // 85\r
+ "SASTORE", // 86\r
+ "POP", // 87\r
+ "POP2", // 88\r
+ "DUP", // 89\r
+ "DUP_X1", // 90\r
+ "DUP_X2", // 91\r
+ "DUP2", // 92\r
+ "DUP2_X1", // 93\r
+ "DUP2_X2", // 94\r
+ "SWAP", // 95\r
+ "IADD", // 96\r
+ "LADD", // 97\r
+ "FADD", // 98\r
+ "DADD", // 99\r
+ "ISUB", // 100\r
+ "LSUB", // 101\r
+ "FSUB", // 102\r
+ "DSUB", // 103\r
+ "IMUL", // 104\r
+ "LMUL", // 105\r
+ "FMUL", // 106\r
+ "DMUL", // 107\r
+ "IDIV", // 108\r
+ "LDIV", // 109\r
+ "FDIV", // 110\r
+ "DDIV", // 111\r
+ "IREM", // 112\r
+ "LREM", // 113\r
+ "FREM", // 114\r
+ "DREM", // 115\r
+ "INEG", // 116\r
+ "LNEG", // 117\r
+ "FNEG", // 118\r
+ "DNEG", // 119\r
+ "ISHL", // 120\r
+ "LSHL", // 121\r
+ "ISHR", // 122\r
+ "LSHR", // 123\r
+ "IUSHR", // 124\r
+ "LUSHR", // 125\r
+ "IAND", // 126\r
+ "LAND", // 127\r
+ "IOR", // 128\r
+ "LOR", // 129\r
+ "IXOR", // 130\r
+ "LXOR", // 131\r
+ "IINC", // 132\r
+ "I2L", // 133\r
+ "I2F", // 134\r
+ "I2D", // 135\r
+ "L2I", // 136\r
+ "L2F", // 137\r
+ "L2D", // 138\r
+ "F2I", // 139\r
+ "F2L", // 140\r
+ "F2D", // 141\r
+ "D2I", // 142\r
+ "D2L", // 143\r
+ "D2F", // 144\r
+ "I2B", // 145\r
+ "I2C", // 146\r
+ "I2S", // 147\r
+ "LCMP", // 148\r
+ "FCMPL", // 149\r
+ "FCMPG", // 150\r
+ "DCMPL", // 151\r
+ "DCMPG", // 152\r
+ "IFEQ", // 153\r
+ "IFNE", // 154\r
+ "IFLT", // 155\r
+ "IFGE", // 156\r
+ "IFGT", // 157\r
+ "IFLE", // 158\r
+ "IF_ICMPEQ", // 159\r
+ "IF_ICMPNE", // 160\r
+ "IF_ICMPLT", // 161\r
+ "IF_ICMPGE", // 162\r
+ "IF_ICMPGT", // 163\r
+ "IF_ICMPLE", // 164\r
+ "IF_ACMPEQ", // 165\r
+ "IF_ACMPNE", // 166\r
+ "GOTO", // 167\r
+ "JSR", // 168\r
+ "RET", // 169\r
+ "TABLESWITCH", // 170\r
+ "LOOKUPSWITCH", // 171\r
+ "IRETURN", // 172\r
+ "LRETURN", // 173\r
+ "FRETURN", // 174\r
+ "DRETURN", // 175\r
+ "ARETURN", // 176\r
+ "RETURN", // 177\r
+ "GETSTATIC", // 178\r
+ "PUTSTATIC", // 179\r
+ "GETFIELD", // 180\r
+ "PUTFIELD", // 181\r
+ "INVOKEVIRTUAL", // 182\r
+ "INVOKESPECIAL", // 183\r
+ "INVOKESTATIC", // 184\r
+ "INVOKEINTERFACE", // 185\r
+ "XXXUNUSEDXXX", // 186\r
+ "NEW", // 187\r
+ "NEWARRAY", // 188\r
+ "ANEWARRAY", // 189\r
+ "ARRAYLENGTH", // 190\r
+ "ATHROW", // 191\r
+ "CHECKCAST", // 192\r
+ "INSTANCEOF", // 193\r
+ "MONITORENTER", // 194\r
+ "MONITOREXIT", // 195\r
+ "WIDE", // 196\r
+ "MULTIANEWARRAY", // 197\r
+ "IFNULL", // 198\r
+ "IFNONNULL", // 199\r
+ "GOTO_W", // 200\r
+ "JSR_W", // 201\r
+ "BREAKPOINT" // 202\r
+ };\r
+ Name = NameInit;\r
+ }\r
+ else\r
+ Name = null;\r
+ }\r
+}\r