View Javadoc
1   /*
2    * Licensed to the Apache Software Foundation (ASF) under one
3    * or more contributor license agreements.  See the NOTICE file
4    * distributed with this work for additional information
5    * regarding copyright ownership.  The ASF licenses this file
6    * to you under the Apache License, Version 2.0 (the
7    * "License"); you may not use this file except in compliance
8    * with the License.  You may obtain a copy of the License at
9    *
10   *   https://www.apache.org/licenses/LICENSE-2.0
11   *
12   * Unless required by applicable law or agreed to in writing,
13   * software distributed under the License is distributed on an
14   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15   * KIND, either express or implied.  See the License for the
16   * specific language governing permissions and limitations
17   * under the License.
18   */
19  package org.apache.bcel;
20  
21  import java.util.Arrays;
22  import java.util.Collections;
23  
24  /**
25   * Constants for the project, mostly defined in the JVM specification.
26   *
27   * @since 6.0 (intended to replace the Constants interface)
28   */
29  public final class Const {
30  
31      /**
32       * Java class file format Magic number: {@value}.
33       *
34       * @see <a href="https://docs.oracle.com/javase/specs/jvms/se7/html/jvms-4.html#jvms-4.1-200-A"> The ClassFile Structure
35       *      in The Java Virtual Machine Specification</a>
36       */
37      public static final int JVM_CLASSFILE_MAGIC = 0xCAFEBABE;
38  
39      /**
40       * Major version number of class files for Java 1.1: {@value}.
41       *
42       * @see #MINOR_1_1
43       */
44      public static final short MAJOR_1_1 = 45;
45  
46      /**
47       * Minor version number of class files for Java 1.1: {@value}.
48       *
49       * @see #MAJOR_1_1
50       */
51      public static final short MINOR_1_1 = 3;
52  
53      /**
54       * Major version number of class files for Java 1.2: {@value}.
55       *
56       * @see #MINOR_1_2
57       */
58      public static final short MAJOR_1_2 = 46;
59  
60      /**
61       * Minor version number of class files for Java 1.2: {@value}.
62       *
63       * @see #MAJOR_1_2
64       */
65      public static final short MINOR_1_2 = 0;
66  
67      /**
68       * Major version number of class files for Java 1.2: {@value}.
69       *
70       * @see #MINOR_1_2
71       */
72      public static final short MAJOR_1_3 = 47;
73  
74      /**
75       * Minor version number of class files for Java 1.3: {@value}.
76       *
77       * @see #MAJOR_1_3
78       */
79      public static final short MINOR_1_3 = 0;
80  
81      /**
82       * Major version number of class files for Java 1.3: {@value}.
83       *
84       * @see #MINOR_1_3
85       */
86      public static final short MAJOR_1_4 = 48;
87  
88      /**
89       * Minor version number of class files for Java 1.4: {@value}.
90       *
91       * @see #MAJOR_1_4
92       */
93      public static final short MINOR_1_4 = 0;
94  
95      /**
96       * Major version number of class files for Java 1.4: {@value}.
97       *
98       * @see #MINOR_1_4
99       */
100     public static final short MAJOR_1_5 = 49;
101 
102     /**
103      * Minor version number of class files for Java 1.5: {@value}.
104      *
105      * @see #MAJOR_1_5
106      */
107     public static final short MINOR_1_5 = 0;
108 
109     /**
110      * Major version number of class files for Java 1.6: {@value}.
111      *
112      * @see #MINOR_1_6
113      */
114     public static final short MAJOR_1_6 = 50;
115 
116     /**
117      * Minor version number of class files for Java 1.6: {@value}.
118      *
119      * @see #MAJOR_1_6
120      */
121     public static final short MINOR_1_6 = 0;
122 
123     /**
124      * Major version number of class files for Java 1.7: {@value}.
125      *
126      * @see #MINOR_1_7
127      */
128     public static final short MAJOR_1_7 = 51;
129 
130     /**
131      * Minor version number of class files for Java 1.7: {@value}.
132      *
133      * @see #MAJOR_1_7
134      */
135     public static final short MINOR_1_7 = 0;
136 
137     /**
138      * Major version number of class files for Java 1.8: {@value}.
139      *
140      * @see #MINOR_1_8
141      */
142     public static final short MAJOR_1_8 = 52;
143 
144     /**
145      * Minor version number of class files for Java 1.8: {@value}.
146      *
147      * @see #MAJOR_1_8
148      */
149     public static final short MINOR_1_8 = 0;
150 
151     /**
152      * Major version number of class files for Java 9: {@value}.
153      *
154      * @see #MINOR_9
155      */
156     public static final short MAJOR_9 = 53;
157 
158     /**
159      * Minor version number of class files for Java 9: {@value}.
160      *
161      * @see #MAJOR_9
162      */
163     public static final short MINOR_9 = 0;
164 
165     /**
166      * @deprecated Use {@link #MAJOR_9} ({@value}) instead.
167      */
168     @Deprecated
169     public static final short MAJOR_1_9 = MAJOR_9;
170 
171     /**
172      * @deprecated Use {@link #MINOR_9} ({@value}) instead.
173      */
174     @Deprecated
175     public static final short MINOR_1_9 = MINOR_9;
176 
177     /**
178      * Major version number of class files for Java 10: {@value}.
179      *
180      * @see #MINOR_10
181      */
182     public static final short MAJOR_10 = 54;
183 
184     /**
185      * Minor version number of class files for Java 10: {@value}.
186      *
187      * @see #MAJOR_10
188      */
189     public static final short MINOR_10 = 0;
190 
191     /**
192      * Major version number of class files for Java 11: {@value}.
193      *
194      * @see #MINOR_11
195      */
196     public static final short MAJOR_11 = 55;
197 
198     /**
199      * Minor version number of class files for Java 11: {@value}.
200      *
201      * @see #MAJOR_11
202      */
203     public static final short MINOR_11 = 0;
204 
205     /**
206      * Major version number of class files for Java 12: {@value}.
207      *
208      * @see #MINOR_12
209      */
210     public static final short MAJOR_12 = 56;
211 
212     /**
213      * Minor version number of class files for Java 12: {@value}.
214      *
215      * @see #MAJOR_12
216      */
217     public static final short MINOR_12 = 0;
218 
219     /**
220      * Major version number of class files for Java 13: {@value}.
221      *
222      * @see #MINOR_13
223      */
224     public static final short MAJOR_13 = 57;
225 
226     /**
227      * Minor version number of class files for Java 13: {@value}.
228      *
229      * @see #MAJOR_13
230      */
231     public static final short MINOR_13 = 0;
232 
233     /**
234      * Minor version number of class files for Java 14: {@value}.
235      *
236      * @see #MAJOR_14
237      * @since 6.4.0
238      */
239     public static final short MINOR_14 = 0;
240 
241     /**
242      * Minor version number of class files for Java 15: {@value}.
243      *
244      * @see #MAJOR_15
245      * @since 6.6.0
246      */
247     public static final short MINOR_15 = 0;
248 
249     /**
250      * Minor version number of class files for Java 16: {@value}.
251      *
252      * @see #MAJOR_16
253      * @since 6.6.0
254      */
255     public static final short MINOR_16 = 0;
256 
257     /**
258      * Minor version number of class files for Java 17: {@value}.
259      *
260      * @see #MAJOR_17
261      * @since 6.6.0
262      */
263     public static final short MINOR_17 = 0;
264 
265     /**
266      * Minor version number of class files for Java 18: {@value}.
267      *
268      * @see #MAJOR_18
269      * @since 6.6.0
270      */
271     public static final short MINOR_18 = 0;
272 
273     /**
274      * Minor version number of class files for Java 19: {@value}.
275      *
276      * @see #MAJOR_19
277      * @since 6.6.0
278      */
279     public static final short MINOR_19 = 0;
280 
281     /**
282      * Minor version number of class files for Java 20: {@value}.
283      *
284      * @see #MAJOR_20
285      * @since 6.8.0
286      */
287     public static final short MINOR_20 = 0;
288 
289     /**
290      * Minor version number of class files for Java 21: {@value}.
291      *
292      * @see #MAJOR_21
293      * @since 6.8.0
294      */
295     public static final short MINOR_21 = 0;
296 
297     /**
298      * Minor version number of class files for Java 22: {@value}.
299      *
300      * @see #MAJOR_22
301      * @since 6.10.0
302      */
303     public static final short MINOR_22 = 0;
304 
305     /**
306      * Minor version number of class files for Java 23: {@value}.
307      *
308      * @see #MAJOR_23
309      * @since 6.10.0
310      */
311     public static final short MINOR_23 = 0;
312 
313     /**
314      * Minor version number of class files for Java 24: {@value}.
315      *
316      * @see #MAJOR_24
317      * @since 6.10.0
318      */
319     public static final short MINOR_24 = 0;
320 
321     /**
322      * Minor version number of class files for Java 25: {@value}.
323      *
324      * @see #MAJOR_25
325      * @since 6.11.0
326      */
327     public static final short MINOR_25 = 0;
328 
329     /**
330      * Major version number of class files for Java 14: {@value}.
331      *
332      * @see #MINOR_14
333      * @since 6.4.0
334      */
335     public static final short MAJOR_14 = 58;
336 
337     /**
338      * Major version number of class files for Java 15: {@value}.
339      *
340      * @see #MINOR_15
341      * @since 6.6.0
342      */
343     public static final short MAJOR_15 = 59;
344 
345     /**
346      * Major version number of class files for Java 16: {@value}.
347      *
348      * @see #MINOR_16
349      * @since 6.6.0
350      */
351     public static final short MAJOR_16 = 60;
352 
353     /**
354      * Major version number of class files for Java 17: {@value}.
355      *
356      * @see #MINOR_17
357      * @since 6.6.0
358      */
359     public static final short MAJOR_17 = 61;
360 
361     /**
362      * Major version number of class files for Java 18: {@value}.
363      *
364      * @see #MINOR_18
365      * @since 6.6.0
366      */
367     public static final short MAJOR_18 = 62;
368 
369     /**
370      * Major version number of class files for Java 19: {@value}.
371      *
372      * @see #MINOR_19
373      * @since 6.6.0
374      */
375     public static final short MAJOR_19 = 63;
376 
377     /**
378      * Major version number of class files for Java 20: {@value}.
379      *
380      * @see #MINOR_20
381      * @since 6.8.0
382      */
383     public static final short MAJOR_20 = 64;
384 
385     /**
386      * Major version number of class files for Java 21: {@value}.
387      *
388      * @see #MINOR_21
389      * @since 6.8.0
390      */
391     public static final short MAJOR_21 = 65;
392 
393     /**
394      * Major version number of class files for Java 22: {@value}.
395      *
396      * @see #MINOR_22
397      * @since 6.10.0
398      */
399     public static final short MAJOR_22 = 66;
400 
401     /**
402      * Major version number of class files for Java 23: {@value}.
403      *
404      * @see #MINOR_23
405      * @since 6.10.0
406      */
407     public static final short MAJOR_23 = 67;
408 
409     /**
410      * Major version number of class files for Java 24: {@value}.
411      *
412      * @see #MINOR_24
413      * @since 6.10.0
414      */
415     public static final short MAJOR_24 = 68;
416 
417     /**
418      * Major version number of class files for Java 25: {@value}.
419      *
420      * @see #MINOR_25
421      * @since 6.11.0
422      */
423     public static final short MAJOR_25 = 69;
424 
425     /**
426      * Default major version number. Class file is for Java 1.1: {@value}.
427      *
428      * @see #MAJOR_1_1
429      */
430     public static final short MAJOR = MAJOR_1_1;
431 
432     /**
433      * Default major version number. Class file is for Java 1.1: {@value}.
434      *
435      * @see #MAJOR_1_1
436      */
437     public static final short MINOR = MINOR_1_1;
438 
439     /**
440      * Maximum value for an unsigned short: {@value}.
441      */
442     public static final int MAX_SHORT = 65535; // 2^16 - 1
443 
444     /**
445      * Maximum value for an unsigned byte: {@value}.
446      */
447     public static final int MAX_BYTE = 255; // 2^8 - 1
448 
449     /**
450      * One of the access flags for fields, methods, or classes: {@value}.
451      *
452      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se9/html/jvms-4.html#jvms-4.1-200-E.1"> Flag definitions for
453      *      Classes in the Java Virtual Machine Specification (Java SE 9 Edition).</a>
454      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se9/html/jvms-4.html#jvms-4.5"> Flag definitions for Fields
455      *      in the Java Virtual Machine Specification (Java SE 9 Edition).</a>
456      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se9/html/jvms-4.html#jvms-4.6"> Flag definitions for Methods
457      *      in the Java Virtual Machine Specification (Java SE 9 Edition).</a>
458      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se9/html/jvms-4.html#jvms-4.7.6-300-D.1-D.1"> Flag
459      *      definitions for Inner Classes in the Java Virtual Machine Specification (Java SE 9 Edition).</a>
460      */
461     public static final short ACC_PUBLIC = 0x0001;
462 
463     /**
464      * One of the access flags for fields, methods, or classes: {@value}.
465      *
466      * @see #ACC_PUBLIC
467      */
468     public static final short ACC_PRIVATE = 0x0002;
469 
470     /**
471      * One of the access flags for fields, methods, or classes: {@value}.
472      *
473      * @see #ACC_PUBLIC
474      */
475     public static final short ACC_PROTECTED = 0x0004;
476 
477     /**
478      * One of the access flags for fields, methods, or classes: {@value}.
479      *
480      * @see #ACC_PUBLIC
481      */
482     public static final short ACC_STATIC = 0x0008;
483 
484     /**
485      * One of the access flags for fields, methods, or classes: {@value}.
486      *
487      * @see #ACC_PUBLIC
488      */
489     public static final short ACC_FINAL = 0x0010;
490 
491     /**
492      * One of the access flags for the Module attribute: {@value}.
493      *
494      * @see #ACC_PUBLIC
495      */
496     public static final short ACC_OPEN = 0x0020;
497 
498     /**
499      * One of the access flags for classes: {@value}.
500      *
501      * @see #ACC_PUBLIC
502      */
503     public static final short ACC_SUPER = 0x0020;
504 
505     /**
506      * One of the access flags for methods: {@value}.
507      *
508      * @see #ACC_PUBLIC
509      */
510     public static final short ACC_SYNCHRONIZED = 0x0020;
511 
512     /**
513      * One of the access flags for the Module attribute: {@value}.
514      *
515      * @see #ACC_PUBLIC
516      */
517     public static final short ACC_TRANSITIVE = 0x0020;
518 
519     /**
520      * One of the access flags for methods: {@value}.
521      *
522      * @see #ACC_PUBLIC
523      */
524     public static final short ACC_BRIDGE = 0x0040;
525 
526     /**
527      * One of the access flags for the Module attribute: {@value}.
528      *
529      * @see #ACC_PUBLIC
530      */
531     public static final short ACC_STATIC_PHASE = 0x0040;
532 
533     /**
534      * One of the access flags for fields: {@value}.
535      *
536      * @see #ACC_PUBLIC
537      */
538     public static final short ACC_VOLATILE = 0x0040;
539 
540     /**
541      * One of the access flags for fields: {@value}.
542      *
543      * @see #ACC_PUBLIC
544      */
545     public static final short ACC_TRANSIENT = 0x0080;
546 
547     /**
548      * One of the access flags for methods: {@value}.
549      *
550      * @see #ACC_PUBLIC
551      */
552     public static final short ACC_VARARGS = 0x0080;
553 
554     /**
555      * One of the access flags for methods: {@value}.
556      *
557      * @see #ACC_PUBLIC
558      */
559     public static final short ACC_NATIVE = 0x0100;
560 
561     /**
562      * One of the access flags for classes: {@value}.
563      *
564      * @see #ACC_PUBLIC
565      */
566     public static final short ACC_INTERFACE = 0x0200;
567 
568     /**
569      * One of the access flags for methods or classes: {@value}.
570      *
571      * @see #ACC_PUBLIC
572      */
573     public static final short ACC_ABSTRACT = 0x0400;
574 
575     /**
576      * One of the access flags for methods: {@value}.
577      *
578      * @see #ACC_PUBLIC
579      */
580     public static final short ACC_STRICT = 0x0800;
581 
582     /**
583      * One of the access flags for fields, methods, classes, MethodParameter attribute, or Module attribute: {@value}.
584      *
585      * @see #ACC_PUBLIC
586      */
587     public static final short ACC_SYNTHETIC = 0x1000;
588 
589     /**
590      * One of the access flags for classes: {@value}.
591      *
592      * @see #ACC_PUBLIC
593      */
594     public static final short ACC_ANNOTATION = 0x2000;
595 
596     /**
597      * One of the access flags for fields or classes: {@value}.
598      *
599      * @see #ACC_PUBLIC
600      */
601     public static final short ACC_ENUM = 0x4000;
602 
603     // Applies to classes compiled by new compilers only
604     /**
605      * One of the access flags for MethodParameter or Module attributes: {@value}.
606      *
607      * @see #ACC_PUBLIC
608      */
609     public static final short ACC_MANDATED = (short) 0x8000;
610 
611     /**
612      * One of the access flags for classes: {@value}.
613      *
614      * @see #ACC_PUBLIC
615      */
616     public static final short ACC_MODULE = (short) 0x8000;
617 
618     /**
619      * One of the access flags for fields, methods, or classes: {@value}.
620      *
621      * @see #ACC_PUBLIC
622      * @deprecated Use {@link #MAX_ACC_FLAG_I}
623      */
624     @Deprecated
625     public static final short MAX_ACC_FLAG = ACC_ENUM;
626 
627     /**
628      * One of the access flags for fields, methods, or classes. ACC_MODULE is negative as a short: {@value}.
629      *
630      * @see #ACC_PUBLIC
631      * @since 6.4.0
632      */
633     public static final int MAX_ACC_FLAG_I = 0x8000; // ACC_MODULE is negative as a short
634 
635     // Note that do to overloading:
636     // 'synchronized' is for methods, might be 'open' (if Module), 'super' (if class), or 'transitive' (if Module).
637     // 'volatile' is for fields, might be 'bridge' (if method) or 'static_phase' (if Module)
638     // 'transient' is for fields, might be 'varargs' (if method)
639     // 'module' is for classes, might be 'mandated' (if Module or MethodParameters)
640     /**
641      * The names of the access flags.
642      */
643     private static final String[] ACCESS_NAMES = {"public", "private", "protected", "static", "final", "synchronized", "volatile", "transient", "native",
644         "interface", "abstract", "strictfp", "synthetic", "annotation", "enum", "module"};
645 
646     /** @since 6.0 */
647     public static final int ACCESS_NAMES_LENGTH = ACCESS_NAMES.length;
648 
649     /**
650      * Marks a constant pool entry as type UTF-8: {@value}.
651      *
652      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.7"> The Constant Pool in The
653      *      Java Virtual Machine Specification</a>
654      */
655     public static final byte CONSTANT_Utf8 = 1;
656 
657     /*
658      * The description of the constant pool is at: https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4
659      * References below are to the individual sections
660      */
661 
662     /**
663      * Marks a constant pool entry as type Integer: {@value}.
664      *
665      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.4"> The Constant Pool in The
666      *      Java Virtual Machine Specification</a>
667      */
668     public static final byte CONSTANT_Integer = 3;
669 
670     /**
671      * Marks a constant pool entry as type Float: {@value}.
672      *
673      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.4"> The Constant Pool in The
674      *      Java Virtual Machine Specification</a>
675      */
676     public static final byte CONSTANT_Float = 4;
677 
678     /**
679      * Marks a constant pool entry as type Long: {@value}.
680      *
681      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.5"> The Constant Pool in The
682      *      Java Virtual Machine Specification</a>
683      */
684     public static final byte CONSTANT_Long = 5;
685 
686     /**
687      * Marks a constant pool entry as type Double: {@value}.
688      *
689      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.5"> The Constant Pool in The
690      *      Java Virtual Machine Specification</a>
691      */
692     public static final byte CONSTANT_Double = 6;
693 
694     /**
695      * Marks a constant pool entry as a Class: {@value}.
696      *
697      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.1"> The Constant Pool in The
698      *      Java Virtual Machine Specification</a>
699      */
700     public static final byte CONSTANT_Class = 7;
701 
702     /**
703      * Marks a constant pool entry as a Field Reference: {@value}.
704      *
705      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.2"> The Constant Pool in The
706      *      Java Virtual Machine Specification</a>
707      */
708     public static final byte CONSTANT_Fieldref = 9;
709 
710     /**
711      * Marks a constant pool entry as type String: {@value}.
712      *
713      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.3"> The Constant Pool in The
714      *      Java Virtual Machine Specification</a>
715      */
716     public static final byte CONSTANT_String = 8;
717 
718     /**
719      * Marks a constant pool entry as a Method Reference: {@value}.
720      *
721      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.2"> The Constant Pool in The
722      *      Java Virtual Machine Specification</a>
723      */
724     public static final byte CONSTANT_Methodref = 10;
725 
726     /**
727      * Marks a constant pool entry as an Interface Method Reference: {@value}.
728      *
729      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.2"> The Constant Pool in The
730      *      Java Virtual Machine Specification</a>
731      */
732     public static final byte CONSTANT_InterfaceMethodref = 11;
733 
734     /**
735      * Marks a constant pool entry as a name and type: {@value}.
736      *
737      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.6"> The Constant Pool in The
738      *      Java Virtual Machine Specification</a>
739      */
740     public static final byte CONSTANT_NameAndType = 12;
741 
742     /**
743      * Marks a constant pool entry as a Method Handle: {@value}.
744      *
745      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.8"> The Constant Pool in The
746      *      Java Virtual Machine Specification</a>
747      */
748     public static final byte CONSTANT_MethodHandle = 15;
749 
750     /**
751      * Marks a constant pool entry as a Method Type: {@value}.
752      *
753      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.9"> The Constant Pool in The
754      *      Java Virtual Machine Specification</a>
755      */
756     public static final byte CONSTANT_MethodType = 16;
757 
758     /**
759      * Marks a constant pool entry as dynamically computed: {@value}.
760      *
761      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se11/html/jvms-4.html#jvms-4.4.10"> The Constant Pool in The
762      *      Java Virtual Machine Specification</a>
763      * @since 6.3
764      */
765     public static final byte CONSTANT_Dynamic = 17;
766 
767     /**
768      * Marks a constant pool entry as an Invoke Dynamic: {@value}.
769      *
770      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.10"> The Constant Pool in The
771      *      Java Virtual Machine Specification</a>
772      */
773     public static final byte CONSTANT_InvokeDynamic = 18;
774 
775     /**
776      * Marks a constant pool entry as a Module Reference: {@value}.
777      *
778      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se9/html/jvms-4.html#jvms-4.4.11"> The Constant Pool in The
779      *      Java Virtual Machine Specification</a>
780      * @since 6.1
781      */
782     public static final byte CONSTANT_Module = 19;
783 
784     /**
785      * Marks a constant pool entry as a Package Reference: {@value}.
786      *
787      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se9/html/jvms-4.html#jvms-4.4.12"> The Constant Pool in The
788      *      Java Virtual Machine Specification</a>
789      * @since 6.1
790      */
791     public static final byte CONSTANT_Package = 20;
792 
793     /**
794      * The names of the types of entries in a constant pool. Use getConstantName instead
795      */
796     private static final String[] CONSTANT_NAMES = {"", "CONSTANT_Utf8", "", "CONSTANT_Integer", "CONSTANT_Float", "CONSTANT_Long", "CONSTANT_Double",
797         "CONSTANT_Class", "CONSTANT_String", "CONSTANT_Fieldref", "CONSTANT_Methodref", "CONSTANT_InterfaceMethodref", "CONSTANT_NameAndType", "", "",
798         "CONSTANT_MethodHandle", "CONSTANT_MethodType", "CONSTANT_Dynamic", "CONSTANT_InvokeDynamic", "CONSTANT_Module", "CONSTANT_Package"};
799 
800     /**
801      * The name of the static initializer, also called &quot;class initialization method&quot; or &quot;interface
802      * initialization method&quot;. This is {@value}.
803      */
804     public static final String STATIC_INITIALIZER_NAME = "<clinit>";
805 
806     /**
807      * The name of every constructor method in a class, also called &quot;instance initialization method&quot;. This is
808      * {@value}.
809      */
810     public static final String CONSTRUCTOR_NAME = "<init>";
811 
812     /**
813      * The names of the interfaces implemented by arrays.
814      */
815     private static final String[] INTERFACES_IMPLEMENTED_BY_ARRAYS = {"java.lang.Cloneable", "java.io.Serializable"};
816 
817     /**
818      * Maximum Constant Pool entries: {@value}. One of the limitations of the Java Virtual Machine.
819      *
820      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.11-100-A"> The Java Virtual
821      *      Machine Specification, Java SE 8 Edition, page 330, chapter 4.11.</a>
822      */
823     public static final int MAX_CP_ENTRIES = 65535;
824 
825     /**
826      * Maximum code size (plus one; the code size must be LESS than this): {@value}.
827      * <p>
828      * One of the limitations of the Java Virtual Machine. Note vmspec2 page 152 ("Limitations") says:
829      * </p>
830      * <pre>"The amount of code per non-native, non-abstract method is limited to 65536 bytes by the sizes of the indices in the exception_table of the Code
831      * attribute (§4.7.3), in the LineNumberTable attribute (§4.7.8), and in the LocalVariableTable attribute (§4.7.9)." However this should be taken as an
832      * upper limit rather than the defined maximum. On page 134 (4.8.1 Static Constants) of the same spec, it says: "The value of the code_length item must be
833      * less than 65536."</pre>
834      * <p>
835      * The entry in the Limitations section has been removed from later versions of the specification; it is not present in the Java SE 8 edition.
836      * </p>
837      *
838      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.7.3-300-E"> The Java Virtual Machine Specification, Java SE 8
839      *      Edition, page 104, chapter 4.7.</a>
840      */
841     public static final int MAX_CODE_SIZE = 65536; // bytes
842 
843     /**
844      * The maximum number of dimensions in an array: {@value}. One of the limitations of the Java Virtual Machine.
845      *
846      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.3.2-150"> Field Descriptors in
847      *      The Java Virtual Machine Specification</a>
848      */
849     public static final int MAX_ARRAY_DIMENSIONS = 255;
850 
851     /**
852      * Java VM opcode {@value}.
853      *
854      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.nop"> Opcode definitions in The
855      *      Java Virtual Machine Specification</a>
856      */
857     public static final short NOP = 0;
858 
859     /**
860      * Java VM opcode {@value}.
861      *
862      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.aconst_null"> Opcode
863      *      definitions in The Java Virtual Machine Specification</a>
864      */
865     public static final short ACONST_NULL = 1;
866 
867     /**
868      * Java VM opcode {@value}.
869      *
870      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iconst_i"> Opcode definitions
871      *      in The Java Virtual Machine Specification</a>
872      */
873     public static final short ICONST_M1 = 2;
874 
875     /**
876      * Java VM opcode {@value}.
877      *
878      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iconst_i"> Opcode definitions
879      *      in The Java Virtual Machine Specification</a>
880      */
881     public static final short ICONST_0 = 3;
882 
883     /**
884      * Java VM opcode {@value}.
885      *
886      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iconst_i"> Opcode definitions
887      *      in The Java Virtual Machine Specification</a>
888      */
889     public static final short ICONST_1 = 4;
890 
891     /**
892      * Java VM opcode {@value}.
893      *
894      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iconst_i"> Opcode definitions
895      *      in The Java Virtual Machine Specification</a>
896      */
897     public static final short ICONST_2 = 5;
898 
899     /**
900      * Java VM opcode {@value}.
901      *
902      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iconst_i"> Opcode definitions
903      *      in The Java Virtual Machine Specification</a>
904      */
905     public static final short ICONST_3 = 6;
906 
907     /**
908      * Java VM opcode {@value}.
909      *
910      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iconst_i"> Opcode definitions
911      *      in The Java Virtual Machine Specification</a>
912      */
913     public static final short ICONST_4 = 7;
914 
915     /**
916      * Java VM opcode {@value}.
917      *
918      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iconst_i"> Opcode definitions
919      *      in The Java Virtual Machine Specification</a>
920      */
921     public static final short ICONST_5 = 8;
922 
923     /**
924      * Java VM opcode {@value}.
925      *
926      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lconst_l"> Opcode definitions
927      *      in The Java Virtual Machine Specification</a>
928      */
929     public static final short LCONST_0 = 9;
930 
931     /**
932      * Java VM opcode {@value}.
933      *
934      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lconst_l"> Opcode definitions
935      *      in The Java Virtual Machine Specification</a>
936      */
937     public static final short LCONST_1 = 10;
938 
939     /**
940      * Java VM opcode {@value}.
941      *
942      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fconst_f"> Opcode definitions
943      *      in The Java Virtual Machine Specification</a>
944      */
945     public static final short FCONST_0 = 11;
946 
947     /**
948      * Java VM opcode {@value}.
949      *
950      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fconst_f"> Opcode definitions
951      *      in The Java Virtual Machine Specification</a>
952      */
953     public static final short FCONST_1 = 12;
954 
955     /**
956      * Java VM opcode {@value}.
957      *
958      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fconst_f"> Opcode definitions
959      *      in The Java Virtual Machine Specification</a>
960      */
961     public static final short FCONST_2 = 13;
962 
963     /**
964      * Java VM opcode {@value}.
965      *
966      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dconst_d"> Opcode definitions
967      *      in The Java Virtual Machine Specification</a>
968      */
969     public static final short DCONST_0 = 14;
970 
971     /**
972      * Java VM opcode {@value}.
973      *
974      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dconst_d"> Opcode definitions
975      *      in The Java Virtual Machine Specification</a>
976      */
977     public static final short DCONST_1 = 15;
978 
979     /**
980      * Java VM opcode {@value}.
981      *
982      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.bipush"> Opcode definitions in
983      *      The Java Virtual Machine Specification</a>
984      */
985     public static final short BIPUSH = 16;
986 
987     /**
988      * Java VM opcode {@value}.
989      *
990      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.sipush"> Opcode definitions in
991      *      The Java Virtual Machine Specification</a>
992      */
993     public static final short SIPUSH = 17;
994 
995     /**
996      * Java VM opcode {@value}.
997      *
998      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ldc"> Opcode definitions in The
999      *      Java Virtual Machine Specification</a>
1000      */
1001     public static final short LDC = 18;
1002 
1003     /**
1004      * Java VM opcode {@value}.
1005      *
1006      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ldc_w"> Opcode definitions in
1007      *      The Java Virtual Machine Specification</a>
1008      */
1009     public static final short LDC_W = 19;
1010 
1011     /**
1012      * Java VM opcode {@value}.
1013      *
1014      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ldc2_w"> Opcode definitions in
1015      *      The Java Virtual Machine Specification</a>
1016      */
1017     public static final short LDC2_W = 20;
1018 
1019     /**
1020      * Java VM opcode {@value}.
1021      *
1022      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iload"> Opcode definitions in
1023      *      The Java Virtual Machine Specification</a>
1024      */
1025     public static final short ILOAD = 21;
1026 
1027     /**
1028      * Java VM opcode {@value}.
1029      *
1030      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lload"> Opcode definitions in
1031      *      The Java Virtual Machine Specification</a>
1032      */
1033     public static final short LLOAD = 22;
1034 
1035     /**
1036      * Java VM opcode {@value}.
1037      *
1038      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fload"> Opcode definitions in
1039      *      The Java Virtual Machine Specification</a>
1040      */
1041     public static final short FLOAD = 23;
1042 
1043     /**
1044      * Java VM opcode {@value}.
1045      *
1046      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dload"> Opcode definitions in
1047      *      The Java Virtual Machine Specification</a>
1048      */
1049     public static final short DLOAD = 24;
1050 
1051     /**
1052      * Java VM opcode {@value}.
1053      *
1054      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.aload"> Opcode definitions in
1055      *      The Java Virtual Machine Specification</a>
1056      */
1057     public static final short ALOAD = 25;
1058 
1059     /**
1060      * Java VM opcode {@value}.
1061      *
1062      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iload_n"> Opcode definitions in
1063      *      The Java Virtual Machine Specification</a>
1064      */
1065     public static final short ILOAD_0 = 26;
1066 
1067     /**
1068      * Java VM opcode {@value}.
1069      *
1070      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iload_n"> Opcode definitions in
1071      *      The Java Virtual Machine Specification</a>
1072      */
1073     public static final short ILOAD_1 = 27;
1074 
1075     /**
1076      * Java VM opcode {@value}.
1077      *
1078      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iload_n"> Opcode definitions in
1079      *      The Java Virtual Machine Specification</a>
1080      */
1081     public static final short ILOAD_2 = 28;
1082 
1083     /**
1084      * Java VM opcode {@value}.
1085      *
1086      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iload_n"> Opcode definitions in
1087      *      The Java Virtual Machine Specification</a>
1088      */
1089     public static final short ILOAD_3 = 29;
1090 
1091     /**
1092      * Java VM opcode {@value}.
1093      *
1094      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lload_n"> Opcode definitions in
1095      *      The Java Virtual Machine Specification</a>
1096      */
1097     public static final short LLOAD_0 = 30;
1098 
1099     /**
1100      * Java VM opcode {@value}.
1101      *
1102      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lload_n"> Opcode definitions in
1103      *      The Java Virtual Machine Specification</a>
1104      */
1105     public static final short LLOAD_1 = 31;
1106 
1107     /**
1108      * Java VM opcode {@value}.
1109      *
1110      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lload_n"> Opcode definitions in
1111      *      The Java Virtual Machine Specification</a>
1112      */
1113     public static final short LLOAD_2 = 32;
1114 
1115     /**
1116      * Java VM opcode {@value}.
1117      *
1118      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lload_n"> Opcode definitions in
1119      *      The Java Virtual Machine Specification</a>
1120      */
1121     public static final short LLOAD_3 = 33;
1122 
1123     /**
1124      * Java VM opcode {@value}.
1125      *
1126      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fload_n"> Opcode definitions in
1127      *      The Java Virtual Machine Specification</a>
1128      */
1129     public static final short FLOAD_0 = 34;
1130 
1131     /**
1132      * Java VM opcode {@value}.
1133      *
1134      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fload_n"> Opcode definitions in
1135      *      The Java Virtual Machine Specification</a>
1136      */
1137     public static final short FLOAD_1 = 35;
1138 
1139     /**
1140      * Java VM opcode {@value}.
1141      *
1142      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fload_n"> Opcode definitions in
1143      *      The Java Virtual Machine Specification</a>
1144      */
1145     public static final short FLOAD_2 = 36;
1146 
1147     /**
1148      * Java VM opcode {@value}.
1149      *
1150      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fload_n"> Opcode definitions in
1151      *      The Java Virtual Machine Specification</a>
1152      */
1153     public static final short FLOAD_3 = 37;
1154 
1155     /**
1156      * Java VM opcode {@value}.
1157      *
1158      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dload_n"> Opcode definitions in
1159      *      The Java Virtual Machine Specification</a>
1160      */
1161     public static final short DLOAD_0 = 38;
1162 
1163     /**
1164      * Java VM opcode {@value}.
1165      *
1166      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dload_n"> Opcode definitions in
1167      *      The Java Virtual Machine Specification</a>
1168      */
1169     public static final short DLOAD_1 = 39;
1170 
1171     /**
1172      * Java VM opcode {@value}.
1173      *
1174      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dload_n"> Opcode definitions in
1175      *      The Java Virtual Machine Specification</a>
1176      */
1177     public static final short DLOAD_2 = 40;
1178 
1179     /**
1180      * Java VM opcode {@value}.
1181      *
1182      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dload_n"> Opcode definitions in
1183      *      The Java Virtual Machine Specification</a>
1184      */
1185     public static final short DLOAD_3 = 41;
1186 
1187     /**
1188      * Java VM opcode {@value}.
1189      *
1190      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.aload_n"> Opcode definitions in
1191      *      The Java Virtual Machine Specification</a>
1192      */
1193     public static final short ALOAD_0 = 42;
1194 
1195     /**
1196      * Java VM opcode {@value}.
1197      *
1198      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.aload_n"> Opcode definitions in
1199      *      The Java Virtual Machine Specification</a>
1200      */
1201     public static final short ALOAD_1 = 43;
1202 
1203     /**
1204      * Java VM opcode {@value}.
1205      *
1206      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.aload_n"> Opcode definitions in
1207      *      The Java Virtual Machine Specification</a>
1208      */
1209     public static final short ALOAD_2 = 44;
1210 
1211     /**
1212      * Java VM opcode {@value}.
1213      *
1214      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.aload_n"> Opcode definitions in
1215      *      The Java Virtual Machine Specification</a>
1216      */
1217     public static final short ALOAD_3 = 45;
1218 
1219     /**
1220      * Java VM opcode {@value}.
1221      *
1222      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iaload"> Opcode definitions in
1223      *      The Java Virtual Machine Specification</a>
1224      */
1225     public static final short IALOAD = 46;
1226 
1227     /**
1228      * Java VM opcode {@value}.
1229      *
1230      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.laload"> Opcode definitions in
1231      *      The Java Virtual Machine Specification</a>
1232      */
1233     public static final short LALOAD = 47;
1234 
1235     /**
1236      * Java VM opcode {@value}.
1237      *
1238      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.faload"> Opcode definitions in
1239      *      The Java Virtual Machine Specification</a>
1240      */
1241     public static final short FALOAD = 48;
1242 
1243     /**
1244      * Java VM opcode {@value}.
1245      *
1246      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.daload"> Opcode definitions in
1247      *      The Java Virtual Machine Specification</a>
1248      */
1249     public static final short DALOAD = 49;
1250 
1251     /**
1252      * Java VM opcode {@value}.
1253      *
1254      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.aaload"> Opcode definitions in
1255      *      The Java Virtual Machine Specification</a>
1256      */
1257     public static final short AALOAD = 50;
1258 
1259     /**
1260      * Java VM opcode {@value}.
1261      *
1262      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.baload"> Opcode definitions in
1263      *      The Java Virtual Machine Specification</a>
1264      */
1265     public static final short BALOAD = 51;
1266 
1267     /**
1268      * Java VM opcode {@value}.
1269      *
1270      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.caload"> Opcode definitions in
1271      *      The Java Virtual Machine Specification</a>
1272      */
1273     public static final short CALOAD = 52;
1274 
1275     /**
1276      * Java VM opcode {@value}.
1277      *
1278      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.saload"> Opcode definitions in
1279      *      The Java Virtual Machine Specification</a>
1280      */
1281     public static final short SALOAD = 53;
1282 
1283     /**
1284      * Java VM opcode {@value}.
1285      *
1286      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.istore"> Opcode definitions in
1287      *      The Java Virtual Machine Specification</a>
1288      */
1289     public static final short ISTORE = 54;
1290 
1291     /**
1292      * Java VM opcode {@value}.
1293      *
1294      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lstore"> Opcode definitions in
1295      *      The Java Virtual Machine Specification</a>
1296      */
1297     public static final short LSTORE = 55;
1298 
1299     /**
1300      * Java VM opcode {@value}.
1301      *
1302      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fstore"> Opcode definitions in
1303      *      The Java Virtual Machine Specification</a>
1304      */
1305     public static final short FSTORE = 56;
1306 
1307     /**
1308      * Java VM opcode {@value}.
1309      *
1310      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dstore"> Opcode definitions in
1311      *      The Java Virtual Machine Specification</a>
1312      */
1313     public static final short DSTORE = 57;
1314 
1315     /**
1316      * Java VM opcode {@value}.
1317      *
1318      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.astore"> Opcode definitions in
1319      *      The Java Virtual Machine Specification</a>
1320      */
1321     public static final short ASTORE = 58;
1322 
1323     /**
1324      * Java VM opcode {@value}.
1325      *
1326      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.istore_n"> Opcode definitions
1327      *      in The Java Virtual Machine Specification</a>
1328      */
1329     public static final short ISTORE_0 = 59;
1330 
1331     /**
1332      * Java VM opcode {@value}.
1333      *
1334      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.istore_n"> Opcode definitions
1335      *      in The Java Virtual Machine Specification</a>
1336      */
1337     public static final short ISTORE_1 = 60;
1338 
1339     /**
1340      * Java VM opcode {@value}.
1341      *
1342      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.istore_n"> Opcode definitions
1343      *      in The Java Virtual Machine Specification</a>
1344      */
1345     public static final short ISTORE_2 = 61;
1346 
1347     /**
1348      * Java VM opcode {@value}.
1349      *
1350      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.istore_n"> Opcode definitions
1351      *      in The Java Virtual Machine Specification</a>
1352      */
1353     public static final short ISTORE_3 = 62;
1354 
1355     /**
1356      * Java VM opcode {@value}.
1357      *
1358      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lstore_n"> Opcode definitions
1359      *      in The Java Virtual Machine Specification</a>
1360      */
1361     public static final short LSTORE_0 = 63;
1362 
1363     /**
1364      * Java VM opcode {@value}.
1365      *
1366      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lstore_n"> Opcode definitions
1367      *      in The Java Virtual Machine Specification</a>
1368      */
1369     public static final short LSTORE_1 = 64;
1370 
1371     /**
1372      * Java VM opcode {@value}.
1373      *
1374      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lstore_n"> Opcode definitions
1375      *      in The Java Virtual Machine Specification</a>
1376      */
1377     public static final short LSTORE_2 = 65;
1378 
1379     /**
1380      * Java VM opcode {@value}.
1381      *
1382      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lstore_n"> Opcode definitions
1383      *      in The Java Virtual Machine Specification</a>
1384      */
1385     public static final short LSTORE_3 = 66;
1386 
1387     /**
1388      * Java VM opcode {@value}.
1389      *
1390      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fstore_n"> Opcode definitions
1391      *      in The Java Virtual Machine Specification</a>
1392      */
1393     public static final short FSTORE_0 = 67;
1394 
1395     /**
1396      * Java VM opcode {@value}.
1397      *
1398      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fstore_n"> Opcode definitions
1399      *      in The Java Virtual Machine Specification</a>
1400      */
1401     public static final short FSTORE_1 = 68;
1402 
1403     /**
1404      * Java VM opcode {@value}.
1405      *
1406      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fstore_n"> Opcode definitions
1407      *      in The Java Virtual Machine Specification</a>
1408      */
1409     public static final short FSTORE_2 = 69;
1410 
1411     /**
1412      * Java VM opcode {@value}.
1413      *
1414      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fstore_n"> Opcode definitions
1415      *      in The Java Virtual Machine Specification</a>
1416      */
1417     public static final short FSTORE_3 = 70;
1418 
1419     /**
1420      * Java VM opcode {@value}.
1421      *
1422      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dstore_n"> Opcode definitions
1423      *      in The Java Virtual Machine Specification</a>
1424      */
1425     public static final short DSTORE_0 = 71;
1426 
1427     /**
1428      * Java VM opcode {@value}.
1429      *
1430      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dstore_n"> Opcode definitions
1431      *      in The Java Virtual Machine Specification</a>
1432      */
1433     public static final short DSTORE_1 = 72;
1434 
1435     /**
1436      * Java VM opcode {@value}.
1437      *
1438      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dstore_n"> Opcode definitions
1439      *      in The Java Virtual Machine Specification</a>
1440      */
1441     public static final short DSTORE_2 = 73;
1442 
1443     /**
1444      * Java VM opcode {@value}.
1445      *
1446      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dstore_n"> Opcode definitions
1447      *      in The Java Virtual Machine Specification</a>
1448      */
1449     public static final short DSTORE_3 = 74;
1450 
1451     /**
1452      * Java VM opcode {@value}.
1453      *
1454      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.astore_n"> Opcode definitions
1455      *      in The Java Virtual Machine Specification</a>
1456      */
1457     public static final short ASTORE_0 = 75;
1458 
1459     /**
1460      * Java VM opcode {@value}.
1461      *
1462      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.astore_n"> Opcode definitions
1463      *      in The Java Virtual Machine Specification</a>
1464      */
1465     public static final short ASTORE_1 = 76;
1466 
1467     /**
1468      * Java VM opcode {@value}.
1469      *
1470      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.astore_n"> Opcode definitions
1471      *      in The Java Virtual Machine Specification</a>
1472      */
1473     public static final short ASTORE_2 = 77;
1474 
1475     /**
1476      * Java VM opcode {@value}.
1477      *
1478      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.astore_n"> Opcode definitions
1479      *      in The Java Virtual Machine Specification</a>
1480      */
1481     public static final short ASTORE_3 = 78;
1482 
1483     /**
1484      * Java VM opcode {@value}.
1485      *
1486      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iastore"> Opcode definitions in
1487      *      The Java Virtual Machine Specification</a>
1488      */
1489     public static final short IASTORE = 79;
1490 
1491     /**
1492      * Java VM opcode {@value}.
1493      *
1494      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lastore"> Opcode definitions in
1495      *      The Java Virtual Machine Specification</a>
1496      */
1497     public static final short LASTORE = 80;
1498 
1499     /**
1500      * Java VM opcode {@value}.
1501      *
1502      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fastore"> Opcode definitions in
1503      *      The Java Virtual Machine Specification</a>
1504      */
1505     public static final short FASTORE = 81;
1506 
1507     /**
1508      * Java VM opcode {@value}.
1509      *
1510      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dastore"> Opcode definitions in
1511      *      The Java Virtual Machine Specification</a>
1512      */
1513     public static final short DASTORE = 82;
1514 
1515     /**
1516      * Java VM opcode {@value}.
1517      *
1518      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.aastore"> Opcode definitions in
1519      *      The Java Virtual Machine Specification</a>
1520      */
1521     public static final short AASTORE = 83;
1522 
1523     /**
1524      * Java VM opcode {@value}.
1525      *
1526      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.bastore"> Opcode definitions in
1527      *      The Java Virtual Machine Specification</a>
1528      */
1529     public static final short BASTORE = 84;
1530 
1531     /**
1532      * Java VM opcode {@value}.
1533      *
1534      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.castore"> Opcode definitions in
1535      *      The Java Virtual Machine Specification</a>
1536      */
1537     public static final short CASTORE = 85;
1538 
1539     /**
1540      * Java VM opcode {@value}.
1541      *
1542      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.sastore"> Opcode definitions in
1543      *      The Java Virtual Machine Specification</a>
1544      */
1545     public static final short SASTORE = 86;
1546 
1547     /**
1548      * Java VM opcode {@value}.
1549      *
1550      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.pop"> Opcode definitions in The
1551      *      Java Virtual Machine Specification</a>
1552      */
1553     public static final short POP = 87;
1554 
1555     /**
1556      * Java VM opcode {@value}.
1557      *
1558      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.pop2"> Opcode definitions in
1559      *      The Java Virtual Machine Specification</a>
1560      */
1561     public static final short POP2 = 88;
1562 
1563     /**
1564      * Java VM opcode {@value}.
1565      *
1566      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dup"> Opcode definitions in The
1567      *      Java Virtual Machine Specification</a>
1568      */
1569     public static final short DUP = 89;
1570 
1571     /**
1572      * Java VM opcode {@value}.
1573      *
1574      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dup_x1"> Opcode definitions in
1575      *      The Java Virtual Machine Specification</a>
1576      */
1577     public static final short DUP_X1 = 90;
1578 
1579     /**
1580      * Java VM opcode {@value}.
1581      *
1582      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dup_x2"> Opcode definitions in
1583      *      The Java Virtual Machine Specification</a>
1584      */
1585     public static final short DUP_X2 = 91;
1586 
1587     /**
1588      * Java VM opcode {@value}.
1589      *
1590      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dup2"> Opcode definitions in
1591      *      The Java Virtual Machine Specification</a>
1592      */
1593     public static final short DUP2 = 92;
1594 
1595     /**
1596      * Java VM opcode {@value}.
1597      *
1598      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dup2_x1"> Opcode definitions in
1599      *      The Java Virtual Machine Specification</a>
1600      */
1601     public static final short DUP2_X1 = 93;
1602 
1603     /**
1604      * Java VM opcode {@value}.
1605      *
1606      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dup2_x2"> Opcode definitions in
1607      *      The Java Virtual Machine Specification</a>
1608      */
1609     public static final short DUP2_X2 = 94;
1610 
1611     /**
1612      * Java VM opcode {@value}.
1613      *
1614      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.swap"> Opcode definitions in
1615      *      The Java Virtual Machine Specification</a>
1616      */
1617     public static final short SWAP = 95;
1618 
1619     /**
1620      * Java VM opcode {@value}.
1621      *
1622      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iadd"> Opcode definitions in
1623      *      The Java Virtual Machine Specification</a>
1624      */
1625     public static final short IADD = 96;
1626 
1627     /**
1628      * Java VM opcode {@value}.
1629      *
1630      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ladd"> Opcode definitions in
1631      *      The Java Virtual Machine Specification</a>
1632      */
1633     public static final short LADD = 97;
1634 
1635     /**
1636      * Java VM opcode {@value}.
1637      *
1638      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fadd"> Opcode definitions in
1639      *      The Java Virtual Machine Specification</a>
1640      */
1641     public static final short FADD = 98;
1642 
1643     /**
1644      * Java VM opcode {@value}.
1645      *
1646      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dadd"> Opcode definitions in
1647      *      The Java Virtual Machine Specification</a>
1648      */
1649     public static final short DADD = 99;
1650 
1651     /**
1652      * Java VM opcode {@value}.
1653      *
1654      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.isub"> Opcode definitions in
1655      *      The Java Virtual Machine Specification</a>
1656      */
1657     public static final short ISUB = 100;
1658 
1659     /**
1660      * Java VM opcode {@value}.
1661      *
1662      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lsub"> Opcode definitions in
1663      *      The Java Virtual Machine Specification</a>
1664      */
1665     public static final short LSUB = 101;
1666 
1667     /**
1668      * Java VM opcode {@value}.
1669      *
1670      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fsub"> Opcode definitions in
1671      *      The Java Virtual Machine Specification</a>
1672      */
1673     public static final short FSUB = 102;
1674 
1675     /**
1676      * Java VM opcode {@value}.
1677      *
1678      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dsub"> Opcode definitions in
1679      *      The Java Virtual Machine Specification</a>
1680      */
1681     public static final short DSUB = 103;
1682 
1683     /**
1684      * Java VM opcode {@value}.
1685      *
1686      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.imul"> Opcode definitions in
1687      *      The Java Virtual Machine Specification</a>
1688      */
1689     public static final short IMUL = 104;
1690 
1691     /**
1692      * Java VM opcode {@value}.
1693      *
1694      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lmul"> Opcode definitions in
1695      *      The Java Virtual Machine Specification</a>
1696      */
1697     public static final short LMUL = 105;
1698 
1699     /**
1700      * Java VM opcode {@value}.
1701      *
1702      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fmul"> Opcode definitions in
1703      *      The Java Virtual Machine Specification</a>
1704      */
1705     public static final short FMUL = 106;
1706 
1707     /**
1708      * Java VM opcode {@value}.
1709      *
1710      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dmul"> Opcode definitions in
1711      *      The Java Virtual Machine Specification</a>
1712      */
1713     public static final short DMUL = 107;
1714 
1715     /**
1716      * Java VM opcode {@value}.
1717      *
1718      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.idiv"> Opcode definitions in
1719      *      The Java Virtual Machine Specification</a>
1720      */
1721     public static final short IDIV = 108;
1722 
1723     /**
1724      * Java VM opcode {@value}.
1725      *
1726      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ldiv"> Opcode definitions in
1727      *      The Java Virtual Machine Specification</a>
1728      */
1729     public static final short LDIV = 109;
1730 
1731     /**
1732      * Java VM opcode {@value}.
1733      *
1734      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fdiv"> Opcode definitions in
1735      *      The Java Virtual Machine Specification</a>
1736      */
1737     public static final short FDIV = 110;
1738 
1739     /**
1740      * Java VM opcode {@value}.
1741      *
1742      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ddiv"> Opcode definitions in
1743      *      The Java Virtual Machine Specification</a>
1744      */
1745     public static final short DDIV = 111;
1746 
1747     /**
1748      * Java VM opcode {@value}.
1749      *
1750      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.irem"> Opcode definitions in
1751      *      The Java Virtual Machine Specification</a>
1752      */
1753     public static final short IREM = 112;
1754 
1755     /**
1756      * Java VM opcode {@value}.
1757      *
1758      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lrem"> Opcode definitions in
1759      *      The Java Virtual Machine Specification</a>
1760      */
1761     public static final short LREM = 113;
1762 
1763     /**
1764      * Java VM opcode {@value}.
1765      *
1766      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.frem"> Opcode definitions in
1767      *      The Java Virtual Machine Specification</a>
1768      */
1769     public static final short FREM = 114;
1770 
1771     /**
1772      * Java VM opcode {@value}.
1773      *
1774      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.drem"> Opcode definitions in
1775      *      The Java Virtual Machine Specification</a>
1776      */
1777     public static final short DREM = 115;
1778 
1779     /**
1780      * Java VM opcode {@value}.
1781      *
1782      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ineg"> Opcode definitions in
1783      *      The Java Virtual Machine Specification</a>
1784      */
1785     public static final short INEG = 116;
1786 
1787     /**
1788      * Java VM opcode {@value}.
1789      *
1790      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lneg"> Opcode definitions in
1791      *      The Java Virtual Machine Specification</a>
1792      */
1793     public static final short LNEG = 117;
1794 
1795     /**
1796      * Java VM opcode {@value}.
1797      *
1798      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fneg"> Opcode definitions in
1799      *      The Java Virtual Machine Specification</a>
1800      */
1801     public static final short FNEG = 118;
1802 
1803     /**
1804      * Java VM opcode {@value}.
1805      *
1806      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dneg"> Opcode definitions in
1807      *      The Java Virtual Machine Specification</a>
1808      */
1809     public static final short DNEG = 119;
1810 
1811     /**
1812      * Java VM opcode {@value}.
1813      *
1814      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ishl"> Opcode definitions in
1815      *      The Java Virtual Machine Specification</a>
1816      */
1817     public static final short ISHL = 120;
1818 
1819     /**
1820      * Java VM opcode {@value}.
1821      *
1822      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lshl"> Opcode definitions in
1823      *      The Java Virtual Machine Specification</a>
1824      */
1825     public static final short LSHL = 121;
1826 
1827     /**
1828      * Java VM opcode {@value}.
1829      *
1830      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ishr"> Opcode definitions in
1831      *      The Java Virtual Machine Specification</a>
1832      */
1833     public static final short ISHR = 122;
1834 
1835     /**
1836      * Java VM opcode {@value}.
1837      *
1838      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lshr"> Opcode definitions in
1839      *      The Java Virtual Machine Specification</a>
1840      */
1841     public static final short LSHR = 123;
1842 
1843     /**
1844      * Java VM opcode {@value}.
1845      *
1846      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iushr"> Opcode definitions in
1847      *      The Java Virtual Machine Specification</a>
1848      */
1849     public static final short IUSHR = 124;
1850 
1851     /**
1852      * Java VM opcode {@value}.
1853      *
1854      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lushr"> Opcode definitions in
1855      *      The Java Virtual Machine Specification</a>
1856      */
1857     public static final short LUSHR = 125;
1858 
1859     /**
1860      * Java VM opcode {@value}.
1861      *
1862      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iand"> Opcode definitions in
1863      *      The Java Virtual Machine Specification</a>
1864      */
1865     public static final short IAND = 126;
1866 
1867     /**
1868      * Java VM opcode {@value}.
1869      *
1870      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.land"> Opcode definitions in
1871      *      The Java Virtual Machine Specification</a>
1872      */
1873     public static final short LAND = 127;
1874 
1875     /**
1876      * Java VM opcode {@value}.
1877      *
1878      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ior"> Opcode definitions in The
1879      *      Java Virtual Machine Specification</a>
1880      */
1881     public static final short IOR = 128;
1882 
1883     /**
1884      * Java VM opcode {@value}.
1885      *
1886      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lor"> Opcode definitions in The
1887      *      Java Virtual Machine Specification</a>
1888      */
1889     public static final short LOR = 129;
1890 
1891     /**
1892      * Java VM opcode {@value}.
1893      *
1894      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ixor"> Opcode definitions in
1895      *      The Java Virtual Machine Specification</a>
1896      */
1897     public static final short IXOR = 130;
1898 
1899     /**
1900      * Java VM opcode {@value}.
1901      *
1902      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lxor"> Opcode definitions in
1903      *      The Java Virtual Machine Specification</a>
1904      */
1905     public static final short LXOR = 131;
1906 
1907     /**
1908      * Java VM opcode {@value}.
1909      *
1910      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iinc"> Opcode definitions in
1911      *      The Java Virtual Machine Specification</a>
1912      */
1913     public static final short IINC = 132;
1914 
1915     /**
1916      * Java VM opcode {@value}.
1917      *
1918      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.i2l"> Opcode definitions in The
1919      *      Java Virtual Machine Specification</a>
1920      */
1921     public static final short I2L = 133;
1922 
1923     /**
1924      * Java VM opcode {@value}.
1925      *
1926      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.i2f"> Opcode definitions in The
1927      *      Java Virtual Machine Specification</a>
1928      */
1929     public static final short I2F = 134;
1930 
1931     /**
1932      * Java VM opcode {@value}.
1933      *
1934      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.i2d"> Opcode definitions in The
1935      *      Java Virtual Machine Specification</a>
1936      */
1937     public static final short I2D = 135;
1938 
1939     /**
1940      * Java VM opcode {@value}.
1941      *
1942      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.l2i"> Opcode definitions in The
1943      *      Java Virtual Machine Specification</a>
1944      */
1945     public static final short L2I = 136;
1946 
1947     /**
1948      * Java VM opcode {@value}.
1949      *
1950      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.l2f"> Opcode definitions in The
1951      *      Java Virtual Machine Specification</a>
1952      */
1953     public static final short L2F = 137;
1954 
1955     /**
1956      * Java VM opcode {@value}.
1957      *
1958      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.l2d"> Opcode definitions in The
1959      *      Java Virtual Machine Specification</a>
1960      */
1961     public static final short L2D = 138;
1962 
1963     /**
1964      * Java VM opcode {@value}.
1965      *
1966      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.f2i"> Opcode definitions in The
1967      *      Java Virtual Machine Specification</a>
1968      */
1969     public static final short F2I = 139;
1970 
1971     /**
1972      * Java VM opcode {@value}.
1973      *
1974      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.f2l"> Opcode definitions in The
1975      *      Java Virtual Machine Specification</a>
1976      */
1977     public static final short F2L = 140;
1978 
1979     /**
1980      * Java VM opcode {@value}.
1981      *
1982      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.f2d"> Opcode definitions in The
1983      *      Java Virtual Machine Specification</a>
1984      */
1985     public static final short F2D = 141;
1986 
1987     /**
1988      * Java VM opcode {@value}.
1989      *
1990      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.d2i"> Opcode definitions in The
1991      *      Java Virtual Machine Specification</a>
1992      */
1993     public static final short D2I = 142;
1994 
1995     /**
1996      * Java VM opcode {@value}.
1997      *
1998      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.d2l"> Opcode definitions in The
1999      *      Java Virtual Machine Specification</a>
2000      */
2001     public static final short D2L = 143;
2002 
2003     /**
2004      * Java VM opcode {@value}.
2005      *
2006      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.d2f"> Opcode definitions in The
2007      *      Java Virtual Machine Specification</a>
2008      */
2009     public static final short D2F = 144;
2010 
2011     /**
2012      * Java VM opcode {@value}.
2013      *
2014      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.i2b"> Opcode definitions in The
2015      *      Java Virtual Machine Specification</a>
2016      */
2017     public static final short I2B = 145;
2018 
2019     /**
2020      * Java VM opcode {@value}.
2021      *
2022      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> Opcode definitions in The
2023      *      Java Virtual Machine Specification</a>
2024      */
2025     public static final short INT2BYTE = 145; // Old notation
2026 
2027     /**
2028      * Java VM opcode {@value}.
2029      *
2030      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.i2c"> Opcode definitions in The
2031      *      Java Virtual Machine Specification</a>
2032      */
2033     public static final short I2C = 146;
2034 
2035     /**
2036      * Java VM opcode {@value}.
2037      *
2038      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> Opcode definitions in The
2039      *      Java Virtual Machine Specification</a>
2040      */
2041     public static final short INT2CHAR = 146; // Old notation
2042 
2043     /**
2044      * Java VM opcode {@value}.
2045      *
2046      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.i2s"> Opcode definitions in The
2047      *      Java Virtual Machine Specification</a>
2048      */
2049     public static final short I2S = 147;
2050 
2051     /**
2052      * Java VM opcode {@value}.
2053      *
2054      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> Opcode definitions in The
2055      *      Java Virtual Machine Specification</a>
2056      */
2057     public static final short INT2SHORT = 147; // Old notation
2058 
2059     /**
2060      * Java VM opcode {@value}.
2061      *
2062      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lcmp"> Opcode definitions in
2063      *      The Java Virtual Machine Specification</a>
2064      */
2065     public static final short LCMP = 148;
2066 
2067     /**
2068      * Java VM opcode {@value}.
2069      *
2070      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fcmpl"> Opcode definitions in
2071      *      The Java Virtual Machine Specification</a>
2072      */
2073     public static final short FCMPL = 149;
2074 
2075     /**
2076      * Java VM opcode {@value}.
2077      *
2078      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fcmpg"> Opcode definitions in
2079      *      The Java Virtual Machine Specification</a>
2080      */
2081     public static final short FCMPG = 150;
2082 
2083     /**
2084      * Java VM opcode {@value}.
2085      *
2086      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dcmpl"> Opcode definitions in
2087      *      The Java Virtual Machine Specification</a>
2088      */
2089     public static final short DCMPL = 151;
2090 
2091     /**
2092      * Java VM opcode {@value}.
2093      *
2094      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dcmpg"> Opcode definitions in
2095      *      The Java Virtual Machine Specification</a>
2096      */
2097     public static final short DCMPG = 152;
2098 
2099     /**
2100      * Java VM opcode {@value}.
2101      *
2102      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ifeq"> Opcode definitions in
2103      *      The Java Virtual Machine Specification</a>
2104      */
2105     public static final short IFEQ = 153;
2106 
2107     /**
2108      * Java VM opcode {@value}.
2109      *
2110      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ifne"> Opcode definitions in
2111      *      The Java Virtual Machine Specification</a>
2112      */
2113     public static final short IFNE = 154;
2114 
2115     /**
2116      * Java VM opcode {@value}.
2117      *
2118      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iflt"> Opcode definitions in
2119      *      The Java Virtual Machine Specification</a>
2120      */
2121     public static final short IFLT = 155;
2122 
2123     /**
2124      * Java VM opcode {@value}.
2125      *
2126      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ifge"> Opcode definitions in
2127      *      The Java Virtual Machine Specification</a>
2128      */
2129     public static final short IFGE = 156;
2130 
2131     /**
2132      * Java VM opcode {@value}.
2133      *
2134      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ifgt"> Opcode definitions in
2135      *      The Java Virtual Machine Specification</a>
2136      */
2137     public static final short IFGT = 157;
2138 
2139     /**
2140      * Java VM opcode {@value}.
2141      *
2142      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ifle"> Opcode definitions in
2143      *      The Java Virtual Machine Specification</a>
2144      */
2145     public static final short IFLE = 158;
2146 
2147     /**
2148      * Java VM opcode {@value}.
2149      *
2150      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.if_icmp_cond"> Opcode
2151      *      definitions in The Java Virtual Machine Specification</a>
2152      */
2153     public static final short IF_ICMPEQ = 159;
2154 
2155     /**
2156      * Java VM opcode {@value}.
2157      *
2158      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.if_icmp_cond"> Opcode
2159      *      definitions in The Java Virtual Machine Specification</a>
2160      */
2161     public static final short IF_ICMPNE = 160;
2162 
2163     /**
2164      * Java VM opcode {@value}.
2165      *
2166      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.if_icmp_cond"> Opcode
2167      *      definitions in The Java Virtual Machine Specification</a>
2168      */
2169     public static final short IF_ICMPLT = 161;
2170 
2171     /**
2172      * Java VM opcode {@value}.
2173      *
2174      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.if_icmp_cond"> Opcode
2175      *      definitions in The Java Virtual Machine Specification</a>
2176      */
2177     public static final short IF_ICMPGE = 162;
2178 
2179     /**
2180      * Java VM opcode {@value}.
2181      *
2182      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.if_icmp_cond"> Opcode
2183      *      definitions in The Java Virtual Machine Specification</a>
2184      */
2185     public static final short IF_ICMPGT = 163;
2186 
2187     /**
2188      * Java VM opcode {@value}.
2189      *
2190      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.if_icmp_cond"> Opcode
2191      *      definitions in The Java Virtual Machine Specification</a>
2192      */
2193     public static final short IF_ICMPLE = 164;
2194 
2195     /**
2196      * Java VM opcode {@value}.
2197      *
2198      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.if_acmp_cond"> Opcode
2199      *      definitions in The Java Virtual Machine Specification</a>
2200      */
2201     public static final short IF_ACMPEQ = 165;
2202 
2203     /**
2204      * Java VM opcode {@value}.
2205      *
2206      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.if_acmp_cond"> Opcode
2207      *      definitions in The Java Virtual Machine Specification</a>
2208      */
2209     public static final short IF_ACMPNE = 166;
2210 
2211     /**
2212      * Java VM opcode {@value}.
2213      *
2214      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.goto"> Opcode definitions in
2215      *      The Java Virtual Machine Specification</a>
2216      */
2217     public static final short GOTO = 167;
2218 
2219     /**
2220      * Java VM opcode {@value}.
2221      *
2222      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.jsr"> Opcode definitions in The
2223      *      Java Virtual Machine Specification</a>
2224      */
2225     public static final short JSR = 168;
2226 
2227     /**
2228      * Java VM opcode {@value}.
2229      *
2230      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ret"> Opcode definitions in The
2231      *      Java Virtual Machine Specification</a>
2232      */
2233     public static final short RET = 169;
2234 
2235     /**
2236      * Java VM opcode {@value}.
2237      *
2238      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.tableswitch"> Opcode
2239      *      definitions in The Java Virtual Machine Specification</a>
2240      */
2241     public static final short TABLESWITCH = 170;
2242 
2243     /**
2244      * Java VM opcode {@value}.
2245      *
2246      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lookupswitch"> Opcode
2247      *      definitions in The Java Virtual Machine Specification</a>
2248      */
2249     public static final short LOOKUPSWITCH = 171;
2250 
2251     /**
2252      * Java VM opcode {@value}.
2253      *
2254      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ireturn"> Opcode definitions in
2255      *      The Java Virtual Machine Specification</a>
2256      */
2257     public static final short IRETURN = 172;
2258 
2259     /**
2260      * Java VM opcode {@value}.
2261      *
2262      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lreturn"> Opcode definitions in
2263      *      The Java Virtual Machine Specification</a>
2264      */
2265     public static final short LRETURN = 173;
2266 
2267     /**
2268      * Java VM opcode {@value}.
2269      *
2270      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.freturn"> Opcode definitions in
2271      *      The Java Virtual Machine Specification</a>
2272      */
2273     public static final short FRETURN = 174;
2274 
2275     /**
2276      * Java VM opcode {@value}.
2277      *
2278      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dreturn"> Opcode definitions in
2279      *      The Java Virtual Machine Specification</a>
2280      */
2281     public static final short DRETURN = 175;
2282 
2283     /**
2284      * Java VM opcode {@value}.
2285      *
2286      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.areturn"> Opcode definitions in
2287      *      The Java Virtual Machine Specification</a>
2288      */
2289     public static final short ARETURN = 176;
2290 
2291     /**
2292      * Java VM opcode {@value}.
2293      *
2294      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.return"> Opcode definitions in
2295      *      The Java Virtual Machine Specification</a>
2296      */
2297     public static final short RETURN = 177;
2298 
2299     /**
2300      * Java VM opcode {@value}.
2301      *
2302      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.getstatic"> Opcode definitions
2303      *      in The Java Virtual Machine Specification</a>
2304      */
2305     public static final short GETSTATIC = 178;
2306 
2307     /**
2308      * Java VM opcode {@value}.
2309      *
2310      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.putstatic"> Opcode definitions
2311      *      in The Java Virtual Machine Specification</a>
2312      */
2313     public static final short PUTSTATIC = 179;
2314 
2315     /**
2316      * Java VM opcode {@value}.
2317      *
2318      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.getfield"> Opcode definitions
2319      *      in The Java Virtual Machine Specification</a>
2320      */
2321     public static final short GETFIELD = 180;
2322 
2323     /**
2324      * Java VM opcode {@value}.
2325      *
2326      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.putfield"> Opcode definitions
2327      *      in The Java Virtual Machine Specification</a>
2328      */
2329     public static final short PUTFIELD = 181;
2330 
2331     /**
2332      * Java VM opcode {@value}.
2333      *
2334      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.invokevirtual"> Opcode
2335      *      definitions in The Java Virtual Machine Specification</a>
2336      */
2337     public static final short INVOKEVIRTUAL = 182;
2338 
2339     /**
2340      * Java VM opcode {@value}.
2341      *
2342      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.invokespecial"> Opcode
2343      *      definitions in The Java Virtual Machine Specification</a>
2344      */
2345     public static final short INVOKESPECIAL = 183;
2346 
2347     /**
2348      * Java VM opcode {@value}.
2349      *
2350      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> Opcode definitions in The
2351      *      Java Virtual Machine Specification</a>
2352      */
2353     public static final short INVOKENONVIRTUAL = 183; // Old name in JDK 1.0
2354 
2355     /**
2356      * Java VM opcode {@value}.
2357      *
2358      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.invokestatic"> Opcode
2359      *      definitions in The Java Virtual Machine Specification</a>
2360      */
2361     public static final short INVOKESTATIC = 184;
2362 
2363     /**
2364      * Java VM opcode {@value}.
2365      *
2366      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.invokeinterface"> Opcode
2367      *      definitions in The Java Virtual Machine Specification</a>
2368      */
2369     public static final short INVOKEINTERFACE = 185;
2370 
2371     /**
2372      * Java VM opcode {@value}.
2373      *
2374      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.invokedynamic"> Opcode
2375      *      definitions in The Java Virtual Machine Specification</a>
2376      */
2377     public static final short INVOKEDYNAMIC = 186;
2378 
2379     /**
2380      * Java VM opcode {@value}.
2381      *
2382      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.new"> Opcode definitions in The
2383      *      Java Virtual Machine Specification</a>
2384      */
2385     public static final short NEW = 187;
2386 
2387     /**
2388      * Java VM opcode {@value}.
2389      *
2390      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.newarray"> Opcode definitions
2391      *      in The Java Virtual Machine Specification</a>
2392      */
2393     public static final short NEWARRAY = 188;
2394 
2395     /**
2396      * Java VM opcode {@value}.
2397      *
2398      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.anewarray"> Opcode definitions
2399      *      in The Java Virtual Machine Specification</a>
2400      */
2401     public static final short ANEWARRAY = 189;
2402 
2403     /**
2404      * Java VM opcode {@value}.
2405      *
2406      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.arraylength"> Opcode
2407      *      definitions in The Java Virtual Machine Specification</a>
2408      */
2409     public static final short ARRAYLENGTH = 190;
2410 
2411     /**
2412      * Java VM opcode {@value}.
2413      *
2414      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.athrow"> Opcode definitions in
2415      *      The Java Virtual Machine Specification</a>
2416      */
2417     public static final short ATHROW = 191;
2418 
2419     /**
2420      * Java VM opcode {@value}.
2421      *
2422      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.checkcast"> Opcode definitions
2423      *      in The Java Virtual Machine Specification</a>
2424      */
2425     public static final short CHECKCAST = 192;
2426 
2427     /**
2428      * Java VM opcode {@value}.
2429      *
2430      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.instanceof"> Opcode definitions
2431      *      in The Java Virtual Machine Specification</a>
2432      */
2433     public static final short INSTANCEOF = 193;
2434 
2435     /**
2436      * Java VM opcode {@value}.
2437      *
2438      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.monitorenter"> Opcode
2439      *      definitions in The Java Virtual Machine Specification</a>
2440      */
2441     public static final short MONITORENTER = 194;
2442 
2443     /**
2444      * Java VM opcode {@value}.
2445      *
2446      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.monitorexit"> Opcode
2447      *      definitions in The Java Virtual Machine Specification</a>
2448      */
2449     public static final short MONITOREXIT = 195;
2450 
2451     /**
2452      * Java VM opcode {@value}.
2453      *
2454      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.wide"> Opcode definitions in
2455      *      The Java Virtual Machine Specification</a>
2456      */
2457     public static final short WIDE = 196;
2458 
2459     /**
2460      * Java VM opcode {@value}.
2461      *
2462      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.multianewarray"> Opcode
2463      *      definitions in The Java Virtual Machine Specification</a>
2464      */
2465     public static final short MULTIANEWARRAY = 197;
2466 
2467     /**
2468      * Java VM opcode {@value}.
2469      *
2470      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ifnull"> Opcode definitions in
2471      *      The Java Virtual Machine Specification</a>
2472      */
2473     public static final short IFNULL = 198;
2474 
2475     /**
2476      * Java VM opcode {@value}.
2477      *
2478      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ifnonnull"> Opcode definitions
2479      *      in The Java Virtual Machine Specification</a>
2480      */
2481     public static final short IFNONNULL = 199;
2482 
2483     /**
2484      * Java VM opcode {@value}.
2485      *
2486      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.goto_w"> Opcode definitions in
2487      *      The Java Virtual Machine Specification</a>
2488      */
2489     public static final short GOTO_W = 200;
2490 
2491     /**
2492      * Java VM opcode {@value}.
2493      *
2494      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.jsr_w"> Opcode definitions in
2495      *      The Java Virtual Machine Specification</a>
2496      */
2497     public static final short JSR_W = 201;
2498 
2499     /**
2500      * JVM internal opcode {@value}.
2501      *
2502      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.2"> Reserved opcodes in the Java
2503      *      Virtual Machine Specification</a>
2504      */
2505     public static final short BREAKPOINT = 202;
2506 
2507     /**
2508      * JVM internal opcode {@value}.
2509      *
2510      * @see <a href=
2511      *      "https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
2512      *      Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
2513      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> Why the _quick
2514      *      opcodes were removed from the second version of the Java Virtual Machine Specification.</a>
2515      */
2516     public static final short LDC_QUICK = 203;
2517 
2518     /**
2519      * JVM internal opcode {@value}.
2520      *
2521      * @see <a href=
2522      *      "https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
2523      *      Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
2524      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> Why the _quick
2525      *      opcodes were removed from the second version of the Java Virtual Machine Specification.</a>
2526      */
2527     public static final short LDC_W_QUICK = 204;
2528 
2529     /**
2530      * JVM internal opcode {@value}.
2531      *
2532      * @see <a href=
2533      *      "https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
2534      *      Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
2535      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> Why the _quick
2536      *      opcodes were removed from the second version of the Java Virtual Machine Specification.</a>
2537      */
2538     public static final short LDC2_W_QUICK = 205;
2539 
2540     /**
2541      * JVM internal opcode {@value}.
2542      *
2543      * @see <a href=
2544      *      "https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
2545      *      Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
2546      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> Why the _quick
2547      *      opcodes were removed from the second version of the Java Virtual Machine Specification.</a>
2548      */
2549     public static final short GETFIELD_QUICK = 206;
2550 
2551     /**
2552      * JVM internal opcode {@value}.
2553      *
2554      * @see <a href=
2555      *      "https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
2556      *      Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
2557      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> Why the _quick
2558      *      opcodes were removed from the second version of the Java Virtual Machine Specification.</a>
2559      */
2560     public static final short PUTFIELD_QUICK = 207;
2561 
2562     /**
2563      * JVM internal opcode {@value}.
2564      *
2565      * @see <a href=
2566      *      "https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
2567      *      Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
2568      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> Why the _quick
2569      *      opcodes were removed from the second version of the Java Virtual Machine Specification.</a>
2570      */
2571     public static final short GETFIELD2_QUICK = 208;
2572 
2573     /**
2574      * JVM internal opcode {@value}.
2575      *
2576      * @see <a href=
2577      *      "https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
2578      *      Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
2579      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> Why the _quick
2580      *      opcodes were removed from the second version of the Java Virtual Machine Specification.</a>
2581      */
2582     public static final short PUTFIELD2_QUICK = 209;
2583 
2584     /**
2585      * JVM internal opcode {@value}.
2586      *
2587      * @see <a href=
2588      *      "https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
2589      *      Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
2590      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> Why the _quick
2591      *      opcodes were removed from the second version of the Java Virtual Machine Specification.</a>
2592      */
2593     public static final short GETSTATIC_QUICK = 210;
2594 
2595     /**
2596      * JVM internal opcode {@value}.
2597      *
2598      * @see <a href=
2599      *      "https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
2600      *      Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
2601      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> Why the _quick
2602      *      opcodes were removed from the second version of the Java Virtual Machine Specification.</a>
2603      */
2604     public static final short PUTSTATIC_QUICK = 211;
2605 
2606     /**
2607      * JVM internal opcode {@value}.
2608      *
2609      * @see <a href=
2610      *      "https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
2611      *      Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
2612      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> Why the _quick
2613      *      opcodes were removed from the second version of the Java Virtual Machine Specification.</a>
2614      */
2615     public static final short GETSTATIC2_QUICK = 212;
2616 
2617     /**
2618      * JVM internal opcode {@value}.
2619      *
2620      * @see <a href=
2621      *      "https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
2622      *      Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
2623      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> Why the _quick
2624      *      opcodes were removed from the second version of the Java Virtual Machine Specification.</a>
2625      */
2626     public static final short PUTSTATIC2_QUICK = 213;
2627 
2628     /**
2629      * JVM internal opcode {@value}.
2630      *
2631      * @see <a href=
2632      *      "https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
2633      *      Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
2634      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> Why the _quick
2635      *      opcodes were removed from the second version of the Java Virtual Machine Specification.</a>
2636      */
2637     public static final short INVOKEVIRTUAL_QUICK = 214;
2638 
2639     /**
2640      * JVM internal opcode {@value}.
2641      *
2642      * @see <a href=
2643      *      "https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
2644      *      Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
2645      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> Why the _quick
2646      *      opcodes were removed from the second version of the Java Virtual Machine Specification.</a>
2647      */
2648     public static final short INVOKENONVIRTUAL_QUICK = 215;
2649 
2650     /**
2651      * JVM internal opcode {@value}.
2652      *
2653      * @see <a href=
2654      *      "https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
2655      *      Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
2656      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> Why the _quick
2657      *      opcodes were removed from the second version of the Java Virtual Machine Specification.</a>
2658      */
2659     public static final short INVOKESUPER_QUICK = 216;
2660 
2661     /**
2662      * JVM internal opcode {@value}.
2663      *
2664      * @see <a href=
2665      *      "https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
2666      *      Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
2667      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> Why the _quick
2668      *      opcodes were removed from the second version of the Java Virtual Machine Specification.</a>
2669      */
2670     public static final short INVOKESTATIC_QUICK = 217;
2671 
2672     /**
2673      * JVM internal opcode {@value}.
2674      *
2675      * @see <a href=
2676      *      "https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
2677      *      Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
2678      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> Why the _quick
2679      *      opcodes were removed from the second version of the Java Virtual Machine Specification.</a>
2680      */
2681     public static final short INVOKEINTERFACE_QUICK = 218;
2682 
2683     /**
2684      * JVM internal opcode {@value}.
2685      *
2686      * @see <a href=
2687      *      "https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
2688      *      Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
2689      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> Why the _quick
2690      *      opcodes were removed from the second version of the Java Virtual Machine Specification.</a>
2691      */
2692     public static final short INVOKEVIRTUALOBJECT_QUICK = 219;
2693 
2694     /**
2695      * JVM internal opcode {@value}.
2696      *
2697      * @see <a href=
2698      *      "https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
2699      *      Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
2700      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> Why the _quick
2701      *      opcodes were removed from the second version of the Java Virtual Machine Specification.</a>
2702      */
2703     public static final short NEW_QUICK = 221;
2704 
2705     /**
2706      * JVM internal opcode {@value}.
2707      *
2708      * @see <a href=
2709      *      "https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
2710      *      Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
2711      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> Why the _quick
2712      *      opcodes were removed from the second version of the Java Virtual Machine Specification.</a>
2713      */
2714     public static final short ANEWARRAY_QUICK = 222;
2715 
2716     /**
2717      * JVM internal opcode {@value}.
2718      *
2719      * @see <a href=
2720      *      "https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
2721      *      Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
2722      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> Why the _quick
2723      *      opcodes were removed from the second version of the Java Virtual Machine Specification.</a>
2724      */
2725     public static final short MULTIANEWARRAY_QUICK = 223;
2726 
2727     /**
2728      * JVM internal opcode {@value}.
2729      *
2730      * @see <a href=
2731      *      "https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
2732      *      Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
2733      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> Why the _quick
2734      *      opcodes were removed from the second version of the Java Virtual Machine Specification.</a>
2735      */
2736     public static final short CHECKCAST_QUICK = 224;
2737 
2738     /**
2739      * JVM internal opcode {@value}.
2740      *
2741      * @see <a href=
2742      *      "https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
2743      *      Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
2744      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> Why the _quick
2745      *      opcodes were removed from the second version of the Java Virtual Machine Specification.</a>
2746      */
2747     public static final short INSTANCEOF_QUICK = 225;
2748 
2749     /**
2750      * JVM internal opcode {@value}.
2751      *
2752      * @see <a href=
2753      *      "https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
2754      *      Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
2755      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> Why the _quick
2756      *      opcodes were removed from the second version of the Java Virtual Machine Specification.</a>
2757      */
2758     public static final short INVOKEVIRTUAL_QUICK_W = 226;
2759 
2760     /**
2761      * JVM internal opcode {@value}.
2762      *
2763      * @see <a href=
2764      *      "https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
2765      *      Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
2766      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> Why the _quick
2767      *      opcodes were removed from the second version of the Java Virtual Machine Specification.</a>
2768      */
2769     public static final short GETFIELD_QUICK_W = 227;
2770 
2771     /**
2772      * JVM internal opcode {@value}.
2773      *
2774      * @see <a href=
2775      *      "https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
2776      *      Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
2777      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> Why the _quick
2778      *      opcodes were removed from the second version of the Java Virtual Machine Specification.</a>
2779      */
2780     public static final short PUTFIELD_QUICK_W = 228;
2781 
2782     /**
2783      * JVM internal opcode {@value}.
2784      *
2785      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.2"> Reserved opcodes in the Java
2786      *      Virtual Machine Specification</a>
2787      */
2788     public static final short IMPDEP1 = 254;
2789 
2790     /**
2791      * JVM internal opcode {@value}.
2792      *
2793      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.2"> Reserved opcodes in the Java
2794      *      Virtual Machine Specification</a>
2795      */
2796     public static final short IMPDEP2 = 255;
2797 
2798     /**
2799      * BCEL virtual instruction for pushing an arbitrary data type onto the stack: {@value}. Will be converted to the appropriate JVM
2800      * opcode when the class is dumped.
2801      */
2802     public static final short PUSH = 4711;
2803 
2804     /**
2805      * BCEL virtual instruction for either LOOKUPSWITCH or TABLESWITCH: {@value}. Will be converted to the appropriate JVM opcode when
2806      * the class is dumped.
2807      */
2808     public static final short SWITCH = 4712;
2809 
2810     /**
2811      * Illegal opcode: {@value}.
2812      */
2813     public static final short UNDEFINED = -1;
2814 
2815     /**
2816      * Illegal opcode: {@value}.
2817      */
2818     public static final short UNPREDICTABLE = -2;
2819 
2820     /**
2821      * Illegal opcode: {@value}.
2822      */
2823     public static final short RESERVED = -3;
2824 
2825     /**
2826      * Mnemonic for an illegal opcode: {@value}.
2827      */
2828     public static final String ILLEGAL_OPCODE = "<illegal opcode>";
2829 
2830     /**
2831      * Mnemonic for an illegal type: {@value}.
2832      */
2833     public static final String ILLEGAL_TYPE = "<illegal type>";
2834 
2835     /**
2836      * Boolean data type: {@value}.
2837      *
2838      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.9.1-120-P"> Static Constraints in
2839      *      the Java Virtual Machine Specification</a>
2840      */
2841     public static final byte T_BOOLEAN = 4;
2842 
2843     /**
2844      * Char data type: {@value}.
2845      *
2846      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.9.1-120-P"> Static Constraints in
2847      *      the Java Virtual Machine Specification</a>
2848      */
2849     public static final byte T_CHAR = 5;
2850 
2851     /**
2852      * Float data type: {@value}.
2853      *
2854      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.9.1-120-P"> Static Constraints in
2855      *      the Java Virtual Machine Specification</a>
2856      */
2857     public static final byte T_FLOAT = 6;
2858 
2859     /**
2860      * Double data type: {@value}.
2861      *
2862      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.9.1-120-P"> Static Constraints in
2863      *      the Java Virtual Machine Specification</a>
2864      */
2865     public static final byte T_DOUBLE = 7;
2866 
2867     /**
2868      * Byte data type: {@value}.
2869      *
2870      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.9.1-120-P"> Static Constraints in
2871      *      the Java Virtual Machine Specification</a>
2872      */
2873     public static final byte T_BYTE = 8;
2874 
2875     /**
2876      * Short data type: {@value}.
2877      *
2878      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.9.1-120-P"> Static Constraints in
2879      *      the Java Virtual Machine Specification</a>
2880      */
2881     public static final byte T_SHORT = 9;
2882 
2883     /**
2884      * Int data type: {@value}.
2885      *
2886      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.9.1-120-P"> Static Constraints in
2887      *      the Java Virtual Machine Specification</a>
2888      */
2889     public static final byte T_INT = 10;
2890 
2891     /**
2892      * Long data type: {@value}.
2893      *
2894      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.9.1-120-P"> Static Constraints in
2895      *      the Java Virtual Machine Specification</a>
2896      */
2897     public static final byte T_LONG = 11;
2898 
2899     /** Void data type (non-standard). */
2900     public static final byte T_VOID = 12; // Non-standard
2901 
2902     /** Array data type. */
2903     public static final byte T_ARRAY = 13;
2904 
2905     /** Object data type. */
2906     public static final byte T_OBJECT = 14;
2907 
2908     /** Reference data type (deprecated). */
2909     public static final byte T_REFERENCE = 14; // Deprecated
2910 
2911     /** Unknown data type. */
2912     public static final byte T_UNKNOWN = 15;
2913 
2914     /** Address data type. */
2915     public static final byte T_ADDRESS = 16;
2916 
2917     /**
2918      * The primitive type names corresponding to the T_XX constants, for example, TYPE_NAMES[T_INT] = "int"
2919      */
2920     private static final String[] TYPE_NAMES = {ILLEGAL_TYPE, ILLEGAL_TYPE, ILLEGAL_TYPE, ILLEGAL_TYPE, "boolean", "char", "float", "double", "byte", "short",
2921         "int", "long", "void", "array", "object", "unknown", "address"};
2922 
2923     /**
2924      * The primitive class names corresponding to the T_XX constants, for example, CLASS_TYPE_NAMES[T_INT] = "java.lang.Integer"
2925      */
2926     private static final String[] CLASS_TYPE_NAMES = {ILLEGAL_TYPE, ILLEGAL_TYPE, ILLEGAL_TYPE, ILLEGAL_TYPE, "java.lang.Boolean", "java.lang.Character",
2927         "java.lang.Float", "java.lang.Double", "java.lang.Byte", "java.lang.Short", "java.lang.Integer", "java.lang.Long", "java.lang.Void", ILLEGAL_TYPE,
2928         ILLEGAL_TYPE, ILLEGAL_TYPE, ILLEGAL_TYPE};
2929 
2930     /**
2931      * The signature characters corresponding to primitive types, for example, SHORT_TYPE_NAMES[T_INT] = "I"
2932      */
2933     public static final String[] SHORT_TYPE_NAMES = {ILLEGAL_TYPE, ILLEGAL_TYPE, ILLEGAL_TYPE, ILLEGAL_TYPE, "Z", "C", "F", "D", "B", "S", "I", "J", "V",
2934         ILLEGAL_TYPE, ILLEGAL_TYPE, ILLEGAL_TYPE};
2935 
2936     /**
2937      * Number of byte code operands for each opcode, i.e., number of bytes after the tag byte itself. Indexed by opcode, so
2938      * NO_OF_OPERANDS[BIPUSH] = the number of operands for a bipush instruction.
2939      */
2940     static final short[] NO_OF_OPERANDS = {0/* nop */, 0/* aconst_null */, 0/* iconst_m1 */, 0/* iconst_0 */, 0/* iconst_1 */, 0/* iconst_2 */,
2941         0/* iconst_3 */, 0/* iconst_4 */, 0/* iconst_5 */, 0/* lconst_0 */, 0/* lconst_1 */, 0/* fconst_0 */, 0/* fconst_1 */, 0/* fconst_2 */, 0/* dconst_0 */,
2942         0/* dconst_1 */, 1/* bipush */, 2/* sipush */, 1/* ldc */, 2/* ldc_w */, 2/* ldc2_w */, 1/* iload */, 1/* lload */, 1/* fload */, 1/* dload */,
2943         1/* aload */, 0/* iload_0 */, 0/* iload_1 */, 0/* iload_2 */, 0/* iload_3 */, 0/* lload_0 */, 0/* lload_1 */, 0/* lload_2 */, 0/* lload_3 */,
2944         0/* fload_0 */, 0/* fload_1 */, 0/* fload_2 */, 0/* fload_3 */, 0/* dload_0 */, 0/* dload_1 */, 0/* dload_2 */, 0/* dload_3 */, 0/* aload_0 */,
2945         0/* aload_1 */, 0/* aload_2 */, 0/* aload_3 */, 0/* iaload */, 0/* laload */, 0/* faload */, 0/* daload */, 0/* aaload */, 0/* baload */, 0/* caload */,
2946         0/* saload */, 1/* istore */, 1/* lstore */, 1/* fstore */, 1/* dstore */, 1/* astore */, 0/* istore_0 */, 0/* istore_1 */, 0/* istore_2 */,
2947         0/* istore_3 */, 0/* lstore_0 */, 0/* lstore_1 */, 0/* lstore_2 */, 0/* lstore_3 */, 0/* fstore_0 */, 0/* fstore_1 */, 0/* fstore_2 */, 0/* fstore_3 */,
2948         0/* dstore_0 */, 0/* dstore_1 */, 0/* dstore_2 */, 0/* dstore_3 */, 0/* astore_0 */, 0/* astore_1 */, 0/* astore_2 */, 0/* astore_3 */, 0/* iastore */,
2949         0/* lastore */, 0/* fastore */, 0/* dastore */, 0/* aastore */, 0/* bastore */, 0/* castore */, 0/* sastore */, 0/* pop */, 0/* pop2 */, 0/* dup */,
2950         0/* dup_x1 */, 0/* dup_x2 */, 0/* dup2 */, 0/* dup2_x1 */, 0/* dup2_x2 */, 0/* swap */, 0/* iadd */, 0/* ladd */, 0/* fadd */, 0/* dadd */, 0/* isub */,
2951         0/* lsub */, 0/* fsub */, 0/* dsub */, 0/* imul */, 0/* lmul */, 0/* fmul */, 0/* dmul */, 0/* idiv */, 0/* ldiv */, 0/* fdiv */, 0/* ddiv */,
2952         0/* irem */, 0/* lrem */, 0/* frem */, 0/* drem */, 0/* ineg */, 0/* lneg */, 0/* fneg */, 0/* dneg */, 0/* ishl */, 0/* lshl */, 0/* ishr */,
2953         0/* lshr */, 0/* iushr */, 0/* lushr */, 0/* iand */, 0/* land */, 0/* ior */, 0/* lor */, 0/* ixor */, 0/* lxor */, 2/* iinc */, 0/* i2l */,
2954         0/* i2f */, 0/* i2d */, 0/* l2i */, 0/* l2f */, 0/* l2d */, 0/* f2i */, 0/* f2l */, 0/* f2d */, 0/* d2i */, 0/* d2l */, 0/* d2f */, 0/* i2b */,
2955         0/* i2c */, 0/* i2s */, 0/* lcmp */, 0/* fcmpl */, 0/* fcmpg */, 0/* dcmpl */, 0/* dcmpg */, 2/* ifeq */, 2/* ifne */, 2/* iflt */, 2/* ifge */,
2956         2/* ifgt */, 2/* ifle */, 2/* if_icmpeq */, 2/* if_icmpne */, 2/* if_icmplt */, 2/* if_icmpge */, 2/* if_icmpgt */, 2/* if_icmple */, 2/* if_acmpeq */,
2957         2/* if_acmpne */, 2/* goto */, 2/* jsr */, 1/* ret */, UNPREDICTABLE/* tableswitch */, UNPREDICTABLE/* lookupswitch */, 0/* ireturn */, 0/* lreturn */,
2958         0/* freturn */, 0/* dreturn */, 0/* areturn */, 0/* return */, 2/* getstatic */, 2/* putstatic */, 2/* getfield */, 2/* putfield */,
2959         2/* invokevirtual */, 2/* invokespecial */, 2/* invokestatic */, 4/* invokeinterface */, 4/* invokedynamic */, 2/* new */, 1/* newarray */,
2960         2/* anewarray */, 0/* arraylength */, 0/* athrow */, 2/* checkcast */, 2/* instanceof */, 0/* monitorenter */, 0/* monitorexit */,
2961         UNPREDICTABLE/* wide */, 3/* multianewarray */, 2/* ifnull */, 2/* ifnonnull */, 4/* goto_w */, 4/* jsr_w */, 0/* breakpoint */, UNDEFINED, UNDEFINED,
2962         UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
2963         UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
2964         UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
2965         UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, RESERVED/* impdep1 */,
2966         RESERVED/* impdep2 */
2967     };
2968 
2969     /**
2970      * How the byte code operands are to be interpreted for each opcode. Indexed by opcode. TYPE_OF_OPERANDS[ILOAD] = an
2971      * array of shorts describing the data types for the instruction.
2972      */
2973     static final short[][] TYPE_OF_OPERANDS = {{}/* nop */, {}/* aconst_null */, {}/* iconst_m1 */, {}/* iconst_0 */, {}/* iconst_1 */,
2974         {}/* iconst_2 */, {}/* iconst_3 */, {}/* iconst_4 */, {}/* iconst_5 */, {}/* lconst_0 */, {}/* lconst_1 */, {}/* fconst_0 */, {}/* fconst_1 */,
2975         {}/* fconst_2 */, {}/* dconst_0 */, {}/* dconst_1 */, {T_BYTE}/* bipush */, {T_SHORT}/* sipush */, {T_BYTE}/* ldc */, {T_SHORT}/* ldc_w */,
2976         {T_SHORT}/* ldc2_w */, {T_BYTE}/* iload */, {T_BYTE}/* lload */, {T_BYTE}/* fload */, {T_BYTE}/* dload */, {T_BYTE}/* aload */, {}/* iload_0 */,
2977         {}/* iload_1 */, {}/* iload_2 */, {}/* iload_3 */, {}/* lload_0 */, {}/* lload_1 */, {}/* lload_2 */, {}/* lload_3 */, {}/* fload_0 */, {}/* fload_1 */,
2978         {}/* fload_2 */, {}/* fload_3 */, {}/* dload_0 */, {}/* dload_1 */, {}/* dload_2 */, {}/* dload_3 */, {}/* aload_0 */, {}/* aload_1 */, {}/* aload_2 */,
2979         {}/* aload_3 */, {}/* iaload */, {}/* laload */, {}/* faload */, {}/* daload */, {}/* aaload */, {}/* baload */, {}/* caload */, {}/* saload */,
2980         {T_BYTE}/* istore */, {T_BYTE}/* lstore */, {T_BYTE}/* fstore */, {T_BYTE}/* dstore */, {T_BYTE}/* astore */, {}/* istore_0 */, {}/* istore_1 */,
2981         {}/* istore_2 */, {}/* istore_3 */, {}/* lstore_0 */, {}/* lstore_1 */, {}/* lstore_2 */, {}/* lstore_3 */, {}/* fstore_0 */, {}/* fstore_1 */,
2982         {}/* fstore_2 */, {}/* fstore_3 */, {}/* dstore_0 */, {}/* dstore_1 */, {}/* dstore_2 */, {}/* dstore_3 */, {}/* astore_0 */, {}/* astore_1 */,
2983         {}/* astore_2 */, {}/* astore_3 */, {}/* iastore */, {}/* lastore */, {}/* fastore */, {}/* dastore */, {}/* aastore */, {}/* bastore */,
2984         {}/* castore */, {}/* sastore */, {}/* pop */, {}/* pop2 */, {}/* dup */, {}/* dup_x1 */, {}/* dup_x2 */, {}/* dup2 */, {}/* dup2_x1 */,
2985         {}/* dup2_x2 */, {}/* swap */, {}/* iadd */, {}/* ladd */, {}/* fadd */, {}/* dadd */, {}/* isub */, {}/* lsub */, {}/* fsub */, {}/* dsub */,
2986         {}/* imul */, {}/* lmul */, {}/* fmul */, {}/* dmul */, {}/* idiv */, {}/* ldiv */, {}/* fdiv */, {}/* ddiv */, {}/* irem */, {}/* lrem */,
2987         {}/* frem */, {}/* drem */, {}/* ineg */, {}/* lneg */, {}/* fneg */, {}/* dneg */, {}/* ishl */, {}/* lshl */, {}/* ishr */, {}/* lshr */,
2988         {}/* iushr */, {}/* lushr */, {}/* iand */, {}/* land */, {}/* ior */, {}/* lor */, {}/* ixor */, {}/* lxor */, {T_BYTE, T_BYTE}/* iinc */, {}/* i2l */,
2989         {}/* i2f */, {}/* i2d */, {}/* l2i */, {}/* l2f */, {}/* l2d */, {}/* f2i */, {}/* f2l */, {}/* f2d */, {}/* d2i */, {}/* d2l */, {}/* d2f */,
2990         {}/* i2b */, {}/* i2c */, {}/* i2s */, {}/* lcmp */, {}/* fcmpl */, {}/* fcmpg */, {}/* dcmpl */, {}/* dcmpg */, {T_SHORT}/* ifeq */,
2991         {T_SHORT}/* ifne */, {T_SHORT}/* iflt */, {T_SHORT}/* ifge */, {T_SHORT}/* ifgt */, {T_SHORT}/* ifle */, {T_SHORT}/* if_icmpeq */,
2992         {T_SHORT}/* if_icmpne */, {T_SHORT}/* if_icmplt */, {T_SHORT}/* if_icmpge */, {T_SHORT}/* if_icmpgt */, {T_SHORT}/* if_icmple */,
2993         {T_SHORT}/* if_acmpeq */, {T_SHORT}/* if_acmpne */, {T_SHORT}/* goto */, {T_SHORT}/* jsr */, {T_BYTE}/* ret */, {}/* tableswitch */,
2994         {}/* lookupswitch */, {}/* ireturn */, {}/* lreturn */, {}/* freturn */, {}/* dreturn */, {}/* areturn */, {}/* return */, {T_SHORT}/* getstatic */,
2995         {T_SHORT}/* putstatic */, {T_SHORT}/* getfield */, {T_SHORT}/* putfield */, {T_SHORT}/* invokevirtual */, {T_SHORT}/* invokespecial */,
2996         {T_SHORT}/* invokestatic */, {T_SHORT, T_BYTE, T_BYTE}/* invokeinterface */, {T_SHORT, T_BYTE, T_BYTE}/* invokedynamic */, {T_SHORT}/* new */,
2997         {T_BYTE}/* newarray */, {T_SHORT}/* anewarray */, {}/* arraylength */, {}/* athrow */, {T_SHORT}/* checkcast */, {T_SHORT}/* instanceof */,
2998         {}/* monitorenter */, {}/* monitorexit */, {T_BYTE}/* wide */, {T_SHORT, T_BYTE}/* multianewarray */, {T_SHORT}/* ifnull */, {T_SHORT}/* ifnonnull */,
2999         {T_INT}/* goto_w */, {T_INT}/* jsr_w */, {}/* breakpoint */, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {},
3000         {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}/* impdep1 */, {}/* impdep2 */
3001     };
3002 
3003     /**
3004      * Names of opcodes. Indexed by opcode. OPCODE_NAMES[ALOAD] = "aload".
3005      */
3006     static final String[] OPCODE_NAMES = {"nop", "aconst_null", "iconst_m1", "iconst_0", "iconst_1", "iconst_2", "iconst_3", "iconst_4", "iconst_5",
3007         "lconst_0", "lconst_1", "fconst_0", "fconst_1", "fconst_2", "dconst_0", "dconst_1", "bipush", "sipush", "ldc", "ldc_w", "ldc2_w", "iload", "lload",
3008         "fload", "dload", "aload", "iload_0", "iload_1", "iload_2", "iload_3", "lload_0", "lload_1", "lload_2", "lload_3", "fload_0", "fload_1", "fload_2",
3009         "fload_3", "dload_0", "dload_1", "dload_2", "dload_3", "aload_0", "aload_1", "aload_2", "aload_3", "iaload", "laload", "faload", "daload", "aaload",
3010         "baload", "caload", "saload", "istore", "lstore", "fstore", "dstore", "astore", "istore_0", "istore_1", "istore_2", "istore_3", "lstore_0", "lstore_1",
3011         "lstore_2", "lstore_3", "fstore_0", "fstore_1", "fstore_2", "fstore_3", "dstore_0", "dstore_1", "dstore_2", "dstore_3", "astore_0", "astore_1",
3012         "astore_2", "astore_3", "iastore", "lastore", "fastore", "dastore", "aastore", "bastore", "castore", "sastore", "pop", "pop2", "dup", "dup_x1",
3013         "dup_x2", "dup2", "dup2_x1", "dup2_x2", "swap", "iadd", "ladd", "fadd", "dadd", "isub", "lsub", "fsub", "dsub", "imul", "lmul", "fmul", "dmul", "idiv",
3014         "ldiv", "fdiv", "ddiv", "irem", "lrem", "frem", "drem", "ineg", "lneg", "fneg", "dneg", "ishl", "lshl", "ishr", "lshr", "iushr", "lushr", "iand",
3015         "land", "ior", "lor", "ixor", "lxor", "iinc", "i2l", "i2f", "i2d", "l2i", "l2f", "l2d", "f2i", "f2l", "f2d", "d2i", "d2l", "d2f", "i2b", "i2c", "i2s",
3016         "lcmp", "fcmpl", "fcmpg", "dcmpl", "dcmpg", "ifeq", "ifne", "iflt", "ifge", "ifgt", "ifle", "if_icmpeq", "if_icmpne", "if_icmplt", "if_icmpge",
3017         "if_icmpgt", "if_icmple", "if_acmpeq", "if_acmpne", "goto", "jsr", "ret", "tableswitch", "lookupswitch", "ireturn", "lreturn", "freturn", "dreturn",
3018         "areturn", "return", "getstatic", "putstatic", "getfield", "putfield", "invokevirtual", "invokespecial", "invokestatic", "invokeinterface",
3019         "invokedynamic", "new", "newarray", "anewarray", "arraylength", "athrow", "checkcast", "instanceof", "monitorenter", "monitorexit", "wide",
3020         "multianewarray", "ifnull", "ifnonnull", "goto_w", "jsr_w", "breakpoint", ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE,
3021         ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE,
3022         ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE,
3023         ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE,
3024         ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE,
3025         ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE,
3026         ILLEGAL_OPCODE, ILLEGAL_OPCODE, "impdep1", "impdep2"};
3027 
3028     /**
3029      * @since 6.0
3030      */
3031     public static final int OPCODE_NAMES_LENGTH = OPCODE_NAMES.length;
3032 
3033     /**
3034      * Number of words consumed on operand stack by instructions. Indexed by opcode. CONSUME_STACK[FALOAD] = number of words
3035      * consumed from the stack by a faload instruction.
3036      */
3037     static final int[] CONSUME_STACK = {0/* nop */, 0/* aconst_null */, 0/* iconst_m1 */, 0/* iconst_0 */, 0/* iconst_1 */, 0/* iconst_2 */,
3038         0/* iconst_3 */, 0/* iconst_4 */, 0/* iconst_5 */, 0/* lconst_0 */, 0/* lconst_1 */, 0/* fconst_0 */, 0/* fconst_1 */, 0/* fconst_2 */, 0/* dconst_0 */,
3039         0/* dconst_1 */, 0/* bipush */, 0/* sipush */, 0/* ldc */, 0/* ldc_w */, 0/* ldc2_w */, 0/* iload */, 0/* lload */, 0/* fload */, 0/* dload */,
3040         0/* aload */, 0/* iload_0 */, 0/* iload_1 */, 0/* iload_2 */, 0/* iload_3 */, 0/* lload_0 */, 0/* lload_1 */, 0/* lload_2 */, 0/* lload_3 */,
3041         0/* fload_0 */, 0/* fload_1 */, 0/* fload_2 */, 0/* fload_3 */, 0/* dload_0 */, 0/* dload_1 */, 0/* dload_2 */, 0/* dload_3 */, 0/* aload_0 */,
3042         0/* aload_1 */, 0/* aload_2 */, 0/* aload_3 */, 2/* iaload */, 2/* laload */, 2/* faload */, 2/* daload */, 2/* aaload */, 2/* baload */, 2/* caload */,
3043         2/* saload */, 1/* istore */, 2/* lstore */, 1/* fstore */, 2/* dstore */, 1/* astore */, 1/* istore_0 */, 1/* istore_1 */, 1/* istore_2 */,
3044         1/* istore_3 */, 2/* lstore_0 */, 2/* lstore_1 */, 2/* lstore_2 */, 2/* lstore_3 */, 1/* fstore_0 */, 1/* fstore_1 */, 1/* fstore_2 */, 1/* fstore_3 */,
3045         2/* dstore_0 */, 2/* dstore_1 */, 2/* dstore_2 */, 2/* dstore_3 */, 1/* astore_0 */, 1/* astore_1 */, 1/* astore_2 */, 1/* astore_3 */, 3/* iastore */,
3046         4/* lastore */, 3/* fastore */, 4/* dastore */, 3/* aastore */, 3/* bastore */, 3/* castore */, 3/* sastore */, 1/* pop */, 2/* pop2 */, 1/* dup */,
3047         2/* dup_x1 */, 3/* dup_x2 */, 2/* dup2 */, 3/* dup2_x1 */, 4/* dup2_x2 */, 2/* swap */, 2/* iadd */, 4/* ladd */, 2/* fadd */, 4/* dadd */, 2/* isub */,
3048         4/* lsub */, 2/* fsub */, 4/* dsub */, 2/* imul */, 4/* lmul */, 2/* fmul */, 4/* dmul */, 2/* idiv */, 4/* ldiv */, 2/* fdiv */, 4/* ddiv */,
3049         2/* irem */, 4/* lrem */, 2/* frem */, 4/* drem */, 1/* ineg */, 2/* lneg */, 1/* fneg */, 2/* dneg */, 2/* ishl */, 3/* lshl */, 2/* ishr */,
3050         3/* lshr */, 2/* iushr */, 3/* lushr */, 2/* iand */, 4/* land */, 2/* ior */, 4/* lor */, 2/* ixor */, 4/* lxor */, 0/* iinc */, 1/* i2l */,
3051         1/* i2f */, 1/* i2d */, 2/* l2i */, 2/* l2f */, 2/* l2d */, 1/* f2i */, 1/* f2l */, 1/* f2d */, 2/* d2i */, 2/* d2l */, 2/* d2f */, 1/* i2b */,
3052         1/* i2c */, 1/* i2s */, 4/* lcmp */, 2/* fcmpl */, 2/* fcmpg */, 4/* dcmpl */, 4/* dcmpg */, 1/* ifeq */, 1/* ifne */, 1/* iflt */, 1/* ifge */,
3053         1/* ifgt */, 1/* ifle */, 2/* if_icmpeq */, 2/* if_icmpne */, 2/* if_icmplt */, 2 /* if_icmpge */, 2/* if_icmpgt */, 2/* if_icmple */, 2/* if_acmpeq */,
3054         2/* if_acmpne */, 0/* goto */, 0/* jsr */, 0/* ret */, 1/* tableswitch */, 1/* lookupswitch */, 1/* ireturn */, 2/* lreturn */, 1/* freturn */,
3055         2/* dreturn */, 1/* areturn */, 0/* return */, 0/* getstatic */, UNPREDICTABLE/* putstatic */, 1/* getfield */, UNPREDICTABLE/* putfield */,
3056         UNPREDICTABLE/* invokevirtual */, UNPREDICTABLE/* invokespecial */, UNPREDICTABLE/* invokestatic */, UNPREDICTABLE/* invokeinterface */,
3057         UNPREDICTABLE/* invokedynamic */, 0/* new */, 1/* newarray */, 1/* anewarray */, 1/* arraylength */, 1/* athrow */, 1/* checkcast */, 1/* instanceof */,
3058         1/* monitorenter */, 1/* monitorexit */, 0/* wide */, UNPREDICTABLE/* multianewarray */, 1/* ifnull */, 1/* ifnonnull */, 0/* goto_w */, 0/* jsr_w */,
3059         0/* breakpoint */, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
3060         UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
3061         UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
3062         UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
3063         UNPREDICTABLE/* impdep1 */, UNPREDICTABLE/* impdep2 */
3064     };
3065 
3066     /**
3067      * Number of words produced onto operand stack by instructions. Indexed by opcode. CONSUME_STACK[DALOAD] = number of
3068      * words consumed from the stack by a daload instruction.
3069      */
3070     static final int[] PRODUCE_STACK = {0/* nop */, 1/* aconst_null */, 1/* iconst_m1 */, 1/* iconst_0 */, 1/* iconst_1 */, 1/* iconst_2 */,
3071         1/* iconst_3 */, 1/* iconst_4 */, 1/* iconst_5 */, 2/* lconst_0 */, 2/* lconst_1 */, 1/* fconst_0 */, 1/* fconst_1 */, 1/* fconst_2 */, 2/* dconst_0 */,
3072         2/* dconst_1 */, 1/* bipush */, 1/* sipush */, 1/* ldc */, 1/* ldc_w */, 2/* ldc2_w */, 1/* iload */, 2/* lload */, 1/* fload */, 2/* dload */,
3073         1/* aload */, 1/* iload_0 */, 1/* iload_1 */, 1/* iload_2 */, 1/* iload_3 */, 2/* lload_0 */, 2/* lload_1 */, 2/* lload_2 */, 2/* lload_3 */,
3074         1/* fload_0 */, 1/* fload_1 */, 1/* fload_2 */, 1/* fload_3 */, 2/* dload_0 */, 2/* dload_1 */, 2/* dload_2 */, 2/* dload_3 */, 1/* aload_0 */,
3075         1/* aload_1 */, 1/* aload_2 */, 1/* aload_3 */, 1/* iaload */, 2/* laload */, 1/* faload */, 2/* daload */, 1/* aaload */, 1/* baload */, 1/* caload */,
3076         1/* saload */, 0/* istore */, 0/* lstore */, 0/* fstore */, 0/* dstore */, 0/* astore */, 0/* istore_0 */, 0/* istore_1 */, 0/* istore_2 */,
3077         0/* istore_3 */, 0/* lstore_0 */, 0/* lstore_1 */, 0/* lstore_2 */, 0/* lstore_3 */, 0/* fstore_0 */, 0/* fstore_1 */, 0/* fstore_2 */, 0/* fstore_3 */,
3078         0/* dstore_0 */, 0/* dstore_1 */, 0/* dstore_2 */, 0/* dstore_3 */, 0/* astore_0 */, 0/* astore_1 */, 0/* astore_2 */, 0/* astore_3 */, 0/* iastore */,
3079         0/* lastore */, 0/* fastore */, 0/* dastore */, 0/* aastore */, 0/* bastore */, 0/* castore */, 0/* sastore */, 0/* pop */, 0/* pop2 */, 2/* dup */,
3080         3/* dup_x1 */, 4/* dup_x2 */, 4/* dup2 */, 5/* dup2_x1 */, 6/* dup2_x2 */, 2/* swap */, 1/* iadd */, 2/* ladd */, 1/* fadd */, 2/* dadd */, 1/* isub */,
3081         2/* lsub */, 1/* fsub */, 2/* dsub */, 1/* imul */, 2/* lmul */, 1/* fmul */, 2/* dmul */, 1/* idiv */, 2/* ldiv */, 1/* fdiv */, 2/* ddiv */,
3082         1/* irem */, 2/* lrem */, 1/* frem */, 2/* drem */, 1/* ineg */, 2/* lneg */, 1/* fneg */, 2/* dneg */, 1/* ishl */, 2/* lshl */, 1/* ishr */,
3083         2/* lshr */, 1/* iushr */, 2/* lushr */, 1/* iand */, 2/* land */, 1/* ior */, 2/* lor */, 1/* ixor */, 2/* lxor */, 0/* iinc */, 2/* i2l */,
3084         1/* i2f */, 2/* i2d */, 1/* l2i */, 1/* l2f */, 2/* l2d */, 1/* f2i */, 2/* f2l */, 2/* f2d */, 1/* d2i */, 2/* d2l */, 1/* d2f */, 1/* i2b */,
3085         1/* i2c */, 1/* i2s */, 1/* lcmp */, 1/* fcmpl */, 1/* fcmpg */, 1/* dcmpl */, 1/* dcmpg */, 0/* ifeq */, 0/* ifne */, 0/* iflt */, 0/* ifge */,
3086         0/* ifgt */, 0/* ifle */, 0/* if_icmpeq */, 0/* if_icmpne */, 0/* if_icmplt */, 0/* if_icmpge */, 0/* if_icmpgt */, 0/* if_icmple */, 0/* if_acmpeq */,
3087         0/* if_acmpne */, 0/* goto */, 1/* jsr */, 0/* ret */, 0/* tableswitch */, 0/* lookupswitch */, 0/* ireturn */, 0/* lreturn */, 0/* freturn */,
3088         0/* dreturn */, 0/* areturn */, 0/* return */, UNPREDICTABLE/* getstatic */, 0/* putstatic */, UNPREDICTABLE/* getfield */, 0/* putfield */,
3089         UNPREDICTABLE/* invokevirtual */, UNPREDICTABLE/* invokespecial */, UNPREDICTABLE/* invokestatic */, UNPREDICTABLE/* invokeinterface */,
3090         UNPREDICTABLE/* invokedynamic */, 1/* new */, 1/* newarray */, 1/* anewarray */, 1/* arraylength */, 1/* athrow */, 1/* checkcast */, 1/* instanceof */,
3091         0/* monitorenter */, 0/* monitorexit */, 0/* wide */, 1/* multianewarray */, 0/* ifnull */, 0/* ifnonnull */, 0/* goto_w */, 1/* jsr_w */,
3092         0/* breakpoint */, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
3093         UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
3094         UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
3095         UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
3096         UNPREDICTABLE/* impdep1 */, UNPREDICTABLE/* impdep2 */
3097     };
3098 
3099     /**
3100      * Attributes and their corresponding names.
3101      */
3102     public static final byte ATTR_UNKNOWN = -1;
3103 
3104     public static final byte ATTR_SOURCE_FILE = 0;
3105 
3106     public static final byte ATTR_CONSTANT_VALUE = 1;
3107 
3108     public static final byte ATTR_CODE = 2;
3109 
3110     public static final byte ATTR_EXCEPTIONS = 3;
3111 
3112     public static final byte ATTR_LINE_NUMBER_TABLE = 4;
3113 
3114     public static final byte ATTR_LOCAL_VARIABLE_TABLE = 5;
3115 
3116     public static final byte ATTR_INNER_CLASSES = 6;
3117 
3118     public static final byte ATTR_SYNTHETIC = 7;
3119 
3120     public static final byte ATTR_DEPRECATED = 8;
3121 
3122     public static final byte ATTR_PMG = 9;
3123 
3124     public static final byte ATTR_SIGNATURE = 10;
3125 
3126     public static final byte ATTR_STACK_MAP = 11;
3127     public static final byte ATTR_RUNTIME_VISIBLE_ANNOTATIONS = 12;
3128     public static final byte ATTR_RUNTIME_INVISIBLE_ANNOTATIONS = 13;
3129     public static final byte ATTR_RUNTIME_VISIBLE_PARAMETER_ANNOTATIONS = 14;
3130     public static final byte ATTR_RUNTIME_INVISIBLE_PARAMETER_ANNOTATIONS = 15;
3131     public static final byte ATTR_ANNOTATION_DEFAULT = 16;
3132     public static final byte ATTR_LOCAL_VARIABLE_TYPE_TABLE = 17;
3133     public static final byte ATTR_ENCLOSING_METHOD = 18;
3134     public static final byte ATTR_STACK_MAP_TABLE = 19;
3135     public static final byte ATTR_BOOTSTRAP_METHODS = 20;
3136     public static final byte ATTR_METHOD_PARAMETERS = 21;
3137     public static final byte ATTR_MODULE = 22;
3138     public static final byte ATTR_MODULE_PACKAGES = 23;
3139     public static final byte ATTR_MODULE_MAIN_CLASS = 24;
3140     public static final byte ATTR_NEST_HOST = 25;
3141     public static final byte ATTR_NEST_MEMBERS = 26;
3142     public static final byte ATTR_RECORD = 27;
3143 
3144     public static final short KNOWN_ATTRIBUTES = 28; // count of attributes
3145     private static final String[] ATTRIBUTE_NAMES = {"SourceFile", "ConstantValue", "Code", "Exceptions", "LineNumberTable", "LocalVariableTable",
3146         "InnerClasses", "Synthetic", "Deprecated", "PMGClass", "Signature", "StackMap", "RuntimeVisibleAnnotations", "RuntimeInvisibleAnnotations",
3147         "RuntimeVisibleParameterAnnotations", "RuntimeInvisibleParameterAnnotations", "AnnotationDefault", "LocalVariableTypeTable", "EnclosingMethod",
3148         "StackMapTable", "BootstrapMethods", "MethodParameters", "Module", "ModulePackages", "ModuleMainClass", "NestHost", "NestMembers", "Record"};
3149     /**
3150      * Constants used in the StackMap attribute.
3151      */
3152     public static final byte ITEM_Bogus = 0;
3153     public static final byte ITEM_Integer = 1;
3154     public static final byte ITEM_Float = 2;
3155     public static final byte ITEM_Double = 3;
3156     public static final byte ITEM_Long = 4;
3157     public static final byte ITEM_Null = 5;
3158     public static final byte ITEM_InitObject = 6;
3159     public static final byte ITEM_Object = 7;
3160     public static final byte ITEM_NewObject = 8;
3161     private static final String[] ITEM_NAMES = {"Bogus", "Integer", "Float", "Double", "Long", "Null", "InitObject", "Object", "NewObject"};
3162 
3163     /**
3164      * Constants used to identify StackMapEntry types.
3165      *
3166      * For those types which can specify a range, the constant names the lowest value.
3167      */
3168     public static final int SAME_FRAME = 0;
3169 
3170     public static final int SAME_LOCALS_1_STACK_ITEM_FRAME = 64;
3171 
3172     public static final int SAME_LOCALS_1_STACK_ITEM_FRAME_EXTENDED = 247;
3173 
3174     public static final int CHOP_FRAME = 248;
3175     public static final int SAME_FRAME_EXTENDED = 251;
3176     public static final int APPEND_FRAME = 252;
3177     public static final int FULL_FRAME = 255;
3178 
3179     /**
3180      * Constants that define the maximum value of those constants which store ranges.
3181      */
3182 
3183     public static final int SAME_FRAME_MAX = 63;
3184     public static final int SAME_LOCALS_1_STACK_ITEM_FRAME_MAX = 127;
3185     public static final int CHOP_FRAME_MAX = 250;
3186     public static final int APPEND_FRAME_MAX = 254;
3187     public static final byte REF_getField = 1;
3188 
3189     public static final byte REF_getStatic = 2;
3190 
3191     public static final byte REF_putField = 3;
3192 
3193     public static final byte REF_putStatic = 4;
3194     public static final byte REF_invokeVirtual = 5;
3195     public static final byte REF_invokeStatic = 6;
3196     public static final byte REF_invokeSpecial = 7;
3197     public static final byte REF_newInvokeSpecial = 8;
3198     public static final byte REF_invokeInterface = 9;
3199 
3200     /**
3201      * The names of the reference_kinds of a CONSTANT_MethodHandle_info.
3202      */
3203     private static final String[] METHODHANDLE_NAMES = {"", "getField", "getStatic", "putField", "putStatic", "invokeVirtual", "invokeStatic", "invokeSpecial",
3204         "newInvokeSpecial", "invokeInterface"};
3205 
3206     /**
3207      * @param index index into {@code ACCESS_NAMES}.
3208      * @return the ACCESS_NAMES entry at the given index
3209      * @since 6.0
3210      */
3211     public static String getAccessName(final int index) {
3212         return ACCESS_NAMES[index];
3213     }
3214 
3215     /**
3216      *
3217      * @param index index into {@code ACCESS_NAMES}.
3218      * @return the attribute name
3219      * @since 6.0
3220      */
3221     public static String getAttributeName(final int index) {
3222         return ATTRIBUTE_NAMES[index];
3223     }
3224 
3225     /**
3226      * The primitive class names corresponding to the T_XX constants, for example, CLASS_TYPE_NAMES[T_INT] = "java.lang.Integer"
3227      *
3228      * @param index index into {@code CLASS_TYPE_NAMES}.
3229      * @return the class name
3230      * @since 6.0
3231      */
3232     public static String getClassTypeName(final int index) {
3233         return CLASS_TYPE_NAMES[index];
3234     }
3235 
3236     /**
3237      *
3238      * @param index index into {@code CONSTANT_NAMES}.
3239      * @return the CONSTANT_NAMES entry at the given index
3240      * @since 6.0
3241      */
3242     public static String getConstantName(final int index) {
3243         return CONSTANT_NAMES[index];
3244     }
3245 
3246     // Constants defining the behavior of the Method Handles (JVMS �5.4.3.5)
3247 
3248     /**
3249      *
3250      * @param index index into {@code CONSUME_STACK}.
3251      * @return Number of words consumed on operand stack
3252      * @since 6.0
3253      */
3254     public static int getConsumeStack(final int index) {
3255         return CONSUME_STACK[index];
3256     }
3257 
3258     /**
3259      * @since 6.0
3260      */
3261     public static Iterable<String> getInterfacesImplementedByArrays() {
3262         return Collections.unmodifiableList(Arrays.asList(INTERFACES_IMPLEMENTED_BY_ARRAYS));
3263     }
3264 
3265     /**
3266      *
3267      * @param index index into {@code ITEM_NAMES}.
3268      * @return the item name
3269      * @since 6.0
3270      */
3271     public static String getItemName(final int index) {
3272         return ITEM_NAMES[index];
3273     }
3274 
3275     /**
3276      *
3277      * @param index index into {@code METHODHANDLE_NAMES}.
3278      * @return the method handle name
3279      * @since 6.0
3280      */
3281     public static String getMethodHandleName(final int index) {
3282         return METHODHANDLE_NAMES[index];
3283     }
3284 
3285     /**
3286      *
3287      * @param index index into {@code NO_OF_OPERANDS}.
3288      * @return Number of byte code operands
3289      * @since 6.0
3290      */
3291     public static short getNoOfOperands(final int index) {
3292         return NO_OF_OPERANDS[index];
3293     }
3294 
3295     /**
3296      * @since 6.0
3297      */
3298     public static String getOpcodeName(final int index) {
3299         return OPCODE_NAMES[index];
3300     }
3301 
3302     /**
3303      * @since 6.0
3304      */
3305     public static short getOperandType(final int opcode, final int index) {
3306         return TYPE_OF_OPERANDS[opcode][index];
3307     }
3308 
3309     /**
3310      * @since 6.0
3311      */
3312     public static long getOperandTypeCount(final int opcode) {
3313         return TYPE_OF_OPERANDS[opcode].length;
3314     }
3315 
3316     /**
3317      *
3318      * @param index
3319      * @return Number of words produced onto operand stack
3320      * @since 6.0
3321      */
3322     public static int getProduceStack(final int index) {
3323         return PRODUCE_STACK[index];
3324     }
3325 
3326     /**
3327      *
3328      * @param index
3329      * @return the short type name
3330      * @since 6.0
3331      */
3332     public static String getShortTypeName(final int index) {
3333         return SHORT_TYPE_NAMES[index];
3334     }
3335 
3336     /**
3337      * The primitive type names corresponding to the T_XX constants, for example, TYPE_NAMES[T_INT] = "int"
3338      *
3339      * @param index
3340      * @return the type name
3341      * @since 6.0
3342      */
3343     public static String getTypeName(final int index) {
3344         return TYPE_NAMES[index];
3345     }
3346 
3347     private Const() {
3348     } // not instantiable
3349 
3350 }