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