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