--- /dev/null
+/*\r
+\r
+ Derby - Class org.apache.derby.iapi.services.classfile.VMOpcode\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.iapi.services.classfile;\r
+\r
+/**\r
+ * This contains all the opcodes for the JVM\r
+ * as defined in The Java Virtual Machine Specification.\r
+ *\r
+ * REMIND: might want a debugging version of this,\r
+ * that stored the stack depth and operand expectations.\r
+ */\r
+public interface VMOpcode {\r
+ short BAD = -999; // used in mapping arrays to say "don't do that"\r
+ short NOP = 0;\r
+ short ACONST_NULL = 1;\r
+ short ICONST_M1 = 2;\r
+ short ICONST_0 = 3;\r
+ short ICONST_1 = 4;\r
+ short ICONST_2 = 5;\r
+ short ICONST_3 = 6;\r
+ short ICONST_4 = 7;\r
+ short ICONST_5 = 8;\r
+ short LCONST_0 = 9;\r
+ short LCONST_1 = 10;\r
+ short FCONST_0 = 11;\r
+ short FCONST_1 = 12;\r
+ short FCONST_2 = 13;\r
+ short DCONST_0 = 14;\r
+ short DCONST_1 = 15;\r
+ short BIPUSH = 16;\r
+ short SIPUSH = 17;\r
+ short LDC = 18;\r
+ short LDC_W = 19;\r
+ short LDC2_W = 20;\r
+ short ILOAD = 21;\r
+ short LLOAD = 22;\r
+ short FLOAD = 23;\r
+ short DLOAD = 24;\r
+ short ALOAD = 25;\r
+ short ILOAD_0 = 26;\r
+ short ILOAD_1 = 27;\r
+ short ILOAD_2 = 28;\r
+ short ILOAD_3 = 29;\r
+ short LLOAD_0 = 30;\r
+ short LLOAD_1 = 31;\r
+ short LLOAD_2 = 32;\r
+ short LLOAD_3 = 33;\r
+ short FLOAD_0 = 34;\r
+ short FLOAD_1 = 35;\r
+ short FLOAD_2 = 36;\r
+ short FLOAD_3 = 37;\r
+ short DLOAD_0 = 38;\r
+ short DLOAD_1 = 39;\r
+ short DLOAD_2 = 40;\r
+ short DLOAD_3 = 41;\r
+ short ALOAD_0 = 42;\r
+ short ALOAD_1 = 43;\r
+ short ALOAD_2 = 44;\r
+ short ALOAD_3 = 45;\r
+ short IALOAD = 46;\r
+ short LALOAD = 47;\r
+ short FALOAD = 48;\r
+ short DALOAD = 49;\r
+ short AALOAD = 50;\r
+ short BALOAD = 51;\r
+ short CALOAD = 52;\r
+ short SALOAD = 53;\r
+ short ISTORE = 54;\r
+ short LSTORE = 55;\r
+ short FSTORE = 56;\r
+ short DSTORE = 57;\r
+ short ASTORE = 58;\r
+ short ISTORE_0 = 59;\r
+ short ISTORE_1 = 60;\r
+ short ISTORE_2 = 61;\r
+ short ISTORE_3 = 62;\r
+ short LSTORE_0 = 63;\r
+ short LSTORE_1 = 64;\r
+ short LSTORE_2 = 65;\r
+ short LSTORE_3 = 66;\r
+ short FSTORE_0 = 67;\r
+ short FSTORE_1 = 68;\r
+ short FSTORE_2 = 69;\r
+ short FSTORE_3 = 70;\r
+ short DSTORE_0 = 71;\r
+ short DSTORE_1 = 72;\r
+ short DSTORE_2 = 73;\r
+ short DSTORE_3 = 74;\r
+ short ASTORE_0 = 75;\r
+ short ASTORE_1 = 76;\r
+ short ASTORE_2 = 77;\r
+ short ASTORE_3 = 78;\r
+ short IASTORE = 79;\r
+ short LASTORE = 80;\r
+ short FASTORE = 81;\r
+ short DASTORE = 82;\r
+ short AASTORE = 83;\r
+ short BASTORE = 84;\r
+ short CASTORE = 85;\r
+ short SASTORE = 86;\r
+ short POP = 87;\r
+ short POP2 = 88;\r
+ short DUP = 89;\r
+ short DUP_X1 = 90;\r
+ short DUP_X2 = 91;\r
+ short DUP2 = 92;\r
+ short DUP2_X1 = 93;\r
+ short DUP2_X2 = 94;\r
+ short SWAP = 95;\r
+ short IADD = 96;\r
+ short LADD = 97;\r
+ short FADD = 98;\r
+ short DADD = 99;\r
+ short ISUB = 100;\r
+ short LSUB = 101;\r
+ short FSUB = 102;\r
+ short DSUB = 103;\r
+ short IMUL = 104;\r
+ short LMUL = 105;\r
+ short FMUL = 106;\r
+ short DMUL = 107;\r
+ short IDIV = 108;\r
+ short LDIV = 109;\r
+ short FDIV = 110;\r
+ short DDIV = 111;\r
+ short IREM = 112;\r
+ short LREM = 113;\r
+ short FREM = 114;\r
+ short DREM = 115;\r
+ short INEG = 116;\r
+ short LNEG = 117;\r
+ short FNEG = 118;\r
+ short DNEG = 119;\r
+ short ISHL = 120;\r
+ short LSHL = 121;\r
+ short ISHR = 122;\r
+ short LSHR = 123;\r
+ short IUSHR = 124;\r
+ short LUSHR = 125;\r
+ short IAND = 126;\r
+ short LAND = 127;\r
+ short IOR = 128;\r
+ short LOR = 129;\r
+ short IXOR = 130;\r
+ short LXOR = 131;\r
+ short IINC = 132;\r
+ short I2L = 133;\r
+ short I2F = 134;\r
+ short I2D = 135;\r
+ short L2I = 136;\r
+ short L2F = 137;\r
+ short L2D = 138;\r
+ short F2I = 139;\r
+ short F2L = 140;\r
+ short F2D = 141;\r
+ short D2I = 142;\r
+ short D2L = 143;\r
+ short D2F = 144;\r
+ short I2B = 145;\r
+ short I2C = 146;\r
+ short I2S = 147;\r
+ short LCMP = 148;\r
+ short FCMPL = 149;\r
+ short FCMPG = 150;\r
+ short DCMPL = 151;\r
+ short DCMPG = 152;\r
+ short IFEQ = 153;\r
+ short IFNE = 154;\r
+ short IFLT = 155;\r
+ short IFGE = 156;\r
+ short IFGT = 157;\r
+ short IFLE = 158;\r
+ short IF_ICMPEQ = 159;\r
+ short IF_ICMPNE = 160;\r
+ short IF_ICMPLT = 161;\r
+ short IF_ICMPGE = 162;\r
+ short IF_ICMPGT = 163;\r
+ short IF_ICMPLE = 164;\r
+ short IF_ACMPEQ = 165;\r
+ short IF_ACMPNE = 166;\r
+ short GOTO = 167;\r
+ short JSR = 168;\r
+ short RET = 169;\r
+ short TABLESWITCH = 170;\r
+ short LOOKUPSWITCH = 171;\r
+ short IRETURN = 172;\r
+ short LRETURN = 173;\r
+ short FRETURN = 174;\r
+ short DRETURN = 175;\r
+ short ARETURN = 176;\r
+ short RETURN = 177;\r
+ short GETSTATIC = 178;\r
+ short PUTSTATIC = 179;\r
+ short GETFIELD = 180;\r
+ short PUTFIELD = 181;\r
+ short INVOKEVIRTUAL = 182;\r
+ short INVOKESPECIAL = 183;\r
+ short INVOKESTATIC = 184;\r
+ short INVOKEINTERFACE = 185;\r
+ short XXXUNUSEDXXX = 186;\r
+ short NEW = 187;\r
+ short NEWARRAY = 188;\r
+ short ANEWARRAY = 189;\r
+ short ARRAYLENGTH = 190;\r
+ short ATHROW = 191;\r
+ short CHECKCAST = 192;\r
+ short INSTANCEOF = 193;\r
+ short MONITORENTER = 194;\r
+ short MONITOREXIT = 195;\r
+ short WIDE = 196;\r
+ short MULTIANEWARRAY = 197;\r
+ short IFNULL = 198;\r
+ short IFNONNULL = 199;\r
+ short GOTO_W = 200;\r
+ short JSR_W = 201;\r
+ short BREAKPOINT = 202;\r
+ \r
+ \r
+ /**\r
+ * Maximum code length in a single method.\r
+ * See section 4.10 of JVM spec version 1.\r
+ */\r
+ int MAX_CODE_LENGTH = 65535;\r
+ \r
+ /**\r
+ * Instruction length for IF (IFNULL, IFEQ) etc.\r
+ * Used in conditional handling.\r
+ */\r
+ int IF_INS_LENGTH = 3;\r
+ \r
+ /**\r
+ * Instruction length for GOTO etc.\r
+ * Used in conditional handling.\r
+ */\r
+ int GOTO_INS_LENGTH = 3;\r
+\r
+ /**\r
+ * Instruction length for GOTO_W.\r
+ * Used in conditional handling.\r
+ */\r
+ int GOTO_W_INS_LENGTH = 5;\r
+ \r
+ /**\r
+ * Maximum number of entries in the constant pool.\r
+ * See section 4.10 of JVM spec version 1.\r
+ */\r
+ int MAX_CONSTANT_POOL_ENTRIES = 65535;\r
+ \r
+}\r