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