View Javadoc
1   /*
2    * Licensed to the Apache Software Foundation (ASF) under one or more
3    * contributor license agreements.  See the NOTICE file distributed with
4    * this work for additional information regarding copyright ownership.
5    * The ASF licenses this file to You under the Apache License, Version 2.0
6    * (the "License"); you may not use this file except in compliance with
7    * the License.  You may obtain a copy of the License at
8    *
9    *      http://www.apache.org/licenses/LICENSE-2.0
10   *
11   *  Unless required by applicable law or agreed to in writing, software
12   *  distributed under the License is distributed on an "AS IS" BASIS,
13   *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14   *  See the License for the specific language governing permissions and
15   *  limitations under the License.
16   *
17   */
18  package org.apache.bcel;
19  
20  import java.util.Arrays;
21  import java.util.Collections;
22  
23  /**
24   * Constants for the project, mostly defined in the JVM specification.
25   *
26   * @since 6.0 (intended to replace the Constants interface)
27   */
28  public final class Const {
29  
30    /**
31     * Java class file format Magic number (0xCAFEBABE)
32     *
33     * @see <a href="https://docs.oracle.com/javase/specs/jvms/se7/html/jvms-4.html#jvms-4.1-200-A">
34     * The ClassFile Structure in The Java Virtual Machine Specification</a>
35     */
36    public static final int JVM_CLASSFILE_MAGIC = 0xCAFEBABE;
37  
38    /** Major version number of class files for Java 1.1.
39     *  @see #MINOR_1_1
40     *  */
41    public static final short MAJOR_1_1 = 45;
42  
43    /** Minor version number of class files for Java 1.1.
44     *  @see #MAJOR_1_1
45     *  */
46    public static final short MINOR_1_1 = 3;
47  
48    /** Major version number of class files for Java 1.2.
49     *  @see #MINOR_1_2
50     *  */
51    public static final short MAJOR_1_2 = 46;
52  
53    /** Minor version number of class files for Java 1.2.
54     *  @see #MAJOR_1_2
55     *  */
56    public static final short MINOR_1_2 = 0;
57  
58    /** Major version number of class files for Java 1.2.
59     *  @see #MINOR_1_2
60     *  */
61    public static final short MAJOR_1_3 = 47;
62  
63    /** Minor version number of class files for Java 1.3.
64     *  @see #MAJOR_1_3
65     *  */
66    public static final short MINOR_1_3 = 0;
67  
68    /** Major version number of class files for Java 1.3.
69     *  @see #MINOR_1_3
70     *  */
71    public static final short MAJOR_1_4 = 48;
72  
73    /** Minor version number of class files for Java 1.4.
74     *  @see #MAJOR_1_4
75     *  */
76    public static final short MINOR_1_4 = 0;
77  
78    /** Major version number of class files for Java 1.4.
79     *  @see #MINOR_1_4
80     *  */
81    public static final short MAJOR_1_5 = 49;
82  
83    /** Minor version number of class files for Java 1.5.
84     *  @see #MAJOR_1_5
85     *  */
86    public static final short MINOR_1_5 = 0;
87  
88    /** Major version number of class files for Java 1.6.
89     *  @see #MINOR_1_6
90     *  */
91    public static final short MAJOR_1_6 = 50;
92  
93    /** Minor version number of class files for Java 1.6.
94     *  @see #MAJOR_1_6
95     *  */
96    public static final short MINOR_1_6 = 0;
97  
98    /** Major version number of class files for Java 1.7.
99     *  @see #MINOR_1_7
100    *  */
101   public static final short MAJOR_1_7 = 51;
102 
103   /** Minor version number of class files for Java 1.7.
104    *  @see #MAJOR_1_7
105    *  */
106   public static final short MINOR_1_7 = 0;
107 
108   /** Major version number of class files for Java 1.8.
109    *  @see #MINOR_1_8
110    *  */
111   public static final short MAJOR_1_8 = 52;
112 
113   /** Minor version number of class files for Java 1.8.
114    *  @see #MAJOR_1_8
115    *  */
116   public static final short MINOR_1_8 = 0;
117 
118   /** Major version number of class files for Java 9.
119    *  @see #MINOR_9
120    *  */
121   public static final short MAJOR_9 = 53;
122 
123   /** Minor version number of class files for Java 9.
124    *  @see #MAJOR_9
125    *  */
126   public static final short MINOR_9 = 0;
127 
128   /**
129    * @deprecated Use {@link #MAJOR_9} instead
130    */
131   @Deprecated
132   public static final short MAJOR_1_9 = MAJOR_9;
133 
134   /**
135    * @deprecated Use {@link #MINOR_9} instead
136    */
137   @Deprecated
138   public static final short MINOR_1_9 = MINOR_9;
139 
140   /** Major version number of class files for Java 10.
141    *  @see #MINOR_10
142    *  */
143   public static final short MAJOR_10 = 54;
144 
145   /** Minor version number of class files for Java 10.
146    *  @see #MAJOR_10
147    *  */
148   public static final short MINOR_10 = 0;
149 
150   /** Major version number of class files for Java 11.
151    *  @see #MINOR_11
152    *  */
153   public static final short MAJOR_11 = 55;
154 
155   /** Minor version number of class files for Java 11.
156    *  @see #MAJOR_11
157    *  */
158   public static final short MINOR_11 = 0;
159 
160   /** Major version number of class files for Java 12.
161    *  @see #MINOR_12
162    *  */
163   public static final short MAJOR_12 = 56;
164 
165   /** Minor version number of class files for Java 12.
166    *  @see #MAJOR_12
167    *  */
168   public static final short MINOR_12 = 0;
169 
170   /** Major version number of class files for Java 13.
171    *  @see #MINOR_13
172    *  */
173   public static final short MAJOR_13 = 57;
174 
175   /** Minor version number of class files for Java 13.
176    *  @see #MAJOR_13
177    *  */
178   public static final short MINOR_13 = 0;
179 
180   /** Major version number of class files for Java 14.
181    *  @see #MINOR_14
182    *  @since 6.4.0
183    *  */
184   public static final short MAJOR_14 = 58;
185 
186   /** Minor version number of class files for Java 14.
187    *  @see #MAJOR_14
188    *  @since 6.4.0
189    *  */
190   public static final short MINOR_14 = 0;
191 
192   /** Default major version number.  Class file is for Java 1.1.
193    *  @see #MAJOR_1_1
194    *  */
195   public static final short MAJOR = MAJOR_1_1;
196 
197   /** Default major version number.  Class file is for Java 1.1.
198    *  @see #MAJOR_1_1
199    *  */
200   public static final short MINOR     = MINOR_1_1;
201 
202   /** Maximum value for an unsigned short.
203    */
204   public static final int MAX_SHORT = 65535; // 2^16 - 1
205 
206   /** Maximum value for an unsigned byte.
207    */
208   public static final int MAX_BYTE  = 255; // 2^8 - 1
209 
210   /** One of the access flags for fields, methods, or classes.
211    *
212    *  @see <a href="https://docs.oracle.com/javase/specs/jvms/se9/html/jvms-4.html#jvms-4.1-200-E.1">
213    *  Flag definitions for Classes in the Java Virtual Machine Specification (Java SE 9 Edition).</a>
214    *  @see <a href="https://docs.oracle.com/javase/specs/jvms/se9/html/jvms-4.html#jvms-4.5">
215    *  Flag definitions for Fields in the Java Virtual Machine Specification (Java SE 9 Edition).</a>
216    *  @see <a href="https://docs.oracle.com/javase/specs/jvms/se9/html/jvms-4.html#jvms-4.6">
217    *  Flag definitions for Methods in the Java Virtual Machine Specification (Java SE 9 Edition).</a>
218    *  @see <a href="https://docs.oracle.com/javase/specs/jvms/se9/html/jvms-4.html#jvms-4.7.6-300-D.1-D.1">
219    *  Flag definitions for Inner Classes in the Java Virtual Machine Specification (Java SE 9 Edition).</a>
220    */
221   public static final short ACC_PUBLIC       = 0x0001;
222 
223   /** One of the access flags for fields, methods, or classes.
224    *  @see #ACC_PUBLIC
225    */
226   public static final short ACC_PRIVATE      = 0x0002;
227 
228   /** One of the access flags for fields, methods, or classes.
229    *  @see #ACC_PUBLIC
230    */
231   public static final short ACC_PROTECTED    = 0x0004;
232 
233   /** One of the access flags for fields, methods, or classes.
234    *  @see #ACC_PUBLIC
235    */
236   public static final short ACC_STATIC       = 0x0008;
237 
238   /** One of the access flags for fields, methods, or classes.
239    *  @see #ACC_PUBLIC
240    */
241   public static final short ACC_FINAL        = 0x0010;
242 
243   /** One of the access flags for the Module attribute.
244    *  @see #ACC_PUBLIC
245    */
246   public static final short ACC_OPEN         = 0x0020;
247 
248   /** One of the access flags for classes.
249    *  @see #ACC_PUBLIC
250    */
251   public static final short ACC_SUPER        = 0x0020;
252 
253   /** One of the access flags for methods.
254    *  @see #ACC_PUBLIC
255    */
256   public static final short ACC_SYNCHRONIZED = 0x0020;
257 
258   /** One of the access flags for the Module attribute.
259    *  @see #ACC_PUBLIC
260    */
261   public static final short ACC_TRANSITIVE   = 0x0020;
262 
263   /** One of the access flags for methods.
264    *  @see #ACC_PUBLIC
265    */
266   public static final short ACC_BRIDGE       = 0x0040;
267 
268   /** One of the access flags for the Module attribute.
269    *  @see #ACC_PUBLIC
270    */
271   public static final short ACC_STATIC_PHASE = 0x0040;
272 
273   /** One of the access flags for fields.
274    *  @see #ACC_PUBLIC
275    */
276   public static final short ACC_VOLATILE     = 0x0040;
277 
278   /** One of the access flags for fields.
279    *  @see #ACC_PUBLIC
280    */
281   public static final short ACC_TRANSIENT    = 0x0080;
282 
283   /** One of the access flags for methods.
284    *  @see #ACC_PUBLIC
285    */
286   public static final short ACC_VARARGS      = 0x0080;
287 
288   /** One of the access flags for methods.
289    *  @see #ACC_PUBLIC
290    */
291   public static final short ACC_NATIVE       = 0x0100;
292 
293   /** One of the access flags for classes.
294    *  @see #ACC_PUBLIC
295    */
296   public static final short ACC_INTERFACE    = 0x0200;
297 
298   /** One of the access flags for methods or classes.
299    *  @see #ACC_PUBLIC
300    */
301   public static final short ACC_ABSTRACT     = 0x0400;
302 
303   /** One of the access flags for methods.
304    *  @see #ACC_PUBLIC
305    */
306   public static final short ACC_STRICT       = 0x0800;
307 
308   /** One of the access flags for fields, methods, classes, MethodParameter attribute, or Module attribute.
309    *  @see #ACC_PUBLIC
310    */
311   public static final short ACC_SYNTHETIC    = 0x1000;
312 
313   /** One of the access flags for classes.
314    *  @see #ACC_PUBLIC
315    */
316   public static final short ACC_ANNOTATION   = 0x2000;
317 
318   /** One of the access flags for fields or classes.
319    *  @see #ACC_PUBLIC
320    */
321   public static final short ACC_ENUM         = 0x4000;
322 
323   // Applies to classes compiled by new compilers only
324   /** One of the access flags for MethodParameter or Module attributes.
325    *  @see #ACC_PUBLIC
326    */
327   public static final short ACC_MANDATED     = (short) 0x8000;
328 
329   /** One of the access flags for classes.
330    *  @see #ACC_PUBLIC
331    */
332   public static final short ACC_MODULE       = (short) 0x8000;
333 
334   /** One of the access flags for fields, methods, or classes.
335    *  @see #ACC_PUBLIC
336    *  @deprecated Use {@link #MAX_ACC_FLAG_I}
337    */
338   @Deprecated
339   public static final short MAX_ACC_FLAG     = ACC_ENUM;
340 
341   /** One of the access flags for fields, methods, or classes.
342    * ACC_MODULE is negative as a short.
343    * @see #ACC_PUBLIC
344    * @since 6.4.0
345    */
346   public static final int MAX_ACC_FLAG_I = 0x8000; // ACC_MODULE is negative as a short
347 
348   // Note that do to overloading:
349   // 'synchronized' is for methods, might be 'open' (if Module), 'super' (if class), or 'transitive' (if Module).
350   // 'volatile'     is for fields,  might be 'bridge' (if method) or 'static_phase' (if Module)
351   // 'transient'    is for fields,  might be 'varargs' (if method)
352   // 'module'       is for classes, might be 'mandated' (if Module or MethodParameters)
353   /**
354    * The names of the access flags.
355    */
356   private static final String[] ACCESS_NAMES = {
357     "public", "private", "protected", "static", "final", "synchronized",
358     "volatile", "transient", "native", "interface", "abstract", "strictfp",
359     "synthetic", "annotation", "enum", "module"
360   };
361 
362   /** @since 6.0 */
363   public static final int ACCESS_NAMES_LENGTH = ACCESS_NAMES.length;
364 
365   /**
366    * @param index
367    * @return the ACCESS_NAMES entry at the given index
368    * @since 6.0
369    */
370   public static String getAccessName(final int index) {
371       return ACCESS_NAMES[index];
372   }
373 
374   /*
375    * The description of the constant pool is at:
376    * http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4
377    * References below are to the individual sections
378    */
379 
380   /**
381    * Marks a constant pool entry as type UTF-8.
382    * @see  <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.7">
383    * The Constant Pool in The Java Virtual Machine Specification</a>
384    */
385   public static final byte CONSTANT_Utf8               = 1;
386 
387   /**
388    * Marks a constant pool entry as type Integer.
389    * @see  <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.4">
390    * The Constant Pool in The Java Virtual Machine Specification</a>
391    */
392   public static final byte CONSTANT_Integer            = 3;
393 
394   /**
395    * Marks a constant pool entry as type Float.
396    * @see  <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.4">
397    * The Constant Pool in The Java Virtual Machine Specification</a>
398    */
399   public static final byte CONSTANT_Float              = 4;
400 
401   /**
402    * Marks a constant pool entry as type Long.
403    * @see  <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.5">
404    * The Constant Pool in The Java Virtual Machine Specification</a>
405    */
406   public static final byte CONSTANT_Long               = 5;
407 
408   /**
409    * Marks a constant pool entry as type Double.
410    * @see  <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.5">
411    * The Constant Pool in The Java Virtual Machine Specification</a>
412    */
413   public static final byte CONSTANT_Double             = 6;
414 
415   /**
416    * Marks a constant pool entry as a Class
417    * @see  <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.1">
418    * The Constant Pool in The Java Virtual Machine Specification</a>
419    */
420   public static final byte CONSTANT_Class              = 7;
421 
422   /**
423    * Marks a constant pool entry as a Field Reference.
424    * @see  <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.2">
425    * The Constant Pool in The Java Virtual Machine Specification</a>
426    */
427   public static final byte CONSTANT_Fieldref           = 9;
428 
429   /**
430    * Marks a constant pool entry as type String
431    * @see  <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.3">
432    * The Constant Pool in The Java Virtual Machine Specification</a>
433    */
434   public static final byte CONSTANT_String             = 8;
435 
436   /** Marks a constant pool entry as a Method Reference.
437    * @see  <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.2">
438    * The Constant Pool in The Java Virtual Machine Specification</a> */
439   public static final byte CONSTANT_Methodref          = 10;
440 
441   /**
442    * Marks a constant pool entry as an Interface Method Reference.
443    * @see  <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.2">
444    * The Constant Pool in The Java Virtual Machine Specification</a>
445    */
446   public static final byte CONSTANT_InterfaceMethodref = 11;
447 
448   /** Marks a constant pool entry as a name and type.
449    * @see  <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.6">
450    * The Constant Pool in The Java Virtual Machine Specification</a> */
451   public static final byte CONSTANT_NameAndType        = 12;
452 
453   /**
454    * Marks a constant pool entry as a Method Handle.
455    * @see  <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.8">
456    * The Constant Pool in The Java Virtual Machine Specification</a>
457    */
458   public static final byte CONSTANT_MethodHandle       = 15;
459 
460   /**
461    * Marks a constant pool entry as a Method Type.
462    * @see  <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.9">
463    * The Constant Pool in The Java Virtual Machine Specification</a>
464    */
465   public static final byte CONSTANT_MethodType         = 16;
466 
467   /**
468    * Marks a constant pool entry as dynamically computed.
469    * @see  <a href="https://bugs.openjdk.java.net/secure/attachment/74618/constant-dynamic.html">
470    * Change request for JEP 309</a>
471    * @since 6.3
472    */
473   public static final byte CONSTANT_Dynamic            = 17;
474 
475   /**
476    * Marks a constant pool entry as an Invoke Dynamic
477    * @see  <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.10">
478    * The Constant Pool in The Java Virtual Machine Specification</a>
479    */
480   public static final byte CONSTANT_InvokeDynamic      = 18;
481 
482   /**
483    * Marks a constant pool entry as a Module Reference.
484    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se9/html/jvms-4.html#jvms-4.4.11">
485    * The Constant Pool in The Java Virtual Machine Specification</a>
486    * @since 6.1
487    */
488   public static final byte CONSTANT_Module             = 19;
489 
490   /**
491    * Marks a constant pool entry as a Package Reference.
492    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se9/html/jvms-4.html#jvms-4.4.12">
493    * The Constant Pool in The Java Virtual Machine Specification</a>
494    * @since 6.1
495    */
496   public static final byte CONSTANT_Package            = 20;
497 
498   /**
499    * The names of the types of entries in a constant pool.
500    * Use getConstantName instead
501    */
502   private static final String[] CONSTANT_NAMES = {
503     "", "CONSTANT_Utf8", "", "CONSTANT_Integer",
504     "CONSTANT_Float", "CONSTANT_Long", "CONSTANT_Double",
505     "CONSTANT_Class", "CONSTANT_String", "CONSTANT_Fieldref",
506     "CONSTANT_Methodref", "CONSTANT_InterfaceMethodref",
507     "CONSTANT_NameAndType", "", "", "CONSTANT_MethodHandle",
508     "CONSTANT_MethodType", "CONSTANT_Dynamic", "CONSTANT_InvokeDynamic",
509     "CONSTANT_Module", "CONSTANT_Package"};
510 
511   /**
512    *
513    * @param index
514    * @return the CONSTANT_NAMES entry at the given index
515    * @since 6.0
516    */
517   public static String getConstantName(final int index) {
518       return CONSTANT_NAMES[index];
519   }
520 
521   /** The name of the static initializer, also called &quot;class
522    *  initialization method&quot; or &quot;interface initialization
523    *   method&quot;. This is &quot;&lt;clinit&gt;&quot;.
524    */
525   public static final String STATIC_INITIALIZER_NAME = "<clinit>";
526 
527   /** The name of every constructor method in a class, also called
528    * &quot;instance initialization method&quot;. This is &quot;&lt;init&gt;&quot;.
529    */
530   public static final String CONSTRUCTOR_NAME = "<init>";
531 
532   /**
533    * The names of the interfaces implemented by arrays
534    */
535   private static final String[] INTERFACES_IMPLEMENTED_BY_ARRAYS = {"java.lang.Cloneable", "java.io.Serializable"};
536 
537   /**
538    * @since 6.0
539    */
540   public static Iterable<String> getInterfacesImplementedByArrays() {
541       return Collections.unmodifiableList(Arrays.asList(INTERFACES_IMPLEMENTED_BY_ARRAYS));
542   }
543 
544   /**
545    * Maximum Constant Pool entries.
546    * One of the limitations of the Java Virtual Machine.
547    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.11-100-A">
548    * The Java Virtual Machine Specification, Java SE 8 Edition, page 330, chapter 4.11.</a>
549    */
550   public static final int MAX_CP_ENTRIES     = 65535;
551 
552   /**
553    * Maximum code size (plus one; the code size must be LESS than this)
554    * One of the limitations of the Java Virtual Machine.
555    * Note vmspec2 page 152 ("Limitations") says:
556    * "The amount of code per non-native, non-abstract method is limited to 65536 bytes by
557    * the sizes of the indices in the exception_table of the Code attribute (§4.7.3),
558    * in the LineNumberTable attribute (§4.7.8), and in the LocalVariableTable attribute (§4.7.9)."
559    * However this should be taken as an upper limit rather than the defined maximum.
560    * On page 134 (4.8.1 Static Constants) of the same spec, it says:
561    * "The value of the code_length item must be less than 65536."
562    * The entry in the Limitations section has been removed from later versions of the spec;
563    * it is not present in the Java SE 8 edition.
564    *
565    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.7.3-300-E">
566    * The Java Virtual Machine Specification, Java SE 8 Edition, page 104, chapter 4.7.</a>
567    */
568   public static final int MAX_CODE_SIZE      = 65536; //bytes
569 
570   /**
571    * The maximum number of dimensions in an array ({@value}).
572    * One of the limitations of the Java Virtual Machine.
573    *
574    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.3.2-150">
575    * Field Descriptors in The Java Virtual Machine Specification</a>
576    */
577   public static final int MAX_ARRAY_DIMENSIONS = 255;
578 
579   /** Java VM opcode.
580    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.nop">
581    * Opcode definitions in The Java Virtual Machine Specification</a> */
582   public static final short NOP              = 0;
583 
584   /** Java VM opcode.
585    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.aconst_null">
586    * Opcode definitions in The Java Virtual Machine Specification</a> */
587   public static final short ACONST_NULL      = 1;
588 
589   /** Java VM opcode.
590    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iconst_i">
591    * Opcode definitions in The Java Virtual Machine Specification</a> */
592   public static final short ICONST_M1        = 2;
593 
594   /** Java VM opcode.
595    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iconst_i">
596    * Opcode definitions in The Java Virtual Machine Specification</a> */
597   public static final short ICONST_0         = 3;
598 
599   /** Java VM opcode.
600    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iconst_i">
601    * Opcode definitions in The Java Virtual Machine Specification</a> */
602   public static final short ICONST_1         = 4;
603 
604   /** Java VM opcode.
605    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iconst_i">
606    * Opcode definitions in The Java Virtual Machine Specification</a> */
607   public static final short ICONST_2         = 5;
608 
609   /** Java VM opcode.
610    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iconst_i">
611    * Opcode definitions in The Java Virtual Machine Specification</a> */
612   public static final short ICONST_3         = 6;
613 
614   /** Java VM opcode.
615    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iconst_i">
616    * Opcode definitions in The Java Virtual Machine Specification</a> */
617   public static final short ICONST_4         = 7;
618 
619   /** Java VM opcode.
620    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iconst_i">
621    * Opcode definitions in The Java Virtual Machine Specification</a> */
622   public static final short ICONST_5         = 8;
623 
624   /** Java VM opcode.
625    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lconst_l">
626    * Opcode definitions in The Java Virtual Machine Specification</a> */
627   public static final short LCONST_0         = 9;
628 
629   /** Java VM opcode.
630    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lconst_l">
631    * Opcode definitions in The Java Virtual Machine Specification</a> */
632   public static final short LCONST_1         = 10;
633 
634   /** Java VM opcode.
635    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fconst_f">
636    * Opcode definitions in The Java Virtual Machine Specification</a> */
637   public static final short FCONST_0         = 11;
638 
639   /** Java VM opcode.
640    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fconst_f">
641    * Opcode definitions in The Java Virtual Machine Specification</a> */
642   public static final short FCONST_1         = 12;
643 
644   /** Java VM opcode.
645    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fconst_f">
646    * Opcode definitions in The Java Virtual Machine Specification</a> */
647   public static final short FCONST_2         = 13;
648 
649   /** Java VM opcode.
650    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dconst_d">
651    * Opcode definitions in The Java Virtual Machine Specification</a> */
652   public static final short DCONST_0         = 14;
653 
654   /** Java VM opcode.
655    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dconst_d">
656    * Opcode definitions in The Java Virtual Machine Specification</a> */
657   public static final short DCONST_1         = 15;
658 
659   /** Java VM opcode.
660    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.bipush">
661    * Opcode definitions in The Java Virtual Machine Specification</a> */
662   public static final short BIPUSH           = 16;
663 
664   /** Java VM opcode.
665    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.sipush">
666    * Opcode definitions in The Java Virtual Machine Specification</a> */
667   public static final short SIPUSH           = 17;
668 
669   /** Java VM opcode.
670    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ldc">
671    * Opcode definitions in The Java Virtual Machine Specification</a> */
672   public static final short LDC              = 18;
673 
674   /** Java VM opcode.
675    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ldc_w">
676    * Opcode definitions in The Java Virtual Machine Specification</a> */
677   public static final short LDC_W            = 19;
678 
679   /** Java VM opcode.
680    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ldc2_w">
681    * Opcode definitions in The Java Virtual Machine Specification</a> */
682   public static final short LDC2_W           = 20;
683 
684   /** Java VM opcode.
685    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iload">
686    * Opcode definitions in The Java Virtual Machine Specification</a> */
687   public static final short ILOAD            = 21;
688 
689   /** Java VM opcode.
690    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lload">
691    * Opcode definitions in The Java Virtual Machine Specification</a> */
692   public static final short LLOAD            = 22;
693 
694   /** Java VM opcode.
695    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fload">
696    * Opcode definitions in The Java Virtual Machine Specification</a> */
697   public static final short FLOAD            = 23;
698 
699   /** Java VM opcode.
700    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dload">
701    * Opcode definitions in The Java Virtual Machine Specification</a> */
702   public static final short DLOAD            = 24;
703 
704   /** Java VM opcode.
705    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.aload">
706    * Opcode definitions in The Java Virtual Machine Specification</a> */
707   public static final short ALOAD            = 25;
708 
709   /** Java VM opcode.
710    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iload_n">
711    * Opcode definitions in The Java Virtual Machine Specification</a> */
712   public static final short ILOAD_0          = 26;
713 
714   /** Java VM opcode.
715    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iload_n">
716    * Opcode definitions in The Java Virtual Machine Specification</a> */
717   public static final short ILOAD_1          = 27;
718 
719   /** Java VM opcode.
720    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iload_n">
721    * Opcode definitions in The Java Virtual Machine Specification</a> */
722   public static final short ILOAD_2          = 28;
723 
724   /** Java VM opcode.
725    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iload_n">
726    * Opcode definitions in The Java Virtual Machine Specification</a> */
727   public static final short ILOAD_3          = 29;
728 
729   /** Java VM opcode.
730    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lload_n">
731    * Opcode definitions in The Java Virtual Machine Specification</a> */
732   public static final short LLOAD_0          = 30;
733 
734   /** Java VM opcode.
735    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lload_n">
736    * Opcode definitions in The Java Virtual Machine Specification</a> */
737   public static final short LLOAD_1          = 31;
738 
739   /** Java VM opcode.
740    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lload_n">
741    * Opcode definitions in The Java Virtual Machine Specification</a> */
742   public static final short LLOAD_2          = 32;
743 
744   /** Java VM opcode.
745    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lload_n">
746    * Opcode definitions in The Java Virtual Machine Specification</a> */
747   public static final short LLOAD_3          = 33;
748 
749   /** Java VM opcode.
750    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fload_n">
751    * Opcode definitions in The Java Virtual Machine Specification</a> */
752   public static final short FLOAD_0          = 34;
753 
754   /** Java VM opcode.
755    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fload_n">
756    * Opcode definitions in The Java Virtual Machine Specification</a> */
757   public static final short FLOAD_1          = 35;
758 
759   /** Java VM opcode.
760    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fload_n">
761    * Opcode definitions in The Java Virtual Machine Specification</a> */
762   public static final short FLOAD_2          = 36;
763 
764   /** Java VM opcode.
765    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fload_n">
766    * Opcode definitions in The Java Virtual Machine Specification</a> */
767   public static final short FLOAD_3          = 37;
768 
769   /** Java VM opcode.
770    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dload_n">
771    * Opcode definitions in The Java Virtual Machine Specification</a> */
772   public static final short DLOAD_0          = 38;
773 
774   /** Java VM opcode.
775    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dload_n">
776    * Opcode definitions in The Java Virtual Machine Specification</a> */
777   public static final short DLOAD_1          = 39;
778 
779   /** Java VM opcode.
780    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dload_n">
781    * Opcode definitions in The Java Virtual Machine Specification</a> */
782   public static final short DLOAD_2          = 40;
783 
784   /** Java VM opcode.
785    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dload_n">
786    * Opcode definitions in The Java Virtual Machine Specification</a> */
787   public static final short DLOAD_3          = 41;
788 
789   /** Java VM opcode.
790    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.aload_n">
791    * Opcode definitions in The Java Virtual Machine Specification</a> */
792   public static final short ALOAD_0          = 42;
793 
794   /** Java VM opcode.
795    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.aload_n">
796    * Opcode definitions in The Java Virtual Machine Specification</a> */
797   public static final short ALOAD_1          = 43;
798 
799   /** Java VM opcode.
800    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.aload_n">
801    * Opcode definitions in The Java Virtual Machine Specification</a> */
802   public static final short ALOAD_2          = 44;
803 
804   /** Java VM opcode.
805    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.aload_n">
806    * Opcode definitions in The Java Virtual Machine Specification</a> */
807   public static final short ALOAD_3          = 45;
808 
809   /** Java VM opcode.
810    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iaload">
811    * Opcode definitions in The Java Virtual Machine Specification</a> */
812   public static final short IALOAD           = 46;
813 
814   /** Java VM opcode.
815    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.laload">
816    * Opcode definitions in The Java Virtual Machine Specification</a> */
817   public static final short LALOAD           = 47;
818 
819   /** Java VM opcode.
820    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.faload">
821    * Opcode definitions in The Java Virtual Machine Specification</a> */
822   public static final short FALOAD           = 48;
823 
824   /** Java VM opcode.
825    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.daload">
826    * Opcode definitions in The Java Virtual Machine Specification</a> */
827   public static final short DALOAD           = 49;
828 
829   /** Java VM opcode.
830    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.aaload">
831    * Opcode definitions in The Java Virtual Machine Specification</a> */
832   public static final short AALOAD           = 50;
833 
834   /** Java VM opcode.
835    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.baload">
836    * Opcode definitions in The Java Virtual Machine Specification</a> */
837   public static final short BALOAD           = 51;
838 
839   /** Java VM opcode.
840    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.caload">
841    * Opcode definitions in The Java Virtual Machine Specification</a> */
842   public static final short CALOAD           = 52;
843 
844   /** Java VM opcode.
845    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.saload">
846    * Opcode definitions in The Java Virtual Machine Specification</a> */
847   public static final short SALOAD           = 53;
848 
849   /** Java VM opcode.
850    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.istore">
851    * Opcode definitions in The Java Virtual Machine Specification</a> */
852   public static final short ISTORE           = 54;
853 
854   /** Java VM opcode.
855    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lstore">
856    * Opcode definitions in The Java Virtual Machine Specification</a> */
857   public static final short LSTORE           = 55;
858 
859   /** Java VM opcode.
860    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fstore">
861    * Opcode definitions in The Java Virtual Machine Specification</a> */
862   public static final short FSTORE           = 56;
863 
864   /** Java VM opcode.
865    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dstore">
866    * Opcode definitions in The Java Virtual Machine Specification</a> */
867   public static final short DSTORE           = 57;
868 
869   /** Java VM opcode.
870    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.astore">
871    * Opcode definitions in The Java Virtual Machine Specification</a> */
872   public static final short ASTORE           = 58;
873 
874   /** Java VM opcode.
875    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.istore_n">
876    * Opcode definitions in The Java Virtual Machine Specification</a> */
877   public static final short ISTORE_0         = 59;
878 
879   /** Java VM opcode.
880    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.istore_n">
881    * Opcode definitions in The Java Virtual Machine Specification</a> */
882   public static final short ISTORE_1         = 60;
883 
884   /** Java VM opcode.
885    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.istore_n">
886    * Opcode definitions in The Java Virtual Machine Specification</a> */
887   public static final short ISTORE_2         = 61;
888 
889   /** Java VM opcode.
890    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.istore_n">
891    * Opcode definitions in The Java Virtual Machine Specification</a> */
892   public static final short ISTORE_3         = 62;
893 
894   /** Java VM opcode.
895    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lstore_n">
896    * Opcode definitions in The Java Virtual Machine Specification</a> */
897   public static final short LSTORE_0         = 63;
898 
899   /** Java VM opcode.
900    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lstore_n">
901    * Opcode definitions in The Java Virtual Machine Specification</a> */
902   public static final short LSTORE_1         = 64;
903 
904   /** Java VM opcode.
905    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lstore_n">
906    * Opcode definitions in The Java Virtual Machine Specification</a> */
907   public static final short LSTORE_2         = 65;
908 
909   /** Java VM opcode.
910    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lstore_n">
911    * Opcode definitions in The Java Virtual Machine Specification</a> */
912   public static final short LSTORE_3         = 66;
913 
914   /** Java VM opcode.
915    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fstore_n">
916    * Opcode definitions in The Java Virtual Machine Specification</a> */
917   public static final short FSTORE_0         = 67;
918 
919   /** Java VM opcode.
920    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fstore_n">
921    * Opcode definitions in The Java Virtual Machine Specification</a> */
922   public static final short FSTORE_1         = 68;
923 
924   /** Java VM opcode.
925    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fstore_n">
926    * Opcode definitions in The Java Virtual Machine Specification</a> */
927   public static final short FSTORE_2         = 69;
928 
929   /** Java VM opcode.
930    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fstore_n">
931    * Opcode definitions in The Java Virtual Machine Specification</a> */
932   public static final short FSTORE_3         = 70;
933 
934   /** Java VM opcode.
935    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dstore_n">
936    * Opcode definitions in The Java Virtual Machine Specification</a> */
937   public static final short DSTORE_0         = 71;
938 
939   /** Java VM opcode.
940    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dstore_n">
941    * Opcode definitions in The Java Virtual Machine Specification</a> */
942   public static final short DSTORE_1         = 72;
943 
944   /** Java VM opcode.
945    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dstore_n">
946    * Opcode definitions in The Java Virtual Machine Specification</a> */
947   public static final short DSTORE_2         = 73;
948 
949   /** Java VM opcode.
950    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dstore_n">
951    * Opcode definitions in The Java Virtual Machine Specification</a> */
952   public static final short DSTORE_3         = 74;
953 
954   /** Java VM opcode.
955    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.astore_n">
956    * Opcode definitions in The Java Virtual Machine Specification</a> */
957   public static final short ASTORE_0         = 75;
958 
959   /** Java VM opcode.
960    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.astore_n">
961    * Opcode definitions in The Java Virtual Machine Specification</a> */
962   public static final short ASTORE_1         = 76;
963 
964   /** Java VM opcode.
965    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.astore_n">
966    * Opcode definitions in The Java Virtual Machine Specification</a> */
967   public static final short ASTORE_2         = 77;
968 
969   /** Java VM opcode.
970    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.astore_n">
971    * Opcode definitions in The Java Virtual Machine Specification</a> */
972   public static final short ASTORE_3         = 78;
973 
974   /** Java VM opcode.
975    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iastore">
976    * Opcode definitions in The Java Virtual Machine Specification</a> */
977   public static final short IASTORE          = 79;
978 
979   /** Java VM opcode.
980    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lastore">
981    * Opcode definitions in The Java Virtual Machine Specification</a> */
982   public static final short LASTORE          = 80;
983 
984   /** Java VM opcode.
985    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fastore">
986    * Opcode definitions in The Java Virtual Machine Specification</a> */
987   public static final short FASTORE          = 81;
988 
989   /** Java VM opcode.
990    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dastore">
991    * Opcode definitions in The Java Virtual Machine Specification</a> */
992   public static final short DASTORE          = 82;
993 
994   /** Java VM opcode.
995    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.aastore">
996    * Opcode definitions in The Java Virtual Machine Specification</a> */
997   public static final short AASTORE          = 83;
998 
999   /** Java VM opcode.
1000    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.bastore">
1001    * Opcode definitions in The Java Virtual Machine Specification</a> */
1002   public static final short BASTORE          = 84;
1003 
1004   /** Java VM opcode.
1005    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.castore">
1006    * Opcode definitions in The Java Virtual Machine Specification</a> */
1007   public static final short CASTORE          = 85;
1008 
1009   /** Java VM opcode.
1010    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.sastore">
1011    * Opcode definitions in The Java Virtual Machine Specification</a> */
1012   public static final short SASTORE          = 86;
1013 
1014   /** Java VM opcode.
1015    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.pop">
1016    * Opcode definitions in The Java Virtual Machine Specification</a> */
1017   public static final short POP              = 87;
1018 
1019   /** Java VM opcode.
1020    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.pop2">
1021    * Opcode definitions in The Java Virtual Machine Specification</a> */
1022   public static final short POP2             = 88;
1023 
1024   /** Java VM opcode.
1025    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dup">
1026    * Opcode definitions in The Java Virtual Machine Specification</a> */
1027   public static final short DUP              = 89;
1028 
1029   /** Java VM opcode.
1030    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dup_x1">
1031    * Opcode definitions in The Java Virtual Machine Specification</a> */
1032   public static final short DUP_X1           = 90;
1033 
1034   /** Java VM opcode.
1035    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dup_x2">
1036    * Opcode definitions in The Java Virtual Machine Specification</a> */
1037   public static final short DUP_X2           = 91;
1038 
1039   /** Java VM opcode.
1040    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dup2">
1041    * Opcode definitions in The Java Virtual Machine Specification</a> */
1042   public static final short DUP2             = 92;
1043 
1044   /** Java VM opcode.
1045    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dup2_x1">
1046    * Opcode definitions in The Java Virtual Machine Specification</a> */
1047   public static final short DUP2_X1          = 93;
1048 
1049   /** Java VM opcode.
1050    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dup2_x2">
1051    * Opcode definitions in The Java Virtual Machine Specification</a> */
1052   public static final short DUP2_X2          = 94;
1053 
1054   /** Java VM opcode.
1055    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.swap">
1056    * Opcode definitions in The Java Virtual Machine Specification</a> */
1057   public static final short SWAP             = 95;
1058 
1059   /** Java VM opcode.
1060    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iadd">
1061    * Opcode definitions in The Java Virtual Machine Specification</a> */
1062   public static final short IADD             = 96;
1063 
1064   /** Java VM opcode.
1065    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ladd">
1066    * Opcode definitions in The Java Virtual Machine Specification</a> */
1067   public static final short LADD             = 97;
1068 
1069   /** Java VM opcode.
1070    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fadd">
1071    * Opcode definitions in The Java Virtual Machine Specification</a> */
1072   public static final short FADD             = 98;
1073 
1074   /** Java VM opcode.
1075    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dadd">
1076    * Opcode definitions in The Java Virtual Machine Specification</a> */
1077   public static final short DADD             = 99;
1078 
1079   /** Java VM opcode.
1080    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.isub">
1081    * Opcode definitions in The Java Virtual Machine Specification</a> */
1082   public static final short ISUB             = 100;
1083 
1084   /** Java VM opcode.
1085    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lsub">
1086    * Opcode definitions in The Java Virtual Machine Specification</a> */
1087   public static final short LSUB             = 101;
1088 
1089   /** Java VM opcode.
1090    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fsub">
1091    * Opcode definitions in The Java Virtual Machine Specification</a> */
1092   public static final short FSUB             = 102;
1093 
1094   /** Java VM opcode.
1095    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dsub">
1096    * Opcode definitions in The Java Virtual Machine Specification</a> */
1097   public static final short DSUB             = 103;
1098 
1099   /** Java VM opcode.
1100    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.imul">
1101    * Opcode definitions in The Java Virtual Machine Specification</a> */
1102   public static final short IMUL             = 104;
1103 
1104   /** Java VM opcode.
1105    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lmul">
1106    * Opcode definitions in The Java Virtual Machine Specification</a> */
1107   public static final short LMUL             = 105;
1108 
1109   /** Java VM opcode.
1110    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fmul">
1111    * Opcode definitions in The Java Virtual Machine Specification</a> */
1112   public static final short FMUL             = 106;
1113 
1114   /** Java VM opcode.
1115    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dmul">
1116    * Opcode definitions in The Java Virtual Machine Specification</a> */
1117   public static final short DMUL             = 107;
1118 
1119   /** Java VM opcode.
1120    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.idiv">
1121    * Opcode definitions in The Java Virtual Machine Specification</a> */
1122   public static final short IDIV             = 108;
1123 
1124   /** Java VM opcode.
1125    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ldiv">
1126    * Opcode definitions in The Java Virtual Machine Specification</a> */
1127   public static final short LDIV             = 109;
1128 
1129   /** Java VM opcode.
1130    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fdiv">
1131    * Opcode definitions in The Java Virtual Machine Specification</a> */
1132   public static final short FDIV             = 110;
1133 
1134   /** Java VM opcode.
1135    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ddiv">
1136    * Opcode definitions in The Java Virtual Machine Specification</a> */
1137   public static final short DDIV             = 111;
1138 
1139   /** Java VM opcode.
1140    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.irem">
1141    * Opcode definitions in The Java Virtual Machine Specification</a> */
1142   public static final short IREM             = 112;
1143 
1144   /** Java VM opcode.
1145    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lrem">
1146    * Opcode definitions in The Java Virtual Machine Specification</a> */
1147   public static final short LREM             = 113;
1148 
1149   /** Java VM opcode.
1150    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.frem">
1151    * Opcode definitions in The Java Virtual Machine Specification</a> */
1152   public static final short FREM             = 114;
1153 
1154   /** Java VM opcode.
1155    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.drem">
1156    * Opcode definitions in The Java Virtual Machine Specification</a> */
1157   public static final short DREM             = 115;
1158 
1159   /** Java VM opcode.
1160    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ineg">
1161    * Opcode definitions in The Java Virtual Machine Specification</a> */
1162   public static final short INEG             = 116;
1163 
1164   /** Java VM opcode.
1165    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lneg">
1166    * Opcode definitions in The Java Virtual Machine Specification</a> */
1167   public static final short LNEG             = 117;
1168 
1169   /** Java VM opcode.
1170    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fneg">
1171    * Opcode definitions in The Java Virtual Machine Specification</a> */
1172   public static final short FNEG             = 118;
1173 
1174   /** Java VM opcode.
1175    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dneg">
1176    * Opcode definitions in The Java Virtual Machine Specification</a> */
1177   public static final short DNEG             = 119;
1178 
1179   /** Java VM opcode.
1180    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ishl">
1181    * Opcode definitions in The Java Virtual Machine Specification</a> */
1182   public static final short ISHL             = 120;
1183 
1184   /** Java VM opcode.
1185    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lshl">
1186    * Opcode definitions in The Java Virtual Machine Specification</a> */
1187   public static final short LSHL             = 121;
1188 
1189   /** Java VM opcode.
1190    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ishr">
1191    * Opcode definitions in The Java Virtual Machine Specification</a> */
1192   public static final short ISHR             = 122;
1193 
1194   /** Java VM opcode.
1195    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lshr">
1196    * Opcode definitions in The Java Virtual Machine Specification</a> */
1197   public static final short LSHR             = 123;
1198 
1199   /** Java VM opcode.
1200    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iushr">
1201    * Opcode definitions in The Java Virtual Machine Specification</a> */
1202   public static final short IUSHR            = 124;
1203 
1204   /** Java VM opcode.
1205    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lushr">
1206    * Opcode definitions in The Java Virtual Machine Specification</a> */
1207   public static final short LUSHR            = 125;
1208 
1209   /** Java VM opcode.
1210    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iand">
1211    * Opcode definitions in The Java Virtual Machine Specification</a> */
1212   public static final short IAND             = 126;
1213 
1214   /** Java VM opcode.
1215    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.land">
1216    * Opcode definitions in The Java Virtual Machine Specification</a> */
1217   public static final short LAND             = 127;
1218 
1219   /** Java VM opcode.
1220    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ior">
1221    * Opcode definitions in The Java Virtual Machine Specification</a> */
1222   public static final short IOR              = 128;
1223 
1224   /** Java VM opcode.
1225    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lor">
1226    * Opcode definitions in The Java Virtual Machine Specification</a> */
1227   public static final short LOR              = 129;
1228 
1229   /** Java VM opcode.
1230    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ixor">
1231    * Opcode definitions in The Java Virtual Machine Specification</a> */
1232   public static final short IXOR             = 130;
1233 
1234   /** Java VM opcode.
1235    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lxor">
1236    * Opcode definitions in The Java Virtual Machine Specification</a> */
1237   public static final short LXOR             = 131;
1238 
1239   /** Java VM opcode.
1240    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iinc">
1241    * Opcode definitions in The Java Virtual Machine Specification</a> */
1242   public static final short IINC             = 132;
1243 
1244   /** Java VM opcode.
1245    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.i2l">
1246    * Opcode definitions in The Java Virtual Machine Specification</a> */
1247   public static final short I2L              = 133;
1248 
1249   /** Java VM opcode.
1250    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.i2f">
1251    * Opcode definitions in The Java Virtual Machine Specification</a> */
1252   public static final short I2F              = 134;
1253 
1254   /** Java VM opcode.
1255    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.i2d">
1256    * Opcode definitions in The Java Virtual Machine Specification</a> */
1257   public static final short I2D              = 135;
1258 
1259   /** Java VM opcode.
1260    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.l2i">
1261    * Opcode definitions in The Java Virtual Machine Specification</a> */
1262   public static final short L2I              = 136;
1263 
1264   /** Java VM opcode.
1265    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.l2f">
1266    * Opcode definitions in The Java Virtual Machine Specification</a> */
1267   public static final short L2F              = 137;
1268 
1269   /** Java VM opcode.
1270    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.l2d">
1271    * Opcode definitions in The Java Virtual Machine Specification</a> */
1272   public static final short L2D              = 138;
1273 
1274   /** Java VM opcode.
1275    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.f2i">
1276    * Opcode definitions in The Java Virtual Machine Specification</a> */
1277   public static final short F2I              = 139;
1278 
1279   /** Java VM opcode.
1280    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.f2l">
1281    * Opcode definitions in The Java Virtual Machine Specification</a> */
1282   public static final short F2L              = 140;
1283 
1284   /** Java VM opcode.
1285    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.f2d">
1286    * Opcode definitions in The Java Virtual Machine Specification</a> */
1287   public static final short F2D              = 141;
1288 
1289   /** Java VM opcode.
1290    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.d2i">
1291    * Opcode definitions in The Java Virtual Machine Specification</a> */
1292   public static final short D2I              = 142;
1293 
1294   /** Java VM opcode.
1295    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.d2l">
1296    * Opcode definitions in The Java Virtual Machine Specification</a> */
1297   public static final short D2L              = 143;
1298 
1299   /** Java VM opcode.
1300    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.d2f">
1301    * Opcode definitions in The Java Virtual Machine Specification</a> */
1302   public static final short D2F              = 144;
1303 
1304   /** Java VM opcode.
1305    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.i2b">
1306    * Opcode definitions in The Java Virtual Machine Specification</a> */
1307   public static final short I2B              = 145;
1308 
1309   /** Java VM opcode.
1310    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
1311    * Opcode definitions in The Java Virtual Machine Specification</a> */
1312   public static final short INT2BYTE         = 145; // Old notation
1313 
1314   /** Java VM opcode.
1315    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.i2c">
1316    * Opcode definitions in The Java Virtual Machine Specification</a> */
1317   public static final short I2C              = 146;
1318 
1319   /** Java VM opcode.
1320    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
1321    * Opcode definitions in The Java Virtual Machine Specification</a> */
1322   public static final short INT2CHAR         = 146; // Old notation
1323 
1324   /** Java VM opcode.
1325    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.i2s">
1326    * Opcode definitions in The Java Virtual Machine Specification</a> */
1327   public static final short I2S              = 147;
1328 
1329   /** Java VM opcode.
1330    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
1331    * Opcode definitions in The Java Virtual Machine Specification</a> */
1332   public static final short INT2SHORT        = 147; // Old notation
1333 
1334   /** Java VM opcode.
1335    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lcmp">
1336    * Opcode definitions in The Java Virtual Machine Specification</a> */
1337   public static final short LCMP             = 148;
1338 
1339   /** Java VM opcode.
1340    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fcmpl">
1341    * Opcode definitions in The Java Virtual Machine Specification</a> */
1342   public static final short FCMPL            = 149;
1343 
1344   /** Java VM opcode.
1345    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fcmpg">
1346    * Opcode definitions in The Java Virtual Machine Specification</a> */
1347   public static final short FCMPG            = 150;
1348 
1349   /** Java VM opcode.
1350    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dcmpl">
1351    * Opcode definitions in The Java Virtual Machine Specification</a> */
1352   public static final short DCMPL            = 151;
1353 
1354   /** Java VM opcode.
1355    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dcmpg">
1356    * Opcode definitions in The Java Virtual Machine Specification</a> */
1357   public static final short DCMPG            = 152;
1358 
1359   /** Java VM opcode.
1360    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ifeq">
1361    * Opcode definitions in The Java Virtual Machine Specification</a> */
1362   public static final short IFEQ             = 153;
1363 
1364   /** Java VM opcode.
1365    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ifne">
1366    * Opcode definitions in The Java Virtual Machine Specification</a> */
1367   public static final short IFNE             = 154;
1368 
1369   /** Java VM opcode.
1370    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iflt">
1371    * Opcode definitions in The Java Virtual Machine Specification</a> */
1372   public static final short IFLT             = 155;
1373 
1374   /** Java VM opcode.
1375    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ifge">
1376    * Opcode definitions in The Java Virtual Machine Specification</a> */
1377   public static final short IFGE             = 156;
1378 
1379   /** Java VM opcode.
1380    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ifgt">
1381    * Opcode definitions in The Java Virtual Machine Specification</a> */
1382   public static final short IFGT             = 157;
1383 
1384   /** Java VM opcode.
1385    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ifle">
1386    * Opcode definitions in The Java Virtual Machine Specification</a> */
1387   public static final short IFLE             = 158;
1388 
1389   /** Java VM opcode.
1390    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.if_icmp_cond">
1391    * Opcode definitions in The Java Virtual Machine Specification</a> */
1392   public static final short IF_ICMPEQ        = 159;
1393 
1394   /** Java VM opcode.
1395    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.if_icmp_cond">
1396    * Opcode definitions in The Java Virtual Machine Specification</a> */
1397   public static final short IF_ICMPNE        = 160;
1398 
1399   /** Java VM opcode.
1400    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.if_icmp_cond">
1401    * Opcode definitions in The Java Virtual Machine Specification</a> */
1402   public static final short IF_ICMPLT        = 161;
1403 
1404   /** Java VM opcode.
1405    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.if_icmp_cond">
1406    * Opcode definitions in The Java Virtual Machine Specification</a> */
1407   public static final short IF_ICMPGE        = 162;
1408 
1409   /** Java VM opcode.
1410    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.if_icmp_cond">
1411    * Opcode definitions in The Java Virtual Machine Specification</a> */
1412   public static final short IF_ICMPGT        = 163;
1413 
1414   /** Java VM opcode.
1415    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.if_icmp_cond">
1416    * Opcode definitions in The Java Virtual Machine Specification</a> */
1417   public static final short IF_ICMPLE        = 164;
1418 
1419   /** Java VM opcode.
1420    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.if_acmp_cond">
1421    * Opcode definitions in The Java Virtual Machine Specification</a> */
1422   public static final short IF_ACMPEQ        = 165;
1423 
1424   /** Java VM opcode.
1425    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.if_acmp_cond">
1426    * Opcode definitions in The Java Virtual Machine Specification</a> */
1427   public static final short IF_ACMPNE        = 166;
1428 
1429   /** Java VM opcode.
1430    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.goto">
1431    * Opcode definitions in The Java Virtual Machine Specification</a> */
1432   public static final short GOTO             = 167;
1433 
1434   /** Java VM opcode.
1435    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.jsr">
1436    * Opcode definitions in The Java Virtual Machine Specification</a> */
1437   public static final short JSR              = 168;
1438 
1439   /** Java VM opcode.
1440    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ret">
1441    * Opcode definitions in The Java Virtual Machine Specification</a> */
1442   public static final short RET              = 169;
1443 
1444   /** Java VM opcode.
1445    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.tableswitch">
1446    * Opcode definitions in The Java Virtual Machine Specification</a> */
1447   public static final short TABLESWITCH      = 170;
1448 
1449   /** Java VM opcode.
1450    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lookupswitch">
1451    * Opcode definitions in The Java Virtual Machine Specification</a> */
1452   public static final short LOOKUPSWITCH     = 171;
1453 
1454   /** Java VM opcode.
1455    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ireturn">
1456    * Opcode definitions in The Java Virtual Machine Specification</a> */
1457   public static final short IRETURN          = 172;
1458 
1459   /** Java VM opcode.
1460    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lreturn">
1461    * Opcode definitions in The Java Virtual Machine Specification</a> */
1462   public static final short LRETURN          = 173;
1463 
1464   /** Java VM opcode.
1465    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.freturn">
1466    * Opcode definitions in The Java Virtual Machine Specification</a> */
1467   public static final short FRETURN          = 174;
1468 
1469   /** Java VM opcode.
1470    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dreturn">
1471    * Opcode definitions in The Java Virtual Machine Specification</a> */
1472   public static final short DRETURN          = 175;
1473 
1474   /** Java VM opcode.
1475    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.areturn">
1476    * Opcode definitions in The Java Virtual Machine Specification</a> */
1477   public static final short ARETURN          = 176;
1478 
1479   /** Java VM opcode.
1480    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.return">
1481    * Opcode definitions in The Java Virtual Machine Specification</a> */
1482   public static final short RETURN           = 177;
1483 
1484   /** Java VM opcode.
1485    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.getstatic">
1486    * Opcode definitions in The Java Virtual Machine Specification</a> */
1487   public static final short GETSTATIC        = 178;
1488 
1489   /** Java VM opcode.
1490    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.putstatic">
1491    * Opcode definitions in The Java Virtual Machine Specification</a> */
1492   public static final short PUTSTATIC        = 179;
1493 
1494   /** Java VM opcode.
1495    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.getfield">
1496    * Opcode definitions in The Java Virtual Machine Specification</a> */
1497   public static final short GETFIELD         = 180;
1498 
1499   /** Java VM opcode.
1500    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.putfield">
1501    * Opcode definitions in The Java Virtual Machine Specification</a> */
1502   public static final short PUTFIELD         = 181;
1503 
1504   /** Java VM opcode.
1505    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.invokevirtual">
1506    * Opcode definitions in The Java Virtual Machine Specification</a> */
1507   public static final short INVOKEVIRTUAL    = 182;
1508 
1509   /** Java VM opcode.
1510    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.invokespecial">
1511    * Opcode definitions in The Java Virtual Machine Specification</a> */
1512   public static final short INVOKESPECIAL    = 183;
1513 
1514   /** Java VM opcode.
1515    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
1516    * Opcode definitions in The Java Virtual Machine Specification</a> */
1517   public static final short INVOKENONVIRTUAL = 183; // Old name in JDK 1.0
1518 
1519   /** Java VM opcode.
1520    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.invokestatic">
1521    * Opcode definitions in The Java Virtual Machine Specification</a> */
1522   public static final short INVOKESTATIC     = 184;
1523 
1524   /** Java VM opcode.
1525    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.invokeinterface">
1526    * Opcode definitions in The Java Virtual Machine Specification</a> */
1527   public static final short INVOKEINTERFACE  = 185;
1528 
1529   /** Java VM opcode.
1530    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.invokedynamic">
1531    * Opcode definitions in The Java Virtual Machine Specification</a> */
1532   public static final short INVOKEDYNAMIC    = 186;
1533 
1534   /** Java VM opcode.
1535    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.new">
1536    * Opcode definitions in The Java Virtual Machine Specification</a> */
1537   public static final short NEW              = 187;
1538 
1539   /** Java VM opcode.
1540    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.newarray">
1541    * Opcode definitions in The Java Virtual Machine Specification</a> */
1542   public static final short NEWARRAY         = 188;
1543 
1544   /** Java VM opcode.
1545    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.anewarray">
1546    * Opcode definitions in The Java Virtual Machine Specification</a> */
1547   public static final short ANEWARRAY        = 189;
1548 
1549   /** Java VM opcode.
1550    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.arraylength">
1551    * Opcode definitions in The Java Virtual Machine Specification</a> */
1552   public static final short ARRAYLENGTH      = 190;
1553 
1554   /** Java VM opcode.
1555    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.athrow">
1556    * Opcode definitions in The Java Virtual Machine Specification</a> */
1557   public static final short ATHROW           = 191;
1558 
1559   /** Java VM opcode.
1560    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.checkcast">
1561    * Opcode definitions in The Java Virtual Machine Specification</a> */
1562   public static final short CHECKCAST        = 192;
1563 
1564   /** Java VM opcode.
1565    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.instanceof">
1566    * Opcode definitions in The Java Virtual Machine Specification</a> */
1567   public static final short INSTANCEOF       = 193;
1568 
1569   /** Java VM opcode.
1570    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.monitorenter">
1571    * Opcode definitions in The Java Virtual Machine Specification</a> */
1572   public static final short MONITORENTER     = 194;
1573 
1574   /** Java VM opcode.
1575    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.monitorexit">
1576    * Opcode definitions in The Java Virtual Machine Specification</a> */
1577   public static final short MONITOREXIT      = 195;
1578 
1579   /** Java VM opcode.
1580    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.wide">
1581    * Opcode definitions in The Java Virtual Machine Specification</a> */
1582   public static final short WIDE             = 196;
1583 
1584   /** Java VM opcode.
1585    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.multianewarray">
1586    * Opcode definitions in The Java Virtual Machine Specification</a> */
1587   public static final short MULTIANEWARRAY   = 197;
1588 
1589   /** Java VM opcode.
1590    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ifnull">
1591    * Opcode definitions in The Java Virtual Machine Specification</a> */
1592   public static final short IFNULL           = 198;
1593 
1594   /** Java VM opcode.
1595    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ifnonnull">
1596    * Opcode definitions in The Java Virtual Machine Specification</a> */
1597   public static final short IFNONNULL        = 199;
1598 
1599   /** Java VM opcode.
1600    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.goto_w">
1601    * Opcode definitions in The Java Virtual Machine Specification</a> */
1602   public static final short GOTO_W           = 200;
1603 
1604   /** Java VM opcode.
1605    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.jsr_w">
1606    * Opcode definitions in The Java Virtual Machine Specification</a> */
1607   public static final short JSR_W            = 201;
1608 
1609   /** JVM internal opcode.
1610    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.2">
1611    * Reserved opcodes in the Java Virtual Machine Specification</a> */
1612   public static final short BREAKPOINT                = 202;
1613 
1614   /** JVM internal opcode.
1615    * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
1616    * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
1617    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
1618    * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
1619   public static final short LDC_QUICK                 = 203;
1620 
1621   /** JVM internal opcode.
1622    * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
1623    * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
1624    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
1625    * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
1626   public static final short LDC_W_QUICK               = 204;
1627 
1628   /** JVM internal opcode.
1629    * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
1630    * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
1631    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
1632    * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
1633   public static final short LDC2_W_QUICK              = 205;
1634 
1635   /** JVM internal opcode.
1636    * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
1637    * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
1638    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
1639    * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
1640   public static final short GETFIELD_QUICK            = 206;
1641 
1642   /** JVM internal opcode.
1643    * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
1644    * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
1645    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
1646    * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
1647   public static final short PUTFIELD_QUICK            = 207;
1648 
1649   /** JVM internal opcode.
1650    * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
1651    * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
1652    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
1653    * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
1654   public static final short GETFIELD2_QUICK           = 208;
1655 
1656   /** JVM internal opcode.
1657    * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
1658    * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
1659    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
1660    * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
1661   public static final short PUTFIELD2_QUICK           = 209;
1662 
1663   /** JVM internal opcode.
1664    * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
1665    * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
1666    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
1667    * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
1668   public static final short GETSTATIC_QUICK           = 210;
1669 
1670   /** JVM internal opcode.
1671    * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
1672    * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
1673    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
1674    * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
1675   public static final short PUTSTATIC_QUICK           = 211;
1676 
1677   /** JVM internal opcode.
1678    * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
1679    * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
1680    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
1681    * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
1682   public static final short GETSTATIC2_QUICK          = 212;
1683 
1684   /** JVM internal opcode.
1685    * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
1686    * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
1687    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
1688    * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
1689   public static final short PUTSTATIC2_QUICK          = 213;
1690 
1691   /** JVM internal opcode.
1692    * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
1693    * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
1694    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
1695    * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
1696   public static final short INVOKEVIRTUAL_QUICK       = 214;
1697 
1698   /** JVM internal opcode.
1699    * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
1700    * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
1701    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
1702    * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
1703   public static final short INVOKENONVIRTUAL_QUICK    = 215;
1704 
1705   /** JVM internal opcode.
1706    * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
1707    * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
1708    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
1709    * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
1710   public static final short INVOKESUPER_QUICK         = 216;
1711 
1712   /** JVM internal opcode.
1713    * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
1714    * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
1715    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
1716    * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
1717   public static final short INVOKESTATIC_QUICK        = 217;
1718 
1719   /** JVM internal opcode.
1720    * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
1721    * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
1722    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
1723    * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
1724   public static final short INVOKEINTERFACE_QUICK     = 218;
1725 
1726   /** JVM internal opcode.
1727    * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
1728    * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
1729    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
1730    * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
1731   public static final short INVOKEVIRTUALOBJECT_QUICK = 219;
1732 
1733   /** JVM internal opcode.
1734    * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
1735    * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
1736    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
1737    * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
1738   public static final short NEW_QUICK                 = 221;
1739 
1740   /** JVM internal opcode.
1741    * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
1742    * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
1743    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
1744    * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
1745   public static final short ANEWARRAY_QUICK           = 222;
1746 
1747   /** JVM internal opcode.
1748    * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
1749    * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
1750    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
1751    * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
1752   public static final short MULTIANEWARRAY_QUICK      = 223;
1753 
1754   /** JVM internal opcode.
1755    * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
1756    * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
1757    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
1758    * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
1759   public static final short CHECKCAST_QUICK           = 224;
1760 
1761   /** JVM internal opcode.
1762    * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
1763    * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
1764    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
1765    * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
1766   public static final short INSTANCEOF_QUICK          = 225;
1767 
1768   /** JVM internal opcode.
1769    * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
1770    * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
1771    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
1772    * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
1773   public static final short INVOKEVIRTUAL_QUICK_W     = 226;
1774 
1775   /** JVM internal opcode.
1776    * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
1777    * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
1778    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
1779    * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
1780   public static final short GETFIELD_QUICK_W          = 227;
1781 
1782   /** JVM internal opcode.
1783    * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
1784    * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
1785    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
1786    * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
1787   public static final short PUTFIELD_QUICK_W          = 228;
1788 
1789   /** JVM internal opcode.
1790    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.2">
1791    * Reserved opcodes in the Java Virtual Machine Specification</a> */
1792   public static final short IMPDEP1                   = 254;
1793 
1794   /** JVM internal opcode.
1795    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.2">
1796    * Reserved opcodes in the Java Virtual Machine Specification</a> */
1797   public static final short IMPDEP2                   = 255;
1798 
1799   /**
1800    * BCEL virtual instruction for pushing an arbitrary data type onto the stack.  Will be converted to the appropriate JVM
1801    * opcode when the class is dumped.
1802    */
1803   public static final short PUSH             = 4711;
1804 
1805   /**
1806    * BCEL virtual instruction for either LOOKUPSWITCH or TABLESWITCH.  Will be converted to the appropriate JVM
1807    * opcode when the class is dumped.
1808    */
1809   public static final short SWITCH           = 4712;
1810 
1811   /** Illegal opcode. */
1812   public static final short  UNDEFINED      = -1;
1813 
1814   /** Illegal opcode. */
1815   public static final short  UNPREDICTABLE  = -2;
1816 
1817   /** Illegal opcode. */
1818   public static final short  RESERVED       = -3;
1819 
1820   /** Mnemonic for an illegal opcode. */
1821   public static final String ILLEGAL_OPCODE = "<illegal opcode>";
1822 
1823   /** Mnemonic for an illegal type. */
1824   public static final String ILLEGAL_TYPE   = "<illegal type>";
1825 
1826   /** Boolean data type.
1827    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.9.1-120-P">
1828    * Static Constraints in the Java Virtual Machine Specification</a> */
1829   public static final byte T_BOOLEAN = 4;
1830 
1831   /** Char data type.
1832    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.9.1-120-P">
1833    * Static Constraints in the Java Virtual Machine Specification</a> */
1834   public static final byte T_CHAR    = 5;
1835 
1836   /** Float data type.
1837    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.9.1-120-P">
1838    * Static Constraints in the Java Virtual Machine Specification</a> */
1839   public static final byte T_FLOAT   = 6;
1840 
1841   /** Double data type.
1842    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.9.1-120-P">
1843    * Static Constraints in the Java Virtual Machine Specification</a> */
1844   public static final byte T_DOUBLE  = 7;
1845 
1846   /** Byte data type.
1847    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.9.1-120-P">
1848    * Static Constraints in the Java Virtual Machine Specification</a> */
1849   public static final byte T_BYTE    = 8;
1850 
1851   /** Short data type.
1852    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.9.1-120-P">
1853    * Static Constraints in the Java Virtual Machine Specification</a> */
1854   public static final byte T_SHORT   = 9;
1855 
1856   /** Int data type.
1857    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.9.1-120-P">
1858    * Static Constraints in the Java Virtual Machine Specification</a> */
1859   public static final byte T_INT     = 10;
1860 
1861   /** Long data type.
1862    * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.9.1-120-P">
1863    * Static Constraints in the Java Virtual Machine Specification</a> */
1864   public static final byte T_LONG    = 11;
1865 
1866   /** Void data type (non-standard). */
1867   public static final byte T_VOID      = 12; // Non-standard
1868 
1869   /** Array data type. */
1870   public static final byte T_ARRAY     = 13;
1871 
1872   /** Object data type. */
1873   public static final byte T_OBJECT    = 14;
1874 
1875   /** Reference data type (deprecated). */
1876   public static final byte T_REFERENCE = 14; // Deprecated
1877 
1878   /** Unknown data type. */
1879   public static final byte T_UNKNOWN   = 15;
1880 
1881   /** Address data type. */
1882   public static final byte T_ADDRESS   = 16;
1883 
1884   /** The primitive type names corresponding to the T_XX constants,
1885    * e.g., TYPE_NAMES[T_INT] = "int"
1886    */
1887   private static final String[] TYPE_NAMES = {
1888     ILLEGAL_TYPE, ILLEGAL_TYPE,  ILLEGAL_TYPE, ILLEGAL_TYPE,
1889     "boolean", "char", "float", "double", "byte", "short", "int", "long",
1890     "void", "array", "object", "unknown", "address"
1891   };
1892 
1893   /**
1894    * The primitive type names corresponding to the T_XX constants,
1895    * e.g., TYPE_NAMES[T_INT] = "int"
1896    * @param index
1897    * @return the type name
1898    * @since 6.0
1899    */
1900   public static String getTypeName(final int index) {
1901       return TYPE_NAMES[index];
1902   }
1903 
1904   /** The primitive class names corresponding to the T_XX constants,
1905    * e.g., CLASS_TYPE_NAMES[T_INT] = "java.lang.Integer"
1906    */
1907   private static final String[] CLASS_TYPE_NAMES = {
1908     ILLEGAL_TYPE, ILLEGAL_TYPE,  ILLEGAL_TYPE, ILLEGAL_TYPE,
1909     "java.lang.Boolean", "java.lang.Character", "java.lang.Float",
1910     "java.lang.Double", "java.lang.Byte", "java.lang.Short",
1911     "java.lang.Integer", "java.lang.Long", "java.lang.Void",
1912     ILLEGAL_TYPE, ILLEGAL_TYPE,  ILLEGAL_TYPE,  ILLEGAL_TYPE
1913   };
1914 
1915   /**
1916    * The primitive class names corresponding to the T_XX constants,
1917    * e.g., CLASS_TYPE_NAMES[T_INT] = "java.lang.Integer"
1918    * @param index
1919    * @return the class name
1920    * @since 6.0
1921    */
1922   public static String getClassTypeName(final int index) {
1923       return CLASS_TYPE_NAMES[index];
1924   }
1925 
1926   /** The signature characters corresponding to primitive types,
1927    * e.g., SHORT_TYPE_NAMES[T_INT] = "I"
1928    */
1929   private static final String[] SHORT_TYPE_NAMES = {
1930     ILLEGAL_TYPE, ILLEGAL_TYPE,  ILLEGAL_TYPE, ILLEGAL_TYPE,
1931     "Z", "C", "F", "D", "B", "S", "I", "J",
1932     "V", ILLEGAL_TYPE, ILLEGAL_TYPE, ILLEGAL_TYPE
1933   };
1934 
1935   /**
1936    *
1937    * @param index
1938    * @return the short type name
1939    * @since 6.0
1940    */
1941   public static String getShortTypeName(final int index) {
1942       return SHORT_TYPE_NAMES[index];
1943   }
1944 
1945 
1946   /**
1947    * Number of byte code operands for each opcode, i.e., number of bytes after the tag byte
1948    * itself.  Indexed by opcode, so NO_OF_OPERANDS[BIPUSH] = the number of operands for a bipush
1949    * instruction.
1950    */
1951   private static final short[] NO_OF_OPERANDS = {
1952     0/*nop*/, 0/*aconst_null*/, 0/*iconst_m1*/, 0/*iconst_0*/,
1953     0/*iconst_1*/, 0/*iconst_2*/, 0/*iconst_3*/, 0/*iconst_4*/,
1954     0/*iconst_5*/, 0/*lconst_0*/, 0/*lconst_1*/, 0/*fconst_0*/,
1955     0/*fconst_1*/, 0/*fconst_2*/, 0/*dconst_0*/, 0/*dconst_1*/,
1956     1/*bipush*/, 2/*sipush*/, 1/*ldc*/, 2/*ldc_w*/, 2/*ldc2_w*/,
1957     1/*iload*/, 1/*lload*/, 1/*fload*/, 1/*dload*/, 1/*aload*/,
1958     0/*iload_0*/, 0/*iload_1*/, 0/*iload_2*/, 0/*iload_3*/,
1959     0/*lload_0*/, 0/*lload_1*/, 0/*lload_2*/, 0/*lload_3*/,
1960     0/*fload_0*/, 0/*fload_1*/, 0/*fload_2*/, 0/*fload_3*/,
1961     0/*dload_0*/, 0/*dload_1*/, 0/*dload_2*/, 0/*dload_3*/,
1962     0/*aload_0*/, 0/*aload_1*/, 0/*aload_2*/, 0/*aload_3*/,
1963     0/*iaload*/, 0/*laload*/, 0/*faload*/, 0/*daload*/,
1964     0/*aaload*/, 0/*baload*/, 0/*caload*/, 0/*saload*/,
1965     1/*istore*/, 1/*lstore*/, 1/*fstore*/, 1/*dstore*/,
1966     1/*astore*/, 0/*istore_0*/, 0/*istore_1*/, 0/*istore_2*/,
1967     0/*istore_3*/, 0/*lstore_0*/, 0/*lstore_1*/, 0/*lstore_2*/,
1968     0/*lstore_3*/, 0/*fstore_0*/, 0/*fstore_1*/, 0/*fstore_2*/,
1969     0/*fstore_3*/, 0/*dstore_0*/, 0/*dstore_1*/, 0/*dstore_2*/,
1970     0/*dstore_3*/, 0/*astore_0*/, 0/*astore_1*/, 0/*astore_2*/,
1971     0/*astore_3*/, 0/*iastore*/, 0/*lastore*/, 0/*fastore*/,
1972     0/*dastore*/, 0/*aastore*/, 0/*bastore*/, 0/*castore*/,
1973     0/*sastore*/, 0/*pop*/, 0/*pop2*/, 0/*dup*/, 0/*dup_x1*/,
1974     0/*dup_x2*/, 0/*dup2*/, 0/*dup2_x1*/, 0/*dup2_x2*/, 0/*swap*/,
1975     0/*iadd*/, 0/*ladd*/, 0/*fadd*/, 0/*dadd*/, 0/*isub*/,
1976     0/*lsub*/, 0/*fsub*/, 0/*dsub*/, 0/*imul*/, 0/*lmul*/,
1977     0/*fmul*/, 0/*dmul*/, 0/*idiv*/, 0/*ldiv*/, 0/*fdiv*/,
1978     0/*ddiv*/, 0/*irem*/, 0/*lrem*/, 0/*frem*/, 0/*drem*/,
1979     0/*ineg*/, 0/*lneg*/, 0/*fneg*/, 0/*dneg*/, 0/*ishl*/,
1980     0/*lshl*/, 0/*ishr*/, 0/*lshr*/, 0/*iushr*/, 0/*lushr*/,
1981     0/*iand*/, 0/*land*/, 0/*ior*/, 0/*lor*/, 0/*ixor*/, 0/*lxor*/,
1982     2/*iinc*/, 0/*i2l*/, 0/*i2f*/, 0/*i2d*/, 0/*l2i*/, 0/*l2f*/,
1983     0/*l2d*/, 0/*f2i*/, 0/*f2l*/, 0/*f2d*/, 0/*d2i*/, 0/*d2l*/,
1984     0/*d2f*/, 0/*i2b*/, 0/*i2c*/, 0/*i2s*/, 0/*lcmp*/, 0/*fcmpl*/,
1985     0/*fcmpg*/, 0/*dcmpl*/, 0/*dcmpg*/, 2/*ifeq*/, 2/*ifne*/,
1986     2/*iflt*/, 2/*ifge*/, 2/*ifgt*/, 2/*ifle*/, 2/*if_icmpeq*/,
1987     2/*if_icmpne*/, 2/*if_icmplt*/, 2/*if_icmpge*/, 2/*if_icmpgt*/,
1988     2/*if_icmple*/, 2/*if_acmpeq*/, 2/*if_acmpne*/, 2/*goto*/,
1989     2/*jsr*/, 1/*ret*/, UNPREDICTABLE/*tableswitch*/, UNPREDICTABLE/*lookupswitch*/,
1990     0/*ireturn*/, 0/*lreturn*/, 0/*freturn*/,
1991     0/*dreturn*/, 0/*areturn*/, 0/*return*/,
1992     2/*getstatic*/, 2/*putstatic*/, 2/*getfield*/,
1993     2/*putfield*/, 2/*invokevirtual*/, 2/*invokespecial*/, 2/*invokestatic*/,
1994     4/*invokeinterface*/, 4/*invokedynamic*/, 2/*new*/,
1995     1/*newarray*/, 2/*anewarray*/,
1996     0/*arraylength*/, 0/*athrow*/, 2/*checkcast*/,
1997     2/*instanceof*/, 0/*monitorenter*/,
1998     0/*monitorexit*/, UNPREDICTABLE/*wide*/, 3/*multianewarray*/,
1999     2/*ifnull*/, 2/*ifnonnull*/, 4/*goto_w*/,
2000     4/*jsr_w*/, 0/*breakpoint*/, UNDEFINED,
2001     UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
2002     UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
2003     UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
2004     UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
2005     UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
2006     UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
2007     UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
2008     UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
2009     UNDEFINED, UNDEFINED, RESERVED/*impdep1*/, RESERVED/*impdep2*/
2010   };
2011 
2012   /**
2013    *
2014    * @param index
2015    * @return Number of byte code operands
2016    * @since 6.0
2017    */
2018   public static short getNoOfOperands(final int index) {
2019       return NO_OF_OPERANDS[index];
2020   }
2021 
2022   /**
2023    * How the byte code operands are to be interpreted for each opcode.
2024    * Indexed by opcode.  TYPE_OF_OPERANDS[ILOAD] = an array of shorts
2025    * describing the data types for the instruction.
2026    */
2027   private static final short[][] TYPE_OF_OPERANDS = {
2028     {}/*nop*/, {}/*aconst_null*/, {}/*iconst_m1*/, {}/*iconst_0*/,
2029     {}/*iconst_1*/, {}/*iconst_2*/, {}/*iconst_3*/, {}/*iconst_4*/,
2030     {}/*iconst_5*/, {}/*lconst_0*/, {}/*lconst_1*/, {}/*fconst_0*/,
2031     {}/*fconst_1*/, {}/*fconst_2*/, {}/*dconst_0*/, {}/*dconst_1*/,
2032     {T_BYTE}/*bipush*/, {T_SHORT}/*sipush*/, {T_BYTE}/*ldc*/,
2033     {T_SHORT}/*ldc_w*/, {T_SHORT}/*ldc2_w*/,
2034     {T_BYTE}/*iload*/, {T_BYTE}/*lload*/, {T_BYTE}/*fload*/,
2035     {T_BYTE}/*dload*/, {T_BYTE}/*aload*/, {}/*iload_0*/,
2036     {}/*iload_1*/, {}/*iload_2*/, {}/*iload_3*/, {}/*lload_0*/,
2037     {}/*lload_1*/, {}/*lload_2*/, {}/*lload_3*/, {}/*fload_0*/,
2038     {}/*fload_1*/, {}/*fload_2*/, {}/*fload_3*/, {}/*dload_0*/,
2039     {}/*dload_1*/, {}/*dload_2*/, {}/*dload_3*/, {}/*aload_0*/,
2040     {}/*aload_1*/, {}/*aload_2*/, {}/*aload_3*/, {}/*iaload*/,
2041     {}/*laload*/, {}/*faload*/, {}/*daload*/, {}/*aaload*/,
2042     {}/*baload*/, {}/*caload*/, {}/*saload*/, {T_BYTE}/*istore*/,
2043     {T_BYTE}/*lstore*/, {T_BYTE}/*fstore*/, {T_BYTE}/*dstore*/,
2044     {T_BYTE}/*astore*/, {}/*istore_0*/, {}/*istore_1*/,
2045     {}/*istore_2*/, {}/*istore_3*/, {}/*lstore_0*/, {}/*lstore_1*/,
2046     {}/*lstore_2*/, {}/*lstore_3*/, {}/*fstore_0*/, {}/*fstore_1*/,
2047     {}/*fstore_2*/, {}/*fstore_3*/, {}/*dstore_0*/, {}/*dstore_1*/,
2048     {}/*dstore_2*/, {}/*dstore_3*/, {}/*astore_0*/, {}/*astore_1*/,
2049     {}/*astore_2*/, {}/*astore_3*/, {}/*iastore*/, {}/*lastore*/,
2050     {}/*fastore*/, {}/*dastore*/, {}/*aastore*/, {}/*bastore*/,
2051     {}/*castore*/, {}/*sastore*/, {}/*pop*/, {}/*pop2*/, {}/*dup*/,
2052     {}/*dup_x1*/, {}/*dup_x2*/, {}/*dup2*/, {}/*dup2_x1*/,
2053     {}/*dup2_x2*/, {}/*swap*/, {}/*iadd*/, {}/*ladd*/, {}/*fadd*/,
2054     {}/*dadd*/, {}/*isub*/, {}/*lsub*/, {}/*fsub*/, {}/*dsub*/,
2055     {}/*imul*/, {}/*lmul*/, {}/*fmul*/, {}/*dmul*/, {}/*idiv*/,
2056     {}/*ldiv*/, {}/*fdiv*/, {}/*ddiv*/, {}/*irem*/, {}/*lrem*/,
2057     {}/*frem*/, {}/*drem*/, {}/*ineg*/, {}/*lneg*/, {}/*fneg*/,
2058     {}/*dneg*/, {}/*ishl*/, {}/*lshl*/, {}/*ishr*/, {}/*lshr*/,
2059     {}/*iushr*/, {}/*lushr*/, {}/*iand*/, {}/*land*/, {}/*ior*/,
2060     {}/*lor*/, {}/*ixor*/, {}/*lxor*/, {T_BYTE, T_BYTE}/*iinc*/,
2061     {}/*i2l*/, {}/*i2f*/, {}/*i2d*/, {}/*l2i*/, {}/*l2f*/, {}/*l2d*/,
2062     {}/*f2i*/, {}/*f2l*/, {}/*f2d*/, {}/*d2i*/, {}/*d2l*/, {}/*d2f*/,
2063     {}/*i2b*/, {}/*i2c*/, {}/*i2s*/, {}/*lcmp*/, {}/*fcmpl*/,
2064     {}/*fcmpg*/, {}/*dcmpl*/, {}/*dcmpg*/, {T_SHORT}/*ifeq*/,
2065     {T_SHORT}/*ifne*/, {T_SHORT}/*iflt*/, {T_SHORT}/*ifge*/,
2066     {T_SHORT}/*ifgt*/, {T_SHORT}/*ifle*/, {T_SHORT}/*if_icmpeq*/,
2067     {T_SHORT}/*if_icmpne*/, {T_SHORT}/*if_icmplt*/,
2068     {T_SHORT}/*if_icmpge*/, {T_SHORT}/*if_icmpgt*/,
2069     {T_SHORT}/*if_icmple*/, {T_SHORT}/*if_acmpeq*/,
2070     {T_SHORT}/*if_acmpne*/, {T_SHORT}/*goto*/, {T_SHORT}/*jsr*/,
2071     {T_BYTE}/*ret*/, {}/*tableswitch*/, {}/*lookupswitch*/,
2072     {}/*ireturn*/, {}/*lreturn*/, {}/*freturn*/, {}/*dreturn*/,
2073     {}/*areturn*/, {}/*return*/, {T_SHORT}/*getstatic*/,
2074     {T_SHORT}/*putstatic*/, {T_SHORT}/*getfield*/,
2075     {T_SHORT}/*putfield*/, {T_SHORT}/*invokevirtual*/,
2076     {T_SHORT}/*invokespecial*/, {T_SHORT}/*invokestatic*/,
2077     {T_SHORT, T_BYTE, T_BYTE}/*invokeinterface*/, {T_SHORT, T_BYTE, T_BYTE}/*invokedynamic*/,
2078     {T_SHORT}/*new*/, {T_BYTE}/*newarray*/,
2079     {T_SHORT}/*anewarray*/, {}/*arraylength*/, {}/*athrow*/,
2080     {T_SHORT}/*checkcast*/, {T_SHORT}/*instanceof*/,
2081     {}/*monitorenter*/, {}/*monitorexit*/, {T_BYTE}/*wide*/,
2082     {T_SHORT, T_BYTE}/*multianewarray*/, {T_SHORT}/*ifnull*/,
2083     {T_SHORT}/*ifnonnull*/, {T_INT}/*goto_w*/, {T_INT}/*jsr_w*/,
2084     {}/*breakpoint*/, {}, {}, {}, {}, {}, {}, {},
2085     {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {},
2086     {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {},
2087     {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {},
2088     {}/*impdep1*/, {}/*impdep2*/
2089   };
2090 
2091   /**
2092    * @since 6.0
2093    */
2094   public static short getOperandType(final int opcode, final int index) {
2095       return TYPE_OF_OPERANDS[opcode][index];
2096   }
2097 
2098   /**
2099    * @since 6.0
2100    */
2101   public static long getOperandTypeCount(final int opcode) {
2102       return TYPE_OF_OPERANDS[opcode].length;
2103   }
2104 
2105   /**
2106    * Names of opcodes.  Indexed by opcode.  OPCODE_NAMES[ALOAD] = "aload".
2107    */
2108   private static final String[] OPCODE_NAMES = {
2109     "nop", "aconst_null", "iconst_m1", "iconst_0", "iconst_1",
2110     "iconst_2", "iconst_3", "iconst_4", "iconst_5", "lconst_0",
2111     "lconst_1", "fconst_0", "fconst_1", "fconst_2", "dconst_0",
2112     "dconst_1", "bipush", "sipush", "ldc", "ldc_w", "ldc2_w", "iload",
2113     "lload", "fload", "dload", "aload", "iload_0", "iload_1", "iload_2",
2114     "iload_3", "lload_0", "lload_1", "lload_2", "lload_3", "fload_0",
2115     "fload_1", "fload_2", "fload_3", "dload_0", "dload_1", "dload_2",
2116     "dload_3", "aload_0", "aload_1", "aload_2", "aload_3", "iaload",
2117     "laload", "faload", "daload", "aaload", "baload", "caload", "saload",
2118     "istore", "lstore", "fstore", "dstore", "astore", "istore_0",
2119     "istore_1", "istore_2", "istore_3", "lstore_0", "lstore_1",
2120     "lstore_2", "lstore_3", "fstore_0", "fstore_1", "fstore_2",
2121     "fstore_3", "dstore_0", "dstore_1", "dstore_2", "dstore_3",
2122     "astore_0", "astore_1", "astore_2", "astore_3", "iastore", "lastore",
2123     "fastore", "dastore", "aastore", "bastore", "castore", "sastore",
2124     "pop", "pop2", "dup", "dup_x1", "dup_x2", "dup2", "dup2_x1",
2125     "dup2_x2", "swap", "iadd", "ladd", "fadd", "dadd", "isub", "lsub",
2126     "fsub", "dsub", "imul", "lmul", "fmul", "dmul", "idiv", "ldiv",
2127     "fdiv", "ddiv", "irem", "lrem", "frem", "drem", "ineg", "lneg",
2128     "fneg", "dneg", "ishl", "lshl", "ishr", "lshr", "iushr", "lushr",
2129     "iand", "land", "ior", "lor", "ixor", "lxor", "iinc", "i2l", "i2f",
2130     "i2d", "l2i", "l2f", "l2d", "f2i", "f2l", "f2d", "d2i", "d2l", "d2f",
2131     "i2b", "i2c", "i2s", "lcmp", "fcmpl", "fcmpg",
2132     "dcmpl", "dcmpg", "ifeq", "ifne", "iflt", "ifge", "ifgt", "ifle",
2133     "if_icmpeq", "if_icmpne", "if_icmplt", "if_icmpge", "if_icmpgt",
2134     "if_icmple", "if_acmpeq", "if_acmpne", "goto", "jsr", "ret",
2135     "tableswitch", "lookupswitch", "ireturn", "lreturn", "freturn",
2136     "dreturn", "areturn", "return", "getstatic", "putstatic", "getfield",
2137     "putfield", "invokevirtual", "invokespecial", "invokestatic",
2138     "invokeinterface", "invokedynamic", "new", "newarray", "anewarray",
2139     "arraylength", "athrow", "checkcast", "instanceof", "monitorenter",
2140     "monitorexit", "wide", "multianewarray", "ifnull", "ifnonnull",
2141     "goto_w", "jsr_w", "breakpoint", ILLEGAL_OPCODE, ILLEGAL_OPCODE,
2142     ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE,
2143     ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE,
2144     ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE,
2145     ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE,
2146     ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE,
2147     ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE,
2148     ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE,
2149     ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE,
2150     ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE,
2151     ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE,
2152     ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE,
2153     ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE,
2154     ILLEGAL_OPCODE, "impdep1", "impdep2"
2155   };
2156 
2157   /**
2158    * @since 6.0
2159    */
2160   public static final int OPCODE_NAMES_LENGTH = OPCODE_NAMES.length;
2161 
2162 
2163   /**
2164    * @since 6.0
2165    */
2166   public static String getOpcodeName(final int index) {
2167       return OPCODE_NAMES[index];
2168   }
2169 
2170   /**
2171    * Number of words consumed on operand stack by instructions.
2172    * Indexed by opcode.  CONSUME_STACK[FALOAD] = number of words
2173    * consumed from the stack by a faload instruction.
2174    */
2175   private static final int[] CONSUME_STACK = {
2176     0/*nop*/, 0/*aconst_null*/, 0/*iconst_m1*/, 0/*iconst_0*/, 0/*iconst_1*/,
2177     0/*iconst_2*/, 0/*iconst_3*/, 0/*iconst_4*/, 0/*iconst_5*/, 0/*lconst_0*/,
2178     0/*lconst_1*/, 0/*fconst_0*/, 0/*fconst_1*/, 0/*fconst_2*/, 0/*dconst_0*/,
2179     0/*dconst_1*/, 0/*bipush*/, 0/*sipush*/, 0/*ldc*/, 0/*ldc_w*/, 0/*ldc2_w*/, 0/*iload*/,
2180     0/*lload*/, 0/*fload*/, 0/*dload*/, 0/*aload*/, 0/*iload_0*/, 0/*iload_1*/, 0/*iload_2*/,
2181     0/*iload_3*/, 0/*lload_0*/, 0/*lload_1*/, 0/*lload_2*/, 0/*lload_3*/, 0/*fload_0*/,
2182     0/*fload_1*/, 0/*fload_2*/, 0/*fload_3*/, 0/*dload_0*/, 0/*dload_1*/, 0/*dload_2*/,
2183     0/*dload_3*/, 0/*aload_0*/, 0/*aload_1*/, 0/*aload_2*/, 0/*aload_3*/, 2/*iaload*/,
2184     2/*laload*/, 2/*faload*/, 2/*daload*/, 2/*aaload*/, 2/*baload*/, 2/*caload*/, 2/*saload*/,
2185     1/*istore*/, 2/*lstore*/, 1/*fstore*/, 2/*dstore*/, 1/*astore*/, 1/*istore_0*/,
2186     1/*istore_1*/, 1/*istore_2*/, 1/*istore_3*/, 2/*lstore_0*/, 2/*lstore_1*/,
2187     2/*lstore_2*/, 2/*lstore_3*/, 1/*fstore_0*/, 1/*fstore_1*/, 1/*fstore_2*/,
2188     1/*fstore_3*/, 2/*dstore_0*/, 2/*dstore_1*/, 2/*dstore_2*/, 2/*dstore_3*/,
2189     1/*astore_0*/, 1/*astore_1*/, 1/*astore_2*/, 1/*astore_3*/, 3/*iastore*/, 4/*lastore*/,
2190     3/*fastore*/, 4/*dastore*/, 3/*aastore*/, 3/*bastore*/, 3/*castore*/, 3/*sastore*/,
2191     1/*pop*/, 2/*pop2*/, 1/*dup*/, 2/*dup_x1*/, 3/*dup_x2*/, 2/*dup2*/, 3/*dup2_x1*/,
2192     4/*dup2_x2*/, 2/*swap*/, 2/*iadd*/, 4/*ladd*/, 2/*fadd*/, 4/*dadd*/, 2/*isub*/, 4/*lsub*/,
2193     2/*fsub*/, 4/*dsub*/, 2/*imul*/, 4/*lmul*/, 2/*fmul*/, 4/*dmul*/, 2/*idiv*/, 4/*ldiv*/,
2194     2/*fdiv*/, 4/*ddiv*/, 2/*irem*/, 4/*lrem*/, 2/*frem*/, 4/*drem*/, 1/*ineg*/, 2/*lneg*/,
2195     1/*fneg*/, 2/*dneg*/, 2/*ishl*/, 3/*lshl*/, 2/*ishr*/, 3/*lshr*/, 2/*iushr*/, 3/*lushr*/,
2196     2/*iand*/, 4/*land*/, 2/*ior*/, 4/*lor*/, 2/*ixor*/, 4/*lxor*/, 0/*iinc*/,
2197     1/*i2l*/, 1/*i2f*/, 1/*i2d*/, 2/*l2i*/, 2/*l2f*/, 2/*l2d*/, 1/*f2i*/, 1/*f2l*/,
2198     1/*f2d*/, 2/*d2i*/, 2/*d2l*/, 2/*d2f*/, 1/*i2b*/, 1/*i2c*/, 1/*i2s*/,
2199     4/*lcmp*/, 2/*fcmpl*/, 2/*fcmpg*/, 4/*dcmpl*/, 4/*dcmpg*/, 1/*ifeq*/, 1/*ifne*/,
2200     1/*iflt*/, 1/*ifge*/, 1/*ifgt*/, 1/*ifle*/, 2/*if_icmpeq*/, 2/*if_icmpne*/, 2/*if_icmplt*/,
2201     2 /*if_icmpge*/, 2/*if_icmpgt*/, 2/*if_icmple*/, 2/*if_acmpeq*/, 2/*if_acmpne*/,
2202     0/*goto*/, 0/*jsr*/, 0/*ret*/, 1/*tableswitch*/, 1/*lookupswitch*/, 1/*ireturn*/,
2203     2/*lreturn*/, 1/*freturn*/, 2/*dreturn*/, 1/*areturn*/, 0/*return*/, 0/*getstatic*/,
2204     UNPREDICTABLE/*putstatic*/, 1/*getfield*/, UNPREDICTABLE/*putfield*/,
2205     UNPREDICTABLE/*invokevirtual*/, UNPREDICTABLE/*invokespecial*/,
2206     UNPREDICTABLE/*invokestatic*/,
2207     UNPREDICTABLE/*invokeinterface*/, UNPREDICTABLE/*invokedynamic*/, 0/*new*/, 1/*newarray*/, 1/*anewarray*/,
2208     1/*arraylength*/, 1/*athrow*/, 1/*checkcast*/, 1/*instanceof*/, 1/*monitorenter*/,
2209     1/*monitorexit*/, 0/*wide*/, UNPREDICTABLE/*multianewarray*/, 1/*ifnull*/, 1/*ifnonnull*/,
2210     0/*goto_w*/, 0/*jsr_w*/, 0/*breakpoint*/, UNDEFINED, UNDEFINED,
2211     UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
2212     UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
2213     UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
2214     UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
2215     UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
2216     UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
2217     UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
2218     UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
2219     UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
2220     UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
2221     UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
2222     UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
2223     UNDEFINED, UNPREDICTABLE/*impdep1*/, UNPREDICTABLE/*impdep2*/
2224   };
2225 
2226   /**
2227    *
2228    * @param index
2229    * @return Number of words consumed on operand stack
2230    * @since 6.0
2231    */
2232   public static int getConsumeStack(final int index) {
2233       return CONSUME_STACK[index];
2234   }
2235 
2236 
2237   /**
2238    * Number of words produced onto operand stack by instructions.
2239    * Indexed by opcode.  CONSUME_STACK[DALOAD] = number of words
2240    * consumed from the stack by a daload instruction.
2241    */
2242   private static final int[] PRODUCE_STACK = {
2243     0/*nop*/, 1/*aconst_null*/, 1/*iconst_m1*/, 1/*iconst_0*/, 1/*iconst_1*/,
2244     1/*iconst_2*/, 1/*iconst_3*/, 1/*iconst_4*/, 1/*iconst_5*/, 2/*lconst_0*/,
2245     2/*lconst_1*/, 1/*fconst_0*/, 1/*fconst_1*/, 1/*fconst_2*/, 2/*dconst_0*/,
2246     2/*dconst_1*/, 1/*bipush*/, 1/*sipush*/, 1/*ldc*/, 1/*ldc_w*/, 2/*ldc2_w*/, 1/*iload*/,
2247     2/*lload*/, 1/*fload*/, 2/*dload*/, 1/*aload*/, 1/*iload_0*/, 1/*iload_1*/, 1/*iload_2*/,
2248     1/*iload_3*/, 2/*lload_0*/, 2/*lload_1*/, 2/*lload_2*/, 2/*lload_3*/, 1/*fload_0*/,
2249     1/*fload_1*/, 1/*fload_2*/, 1/*fload_3*/, 2/*dload_0*/, 2/*dload_1*/, 2/*dload_2*/,
2250     2/*dload_3*/, 1/*aload_0*/, 1/*aload_1*/, 1/*aload_2*/, 1/*aload_3*/, 1/*iaload*/,
2251     2/*laload*/, 1/*faload*/, 2/*daload*/, 1/*aaload*/, 1/*baload*/, 1/*caload*/, 1/*saload*/,
2252     0/*istore*/, 0/*lstore*/, 0/*fstore*/, 0/*dstore*/, 0/*astore*/, 0/*istore_0*/,
2253     0/*istore_1*/, 0/*istore_2*/, 0/*istore_3*/, 0/*lstore_0*/, 0/*lstore_1*/,
2254     0/*lstore_2*/, 0/*lstore_3*/, 0/*fstore_0*/, 0/*fstore_1*/, 0/*fstore_2*/,
2255     0/*fstore_3*/, 0/*dstore_0*/, 0/*dstore_1*/, 0/*dstore_2*/, 0/*dstore_3*/,
2256     0/*astore_0*/, 0/*astore_1*/, 0/*astore_2*/, 0/*astore_3*/, 0/*iastore*/, 0/*lastore*/,
2257     0/*fastore*/, 0/*dastore*/, 0/*aastore*/, 0/*bastore*/, 0/*castore*/, 0/*sastore*/,
2258     0/*pop*/, 0/*pop2*/, 2/*dup*/, 3/*dup_x1*/, 4/*dup_x2*/, 4/*dup2*/, 5/*dup2_x1*/,
2259     6/*dup2_x2*/, 2/*swap*/, 1/*iadd*/, 2/*ladd*/, 1/*fadd*/, 2/*dadd*/, 1/*isub*/, 2/*lsub*/,
2260     1/*fsub*/, 2/*dsub*/, 1/*imul*/, 2/*lmul*/, 1/*fmul*/, 2/*dmul*/, 1/*idiv*/, 2/*ldiv*/,
2261     1/*fdiv*/, 2/*ddiv*/, 1/*irem*/, 2/*lrem*/, 1/*frem*/, 2/*drem*/, 1/*ineg*/, 2/*lneg*/,
2262     1/*fneg*/, 2/*dneg*/, 1/*ishl*/, 2/*lshl*/, 1/*ishr*/, 2/*lshr*/, 1/*iushr*/, 2/*lushr*/,
2263     1/*iand*/, 2/*land*/, 1/*ior*/, 2/*lor*/, 1/*ixor*/, 2/*lxor*/,
2264     0/*iinc*/, 2/*i2l*/, 1/*i2f*/, 2/*i2d*/, 1/*l2i*/, 1/*l2f*/, 2/*l2d*/, 1/*f2i*/,
2265     2/*f2l*/, 2/*f2d*/, 1/*d2i*/, 2/*d2l*/, 1/*d2f*/,
2266     1/*i2b*/, 1/*i2c*/, 1/*i2s*/, 1/*lcmp*/, 1/*fcmpl*/, 1/*fcmpg*/,
2267     1/*dcmpl*/, 1/*dcmpg*/, 0/*ifeq*/, 0/*ifne*/, 0/*iflt*/, 0/*ifge*/, 0/*ifgt*/, 0/*ifle*/,
2268     0/*if_icmpeq*/, 0/*if_icmpne*/, 0/*if_icmplt*/, 0/*if_icmpge*/, 0/*if_icmpgt*/,
2269     0/*if_icmple*/, 0/*if_acmpeq*/, 0/*if_acmpne*/, 0/*goto*/, 1/*jsr*/, 0/*ret*/,
2270     0/*tableswitch*/, 0/*lookupswitch*/, 0/*ireturn*/, 0/*lreturn*/, 0/*freturn*/,
2271     0/*dreturn*/, 0/*areturn*/, 0/*return*/, UNPREDICTABLE/*getstatic*/, 0/*putstatic*/,
2272     UNPREDICTABLE/*getfield*/, 0/*putfield*/, UNPREDICTABLE/*invokevirtual*/,
2273     UNPREDICTABLE/*invokespecial*/, UNPREDICTABLE/*invokestatic*/,
2274     UNPREDICTABLE/*invokeinterface*/, UNPREDICTABLE/*invokedynamic*/, 1/*new*/, 1/*newarray*/, 1/*anewarray*/,
2275     1/*arraylength*/, 1/*athrow*/, 1/*checkcast*/, 1/*instanceof*/, 0/*monitorenter*/,
2276     0/*monitorexit*/, 0/*wide*/, 1/*multianewarray*/, 0/*ifnull*/, 0/*ifnonnull*/,
2277     0/*goto_w*/, 1/*jsr_w*/, 0/*breakpoint*/, UNDEFINED, UNDEFINED,
2278     UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
2279     UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
2280     UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
2281     UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
2282     UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
2283     UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
2284     UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
2285     UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
2286     UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
2287     UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
2288     UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
2289     UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
2290     UNDEFINED, UNPREDICTABLE/*impdep1*/, UNPREDICTABLE/*impdep2*/
2291   };
2292 
2293   /**
2294    *
2295    * @param index
2296    * @return Number of words produced onto operand stack
2297    * @since 6.0
2298    */
2299   public static int getProduceStack(final int index) {
2300       return PRODUCE_STACK[index];
2301   }
2302 
2303   /** Attributes and their corresponding names.
2304    */
2305   public static final byte ATTR_UNKNOWN                                 = -1;
2306   public static final byte ATTR_SOURCE_FILE                             = 0;
2307   public static final byte ATTR_CONSTANT_VALUE                          = 1;
2308   public static final byte ATTR_CODE                                    = 2;
2309   public static final byte ATTR_EXCEPTIONS                              = 3;
2310   public static final byte ATTR_LINE_NUMBER_TABLE                       = 4;
2311   public static final byte ATTR_LOCAL_VARIABLE_TABLE                    = 5;
2312   public static final byte ATTR_INNER_CLASSES                           = 6;
2313   public static final byte ATTR_SYNTHETIC                               = 7;
2314   public static final byte ATTR_DEPRECATED                              = 8;
2315   public static final byte ATTR_PMG                                     = 9;
2316   public static final byte ATTR_SIGNATURE                               = 10;
2317   public static final byte ATTR_STACK_MAP                               = 11;
2318   public static final byte ATTR_RUNTIME_VISIBLE_ANNOTATIONS             = 12;
2319   public static final byte ATTR_RUNTIME_INVISIBLE_ANNOTATIONS           = 13;
2320   public static final byte ATTR_RUNTIME_VISIBLE_PARAMETER_ANNOTATIONS   = 14;
2321   public static final byte ATTR_RUNTIME_INVISIBLE_PARAMETER_ANNOTATIONS = 15;
2322   public static final byte ATTR_ANNOTATION_DEFAULT                      = 16;
2323   public static final byte ATTR_LOCAL_VARIABLE_TYPE_TABLE               = 17;
2324   public static final byte ATTR_ENCLOSING_METHOD                        = 18;
2325   public static final byte ATTR_STACK_MAP_TABLE                         = 19;
2326   public static final byte ATTR_BOOTSTRAP_METHODS                       = 20;
2327   public static final byte ATTR_METHOD_PARAMETERS                       = 21;
2328   public static final byte ATTR_MODULE                                  = 22;
2329   public static final byte ATTR_MODULE_PACKAGES                         = 23;
2330   public static final byte ATTR_MODULE_MAIN_CLASS                       = 24;
2331   public static final byte ATTR_NEST_HOST                               = 25;
2332   public static final byte ATTR_NEST_MEMBERS                            = 26;
2333 
2334   public static final short KNOWN_ATTRIBUTES = 27; // count of attributes
2335 
2336   private static final String[] ATTRIBUTE_NAMES = {
2337     "SourceFile", "ConstantValue", "Code", "Exceptions",
2338     "LineNumberTable", "LocalVariableTable",
2339     "InnerClasses", "Synthetic", "Deprecated",
2340     "PMGClass", "Signature", "StackMap",
2341     "RuntimeVisibleAnnotations", "RuntimeInvisibleAnnotations",
2342     "RuntimeVisibleParameterAnnotations", "RuntimeInvisibleParameterAnnotations",
2343     "AnnotationDefault", "LocalVariableTypeTable", "EnclosingMethod", "StackMapTable",
2344     "BootstrapMethods", "MethodParameters", "Module", "ModulePackages",
2345     "ModuleMainClass", "NestHost", "NestMembers"
2346   };
2347 
2348   /**
2349    *
2350    * @param index
2351    * @return the attribute name
2352    * @since 6.0
2353    */
2354   public static String getAttributeName(final int index) {
2355       return ATTRIBUTE_NAMES[index];
2356   }
2357 
2358   /** Constants used in the StackMap attribute.
2359    */
2360   public static final byte ITEM_Bogus      = 0;
2361   public static final byte ITEM_Integer    = 1;
2362   public static final byte ITEM_Float      = 2;
2363   public static final byte ITEM_Double     = 3;
2364   public static final byte ITEM_Long       = 4;
2365   public static final byte ITEM_Null       = 5;
2366   public static final byte ITEM_InitObject = 6;
2367   public static final byte ITEM_Object     = 7;
2368   public static final byte ITEM_NewObject  = 8;
2369 
2370   private static final String[] ITEM_NAMES = {
2371     "Bogus", "Integer", "Float", "Double", "Long",
2372     "Null", "InitObject", "Object", "NewObject"
2373   };
2374 
2375   /**
2376    *
2377    * @param index
2378    * @return the item name
2379    * @since 6.0
2380    */
2381   public static String getItemName(final int index) {
2382       return ITEM_NAMES[index];
2383   }
2384 
2385   /** Constants used to identify StackMapEntry types.
2386    *
2387    * For those types which can specify a range, the
2388    * constant names the lowest value.
2389    */
2390   public static final int SAME_FRAME = 0;
2391   public static final int SAME_LOCALS_1_STACK_ITEM_FRAME = 64;
2392   public static final int SAME_LOCALS_1_STACK_ITEM_FRAME_EXTENDED = 247;
2393   public static final int CHOP_FRAME = 248;
2394   public static final int SAME_FRAME_EXTENDED = 251;
2395   public static final int APPEND_FRAME = 252;
2396   public static final int FULL_FRAME = 255;
2397 
2398   /** Constants that define the maximum value of
2399    * those constants which store ranges. */
2400 
2401   public static final int SAME_FRAME_MAX = 63;
2402   public static final int SAME_LOCALS_1_STACK_ITEM_FRAME_MAX = 127;
2403   public static final int CHOP_FRAME_MAX = 250;
2404   public static final int APPEND_FRAME_MAX = 254;
2405 
2406 
2407   // Constants defining the behavior of the Method Handles (JVMS �5.4.3.5)
2408 
2409   public static final byte REF_getField         = 1;
2410   public static final byte REF_getStatic        = 2;
2411   public static final byte REF_putField         = 3;
2412   public static final byte REF_putStatic        = 4;
2413   public static final byte REF_invokeVirtual    = 5;
2414   public static final byte REF_invokeStatic     = 6;
2415   public static final byte REF_invokeSpecial    = 7;
2416   public static final byte REF_newInvokeSpecial = 8;
2417   public static final byte REF_invokeInterface  = 9;
2418 
2419   /**
2420    * The names of the reference_kinds of a CONSTANT_MethodHandle_info.
2421    */
2422   private static final String[] METHODHANDLE_NAMES = {
2423       "", "getField", "getStatic", "putField", "putStatic", "invokeVirtual",
2424       "invokeStatic", "invokeSpecial", "newInvokeSpecial", "invokeInterface" };
2425 
2426   /**
2427    *
2428    * @param index
2429    * @return the method handle name
2430    * @since 6.0
2431    */
2432   public static String getMethodHandleName(final int index) {
2433       return METHODHANDLE_NAMES[index];
2434   }
2435 
2436   private Const() { } // not instantiable
2437 
2438 }