001    /*
002     * Licensed to the Apache Software Foundation (ASF) under one or more
003     * contributor license agreements.  See the NOTICE file distributed with
004     * this work for additional information regarding copyright ownership.
005     * The ASF licenses this file to You under the Apache License, Version 2.0
006     * (the "License"); you may not use this file except in compliance with
007     * the License.  You may obtain a copy of the License at
008     *
009     *      http://www.apache.org/licenses/LICENSE-2.0
010     *
011     *  Unless required by applicable law or agreed to in writing, software
012     *  distributed under the License is distributed on an "AS IS" BASIS,
013     *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014     *  See the License for the specific language governing permissions and
015     *  limitations under the License. 
016     *
017     */
018    package org.apache.bcel;
019    
020    /**
021     * Constants for the project, mostly defined in the JVM specification.
022     *
023     * @version $Id: Constants.java 1151711 2011-07-28 03:27:59Z dbrosius $
024     * @author  <A HREF="mailto:m.dahm@gmx.de">M. Dahm</A>
025     */
026    public interface Constants {
027    
028      /** Major version number of class files for Java 1.1.
029       *  @see #MINOR_1_1
030       *  */
031      public final static short MAJOR_1_1 = 45;
032    
033      /** Minor version number of class files for Java 1.1.
034       *  @see #MAJOR_1_1
035       *  */
036      public final static short MINOR_1_1 = 3;
037    
038      /** Major version number of class files for Java 1.2.
039       *  @see #MINOR_1_2
040       *  */
041      public final static short MAJOR_1_2 = 46;
042    
043      /** Minor version number of class files for Java 1.2.
044       *  @see #MAJOR_1_2
045       *  */
046      public final static short MINOR_1_2 = 0;
047    
048      /** Major version number of class files for Java 1.2.
049       *  @see #MINOR_1_2
050       *  */
051      public final static short MAJOR_1_3 = 47;
052    
053      /** Minor version number of class files for Java 1.3.
054       *  @see #MAJOR_1_3
055       *  */
056      public final static short MINOR_1_3 = 0;
057    
058      /** Major version number of class files for Java 1.3.
059       *  @see #MINOR_1_3
060       *  */
061      public final static short MAJOR_1_4 = 48;
062    
063      /** Minor version number of class files for Java 1.4.
064       *  @see #MAJOR_1_4
065       *  */
066      public final static short MINOR_1_4 = 0;
067    
068      /** Major version number of class files for Java 1.4.
069       *  @see #MINOR_1_4
070       *  */
071      public final static short MAJOR_1_5 = 49;
072    
073      /** Minor version number of class files for Java 1.5.
074       *  @see #MAJOR_1_5
075       *  */
076      public final static short MINOR_1_5 = 0;
077    
078      /** Major version number of class files for Java 1.6.
079       *  @see #MINOR_1_6
080       *  */
081      public final static short MAJOR_1_6 = 50;
082    
083      /** Minor version number of class files for Java 1.6.
084       *  @see #MAJOR_1_6
085       *  */
086      public final static short MINOR_1_6 = 0;
087      
088      /** Major version number of class files for Java 1.7.
089       *  @see #MINOR_1_7
090       *  */
091      public final static short MAJOR_1_7 = 51;
092    
093      /** Minor version number of class files for Java 1.7.
094       *  @see #MAJOR_1_7
095       *  */
096      public final static short MINOR_1_7 = 0;
097    
098      /** Default major version number.  Class file is for Java 1.1.
099       *  @see #MAJOR_1_1
100       *  */
101      public final static short MAJOR = MAJOR_1_1;
102    
103      /** Default major version number.  Class file is for Java 1.1.
104       *  @see #MAJOR_1_1
105       *  */
106      public final static short MINOR     = MINOR_1_1;
107    
108      /** Maximum value for an unsigned short.
109       */
110      public final static int MAX_SHORT = 65535; // 2^16 - 1
111    
112      /** Maximum value for an unsigned byte.
113       */
114      public final static int MAX_BYTE  = 255; // 2^8 - 1
115    
116      /** One of the access flags for fields, methods, or classes.
117       *  @see "<a href='http://java.sun.com/docs/books/jvms/second_edition/html/ClassFile.doc.html#2877'>Flag definitions for Fields in the Java Virtual Machine Specification (2nd edition).</a>"
118       *  @see "<a href='http://java.sun.com/docs/books/jvms/second_edition/html/ClassFile.doc.html#1513'>Flag definitions for Methods in the Java Virtual Machine Specification (2nd edition).</a>"
119       *  @see "<a href='http://java.sun.com/docs/books/jvms/second_edition/html/ClassFile.doc.html#88478'>Flag definitions for Classes in the Java Virtual Machine Specification (2nd edition).</a>"
120       */
121      public final static short ACC_PUBLIC       = 0x0001;
122    
123      /** One of the access flags for fields, methods, or classes.
124       *  @see #ACC_PUBLIC
125       */
126      public final static short ACC_PRIVATE      = 0x0002;
127    
128      /** One of the access flags for fields, methods, or classes.
129       *  @see #ACC_PUBLIC
130       */
131      public final static short ACC_PROTECTED    = 0x0004;
132    
133      /** One of the access flags for fields, methods, or classes.
134       *  @see #ACC_PUBLIC
135       */
136      public final static short ACC_STATIC       = 0x0008;
137    
138      /** One of the access flags for fields, methods, or classes.
139       *  @see #ACC_PUBLIC
140       */
141      public final static short ACC_FINAL        = 0x0010;
142    
143      /** One of the access flags for fields, methods, or classes.
144       *  @see #ACC_PUBLIC
145       */
146      public final static short ACC_SYNCHRONIZED = 0x0020;
147    
148      /** One of the access flags for fields, methods, or classes.
149       *  @see #ACC_PUBLIC
150       */
151      public final static short ACC_SYPER        = 0x0020;
152    
153      /** One of the access flags for fields, methods, or classes.
154       *  @see #ACC_PUBLIC
155       */
156      public final static short ACC_VOLATILE     = 0x0040;
157    
158      /** One of the access flags for fields, methods, or classes.
159       *  @see #ACC_PUBLIC
160       */
161      public final static short ACC_BRIDGE       = 0x0040;
162    
163      /** One of the access flags for fields, methods, or classes.
164       *  @see #ACC_PUBLIC
165       */
166      public final static short ACC_TRANSIENT    = 0x0080;
167    
168      /** One of the access flags for fields, methods, or classes.
169       *  @see #ACC_PUBLIC
170       */
171      public final static short ACC_VARARGS      = 0x0080;
172    
173      /** One of the access flags for fields, methods, or classes.
174       *  @see #ACC_PUBLIC
175       */
176      public final static short ACC_NATIVE       = 0x0100;
177      
178      /** One of the access flags for fields, methods, or classes.
179       *  @see #ACC_PUBLIC
180       */
181      public final static short ACC_INTERFACE    = 0x0200;
182    
183      /** One of the access flags for fields, methods, or classes.
184       *  @see #ACC_PUBLIC
185       */
186      public final static short ACC_ABSTRACT     = 0x0400;
187    
188      /** One of the access flags for fields, methods, or classes.
189       *  @see #ACC_PUBLIC
190       */
191      public final static short ACC_STRICT       = 0x0800;
192      
193      /** One of the access flags for fields, methods, or classes.
194       *  @see #ACC_PUBLIC
195       */
196      public final static short ACC_SYNTHETIC    = 0x1000;
197    
198      /** One of the access flags for fields, methods, or classes.
199       *  @see #ACC_PUBLIC
200       */
201      public final static short ACC_ANNOTATION   = 0x2000;
202    
203      /** One of the access flags for fields, methods, or classes.
204       *  @see #ACC_PUBLIC
205       */
206      public final static short ACC_ENUM         = 0x4000;
207    
208      // Applies to classes compiled by new compilers only
209      /** One of the access flags for fields, methods, or classes.
210       *  @see #ACC_PUBLIC
211       */
212      public final static short ACC_SUPER        = 0x0020;
213    
214      /** One of the access flags for fields, methods, or classes.
215       *  @see #ACC_PUBLIC
216       */
217      public final static short MAX_ACC_FLAG     = ACC_ENUM;
218    
219      /** The names of the access flags. */
220      public final static String[] ACCESS_NAMES = {
221        "public", "private", "protected", "static", "final", "synchronized",
222        "volatile", "transient", "native", "interface", "abstract", "strictfp",
223        "synthetic", "annotation", "enum"
224      };
225    
226      /** Marks a constant pool entry as type UTF-8.  */
227      public final static byte CONSTANT_Utf8               = 1;
228    
229      /** Marks a constant pool entry as type Integer.  */
230      public final static byte CONSTANT_Integer            = 3;
231    
232      /** Marks a constant pool entry as type Float.  */
233      public final static byte CONSTANT_Float              = 4;
234    
235      /** Marks a constant pool entry as type Long.  */
236      public final static byte CONSTANT_Long               = 5;
237    
238      /** Marks a constant pool entry as type Double.  */
239      public final static byte CONSTANT_Double             = 6;
240    
241      /** Marks a constant pool entry as a Class.  */
242      public final static byte CONSTANT_Class              = 7;
243    
244      /** Marks a constant pool entry as a Field Reference.  */
245      public final static byte CONSTANT_Fieldref           = 9;
246    
247      /** Marks a constant pool entry as type String.  */
248      public final static byte CONSTANT_String             = 8;
249    
250      /** Marks a constant pool entry as a Method Reference.  */
251      public final static byte CONSTANT_Methodref          = 10;
252    
253      /** Marks a constant pool entry as an Interface Method Reference.  */
254      public final static byte CONSTANT_InterfaceMethodref = 11;
255    
256      /** Marks a constant pool entry as a name and type.  */
257      public final static byte CONSTANT_NameAndType        = 12;
258    
259      /** The names of the types of entries in a constant pool. */
260      public final static String[] CONSTANT_NAMES = {
261        "", "CONSTANT_Utf8", "", "CONSTANT_Integer",
262        "CONSTANT_Float", "CONSTANT_Long", "CONSTANT_Double",
263        "CONSTANT_Class", "CONSTANT_String", "CONSTANT_Fieldref",
264        "CONSTANT_Methodref", "CONSTANT_InterfaceMethodref",
265        "CONSTANT_NameAndType" };
266    
267      /** The name of the static initializer, also called &quot;class
268       *  initialization method&quot; or &quot;interface initialization
269       *   method&quot;. This is &quot;&lt;clinit&gt;&quot;.
270       */
271      public final static String STATIC_INITIALIZER_NAME = "<clinit>";
272    
273      /** The name of every constructor method in a class, also called
274       * &quot;instance initialization method&quot;. This is &quot;&lt;init&gt;&quot;.
275       */
276      public final static String CONSTRUCTOR_NAME = "<init>";
277    
278      /** The names of the interfaces implemented by arrays */
279      public final static String[] INTERFACES_IMPLEMENTED_BY_ARRAYS = {"java.lang.Cloneable", "java.io.Serializable"};
280    
281      /**
282       * One of the limitations of the Java Virtual Machine.
283       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/ClassFile.doc.html#88659"> The Java Virtual Machine Specification, Second Edition, page 152, chapter 4.10.</a>
284       */
285      public static final int MAX_CP_ENTRIES     = 65535;
286    
287      /**
288       * One of the limitations of the Java Virtual Machine.
289       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/ClassFile.doc.html#88659"> The Java Virtual Machine Specification, Second Edition, page 152, chapter 4.10.</a>
290       */
291      public static final int MAX_CODE_SIZE      = 65536; //bytes
292    
293      /** Java VM opcode.
294       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
295      public static final short NOP              = 0;
296    
297      /** Java VM opcode.
298       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
299      public static final short ACONST_NULL      = 1;
300    
301      /** Java VM opcode.
302       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
303      public static final short ICONST_M1        = 2;
304      /** Java VM opcode.
305       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
306      public static final short ICONST_0         = 3;
307      /** Java VM opcode.
308       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
309      public static final short ICONST_1         = 4;
310      /** Java VM opcode.
311       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
312      public static final short ICONST_2         = 5;
313      /** Java VM opcode.
314       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
315      public static final short ICONST_3         = 6;
316      /** Java VM opcode.
317       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
318      public static final short ICONST_4         = 7;
319      /** Java VM opcode.
320       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
321      public static final short ICONST_5         = 8;
322      /** Java VM opcode.
323       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
324      public static final short LCONST_0         = 9;
325      /** Java VM opcode.
326       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
327      public static final short LCONST_1         = 10;
328      /** Java VM opcode.
329       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
330      public static final short FCONST_0         = 11;
331      /** Java VM opcode.
332       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
333      public static final short FCONST_1         = 12;
334      /** Java VM opcode.
335       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
336      public static final short FCONST_2         = 13;
337      /** Java VM opcode.
338       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
339      public static final short DCONST_0         = 14;
340      /** Java VM opcode.
341       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
342      public static final short DCONST_1         = 15;
343      /** Java VM opcode.
344       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
345      public static final short BIPUSH           = 16;
346      /** Java VM opcode.
347       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
348      public static final short SIPUSH           = 17;
349      /** Java VM opcode.
350       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
351      public static final short LDC              = 18;
352      /** Java VM opcode.
353       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
354      public static final short LDC_W            = 19;
355      /** Java VM opcode.
356       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
357      public static final short LDC2_W           = 20;
358      /** Java VM opcode.
359       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
360      public static final short ILOAD            = 21;
361      /** Java VM opcode.
362       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
363      public static final short LLOAD            = 22;
364      /** Java VM opcode.
365       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
366      public static final short FLOAD            = 23;
367      /** Java VM opcode.
368       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
369      public static final short DLOAD            = 24;
370      /** Java VM opcode.
371       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
372      public static final short ALOAD            = 25;
373      /** Java VM opcode.
374       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
375      public static final short ILOAD_0          = 26;
376      /** Java VM opcode.
377       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
378      public static final short ILOAD_1          = 27;
379      /** Java VM opcode.
380       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
381      public static final short ILOAD_2          = 28;
382      /** Java VM opcode.
383       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
384      public static final short ILOAD_3          = 29;
385      /** Java VM opcode.
386       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
387      public static final short LLOAD_0          = 30;
388      /** Java VM opcode.
389       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
390      public static final short LLOAD_1          = 31;
391      /** Java VM opcode.
392       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
393      public static final short LLOAD_2          = 32;
394      /** Java VM opcode.
395       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
396      public static final short LLOAD_3          = 33;
397      /** Java VM opcode.
398       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
399      public static final short FLOAD_0          = 34;
400      /** Java VM opcode.
401       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
402      public static final short FLOAD_1          = 35;
403      /** Java VM opcode.
404       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
405      public static final short FLOAD_2          = 36;
406      /** Java VM opcode.
407       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
408      public static final short FLOAD_3          = 37;
409      /** Java VM opcode.
410       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
411      public static final short DLOAD_0          = 38;
412      /** Java VM opcode.
413       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
414      public static final short DLOAD_1          = 39;
415      /** Java VM opcode.
416       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
417      public static final short DLOAD_2          = 40;
418      /** Java VM opcode.
419       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
420      public static final short DLOAD_3          = 41;
421      /** Java VM opcode.
422       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
423      public static final short ALOAD_0          = 42;
424      /** Java VM opcode.
425       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
426      public static final short ALOAD_1          = 43;
427      /** Java VM opcode.
428       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
429      public static final short ALOAD_2          = 44;
430      /** Java VM opcode.
431       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
432      public static final short ALOAD_3          = 45;
433      /** Java VM opcode.
434       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
435      public static final short IALOAD           = 46;
436      /** Java VM opcode.
437       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
438      public static final short LALOAD           = 47;
439      /** Java VM opcode.
440       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
441      public static final short FALOAD           = 48;
442      /** Java VM opcode.
443       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
444      public static final short DALOAD           = 49;
445      /** Java VM opcode.
446       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
447      public static final short AALOAD           = 50;
448      /** Java VM opcode.
449       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
450      public static final short BALOAD           = 51;
451      /** Java VM opcode.
452       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
453      public static final short CALOAD           = 52;
454      /** Java VM opcode.
455       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
456      public static final short SALOAD           = 53;
457      /** Java VM opcode.
458       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
459      public static final short ISTORE           = 54;
460      /** Java VM opcode.
461       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
462      public static final short LSTORE           = 55;
463      /** Java VM opcode.
464       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
465      public static final short FSTORE           = 56;
466      /** Java VM opcode.
467       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
468      public static final short DSTORE           = 57;
469      /** Java VM opcode.
470       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
471      public static final short ASTORE           = 58;
472      /** Java VM opcode.
473       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
474      public static final short ISTORE_0         = 59;
475      /** Java VM opcode.
476       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
477      public static final short ISTORE_1         = 60;
478      /** Java VM opcode.
479       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
480      public static final short ISTORE_2         = 61;
481      /** Java VM opcode.
482       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
483      public static final short ISTORE_3         = 62;
484      /** Java VM opcode.
485       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
486      public static final short LSTORE_0         = 63;
487      /** Java VM opcode.
488       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
489      public static final short LSTORE_1         = 64;
490      /** Java VM opcode.
491       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
492      public static final short LSTORE_2         = 65;
493      /** Java VM opcode.
494       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
495      public static final short LSTORE_3         = 66;
496      /** Java VM opcode.
497       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
498      public static final short FSTORE_0         = 67;
499      /** Java VM opcode.
500       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
501      public static final short FSTORE_1         = 68;
502      /** Java VM opcode.
503       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
504      public static final short FSTORE_2         = 69;
505      /** Java VM opcode.
506       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
507      public static final short FSTORE_3         = 70;
508      /** Java VM opcode.
509       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
510      public static final short DSTORE_0         = 71;
511      /** Java VM opcode.
512       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
513      public static final short DSTORE_1         = 72;
514      /** Java VM opcode.
515       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
516      public static final short DSTORE_2         = 73;
517      /** Java VM opcode.
518       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
519      public static final short DSTORE_3         = 74;
520      /** Java VM opcode.
521       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
522      public static final short ASTORE_0         = 75;
523      /** Java VM opcode.
524       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
525      public static final short ASTORE_1         = 76;
526      /** Java VM opcode.
527       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
528      public static final short ASTORE_2         = 77;
529      /** Java VM opcode.
530       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
531      public static final short ASTORE_3         = 78;
532      /** Java VM opcode.
533       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
534      public static final short IASTORE          = 79;
535      /** Java VM opcode.
536       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
537      public static final short LASTORE          = 80;
538      /** Java VM opcode.
539       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
540      public static final short FASTORE          = 81;
541      /** Java VM opcode.
542       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
543      public static final short DASTORE          = 82;
544      /** Java VM opcode.
545       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
546      public static final short AASTORE          = 83;
547      /** Java VM opcode.
548       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
549      public static final short BASTORE          = 84;
550      /** Java VM opcode.
551       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
552      public static final short CASTORE          = 85;
553      /** Java VM opcode.
554       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
555      public static final short SASTORE          = 86;
556      /** Java VM opcode.
557       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
558      public static final short POP              = 87;
559      /** Java VM opcode.
560       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
561      public static final short POP2             = 88;
562      /** Java VM opcode.
563       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
564      public static final short DUP              = 89;
565      /** Java VM opcode.
566       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
567      public static final short DUP_X1           = 90;
568      /** Java VM opcode.
569       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
570      public static final short DUP_X2           = 91;
571      /** Java VM opcode.
572       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
573      public static final short DUP2             = 92;
574      /** Java VM opcode.
575       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
576      public static final short DUP2_X1          = 93;
577      /** Java VM opcode.
578       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
579      public static final short DUP2_X2          = 94;
580      /** Java VM opcode.
581       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
582      public static final short SWAP             = 95;
583      /** Java VM opcode.
584       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
585      public static final short IADD             = 96;
586      /** Java VM opcode.
587       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
588      public static final short LADD             = 97;
589      /** Java VM opcode.
590       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
591      public static final short FADD             = 98;
592      /** Java VM opcode.
593       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
594      public static final short DADD             = 99;
595      /** Java VM opcode.
596       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
597      public static final short ISUB             = 100;
598      /** Java VM opcode.
599       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
600      public static final short LSUB             = 101;
601      /** Java VM opcode.
602       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
603      public static final short FSUB             = 102;
604      /** Java VM opcode.
605       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
606      public static final short DSUB             = 103;
607      /** Java VM opcode.
608       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
609      public static final short IMUL             = 104;
610      /** Java VM opcode.
611       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
612      public static final short LMUL             = 105;
613      /** Java VM opcode.
614       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
615      public static final short FMUL             = 106;
616      /** Java VM opcode.
617       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
618      public static final short DMUL             = 107;
619      /** Java VM opcode.
620       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
621      public static final short IDIV             = 108;
622      /** Java VM opcode.
623       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
624      public static final short LDIV             = 109;
625      /** Java VM opcode.
626       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
627      public static final short FDIV             = 110;
628      /** Java VM opcode.
629       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
630      public static final short DDIV             = 111;
631      /** Java VM opcode.
632       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
633      public static final short IREM             = 112;
634      /** Java VM opcode.
635       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
636      public static final short LREM             = 113;
637      /** Java VM opcode.
638       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
639      public static final short FREM             = 114;
640      /** Java VM opcode.
641       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
642      public static final short DREM             = 115;
643      /** Java VM opcode.
644       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
645      public static final short INEG             = 116;
646      /** Java VM opcode.
647       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
648      public static final short LNEG             = 117;
649      /** Java VM opcode.
650       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
651      public static final short FNEG             = 118;
652      /** Java VM opcode.
653       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
654      public static final short DNEG             = 119;
655      /** Java VM opcode.
656       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
657      public static final short ISHL             = 120;
658      /** Java VM opcode.
659       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
660      public static final short LSHL             = 121;
661      /** Java VM opcode.
662       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
663      public static final short ISHR             = 122;
664      /** Java VM opcode.
665       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
666      public static final short LSHR             = 123;
667      /** Java VM opcode.
668       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
669      public static final short IUSHR            = 124;
670      /** Java VM opcode.
671       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
672      public static final short LUSHR            = 125;
673      /** Java VM opcode.
674       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
675      public static final short IAND             = 126;
676      /** Java VM opcode.
677       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
678      public static final short LAND             = 127;
679      /** Java VM opcode.
680       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
681      public static final short IOR              = 128;
682      /** Java VM opcode.
683       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
684      public static final short LOR              = 129;
685      /** Java VM opcode.
686       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
687      public static final short IXOR             = 130;
688      /** Java VM opcode.
689       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
690      public static final short LXOR             = 131;
691      /** Java VM opcode.
692       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
693      public static final short IINC             = 132;
694      /** Java VM opcode.
695       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
696      public static final short I2L              = 133;
697      /** Java VM opcode.
698       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
699      public static final short I2F              = 134;
700      /** Java VM opcode.
701       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
702      public static final short I2D              = 135;
703      /** Java VM opcode.
704       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
705      public static final short L2I              = 136;
706      /** Java VM opcode.
707       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
708      public static final short L2F              = 137;
709      /** Java VM opcode.
710       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
711      public static final short L2D              = 138;
712      /** Java VM opcode.
713       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
714      public static final short F2I              = 139;
715      /** Java VM opcode.
716       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
717      public static final short F2L              = 140;
718      /** Java VM opcode.
719       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
720      public static final short F2D              = 141;
721      /** Java VM opcode.
722       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
723      public static final short D2I              = 142;
724      /** Java VM opcode.
725       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
726      public static final short D2L              = 143;
727      /** Java VM opcode.
728       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
729      public static final short D2F              = 144;
730      /** Java VM opcode.
731       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
732      public static final short I2B              = 145;
733      /** Java VM opcode.
734       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
735      public static final short INT2BYTE         = 145; // Old notion
736      /** Java VM opcode.
737       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
738      public static final short I2C              = 146;
739      /** Java VM opcode.
740       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
741      public static final short INT2CHAR         = 146; // Old notion
742      /** Java VM opcode.
743       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
744      public static final short I2S              = 147;
745      /** Java VM opcode.
746       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
747      public static final short INT2SHORT        = 147; // Old notion
748      /** Java VM opcode.
749       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
750      public static final short LCMP             = 148;
751      /** Java VM opcode.
752       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
753      public static final short FCMPL            = 149;
754      /** Java VM opcode.
755       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
756      public static final short FCMPG            = 150;
757      /** Java VM opcode.
758       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
759      public static final short DCMPL            = 151;
760      /** Java VM opcode.
761       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
762      public static final short DCMPG            = 152;
763      /** Java VM opcode.
764       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
765      public static final short IFEQ             = 153;
766      /** Java VM opcode.
767       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
768      public static final short IFNE             = 154;
769      /** Java VM opcode.
770       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
771      public static final short IFLT             = 155;
772      /** Java VM opcode.
773       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
774      public static final short IFGE             = 156;
775      /** Java VM opcode.
776       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
777      public static final short IFGT             = 157;
778      /** Java VM opcode.
779       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
780      public static final short IFLE             = 158;
781      /** Java VM opcode.
782       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
783      public static final short IF_ICMPEQ        = 159;
784      /** Java VM opcode.
785       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
786      public static final short IF_ICMPNE        = 160;
787      /** Java VM opcode.
788       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
789      public static final short IF_ICMPLT        = 161;
790      /** Java VM opcode.
791       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
792      public static final short IF_ICMPGE        = 162;
793      /** Java VM opcode.
794       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
795      public static final short IF_ICMPGT        = 163;
796      /** Java VM opcode.
797       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
798      public static final short IF_ICMPLE        = 164;
799      /** Java VM opcode.
800       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
801      public static final short IF_ACMPEQ        = 165;
802      /** Java VM opcode.
803       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
804      public static final short IF_ACMPNE        = 166;
805      /** Java VM opcode.
806       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
807      public static final short GOTO             = 167;
808      /** Java VM opcode.
809       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
810      public static final short JSR              = 168;
811      /** Java VM opcode.
812       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
813      public static final short RET              = 169;
814      /** Java VM opcode.
815       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
816      public static final short TABLESWITCH      = 170;
817      /** Java VM opcode.
818       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
819      public static final short LOOKUPSWITCH     = 171;
820      /** Java VM opcode.
821       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
822      public static final short IRETURN          = 172;
823      /** Java VM opcode.
824       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
825      public static final short LRETURN          = 173;
826      /** Java VM opcode.
827       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
828      public static final short FRETURN          = 174;
829      /** Java VM opcode.
830       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
831      public static final short DRETURN          = 175;
832      /** Java VM opcode.
833       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
834      public static final short ARETURN          = 176;
835      /** Java VM opcode.
836       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
837      public static final short RETURN           = 177;
838      /** Java VM opcode.
839       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
840      public static final short GETSTATIC        = 178;
841      /** Java VM opcode.
842       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
843      public static final short PUTSTATIC        = 179;
844      /** Java VM opcode.
845       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
846      public static final short GETFIELD         = 180;
847      /** Java VM opcode.
848       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
849      public static final short PUTFIELD         = 181;
850      /** Java VM opcode.
851       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
852      public static final short INVOKEVIRTUAL    = 182;
853      /** Java VM opcode.
854       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
855      public static final short INVOKESPECIAL    = 183;
856      /** Java VM opcode.
857       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
858      public static final short INVOKENONVIRTUAL = 183; // Old name in JDK 1.0
859      /** Java VM opcode.
860       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
861      public static final short INVOKESTATIC     = 184;
862      /** Java VM opcode.
863       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
864      public static final short INVOKEINTERFACE  = 185;
865      /** Java VM opcode.
866       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
867      public static final short INVOKEDYNAMIC    = 186;
868      /** Java VM opcode.
869       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
870      public static final short NEW              = 187;
871      /** Java VM opcode.
872       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
873      public static final short NEWARRAY         = 188;
874      /** Java VM opcode.
875       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
876      public static final short ANEWARRAY        = 189;
877      /** Java VM opcode.
878       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
879      public static final short ARRAYLENGTH      = 190;
880      /** Java VM opcode.
881       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
882      public static final short ATHROW           = 191;
883      /** Java VM opcode.
884       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
885      public static final short CHECKCAST        = 192;
886      /** Java VM opcode.
887       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
888      public static final short INSTANCEOF       = 193;
889      /** Java VM opcode.
890       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
891      public static final short MONITORENTER     = 194;
892      /** Java VM opcode.
893       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
894      public static final short MONITOREXIT      = 195;
895      /** Java VM opcode.
896       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
897      public static final short WIDE             = 196;
898      /** Java VM opcode.
899       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
900      public static final short MULTIANEWARRAY   = 197;
901      /** Java VM opcode.
902       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
903      public static final short IFNULL           = 198;
904      /** Java VM opcode.
905       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
906      public static final short IFNONNULL        = 199;
907      /** Java VM opcode.
908       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
909      public static final short GOTO_W           = 200;
910      /** Java VM opcode.
911       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html">Opcode definitions in The Java Virtual Machine Specification</a> */
912      public static final short JSR_W            = 201;
913    
914      /** JVM internal opcode.
915       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions.doc.html#60105">Reserved opcodes in the Java Virtual Machine Specification</a> */
916      public static final short BREAKPOINT                = 202;
917      /** JVM internal opcode.
918       * @see <a href="http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html#10673">Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
919       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/ChangesAppendix.doc.html#448885">Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
920      public static final short LDC_QUICK                 = 203;
921      /** JVM internal opcode.
922       * @see <a href="http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html#10673">Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
923       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/ChangesAppendix.doc.html#448885">Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
924      public static final short LDC_W_QUICK               = 204;
925      /** JVM internal opcode.
926       * @see <a href="http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html#10673">Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
927       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/ChangesAppendix.doc.html#448885">Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
928      public static final short LDC2_W_QUICK              = 205;
929      /** JVM internal opcode.
930       * @see <a href="http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html#10673">Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
931       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/ChangesAppendix.doc.html#448885">Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
932      public static final short GETFIELD_QUICK            = 206;
933      /** JVM internal opcode.
934       * @see <a href="http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html#10673">Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
935       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/ChangesAppendix.doc.html#448885">Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
936      public static final short PUTFIELD_QUICK            = 207;
937      /** JVM internal opcode.
938       * @see <a href="http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html#10673">Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
939       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/ChangesAppendix.doc.html#448885">Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
940      public static final short GETFIELD2_QUICK           = 208;
941      /** JVM internal opcode.
942       * @see <a href="http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html#10673">Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
943       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/ChangesAppendix.doc.html#448885">Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
944      public static final short PUTFIELD2_QUICK           = 209;
945      /** JVM internal opcode.
946       * @see <a href="http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html#10673">Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
947       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/ChangesAppendix.doc.html#448885">Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
948      public static final short GETSTATIC_QUICK           = 210;
949      /** JVM internal opcode.
950       * @see <a href="http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html#10673">Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
951       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/ChangesAppendix.doc.html#448885">Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
952      public static final short PUTSTATIC_QUICK           = 211;
953      /** JVM internal opcode.
954       * @see <a href="http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html#10673">Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
955       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/ChangesAppendix.doc.html#448885">Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
956      public static final short GETSTATIC2_QUICK          = 212;
957      /** JVM internal opcode.
958       * @see <a href="http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html#10673">Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
959       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/ChangesAppendix.doc.html#448885">Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
960      public static final short PUTSTATIC2_QUICK          = 213;
961      /** JVM internal opcode.
962       * @see <a href="http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html#10673">Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
963       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/ChangesAppendix.doc.html#448885">Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
964      public static final short INVOKEVIRTUAL_QUICK       = 214;
965      /** JVM internal opcode.
966       * @see <a href="http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html#10673">Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
967       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/ChangesAppendix.doc.html#448885">Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
968      public static final short INVOKENONVIRTUAL_QUICK    = 215;
969      /** JVM internal opcode.
970       * @see <a href="http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html#10673">Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
971       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/ChangesAppendix.doc.html#448885">Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
972      public static final short INVOKESUPER_QUICK         = 216;
973      /** JVM internal opcode.
974       * @see <a href="http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html#10673">Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
975       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/ChangesAppendix.doc.html#448885">Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
976      public static final short INVOKESTATIC_QUICK        = 217;
977      /** JVM internal opcode.
978       * @see <a href="http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html#10673">Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
979       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/ChangesAppendix.doc.html#448885">Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
980      public static final short INVOKEINTERFACE_QUICK     = 218;
981      /** JVM internal opcode.
982       * @see <a href="http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html#10673">Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
983       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/ChangesAppendix.doc.html#448885">Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
984      public static final short INVOKEVIRTUALOBJECT_QUICK = 219;
985      /** JVM internal opcode.
986       * @see <a href="http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html#10673">Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
987       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/ChangesAppendix.doc.html#448885">Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
988      public static final short NEW_QUICK                 = 221;
989      /** JVM internal opcode.
990       * @see <a href="http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html#10673">Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
991       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/ChangesAppendix.doc.html#448885">Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
992      public static final short ANEWARRAY_QUICK           = 222;
993      /** JVM internal opcode.
994       * @see <a href="http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html#10673">Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
995       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/ChangesAppendix.doc.html#448885">Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
996      public static final short MULTIANEWARRAY_QUICK      = 223;
997      /** JVM internal opcode.
998       * @see <a href="http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html#10673">Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
999       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/ChangesAppendix.doc.html#448885">Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
1000      public static final short CHECKCAST_QUICK           = 224;
1001      /** JVM internal opcode.
1002       * @see <a href="http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html#10673">Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
1003       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/ChangesAppendix.doc.html#448885">Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
1004      public static final short INSTANCEOF_QUICK          = 225;
1005      /** JVM internal opcode.
1006       * @see <a href="http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html#10673">Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
1007       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/ChangesAppendix.doc.html#448885">Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
1008      public static final short INVOKEVIRTUAL_QUICK_W     = 226;
1009      /** JVM internal opcode.
1010       * @see <a href="http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html#10673">Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
1011       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/ChangesAppendix.doc.html#448885">Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
1012      public static final short GETFIELD_QUICK_W          = 227;
1013      /** JVM internal opcode.
1014       * @see <a href="http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html#10673">Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
1015       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/ChangesAppendix.doc.html#448885">Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
1016      public static final short PUTFIELD_QUICK_W          = 228;
1017      /** JVM internal opcode.
1018       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions.doc.html#60105">Reserved opcodes in the Java Virtual Machine Specification</a> */
1019      public static final short IMPDEP1                   = 254;
1020      /** JVM internal opcode.
1021       * @see <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions.doc.html#60105">Reserved opcodes in the Java Virtual Machine Specification</a> */
1022      public static final short IMPDEP2                   = 255;
1023    
1024      /**
1025       * BCEL virtual instruction for pushing an arbitrary data type onto the stack.  Will be converted to the appropriate JVM
1026       * opcode when the class is dumped.
1027       */
1028      public static final short PUSH             = 4711;
1029      /**
1030       * BCEL virtual instruction for either LOOKUPSWITCH or TABLESWITCH.  Will be converted to the appropriate JVM
1031       * opcode when the class is dumped.
1032       */
1033      public static final short SWITCH           = 4712;
1034    
1035      /** Illegal opcode. */
1036      public static final short  UNDEFINED      = -1;
1037      /** Illegal opcode. */
1038      public static final short  UNPREDICTABLE  = -2;
1039      /** Illegal opcode. */
1040      public static final short  RESERVED       = -3;
1041      /** Mnemonic for an illegal opcode. */
1042      public static final String ILLEGAL_OPCODE = "<illegal opcode>";
1043      /** Mnemonic for an illegal type. */
1044      public static final String ILLEGAL_TYPE   = "<illegal type>";
1045    
1046      /** Boolean data type. */
1047      public static final byte T_BOOLEAN = 4;
1048      /** Char data type. */
1049      public static final byte T_CHAR    = 5;
1050      /** Float data type. */
1051      public static final byte T_FLOAT   = 6;
1052      /** Double data type. */
1053      public static final byte T_DOUBLE  = 7;
1054      /** Byte data type. */
1055      public static final byte T_BYTE    = 8;
1056      /** Short data type. */
1057      public static final byte T_SHORT   = 9;
1058      /** Int data type. */
1059      public static final byte T_INT     = 10;
1060      /** Long data type. */
1061      public static final byte T_LONG    = 11;
1062    
1063      /** Void data type (non-standard). */
1064      public static final byte T_VOID      = 12; // Non-standard
1065      /** Array data type. */
1066      public static final byte T_ARRAY     = 13;
1067      /** Object data type. */
1068      public static final byte T_OBJECT    = 14;
1069      /** Reference data type (deprecated). */
1070      public static final byte T_REFERENCE = 14; // Deprecated
1071      /** Unknown data type. */
1072      public static final byte T_UNKNOWN   = 15;
1073      /** Address data type. */
1074      public static final byte T_ADDRESS   = 16;
1075    
1076      /** The primitive type names corresponding to the T_XX constants,
1077       * e.g., TYPE_NAMES[T_INT] = "int"
1078       */
1079      public static final String[] TYPE_NAMES = {
1080        ILLEGAL_TYPE, ILLEGAL_TYPE,  ILLEGAL_TYPE, ILLEGAL_TYPE,
1081        "boolean", "char", "float", "double", "byte", "short", "int", "long",
1082        "void", "array", "object", "unknown", "address"
1083      };
1084    
1085      /** The primitive class names corresponding to the T_XX constants,
1086       * e.g., CLASS_TYPE_NAMES[T_INT] = "java.lang.Integer"
1087       */
1088      public static final String[] CLASS_TYPE_NAMES = {
1089        ILLEGAL_TYPE, ILLEGAL_TYPE,  ILLEGAL_TYPE, ILLEGAL_TYPE,
1090        "java.lang.Boolean", "java.lang.Character", "java.lang.Float",
1091        "java.lang.Double", "java.lang.Byte", "java.lang.Short",
1092        "java.lang.Integer", "java.lang.Long", "java.lang.Void",
1093        ILLEGAL_TYPE, ILLEGAL_TYPE,  ILLEGAL_TYPE,  ILLEGAL_TYPE
1094      };
1095    
1096      /** The signature characters corresponding to primitive types,
1097       * e.g., SHORT_TYPE_NAMES[T_INT] = "I"
1098       */
1099      public static final String[] SHORT_TYPE_NAMES = {
1100        ILLEGAL_TYPE, ILLEGAL_TYPE,  ILLEGAL_TYPE, ILLEGAL_TYPE,
1101        "Z", "C", "F", "D", "B", "S", "I", "J",
1102        "V", ILLEGAL_TYPE, ILLEGAL_TYPE, ILLEGAL_TYPE
1103      };
1104    
1105      /**
1106       * Number of byte code operands for each opcode, i.e., number of bytes after the tag byte
1107       * itself.  Indexed by opcode, so NO_OF_OPERANDS[BIPUSH] = the number of operands for a bipush
1108       * instruction.
1109       */
1110      public static final short[] NO_OF_OPERANDS = {
1111        0/*nop*/, 0/*aconst_null*/, 0/*iconst_m1*/, 0/*iconst_0*/,
1112        0/*iconst_1*/, 0/*iconst_2*/, 0/*iconst_3*/, 0/*iconst_4*/,
1113        0/*iconst_5*/, 0/*lconst_0*/, 0/*lconst_1*/, 0/*fconst_0*/,
1114        0/*fconst_1*/, 0/*fconst_2*/, 0/*dconst_0*/, 0/*dconst_1*/,
1115        1/*bipush*/, 2/*sipush*/, 1/*ldc*/, 2/*ldc_w*/, 2/*ldc2_w*/,
1116        1/*iload*/, 1/*lload*/, 1/*fload*/, 1/*dload*/, 1/*aload*/,
1117        0/*iload_0*/, 0/*iload_1*/, 0/*iload_2*/, 0/*iload_3*/,
1118        0/*lload_0*/, 0/*lload_1*/, 0/*lload_2*/, 0/*lload_3*/,
1119        0/*fload_0*/, 0/*fload_1*/, 0/*fload_2*/, 0/*fload_3*/,
1120        0/*dload_0*/, 0/*dload_1*/, 0/*dload_2*/, 0/*dload_3*/,
1121        0/*aload_0*/, 0/*aload_1*/, 0/*aload_2*/, 0/*aload_3*/,
1122        0/*iaload*/, 0/*laload*/, 0/*faload*/, 0/*daload*/,
1123        0/*aaload*/, 0/*baload*/, 0/*caload*/, 0/*saload*/,
1124        1/*istore*/, 1/*lstore*/, 1/*fstore*/, 1/*dstore*/,
1125        1/*astore*/, 0/*istore_0*/, 0/*istore_1*/, 0/*istore_2*/,
1126        0/*istore_3*/, 0/*lstore_0*/, 0/*lstore_1*/, 0/*lstore_2*/,
1127        0/*lstore_3*/, 0/*fstore_0*/, 0/*fstore_1*/, 0/*fstore_2*/,
1128        0/*fstore_3*/, 0/*dstore_0*/, 0/*dstore_1*/, 0/*dstore_2*/,
1129        0/*dstore_3*/, 0/*astore_0*/, 0/*astore_1*/, 0/*astore_2*/,
1130        0/*astore_3*/, 0/*iastore*/, 0/*lastore*/, 0/*fastore*/,
1131        0/*dastore*/, 0/*aastore*/, 0/*bastore*/, 0/*castore*/,
1132        0/*sastore*/, 0/*pop*/, 0/*pop2*/, 0/*dup*/, 0/*dup_x1*/,
1133        0/*dup_x2*/, 0/*dup2*/, 0/*dup2_x1*/, 0/*dup2_x2*/, 0/*swap*/,
1134        0/*iadd*/, 0/*ladd*/, 0/*fadd*/, 0/*dadd*/, 0/*isub*/,
1135        0/*lsub*/, 0/*fsub*/, 0/*dsub*/, 0/*imul*/, 0/*lmul*/,
1136        0/*fmul*/, 0/*dmul*/, 0/*idiv*/, 0/*ldiv*/, 0/*fdiv*/,
1137        0/*ddiv*/, 0/*irem*/, 0/*lrem*/, 0/*frem*/, 0/*drem*/,
1138        0/*ineg*/, 0/*lneg*/, 0/*fneg*/, 0/*dneg*/, 0/*ishl*/,
1139        0/*lshl*/, 0/*ishr*/, 0/*lshr*/, 0/*iushr*/, 0/*lushr*/,
1140        0/*iand*/, 0/*land*/, 0/*ior*/, 0/*lor*/, 0/*ixor*/, 0/*lxor*/,
1141        2/*iinc*/, 0/*i2l*/, 0/*i2f*/, 0/*i2d*/, 0/*l2i*/, 0/*l2f*/,
1142        0/*l2d*/, 0/*f2i*/, 0/*f2l*/, 0/*f2d*/, 0/*d2i*/, 0/*d2l*/,
1143        0/*d2f*/, 0/*i2b*/, 0/*i2c*/, 0/*i2s*/, 0/*lcmp*/, 0/*fcmpl*/,
1144        0/*fcmpg*/, 0/*dcmpl*/, 0/*dcmpg*/, 2/*ifeq*/, 2/*ifne*/,
1145        2/*iflt*/, 2/*ifge*/, 2/*ifgt*/, 2/*ifle*/, 2/*if_icmpeq*/,
1146        2/*if_icmpne*/, 2/*if_icmplt*/, 2/*if_icmpge*/, 2/*if_icmpgt*/,
1147        2/*if_icmple*/, 2/*if_acmpeq*/, 2/*if_acmpne*/, 2/*goto*/,
1148        2/*jsr*/, 1/*ret*/, UNPREDICTABLE/*tableswitch*/, UNPREDICTABLE/*lookupswitch*/,
1149        0/*ireturn*/, 0/*lreturn*/, 0/*freturn*/,
1150        0/*dreturn*/, 0/*areturn*/, 0/*return*/,
1151        2/*getstatic*/, 2/*putstatic*/, 2/*getfield*/,
1152        2/*putfield*/, 2/*invokevirtual*/, 2/*invokespecial*/, 2/*invokestatic*/,
1153        4/*invokeinterface*/, UNDEFINED, 2/*new*/,
1154        1/*newarray*/, 2/*anewarray*/,
1155        0/*arraylength*/, 0/*athrow*/, 2/*checkcast*/,
1156        2/*instanceof*/, 0/*monitorenter*/,
1157        0/*monitorexit*/, UNPREDICTABLE/*wide*/, 3/*multianewarray*/,
1158        2/*ifnull*/, 2/*ifnonnull*/, 4/*goto_w*/,
1159        4/*jsr_w*/, 0/*breakpoint*/, UNDEFINED,
1160        UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
1161        UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
1162        UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
1163        UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
1164        UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
1165        UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
1166        UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
1167        UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
1168        UNDEFINED, UNDEFINED, RESERVED/*impdep1*/, RESERVED/*impdep2*/
1169      };
1170    
1171      /**
1172       * How the byte code operands are to be interpreted for each opcode.
1173       * Indexed by opcode.  TYPE_OF_OPERANDS[ILOAD] = an array of shorts
1174       * describing the data types for the instruction.
1175       */
1176      public static final short[][] TYPE_OF_OPERANDS = {
1177        {}/*nop*/, {}/*aconst_null*/, {}/*iconst_m1*/, {}/*iconst_0*/,
1178        {}/*iconst_1*/, {}/*iconst_2*/, {}/*iconst_3*/, {}/*iconst_4*/,
1179        {}/*iconst_5*/, {}/*lconst_0*/, {}/*lconst_1*/, {}/*fconst_0*/,
1180        {}/*fconst_1*/, {}/*fconst_2*/, {}/*dconst_0*/, {}/*dconst_1*/,
1181        {T_BYTE}/*bipush*/, {T_SHORT}/*sipush*/, {T_BYTE}/*ldc*/,
1182        {T_SHORT}/*ldc_w*/, {T_SHORT}/*ldc2_w*/,
1183        {T_BYTE}/*iload*/, {T_BYTE}/*lload*/, {T_BYTE}/*fload*/,
1184        {T_BYTE}/*dload*/, {T_BYTE}/*aload*/, {}/*iload_0*/,
1185        {}/*iload_1*/, {}/*iload_2*/, {}/*iload_3*/, {}/*lload_0*/,
1186        {}/*lload_1*/, {}/*lload_2*/, {}/*lload_3*/, {}/*fload_0*/,
1187        {}/*fload_1*/, {}/*fload_2*/, {}/*fload_3*/, {}/*dload_0*/,
1188        {}/*dload_1*/, {}/*dload_2*/, {}/*dload_3*/, {}/*aload_0*/,
1189        {}/*aload_1*/, {}/*aload_2*/, {}/*aload_3*/, {}/*iaload*/,
1190        {}/*laload*/, {}/*faload*/, {}/*daload*/, {}/*aaload*/,
1191        {}/*baload*/, {}/*caload*/, {}/*saload*/, {T_BYTE}/*istore*/,
1192        {T_BYTE}/*lstore*/, {T_BYTE}/*fstore*/, {T_BYTE}/*dstore*/,
1193        {T_BYTE}/*astore*/, {}/*istore_0*/, {}/*istore_1*/,
1194        {}/*istore_2*/, {}/*istore_3*/, {}/*lstore_0*/, {}/*lstore_1*/,
1195        {}/*lstore_2*/, {}/*lstore_3*/, {}/*fstore_0*/, {}/*fstore_1*/,
1196        {}/*fstore_2*/, {}/*fstore_3*/, {}/*dstore_0*/, {}/*dstore_1*/,
1197        {}/*dstore_2*/, {}/*dstore_3*/, {}/*astore_0*/, {}/*astore_1*/,
1198        {}/*astore_2*/, {}/*astore_3*/, {}/*iastore*/, {}/*lastore*/,
1199        {}/*fastore*/, {}/*dastore*/, {}/*aastore*/, {}/*bastore*/,
1200        {}/*castore*/, {}/*sastore*/, {}/*pop*/, {}/*pop2*/, {}/*dup*/,
1201        {}/*dup_x1*/, {}/*dup_x2*/, {}/*dup2*/, {}/*dup2_x1*/,
1202        {}/*dup2_x2*/, {}/*swap*/, {}/*iadd*/, {}/*ladd*/, {}/*fadd*/,
1203        {}/*dadd*/, {}/*isub*/, {}/*lsub*/, {}/*fsub*/, {}/*dsub*/,
1204        {}/*imul*/, {}/*lmul*/, {}/*fmul*/, {}/*dmul*/, {}/*idiv*/,
1205        {}/*ldiv*/, {}/*fdiv*/, {}/*ddiv*/, {}/*irem*/, {}/*lrem*/,
1206        {}/*frem*/, {}/*drem*/, {}/*ineg*/, {}/*lneg*/, {}/*fneg*/,
1207        {}/*dneg*/, {}/*ishl*/, {}/*lshl*/, {}/*ishr*/, {}/*lshr*/,
1208        {}/*iushr*/, {}/*lushr*/, {}/*iand*/, {}/*land*/, {}/*ior*/,
1209        {}/*lor*/, {}/*ixor*/, {}/*lxor*/, {T_BYTE, T_BYTE}/*iinc*/,
1210        {}/*i2l*/, {}/*i2f*/, {}/*i2d*/, {}/*l2i*/, {}/*l2f*/, {}/*l2d*/,
1211        {}/*f2i*/, {}/*f2l*/, {}/*f2d*/, {}/*d2i*/, {}/*d2l*/, {}/*d2f*/,
1212        {}/*i2b*/, {}/*i2c*/,{}/*i2s*/, {}/*lcmp*/, {}/*fcmpl*/,
1213        {}/*fcmpg*/, {}/*dcmpl*/, {}/*dcmpg*/, {T_SHORT}/*ifeq*/,
1214        {T_SHORT}/*ifne*/, {T_SHORT}/*iflt*/, {T_SHORT}/*ifge*/,
1215        {T_SHORT}/*ifgt*/, {T_SHORT}/*ifle*/, {T_SHORT}/*if_icmpeq*/,
1216        {T_SHORT}/*if_icmpne*/, {T_SHORT}/*if_icmplt*/,
1217        {T_SHORT}/*if_icmpge*/, {T_SHORT}/*if_icmpgt*/,
1218        {T_SHORT}/*if_icmple*/, {T_SHORT}/*if_acmpeq*/,
1219        {T_SHORT}/*if_acmpne*/, {T_SHORT}/*goto*/, {T_SHORT}/*jsr*/,
1220        {T_BYTE}/*ret*/, {}/*tableswitch*/, {}/*lookupswitch*/,
1221        {}/*ireturn*/, {}/*lreturn*/, {}/*freturn*/, {}/*dreturn*/,
1222        {}/*areturn*/, {}/*return*/, {T_SHORT}/*getstatic*/,
1223        {T_SHORT}/*putstatic*/, {T_SHORT}/*getfield*/,
1224        {T_SHORT}/*putfield*/, {T_SHORT}/*invokevirtual*/,
1225        {T_SHORT}/*invokespecial*/, {T_SHORT}/*invokestatic*/,
1226        {T_SHORT, T_BYTE, T_BYTE}/*invokeinterface*/, {},
1227        {T_SHORT}/*new*/, {T_BYTE}/*newarray*/,
1228        {T_SHORT}/*anewarray*/, {}/*arraylength*/, {}/*athrow*/,
1229        {T_SHORT}/*checkcast*/, {T_SHORT}/*instanceof*/,
1230        {}/*monitorenter*/, {}/*monitorexit*/, {T_BYTE}/*wide*/,
1231        {T_SHORT, T_BYTE}/*multianewarray*/, {T_SHORT}/*ifnull*/,
1232        {T_SHORT}/*ifnonnull*/, {T_INT}/*goto_w*/, {T_INT}/*jsr_w*/,
1233        {}/*breakpoint*/, {}, {}, {}, {}, {}, {}, {},
1234        {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {},
1235        {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {},
1236        {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {},
1237        {}/*impdep1*/, {}/*impdep2*/
1238      };
1239    
1240      /**
1241       * Names of opcodes.  Indexed by opcode.  OPCODE_NAMES[ALOAD] = "aload".
1242       */ 
1243      public static final String[] OPCODE_NAMES = {
1244        "nop", "aconst_null", "iconst_m1", "iconst_0", "iconst_1",
1245        "iconst_2", "iconst_3", "iconst_4", "iconst_5", "lconst_0",
1246        "lconst_1", "fconst_0", "fconst_1", "fconst_2", "dconst_0",
1247        "dconst_1", "bipush", "sipush", "ldc", "ldc_w", "ldc2_w", "iload",
1248        "lload", "fload", "dload", "aload", "iload_0", "iload_1", "iload_2",
1249        "iload_3", "lload_0", "lload_1", "lload_2", "lload_3", "fload_0",
1250        "fload_1", "fload_2", "fload_3", "dload_0", "dload_1", "dload_2",
1251        "dload_3", "aload_0", "aload_1", "aload_2", "aload_3", "iaload",
1252        "laload", "faload", "daload", "aaload", "baload", "caload", "saload",
1253        "istore", "lstore", "fstore", "dstore", "astore", "istore_0",
1254        "istore_1", "istore_2", "istore_3", "lstore_0", "lstore_1",
1255        "lstore_2", "lstore_3", "fstore_0", "fstore_1", "fstore_2",
1256        "fstore_3", "dstore_0", "dstore_1", "dstore_2", "dstore_3",
1257        "astore_0", "astore_1", "astore_2", "astore_3", "iastore", "lastore",
1258        "fastore", "dastore", "aastore", "bastore", "castore", "sastore",
1259        "pop", "pop2", "dup", "dup_x1", "dup_x2", "dup2", "dup2_x1",
1260        "dup2_x2", "swap", "iadd", "ladd", "fadd", "dadd", "isub", "lsub",
1261        "fsub", "dsub", "imul", "lmul", "fmul", "dmul", "idiv", "ldiv",
1262        "fdiv", "ddiv", "irem", "lrem", "frem", "drem", "ineg", "lneg",
1263        "fneg", "dneg", "ishl", "lshl", "ishr", "lshr", "iushr", "lushr",
1264        "iand", "land", "ior", "lor", "ixor", "lxor", "iinc", "i2l", "i2f",
1265        "i2d", "l2i", "l2f", "l2d", "f2i", "f2l", "f2d", "d2i", "d2l", "d2f",
1266        "i2b", "i2c", "i2s", "lcmp", "fcmpl", "fcmpg",
1267        "dcmpl", "dcmpg", "ifeq", "ifne", "iflt", "ifge", "ifgt", "ifle",
1268        "if_icmpeq", "if_icmpne", "if_icmplt", "if_icmpge", "if_icmpgt",
1269        "if_icmple", "if_acmpeq", "if_acmpne", "goto", "jsr", "ret",
1270        "tableswitch", "lookupswitch", "ireturn", "lreturn", "freturn",
1271        "dreturn", "areturn", "return", "getstatic", "putstatic", "getfield",
1272        "putfield", "invokevirtual", "invokespecial", "invokestatic",
1273        "invokeinterface", ILLEGAL_OPCODE, "new", "newarray", "anewarray",
1274        "arraylength", "athrow", "checkcast", "instanceof", "monitorenter",
1275        "monitorexit", "wide", "multianewarray", "ifnull", "ifnonnull",
1276        "goto_w", "jsr_w", "breakpoint", ILLEGAL_OPCODE, ILLEGAL_OPCODE,
1277        ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE,
1278        ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE,
1279        ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE,
1280        ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE,
1281        ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE,
1282        ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE,
1283        ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE,
1284        ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE,
1285        ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE,
1286        ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE,
1287        ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE,
1288        ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE,
1289        ILLEGAL_OPCODE, "impdep1", "impdep2"
1290      };
1291    
1292      /**
1293       * Number of words consumed on operand stack by instructions.
1294       * Indexed by opcode.  CONSUME_STACK[FALOAD] = number of words
1295       * consumed from the stack by a faload instruction.
1296       */ 
1297      public static final int[] CONSUME_STACK = {
1298        0/*nop*/, 0/*aconst_null*/, 0/*iconst_m1*/, 0/*iconst_0*/, 0/*iconst_1*/,
1299        0/*iconst_2*/, 0/*iconst_3*/, 0/*iconst_4*/, 0/*iconst_5*/, 0/*lconst_0*/,
1300        0/*lconst_1*/, 0/*fconst_0*/, 0/*fconst_1*/, 0/*fconst_2*/, 0/*dconst_0*/,
1301        0/*dconst_1*/, 0/*bipush*/, 0/*sipush*/, 0/*ldc*/, 0/*ldc_w*/, 0/*ldc2_w*/, 0/*iload*/,
1302        0/*lload*/, 0/*fload*/, 0/*dload*/, 0/*aload*/, 0/*iload_0*/, 0/*iload_1*/, 0/*iload_2*/,
1303        0/*iload_3*/, 0/*lload_0*/, 0/*lload_1*/, 0/*lload_2*/, 0/*lload_3*/, 0/*fload_0*/,
1304        0/*fload_1*/, 0/*fload_2*/, 0/*fload_3*/, 0/*dload_0*/, 0/*dload_1*/, 0/*dload_2*/,
1305        0/*dload_3*/, 0/*aload_0*/, 0/*aload_1*/, 0/*aload_2*/, 0/*aload_3*/, 2/*iaload*/,
1306        2/*laload*/, 2/*faload*/, 2/*daload*/, 2/*aaload*/, 2/*baload*/, 2/*caload*/, 2/*saload*/,
1307        1/*istore*/, 2/*lstore*/, 1/*fstore*/, 2/*dstore*/, 1/*astore*/, 1/*istore_0*/,
1308        1/*istore_1*/, 1/*istore_2*/, 1/*istore_3*/, 2/*lstore_0*/, 2/*lstore_1*/,
1309        2/*lstore_2*/, 2/*lstore_3*/, 1/*fstore_0*/, 1/*fstore_1*/, 1/*fstore_2*/,
1310        1/*fstore_3*/, 2/*dstore_0*/, 2/*dstore_1*/, 2/*dstore_2*/, 2/*dstore_3*/,
1311        1/*astore_0*/, 1/*astore_1*/, 1/*astore_2*/, 1/*astore_3*/, 3/*iastore*/, 4/*lastore*/,
1312        3/*fastore*/, 4/*dastore*/, 3/*aastore*/, 3/*bastore*/, 3/*castore*/, 3/*sastore*/,
1313        1/*pop*/, 2/*pop2*/, 1/*dup*/, 2/*dup_x1*/, 3/*dup_x2*/, 2/*dup2*/, 3/*dup2_x1*/,
1314        4/*dup2_x2*/, 2/*swap*/, 2/*iadd*/, 4/*ladd*/, 2/*fadd*/, 4/*dadd*/, 2/*isub*/, 4/*lsub*/,
1315        2/*fsub*/, 4/*dsub*/, 2/*imul*/, 4/*lmul*/, 2/*fmul*/, 4/*dmul*/, 2/*idiv*/, 4/*ldiv*/,
1316        2/*fdiv*/, 4/*ddiv*/, 2/*irem*/, 4/*lrem*/, 2/*frem*/, 4/*drem*/, 1/*ineg*/, 2/*lneg*/,
1317        1/*fneg*/, 2/*dneg*/, 2/*ishl*/, 3/*lshl*/, 2/*ishr*/, 3/*lshr*/, 2/*iushr*/, 3/*lushr*/,
1318        2/*iand*/, 4/*land*/, 2/*ior*/, 4/*lor*/, 2/*ixor*/, 4/*lxor*/, 0/*iinc*/,
1319        1/*i2l*/, 1/*i2f*/, 1/*i2d*/, 2/*l2i*/, 2/*l2f*/, 2/*l2d*/, 1/*f2i*/, 1/*f2l*/,
1320        1/*f2d*/, 2/*d2i*/, 2/*d2l*/, 2/*d2f*/, 1/*i2b*/, 1/*i2c*/, 1/*i2s*/, 
1321        4/*lcmp*/, 2/*fcmpl*/, 2/*fcmpg*/, 4/*dcmpl*/, 4/*dcmpg*/, 1/*ifeq*/, 1/*ifne*/,
1322        1/*iflt*/, 1/*ifge*/, 1/*ifgt*/, 1/*ifle*/, 2/*if_icmpeq*/, 2/*if_icmpne*/, 2/*if_icmplt*/,
1323        2 /*if_icmpge*/, 2/*if_icmpgt*/, 2/*if_icmple*/, 2/*if_acmpeq*/, 2/*if_acmpne*/,
1324        0/*goto*/, 0/*jsr*/, 0/*ret*/, 1/*tableswitch*/, 1/*lookupswitch*/, 1/*ireturn*/,
1325        2/*lreturn*/, 1/*freturn*/, 2/*dreturn*/, 1/*areturn*/, 0/*return*/, 0/*getstatic*/,
1326        UNPREDICTABLE/*putstatic*/, 1/*getfield*/, UNPREDICTABLE/*putfield*/,
1327        UNPREDICTABLE/*invokevirtual*/, UNPREDICTABLE/*invokespecial*/,
1328        UNPREDICTABLE/*invokestatic*/,
1329        UNPREDICTABLE/*invokeinterface*/, UNDEFINED, 0/*new*/, 1/*newarray*/, 1/*anewarray*/,
1330        1/*arraylength*/, 1/*athrow*/, 1/*checkcast*/, 1/*instanceof*/, 1/*monitorenter*/,
1331        1/*monitorexit*/, 0/*wide*/, UNPREDICTABLE/*multianewarray*/, 1/*ifnull*/, 1/*ifnonnull*/,
1332        0/*goto_w*/, 0/*jsr_w*/, 0/*breakpoint*/, UNDEFINED, UNDEFINED,
1333        UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
1334        UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
1335        UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
1336        UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
1337        UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
1338        UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
1339        UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
1340        UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
1341        UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
1342        UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
1343        UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
1344        UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
1345        UNDEFINED, UNPREDICTABLE/*impdep1*/, UNPREDICTABLE/*impdep2*/
1346      };
1347    
1348      /**
1349       * Number of words produced onto operand stack by instructions.
1350       * Indexed by opcode.  CONSUME_STACK[DALOAD] = number of words
1351       * consumed from the stack by a daload instruction.
1352       */ 
1353      public static final int[] PRODUCE_STACK = {
1354        0/*nop*/, 1/*aconst_null*/, 1/*iconst_m1*/, 1/*iconst_0*/, 1/*iconst_1*/,
1355        1/*iconst_2*/, 1/*iconst_3*/, 1/*iconst_4*/, 1/*iconst_5*/, 2/*lconst_0*/,
1356        2/*lconst_1*/, 1/*fconst_0*/, 1/*fconst_1*/, 1/*fconst_2*/, 2/*dconst_0*/,
1357        2/*dconst_1*/, 1/*bipush*/, 1/*sipush*/, 1/*ldc*/, 1/*ldc_w*/, 2/*ldc2_w*/, 1/*iload*/,
1358        2/*lload*/, 1/*fload*/, 2/*dload*/, 1/*aload*/, 1/*iload_0*/, 1/*iload_1*/, 1/*iload_2*/,
1359        1/*iload_3*/, 2/*lload_0*/, 2/*lload_1*/, 2/*lload_2*/, 2/*lload_3*/, 1/*fload_0*/,
1360        1/*fload_1*/, 1/*fload_2*/, 1/*fload_3*/, 2/*dload_0*/, 2/*dload_1*/, 2/*dload_2*/,
1361        2/*dload_3*/, 1/*aload_0*/, 1/*aload_1*/, 1/*aload_2*/, 1/*aload_3*/, 1/*iaload*/,
1362        2/*laload*/, 1/*faload*/, 2/*daload*/, 1/*aaload*/, 1/*baload*/, 1/*caload*/, 1/*saload*/,
1363        0/*istore*/, 0/*lstore*/, 0/*fstore*/, 0/*dstore*/, 0/*astore*/, 0/*istore_0*/,
1364        0/*istore_1*/, 0/*istore_2*/, 0/*istore_3*/, 0/*lstore_0*/, 0/*lstore_1*/,
1365        0/*lstore_2*/, 0/*lstore_3*/, 0/*fstore_0*/, 0/*fstore_1*/, 0/*fstore_2*/,
1366        0/*fstore_3*/, 0/*dstore_0*/, 0/*dstore_1*/, 0/*dstore_2*/, 0/*dstore_3*/,
1367        0/*astore_0*/, 0/*astore_1*/, 0/*astore_2*/, 0/*astore_3*/, 0/*iastore*/, 0/*lastore*/,
1368        0/*fastore*/, 0/*dastore*/, 0/*aastore*/, 0/*bastore*/, 0/*castore*/, 0/*sastore*/,
1369        0/*pop*/, 0/*pop2*/, 2/*dup*/, 3/*dup_x1*/, 4/*dup_x2*/, 4/*dup2*/, 5/*dup2_x1*/,
1370        6/*dup2_x2*/, 2/*swap*/, 1/*iadd*/, 2/*ladd*/, 1/*fadd*/, 2/*dadd*/, 1/*isub*/, 2/*lsub*/,
1371        1/*fsub*/, 2/*dsub*/, 1/*imul*/, 2/*lmul*/, 1/*fmul*/, 2/*dmul*/, 1/*idiv*/, 2/*ldiv*/,
1372        1/*fdiv*/, 2/*ddiv*/, 1/*irem*/, 2/*lrem*/, 1/*frem*/, 2/*drem*/, 1/*ineg*/, 2/*lneg*/,
1373        1/*fneg*/, 2/*dneg*/, 1/*ishl*/, 2/*lshl*/, 1/*ishr*/, 2/*lshr*/, 1/*iushr*/, 2/*lushr*/,
1374        1/*iand*/, 2/*land*/, 1/*ior*/, 2/*lor*/, 1/*ixor*/, 2/*lxor*/,
1375        0/*iinc*/, 2/*i2l*/, 1/*i2f*/, 2/*i2d*/, 1/*l2i*/, 1/*l2f*/, 2/*l2d*/, 1/*f2i*/,
1376        2/*f2l*/, 2/*f2d*/, 1/*d2i*/, 2/*d2l*/, 1/*d2f*/,
1377        1/*i2b*/, 1/*i2c*/, 1/*i2s*/, 1/*lcmp*/, 1/*fcmpl*/, 1/*fcmpg*/,
1378        1/*dcmpl*/, 1/*dcmpg*/, 0/*ifeq*/, 0/*ifne*/, 0/*iflt*/, 0/*ifge*/, 0/*ifgt*/, 0/*ifle*/,
1379        0/*if_icmpeq*/, 0/*if_icmpne*/, 0/*if_icmplt*/, 0/*if_icmpge*/, 0/*if_icmpgt*/,
1380        0/*if_icmple*/, 0/*if_acmpeq*/, 0/*if_acmpne*/, 0/*goto*/, 1/*jsr*/, 0/*ret*/,
1381        0/*tableswitch*/, 0/*lookupswitch*/, 0/*ireturn*/, 0/*lreturn*/, 0/*freturn*/,
1382        0/*dreturn*/, 0/*areturn*/, 0/*return*/, UNPREDICTABLE/*getstatic*/, 0/*putstatic*/,
1383        UNPREDICTABLE/*getfield*/, 0/*putfield*/, UNPREDICTABLE/*invokevirtual*/,
1384        UNPREDICTABLE/*invokespecial*/, UNPREDICTABLE/*invokestatic*/,
1385        UNPREDICTABLE/*invokeinterface*/, UNDEFINED, 1/*new*/, 1/*newarray*/, 1/*anewarray*/,
1386        1/*arraylength*/, 1/*athrow*/, 1/*checkcast*/, 1/*instanceof*/, 0/*monitorenter*/,
1387        0/*monitorexit*/, 0/*wide*/, 1/*multianewarray*/, 0/*ifnull*/, 0/*ifnonnull*/,
1388        0/*goto_w*/, 1/*jsr_w*/, 0/*breakpoint*/, UNDEFINED, UNDEFINED,
1389        UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
1390        UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
1391        UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
1392        UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
1393        UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
1394        UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
1395        UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
1396        UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
1397        UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
1398        UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
1399        UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
1400        UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
1401        UNDEFINED, UNPREDICTABLE/*impdep1*/, UNPREDICTABLE/*impdep2*/
1402      };
1403    
1404      /** Attributes and their corresponding names.
1405       */
1406      public static final byte ATTR_UNKNOWN                                         = -1;
1407      public static final byte ATTR_SOURCE_FILE                                     = 0;
1408      public static final byte ATTR_CONSTANT_VALUE                                  = 1;
1409      public static final byte ATTR_CODE                                            = 2;
1410      public static final byte ATTR_EXCEPTIONS                                      = 3;
1411      public static final byte ATTR_LINE_NUMBER_TABLE                               = 4;
1412      public static final byte ATTR_LOCAL_VARIABLE_TABLE                            = 5;
1413      public static final byte ATTR_INNER_CLASSES                                   = 6;
1414      public static final byte ATTR_SYNTHETIC                                       = 7;
1415      public static final byte ATTR_DEPRECATED                                      = 8;
1416      public static final byte ATTR_PMG                                             = 9;
1417      public static final byte ATTR_SIGNATURE                                       = 10;
1418      public static final byte ATTR_STACK_MAP                                       = 11;
1419      public static final byte ATTR_RUNTIME_VISIBLE_ANNOTATIONS                     = 12;
1420      public static final byte ATTR_RUNTIMEIN_VISIBLE_ANNOTATIONS                   = 13;
1421      public static final byte ATTR_RUNTIME_VISIBLE_PARAMETER_ANNOTATIONS   = 14;
1422      public static final byte ATTR_RUNTIMEIN_VISIBLE_PARAMETER_ANNOTATIONS = 15;
1423      public static final byte ATTR_ANNOTATION_DEFAULT                      = 16;
1424      public static final byte ATTR_LOCAL_VARIABLE_TYPE_TABLE               = 17;
1425      public static final byte ATTR_ENCLOSING_METHOD                        = 18;
1426      public static final byte ATTR_STACK_MAP_TABLE                         = 19;
1427    
1428      public static final short KNOWN_ATTRIBUTES = 20;
1429    
1430      // TOFO: FIXXXXX
1431      public static final String[] ATTRIBUTE_NAMES = {
1432        "SourceFile", "ConstantValue", "Code", "Exceptions",
1433        "LineNumberTable", "LocalVariableTable",
1434        "InnerClasses", "Synthetic", "Deprecated",
1435        "PMGClass", "Signature", "StackMap", 
1436        "RuntimeVisibleAnnotations", "RuntimeInvisibleAnnotations",
1437        "RuntimeVisibleParameterAnnotations", "RuntimeInvisibleParameterAnnotations",
1438        "AnnotationDefault", "LocalVariableTypeTable", "EnclosingMethod", "StackMapTable"
1439      };
1440    
1441      /** Constants used in the StackMap attribute.
1442       */
1443      public static final byte ITEM_Bogus      = 0;
1444      public static final byte ITEM_Integer    = 1;
1445      public static final byte ITEM_Float      = 2;
1446      public static final byte ITEM_Double     = 3;
1447      public static final byte ITEM_Long       = 4;
1448      public static final byte ITEM_Null       = 5;
1449      public static final byte ITEM_InitObject = 6;
1450      public static final byte ITEM_Object     = 7;
1451      public static final byte ITEM_NewObject  = 8;
1452    
1453      public static final String[] ITEM_NAMES = {
1454        "Bogus", "Integer", "Float", "Double", "Long",
1455        "Null", "InitObject", "Object", "NewObject" 
1456      };
1457      
1458      /** Constants used to identify StackMapEntry types.
1459       * 
1460       * For those types which can specify a range, the 
1461       * constant names the lowest value.
1462       */
1463      public static final int SAME_FRAME = 0; 
1464      public static final int SAME_LOCALS_1_STACK_ITEM_FRAME = 64; 
1465      public static final int SAME_LOCALS_1_STACK_ITEM_FRAME_EXTENDED = 247; 
1466      public static final int CHOP_FRAME = 248; 
1467      public static final int SAME_FRAME_EXTENDED = 251; 
1468      public static final int APPEND_FRAME = 252; 
1469      public static final int FULL_FRAME = 255; 
1470      
1471      /** Constants that define the maximum value of 
1472       * those constants which store ranges. */
1473      
1474      public static final int SAME_FRAME_MAX = 63;
1475      public static final int SAME_LOCALS_1_STACK_ITEM_FRAME_MAX = 127;
1476      public static final int CHOP_FRAME_MAX = 250;
1477      public static final int APPEND_FRAME_MAX = 254;
1478    }