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      * Major version number of class files for Java 14: {@value}.
340      *
341      * @see #MINOR_14
342      * @since 6.4.0
343      */
344     public static final short MAJOR_14 = 58;
345 
346     /**
347      * Major version number of class files for Java 15: {@value}.
348      *
349      * @see #MINOR_15
350      * @since 6.6.0
351      */
352     public static final short MAJOR_15 = 59;
353 
354     /**
355      * Major version number of class files for Java 16: {@value}.
356      *
357      * @see #MINOR_16
358      * @since 6.6.0
359      */
360     public static final short MAJOR_16 = 60;
361 
362     /**
363      * Major version number of class files for Java 17: {@value}.
364      *
365      * @see #MINOR_17
366      * @since 6.6.0
367      */
368     public static final short MAJOR_17 = 61;
369 
370     /**
371      * Major version number of class files for Java 18: {@value}.
372      *
373      * @see #MINOR_18
374      * @since 6.6.0
375      */
376     public static final short MAJOR_18 = 62;
377 
378     /**
379      * Major version number of class files for Java 19: {@value}.
380      *
381      * @see #MINOR_19
382      * @since 6.6.0
383      */
384     public static final short MAJOR_19 = 63;
385 
386     /**
387      * Major version number of class files for Java 20: {@value}.
388      *
389      * @see #MINOR_20
390      * @since 6.8.0
391      */
392     public static final short MAJOR_20 = 64;
393 
394     /**
395      * Major version number of class files for Java 21: {@value}.
396      *
397      * @see #MINOR_21
398      * @since 6.8.0
399      */
400     public static final short MAJOR_21 = 65;
401 
402     /**
403      * Major version number of class files for Java 22: {@value}.
404      *
405      * @see #MINOR_22
406      * @since 6.10.0
407      */
408     public static final short MAJOR_22 = 66;
409 
410     /**
411      * Major version number of class files for Java 23: {@value}.
412      *
413      * @see #MINOR_23
414      * @since 6.10.0
415      */
416     public static final short MAJOR_23 = 67;
417 
418     /**
419      * Major version number of class files for Java 24: {@value}.
420      *
421      * @see #MINOR_24
422      * @since 6.10.0
423      */
424     public static final short MAJOR_24 = 68;
425 
426     /**
427      * Major version number of class files for Java 25: {@value}.
428      *
429      * @see #MINOR_25
430      * @since 6.11.0
431      */
432     public static final short MAJOR_25 = 69;
433 
434     /**
435      * Major version number of class files for Java 26: {@value}.
436      *
437      * @see #MINOR_26
438      * @since 6.12.0
439      */
440     public static final short MAJOR_26 = 70;
441 
442     /**
443      * Default major version number. Class file is for Java 1.1: {@value}.
444      *
445      * @see #MAJOR_1_1
446      */
447     public static final short MAJOR = MAJOR_1_1;
448 
449     /**
450      * Default major version number. Class file is for Java 1.1: {@value}.
451      *
452      * @see #MAJOR_1_1
453      */
454     public static final short MINOR = MINOR_1_1;
455 
456     /**
457      * Maximum value for an unsigned short: {@value}.
458      */
459     public static final int MAX_SHORT = 65535; // 2^16 - 1
460 
461     /**
462      * Maximum value for an unsigned byte: {@value}.
463      */
464     public static final int MAX_BYTE = 255; // 2^8 - 1
465 
466     /**
467      * One of the access flags for fields, methods, or classes: {@value}.
468      *
469      * @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
470      *      Specification (Java SE 9 Edition).</a>
471      * @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
472      *      Specification (Java SE 9 Edition).</a>
473      * @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
474      *      Specification (Java SE 9 Edition).</a>
475      * @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
476      *      Virtual Machine Specification (Java SE 9 Edition).</a>
477      */
478     public static final short ACC_PUBLIC = 0x0001;
479 
480     /**
481      * One of the access flags for fields, methods, or classes: {@value}.
482      *
483      * @see #ACC_PUBLIC
484      */
485     public static final short ACC_PRIVATE = 0x0002;
486 
487     /**
488      * One of the access flags for fields, methods, or classes: {@value}.
489      *
490      * @see #ACC_PUBLIC
491      */
492     public static final short ACC_PROTECTED = 0x0004;
493 
494     /**
495      * One of the access flags for fields, methods, or classes: {@value}.
496      *
497      * @see #ACC_PUBLIC
498      */
499     public static final short ACC_STATIC = 0x0008;
500 
501     /**
502      * One of the access flags for fields, methods, or classes: {@value}.
503      *
504      * @see #ACC_PUBLIC
505      */
506     public static final short ACC_FINAL = 0x0010;
507 
508     /**
509      * One of the access flags for the Module attribute: {@value}.
510      *
511      * @see #ACC_PUBLIC
512      */
513     public static final short ACC_OPEN = 0x0020;
514 
515     /**
516      * One of the access flags for classes: {@value}.
517      *
518      * @see #ACC_PUBLIC
519      */
520     public static final short ACC_SUPER = 0x0020;
521 
522     /**
523      * One of the access flags for methods: {@value}.
524      *
525      * @see #ACC_PUBLIC
526      */
527     public static final short ACC_SYNCHRONIZED = 0x0020;
528 
529     /**
530      * One of the access flags for the Module attribute: {@value}.
531      *
532      * @see #ACC_PUBLIC
533      */
534     public static final short ACC_TRANSITIVE = 0x0020;
535 
536     /**
537      * One of the access flags for methods: {@value}.
538      *
539      * @see #ACC_PUBLIC
540      */
541     public static final short ACC_BRIDGE = 0x0040;
542 
543     /**
544      * One of the access flags for the Module attribute: {@value}.
545      *
546      * @see #ACC_PUBLIC
547      */
548     public static final short ACC_STATIC_PHASE = 0x0040;
549 
550     /**
551      * One of the access flags for fields: {@value}.
552      *
553      * @see #ACC_PUBLIC
554      */
555     public static final short ACC_VOLATILE = 0x0040;
556 
557     /**
558      * One of the access flags for fields: {@value}.
559      *
560      * @see #ACC_PUBLIC
561      */
562     public static final short ACC_TRANSIENT = 0x0080;
563 
564     /**
565      * One of the access flags for methods: {@value}.
566      *
567      * @see #ACC_PUBLIC
568      */
569     public static final short ACC_VARARGS = 0x0080;
570 
571     /**
572      * One of the access flags for methods: {@value}.
573      *
574      * @see #ACC_PUBLIC
575      */
576     public static final short ACC_NATIVE = 0x0100;
577 
578     /**
579      * One of the access flags for classes: {@value}.
580      *
581      * @see #ACC_PUBLIC
582      */
583     public static final short ACC_INTERFACE = 0x0200;
584 
585     /**
586      * One of the access flags for methods or classes: {@value}.
587      *
588      * @see #ACC_PUBLIC
589      */
590     public static final short ACC_ABSTRACT = 0x0400;
591 
592     /**
593      * One of the access flags for methods: {@value}.
594      *
595      * @see #ACC_PUBLIC
596      */
597     public static final short ACC_STRICT = 0x0800;
598 
599     /**
600      * One of the access flags for fields, methods, classes, MethodParameter attribute, or Module attribute: {@value}.
601      *
602      * @see #ACC_PUBLIC
603      */
604     public static final short ACC_SYNTHETIC = 0x1000;
605 
606     /**
607      * One of the access flags for classes: {@value}.
608      *
609      * @see #ACC_PUBLIC
610      */
611     public static final short ACC_ANNOTATION = 0x2000;
612 
613     /**
614      * One of the access flags for fields or classes: {@value}.
615      *
616      * @see #ACC_PUBLIC
617      */
618     public static final short ACC_ENUM = 0x4000;
619     // Applies to classes compiled by new compilers only
620 
621     /**
622      * One of the access flags for MethodParameter or Module attributes: {@value}.
623      *
624      * @see #ACC_PUBLIC
625      */
626     public static final short ACC_MANDATED = (short) 0x8000;
627 
628     /**
629      * One of the access flags for classes: {@value}.
630      *
631      * @see #ACC_PUBLIC
632      */
633     public static final short ACC_MODULE = (short) 0x8000;
634 
635     /**
636      * One of the access flags for fields, methods, or classes: {@value}.
637      *
638      * @see #ACC_PUBLIC
639      * @deprecated Use {@link #MAX_ACC_FLAG_I}
640      */
641     @Deprecated
642     public static final short MAX_ACC_FLAG = ACC_ENUM;
643 
644     /**
645      * One of the access flags for fields, methods, or classes. ACC_MODULE is negative as a short: {@value}.
646      *
647      * @see #ACC_PUBLIC
648      * @since 6.4.0
649      */
650     public static final int MAX_ACC_FLAG_I = 0x8000; // ACC_MODULE is negative as a short
651     // Note that do to overloading:
652     // 'synchronized' is for methods, might be 'open' (if Module), 'super' (if class), or 'transitive' (if Module).
653     // 'volatile' is for fields, might be 'bridge' (if method) or 'static_phase' (if Module)
654     // 'transient' is for fields, might be 'varargs' (if method)
655     // 'module' is for classes, might be 'mandated' (if Module or MethodParameters)
656 
657     /**
658      * The names of the access flags.
659      */
660     private static final String[] ACCESS_NAMES = { "public", "private", "protected", "static", "final", "synchronized", "volatile", "transient", "native",
661             "interface", "abstract", "strictfp", "synthetic", "annotation", "enum", "module" };
662 
663     /**
664      * The length of the ACCESS_NAMES array.
665      *
666      * @since 6.0
667      */
668     public static final int ACCESS_NAMES_LENGTH = ACCESS_NAMES.length;
669 
670     /**
671      * Marks a constant pool entry as type UTF-8: {@value}.
672      *
673      * @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>
674      */
675     public static final byte CONSTANT_Utf8 = 1;
676     /*
677      * 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
678      * individual sections
679      */
680 
681     /**
682      * Marks a constant pool entry as type Integer: {@value}.
683      *
684      * @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>
685      */
686     public static final byte CONSTANT_Integer = 3;
687 
688     /**
689      * Marks a constant pool entry as type Float: {@value}.
690      *
691      * @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>
692      */
693     public static final byte CONSTANT_Float = 4;
694 
695     /**
696      * Marks a constant pool entry as type Long: {@value}.
697      *
698      * @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>
699      */
700     public static final byte CONSTANT_Long = 5;
701 
702     /**
703      * Marks a constant pool entry as type Double: {@value}.
704      *
705      * @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>
706      */
707     public static final byte CONSTANT_Double = 6;
708 
709     /**
710      * Marks a constant pool entry as a Class: {@value}.
711      *
712      * @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>
713      */
714     public static final byte CONSTANT_Class = 7;
715 
716     /**
717      * Marks a constant pool entry as a Field Reference: {@value}.
718      *
719      * @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>
720      */
721     public static final byte CONSTANT_Fieldref = 9;
722 
723     /**
724      * Marks a constant pool entry as type String: {@value}.
725      *
726      * @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>
727      */
728     public static final byte CONSTANT_String = 8;
729 
730     /**
731      * Marks a constant pool entry as a Method Reference: {@value}.
732      *
733      * @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>
734      */
735     public static final byte CONSTANT_Methodref = 10;
736 
737     /**
738      * Marks a constant pool entry as an Interface Method Reference: {@value}.
739      *
740      * @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>
741      */
742     public static final byte CONSTANT_InterfaceMethodref = 11;
743 
744     /**
745      * Marks a constant pool entry as a name and type: {@value}.
746      *
747      * @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>
748      */
749     public static final byte CONSTANT_NameAndType = 12;
750 
751     /**
752      * Marks a constant pool entry as a Method Handle: {@value}.
753      *
754      * @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>
755      */
756     public static final byte CONSTANT_MethodHandle = 15;
757 
758     /**
759      * Marks a constant pool entry as a Method Type: {@value}.
760      *
761      * @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>
762      */
763     public static final byte CONSTANT_MethodType = 16;
764 
765     /**
766      * Marks a constant pool entry as dynamically computed: {@value}.
767      *
768      * @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
769      *      Specification</a>
770      * @since 6.3
771      */
772     public static final byte CONSTANT_Dynamic = 17;
773 
774     /**
775      * Marks a constant pool entry as an Invoke Dynamic: {@value}.
776      *
777      * @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
778      *      Specification</a>
779      */
780     public static final byte CONSTANT_InvokeDynamic = 18;
781 
782     /**
783      * Marks a constant pool entry as a Module Reference: {@value}.
784      *
785      * @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
786      *      Specification</a>
787      * @since 6.1
788      */
789     public static final byte CONSTANT_Module = 19;
790 
791     /**
792      * Marks a constant pool entry as a Package Reference: {@value}.
793      *
794      * @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
795      *      Specification</a>
796      * @since 6.1
797      */
798     public static final byte CONSTANT_Package = 20;
799 
800     /**
801      * The names of the types of entries in a constant pool. Use getConstantName instead
802      */
803     private static final String[] CONSTANT_NAMES = { "", "CONSTANT_Utf8", "", "CONSTANT_Integer", "CONSTANT_Float", "CONSTANT_Long", "CONSTANT_Double",
804             "CONSTANT_Class", "CONSTANT_String", "CONSTANT_Fieldref", "CONSTANT_Methodref", "CONSTANT_InterfaceMethodref", "CONSTANT_NameAndType", "", "",
805             "CONSTANT_MethodHandle", "CONSTANT_MethodType", "CONSTANT_Dynamic", "CONSTANT_InvokeDynamic", "CONSTANT_Module", "CONSTANT_Package" };
806 
807     /**
808      * The name of the static initializer, also called &quot;class initialization method&quot; or &quot;interface initialization method&quot;. This is {@value}.
809      */
810     public static final String STATIC_INITIALIZER_NAME = "<clinit>";
811 
812     /**
813      * The name of every constructor method in a class, also called &quot;instance initialization method&quot;. This is {@value}.
814      */
815     public static final String CONSTRUCTOR_NAME = "<init>";
816 
817     /**
818      * The names of the interfaces implemented by arrays.
819      */
820     private static final String[] INTERFACES_IMPLEMENTED_BY_ARRAYS = { "java.lang.Cloneable", "java.io.Serializable" };
821 
822     /**
823      * Maximum Constant Pool entries: {@value}. One of the limitations of the Java Virtual Machine.
824      *
825      * @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,
826      *      page 330, chapter 4.11.</a>
827      */
828     public static final int MAX_CP_ENTRIES = 65535;
829 
830     /**
831      * Maximum code size plus one; the code size must be LESS than {@value}.
832      * <p>
833      * 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
834      * SE 8 Edition, 4.7.3 The Code Attribute.</a>:
835      * </p>
836      *
837      * <pre>
838      * code_length
839      *
840      *  The value of the code_length item gives the number of bytes in the code array for this method.
841      *
842      *  The value of code_length must be greater than zero (as the code array must not be empty) and less than 65536"
843      * </pre>
844      *
845      * @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,
846      *      4.7.3 The Code Attribute.</a>
847      */
848     public static final int MAX_CODE_SIZE = 65536; // bytes
849 
850     /**
851      * The maximum number of dimensions in an array: {@value}. One of the limitations of the Java Virtual Machine.
852      *
853      * @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
854      *      Specification</a>
855      */
856     public static final int MAX_ARRAY_DIMENSIONS = 255;
857 
858     /**
859      * Java VM opcode {@value}.
860      *
861      * @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
862      *      Specification</a>
863      */
864     public static final short NOP = 0;
865 
866     /**
867      * Java VM opcode {@value}.
868      *
869      * @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
870      *      Specification</a>
871      */
872     public static final short ACONST_NULL = 1;
873 
874     /**
875      * Java VM opcode {@value}.
876      *
877      * @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
878      *      Specification</a>
879      */
880     public static final short ICONST_M1 = 2;
881 
882     /**
883      * Java VM opcode {@value}.
884      *
885      * @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
886      *      Specification</a>
887      */
888     public static final short ICONST_0 = 3;
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.iconst_i"> Opcode definitions in The Java Virtual Machine
894      *      Specification</a>
895      */
896     public static final short ICONST_1 = 4;
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.iconst_i"> Opcode definitions in The Java Virtual Machine
902      *      Specification</a>
903      */
904     public static final short ICONST_2 = 5;
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_3 = 6;
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_4 = 7;
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_5 = 8;
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.lconst_l"> Opcode definitions in The Java Virtual Machine
934      *      Specification</a>
935      */
936     public static final short LCONST_0 = 9;
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.lconst_l"> Opcode definitions in The Java Virtual Machine
942      *      Specification</a>
943      */
944     public static final short LCONST_1 = 10;
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.fconst_f"> Opcode definitions in The Java Virtual Machine
950      *      Specification</a>
951      */
952     public static final short FCONST_0 = 11;
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.fconst_f"> Opcode definitions in The Java Virtual Machine
958      *      Specification</a>
959      */
960     public static final short FCONST_1 = 12;
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.fconst_f"> Opcode definitions in The Java Virtual Machine
966      *      Specification</a>
967      */
968     public static final short FCONST_2 = 13;
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.dconst_d"> Opcode definitions in The Java Virtual Machine
974      *      Specification</a>
975      */
976     public static final short DCONST_0 = 14;
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.dconst_d"> Opcode definitions in The Java Virtual Machine
982      *      Specification</a>
983      */
984     public static final short DCONST_1 = 15;
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.bipush"> Opcode definitions in The Java Virtual Machine
990      *      Specification</a>
991      */
992     public static final short BIPUSH = 16;
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.sipush"> Opcode definitions in The Java Virtual Machine
998      *      Specification</a>
999      */
1000     public static final short SIPUSH = 17;
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.ldc"> Opcode definitions in The Java Virtual Machine
1006      *      Specification</a>
1007      */
1008     public static final short LDC = 18;
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.ldc_w"> Opcode definitions in The Java Virtual Machine
1014      *      Specification</a>
1015      */
1016     public static final short LDC_W = 19;
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.ldc2_w"> Opcode definitions in The Java Virtual Machine
1022      *      Specification</a>
1023      */
1024     public static final short LDC2_W = 20;
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.iload"> Opcode definitions in The Java Virtual Machine
1030      *      Specification</a>
1031      */
1032     public static final short ILOAD = 21;
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.lload"> Opcode definitions in The Java Virtual Machine
1038      *      Specification</a>
1039      */
1040     public static final short LLOAD = 22;
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.fload"> Opcode definitions in The Java Virtual Machine
1046      *      Specification</a>
1047      */
1048     public static final short FLOAD = 23;
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.dload"> Opcode definitions in The Java Virtual Machine
1054      *      Specification</a>
1055      */
1056     public static final short DLOAD = 24;
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.aload"> Opcode definitions in The Java Virtual Machine
1062      *      Specification</a>
1063      */
1064     public static final short ALOAD = 25;
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.iload_n"> Opcode definitions in The Java Virtual Machine
1070      *      Specification</a>
1071      */
1072     public static final short ILOAD_0 = 26;
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.iload_n"> Opcode definitions in The Java Virtual Machine
1078      *      Specification</a>
1079      */
1080     public static final short ILOAD_1 = 27;
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.iload_n"> Opcode definitions in The Java Virtual Machine
1086      *      Specification</a>
1087      */
1088     public static final short ILOAD_2 = 28;
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.iload_n"> Opcode definitions in The Java Virtual Machine
1094      *      Specification</a>
1095      */
1096     public static final short ILOAD_3 = 29;
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.lload_n"> Opcode definitions in The Java Virtual Machine
1102      *      Specification</a>
1103      */
1104     public static final short LLOAD_0 = 30;
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.lload_n"> Opcode definitions in The Java Virtual Machine
1110      *      Specification</a>
1111      */
1112     public static final short LLOAD_1 = 31;
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.lload_n"> Opcode definitions in The Java Virtual Machine
1118      *      Specification</a>
1119      */
1120     public static final short LLOAD_2 = 32;
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.lload_n"> Opcode definitions in The Java Virtual Machine
1126      *      Specification</a>
1127      */
1128     public static final short LLOAD_3 = 33;
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.fload_n"> Opcode definitions in The Java Virtual Machine
1134      *      Specification</a>
1135      */
1136     public static final short FLOAD_0 = 34;
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.fload_n"> Opcode definitions in The Java Virtual Machine
1142      *      Specification</a>
1143      */
1144     public static final short FLOAD_1 = 35;
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.fload_n"> Opcode definitions in The Java Virtual Machine
1150      *      Specification</a>
1151      */
1152     public static final short FLOAD_2 = 36;
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.fload_n"> Opcode definitions in The Java Virtual Machine
1158      *      Specification</a>
1159      */
1160     public static final short FLOAD_3 = 37;
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.dload_n"> Opcode definitions in The Java Virtual Machine
1166      *      Specification</a>
1167      */
1168     public static final short DLOAD_0 = 38;
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.dload_n"> Opcode definitions in The Java Virtual Machine
1174      *      Specification</a>
1175      */
1176     public static final short DLOAD_1 = 39;
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.dload_n"> Opcode definitions in The Java Virtual Machine
1182      *      Specification</a>
1183      */
1184     public static final short DLOAD_2 = 40;
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.dload_n"> Opcode definitions in The Java Virtual Machine
1190      *      Specification</a>
1191      */
1192     public static final short DLOAD_3 = 41;
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.aload_n"> Opcode definitions in The Java Virtual Machine
1198      *      Specification</a>
1199      */
1200     public static final short ALOAD_0 = 42;
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.aload_n"> Opcode definitions in The Java Virtual Machine
1206      *      Specification</a>
1207      */
1208     public static final short ALOAD_1 = 43;
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.aload_n"> Opcode definitions in The Java Virtual Machine
1214      *      Specification</a>
1215      */
1216     public static final short ALOAD_2 = 44;
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.aload_n"> Opcode definitions in The Java Virtual Machine
1222      *      Specification</a>
1223      */
1224     public static final short ALOAD_3 = 45;
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.iaload"> Opcode definitions in The Java Virtual Machine
1230      *      Specification</a>
1231      */
1232     public static final short IALOAD = 46;
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.laload"> Opcode definitions in The Java Virtual Machine
1238      *      Specification</a>
1239      */
1240     public static final short LALOAD = 47;
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.faload"> Opcode definitions in The Java Virtual Machine
1246      *      Specification</a>
1247      */
1248     public static final short FALOAD = 48;
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.daload"> Opcode definitions in The Java Virtual Machine
1254      *      Specification</a>
1255      */
1256     public static final short DALOAD = 49;
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.aaload"> Opcode definitions in The Java Virtual Machine
1262      *      Specification</a>
1263      */
1264     public static final short AALOAD = 50;
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.baload"> Opcode definitions in The Java Virtual Machine
1270      *      Specification</a>
1271      */
1272     public static final short BALOAD = 51;
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.caload"> Opcode definitions in The Java Virtual Machine
1278      *      Specification</a>
1279      */
1280     public static final short CALOAD = 52;
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.saload"> Opcode definitions in The Java Virtual Machine
1286      *      Specification</a>
1287      */
1288     public static final short SALOAD = 53;
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.istore"> Opcode definitions in The Java Virtual Machine
1294      *      Specification</a>
1295      */
1296     public static final short ISTORE = 54;
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.lstore"> Opcode definitions in The Java Virtual Machine
1302      *      Specification</a>
1303      */
1304     public static final short LSTORE = 55;
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.fstore"> Opcode definitions in The Java Virtual Machine
1310      *      Specification</a>
1311      */
1312     public static final short FSTORE = 56;
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.dstore"> Opcode definitions in The Java Virtual Machine
1318      *      Specification</a>
1319      */
1320     public static final short DSTORE = 57;
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.astore"> Opcode definitions in The Java Virtual Machine
1326      *      Specification</a>
1327      */
1328     public static final short ASTORE = 58;
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.istore_n"> Opcode definitions in The Java Virtual Machine
1334      *      Specification</a>
1335      */
1336     public static final short ISTORE_0 = 59;
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.istore_n"> Opcode definitions in The Java Virtual Machine
1342      *      Specification</a>
1343      */
1344     public static final short ISTORE_1 = 60;
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.istore_n"> Opcode definitions in The Java Virtual Machine
1350      *      Specification</a>
1351      */
1352     public static final short ISTORE_2 = 61;
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.istore_n"> Opcode definitions in The Java Virtual Machine
1358      *      Specification</a>
1359      */
1360     public static final short ISTORE_3 = 62;
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.lstore_n"> Opcode definitions in The Java Virtual Machine
1366      *      Specification</a>
1367      */
1368     public static final short LSTORE_0 = 63;
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.lstore_n"> Opcode definitions in The Java Virtual Machine
1374      *      Specification</a>
1375      */
1376     public static final short LSTORE_1 = 64;
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.lstore_n"> Opcode definitions in The Java Virtual Machine
1382      *      Specification</a>
1383      */
1384     public static final short LSTORE_2 = 65;
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.lstore_n"> Opcode definitions in The Java Virtual Machine
1390      *      Specification</a>
1391      */
1392     public static final short LSTORE_3 = 66;
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.fstore_n"> Opcode definitions in The Java Virtual Machine
1398      *      Specification</a>
1399      */
1400     public static final short FSTORE_0 = 67;
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.fstore_n"> Opcode definitions in The Java Virtual Machine
1406      *      Specification</a>
1407      */
1408     public static final short FSTORE_1 = 68;
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.fstore_n"> Opcode definitions in The Java Virtual Machine
1414      *      Specification</a>
1415      */
1416     public static final short FSTORE_2 = 69;
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.fstore_n"> Opcode definitions in The Java Virtual Machine
1422      *      Specification</a>
1423      */
1424     public static final short FSTORE_3 = 70;
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.dstore_n"> Opcode definitions in The Java Virtual Machine
1430      *      Specification</a>
1431      */
1432     public static final short DSTORE_0 = 71;
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.dstore_n"> Opcode definitions in The Java Virtual Machine
1438      *      Specification</a>
1439      */
1440     public static final short DSTORE_1 = 72;
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.dstore_n"> Opcode definitions in The Java Virtual Machine
1446      *      Specification</a>
1447      */
1448     public static final short DSTORE_2 = 73;
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.dstore_n"> Opcode definitions in The Java Virtual Machine
1454      *      Specification</a>
1455      */
1456     public static final short DSTORE_3 = 74;
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.astore_n"> Opcode definitions in The Java Virtual Machine
1462      *      Specification</a>
1463      */
1464     public static final short ASTORE_0 = 75;
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.astore_n"> Opcode definitions in The Java Virtual Machine
1470      *      Specification</a>
1471      */
1472     public static final short ASTORE_1 = 76;
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.astore_n"> Opcode definitions in The Java Virtual Machine
1478      *      Specification</a>
1479      */
1480     public static final short ASTORE_2 = 77;
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.astore_n"> Opcode definitions in The Java Virtual Machine
1486      *      Specification</a>
1487      */
1488     public static final short ASTORE_3 = 78;
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.iastore"> Opcode definitions in The Java Virtual Machine
1494      *      Specification</a>
1495      */
1496     public static final short IASTORE = 79;
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.lastore"> Opcode definitions in The Java Virtual Machine
1502      *      Specification</a>
1503      */
1504     public static final short LASTORE = 80;
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.fastore"> Opcode definitions in The Java Virtual Machine
1510      *      Specification</a>
1511      */
1512     public static final short FASTORE = 81;
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.dastore"> Opcode definitions in The Java Virtual Machine
1518      *      Specification</a>
1519      */
1520     public static final short DASTORE = 82;
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.aastore"> Opcode definitions in The Java Virtual Machine
1526      *      Specification</a>
1527      */
1528     public static final short AASTORE = 83;
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.bastore"> Opcode definitions in The Java Virtual Machine
1534      *      Specification</a>
1535      */
1536     public static final short BASTORE = 84;
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.castore"> Opcode definitions in The Java Virtual Machine
1542      *      Specification</a>
1543      */
1544     public static final short CASTORE = 85;
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.sastore"> Opcode definitions in The Java Virtual Machine
1550      *      Specification</a>
1551      */
1552     public static final short SASTORE = 86;
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.pop"> Opcode definitions in The Java Virtual Machine
1558      *      Specification</a>
1559      */
1560     public static final short POP = 87;
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.pop2"> Opcode definitions in The Java Virtual Machine
1566      *      Specification</a>
1567      */
1568     public static final short POP2 = 88;
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.dup"> Opcode definitions in The Java Virtual Machine
1574      *      Specification</a>
1575      */
1576     public static final short DUP = 89;
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.dup_x1"> Opcode definitions in The Java Virtual Machine
1582      *      Specification</a>
1583      */
1584     public static final short DUP_X1 = 90;
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.dup_x2"> Opcode definitions in The Java Virtual Machine
1590      *      Specification</a>
1591      */
1592     public static final short DUP_X2 = 91;
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.dup2"> Opcode definitions in The Java Virtual Machine
1598      *      Specification</a>
1599      */
1600     public static final short DUP2 = 92;
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.dup2_x1"> Opcode definitions in The Java Virtual Machine
1606      *      Specification</a>
1607      */
1608     public static final short DUP2_X1 = 93;
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.dup2_x2"> Opcode definitions in The Java Virtual Machine
1614      *      Specification</a>
1615      */
1616     public static final short DUP2_X2 = 94;
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.swap"> Opcode definitions in The Java Virtual Machine
1622      *      Specification</a>
1623      */
1624     public static final short SWAP = 95;
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.iadd"> Opcode definitions in The Java Virtual Machine
1630      *      Specification</a>
1631      */
1632     public static final short IADD = 96;
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.ladd"> Opcode definitions in The Java Virtual Machine
1638      *      Specification</a>
1639      */
1640     public static final short LADD = 97;
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.fadd"> Opcode definitions in The Java Virtual Machine
1646      *      Specification</a>
1647      */
1648     public static final short FADD = 98;
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.dadd"> Opcode definitions in The Java Virtual Machine
1654      *      Specification</a>
1655      */
1656     public static final short DADD = 99;
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.isub"> Opcode definitions in The Java Virtual Machine
1662      *      Specification</a>
1663      */
1664     public static final short ISUB = 100;
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.lsub"> Opcode definitions in The Java Virtual Machine
1670      *      Specification</a>
1671      */
1672     public static final short LSUB = 101;
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.fsub"> Opcode definitions in The Java Virtual Machine
1678      *      Specification</a>
1679      */
1680     public static final short FSUB = 102;
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.dsub"> Opcode definitions in The Java Virtual Machine
1686      *      Specification</a>
1687      */
1688     public static final short DSUB = 103;
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.imul"> Opcode definitions in The Java Virtual Machine
1694      *      Specification</a>
1695      */
1696     public static final short IMUL = 104;
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.lmul"> Opcode definitions in The Java Virtual Machine
1702      *      Specification</a>
1703      */
1704     public static final short LMUL = 105;
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.fmul"> Opcode definitions in The Java Virtual Machine
1710      *      Specification</a>
1711      */
1712     public static final short FMUL = 106;
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.dmul"> Opcode definitions in The Java Virtual Machine
1718      *      Specification</a>
1719      */
1720     public static final short DMUL = 107;
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.idiv"> Opcode definitions in The Java Virtual Machine
1726      *      Specification</a>
1727      */
1728     public static final short IDIV = 108;
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.ldiv"> Opcode definitions in The Java Virtual Machine
1734      *      Specification</a>
1735      */
1736     public static final short LDIV = 109;
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.fdiv"> Opcode definitions in The Java Virtual Machine
1742      *      Specification</a>
1743      */
1744     public static final short FDIV = 110;
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.ddiv"> Opcode definitions in The Java Virtual Machine
1750      *      Specification</a>
1751      */
1752     public static final short DDIV = 111;
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.irem"> Opcode definitions in The Java Virtual Machine
1758      *      Specification</a>
1759      */
1760     public static final short IREM = 112;
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.lrem"> Opcode definitions in The Java Virtual Machine
1766      *      Specification</a>
1767      */
1768     public static final short LREM = 113;
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.frem"> Opcode definitions in The Java Virtual Machine
1774      *      Specification</a>
1775      */
1776     public static final short FREM = 114;
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.drem"> Opcode definitions in The Java Virtual Machine
1782      *      Specification</a>
1783      */
1784     public static final short DREM = 115;
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.ineg"> Opcode definitions in The Java Virtual Machine
1790      *      Specification</a>
1791      */
1792     public static final short INEG = 116;
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.lneg"> Opcode definitions in The Java Virtual Machine
1798      *      Specification</a>
1799      */
1800     public static final short LNEG = 117;
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.fneg"> Opcode definitions in The Java Virtual Machine
1806      *      Specification</a>
1807      */
1808     public static final short FNEG = 118;
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.dneg"> Opcode definitions in The Java Virtual Machine
1814      *      Specification</a>
1815      */
1816     public static final short DNEG = 119;
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.ishl"> Opcode definitions in The Java Virtual Machine
1822      *      Specification</a>
1823      */
1824     public static final short ISHL = 120;
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.lshl"> Opcode definitions in The Java Virtual Machine
1830      *      Specification</a>
1831      */
1832     public static final short LSHL = 121;
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.ishr"> Opcode definitions in The Java Virtual Machine
1838      *      Specification</a>
1839      */
1840     public static final short ISHR = 122;
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.lshr"> Opcode definitions in The Java Virtual Machine
1846      *      Specification</a>
1847      */
1848     public static final short LSHR = 123;
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.iushr"> Opcode definitions in The Java Virtual Machine
1854      *      Specification</a>
1855      */
1856     public static final short IUSHR = 124;
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.lushr"> Opcode definitions in The Java Virtual Machine
1862      *      Specification</a>
1863      */
1864     public static final short LUSHR = 125;
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.iand"> Opcode definitions in The Java Virtual Machine
1870      *      Specification</a>
1871      */
1872     public static final short IAND = 126;
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.land"> Opcode definitions in The Java Virtual Machine
1878      *      Specification</a>
1879      */
1880     public static final short LAND = 127;
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.ior"> Opcode definitions in The Java Virtual Machine
1886      *      Specification</a>
1887      */
1888     public static final short IOR = 128;
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.lor"> Opcode definitions in The Java Virtual Machine
1894      *      Specification</a>
1895      */
1896     public static final short LOR = 129;
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.ixor"> Opcode definitions in The Java Virtual Machine
1902      *      Specification</a>
1903      */
1904     public static final short IXOR = 130;
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.lxor"> Opcode definitions in The Java Virtual Machine
1910      *      Specification</a>
1911      */
1912     public static final short LXOR = 131;
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.iinc"> Opcode definitions in The Java Virtual Machine
1918      *      Specification</a>
1919      */
1920     public static final short IINC = 132;
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.i2l"> Opcode definitions in The Java Virtual Machine
1926      *      Specification</a>
1927      */
1928     public static final short I2L = 133;
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.i2f"> Opcode definitions in The Java Virtual Machine
1934      *      Specification</a>
1935      */
1936     public static final short I2F = 134;
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.i2d"> Opcode definitions in The Java Virtual Machine
1942      *      Specification</a>
1943      */
1944     public static final short I2D = 135;
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.l2i"> Opcode definitions in The Java Virtual Machine
1950      *      Specification</a>
1951      */
1952     public static final short L2I = 136;
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.l2f"> Opcode definitions in The Java Virtual Machine
1958      *      Specification</a>
1959      */
1960     public static final short L2F = 137;
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.l2d"> Opcode definitions in The Java Virtual Machine
1966      *      Specification</a>
1967      */
1968     public static final short L2D = 138;
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.f2i"> Opcode definitions in The Java Virtual Machine
1974      *      Specification</a>
1975      */
1976     public static final short F2I = 139;
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.f2l"> Opcode definitions in The Java Virtual Machine
1982      *      Specification</a>
1983      */
1984     public static final short F2L = 140;
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.f2d"> Opcode definitions in The Java Virtual Machine
1990      *      Specification</a>
1991      */
1992     public static final short F2D = 141;
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.d2i"> Opcode definitions in The Java Virtual Machine
1998      *      Specification</a>
1999      */
2000     public static final short D2I = 142;
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.d2l"> Opcode definitions in The Java Virtual Machine
2006      *      Specification</a>
2007      */
2008     public static final short D2L = 143;
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.d2f"> Opcode definitions in The Java Virtual Machine
2014      *      Specification</a>
2015      */
2016     public static final short D2F = 144;
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.i2b"> Opcode definitions in The Java Virtual Machine
2022      *      Specification</a>
2023      */
2024     public static final short I2B = 145;
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"> Opcode definitions in The Java Virtual Machine Specification</a>
2030      */
2031     public static final short INT2BYTE = 145; // Old notation
2032 
2033     /**
2034      * Java VM opcode {@value}.
2035      *
2036      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.i2c"> Opcode definitions in The Java Virtual Machine
2037      *      Specification</a>
2038      */
2039     public static final short I2C = 146;
2040 
2041     /**
2042      * Java VM opcode {@value}.
2043      *
2044      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> Opcode definitions in The Java Virtual Machine Specification</a>
2045      */
2046     public static final short INT2CHAR = 146; // Old notation
2047 
2048     /**
2049      * Java VM opcode {@value}.
2050      *
2051      * @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
2052      *      Specification</a>
2053      */
2054     public static final short I2S = 147;
2055 
2056     /**
2057      * Java VM opcode {@value}.
2058      *
2059      * @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>
2060      */
2061     public static final short INT2SHORT = 147; // Old notation
2062 
2063     /**
2064      * Java VM opcode {@value}.
2065      *
2066      * @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
2067      *      Specification</a>
2068      */
2069     public static final short LCMP = 148;
2070 
2071     /**
2072      * Java VM opcode {@value}.
2073      *
2074      * @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
2075      *      Specification</a>
2076      */
2077     public static final short FCMPL = 149;
2078 
2079     /**
2080      * Java VM opcode {@value}.
2081      *
2082      * @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
2083      *      Specification</a>
2084      */
2085     public static final short FCMPG = 150;
2086 
2087     /**
2088      * Java VM opcode {@value}.
2089      *
2090      * @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
2091      *      Specification</a>
2092      */
2093     public static final short DCMPL = 151;
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.dcmpg"> Opcode definitions in The Java Virtual Machine
2099      *      Specification</a>
2100      */
2101     public static final short DCMPG = 152;
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.ifeq"> Opcode definitions in The Java Virtual Machine
2107      *      Specification</a>
2108      */
2109     public static final short IFEQ = 153;
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.ifne"> Opcode definitions in The Java Virtual Machine
2115      *      Specification</a>
2116      */
2117     public static final short IFNE = 154;
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.iflt"> Opcode definitions in The Java Virtual Machine
2123      *      Specification</a>
2124      */
2125     public static final short IFLT = 155;
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.ifge"> Opcode definitions in The Java Virtual Machine
2131      *      Specification</a>
2132      */
2133     public static final short IFGE = 156;
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.ifgt"> Opcode definitions in The Java Virtual Machine
2139      *      Specification</a>
2140      */
2141     public static final short IFGT = 157;
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.ifle"> Opcode definitions in The Java Virtual Machine
2147      *      Specification</a>
2148      */
2149     public static final short IFLE = 158;
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.if_icmp_cond"> Opcode definitions in The Java Virtual Machine
2155      *      Specification</a>
2156      */
2157     public static final short IF_ICMPEQ = 159;
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.if_icmp_cond"> Opcode definitions in The Java Virtual Machine
2163      *      Specification</a>
2164      */
2165     public static final short IF_ICMPNE = 160;
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.if_icmp_cond"> Opcode definitions in The Java Virtual Machine
2171      *      Specification</a>
2172      */
2173     public static final short IF_ICMPLT = 161;
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.if_icmp_cond"> Opcode definitions in The Java Virtual Machine
2179      *      Specification</a>
2180      */
2181     public static final short IF_ICMPGE = 162;
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_ICMPGT = 163;
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_ICMPLE = 164;
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_acmp_cond"> Opcode definitions in The Java Virtual Machine
2203      *      Specification</a>
2204      */
2205     public static final short IF_ACMPEQ = 165;
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_acmp_cond"> Opcode definitions in The Java Virtual Machine
2211      *      Specification</a>
2212      */
2213     public static final short IF_ACMPNE = 166;
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.goto"> Opcode definitions in The Java Virtual Machine
2219      *      Specification</a>
2220      */
2221     public static final short GOTO = 167;
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.jsr"> Opcode definitions in The Java Virtual Machine
2227      *      Specification</a>
2228      */
2229     public static final short JSR = 168;
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.ret"> Opcode definitions in The Java Virtual Machine
2235      *      Specification</a>
2236      */
2237     public static final short RET = 169;
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.tableswitch"> Opcode definitions in The Java Virtual Machine
2243      *      Specification</a>
2244      */
2245     public static final short TABLESWITCH = 170;
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.lookupswitch"> Opcode definitions in The Java Virtual Machine
2251      *      Specification</a>
2252      */
2253     public static final short LOOKUPSWITCH = 171;
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.ireturn"> Opcode definitions in The Java Virtual Machine
2259      *      Specification</a>
2260      */
2261     public static final short IRETURN = 172;
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.lreturn"> Opcode definitions in The Java Virtual Machine
2267      *      Specification</a>
2268      */
2269     public static final short LRETURN = 173;
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.freturn"> Opcode definitions in The Java Virtual Machine
2275      *      Specification</a>
2276      */
2277     public static final short FRETURN = 174;
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.dreturn"> Opcode definitions in The Java Virtual Machine
2283      *      Specification</a>
2284      */
2285     public static final short DRETURN = 175;
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.areturn"> Opcode definitions in The Java Virtual Machine
2291      *      Specification</a>
2292      */
2293     public static final short ARETURN = 176;
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.return"> Opcode definitions in The Java Virtual Machine
2299      *      Specification</a>
2300      */
2301     public static final short RETURN = 177;
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.getstatic"> Opcode definitions in The Java Virtual Machine
2307      *      Specification</a>
2308      */
2309     public static final short GETSTATIC = 178;
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.putstatic"> Opcode definitions in The Java Virtual Machine
2315      *      Specification</a>
2316      */
2317     public static final short PUTSTATIC = 179;
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.getfield"> Opcode definitions in The Java Virtual Machine
2323      *      Specification</a>
2324      */
2325     public static final short GETFIELD = 180;
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.putfield"> Opcode definitions in The Java Virtual Machine
2331      *      Specification</a>
2332      */
2333     public static final short PUTFIELD = 181;
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.invokevirtual"> Opcode definitions in The Java Virtual Machine
2339      *      Specification</a>
2340      */
2341     public static final short INVOKEVIRTUAL = 182;
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.invokespecial"> Opcode definitions in The Java Virtual Machine
2347      *      Specification</a>
2348      */
2349     public static final short INVOKESPECIAL = 183;
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"> Opcode definitions in The Java Virtual Machine Specification</a>
2355      */
2356     public static final short INVOKENONVIRTUAL = 183; // Old name in JDK 1.0
2357 
2358     /**
2359      * Java VM opcode {@value}.
2360      *
2361      * @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
2362      *      Specification</a>
2363      */
2364     public static final short INVOKESTATIC = 184;
2365 
2366     /**
2367      * Java VM opcode {@value}.
2368      *
2369      * @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
2370      *      Specification</a>
2371      */
2372     public static final short INVOKEINTERFACE = 185;
2373 
2374     /**
2375      * Java VM opcode {@value}.
2376      *
2377      * @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
2378      *      Specification</a>
2379      */
2380     public static final short INVOKEDYNAMIC = 186;
2381 
2382     /**
2383      * Java VM opcode {@value}.
2384      *
2385      * @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
2386      *      Specification</a>
2387      */
2388     public static final short NEW = 187;
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.newarray"> Opcode definitions in The Java Virtual Machine
2394      *      Specification</a>
2395      */
2396     public static final short NEWARRAY = 188;
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.anewarray"> Opcode definitions in The Java Virtual Machine
2402      *      Specification</a>
2403      */
2404     public static final short ANEWARRAY = 189;
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.arraylength"> Opcode definitions in The Java Virtual Machine
2410      *      Specification</a>
2411      */
2412     public static final short ARRAYLENGTH = 190;
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.athrow"> Opcode definitions in The Java Virtual Machine
2418      *      Specification</a>
2419      */
2420     public static final short ATHROW = 191;
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.checkcast"> Opcode definitions in The Java Virtual Machine
2426      *      Specification</a>
2427      */
2428     public static final short CHECKCAST = 192;
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.instanceof"> Opcode definitions in The Java Virtual Machine
2434      *      Specification</a>
2435      */
2436     public static final short INSTANCEOF = 193;
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.monitorenter"> Opcode definitions in The Java Virtual Machine
2442      *      Specification</a>
2443      */
2444     public static final short MONITORENTER = 194;
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.monitorexit"> Opcode definitions in The Java Virtual Machine
2450      *      Specification</a>
2451      */
2452     public static final short MONITOREXIT = 195;
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.wide"> Opcode definitions in The Java Virtual Machine
2458      *      Specification</a>
2459      */
2460     public static final short WIDE = 196;
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.multianewarray"> Opcode definitions in The Java Virtual Machine
2466      *      Specification</a>
2467      */
2468     public static final short MULTIANEWARRAY = 197;
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.ifnull"> Opcode definitions in The Java Virtual Machine
2474      *      Specification</a>
2475      */
2476     public static final short IFNULL = 198;
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.ifnonnull"> Opcode definitions in The Java Virtual Machine
2482      *      Specification</a>
2483      */
2484     public static final short IFNONNULL = 199;
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.goto_w"> Opcode definitions in The Java Virtual Machine
2490      *      Specification</a>
2491      */
2492     public static final short GOTO_W = 200;
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.jsr_w"> Opcode definitions in The Java Virtual Machine
2498      *      Specification</a>
2499      */
2500     public static final short JSR_W = 201;
2501 
2502     /**
2503      * JVM internal opcode {@value}.
2504      *
2505      * @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>
2506      */
2507     public static final short BREAKPOINT = 202;
2508 
2509     /**
2510      * JVM internal opcode {@value}.
2511      *
2512      * @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
2513      *      opcodes in the Java Virtual Machine Specification (version 1)</a>
2514      * @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
2515      *      version of the Java Virtual Machine Specification.</a>
2516      */
2517     public static final short LDC_QUICK = 203;
2518 
2519     /**
2520      * JVM internal opcode {@value}.
2521      *
2522      * @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
2523      *      opcodes in the Java Virtual Machine Specification (version 1)</a>
2524      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> Why the _quick opcodes were removed from the second
2525      *      version of the Java Virtual Machine Specification.</a>
2526      */
2527     public static final short LDC_W_QUICK = 204;
2528 
2529     /**
2530      * JVM internal opcode {@value}.
2531      *
2532      * @see <a href= "https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html"> Specification of _quick
2533      *      opcodes in the Java Virtual Machine Specification (version 1)</a>
2534      * @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
2535      *      version of the Java Virtual Machine Specification.</a>
2536      */
2537     public static final short LDC2_W_QUICK = 205;
2538 
2539     /**
2540      * JVM internal opcode {@value}.
2541      *
2542      * @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
2543      *      opcodes in the Java Virtual Machine Specification (version 1)</a>
2544      * @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
2545      *      version of the Java Virtual Machine Specification.</a>
2546      */
2547     public static final short GETFIELD_QUICK = 206;
2548 
2549     /**
2550      * JVM internal opcode {@value}.
2551      *
2552      * @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
2553      *      opcodes in the Java Virtual Machine Specification (version 1)</a>
2554      * @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
2555      *      version of the Java Virtual Machine Specification.</a>
2556      */
2557     public static final short PUTFIELD_QUICK = 207;
2558 
2559     /**
2560      * JVM internal opcode {@value}.
2561      *
2562      * @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
2563      *      opcodes in the Java Virtual Machine Specification (version 1)</a>
2564      * @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
2565      *      version of the Java Virtual Machine Specification.</a>
2566      */
2567     public static final short GETFIELD2_QUICK = 208;
2568 
2569     /**
2570      * JVM internal opcode {@value}.
2571      *
2572      * @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
2573      *      opcodes in the Java Virtual Machine Specification (version 1)</a>
2574      * @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
2575      *      version of the Java Virtual Machine Specification.</a>
2576      */
2577     public static final short PUTFIELD2_QUICK = 209;
2578 
2579     /**
2580      * JVM internal opcode {@value}.
2581      *
2582      * @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
2583      *      opcodes in the Java Virtual Machine Specification (version 1)</a>
2584      * @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
2585      *      version of the Java Virtual Machine Specification.</a>
2586      */
2587     public static final short GETSTATIC_QUICK = 210;
2588 
2589     /**
2590      * JVM internal opcode {@value}.
2591      *
2592      * @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
2593      *      opcodes in the Java Virtual Machine Specification (version 1)</a>
2594      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> Why the _quick opcodes were removed from the second
2595      *      version of the Java Virtual Machine Specification.</a>
2596      */
2597     public static final short PUTSTATIC_QUICK = 211;
2598 
2599     /**
2600      * JVM internal opcode {@value}.
2601      *
2602      * @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
2603      *      opcodes in the Java Virtual Machine Specification (version 1)</a>
2604      * @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
2605      *      version of the Java Virtual Machine Specification.</a>
2606      */
2607     public static final short GETSTATIC2_QUICK = 212;
2608 
2609     /**
2610      * JVM internal opcode {@value}.
2611      *
2612      * @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
2613      *      opcodes in the Java Virtual Machine Specification (version 1)</a>
2614      * @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
2615      *      version of the Java Virtual Machine Specification.</a>
2616      */
2617     public static final short PUTSTATIC2_QUICK = 213;
2618 
2619     /**
2620      * JVM internal opcode {@value}.
2621      *
2622      * @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
2623      *      opcodes in the Java Virtual Machine Specification (version 1)</a>
2624      * @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
2625      *      version of the Java Virtual Machine Specification.</a>
2626      */
2627     public static final short INVOKEVIRTUAL_QUICK = 214;
2628 
2629     /**
2630      * JVM internal opcode {@value}.
2631      *
2632      * @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
2633      *      opcodes in the Java Virtual Machine Specification (version 1)</a>
2634      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> Why the _quick opcodes were removed from the second
2635      *      version of the Java Virtual Machine Specification.</a>
2636      */
2637     public static final short INVOKENONVIRTUAL_QUICK = 215;
2638 
2639     /**
2640      * JVM internal opcode {@value}.
2641      *
2642      * @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
2643      *      opcodes in the Java Virtual Machine Specification (version 1)</a>
2644      * @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
2645      *      version of the Java Virtual Machine Specification.</a>
2646      */
2647     public static final short INVOKESUPER_QUICK = 216;
2648 
2649     /**
2650      * JVM internal opcode {@value}.
2651      *
2652      * @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
2653      *      opcodes in the Java Virtual Machine Specification (version 1)</a>
2654      * @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
2655      *      version of the Java Virtual Machine Specification.</a>
2656      */
2657     public static final short INVOKESTATIC_QUICK = 217;
2658 
2659     /**
2660      * JVM internal opcode {@value}.
2661      *
2662      * @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
2663      *      opcodes in the Java Virtual Machine Specification (version 1)</a>
2664      * @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
2665      *      version of the Java Virtual Machine Specification.</a>
2666      */
2667     public static final short INVOKEINTERFACE_QUICK = 218;
2668 
2669     /**
2670      * JVM internal opcode {@value}.
2671      *
2672      * @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
2673      *      opcodes in the Java Virtual Machine Specification (version 1)</a>
2674      * @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
2675      *      version of the Java Virtual Machine Specification.</a>
2676      */
2677     public static final short INVOKEVIRTUALOBJECT_QUICK = 219;
2678 
2679     /**
2680      * JVM internal opcode {@value}.
2681      *
2682      * @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
2683      *      opcodes in the Java Virtual Machine Specification (version 1)</a>
2684      * @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
2685      *      version of the Java Virtual Machine Specification.</a>
2686      */
2687     public static final short NEW_QUICK = 221;
2688 
2689     /**
2690      * JVM internal opcode {@value}.
2691      *
2692      * @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
2693      *      opcodes in the Java Virtual Machine Specification (version 1)</a>
2694      * @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
2695      *      version of the Java Virtual Machine Specification.</a>
2696      */
2697     public static final short ANEWARRAY_QUICK = 222;
2698 
2699     /**
2700      * JVM internal opcode {@value}.
2701      *
2702      * @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
2703      *      opcodes in the Java Virtual Machine Specification (version 1)</a>
2704      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> Why the _quick opcodes were removed from the second
2705      *      version of the Java Virtual Machine Specification.</a>
2706      */
2707     public static final short MULTIANEWARRAY_QUICK = 223;
2708 
2709     /**
2710      * JVM internal opcode {@value}.
2711      *
2712      * @see <a href= "https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html"> Specification of _quick
2713      *      opcodes in the Java Virtual Machine Specification (version 1)</a>
2714      * @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
2715      *      version of the Java Virtual Machine Specification.</a>
2716      */
2717     public static final short CHECKCAST_QUICK = 224;
2718 
2719     /**
2720      * JVM internal opcode {@value}.
2721      *
2722      * @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
2723      *      opcodes in the Java Virtual Machine Specification (version 1)</a>
2724      * @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
2725      *      version of the Java Virtual Machine Specification.</a>
2726      */
2727     public static final short INSTANCEOF_QUICK = 225;
2728 
2729     /**
2730      * JVM internal opcode {@value}.
2731      *
2732      * @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
2733      *      opcodes in the Java Virtual Machine Specification (version 1)</a>
2734      * @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
2735      *      version of the Java Virtual Machine Specification.</a>
2736      */
2737     public static final short INVOKEVIRTUAL_QUICK_W = 226;
2738 
2739     /**
2740      * JVM internal opcode {@value}.
2741      *
2742      * @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
2743      *      opcodes in the Java Virtual Machine Specification (version 1)</a>
2744      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> Why the _quick opcodes were removed from the second
2745      *      version of the Java Virtual Machine Specification.</a>
2746      */
2747     public static final short GETFIELD_QUICK_W = 227;
2748 
2749     /**
2750      * JVM internal opcode {@value}.
2751      *
2752      * @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
2753      *      opcodes in the Java Virtual Machine Specification (version 1)</a>
2754      * @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
2755      *      version of the Java Virtual Machine Specification.</a>
2756      */
2757     public static final short PUTFIELD_QUICK_W = 228;
2758 
2759     /**
2760      * JVM internal opcode {@value}.
2761      *
2762      * @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>
2763      */
2764     public static final short IMPDEP1 = 254;
2765 
2766     /**
2767      * JVM internal opcode {@value}.
2768      *
2769      * @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>
2770      */
2771     public static final short IMPDEP2 = 255;
2772 
2773     /**
2774      * 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
2775      * dumped.
2776      */
2777     public static final short PUSH = 4711;
2778 
2779     /**
2780      * BCEL virtual instruction for either LOOKUPSWITCH or TABLESWITCH: {@value}. Will be converted to the appropriate JVM opcode when the class is dumped.
2781      */
2782     public static final short SWITCH = 4712;
2783 
2784     /**
2785      * Illegal opcode: {@value}.
2786      */
2787     public static final short UNDEFINED = -1;
2788 
2789     /**
2790      * Illegal opcode: {@value}.
2791      */
2792     public static final short UNPREDICTABLE = -2;
2793 
2794     /**
2795      * Illegal opcode: {@value}.
2796      */
2797     public static final short RESERVED = -3;
2798 
2799     /**
2800      * Mnemonic for an illegal opcode: {@value}.
2801      */
2802     public static final String ILLEGAL_OPCODE = "<illegal opcode>";
2803 
2804     /**
2805      * Mnemonic for an illegal type: {@value}.
2806      */
2807     public static final String ILLEGAL_TYPE = "<illegal type>";
2808 
2809     /**
2810      * Boolean data type: {@value}.
2811      *
2812      * @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
2813      *      Specification</a>
2814      */
2815     public static final byte T_BOOLEAN = 4;
2816 
2817     /**
2818      * Char data type: {@value}.
2819      *
2820      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.9.1-120-P"> Static Constraints in the Java Virtual Machine
2821      *      Specification</a>
2822      */
2823     public static final byte T_CHAR = 5;
2824 
2825     /**
2826      * Float data type: {@value}.
2827      *
2828      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.9.1-120-P"> Static Constraints in the Java Virtual Machine
2829      *      Specification</a>
2830      */
2831     public static final byte T_FLOAT = 6;
2832 
2833     /**
2834      * Double data type: {@value}.
2835      *
2836      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.9.1-120-P"> Static Constraints in the Java Virtual Machine
2837      *      Specification</a>
2838      */
2839     public static final byte T_DOUBLE = 7;
2840 
2841     /**
2842      * Byte 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_BYTE = 8;
2848 
2849     /**
2850      * Short 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_SHORT = 9;
2856 
2857     /**
2858      * Int 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_INT = 10;
2864 
2865     /**
2866      * Long 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_LONG = 11;
2872 
2873     /** Void data type (non-standard). */
2874     public static final byte T_VOID = 12; // Non-standard
2875 
2876     /** Array data type. */
2877     public static final byte T_ARRAY = 13;
2878 
2879     /** Object data type. */
2880     public static final byte T_OBJECT = 14;
2881 
2882     /** Reference data type (deprecated). */
2883     public static final byte T_REFERENCE = 14; // Deprecated
2884 
2885     /** Unknown data type. */
2886     public static final byte T_UNKNOWN = 15;
2887 
2888     /** Address data type. */
2889     public static final byte T_ADDRESS = 16;
2890 
2891     /**
2892      * The primitive type names corresponding to the T_XX constants, for example, TYPE_NAMES[T_INT] = "int"
2893      */
2894     private static final String[] TYPE_NAMES = { ILLEGAL_TYPE, ILLEGAL_TYPE, ILLEGAL_TYPE, ILLEGAL_TYPE, "boolean", "char", "float", "double", "byte", "short",
2895             "int", "long", "void", "array", "object", "unknown", "address" };
2896 
2897     /**
2898      * The primitive class names corresponding to the T_XX constants, for example, CLASS_TYPE_NAMES[T_INT] = "java.lang.Integer"
2899      */
2900     private static final String[] CLASS_TYPE_NAMES = { ILLEGAL_TYPE, ILLEGAL_TYPE, ILLEGAL_TYPE, ILLEGAL_TYPE, "java.lang.Boolean", "java.lang.Character",
2901             "java.lang.Float", "java.lang.Double", "java.lang.Byte", "java.lang.Short", "java.lang.Integer", "java.lang.Long", "java.lang.Void", ILLEGAL_TYPE,
2902             ILLEGAL_TYPE, ILLEGAL_TYPE, ILLEGAL_TYPE };
2903 
2904     /**
2905      * The signature characters corresponding to primitive types, for example, SHORT_TYPE_NAMES[T_INT] = "I"
2906      */
2907     public static final String[] SHORT_TYPE_NAMES = { ILLEGAL_TYPE, ILLEGAL_TYPE, ILLEGAL_TYPE, ILLEGAL_TYPE, "Z", "C", "F", "D", "B", "S", "I", "J", "V",
2908             ILLEGAL_TYPE, ILLEGAL_TYPE, ILLEGAL_TYPE };
2909 
2910     /**
2911      * 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
2912      * of operands for a bipush instruction.
2913      */
2914     static final short[] NO_OF_OPERANDS = { 0/* nop */, 0/* aconst_null */, 0/* iconst_m1 */, 0/* iconst_0 */, 0/* iconst_1 */, 0/* iconst_2 */,
2915             0/* iconst_3 */, 0/* iconst_4 */, 0/* iconst_5 */, 0/* lconst_0 */, 0/* lconst_1 */, 0/* fconst_0 */, 0/* fconst_1 */, 0/* fconst_2 */,
2916             0/* dconst_0 */, 0/* dconst_1 */, 1/* bipush */, 2/* sipush */, 1/* ldc */, 2/* ldc_w */, 2/* ldc2_w */, 1/* iload */, 1/* lload */, 1/* fload */,
2917             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 */,
2918             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 */,
2919             0/* aload_0 */, 0/* aload_1 */, 0/* aload_2 */, 0/* aload_3 */, 0/* iaload */, 0/* laload */, 0/* faload */, 0/* daload */, 0/* aaload */,
2920             0/* baload */, 0/* caload */, 0/* saload */, 1/* istore */, 1/* lstore */, 1/* fstore */, 1/* dstore */, 1/* astore */, 0/* istore_0 */,
2921             0/* istore_1 */, 0/* istore_2 */, 0/* istore_3 */, 0/* lstore_0 */, 0/* lstore_1 */, 0/* lstore_2 */, 0/* lstore_3 */, 0/* fstore_0 */,
2922             0/* fstore_1 */, 0/* fstore_2 */, 0/* fstore_3 */, 0/* dstore_0 */, 0/* dstore_1 */, 0/* dstore_2 */, 0/* dstore_3 */, 0/* astore_0 */,
2923             0/* astore_1 */, 0/* astore_2 */, 0/* astore_3 */, 0/* iastore */, 0/* lastore */, 0/* fastore */, 0/* dastore */, 0/* aastore */, 0/* bastore */,
2924             0/* castore */, 0/* sastore */, 0/* pop */, 0/* pop2 */, 0/* dup */, 0/* dup_x1 */, 0/* dup_x2 */, 0/* dup2 */, 0/* dup2_x1 */, 0/* dup2_x2 */,
2925             0/* swap */, 0/* iadd */, 0/* ladd */, 0/* fadd */, 0/* dadd */, 0/* isub */, 0/* lsub */, 0/* fsub */, 0/* dsub */, 0/* imul */, 0/* lmul */,
2926             0/* fmul */, 0/* dmul */, 0/* idiv */, 0/* ldiv */, 0/* fdiv */, 0/* ddiv */, 0/* irem */, 0/* lrem */, 0/* frem */, 0/* drem */, 0/* ineg */,
2927             0/* lneg */, 0/* fneg */, 0/* dneg */, 0/* ishl */, 0/* lshl */, 0/* ishr */, 0/* lshr */, 0/* iushr */, 0/* lushr */, 0/* iand */, 0/* land */,
2928             0/* ior */, 0/* lor */, 0/* ixor */, 0/* lxor */, 2/* iinc */, 0/* i2l */, 0/* i2f */, 0/* i2d */, 0/* l2i */, 0/* l2f */, 0/* l2d */, 0/* f2i */,
2929             0/* f2l */, 0/* f2d */, 0/* d2i */, 0/* d2l */, 0/* d2f */, 0/* i2b */, 0/* i2c */, 0/* i2s */, 0/* lcmp */, 0/* fcmpl */, 0/* fcmpg */,
2930             0/* dcmpl */, 0/* dcmpg */, 2/* ifeq */, 2/* ifne */, 2/* iflt */, 2/* ifge */, 2/* ifgt */, 2/* ifle */, 2/* if_icmpeq */, 2/* if_icmpne */,
2931             2/* if_icmplt */, 2/* if_icmpge */, 2/* if_icmpgt */, 2/* if_icmple */, 2/* if_acmpeq */, 2/* if_acmpne */, 2/* goto */, 2/* jsr */, 1/* ret */,
2932             UNPREDICTABLE/* tableswitch */, UNPREDICTABLE/* lookupswitch */, 0/* ireturn */, 0/* lreturn */, 0/* freturn */, 0/* dreturn */, 0/* areturn */,
2933             0/* return */, 2/* getstatic */, 2/* putstatic */, 2/* getfield */, 2/* putfield */, 2/* invokevirtual */, 2/* invokespecial */,
2934             2/* invokestatic */, 4/* invokeinterface */, 4/* invokedynamic */, 2/* new */, 1/* newarray */, 2/* anewarray */, 0/* arraylength */, 0/* athrow */,
2935             2/* checkcast */, 2/* instanceof */, 0/* monitorenter */, 0/* monitorexit */, UNPREDICTABLE/* wide */, 3/* multianewarray */, 2/* ifnull */,
2936             2/* ifnonnull */, 4/* goto_w */, 4/* jsr_w */, 0/* breakpoint */, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
2937             UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
2938             UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
2939             UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
2940             UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, RESERVED/* impdep1 */, RESERVED/* impdep2 */
2941     };
2942 
2943     /**
2944      * 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
2945      * types for the instruction.
2946      */
2947     static final short[][] TYPE_OF_OPERANDS = { {}/* nop */, {}/* aconst_null */, {}/* iconst_m1 */, {}/* iconst_0 */, {}/* iconst_1 */, {}/* iconst_2 */,
2948             {}/* iconst_3 */, {}/* iconst_4 */, {}/* iconst_5 */, {}/* lconst_0 */, {}/* lconst_1 */, {}/* fconst_0 */, {}/* fconst_1 */, {}/* fconst_2 */,
2949             {}/* dconst_0 */, {}/* dconst_1 */, { T_BYTE }/* bipush */, { T_SHORT }/* sipush */, { T_BYTE }/* ldc */, { T_SHORT }/* ldc_w */,
2950             { T_SHORT }/* ldc2_w */, { T_BYTE }/* iload */, { T_BYTE }/* lload */, { T_BYTE }/* fload */, { T_BYTE }/* dload */, { T_BYTE }/* aload */,
2951             {}/* iload_0 */, {}/* iload_1 */, {}/* iload_2 */, {}/* iload_3 */, {}/* lload_0 */, {}/* lload_1 */, {}/* lload_2 */, {}/* lload_3 */,
2952             {}/* fload_0 */, {}/* fload_1 */, {}/* fload_2 */, {}/* fload_3 */, {}/* dload_0 */, {}/* dload_1 */, {}/* dload_2 */, {}/* dload_3 */,
2953             {}/* aload_0 */, {}/* aload_1 */, {}/* aload_2 */, {}/* aload_3 */, {}/* iaload */, {}/* laload */, {}/* faload */, {}/* daload */, {}/* aaload */,
2954             {}/* baload */, {}/* caload */, {}/* saload */, { T_BYTE }/* istore */, { T_BYTE }/* lstore */, { T_BYTE }/* fstore */, { T_BYTE }/* dstore */,
2955             { T_BYTE }/* astore */, {}/* istore_0 */, {}/* istore_1 */, {}/* istore_2 */, {}/* istore_3 */, {}/* lstore_0 */, {}/* lstore_1 */,
2956             {}/* lstore_2 */, {}/* lstore_3 */, {}/* fstore_0 */, {}/* fstore_1 */, {}/* fstore_2 */, {}/* fstore_3 */, {}/* dstore_0 */, {}/* dstore_1 */,
2957             {}/* dstore_2 */, {}/* dstore_3 */, {}/* astore_0 */, {}/* astore_1 */, {}/* astore_2 */, {}/* astore_3 */, {}/* iastore */, {}/* lastore */,
2958             {}/* fastore */, {}/* dastore */, {}/* aastore */, {}/* bastore */, {}/* castore */, {}/* sastore */, {}/* pop */, {}/* pop2 */, {}/* dup */,
2959             {}/* dup_x1 */, {}/* dup_x2 */, {}/* dup2 */, {}/* dup2_x1 */, {}/* dup2_x2 */, {}/* swap */, {}/* iadd */, {}/* ladd */, {}/* fadd */,
2960             {}/* dadd */, {}/* isub */, {}/* lsub */, {}/* fsub */, {}/* dsub */, {}/* imul */, {}/* lmul */, {}/* fmul */, {}/* dmul */, {}/* idiv */,
2961             {}/* ldiv */, {}/* fdiv */, {}/* ddiv */, {}/* irem */, {}/* lrem */, {}/* frem */, {}/* drem */, {}/* ineg */, {}/* lneg */, {}/* fneg */,
2962             {}/* dneg */, {}/* ishl */, {}/* lshl */, {}/* ishr */, {}/* lshr */, {}/* iushr */, {}/* lushr */, {}/* iand */, {}/* land */, {}/* ior */,
2963             {}/* lor */, {}/* ixor */, {}/* lxor */, { T_BYTE, T_BYTE }/* iinc */, {}/* i2l */, {}/* i2f */, {}/* i2d */, {}/* l2i */, {}/* l2f */, {}/* l2d */,
2964             {}/* f2i */, {}/* f2l */, {}/* f2d */, {}/* d2i */, {}/* d2l */, {}/* d2f */, {}/* i2b */, {}/* i2c */, {}/* i2s */, {}/* lcmp */, {}/* fcmpl */,
2965             {}/* fcmpg */, {}/* dcmpl */, {}/* dcmpg */, { T_SHORT }/* ifeq */, { T_SHORT }/* ifne */, { T_SHORT }/* iflt */, { T_SHORT }/* ifge */,
2966             { T_SHORT }/* ifgt */, { T_SHORT }/* ifle */, { T_SHORT }/* if_icmpeq */, { T_SHORT }/* if_icmpne */, { T_SHORT }/* if_icmplt */,
2967             { T_SHORT }/* if_icmpge */, { T_SHORT }/* if_icmpgt */, { T_SHORT }/* if_icmple */, { T_SHORT }/* if_acmpeq */, { T_SHORT }/* if_acmpne */,
2968             { T_SHORT }/* goto */, { T_SHORT }/* jsr */, { T_BYTE }/* ret */, {}/* tableswitch */, {}/* lookupswitch */, {}/* ireturn */, {}/* lreturn */,
2969             {}/* freturn */, {}/* dreturn */, {}/* areturn */, {}/* return */, { T_SHORT }/* getstatic */, { T_SHORT }/* putstatic */,
2970             { T_SHORT }/* getfield */, { T_SHORT }/* putfield */, { T_SHORT }/* invokevirtual */, { T_SHORT }/* invokespecial */, { T_SHORT }/* invokestatic */,
2971             { T_SHORT, T_BYTE, T_BYTE }/* invokeinterface */, { T_SHORT, T_BYTE, T_BYTE }/* invokedynamic */, { T_SHORT }/* new */, { T_BYTE }/* newarray */,
2972             { T_SHORT }/* anewarray */, {}/* arraylength */, {}/* athrow */, { T_SHORT }/* checkcast */, { T_SHORT }/* instanceof */, {}/* monitorenter */,
2973             {}/* monitorexit */, { T_BYTE }/* wide */, { T_SHORT, T_BYTE }/* multianewarray */, { T_SHORT }/* ifnull */, { T_SHORT }/* ifnonnull */,
2974             { T_INT }/* goto_w */, { T_INT }/* jsr_w */, {}/* breakpoint */, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {},
2975             {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}/* impdep1 */,
2976             {}/* impdep2 */
2977     };
2978 
2979     /**
2980      * Names of opcodes. Indexed by opcode. OPCODE_NAMES[ALOAD] = "aload".
2981      */
2982     static final String[] OPCODE_NAMES = { "nop", "aconst_null", "iconst_m1", "iconst_0", "iconst_1", "iconst_2", "iconst_3", "iconst_4", "iconst_5",
2983             "lconst_0", "lconst_1", "fconst_0", "fconst_1", "fconst_2", "dconst_0", "dconst_1", "bipush", "sipush", "ldc", "ldc_w", "ldc2_w", "iload", "lload",
2984             "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",
2985             "fload_3", "dload_0", "dload_1", "dload_2", "dload_3", "aload_0", "aload_1", "aload_2", "aload_3", "iaload", "laload", "faload", "daload", "aaload",
2986             "baload", "caload", "saload", "istore", "lstore", "fstore", "dstore", "astore", "istore_0", "istore_1", "istore_2", "istore_3", "lstore_0",
2987             "lstore_1", "lstore_2", "lstore_3", "fstore_0", "fstore_1", "fstore_2", "fstore_3", "dstore_0", "dstore_1", "dstore_2", "dstore_3", "astore_0",
2988             "astore_1", "astore_2", "astore_3", "iastore", "lastore", "fastore", "dastore", "aastore", "bastore", "castore", "sastore", "pop", "pop2", "dup",
2989             "dup_x1", "dup_x2", "dup2", "dup2_x1", "dup2_x2", "swap", "iadd", "ladd", "fadd", "dadd", "isub", "lsub", "fsub", "dsub", "imul", "lmul", "fmul",
2990             "dmul", "idiv", "ldiv", "fdiv", "ddiv", "irem", "lrem", "frem", "drem", "ineg", "lneg", "fneg", "dneg", "ishl", "lshl", "ishr", "lshr", "iushr",
2991             "lushr", "iand", "land", "ior", "lor", "ixor", "lxor", "iinc", "i2l", "i2f", "i2d", "l2i", "l2f", "l2d", "f2i", "f2l", "f2d", "d2i", "d2l", "d2f",
2992             "i2b", "i2c", "i2s", "lcmp", "fcmpl", "fcmpg", "dcmpl", "dcmpg", "ifeq", "ifne", "iflt", "ifge", "ifgt", "ifle", "if_icmpeq", "if_icmpne",
2993             "if_icmplt", "if_icmpge", "if_icmpgt", "if_icmple", "if_acmpeq", "if_acmpne", "goto", "jsr", "ret", "tableswitch", "lookupswitch", "ireturn",
2994             "lreturn", "freturn", "dreturn", "areturn", "return", "getstatic", "putstatic", "getfield", "putfield", "invokevirtual", "invokespecial",
2995             "invokestatic", "invokeinterface", "invokedynamic", "new", "newarray", "anewarray", "arraylength", "athrow", "checkcast", "instanceof",
2996             "monitorenter", "monitorexit", "wide", "multianewarray", "ifnull", "ifnonnull", "goto_w", "jsr_w", "breakpoint", ILLEGAL_OPCODE, ILLEGAL_OPCODE,
2997             ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE,
2998             ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE,
2999             ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE,
3000             ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE,
3001             ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE,
3002             ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, "impdep1", "impdep2" };
3003 
3004     /**
3005      * The length of the OPCODE_NAMES array.
3006      *
3007      * @since 6.0
3008      */
3009     public static final int OPCODE_NAMES_LENGTH = OPCODE_NAMES.length;
3010 
3011     /**
3012      * 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
3013      * instruction.
3014      */
3015     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 */,
3016             0/* iconst_4 */, 0/* iconst_5 */, 0/* lconst_0 */, 0/* lconst_1 */, 0/* fconst_0 */, 0/* fconst_1 */, 0/* fconst_2 */, 0/* dconst_0 */,
3017             0/* dconst_1 */, 0/* bipush */, 0/* sipush */, 0/* ldc */, 0/* ldc_w */, 0/* ldc2_w */, 0/* iload */, 0/* lload */, 0/* fload */, 0/* dload */,
3018             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 */,
3019             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 */,
3020             0/* aload_1 */, 0/* aload_2 */, 0/* aload_3 */, 2/* iaload */, 2/* laload */, 2/* faload */, 2/* daload */, 2/* aaload */, 2/* baload */,
3021             2/* caload */, 2/* saload */, 1/* istore */, 2/* lstore */, 1/* fstore */, 2/* dstore */, 1/* astore */, 1/* istore_0 */, 1/* istore_1 */,
3022             1/* istore_2 */, 1/* istore_3 */, 2/* lstore_0 */, 2/* lstore_1 */, 2/* lstore_2 */, 2/* lstore_3 */, 1/* fstore_0 */, 1/* fstore_1 */,
3023             1/* fstore_2 */, 1/* fstore_3 */, 2/* dstore_0 */, 2/* dstore_1 */, 2/* dstore_2 */, 2/* dstore_3 */, 1/* astore_0 */, 1/* astore_1 */,
3024             1/* astore_2 */, 1/* astore_3 */, 3/* iastore */, 4/* lastore */, 3/* fastore */, 4/* dastore */, 3/* aastore */, 3/* bastore */, 3/* castore */,
3025             3/* sastore */, 1/* pop */, 2/* pop2 */, 1/* dup */, 2/* dup_x1 */, 3/* dup_x2 */, 2/* dup2 */, 3/* dup2_x1 */, 4/* dup2_x2 */, 2/* swap */,
3026             2/* iadd */, 4/* ladd */, 2/* fadd */, 4/* dadd */, 2/* isub */, 4/* lsub */, 2/* fsub */, 4/* dsub */, 2/* imul */, 4/* lmul */, 2/* fmul */,
3027             4/* dmul */, 2/* idiv */, 4/* ldiv */, 2/* fdiv */, 4/* ddiv */, 2/* irem */, 4/* lrem */, 2/* frem */, 4/* drem */, 1/* ineg */, 2/* lneg */,
3028             1/* fneg */, 2/* dneg */, 2/* ishl */, 3/* lshl */, 2/* ishr */, 3/* lshr */, 2/* iushr */, 3/* lushr */, 2/* iand */, 4/* land */, 2/* ior */,
3029             4/* lor */, 2/* ixor */, 4/* lxor */, 0/* iinc */, 1/* i2l */, 1/* i2f */, 1/* i2d */, 2/* l2i */, 2/* l2f */, 2/* l2d */, 1/* f2i */, 1/* f2l */,
3030             1/* f2d */, 2/* d2i */, 2/* d2l */, 2/* d2f */, 1/* i2b */, 1/* i2c */, 1/* i2s */, 4/* lcmp */, 2/* fcmpl */, 2/* fcmpg */, 4/* dcmpl */,
3031             4/* dcmpg */, 1/* ifeq */, 1/* ifne */, 1/* iflt */, 1/* ifge */, 1/* ifgt */, 1/* ifle */, 2/* if_icmpeq */, 2/* if_icmpne */, 2/* if_icmplt */,
3032             2 /* if_icmpge */, 2/* if_icmpgt */, 2/* if_icmple */, 2/* if_acmpeq */, 2/* if_acmpne */, 0/* goto */, 0/* jsr */, 0/* ret */, 1/* tableswitch */,
3033             1/* lookupswitch */, 1/* ireturn */, 2/* lreturn */, 1/* freturn */, 2/* dreturn */, 1/* areturn */, 0/* return */, 0/* getstatic */,
3034             UNPREDICTABLE/* putstatic */, 1/* getfield */, UNPREDICTABLE/* putfield */, UNPREDICTABLE/* invokevirtual */, UNPREDICTABLE/* invokespecial */,
3035             UNPREDICTABLE/* invokestatic */, UNPREDICTABLE/* invokeinterface */, UNPREDICTABLE/* invokedynamic */, 0/* new */, 1/* newarray */,
3036             1/* anewarray */, 1/* arraylength */, 1/* athrow */, 1/* checkcast */, 1/* instanceof */, 1/* monitorenter */, 1/* monitorexit */, 0/* wide */,
3037             UNPREDICTABLE/* multianewarray */, 1/* ifnull */, 1/* ifnonnull */, 0/* goto_w */, 0/* jsr_w */, 0/* breakpoint */, UNDEFINED, UNDEFINED, UNDEFINED,
3038             UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
3039             UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
3040             UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
3041             UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNPREDICTABLE/* impdep1 */,
3042             UNPREDICTABLE/* impdep2 */
3043     };
3044 
3045     /**
3046      * Number of words produced onto operand stack by instructions. Indexed by opcode. CONSUME_STACK[DALOAD] = number of words consumed from the stack by a
3047      * daload instruction.
3048      */
3049     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 */,
3050             1/* iconst_4 */, 1/* iconst_5 */, 2/* lconst_0 */, 2/* lconst_1 */, 1/* fconst_0 */, 1/* fconst_1 */, 1/* fconst_2 */, 2/* dconst_0 */,
3051             2/* dconst_1 */, 1/* bipush */, 1/* sipush */, 1/* ldc */, 1/* ldc_w */, 2/* ldc2_w */, 1/* iload */, 2/* lload */, 1/* fload */, 2/* dload */,
3052             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 */,
3053             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 */,
3054             1/* aload_1 */, 1/* aload_2 */, 1/* aload_3 */, 1/* iaload */, 2/* laload */, 1/* faload */, 2/* daload */, 1/* aaload */, 1/* baload */,
3055             1/* caload */, 1/* saload */, 0/* istore */, 0/* lstore */, 0/* fstore */, 0/* dstore */, 0/* astore */, 0/* istore_0 */, 0/* istore_1 */,
3056             0/* istore_2 */, 0/* istore_3 */, 0/* lstore_0 */, 0/* lstore_1 */, 0/* lstore_2 */, 0/* lstore_3 */, 0/* fstore_0 */, 0/* fstore_1 */,
3057             0/* fstore_2 */, 0/* fstore_3 */, 0/* dstore_0 */, 0/* dstore_1 */, 0/* dstore_2 */, 0/* dstore_3 */, 0/* astore_0 */, 0/* astore_1 */,
3058             0/* astore_2 */, 0/* astore_3 */, 0/* iastore */, 0/* lastore */, 0/* fastore */, 0/* dastore */, 0/* aastore */, 0/* bastore */, 0/* castore */,
3059             0/* sastore */, 0/* pop */, 0/* pop2 */, 2/* dup */, 3/* dup_x1 */, 4/* dup_x2 */, 4/* dup2 */, 5/* dup2_x1 */, 6/* dup2_x2 */, 2/* swap */,
3060             1/* iadd */, 2/* ladd */, 1/* fadd */, 2/* dadd */, 1/* isub */, 2/* lsub */, 1/* fsub */, 2/* dsub */, 1/* imul */, 2/* lmul */, 1/* fmul */,
3061             2/* dmul */, 1/* idiv */, 2/* ldiv */, 1/* fdiv */, 2/* ddiv */, 1/* irem */, 2/* lrem */, 1/* frem */, 2/* drem */, 1/* ineg */, 2/* lneg */,
3062             1/* fneg */, 2/* dneg */, 1/* ishl */, 2/* lshl */, 1/* ishr */, 2/* lshr */, 1/* iushr */, 2/* lushr */, 1/* iand */, 2/* land */, 1/* ior */,
3063             2/* lor */, 1/* ixor */, 2/* lxor */, 0/* iinc */, 2/* i2l */, 1/* i2f */, 2/* i2d */, 1/* l2i */, 1/* l2f */, 2/* l2d */, 1/* f2i */, 2/* f2l */,
3064             2/* f2d */, 1/* d2i */, 2/* d2l */, 1/* d2f */, 1/* i2b */, 1/* i2c */, 1/* i2s */, 1/* lcmp */, 1/* fcmpl */, 1/* fcmpg */, 1/* dcmpl */,
3065             1/* dcmpg */, 0/* ifeq */, 0/* ifne */, 0/* iflt */, 0/* ifge */, 0/* ifgt */, 0/* ifle */, 0/* if_icmpeq */, 0/* if_icmpne */, 0/* if_icmplt */,
3066             0/* if_icmpge */, 0/* if_icmpgt */, 0/* if_icmple */, 0/* if_acmpeq */, 0/* if_acmpne */, 0/* goto */, 1/* jsr */, 0/* ret */, 0/* tableswitch */,
3067             0/* lookupswitch */, 0/* ireturn */, 0/* lreturn */, 0/* freturn */, 0/* dreturn */, 0/* areturn */, 0/* return */, UNPREDICTABLE/* getstatic */,
3068             0/* putstatic */, UNPREDICTABLE/* getfield */, 0/* putfield */, UNPREDICTABLE/* invokevirtual */, UNPREDICTABLE/* invokespecial */,
3069             UNPREDICTABLE/* invokestatic */, UNPREDICTABLE/* invokeinterface */, UNPREDICTABLE/* invokedynamic */, 1/* new */, 1/* newarray */,
3070             1/* anewarray */, 1/* arraylength */, 1/* athrow */, 1/* checkcast */, 1/* instanceof */, 0/* monitorenter */, 0/* monitorexit */, 0/* wide */,
3071             1/* multianewarray */, 0/* ifnull */, 0/* ifnonnull */, 0/* goto_w */, 1/* jsr_w */, 0/* breakpoint */, 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, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
3074             UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
3075             UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNPREDICTABLE/* impdep1 */, UNPREDICTABLE/* impdep2 */
3076     };
3077 
3078     /**
3079      * Attributes and their corresponding names.
3080      */
3081     public static final byte ATTR_UNKNOWN = -1;
3082 
3083     /** Attribute constant for SourceFile. */
3084     public static final byte ATTR_SOURCE_FILE = 0;
3085 
3086     /** Attribute constant for ConstantValue. */
3087     public static final byte ATTR_CONSTANT_VALUE = 1;
3088 
3089     /** Attribute constant for Code. */
3090     public static final byte ATTR_CODE = 2;
3091 
3092     /** Attribute constant for Exceptions. */
3093     public static final byte ATTR_EXCEPTIONS = 3;
3094 
3095     /** Attribute constant for LineNumberTable. */
3096     public static final byte ATTR_LINE_NUMBER_TABLE = 4;
3097 
3098     /** Attribute constant for LocalVariableTable. */
3099     public static final byte ATTR_LOCAL_VARIABLE_TABLE = 5;
3100 
3101     /** Attribute constant for InnerClasses. */
3102     public static final byte ATTR_INNER_CLASSES = 6;
3103 
3104     /** Attribute constant for Synthetic. */
3105     public static final byte ATTR_SYNTHETIC = 7;
3106 
3107     /**
3108      * Attribute constant for Deprecated.
3109      *
3110      * @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>
3111      */
3112     public static final byte ATTR_DEPRECATED = 8;
3113 
3114     /** Attribute constant for PMG. */
3115     public static final byte ATTR_PMG = 9;
3116 
3117     /** Attribute constant for Signature. */
3118     public static final byte ATTR_SIGNATURE = 10;
3119 
3120     /** Attribute constant for StackMap. */
3121     public static final byte ATTR_STACK_MAP = 11;
3122 
3123     /** Attribute constant for RuntimeVisibleAnnotations. */
3124     public static final byte ATTR_RUNTIME_VISIBLE_ANNOTATIONS = 12;
3125 
3126     /** Attribute constant for RuntimeInvisibleAnnotations. */
3127     public static final byte ATTR_RUNTIME_INVISIBLE_ANNOTATIONS = 13;
3128 
3129     /** Attribute constant for RuntimeVisibleParameterAnnotations. */
3130     public static final byte ATTR_RUNTIME_VISIBLE_PARAMETER_ANNOTATIONS = 14;
3131 
3132     /** Attribute constant for RuntimeInvisibleParameterAnnotations. */
3133     public static final byte ATTR_RUNTIME_INVISIBLE_PARAMETER_ANNOTATIONS = 15;
3134 
3135     /** Attribute constant for AnnotationDefault. */
3136     public static final byte ATTR_ANNOTATION_DEFAULT = 16;
3137 
3138     /** Attribute constant for LocalVariableTypeTable. */
3139     public static final byte ATTR_LOCAL_VARIABLE_TYPE_TABLE = 17;
3140 
3141     /** Attribute constant for EnclosingMethod. */
3142     public static final byte ATTR_ENCLOSING_METHOD = 18;
3143 
3144     /** Attribute constant for StackMapTable. */
3145     public static final byte ATTR_STACK_MAP_TABLE = 19;
3146 
3147     /** Attribute constant for BootstrapMethods. */
3148     public static final byte ATTR_BOOTSTRAP_METHODS = 20;
3149 
3150     /** Attribute constant for MethodParameters. */
3151     public static final byte ATTR_METHOD_PARAMETERS = 21;
3152 
3153     /** Attribute constant for Module. */
3154     public static final byte ATTR_MODULE = 22;
3155 
3156     /** Attribute constant for ModulePackages. */
3157     public static final byte ATTR_MODULE_PACKAGES = 23;
3158 
3159     /** Attribute constant for ModuleMainClass. */
3160     public static final byte ATTR_MODULE_MAIN_CLASS = 24;
3161 
3162     /** Attribute constant for NestHost. */
3163     public static final byte ATTR_NEST_HOST = 25;
3164 
3165     /** Attribute constant for NestMembers. */
3166     public static final byte ATTR_NEST_MEMBERS = 26;
3167 
3168     /** Attribute constant for Record. */
3169     public static final byte ATTR_RECORD = 27;
3170 
3171     /** Count of known attributes. */
3172     public static final short KNOWN_ATTRIBUTES = 28; // count of attributes
3173 
3174     private static final String[] ATTRIBUTE_NAMES = { "SourceFile", "ConstantValue", "Code", "Exceptions", "LineNumberTable", "LocalVariableTable",
3175             "InnerClasses", "Synthetic", "Deprecated", "PMGClass", "Signature", "StackMap", "RuntimeVisibleAnnotations", "RuntimeInvisibleAnnotations",
3176             "RuntimeVisibleParameterAnnotations", "RuntimeInvisibleParameterAnnotations", "AnnotationDefault", "LocalVariableTypeTable", "EnclosingMethod",
3177             "StackMapTable", "BootstrapMethods", "MethodParameters", "Module", "ModulePackages", "ModuleMainClass", "NestHost", "NestMembers", "Record" };
3178 
3179     /**
3180      * Constants used in the StackMap attribute.
3181      */
3182     /** Item type: Bogus. */
3183     public static final byte ITEM_Bogus = 0;
3184 
3185     /** Item type: Integer. */
3186     public static final byte ITEM_Integer = 1;
3187 
3188     /** Item type: Float. */
3189     public static final byte ITEM_Float = 2;
3190 
3191     /** Item type: Double. */
3192     public static final byte ITEM_Double = 3;
3193 
3194     /** Item type: Long. */
3195     public static final byte ITEM_Long = 4;
3196 
3197     /** Item type: Null. */
3198     public static final byte ITEM_Null = 5;
3199 
3200     /** Item type: InitObject. */
3201     public static final byte ITEM_InitObject = 6;
3202 
3203     /** Item type: Object. */
3204     public static final byte ITEM_Object = 7;
3205 
3206     /** Item type: NewObject. */
3207     public static final byte ITEM_NewObject = 8;
3208 
3209     private static final String[] ITEM_NAMES = { "Bogus", "Integer", "Float", "Double", "Long", "Null", "InitObject", "Object", "NewObject" };
3210 
3211     /**
3212      * Constants used to identify StackMapEntry types. For those types which can specify a range, the constant names the lowest value.
3213      */
3214     /** StackMapEntry type: SAME_FRAME. */
3215     public static final int SAME_FRAME = 0;
3216 
3217     /** StackMapEntry type: SAME_LOCALS_1_STACK_ITEM_FRAME. */
3218     public static final int SAME_LOCALS_1_STACK_ITEM_FRAME = 64;
3219 
3220     /** StackMapEntry type: SAME_LOCALS_1_STACK_ITEM_FRAME_EXTENDED. */
3221     public static final int SAME_LOCALS_1_STACK_ITEM_FRAME_EXTENDED = 247;
3222 
3223     /** StackMapEntry type: CHOP_FRAME. */
3224     public static final int CHOP_FRAME = 248;
3225 
3226     /** StackMapEntry type: SAME_FRAME_EXTENDED. */
3227     public static final int SAME_FRAME_EXTENDED = 251;
3228 
3229     /** StackMapEntry type: APPEND_FRAME. */
3230     public static final int APPEND_FRAME = 252;
3231 
3232     /** StackMapEntry type: FULL_FRAME. */
3233     public static final int FULL_FRAME = 255;
3234 
3235     /**
3236      * Constants that define the maximum value of those constants which store ranges.
3237      */
3238     /** Maximum value for SAME_FRAME. */
3239     public static final int SAME_FRAME_MAX = 63;
3240 
3241     /** Maximum value for SAME_LOCALS_1_STACK_ITEM_FRAME. */
3242     public static final int SAME_LOCALS_1_STACK_ITEM_FRAME_MAX = 127;
3243 
3244     /** Maximum value for CHOP_FRAME. */
3245     public static final int CHOP_FRAME_MAX = 250;
3246 
3247     /** Maximum value for APPEND_FRAME. */
3248     public static final int APPEND_FRAME_MAX = 254;
3249 
3250     /** Reference kind: getField. */
3251     public static final byte REF_getField = 1;
3252 
3253     /** Reference kind: getStatic. */
3254     public static final byte REF_getStatic = 2;
3255 
3256     /** Reference kind: putField. */
3257     public static final byte REF_putField = 3;
3258 
3259     /** Reference kind: putStatic. */
3260     public static final byte REF_putStatic = 4;
3261 
3262     /** Reference kind: invokeVirtual. */
3263     public static final byte REF_invokeVirtual = 5;
3264 
3265     /** Reference kind: invokeStatic. */
3266     public static final byte REF_invokeStatic = 6;
3267 
3268     /** Reference kind: invokeSpecial. */
3269     public static final byte REF_invokeSpecial = 7;
3270 
3271     /** Reference kind: newInvokeSpecial. */
3272     public static final byte REF_newInvokeSpecial = 8;
3273 
3274     /** Reference kind: invokeInterface. */
3275     public static final byte REF_invokeInterface = 9;
3276 
3277     /**
3278      * The names of the reference_kinds of a CONSTANT_MethodHandle_info.
3279      */
3280     private static final String[] METHODHANDLE_NAMES = { "", "getField", "getStatic", "putField", "putStatic", "invokeVirtual", "invokeStatic", "invokeSpecial",
3281             "newInvokeSpecial", "invokeInterface" };
3282 
3283     /**
3284      * Gets the access name at the given index.
3285      *
3286      * @param index index into {@code ACCESS_NAMES}.
3287      * @return the ACCESS_NAMES entry at the given index.
3288      * @since 6.0
3289      */
3290     public static String getAccessName(final int index) {
3291         return ACCESS_NAMES[index];
3292     }
3293 
3294     /**
3295      * Gets the attribute name at the given index.
3296      *
3297      * @param index index into {@code ACCESS_NAMES}.
3298      * @return the attribute name.
3299      * @since 6.0
3300      */
3301     public static String getAttributeName(final int index) {
3302         return ATTRIBUTE_NAMES[index];
3303     }
3304 
3305     /**
3306      * The primitive class names corresponding to the T_XX constants, for example, CLASS_TYPE_NAMES[T_INT] = "java.lang.Integer".
3307      *
3308      * @param index index into {@code CLASS_TYPE_NAMES}.
3309      * @return the class name.
3310      * @since 6.0
3311      */
3312     public static String getClassTypeName(final int index) {
3313         return CLASS_TYPE_NAMES[index];
3314     }
3315 
3316     /**
3317      * Gets the constant name at the given index.
3318      *
3319      * @param index index into {@code CONSTANT_NAMES}.
3320      * @return the CONSTANT_NAMES entry at the given index.
3321      * @since 6.0
3322      */
3323     public static String getConstantName(final int index) {
3324         return CONSTANT_NAMES[index];
3325     }
3326     // Constants defining the behavior of the Method Handles (JVMS �5.4.3.5)
3327 
3328     /**
3329      * Gets the number of words consumed on operand stack.
3330      *
3331      * @param index index into {@code CONSUME_STACK}.
3332      * @return Number of words consumed on operand stack.
3333      * @since 6.0
3334      */
3335     public static int getConsumeStack(final int index) {
3336         return CONSUME_STACK[index];
3337     }
3338 
3339     /**
3340      * Gets the interfaces implemented by arrays.
3341      *
3342      * @return the interfaces implemented by arrays.
3343      * @since 6.0
3344      */
3345     public static Iterable<String> getInterfacesImplementedByArrays() {
3346         return Collections.unmodifiableList(Arrays.asList(INTERFACES_IMPLEMENTED_BY_ARRAYS));
3347     }
3348 
3349     /**
3350      * Gets the item name at the given index.
3351      *
3352      * @param index index into {@code ITEM_NAMES}.
3353      * @return the item name.
3354      * @since 6.0
3355      */
3356     public static String getItemName(final int index) {
3357         return ITEM_NAMES[index];
3358     }
3359 
3360     /**
3361      * Gets the method handle name at the given index.
3362      *
3363      * @param index index into {@code METHODHANDLE_NAMES}.
3364      * @return the method handle name.
3365      * @since 6.0
3366      */
3367     public static String getMethodHandleName(final int index) {
3368         return METHODHANDLE_NAMES[index];
3369     }
3370 
3371     /**
3372      * Gets the number of byte code operands.
3373      *
3374      * @param index index into {@code NO_OF_OPERANDS}.
3375      * @return Number of byte code operands.
3376      * @since 6.0
3377      */
3378     public static short getNoOfOperands(final int index) {
3379         return NO_OF_OPERANDS[index];
3380     }
3381 
3382     /**
3383      * Gets the opcode name at the given index.
3384      *
3385      * @param index the index.
3386      * @return the opcode name.
3387      * @since 6.0
3388      */
3389     public static String getOpcodeName(final int index) {
3390         return OPCODE_NAMES[index];
3391     }
3392 
3393     /**
3394      * Gets the operand type.
3395      *
3396      * @param opcode the opcode.
3397      * @param index  the index.
3398      * @return the operand type.
3399      * @since 6.0
3400      */
3401     public static short getOperandType(final int opcode, final int index) {
3402         return TYPE_OF_OPERANDS[opcode][index];
3403     }
3404 
3405     /**
3406      * Gets the operand type count.
3407      *
3408      * @param opcode the opcode.
3409      * @return the operand type count.
3410      * @since 6.0
3411      */
3412     public static long getOperandTypeCount(final int opcode) {
3413         return TYPE_OF_OPERANDS[opcode].length;
3414     }
3415 
3416     /**
3417      * Gets the number of words produced onto operand stack.
3418      *
3419      * @param index the index.
3420      * @return Number of words produced onto operand stack.
3421      * @since 6.0
3422      */
3423     public static int getProduceStack(final int index) {
3424         return PRODUCE_STACK[index];
3425     }
3426 
3427     /**
3428      * Gets the short type name at the given index.
3429      *
3430      * @param index the index.
3431      * @return the short type name.
3432      * @since 6.0
3433      */
3434     public static String getShortTypeName(final int index) {
3435         return SHORT_TYPE_NAMES[index];
3436     }
3437 
3438     /**
3439      * The primitive type names corresponding to the T_XX constants, for example, TYPE_NAMES[T_INT] = "int".
3440      *
3441      * @param index the index.
3442      * @return the type name.
3443      * @since 6.0
3444      */
3445     public static String getTypeName(final int index) {
3446         return TYPE_NAMES[index];
3447     }
3448 
3449     private Const() {
3450     } // not instantiable
3451 }