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