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