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