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