Const.java

  1. /*
  2.  * Licensed to the Apache Software Foundation (ASF) under one or more
  3.  * contributor license agreements.  See the NOTICE file distributed with
  4.  * this work for additional information regarding copyright ownership.
  5.  * The ASF licenses this file to You under the Apache License, Version 2.0
  6.  * (the "License"); you may not use this file except in compliance with
  7.  * the License.  You may obtain a copy of the License at
  8.  *
  9.  *      http://www.apache.org/licenses/LICENSE-2.0
  10.  *
  11.  *  Unless required by applicable law or agreed to in writing, software
  12.  *  distributed under the License is distributed on an "AS IS" BASIS,
  13.  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  14.  *  See the License for the specific language governing permissions and
  15.  *  limitations under the License.
  16.  */
  17. package org.apache.bcel;

  18. import java.util.Arrays;
  19. import java.util.Collections;

  20. /**
  21.  * Constants for the project, mostly defined in the JVM specification.
  22.  *
  23.  * @since 6.0 (intended to replace the Constants interface)
  24.  */
  25. public final class Const {

  26.     /**
  27.      * Java class file format Magic number: {@value}.
  28.      *
  29.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se7/html/jvms-4.html#jvms-4.1-200-A"> The ClassFile Structure
  30.      *      in The Java Virtual Machine Specification</a>
  31.      */
  32.     public static final int JVM_CLASSFILE_MAGIC = 0xCAFEBABE;

  33.     /**
  34.      * Major version number of class files for Java 1.1: {@value}.
  35.      *
  36.      * @see #MINOR_1_1
  37.      */
  38.     public static final short MAJOR_1_1 = 45;

  39.     /**
  40.      * Minor version number of class files for Java 1.1: {@value}.
  41.      *
  42.      * @see #MAJOR_1_1
  43.      */
  44.     public static final short MINOR_1_1 = 3;

  45.     /**
  46.      * Major version number of class files for Java 1.2: {@value}.
  47.      *
  48.      * @see #MINOR_1_2
  49.      */
  50.     public static final short MAJOR_1_2 = 46;

  51.     /**
  52.      * Minor version number of class files for Java 1.2: {@value}.
  53.      *
  54.      * @see #MAJOR_1_2
  55.      */
  56.     public static final short MINOR_1_2 = 0;

  57.     /**
  58.      * Major version number of class files for Java 1.2: {@value}.
  59.      *
  60.      * @see #MINOR_1_2
  61.      */
  62.     public static final short MAJOR_1_3 = 47;

  63.     /**
  64.      * Minor version number of class files for Java 1.3: {@value}.
  65.      *
  66.      * @see #MAJOR_1_3
  67.      */
  68.     public static final short MINOR_1_3 = 0;

  69.     /**
  70.      * Major version number of class files for Java 1.3: {@value}.
  71.      *
  72.      * @see #MINOR_1_3
  73.      */
  74.     public static final short MAJOR_1_4 = 48;

  75.     /**
  76.      * Minor version number of class files for Java 1.4: {@value}.
  77.      *
  78.      * @see #MAJOR_1_4
  79.      */
  80.     public static final short MINOR_1_4 = 0;

  81.     /**
  82.      * Major version number of class files for Java 1.4: {@value}.
  83.      *
  84.      * @see #MINOR_1_4
  85.      */
  86.     public static final short MAJOR_1_5 = 49;

  87.     /**
  88.      * Minor version number of class files for Java 1.5: {@value}.
  89.      *
  90.      * @see #MAJOR_1_5
  91.      */
  92.     public static final short MINOR_1_5 = 0;

  93.     /**
  94.      * Major version number of class files for Java 1.6: {@value}.
  95.      *
  96.      * @see #MINOR_1_6
  97.      */
  98.     public static final short MAJOR_1_6 = 50;

  99.     /**
  100.      * Minor version number of class files for Java 1.6: {@value}.
  101.      *
  102.      * @see #MAJOR_1_6
  103.      */
  104.     public static final short MINOR_1_6 = 0;

  105.     /**
  106.      * Major version number of class files for Java 1.7: {@value}.
  107.      *
  108.      * @see #MINOR_1_7
  109.      */
  110.     public static final short MAJOR_1_7 = 51;

  111.     /**
  112.      * Minor version number of class files for Java 1.7: {@value}.
  113.      *
  114.      * @see #MAJOR_1_7
  115.      */
  116.     public static final short MINOR_1_7 = 0;

  117.     /**
  118.      * Major version number of class files for Java 1.8: {@value}.
  119.      *
  120.      * @see #MINOR_1_8
  121.      */
  122.     public static final short MAJOR_1_8 = 52;

  123.     /**
  124.      * Minor version number of class files for Java 1.8: {@value}.
  125.      *
  126.      * @see #MAJOR_1_8
  127.      */
  128.     public static final short MINOR_1_8 = 0;

  129.     /**
  130.      * Major version number of class files for Java 9: {@value}.
  131.      *
  132.      * @see #MINOR_9
  133.      */
  134.     public static final short MAJOR_9 = 53;

  135.     /**
  136.      * Minor version number of class files for Java 9: {@value}.
  137.      *
  138.      * @see #MAJOR_9
  139.      */
  140.     public static final short MINOR_9 = 0;

  141.     /**
  142.      * @deprecated Use {@link #MAJOR_9} ({@value}) instead.
  143.      */
  144.     @Deprecated
  145.     public static final short MAJOR_1_9 = MAJOR_9;

  146.     /**
  147.      * @deprecated Use {@link #MINOR_9} ({@value}) instead.
  148.      */
  149.     @Deprecated
  150.     public static final short MINOR_1_9 = MINOR_9;

  151.     /**
  152.      * Major version number of class files for Java 10: {@value}.
  153.      *
  154.      * @see #MINOR_10
  155.      */
  156.     public static final short MAJOR_10 = 54;

  157.     /**
  158.      * Minor version number of class files for Java 10: {@value}.
  159.      *
  160.      * @see #MAJOR_10
  161.      */
  162.     public static final short MINOR_10 = 0;

  163.     /**
  164.      * Major version number of class files for Java 11: {@value}.
  165.      *
  166.      * @see #MINOR_11
  167.      */
  168.     public static final short MAJOR_11 = 55;

  169.     /**
  170.      * Minor version number of class files for Java 11: {@value}.
  171.      *
  172.      * @see #MAJOR_11
  173.      */
  174.     public static final short MINOR_11 = 0;

  175.     /**
  176.      * Major version number of class files for Java 12: {@value}.
  177.      *
  178.      * @see #MINOR_12
  179.      */
  180.     public static final short MAJOR_12 = 56;

  181.     /**
  182.      * Minor version number of class files for Java 12: {@value}.
  183.      *
  184.      * @see #MAJOR_12
  185.      */
  186.     public static final short MINOR_12 = 0;

  187.     /**
  188.      * Major version number of class files for Java 13: {@value}.
  189.      *
  190.      * @see #MINOR_13
  191.      */
  192.     public static final short MAJOR_13 = 57;

  193.     /**
  194.      * Minor version number of class files for Java 13: {@value}.
  195.      *
  196.      * @see #MAJOR_13
  197.      */
  198.     public static final short MINOR_13 = 0;

  199.     /**
  200.      * Minor version number of class files for Java 14: {@value}.
  201.      *
  202.      * @see #MAJOR_14
  203.      * @since 6.4.0
  204.      */
  205.     public static final short MINOR_14 = 0;

  206.     /**
  207.      * Minor version number of class files for Java 15: {@value}.
  208.      *
  209.      * @see #MAJOR_15
  210.      * @since 6.6.0
  211.      */
  212.     public static final short MINOR_15 = 0;

  213.     /**
  214.      * Minor version number of class files for Java 16: {@value}.
  215.      *
  216.      * @see #MAJOR_16
  217.      * @since 6.6.0
  218.      */
  219.     public static final short MINOR_16 = 0;

  220.     /**
  221.      * Minor version number of class files for Java 17: {@value}.
  222.      *
  223.      * @see #MAJOR_17
  224.      * @since 6.6.0
  225.      */
  226.     public static final short MINOR_17 = 0;

  227.     /**
  228.      * Minor version number of class files for Java 18: {@value}.
  229.      *
  230.      * @see #MAJOR_18
  231.      * @since 6.6.0
  232.      */
  233.     public static final short MINOR_18 = 0;

  234.     /**
  235.      * Minor version number of class files for Java 19: {@value}.
  236.      *
  237.      * @see #MAJOR_19
  238.      * @since 6.6.0
  239.      */
  240.     public static final short MINOR_19 = 0;

  241.     /**
  242.      * Minor version number of class files for Java 20: {@value}.
  243.      *
  244.      * @see #MAJOR_20
  245.      * @since 6.8.0
  246.      */
  247.     public static final short MINOR_20 = 0;

  248.     /**
  249.      * Minor version number of class files for Java 21: {@value}.
  250.      *
  251.      * @see #MAJOR_21
  252.      * @since 6.8.0
  253.      */
  254.     public static final short MINOR_21 = 0;

  255.     /**
  256.      * Minor version number of class files for Java 22: {@value}.
  257.      *
  258.      * @see #MAJOR_22
  259.      * @since 6.10.0
  260.      */
  261.     public static final short MINOR_22 = 0;

  262.     /**
  263.      * Minor version number of class files for Java 23: {@value}.
  264.      *
  265.      * @see #MAJOR_23
  266.      * @since 6.10.0
  267.      */
  268.     public static final short MINOR_23 = 0;

  269.     /**
  270.      * Minor version number of class files for Java 24: {@value}.
  271.      *
  272.      * @see #MAJOR_24
  273.      * @since 6.10.0
  274.      */
  275.     public static final short MINOR_24 = 0;

  276.     /**
  277.      * Major version number of class files for Java 14: {@value}.
  278.      *
  279.      * @see #MINOR_14
  280.      * @since 6.4.0
  281.      */
  282.     public static final short MAJOR_14 = 58;

  283.     /**
  284.      * Major version number of class files for Java 15: {@value}.
  285.      *
  286.      * @see #MINOR_15
  287.      * @since 6.6.0
  288.      */
  289.     public static final short MAJOR_15 = 59;

  290.     /**
  291.      * Major version number of class files for Java 16: {@value}.
  292.      *
  293.      * @see #MINOR_16
  294.      * @since 6.6.0
  295.      */
  296.     public static final short MAJOR_16 = 60;

  297.     /**
  298.      * Major version number of class files for Java 17: {@value}.
  299.      *
  300.      * @see #MINOR_17
  301.      * @since 6.6.0
  302.      */
  303.     public static final short MAJOR_17 = 61;

  304.     /**
  305.      * Major version number of class files for Java 18: {@value}.
  306.      *
  307.      * @see #MINOR_18
  308.      * @since 6.6.0
  309.      */
  310.     public static final short MAJOR_18 = 62;

  311.     /**
  312.      * Major version number of class files for Java 19: {@value}.
  313.      *
  314.      * @see #MINOR_19
  315.      * @since 6.6.0
  316.      */
  317.     public static final short MAJOR_19 = 63;

  318.     /**
  319.      * Major version number of class files for Java 20: {@value}.
  320.      *
  321.      * @see #MINOR_20
  322.      * @since 6.8.0
  323.      */
  324.     public static final short MAJOR_20 = 64;

  325.     /**
  326.      * Major version number of class files for Java 21: {@value}.
  327.      *
  328.      * @see #MINOR_21
  329.      * @since 6.8.0
  330.      */
  331.     public static final short MAJOR_21 = 65;

  332.     /**
  333.      * Major version number of class files for Java 22: {@value}.
  334.      *
  335.      * @see #MINOR_22
  336.      * @since 6.10.0
  337.      */
  338.     public static final short MAJOR_22 = 66;

  339.     /**
  340.      * Major version number of class files for Java 23: {@value}.
  341.      *
  342.      * @see #MINOR_23
  343.      * @since 6.10.0
  344.      */
  345.     public static final short MAJOR_23 = 67;

  346.     /**
  347.      * Major version number of class files for Java 24: {@value}.
  348.      *
  349.      * @see #MINOR_24
  350.      * @since 6.10.0
  351.      */
  352.     public static final short MAJOR_24 = 68;

  353.     /**
  354.      * Default major version number. Class file is for Java 1.1: {@value}.
  355.      *
  356.      * @see #MAJOR_1_1
  357.      */
  358.     public static final short MAJOR = MAJOR_1_1;

  359.     /**
  360.      * Default major version number. Class file is for Java 1.1: {@value}.
  361.      *
  362.      * @see #MAJOR_1_1
  363.      */
  364.     public static final short MINOR = MINOR_1_1;

  365.     /**
  366.      * Maximum value for an unsigned short: {@value}.
  367.      */
  368.     public static final int MAX_SHORT = 65535; // 2^16 - 1

  369.     /**
  370.      * Maximum value for an unsigned byte: {@value}.
  371.      */
  372.     public static final int MAX_BYTE = 255; // 2^8 - 1

  373.     /**
  374.      * One of the access flags for fields, methods, or classes: {@value}.
  375.      *
  376.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se9/html/jvms-4.html#jvms-4.1-200-E.1"> Flag definitions for
  377.      *      Classes in the Java Virtual Machine Specification (Java SE 9 Edition).</a>
  378.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se9/html/jvms-4.html#jvms-4.5"> Flag definitions for Fields
  379.      *      in the Java Virtual Machine Specification (Java SE 9 Edition).</a>
  380.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se9/html/jvms-4.html#jvms-4.6"> Flag definitions for Methods
  381.      *      in the Java Virtual Machine Specification (Java SE 9 Edition).</a>
  382.      * @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
  383.      *      definitions for Inner Classes in the Java Virtual Machine Specification (Java SE 9 Edition).</a>
  384.      */
  385.     public static final short ACC_PUBLIC = 0x0001;

  386.     /**
  387.      * One of the access flags for fields, methods, or classes: {@value}.
  388.      *
  389.      * @see #ACC_PUBLIC
  390.      */
  391.     public static final short ACC_PRIVATE = 0x0002;

  392.     /**
  393.      * One of the access flags for fields, methods, or classes: {@value}.
  394.      *
  395.      * @see #ACC_PUBLIC
  396.      */
  397.     public static final short ACC_PROTECTED = 0x0004;

  398.     /**
  399.      * One of the access flags for fields, methods, or classes: {@value}.
  400.      *
  401.      * @see #ACC_PUBLIC
  402.      */
  403.     public static final short ACC_STATIC = 0x0008;

  404.     /**
  405.      * One of the access flags for fields, methods, or classes: {@value}.
  406.      *
  407.      * @see #ACC_PUBLIC
  408.      */
  409.     public static final short ACC_FINAL = 0x0010;

  410.     /**
  411.      * One of the access flags for the Module attribute: {@value}.
  412.      *
  413.      * @see #ACC_PUBLIC
  414.      */
  415.     public static final short ACC_OPEN = 0x0020;

  416.     /**
  417.      * One of the access flags for classes: {@value}.
  418.      *
  419.      * @see #ACC_PUBLIC
  420.      */
  421.     public static final short ACC_SUPER = 0x0020;

  422.     /**
  423.      * One of the access flags for methods: {@value}.
  424.      *
  425.      * @see #ACC_PUBLIC
  426.      */
  427.     public static final short ACC_SYNCHRONIZED = 0x0020;

  428.     /**
  429.      * One of the access flags for the Module attribute: {@value}.
  430.      *
  431.      * @see #ACC_PUBLIC
  432.      */
  433.     public static final short ACC_TRANSITIVE = 0x0020;

  434.     /**
  435.      * One of the access flags for methods: {@value}.
  436.      *
  437.      * @see #ACC_PUBLIC
  438.      */
  439.     public static final short ACC_BRIDGE = 0x0040;

  440.     /**
  441.      * One of the access flags for the Module attribute: {@value}.
  442.      *
  443.      * @see #ACC_PUBLIC
  444.      */
  445.     public static final short ACC_STATIC_PHASE = 0x0040;

  446.     /**
  447.      * One of the access flags for fields: {@value}.
  448.      *
  449.      * @see #ACC_PUBLIC
  450.      */
  451.     public static final short ACC_VOLATILE = 0x0040;

  452.     /**
  453.      * One of the access flags for fields: {@value}.
  454.      *
  455.      * @see #ACC_PUBLIC
  456.      */
  457.     public static final short ACC_TRANSIENT = 0x0080;

  458.     /**
  459.      * One of the access flags for methods: {@value}.
  460.      *
  461.      * @see #ACC_PUBLIC
  462.      */
  463.     public static final short ACC_VARARGS = 0x0080;

  464.     /**
  465.      * One of the access flags for methods: {@value}.
  466.      *
  467.      * @see #ACC_PUBLIC
  468.      */
  469.     public static final short ACC_NATIVE = 0x0100;

  470.     /**
  471.      * One of the access flags for classes: {@value}.
  472.      *
  473.      * @see #ACC_PUBLIC
  474.      */
  475.     public static final short ACC_INTERFACE = 0x0200;

  476.     /**
  477.      * One of the access flags for methods or classes: {@value}.
  478.      *
  479.      * @see #ACC_PUBLIC
  480.      */
  481.     public static final short ACC_ABSTRACT = 0x0400;

  482.     /**
  483.      * One of the access flags for methods: {@value}.
  484.      *
  485.      * @see #ACC_PUBLIC
  486.      */
  487.     public static final short ACC_STRICT = 0x0800;

  488.     /**
  489.      * One of the access flags for fields, methods, classes, MethodParameter attribute, or Module attribute: {@value}.
  490.      *
  491.      * @see #ACC_PUBLIC
  492.      */
  493.     public static final short ACC_SYNTHETIC = 0x1000;

  494.     /**
  495.      * One of the access flags for classes: {@value}.
  496.      *
  497.      * @see #ACC_PUBLIC
  498.      */
  499.     public static final short ACC_ANNOTATION = 0x2000;

  500.     /**
  501.      * One of the access flags for fields or classes: {@value}.
  502.      *
  503.      * @see #ACC_PUBLIC
  504.      */
  505.     public static final short ACC_ENUM = 0x4000;

  506.     // Applies to classes compiled by new compilers only
  507.     /**
  508.      * One of the access flags for MethodParameter or Module attributes: {@value}.
  509.      *
  510.      * @see #ACC_PUBLIC
  511.      */
  512.     public static final short ACC_MANDATED = (short) 0x8000;

  513.     /**
  514.      * One of the access flags for classes: {@value}.
  515.      *
  516.      * @see #ACC_PUBLIC
  517.      */
  518.     public static final short ACC_MODULE = (short) 0x8000;

  519.     /**
  520.      * One of the access flags for fields, methods, or classes: {@value}.
  521.      *
  522.      * @see #ACC_PUBLIC
  523.      * @deprecated Use {@link #MAX_ACC_FLAG_I}
  524.      */
  525.     @Deprecated
  526.     public static final short MAX_ACC_FLAG = ACC_ENUM;

  527.     /**
  528.      * One of the access flags for fields, methods, or classes. ACC_MODULE is negative as a short: {@value}.
  529.      *
  530.      * @see #ACC_PUBLIC
  531.      * @since 6.4.0
  532.      */
  533.     public static final int MAX_ACC_FLAG_I = 0x8000; // ACC_MODULE is negative as a short

  534.     // Note that do to overloading:
  535.     // 'synchronized' is for methods, might be 'open' (if Module), 'super' (if class), or 'transitive' (if Module).
  536.     // 'volatile' is for fields, might be 'bridge' (if method) or 'static_phase' (if Module)
  537.     // 'transient' is for fields, might be 'varargs' (if method)
  538.     // 'module' is for classes, might be 'mandated' (if Module or MethodParameters)
  539.     /**
  540.      * The names of the access flags.
  541.      */
  542.     private static final String[] ACCESS_NAMES = {"public", "private", "protected", "static", "final", "synchronized", "volatile", "transient", "native",
  543.         "interface", "abstract", "strictfp", "synthetic", "annotation", "enum", "module"};

  544.     /** @since 6.0 */
  545.     public static final int ACCESS_NAMES_LENGTH = ACCESS_NAMES.length;

  546.     /**
  547.      * Marks a constant pool entry as type UTF-8: {@value}.
  548.      *
  549.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.7"> The Constant Pool in The
  550.      *      Java Virtual Machine Specification</a>
  551.      */
  552.     public static final byte CONSTANT_Utf8 = 1;

  553.     /*
  554.      * The description of the constant pool is at: https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4
  555.      * References below are to the individual sections
  556.      */

  557.     /**
  558.      * Marks a constant pool entry as type Integer: {@value}.
  559.      *
  560.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.4"> The Constant Pool in The
  561.      *      Java Virtual Machine Specification</a>
  562.      */
  563.     public static final byte CONSTANT_Integer = 3;

  564.     /**
  565.      * Marks a constant pool entry as type Float: {@value}.
  566.      *
  567.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.4"> The Constant Pool in The
  568.      *      Java Virtual Machine Specification</a>
  569.      */
  570.     public static final byte CONSTANT_Float = 4;

  571.     /**
  572.      * Marks a constant pool entry as type Long: {@value}.
  573.      *
  574.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.5"> The Constant Pool in The
  575.      *      Java Virtual Machine Specification</a>
  576.      */
  577.     public static final byte CONSTANT_Long = 5;

  578.     /**
  579.      * Marks a constant pool entry as type Double: {@value}.
  580.      *
  581.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.5"> The Constant Pool in The
  582.      *      Java Virtual Machine Specification</a>
  583.      */
  584.     public static final byte CONSTANT_Double = 6;

  585.     /**
  586.      * Marks a constant pool entry as a Class: {@value}.
  587.      *
  588.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.1"> The Constant Pool in The
  589.      *      Java Virtual Machine Specification</a>
  590.      */
  591.     public static final byte CONSTANT_Class = 7;

  592.     /**
  593.      * Marks a constant pool entry as a Field Reference: {@value}.
  594.      *
  595.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.2"> The Constant Pool in The
  596.      *      Java Virtual Machine Specification</a>
  597.      */
  598.     public static final byte CONSTANT_Fieldref = 9;

  599.     /**
  600.      * Marks a constant pool entry as type String: {@value}.
  601.      *
  602.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.3"> The Constant Pool in The
  603.      *      Java Virtual Machine Specification</a>
  604.      */
  605.     public static final byte CONSTANT_String = 8;

  606.     /**
  607.      * Marks a constant pool entry as a Method Reference: {@value}.
  608.      *
  609.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.2"> The Constant Pool in The
  610.      *      Java Virtual Machine Specification</a>
  611.      */
  612.     public static final byte CONSTANT_Methodref = 10;

  613.     /**
  614.      * Marks a constant pool entry as an Interface Method Reference: {@value}.
  615.      *
  616.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.2"> The Constant Pool in The
  617.      *      Java Virtual Machine Specification</a>
  618.      */
  619.     public static final byte CONSTANT_InterfaceMethodref = 11;

  620.     /**
  621.      * Marks a constant pool entry as a name and type: {@value}.
  622.      *
  623.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.6"> The Constant Pool in The
  624.      *      Java Virtual Machine Specification</a>
  625.      */
  626.     public static final byte CONSTANT_NameAndType = 12;

  627.     /**
  628.      * Marks a constant pool entry as a Method Handle: {@value}.
  629.      *
  630.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.8"> The Constant Pool in The
  631.      *      Java Virtual Machine Specification</a>
  632.      */
  633.     public static final byte CONSTANT_MethodHandle = 15;

  634.     /**
  635.      * Marks a constant pool entry as a Method Type: {@value}.
  636.      *
  637.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.9"> The Constant Pool in The
  638.      *      Java Virtual Machine Specification</a>
  639.      */
  640.     public static final byte CONSTANT_MethodType = 16;

  641.     /**
  642.      * Marks a constant pool entry as dynamically computed: {@value}.
  643.      *
  644.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se11/html/jvms-4.html#jvms-4.4.10"> The Constant Pool in The
  645.      *      Java Virtual Machine Specification</a>
  646.      * @since 6.3
  647.      */
  648.     public static final byte CONSTANT_Dynamic = 17;

  649.     /**
  650.      * Marks a constant pool entry as an Invoke Dynamic: {@value}.
  651.      *
  652.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.10"> The Constant Pool in The
  653.      *      Java Virtual Machine Specification</a>
  654.      */
  655.     public static final byte CONSTANT_InvokeDynamic = 18;

  656.     /**
  657.      * Marks a constant pool entry as a Module Reference: {@value}.
  658.      *
  659.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se9/html/jvms-4.html#jvms-4.4.11"> The Constant Pool in The
  660.      *      Java Virtual Machine Specification</a>
  661.      * @since 6.1
  662.      */
  663.     public static final byte CONSTANT_Module = 19;

  664.     /**
  665.      * Marks a constant pool entry as a Package Reference: {@value}.
  666.      *
  667.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se9/html/jvms-4.html#jvms-4.4.12"> The Constant Pool in The
  668.      *      Java Virtual Machine Specification</a>
  669.      * @since 6.1
  670.      */
  671.     public static final byte CONSTANT_Package = 20;

  672.     /**
  673.      * The names of the types of entries in a constant pool. Use getConstantName instead
  674.      */
  675.     private static final String[] CONSTANT_NAMES = {"", "CONSTANT_Utf8", "", "CONSTANT_Integer", "CONSTANT_Float", "CONSTANT_Long", "CONSTANT_Double",
  676.         "CONSTANT_Class", "CONSTANT_String", "CONSTANT_Fieldref", "CONSTANT_Methodref", "CONSTANT_InterfaceMethodref", "CONSTANT_NameAndType", "", "",
  677.         "CONSTANT_MethodHandle", "CONSTANT_MethodType", "CONSTANT_Dynamic", "CONSTANT_InvokeDynamic", "CONSTANT_Module", "CONSTANT_Package"};

  678.     /**
  679.      * The name of the static initializer, also called &quot;class initialization method&quot; or &quot;interface
  680.      * initialization method&quot;. This is {@value}.
  681.      */
  682.     public static final String STATIC_INITIALIZER_NAME = "<clinit>";

  683.     /**
  684.      * The name of every constructor method in a class, also called &quot;instance initialization method&quot;. This is
  685.      * {@value}.
  686.      */
  687.     public static final String CONSTRUCTOR_NAME = "<init>";

  688.     /**
  689.      * The names of the interfaces implemented by arrays.
  690.      */
  691.     private static final String[] INTERFACES_IMPLEMENTED_BY_ARRAYS = {"java.lang.Cloneable", "java.io.Serializable"};

  692.     /**
  693.      * Maximum Constant Pool entries: {@value}. One of the limitations of the Java Virtual Machine.
  694.      *
  695.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.11-100-A"> The Java Virtual
  696.      *      Machine Specification, Java SE 8 Edition, page 330, chapter 4.11.</a>
  697.      */
  698.     public static final int MAX_CP_ENTRIES = 65535;

  699.     /**
  700.      * Maximum code size (plus one; the code size must be LESS than this): {@value}.
  701.      * <p>
  702.      * One of the limitations of the Java Virtual Machine. Note vmspec2 page 152 ("Limitations") says:
  703.      * </p>
  704.      * <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
  705.      * 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
  706.      * 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
  707.      * less than 65536."</pre>
  708.      * <p>
  709.      * 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.
  710.      * </p>
  711.      *
  712.      * @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
  713.      *      Edition, page 104, chapter 4.7.</a>
  714.      */
  715.     public static final int MAX_CODE_SIZE = 65536; // bytes

  716.     /**
  717.      * The maximum number of dimensions in an array: {@value}. One of the limitations of the Java Virtual Machine.
  718.      *
  719.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.3.2-150"> Field Descriptors in
  720.      *      The Java Virtual Machine Specification</a>
  721.      */
  722.     public static final int MAX_ARRAY_DIMENSIONS = 255;

  723.     /**
  724.      * Java VM opcode {@value}.
  725.      *
  726.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.nop"> Opcode definitions in The
  727.      *      Java Virtual Machine Specification</a>
  728.      */
  729.     public static final short NOP = 0;

  730.     /**
  731.      * Java VM opcode {@value}.
  732.      *
  733.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.aconst_null"> Opcode
  734.      *      definitions in The Java Virtual Machine Specification</a>
  735.      */
  736.     public static final short ACONST_NULL = 1;

  737.     /**
  738.      * Java VM opcode {@value}.
  739.      *
  740.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iconst_i"> Opcode definitions
  741.      *      in The Java Virtual Machine Specification</a>
  742.      */
  743.     public static final short ICONST_M1 = 2;

  744.     /**
  745.      * Java VM opcode {@value}.
  746.      *
  747.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iconst_i"> Opcode definitions
  748.      *      in The Java Virtual Machine Specification</a>
  749.      */
  750.     public static final short ICONST_0 = 3;

  751.     /**
  752.      * Java VM opcode {@value}.
  753.      *
  754.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iconst_i"> Opcode definitions
  755.      *      in The Java Virtual Machine Specification</a>
  756.      */
  757.     public static final short ICONST_1 = 4;

  758.     /**
  759.      * Java VM opcode {@value}.
  760.      *
  761.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iconst_i"> Opcode definitions
  762.      *      in The Java Virtual Machine Specification</a>
  763.      */
  764.     public static final short ICONST_2 = 5;

  765.     /**
  766.      * Java VM opcode {@value}.
  767.      *
  768.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iconst_i"> Opcode definitions
  769.      *      in The Java Virtual Machine Specification</a>
  770.      */
  771.     public static final short ICONST_3 = 6;

  772.     /**
  773.      * Java VM opcode {@value}.
  774.      *
  775.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iconst_i"> Opcode definitions
  776.      *      in The Java Virtual Machine Specification</a>
  777.      */
  778.     public static final short ICONST_4 = 7;

  779.     /**
  780.      * Java VM opcode {@value}.
  781.      *
  782.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iconst_i"> Opcode definitions
  783.      *      in The Java Virtual Machine Specification</a>
  784.      */
  785.     public static final short ICONST_5 = 8;

  786.     /**
  787.      * Java VM opcode {@value}.
  788.      *
  789.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lconst_l"> Opcode definitions
  790.      *      in The Java Virtual Machine Specification</a>
  791.      */
  792.     public static final short LCONST_0 = 9;

  793.     /**
  794.      * Java VM opcode {@value}.
  795.      *
  796.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lconst_l"> Opcode definitions
  797.      *      in The Java Virtual Machine Specification</a>
  798.      */
  799.     public static final short LCONST_1 = 10;

  800.     /**
  801.      * Java VM opcode {@value}.
  802.      *
  803.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fconst_f"> Opcode definitions
  804.      *      in The Java Virtual Machine Specification</a>
  805.      */
  806.     public static final short FCONST_0 = 11;

  807.     /**
  808.      * Java VM opcode {@value}.
  809.      *
  810.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fconst_f"> Opcode definitions
  811.      *      in The Java Virtual Machine Specification</a>
  812.      */
  813.     public static final short FCONST_1 = 12;

  814.     /**
  815.      * Java VM opcode {@value}.
  816.      *
  817.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fconst_f"> Opcode definitions
  818.      *      in The Java Virtual Machine Specification</a>
  819.      */
  820.     public static final short FCONST_2 = 13;

  821.     /**
  822.      * Java VM opcode {@value}.
  823.      *
  824.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dconst_d"> Opcode definitions
  825.      *      in The Java Virtual Machine Specification</a>
  826.      */
  827.     public static final short DCONST_0 = 14;

  828.     /**
  829.      * Java VM opcode {@value}.
  830.      *
  831.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dconst_d"> Opcode definitions
  832.      *      in The Java Virtual Machine Specification</a>
  833.      */
  834.     public static final short DCONST_1 = 15;

  835.     /**
  836.      * Java VM opcode {@value}.
  837.      *
  838.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.bipush"> Opcode definitions in
  839.      *      The Java Virtual Machine Specification</a>
  840.      */
  841.     public static final short BIPUSH = 16;

  842.     /**
  843.      * Java VM opcode {@value}.
  844.      *
  845.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.sipush"> Opcode definitions in
  846.      *      The Java Virtual Machine Specification</a>
  847.      */
  848.     public static final short SIPUSH = 17;

  849.     /**
  850.      * Java VM opcode {@value}.
  851.      *
  852.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ldc"> Opcode definitions in The
  853.      *      Java Virtual Machine Specification</a>
  854.      */
  855.     public static final short LDC = 18;

  856.     /**
  857.      * Java VM opcode {@value}.
  858.      *
  859.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ldc_w"> Opcode definitions in
  860.      *      The Java Virtual Machine Specification</a>
  861.      */
  862.     public static final short LDC_W = 19;

  863.     /**
  864.      * Java VM opcode {@value}.
  865.      *
  866.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ldc2_w"> Opcode definitions in
  867.      *      The Java Virtual Machine Specification</a>
  868.      */
  869.     public static final short LDC2_W = 20;

  870.     /**
  871.      * Java VM opcode {@value}.
  872.      *
  873.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iload"> Opcode definitions in
  874.      *      The Java Virtual Machine Specification</a>
  875.      */
  876.     public static final short ILOAD = 21;

  877.     /**
  878.      * Java VM opcode {@value}.
  879.      *
  880.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lload"> Opcode definitions in
  881.      *      The Java Virtual Machine Specification</a>
  882.      */
  883.     public static final short LLOAD = 22;

  884.     /**
  885.      * Java VM opcode {@value}.
  886.      *
  887.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fload"> Opcode definitions in
  888.      *      The Java Virtual Machine Specification</a>
  889.      */
  890.     public static final short FLOAD = 23;

  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.dload"> Opcode definitions in
  895.      *      The Java Virtual Machine Specification</a>
  896.      */
  897.     public static final short DLOAD = 24;

  898.     /**
  899.      * Java VM opcode {@value}.
  900.      *
  901.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.aload"> Opcode definitions in
  902.      *      The Java Virtual Machine Specification</a>
  903.      */
  904.     public static final short ALOAD = 25;

  905.     /**
  906.      * Java VM opcode {@value}.
  907.      *
  908.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iload_n"> Opcode definitions in
  909.      *      The Java Virtual Machine Specification</a>
  910.      */
  911.     public static final short ILOAD_0 = 26;

  912.     /**
  913.      * Java VM opcode {@value}.
  914.      *
  915.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iload_n"> Opcode definitions in
  916.      *      The Java Virtual Machine Specification</a>
  917.      */
  918.     public static final short ILOAD_1 = 27;

  919.     /**
  920.      * Java VM opcode {@value}.
  921.      *
  922.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iload_n"> Opcode definitions in
  923.      *      The Java Virtual Machine Specification</a>
  924.      */
  925.     public static final short ILOAD_2 = 28;

  926.     /**
  927.      * Java VM opcode {@value}.
  928.      *
  929.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iload_n"> Opcode definitions in
  930.      *      The Java Virtual Machine Specification</a>
  931.      */
  932.     public static final short ILOAD_3 = 29;

  933.     /**
  934.      * Java VM opcode {@value}.
  935.      *
  936.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lload_n"> Opcode definitions in
  937.      *      The Java Virtual Machine Specification</a>
  938.      */
  939.     public static final short LLOAD_0 = 30;

  940.     /**
  941.      * Java VM opcode {@value}.
  942.      *
  943.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lload_n"> Opcode definitions in
  944.      *      The Java Virtual Machine Specification</a>
  945.      */
  946.     public static final short LLOAD_1 = 31;

  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.lload_n"> Opcode definitions in
  951.      *      The Java Virtual Machine Specification</a>
  952.      */
  953.     public static final short LLOAD_2 = 32;

  954.     /**
  955.      * Java VM opcode {@value}.
  956.      *
  957.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lload_n"> Opcode definitions in
  958.      *      The Java Virtual Machine Specification</a>
  959.      */
  960.     public static final short LLOAD_3 = 33;

  961.     /**
  962.      * Java VM opcode {@value}.
  963.      *
  964.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fload_n"> Opcode definitions in
  965.      *      The Java Virtual Machine Specification</a>
  966.      */
  967.     public static final short FLOAD_0 = 34;

  968.     /**
  969.      * Java VM opcode {@value}.
  970.      *
  971.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fload_n"> Opcode definitions in
  972.      *      The Java Virtual Machine Specification</a>
  973.      */
  974.     public static final short FLOAD_1 = 35;

  975.     /**
  976.      * Java VM opcode {@value}.
  977.      *
  978.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fload_n"> Opcode definitions in
  979.      *      The Java Virtual Machine Specification</a>
  980.      */
  981.     public static final short FLOAD_2 = 36;

  982.     /**
  983.      * Java VM opcode {@value}.
  984.      *
  985.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fload_n"> Opcode definitions in
  986.      *      The Java Virtual Machine Specification</a>
  987.      */
  988.     public static final short FLOAD_3 = 37;

  989.     /**
  990.      * Java VM opcode {@value}.
  991.      *
  992.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dload_n"> Opcode definitions in
  993.      *      The Java Virtual Machine Specification</a>
  994.      */
  995.     public static final short DLOAD_0 = 38;

  996.     /**
  997.      * Java VM opcode {@value}.
  998.      *
  999.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dload_n"> Opcode definitions in
  1000.      *      The Java Virtual Machine Specification</a>
  1001.      */
  1002.     public static final short DLOAD_1 = 39;

  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.dload_n"> Opcode definitions in
  1007.      *      The Java Virtual Machine Specification</a>
  1008.      */
  1009.     public static final short DLOAD_2 = 40;

  1010.     /**
  1011.      * Java VM opcode {@value}.
  1012.      *
  1013.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dload_n"> Opcode definitions in
  1014.      *      The Java Virtual Machine Specification</a>
  1015.      */
  1016.     public static final short DLOAD_3 = 41;

  1017.     /**
  1018.      * Java VM opcode {@value}.
  1019.      *
  1020.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.aload_n"> Opcode definitions in
  1021.      *      The Java Virtual Machine Specification</a>
  1022.      */
  1023.     public static final short ALOAD_0 = 42;

  1024.     /**
  1025.      * Java VM opcode {@value}.
  1026.      *
  1027.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.aload_n"> Opcode definitions in
  1028.      *      The Java Virtual Machine Specification</a>
  1029.      */
  1030.     public static final short ALOAD_1 = 43;

  1031.     /**
  1032.      * Java VM opcode {@value}.
  1033.      *
  1034.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.aload_n"> Opcode definitions in
  1035.      *      The Java Virtual Machine Specification</a>
  1036.      */
  1037.     public static final short ALOAD_2 = 44;

  1038.     /**
  1039.      * Java VM opcode {@value}.
  1040.      *
  1041.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.aload_n"> Opcode definitions in
  1042.      *      The Java Virtual Machine Specification</a>
  1043.      */
  1044.     public static final short ALOAD_3 = 45;

  1045.     /**
  1046.      * Java VM opcode {@value}.
  1047.      *
  1048.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iaload"> Opcode definitions in
  1049.      *      The Java Virtual Machine Specification</a>
  1050.      */
  1051.     public static final short IALOAD = 46;

  1052.     /**
  1053.      * Java VM opcode {@value}.
  1054.      *
  1055.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.laload"> Opcode definitions in
  1056.      *      The Java Virtual Machine Specification</a>
  1057.      */
  1058.     public static final short LALOAD = 47;

  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.faload"> Opcode definitions in
  1063.      *      The Java Virtual Machine Specification</a>
  1064.      */
  1065.     public static final short FALOAD = 48;

  1066.     /**
  1067.      * Java VM opcode {@value}.
  1068.      *
  1069.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.daload"> Opcode definitions in
  1070.      *      The Java Virtual Machine Specification</a>
  1071.      */
  1072.     public static final short DALOAD = 49;

  1073.     /**
  1074.      * Java VM opcode {@value}.
  1075.      *
  1076.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.aaload"> Opcode definitions in
  1077.      *      The Java Virtual Machine Specification</a>
  1078.      */
  1079.     public static final short AALOAD = 50;

  1080.     /**
  1081.      * Java VM opcode {@value}.
  1082.      *
  1083.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.baload"> Opcode definitions in
  1084.      *      The Java Virtual Machine Specification</a>
  1085.      */
  1086.     public static final short BALOAD = 51;

  1087.     /**
  1088.      * Java VM opcode {@value}.
  1089.      *
  1090.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.caload"> Opcode definitions in
  1091.      *      The Java Virtual Machine Specification</a>
  1092.      */
  1093.     public static final short CALOAD = 52;

  1094.     /**
  1095.      * Java VM opcode {@value}.
  1096.      *
  1097.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.saload"> Opcode definitions in
  1098.      *      The Java Virtual Machine Specification</a>
  1099.      */
  1100.     public static final short SALOAD = 53;

  1101.     /**
  1102.      * Java VM opcode {@value}.
  1103.      *
  1104.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.istore"> Opcode definitions in
  1105.      *      The Java Virtual Machine Specification</a>
  1106.      */
  1107.     public static final short ISTORE = 54;

  1108.     /**
  1109.      * Java VM opcode {@value}.
  1110.      *
  1111.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lstore"> Opcode definitions in
  1112.      *      The Java Virtual Machine Specification</a>
  1113.      */
  1114.     public static final short LSTORE = 55;

  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.fstore"> Opcode definitions in
  1119.      *      The Java Virtual Machine Specification</a>
  1120.      */
  1121.     public static final short FSTORE = 56;

  1122.     /**
  1123.      * Java VM opcode {@value}.
  1124.      *
  1125.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dstore"> Opcode definitions in
  1126.      *      The Java Virtual Machine Specification</a>
  1127.      */
  1128.     public static final short DSTORE = 57;

  1129.     /**
  1130.      * Java VM opcode {@value}.
  1131.      *
  1132.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.astore"> Opcode definitions in
  1133.      *      The Java Virtual Machine Specification</a>
  1134.      */
  1135.     public static final short ASTORE = 58;

  1136.     /**
  1137.      * Java VM opcode {@value}.
  1138.      *
  1139.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.istore_n"> Opcode definitions
  1140.      *      in The Java Virtual Machine Specification</a>
  1141.      */
  1142.     public static final short ISTORE_0 = 59;

  1143.     /**
  1144.      * Java VM opcode {@value}.
  1145.      *
  1146.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.istore_n"> Opcode definitions
  1147.      *      in The Java Virtual Machine Specification</a>
  1148.      */
  1149.     public static final short ISTORE_1 = 60;

  1150.     /**
  1151.      * Java VM opcode {@value}.
  1152.      *
  1153.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.istore_n"> Opcode definitions
  1154.      *      in The Java Virtual Machine Specification</a>
  1155.      */
  1156.     public static final short ISTORE_2 = 61;

  1157.     /**
  1158.      * Java VM opcode {@value}.
  1159.      *
  1160.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.istore_n"> Opcode definitions
  1161.      *      in The Java Virtual Machine Specification</a>
  1162.      */
  1163.     public static final short ISTORE_3 = 62;

  1164.     /**
  1165.      * Java VM opcode {@value}.
  1166.      *
  1167.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lstore_n"> Opcode definitions
  1168.      *      in The Java Virtual Machine Specification</a>
  1169.      */
  1170.     public static final short LSTORE_0 = 63;

  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.lstore_n"> Opcode definitions
  1175.      *      in The Java Virtual Machine Specification</a>
  1176.      */
  1177.     public static final short LSTORE_1 = 64;

  1178.     /**
  1179.      * Java VM opcode {@value}.
  1180.      *
  1181.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lstore_n"> Opcode definitions
  1182.      *      in The Java Virtual Machine Specification</a>
  1183.      */
  1184.     public static final short LSTORE_2 = 65;

  1185.     /**
  1186.      * Java VM opcode {@value}.
  1187.      *
  1188.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lstore_n"> Opcode definitions
  1189.      *      in The Java Virtual Machine Specification</a>
  1190.      */
  1191.     public static final short LSTORE_3 = 66;

  1192.     /**
  1193.      * Java VM opcode {@value}.
  1194.      *
  1195.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fstore_n"> Opcode definitions
  1196.      *      in The Java Virtual Machine Specification</a>
  1197.      */
  1198.     public static final short FSTORE_0 = 67;

  1199.     /**
  1200.      * Java VM opcode {@value}.
  1201.      *
  1202.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fstore_n"> Opcode definitions
  1203.      *      in The Java Virtual Machine Specification</a>
  1204.      */
  1205.     public static final short FSTORE_1 = 68;

  1206.     /**
  1207.      * Java VM opcode {@value}.
  1208.      *
  1209.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fstore_n"> Opcode definitions
  1210.      *      in The Java Virtual Machine Specification</a>
  1211.      */
  1212.     public static final short FSTORE_2 = 69;

  1213.     /**
  1214.      * Java VM opcode {@value}.
  1215.      *
  1216.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fstore_n"> Opcode definitions
  1217.      *      in The Java Virtual Machine Specification</a>
  1218.      */
  1219.     public static final short FSTORE_3 = 70;

  1220.     /**
  1221.      * Java VM opcode {@value}.
  1222.      *
  1223.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dstore_n"> Opcode definitions
  1224.      *      in The Java Virtual Machine Specification</a>
  1225.      */
  1226.     public static final short DSTORE_0 = 71;

  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.dstore_n"> Opcode definitions
  1231.      *      in The Java Virtual Machine Specification</a>
  1232.      */
  1233.     public static final short DSTORE_1 = 72;

  1234.     /**
  1235.      * Java VM opcode {@value}.
  1236.      *
  1237.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dstore_n"> Opcode definitions
  1238.      *      in The Java Virtual Machine Specification</a>
  1239.      */
  1240.     public static final short DSTORE_2 = 73;

  1241.     /**
  1242.      * Java VM opcode {@value}.
  1243.      *
  1244.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dstore_n"> Opcode definitions
  1245.      *      in The Java Virtual Machine Specification</a>
  1246.      */
  1247.     public static final short DSTORE_3 = 74;

  1248.     /**
  1249.      * Java VM opcode {@value}.
  1250.      *
  1251.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.astore_n"> Opcode definitions
  1252.      *      in The Java Virtual Machine Specification</a>
  1253.      */
  1254.     public static final short ASTORE_0 = 75;

  1255.     /**
  1256.      * Java VM opcode {@value}.
  1257.      *
  1258.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.astore_n"> Opcode definitions
  1259.      *      in The Java Virtual Machine Specification</a>
  1260.      */
  1261.     public static final short ASTORE_1 = 76;

  1262.     /**
  1263.      * Java VM opcode {@value}.
  1264.      *
  1265.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.astore_n"> Opcode definitions
  1266.      *      in The Java Virtual Machine Specification</a>
  1267.      */
  1268.     public static final short ASTORE_2 = 77;

  1269.     /**
  1270.      * Java VM opcode {@value}.
  1271.      *
  1272.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.astore_n"> Opcode definitions
  1273.      *      in The Java Virtual Machine Specification</a>
  1274.      */
  1275.     public static final short ASTORE_3 = 78;

  1276.     /**
  1277.      * Java VM opcode {@value}.
  1278.      *
  1279.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iastore"> Opcode definitions in
  1280.      *      The Java Virtual Machine Specification</a>
  1281.      */
  1282.     public static final short IASTORE = 79;

  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.lastore"> Opcode definitions in
  1287.      *      The Java Virtual Machine Specification</a>
  1288.      */
  1289.     public static final short LASTORE = 80;

  1290.     /**
  1291.      * Java VM opcode {@value}.
  1292.      *
  1293.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fastore"> Opcode definitions in
  1294.      *      The Java Virtual Machine Specification</a>
  1295.      */
  1296.     public static final short FASTORE = 81;

  1297.     /**
  1298.      * Java VM opcode {@value}.
  1299.      *
  1300.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dastore"> Opcode definitions in
  1301.      *      The Java Virtual Machine Specification</a>
  1302.      */
  1303.     public static final short DASTORE = 82;

  1304.     /**
  1305.      * Java VM opcode {@value}.
  1306.      *
  1307.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.aastore"> Opcode definitions in
  1308.      *      The Java Virtual Machine Specification</a>
  1309.      */
  1310.     public static final short AASTORE = 83;

  1311.     /**
  1312.      * Java VM opcode {@value}.
  1313.      *
  1314.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.bastore"> Opcode definitions in
  1315.      *      The Java Virtual Machine Specification</a>
  1316.      */
  1317.     public static final short BASTORE = 84;

  1318.     /**
  1319.      * Java VM opcode {@value}.
  1320.      *
  1321.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.castore"> Opcode definitions in
  1322.      *      The Java Virtual Machine Specification</a>
  1323.      */
  1324.     public static final short CASTORE = 85;

  1325.     /**
  1326.      * Java VM opcode {@value}.
  1327.      *
  1328.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.sastore"> Opcode definitions in
  1329.      *      The Java Virtual Machine Specification</a>
  1330.      */
  1331.     public static final short SASTORE = 86;

  1332.     /**
  1333.      * Java VM opcode {@value}.
  1334.      *
  1335.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.pop"> Opcode definitions in The
  1336.      *      Java Virtual Machine Specification</a>
  1337.      */
  1338.     public static final short POP = 87;

  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.pop2"> Opcode definitions in
  1343.      *      The Java Virtual Machine Specification</a>
  1344.      */
  1345.     public static final short POP2 = 88;

  1346.     /**
  1347.      * Java VM opcode {@value}.
  1348.      *
  1349.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dup"> Opcode definitions in The
  1350.      *      Java Virtual Machine Specification</a>
  1351.      */
  1352.     public static final short DUP = 89;

  1353.     /**
  1354.      * Java VM opcode {@value}.
  1355.      *
  1356.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dup_x1"> Opcode definitions in
  1357.      *      The Java Virtual Machine Specification</a>
  1358.      */
  1359.     public static final short DUP_X1 = 90;

  1360.     /**
  1361.      * Java VM opcode {@value}.
  1362.      *
  1363.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dup_x2"> Opcode definitions in
  1364.      *      The Java Virtual Machine Specification</a>
  1365.      */
  1366.     public static final short DUP_X2 = 91;

  1367.     /**
  1368.      * Java VM opcode {@value}.
  1369.      *
  1370.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dup2"> Opcode definitions in
  1371.      *      The Java Virtual Machine Specification</a>
  1372.      */
  1373.     public static final short DUP2 = 92;

  1374.     /**
  1375.      * Java VM opcode {@value}.
  1376.      *
  1377.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dup2_x1"> Opcode definitions in
  1378.      *      The Java Virtual Machine Specification</a>
  1379.      */
  1380.     public static final short DUP2_X1 = 93;

  1381.     /**
  1382.      * Java VM opcode {@value}.
  1383.      *
  1384.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dup2_x2"> Opcode definitions in
  1385.      *      The Java Virtual Machine Specification</a>
  1386.      */
  1387.     public static final short DUP2_X2 = 94;

  1388.     /**
  1389.      * Java VM opcode {@value}.
  1390.      *
  1391.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.swap"> Opcode definitions in
  1392.      *      The Java Virtual Machine Specification</a>
  1393.      */
  1394.     public static final short SWAP = 95;

  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.iadd"> Opcode definitions in
  1399.      *      The Java Virtual Machine Specification</a>
  1400.      */
  1401.     public static final short IADD = 96;

  1402.     /**
  1403.      * Java VM opcode {@value}.
  1404.      *
  1405.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ladd"> Opcode definitions in
  1406.      *      The Java Virtual Machine Specification</a>
  1407.      */
  1408.     public static final short LADD = 97;

  1409.     /**
  1410.      * Java VM opcode {@value}.
  1411.      *
  1412.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fadd"> Opcode definitions in
  1413.      *      The Java Virtual Machine Specification</a>
  1414.      */
  1415.     public static final short FADD = 98;

  1416.     /**
  1417.      * Java VM opcode {@value}.
  1418.      *
  1419.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dadd"> Opcode definitions in
  1420.      *      The Java Virtual Machine Specification</a>
  1421.      */
  1422.     public static final short DADD = 99;

  1423.     /**
  1424.      * Java VM opcode {@value}.
  1425.      *
  1426.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.isub"> Opcode definitions in
  1427.      *      The Java Virtual Machine Specification</a>
  1428.      */
  1429.     public static final short ISUB = 100;

  1430.     /**
  1431.      * Java VM opcode {@value}.
  1432.      *
  1433.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lsub"> Opcode definitions in
  1434.      *      The Java Virtual Machine Specification</a>
  1435.      */
  1436.     public static final short LSUB = 101;

  1437.     /**
  1438.      * Java VM opcode {@value}.
  1439.      *
  1440.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fsub"> Opcode definitions in
  1441.      *      The Java Virtual Machine Specification</a>
  1442.      */
  1443.     public static final short FSUB = 102;

  1444.     /**
  1445.      * Java VM opcode {@value}.
  1446.      *
  1447.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dsub"> Opcode definitions in
  1448.      *      The Java Virtual Machine Specification</a>
  1449.      */
  1450.     public static final short DSUB = 103;

  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.imul"> Opcode definitions in
  1455.      *      The Java Virtual Machine Specification</a>
  1456.      */
  1457.     public static final short IMUL = 104;

  1458.     /**
  1459.      * Java VM opcode {@value}.
  1460.      *
  1461.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lmul"> Opcode definitions in
  1462.      *      The Java Virtual Machine Specification</a>
  1463.      */
  1464.     public static final short LMUL = 105;

  1465.     /**
  1466.      * Java VM opcode {@value}.
  1467.      *
  1468.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fmul"> Opcode definitions in
  1469.      *      The Java Virtual Machine Specification</a>
  1470.      */
  1471.     public static final short FMUL = 106;

  1472.     /**
  1473.      * Java VM opcode {@value}.
  1474.      *
  1475.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dmul"> Opcode definitions in
  1476.      *      The Java Virtual Machine Specification</a>
  1477.      */
  1478.     public static final short DMUL = 107;

  1479.     /**
  1480.      * Java VM opcode {@value}.
  1481.      *
  1482.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.idiv"> Opcode definitions in
  1483.      *      The Java Virtual Machine Specification</a>
  1484.      */
  1485.     public static final short IDIV = 108;

  1486.     /**
  1487.      * Java VM opcode {@value}.
  1488.      *
  1489.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ldiv"> Opcode definitions in
  1490.      *      The Java Virtual Machine Specification</a>
  1491.      */
  1492.     public static final short LDIV = 109;

  1493.     /**
  1494.      * Java VM opcode {@value}.
  1495.      *
  1496.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fdiv"> Opcode definitions in
  1497.      *      The Java Virtual Machine Specification</a>
  1498.      */
  1499.     public static final short FDIV = 110;

  1500.     /**
  1501.      * Java VM opcode {@value}.
  1502.      *
  1503.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ddiv"> Opcode definitions in
  1504.      *      The Java Virtual Machine Specification</a>
  1505.      */
  1506.     public static final short DDIV = 111;

  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.irem"> Opcode definitions in
  1511.      *      The Java Virtual Machine Specification</a>
  1512.      */
  1513.     public static final short IREM = 112;

  1514.     /**
  1515.      * Java VM opcode {@value}.
  1516.      *
  1517.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lrem"> Opcode definitions in
  1518.      *      The Java Virtual Machine Specification</a>
  1519.      */
  1520.     public static final short LREM = 113;

  1521.     /**
  1522.      * Java VM opcode {@value}.
  1523.      *
  1524.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.frem"> Opcode definitions in
  1525.      *      The Java Virtual Machine Specification</a>
  1526.      */
  1527.     public static final short FREM = 114;

  1528.     /**
  1529.      * Java VM opcode {@value}.
  1530.      *
  1531.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.drem"> Opcode definitions in
  1532.      *      The Java Virtual Machine Specification</a>
  1533.      */
  1534.     public static final short DREM = 115;

  1535.     /**
  1536.      * Java VM opcode {@value}.
  1537.      *
  1538.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ineg"> Opcode definitions in
  1539.      *      The Java Virtual Machine Specification</a>
  1540.      */
  1541.     public static final short INEG = 116;

  1542.     /**
  1543.      * Java VM opcode {@value}.
  1544.      *
  1545.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lneg"> Opcode definitions in
  1546.      *      The Java Virtual Machine Specification</a>
  1547.      */
  1548.     public static final short LNEG = 117;

  1549.     /**
  1550.      * Java VM opcode {@value}.
  1551.      *
  1552.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fneg"> Opcode definitions in
  1553.      *      The Java Virtual Machine Specification</a>
  1554.      */
  1555.     public static final short FNEG = 118;

  1556.     /**
  1557.      * Java VM opcode {@value}.
  1558.      *
  1559.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dneg"> Opcode definitions in
  1560.      *      The Java Virtual Machine Specification</a>
  1561.      */
  1562.     public static final short DNEG = 119;

  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.ishl"> Opcode definitions in
  1567.      *      The Java Virtual Machine Specification</a>
  1568.      */
  1569.     public static final short ISHL = 120;

  1570.     /**
  1571.      * Java VM opcode {@value}.
  1572.      *
  1573.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lshl"> Opcode definitions in
  1574.      *      The Java Virtual Machine Specification</a>
  1575.      */
  1576.     public static final short LSHL = 121;

  1577.     /**
  1578.      * Java VM opcode {@value}.
  1579.      *
  1580.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ishr"> Opcode definitions in
  1581.      *      The Java Virtual Machine Specification</a>
  1582.      */
  1583.     public static final short ISHR = 122;

  1584.     /**
  1585.      * Java VM opcode {@value}.
  1586.      *
  1587.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lshr"> Opcode definitions in
  1588.      *      The Java Virtual Machine Specification</a>
  1589.      */
  1590.     public static final short LSHR = 123;

  1591.     /**
  1592.      * Java VM opcode {@value}.
  1593.      *
  1594.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iushr"> Opcode definitions in
  1595.      *      The Java Virtual Machine Specification</a>
  1596.      */
  1597.     public static final short IUSHR = 124;

  1598.     /**
  1599.      * Java VM opcode {@value}.
  1600.      *
  1601.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lushr"> Opcode definitions in
  1602.      *      The Java Virtual Machine Specification</a>
  1603.      */
  1604.     public static final short LUSHR = 125;

  1605.     /**
  1606.      * Java VM opcode {@value}.
  1607.      *
  1608.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iand"> Opcode definitions in
  1609.      *      The Java Virtual Machine Specification</a>
  1610.      */
  1611.     public static final short IAND = 126;

  1612.     /**
  1613.      * Java VM opcode {@value}.
  1614.      *
  1615.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.land"> Opcode definitions in
  1616.      *      The Java Virtual Machine Specification</a>
  1617.      */
  1618.     public static final short LAND = 127;

  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.ior"> Opcode definitions in The
  1623.      *      Java Virtual Machine Specification</a>
  1624.      */
  1625.     public static final short IOR = 128;

  1626.     /**
  1627.      * Java VM opcode {@value}.
  1628.      *
  1629.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lor"> Opcode definitions in The
  1630.      *      Java Virtual Machine Specification</a>
  1631.      */
  1632.     public static final short LOR = 129;

  1633.     /**
  1634.      * Java VM opcode {@value}.
  1635.      *
  1636.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ixor"> Opcode definitions in
  1637.      *      The Java Virtual Machine Specification</a>
  1638.      */
  1639.     public static final short IXOR = 130;

  1640.     /**
  1641.      * Java VM opcode {@value}.
  1642.      *
  1643.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lxor"> Opcode definitions in
  1644.      *      The Java Virtual Machine Specification</a>
  1645.      */
  1646.     public static final short LXOR = 131;

  1647.     /**
  1648.      * Java VM opcode {@value}.
  1649.      *
  1650.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iinc"> Opcode definitions in
  1651.      *      The Java Virtual Machine Specification</a>
  1652.      */
  1653.     public static final short IINC = 132;

  1654.     /**
  1655.      * Java VM opcode {@value}.
  1656.      *
  1657.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.i2l"> Opcode definitions in The
  1658.      *      Java Virtual Machine Specification</a>
  1659.      */
  1660.     public static final short I2L = 133;

  1661.     /**
  1662.      * Java VM opcode {@value}.
  1663.      *
  1664.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.i2f"> Opcode definitions in The
  1665.      *      Java Virtual Machine Specification</a>
  1666.      */
  1667.     public static final short I2F = 134;

  1668.     /**
  1669.      * Java VM opcode {@value}.
  1670.      *
  1671.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.i2d"> Opcode definitions in The
  1672.      *      Java Virtual Machine Specification</a>
  1673.      */
  1674.     public static final short I2D = 135;

  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.l2i"> Opcode definitions in The
  1679.      *      Java Virtual Machine Specification</a>
  1680.      */
  1681.     public static final short L2I = 136;

  1682.     /**
  1683.      * Java VM opcode {@value}.
  1684.      *
  1685.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.l2f"> Opcode definitions in The
  1686.      *      Java Virtual Machine Specification</a>
  1687.      */
  1688.     public static final short L2F = 137;

  1689.     /**
  1690.      * Java VM opcode {@value}.
  1691.      *
  1692.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.l2d"> Opcode definitions in The
  1693.      *      Java Virtual Machine Specification</a>
  1694.      */
  1695.     public static final short L2D = 138;

  1696.     /**
  1697.      * Java VM opcode {@value}.
  1698.      *
  1699.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.f2i"> Opcode definitions in The
  1700.      *      Java Virtual Machine Specification</a>
  1701.      */
  1702.     public static final short F2I = 139;

  1703.     /**
  1704.      * Java VM opcode {@value}.
  1705.      *
  1706.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.f2l"> Opcode definitions in The
  1707.      *      Java Virtual Machine Specification</a>
  1708.      */
  1709.     public static final short F2L = 140;

  1710.     /**
  1711.      * Java VM opcode {@value}.
  1712.      *
  1713.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.f2d"> Opcode definitions in The
  1714.      *      Java Virtual Machine Specification</a>
  1715.      */
  1716.     public static final short F2D = 141;

  1717.     /**
  1718.      * Java VM opcode {@value}.
  1719.      *
  1720.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.d2i"> Opcode definitions in The
  1721.      *      Java Virtual Machine Specification</a>
  1722.      */
  1723.     public static final short D2I = 142;

  1724.     /**
  1725.      * Java VM opcode {@value}.
  1726.      *
  1727.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.d2l"> Opcode definitions in The
  1728.      *      Java Virtual Machine Specification</a>
  1729.      */
  1730.     public static final short D2L = 143;

  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.d2f"> Opcode definitions in The
  1735.      *      Java Virtual Machine Specification</a>
  1736.      */
  1737.     public static final short D2F = 144;

  1738.     /**
  1739.      * Java VM opcode {@value}.
  1740.      *
  1741.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.i2b"> Opcode definitions in The
  1742.      *      Java Virtual Machine Specification</a>
  1743.      */
  1744.     public static final short I2B = 145;

  1745.     /**
  1746.      * Java VM opcode {@value}.
  1747.      *
  1748.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> Opcode definitions in The
  1749.      *      Java Virtual Machine Specification</a>
  1750.      */
  1751.     public static final short INT2BYTE = 145; // Old notation

  1752.     /**
  1753.      * Java VM opcode {@value}.
  1754.      *
  1755.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.i2c"> Opcode definitions in The
  1756.      *      Java Virtual Machine Specification</a>
  1757.      */
  1758.     public static final short I2C = 146;

  1759.     /**
  1760.      * Java VM opcode {@value}.
  1761.      *
  1762.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> Opcode definitions in The
  1763.      *      Java Virtual Machine Specification</a>
  1764.      */
  1765.     public static final short INT2CHAR = 146; // Old notation

  1766.     /**
  1767.      * Java VM opcode {@value}.
  1768.      *
  1769.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.i2s"> Opcode definitions in The
  1770.      *      Java Virtual Machine Specification</a>
  1771.      */
  1772.     public static final short I2S = 147;

  1773.     /**
  1774.      * Java VM opcode {@value}.
  1775.      *
  1776.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> Opcode definitions in The
  1777.      *      Java Virtual Machine Specification</a>
  1778.      */
  1779.     public static final short INT2SHORT = 147; // Old notation

  1780.     /**
  1781.      * Java VM opcode {@value}.
  1782.      *
  1783.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lcmp"> Opcode definitions in
  1784.      *      The Java Virtual Machine Specification</a>
  1785.      */
  1786.     public static final short LCMP = 148;

  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.fcmpl"> Opcode definitions in
  1791.      *      The Java Virtual Machine Specification</a>
  1792.      */
  1793.     public static final short FCMPL = 149;

  1794.     /**
  1795.      * Java VM opcode {@value}.
  1796.      *
  1797.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fcmpg"> Opcode definitions in
  1798.      *      The Java Virtual Machine Specification</a>
  1799.      */
  1800.     public static final short FCMPG = 150;

  1801.     /**
  1802.      * Java VM opcode {@value}.
  1803.      *
  1804.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dcmpl"> Opcode definitions in
  1805.      *      The Java Virtual Machine Specification</a>
  1806.      */
  1807.     public static final short DCMPL = 151;

  1808.     /**
  1809.      * Java VM opcode {@value}.
  1810.      *
  1811.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dcmpg"> Opcode definitions in
  1812.      *      The Java Virtual Machine Specification</a>
  1813.      */
  1814.     public static final short DCMPG = 152;

  1815.     /**
  1816.      * Java VM opcode {@value}.
  1817.      *
  1818.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ifeq"> Opcode definitions in
  1819.      *      The Java Virtual Machine Specification</a>
  1820.      */
  1821.     public static final short IFEQ = 153;

  1822.     /**
  1823.      * Java VM opcode {@value}.
  1824.      *
  1825.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ifne"> Opcode definitions in
  1826.      *      The Java Virtual Machine Specification</a>
  1827.      */
  1828.     public static final short IFNE = 154;

  1829.     /**
  1830.      * Java VM opcode {@value}.
  1831.      *
  1832.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iflt"> Opcode definitions in
  1833.      *      The Java Virtual Machine Specification</a>
  1834.      */
  1835.     public static final short IFLT = 155;

  1836.     /**
  1837.      * Java VM opcode {@value}.
  1838.      *
  1839.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ifge"> Opcode definitions in
  1840.      *      The Java Virtual Machine Specification</a>
  1841.      */
  1842.     public static final short IFGE = 156;

  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.ifgt"> Opcode definitions in
  1847.      *      The Java Virtual Machine Specification</a>
  1848.      */
  1849.     public static final short IFGT = 157;

  1850.     /**
  1851.      * Java VM opcode {@value}.
  1852.      *
  1853.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ifle"> Opcode definitions in
  1854.      *      The Java Virtual Machine Specification</a>
  1855.      */
  1856.     public static final short IFLE = 158;

  1857.     /**
  1858.      * Java VM opcode {@value}.
  1859.      *
  1860.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.if_icmp_cond"> Opcode
  1861.      *      definitions in The Java Virtual Machine Specification</a>
  1862.      */
  1863.     public static final short IF_ICMPEQ = 159;

  1864.     /**
  1865.      * Java VM opcode {@value}.
  1866.      *
  1867.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.if_icmp_cond"> Opcode
  1868.      *      definitions in The Java Virtual Machine Specification</a>
  1869.      */
  1870.     public static final short IF_ICMPNE = 160;

  1871.     /**
  1872.      * Java VM opcode {@value}.
  1873.      *
  1874.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.if_icmp_cond"> Opcode
  1875.      *      definitions in The Java Virtual Machine Specification</a>
  1876.      */
  1877.     public static final short IF_ICMPLT = 161;

  1878.     /**
  1879.      * Java VM opcode {@value}.
  1880.      *
  1881.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.if_icmp_cond"> Opcode
  1882.      *      definitions in The Java Virtual Machine Specification</a>
  1883.      */
  1884.     public static final short IF_ICMPGE = 162;

  1885.     /**
  1886.      * Java VM opcode {@value}.
  1887.      *
  1888.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.if_icmp_cond"> Opcode
  1889.      *      definitions in The Java Virtual Machine Specification</a>
  1890.      */
  1891.     public static final short IF_ICMPGT = 163;

  1892.     /**
  1893.      * Java VM opcode {@value}.
  1894.      *
  1895.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.if_icmp_cond"> Opcode
  1896.      *      definitions in The Java Virtual Machine Specification</a>
  1897.      */
  1898.     public static final short IF_ICMPLE = 164;

  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.if_acmp_cond"> Opcode
  1903.      *      definitions in The Java Virtual Machine Specification</a>
  1904.      */
  1905.     public static final short IF_ACMPEQ = 165;

  1906.     /**
  1907.      * Java VM opcode {@value}.
  1908.      *
  1909.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.if_acmp_cond"> Opcode
  1910.      *      definitions in The Java Virtual Machine Specification</a>
  1911.      */
  1912.     public static final short IF_ACMPNE = 166;

  1913.     /**
  1914.      * Java VM opcode {@value}.
  1915.      *
  1916.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.goto"> Opcode definitions in
  1917.      *      The Java Virtual Machine Specification</a>
  1918.      */
  1919.     public static final short GOTO = 167;

  1920.     /**
  1921.      * Java VM opcode {@value}.
  1922.      *
  1923.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.jsr"> Opcode definitions in The
  1924.      *      Java Virtual Machine Specification</a>
  1925.      */
  1926.     public static final short JSR = 168;

  1927.     /**
  1928.      * Java VM opcode {@value}.
  1929.      *
  1930.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ret"> Opcode definitions in The
  1931.      *      Java Virtual Machine Specification</a>
  1932.      */
  1933.     public static final short RET = 169;

  1934.     /**
  1935.      * Java VM opcode {@value}.
  1936.      *
  1937.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.tableswitch"> Opcode
  1938.      *      definitions in The Java Virtual Machine Specification</a>
  1939.      */
  1940.     public static final short TABLESWITCH = 170;

  1941.     /**
  1942.      * Java VM opcode {@value}.
  1943.      *
  1944.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lookupswitch"> Opcode
  1945.      *      definitions in The Java Virtual Machine Specification</a>
  1946.      */
  1947.     public static final short LOOKUPSWITCH = 171;

  1948.     /**
  1949.      * Java VM opcode {@value}.
  1950.      *
  1951.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ireturn"> Opcode definitions in
  1952.      *      The Java Virtual Machine Specification</a>
  1953.      */
  1954.     public static final short IRETURN = 172;

  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.lreturn"> Opcode definitions in
  1959.      *      The Java Virtual Machine Specification</a>
  1960.      */
  1961.     public static final short LRETURN = 173;

  1962.     /**
  1963.      * Java VM opcode {@value}.
  1964.      *
  1965.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.freturn"> Opcode definitions in
  1966.      *      The Java Virtual Machine Specification</a>
  1967.      */
  1968.     public static final short FRETURN = 174;

  1969.     /**
  1970.      * Java VM opcode {@value}.
  1971.      *
  1972.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dreturn"> Opcode definitions in
  1973.      *      The Java Virtual Machine Specification</a>
  1974.      */
  1975.     public static final short DRETURN = 175;

  1976.     /**
  1977.      * Java VM opcode {@value}.
  1978.      *
  1979.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.areturn"> Opcode definitions in
  1980.      *      The Java Virtual Machine Specification</a>
  1981.      */
  1982.     public static final short ARETURN = 176;

  1983.     /**
  1984.      * Java VM opcode {@value}.
  1985.      *
  1986.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.return"> Opcode definitions in
  1987.      *      The Java Virtual Machine Specification</a>
  1988.      */
  1989.     public static final short RETURN = 177;

  1990.     /**
  1991.      * Java VM opcode {@value}.
  1992.      *
  1993.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.getstatic"> Opcode definitions
  1994.      *      in The Java Virtual Machine Specification</a>
  1995.      */
  1996.     public static final short GETSTATIC = 178;

  1997.     /**
  1998.      * Java VM opcode {@value}.
  1999.      *
  2000.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.putstatic"> Opcode definitions
  2001.      *      in The Java Virtual Machine Specification</a>
  2002.      */
  2003.     public static final short PUTSTATIC = 179;

  2004.     /**
  2005.      * Java VM opcode {@value}.
  2006.      *
  2007.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.getfield"> Opcode definitions
  2008.      *      in The Java Virtual Machine Specification</a>
  2009.      */
  2010.     public static final short GETFIELD = 180;

  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.putfield"> Opcode definitions
  2015.      *      in The Java Virtual Machine Specification</a>
  2016.      */
  2017.     public static final short PUTFIELD = 181;

  2018.     /**
  2019.      * Java VM opcode {@value}.
  2020.      *
  2021.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.invokevirtual"> Opcode
  2022.      *      definitions in The Java Virtual Machine Specification</a>
  2023.      */
  2024.     public static final short INVOKEVIRTUAL = 182;

  2025.     /**
  2026.      * Java VM opcode {@value}.
  2027.      *
  2028.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.invokespecial"> Opcode
  2029.      *      definitions in The Java Virtual Machine Specification</a>
  2030.      */
  2031.     public static final short INVOKESPECIAL = 183;

  2032.     /**
  2033.      * Java VM opcode {@value}.
  2034.      *
  2035.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> Opcode definitions in The
  2036.      *      Java Virtual Machine Specification</a>
  2037.      */
  2038.     public static final short INVOKENONVIRTUAL = 183; // Old name in JDK 1.0

  2039.     /**
  2040.      * Java VM opcode {@value}.
  2041.      *
  2042.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.invokestatic"> Opcode
  2043.      *      definitions in The Java Virtual Machine Specification</a>
  2044.      */
  2045.     public static final short INVOKESTATIC = 184;

  2046.     /**
  2047.      * Java VM opcode {@value}.
  2048.      *
  2049.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.invokeinterface"> Opcode
  2050.      *      definitions in The Java Virtual Machine Specification</a>
  2051.      */
  2052.     public static final short INVOKEINTERFACE = 185;

  2053.     /**
  2054.      * Java VM opcode {@value}.
  2055.      *
  2056.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.invokedynamic"> Opcode
  2057.      *      definitions in The Java Virtual Machine Specification</a>
  2058.      */
  2059.     public static final short INVOKEDYNAMIC = 186;

  2060.     /**
  2061.      * Java VM opcode {@value}.
  2062.      *
  2063.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.new"> Opcode definitions in The
  2064.      *      Java Virtual Machine Specification</a>
  2065.      */
  2066.     public static final short NEW = 187;

  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.newarray"> Opcode definitions
  2071.      *      in The Java Virtual Machine Specification</a>
  2072.      */
  2073.     public static final short NEWARRAY = 188;

  2074.     /**
  2075.      * Java VM opcode {@value}.
  2076.      *
  2077.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.anewarray"> Opcode definitions
  2078.      *      in The Java Virtual Machine Specification</a>
  2079.      */
  2080.     public static final short ANEWARRAY = 189;

  2081.     /**
  2082.      * Java VM opcode {@value}.
  2083.      *
  2084.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.arraylength"> Opcode
  2085.      *      definitions in The Java Virtual Machine Specification</a>
  2086.      */
  2087.     public static final short ARRAYLENGTH = 190;

  2088.     /**
  2089.      * Java VM opcode {@value}.
  2090.      *
  2091.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.athrow"> Opcode definitions in
  2092.      *      The Java Virtual Machine Specification</a>
  2093.      */
  2094.     public static final short ATHROW = 191;

  2095.     /**
  2096.      * Java VM opcode {@value}.
  2097.      *
  2098.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.checkcast"> Opcode definitions
  2099.      *      in The Java Virtual Machine Specification</a>
  2100.      */
  2101.     public static final short CHECKCAST = 192;

  2102.     /**
  2103.      * Java VM opcode {@value}.
  2104.      *
  2105.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.instanceof"> Opcode definitions
  2106.      *      in The Java Virtual Machine Specification</a>
  2107.      */
  2108.     public static final short INSTANCEOF = 193;

  2109.     /**
  2110.      * Java VM opcode {@value}.
  2111.      *
  2112.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.monitorenter"> Opcode
  2113.      *      definitions in The Java Virtual Machine Specification</a>
  2114.      */
  2115.     public static final short MONITORENTER = 194;

  2116.     /**
  2117.      * Java VM opcode {@value}.
  2118.      *
  2119.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.monitorexit"> Opcode
  2120.      *      definitions in The Java Virtual Machine Specification</a>
  2121.      */
  2122.     public static final short MONITOREXIT = 195;

  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.wide"> Opcode definitions in
  2127.      *      The Java Virtual Machine Specification</a>
  2128.      */
  2129.     public static final short WIDE = 196;

  2130.     /**
  2131.      * Java VM opcode {@value}.
  2132.      *
  2133.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.multianewarray"> Opcode
  2134.      *      definitions in The Java Virtual Machine Specification</a>
  2135.      */
  2136.     public static final short MULTIANEWARRAY = 197;

  2137.     /**
  2138.      * Java VM opcode {@value}.
  2139.      *
  2140.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ifnull"> Opcode definitions in
  2141.      *      The Java Virtual Machine Specification</a>
  2142.      */
  2143.     public static final short IFNULL = 198;

  2144.     /**
  2145.      * Java VM opcode {@value}.
  2146.      *
  2147.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ifnonnull"> Opcode definitions
  2148.      *      in The Java Virtual Machine Specification</a>
  2149.      */
  2150.     public static final short IFNONNULL = 199;

  2151.     /**
  2152.      * Java VM opcode {@value}.
  2153.      *
  2154.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.goto_w"> Opcode definitions in
  2155.      *      The Java Virtual Machine Specification</a>
  2156.      */
  2157.     public static final short GOTO_W = 200;

  2158.     /**
  2159.      * Java VM opcode {@value}.
  2160.      *
  2161.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.jsr_w"> Opcode definitions in
  2162.      *      The Java Virtual Machine Specification</a>
  2163.      */
  2164.     public static final short JSR_W = 201;

  2165.     /**
  2166.      * JVM internal opcode {@value}.
  2167.      *
  2168.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.2"> Reserved opcodes in the Java
  2169.      *      Virtual Machine Specification</a>
  2170.      */
  2171.     public static final short BREAKPOINT = 202;

  2172.     /**
  2173.      * JVM internal opcode {@value}.
  2174.      *
  2175.      * @see <a href=
  2176.      *      "https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
  2177.      *      Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
  2178.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> Why the _quick
  2179.      *      opcodes were removed from the second version of the Java Virtual Machine Specification.</a>
  2180.      */
  2181.     public static final short LDC_QUICK = 203;

  2182.     /**
  2183.      * JVM internal opcode {@value}.
  2184.      *
  2185.      * @see <a href=
  2186.      *      "https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
  2187.      *      Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
  2188.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> Why the _quick
  2189.      *      opcodes were removed from the second version of the Java Virtual Machine Specification.</a>
  2190.      */
  2191.     public static final short LDC_W_QUICK = 204;

  2192.     /**
  2193.      * JVM internal opcode {@value}.
  2194.      *
  2195.      * @see <a href=
  2196.      *      "https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
  2197.      *      Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
  2198.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> Why the _quick
  2199.      *      opcodes were removed from the second version of the Java Virtual Machine Specification.</a>
  2200.      */
  2201.     public static final short LDC2_W_QUICK = 205;

  2202.     /**
  2203.      * JVM internal opcode {@value}.
  2204.      *
  2205.      * @see <a href=
  2206.      *      "https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
  2207.      *      Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
  2208.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> Why the _quick
  2209.      *      opcodes were removed from the second version of the Java Virtual Machine Specification.</a>
  2210.      */
  2211.     public static final short GETFIELD_QUICK = 206;

  2212.     /**
  2213.      * JVM internal opcode {@value}.
  2214.      *
  2215.      * @see <a href=
  2216.      *      "https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
  2217.      *      Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
  2218.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> Why the _quick
  2219.      *      opcodes were removed from the second version of the Java Virtual Machine Specification.</a>
  2220.      */
  2221.     public static final short PUTFIELD_QUICK = 207;

  2222.     /**
  2223.      * JVM internal opcode {@value}.
  2224.      *
  2225.      * @see <a href=
  2226.      *      "https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
  2227.      *      Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
  2228.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> Why the _quick
  2229.      *      opcodes were removed from the second version of the Java Virtual Machine Specification.</a>
  2230.      */
  2231.     public static final short GETFIELD2_QUICK = 208;

  2232.     /**
  2233.      * JVM internal opcode {@value}.
  2234.      *
  2235.      * @see <a href=
  2236.      *      "https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
  2237.      *      Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
  2238.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> Why the _quick
  2239.      *      opcodes were removed from the second version of the Java Virtual Machine Specification.</a>
  2240.      */
  2241.     public static final short PUTFIELD2_QUICK = 209;

  2242.     /**
  2243.      * JVM internal opcode {@value}.
  2244.      *
  2245.      * @see <a href=
  2246.      *      "https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
  2247.      *      Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
  2248.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> Why the _quick
  2249.      *      opcodes were removed from the second version of the Java Virtual Machine Specification.</a>
  2250.      */
  2251.     public static final short GETSTATIC_QUICK = 210;

  2252.     /**
  2253.      * JVM internal opcode {@value}.
  2254.      *
  2255.      * @see <a href=
  2256.      *      "https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
  2257.      *      Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
  2258.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> Why the _quick
  2259.      *      opcodes were removed from the second version of the Java Virtual Machine Specification.</a>
  2260.      */
  2261.     public static final short PUTSTATIC_QUICK = 211;

  2262.     /**
  2263.      * JVM internal opcode {@value}.
  2264.      *
  2265.      * @see <a href=
  2266.      *      "https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
  2267.      *      Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
  2268.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> Why the _quick
  2269.      *      opcodes were removed from the second version of the Java Virtual Machine Specification.</a>
  2270.      */
  2271.     public static final short GETSTATIC2_QUICK = 212;

  2272.     /**
  2273.      * JVM internal opcode {@value}.
  2274.      *
  2275.      * @see <a href=
  2276.      *      "https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
  2277.      *      Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
  2278.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> Why the _quick
  2279.      *      opcodes were removed from the second version of the Java Virtual Machine Specification.</a>
  2280.      */
  2281.     public static final short PUTSTATIC2_QUICK = 213;

  2282.     /**
  2283.      * JVM internal opcode {@value}.
  2284.      *
  2285.      * @see <a href=
  2286.      *      "https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
  2287.      *      Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
  2288.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> Why the _quick
  2289.      *      opcodes were removed from the second version of the Java Virtual Machine Specification.</a>
  2290.      */
  2291.     public static final short INVOKEVIRTUAL_QUICK = 214;

  2292.     /**
  2293.      * JVM internal opcode {@value}.
  2294.      *
  2295.      * @see <a href=
  2296.      *      "https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
  2297.      *      Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
  2298.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> Why the _quick
  2299.      *      opcodes were removed from the second version of the Java Virtual Machine Specification.</a>
  2300.      */
  2301.     public static final short INVOKENONVIRTUAL_QUICK = 215;

  2302.     /**
  2303.      * JVM internal opcode {@value}.
  2304.      *
  2305.      * @see <a href=
  2306.      *      "https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
  2307.      *      Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
  2308.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> Why the _quick
  2309.      *      opcodes were removed from the second version of the Java Virtual Machine Specification.</a>
  2310.      */
  2311.     public static final short INVOKESUPER_QUICK = 216;

  2312.     /**
  2313.      * JVM internal opcode {@value}.
  2314.      *
  2315.      * @see <a href=
  2316.      *      "https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
  2317.      *      Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
  2318.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> Why the _quick
  2319.      *      opcodes were removed from the second version of the Java Virtual Machine Specification.</a>
  2320.      */
  2321.     public static final short INVOKESTATIC_QUICK = 217;

  2322.     /**
  2323.      * JVM internal opcode {@value}.
  2324.      *
  2325.      * @see <a href=
  2326.      *      "https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
  2327.      *      Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
  2328.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> Why the _quick
  2329.      *      opcodes were removed from the second version of the Java Virtual Machine Specification.</a>
  2330.      */
  2331.     public static final short INVOKEINTERFACE_QUICK = 218;

  2332.     /**
  2333.      * JVM internal opcode {@value}.
  2334.      *
  2335.      * @see <a href=
  2336.      *      "https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
  2337.      *      Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
  2338.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> Why the _quick
  2339.      *      opcodes were removed from the second version of the Java Virtual Machine Specification.</a>
  2340.      */
  2341.     public static final short INVOKEVIRTUALOBJECT_QUICK = 219;

  2342.     /**
  2343.      * JVM internal opcode {@value}.
  2344.      *
  2345.      * @see <a href=
  2346.      *      "https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
  2347.      *      Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
  2348.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> Why the _quick
  2349.      *      opcodes were removed from the second version of the Java Virtual Machine Specification.</a>
  2350.      */
  2351.     public static final short NEW_QUICK = 221;

  2352.     /**
  2353.      * JVM internal opcode {@value}.
  2354.      *
  2355.      * @see <a href=
  2356.      *      "https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
  2357.      *      Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
  2358.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> Why the _quick
  2359.      *      opcodes were removed from the second version of the Java Virtual Machine Specification.</a>
  2360.      */
  2361.     public static final short ANEWARRAY_QUICK = 222;

  2362.     /**
  2363.      * JVM internal opcode {@value}.
  2364.      *
  2365.      * @see <a href=
  2366.      *      "https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
  2367.      *      Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
  2368.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> Why the _quick
  2369.      *      opcodes were removed from the second version of the Java Virtual Machine Specification.</a>
  2370.      */
  2371.     public static final short MULTIANEWARRAY_QUICK = 223;

  2372.     /**
  2373.      * JVM internal opcode {@value}.
  2374.      *
  2375.      * @see <a href=
  2376.      *      "https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
  2377.      *      Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
  2378.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> Why the _quick
  2379.      *      opcodes were removed from the second version of the Java Virtual Machine Specification.</a>
  2380.      */
  2381.     public static final short CHECKCAST_QUICK = 224;

  2382.     /**
  2383.      * JVM internal opcode {@value}.
  2384.      *
  2385.      * @see <a href=
  2386.      *      "https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
  2387.      *      Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
  2388.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> Why the _quick
  2389.      *      opcodes were removed from the second version of the Java Virtual Machine Specification.</a>
  2390.      */
  2391.     public static final short INSTANCEOF_QUICK = 225;

  2392.     /**
  2393.      * JVM internal opcode {@value}.
  2394.      *
  2395.      * @see <a href=
  2396.      *      "https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
  2397.      *      Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
  2398.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> Why the _quick
  2399.      *      opcodes were removed from the second version of the Java Virtual Machine Specification.</a>
  2400.      */
  2401.     public static final short INVOKEVIRTUAL_QUICK_W = 226;

  2402.     /**
  2403.      * JVM internal opcode {@value}.
  2404.      *
  2405.      * @see <a href=
  2406.      *      "https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
  2407.      *      Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
  2408.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> Why the _quick
  2409.      *      opcodes were removed from the second version of the Java Virtual Machine Specification.</a>
  2410.      */
  2411.     public static final short GETFIELD_QUICK_W = 227;

  2412.     /**
  2413.      * JVM internal opcode {@value}.
  2414.      *
  2415.      * @see <a href=
  2416.      *      "https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
  2417.      *      Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
  2418.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> Why the _quick
  2419.      *      opcodes were removed from the second version of the Java Virtual Machine Specification.</a>
  2420.      */
  2421.     public static final short PUTFIELD_QUICK_W = 228;

  2422.     /**
  2423.      * JVM internal opcode {@value}.
  2424.      *
  2425.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.2"> Reserved opcodes in the Java
  2426.      *      Virtual Machine Specification</a>
  2427.      */
  2428.     public static final short IMPDEP1 = 254;

  2429.     /**
  2430.      * JVM internal opcode {@value}.
  2431.      *
  2432.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.2"> Reserved opcodes in the Java
  2433.      *      Virtual Machine Specification</a>
  2434.      */
  2435.     public static final short IMPDEP2 = 255;

  2436.     /**
  2437.      * BCEL virtual instruction for pushing an arbitrary data type onto the stack: {@value}. Will be converted to the appropriate JVM
  2438.      * opcode when the class is dumped.
  2439.      */
  2440.     public static final short PUSH = 4711;

  2441.     /**
  2442.      * BCEL virtual instruction for either LOOKUPSWITCH or TABLESWITCH: {@value}. Will be converted to the appropriate JVM opcode when
  2443.      * the class is dumped.
  2444.      */
  2445.     public static final short SWITCH = 4712;

  2446.     /**
  2447.      * Illegal opcode: {@value}.
  2448.      */
  2449.     public static final short UNDEFINED = -1;

  2450.     /**
  2451.      * Illegal opcode: {@value}.
  2452.      */
  2453.     public static final short UNPREDICTABLE = -2;

  2454.     /**
  2455.      * Illegal opcode: {@value}.
  2456.      */
  2457.     public static final short RESERVED = -3;

  2458.     /**
  2459.      * Mnemonic for an illegal opcode: {@value}.
  2460.      */
  2461.     public static final String ILLEGAL_OPCODE = "<illegal opcode>";

  2462.     /**
  2463.      * Mnemonic for an illegal type: {@value}.
  2464.      */
  2465.     public static final String ILLEGAL_TYPE = "<illegal type>";

  2466.     /**
  2467.      * Boolean data type: {@value}.
  2468.      *
  2469.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.9.1-120-P"> Static Constraints in
  2470.      *      the Java Virtual Machine Specification</a>
  2471.      */
  2472.     public static final byte T_BOOLEAN = 4;

  2473.     /**
  2474.      * Char data type: {@value}.
  2475.      *
  2476.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.9.1-120-P"> Static Constraints in
  2477.      *      the Java Virtual Machine Specification</a>
  2478.      */
  2479.     public static final byte T_CHAR = 5;

  2480.     /**
  2481.      * Float data type: {@value}.
  2482.      *
  2483.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.9.1-120-P"> Static Constraints in
  2484.      *      the Java Virtual Machine Specification</a>
  2485.      */
  2486.     public static final byte T_FLOAT = 6;

  2487.     /**
  2488.      * Double data type: {@value}.
  2489.      *
  2490.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.9.1-120-P"> Static Constraints in
  2491.      *      the Java Virtual Machine Specification</a>
  2492.      */
  2493.     public static final byte T_DOUBLE = 7;

  2494.     /**
  2495.      * Byte data type: {@value}.
  2496.      *
  2497.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.9.1-120-P"> Static Constraints in
  2498.      *      the Java Virtual Machine Specification</a>
  2499.      */
  2500.     public static final byte T_BYTE = 8;

  2501.     /**
  2502.      * Short data type: {@value}.
  2503.      *
  2504.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.9.1-120-P"> Static Constraints in
  2505.      *      the Java Virtual Machine Specification</a>
  2506.      */
  2507.     public static final byte T_SHORT = 9;

  2508.     /**
  2509.      * Int data type: {@value}.
  2510.      *
  2511.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.9.1-120-P"> Static Constraints in
  2512.      *      the Java Virtual Machine Specification</a>
  2513.      */
  2514.     public static final byte T_INT = 10;

  2515.     /**
  2516.      * Long data type: {@value}.
  2517.      *
  2518.      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.9.1-120-P"> Static Constraints in
  2519.      *      the Java Virtual Machine Specification</a>
  2520.      */
  2521.     public static final byte T_LONG = 11;

  2522.     /** Void data type (non-standard). */
  2523.     public static final byte T_VOID = 12; // Non-standard

  2524.     /** Array data type. */
  2525.     public static final byte T_ARRAY = 13;

  2526.     /** Object data type. */
  2527.     public static final byte T_OBJECT = 14;

  2528.     /** Reference data type (deprecated). */
  2529.     public static final byte T_REFERENCE = 14; // Deprecated

  2530.     /** Unknown data type. */
  2531.     public static final byte T_UNKNOWN = 15;

  2532.     /** Address data type. */
  2533.     public static final byte T_ADDRESS = 16;

  2534.     /**
  2535.      * The primitive type names corresponding to the T_XX constants, e.g., TYPE_NAMES[T_INT] = "int"
  2536.      */
  2537.     private static final String[] TYPE_NAMES = {ILLEGAL_TYPE, ILLEGAL_TYPE, ILLEGAL_TYPE, ILLEGAL_TYPE, "boolean", "char", "float", "double", "byte", "short",
  2538.         "int", "long", "void", "array", "object", "unknown", "address"};

  2539.     /**
  2540.      * The primitive class names corresponding to the T_XX constants, e.g., CLASS_TYPE_NAMES[T_INT] = "java.lang.Integer"
  2541.      */
  2542.     private static final String[] CLASS_TYPE_NAMES = {ILLEGAL_TYPE, ILLEGAL_TYPE, ILLEGAL_TYPE, ILLEGAL_TYPE, "java.lang.Boolean", "java.lang.Character",
  2543.         "java.lang.Float", "java.lang.Double", "java.lang.Byte", "java.lang.Short", "java.lang.Integer", "java.lang.Long", "java.lang.Void", ILLEGAL_TYPE,
  2544.         ILLEGAL_TYPE, ILLEGAL_TYPE, ILLEGAL_TYPE};

  2545.     /**
  2546.      * The signature characters corresponding to primitive types, e.g., SHORT_TYPE_NAMES[T_INT] = "I"
  2547.      */
  2548.     public static final String[] SHORT_TYPE_NAMES = {ILLEGAL_TYPE, ILLEGAL_TYPE, ILLEGAL_TYPE, ILLEGAL_TYPE, "Z", "C", "F", "D", "B", "S", "I", "J", "V",
  2549.         ILLEGAL_TYPE, ILLEGAL_TYPE, ILLEGAL_TYPE};

  2550.     /**
  2551.      * Number of byte code operands for each opcode, i.e., number of bytes after the tag byte itself. Indexed by opcode, so
  2552.      * NO_OF_OPERANDS[BIPUSH] = the number of operands for a bipush instruction.
  2553.      */
  2554.     static final short[] NO_OF_OPERANDS = {0/* nop */, 0/* aconst_null */, 0/* iconst_m1 */, 0/* iconst_0 */, 0/* iconst_1 */, 0/* iconst_2 */,
  2555.         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 */,
  2556.         0/* dconst_1 */, 1/* bipush */, 2/* sipush */, 1/* ldc */, 2/* ldc_w */, 2/* ldc2_w */, 1/* iload */, 1/* lload */, 1/* fload */, 1/* dload */,
  2557.         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 */,
  2558.         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 */,
  2559.         0/* aload_1 */, 0/* aload_2 */, 0/* aload_3 */, 0/* iaload */, 0/* laload */, 0/* faload */, 0/* daload */, 0/* aaload */, 0/* baload */, 0/* caload */,
  2560.         0/* saload */, 1/* istore */, 1/* lstore */, 1/* fstore */, 1/* dstore */, 1/* astore */, 0/* istore_0 */, 0/* istore_1 */, 0/* istore_2 */,
  2561.         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 */,
  2562.         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 */,
  2563.         0/* lastore */, 0/* fastore */, 0/* dastore */, 0/* aastore */, 0/* bastore */, 0/* castore */, 0/* sastore */, 0/* pop */, 0/* pop2 */, 0/* dup */,
  2564.         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 */,
  2565.         0/* lsub */, 0/* fsub */, 0/* dsub */, 0/* imul */, 0/* lmul */, 0/* fmul */, 0/* dmul */, 0/* idiv */, 0/* ldiv */, 0/* fdiv */, 0/* ddiv */,
  2566.         0/* irem */, 0/* lrem */, 0/* frem */, 0/* drem */, 0/* ineg */, 0/* lneg */, 0/* fneg */, 0/* dneg */, 0/* ishl */, 0/* lshl */, 0/* ishr */,
  2567.         0/* lshr */, 0/* iushr */, 0/* lushr */, 0/* iand */, 0/* land */, 0/* ior */, 0/* lor */, 0/* ixor */, 0/* lxor */, 2/* iinc */, 0/* i2l */,
  2568.         0/* i2f */, 0/* i2d */, 0/* l2i */, 0/* l2f */, 0/* l2d */, 0/* f2i */, 0/* f2l */, 0/* f2d */, 0/* d2i */, 0/* d2l */, 0/* d2f */, 0/* i2b */,
  2569.         0/* i2c */, 0/* i2s */, 0/* lcmp */, 0/* fcmpl */, 0/* fcmpg */, 0/* dcmpl */, 0/* dcmpg */, 2/* ifeq */, 2/* ifne */, 2/* iflt */, 2/* ifge */,
  2570.         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 */,
  2571.         2/* if_acmpne */, 2/* goto */, 2/* jsr */, 1/* ret */, UNPREDICTABLE/* tableswitch */, UNPREDICTABLE/* lookupswitch */, 0/* ireturn */, 0/* lreturn */,
  2572.         0/* freturn */, 0/* dreturn */, 0/* areturn */, 0/* return */, 2/* getstatic */, 2/* putstatic */, 2/* getfield */, 2/* putfield */,
  2573.         2/* invokevirtual */, 2/* invokespecial */, 2/* invokestatic */, 4/* invokeinterface */, 4/* invokedynamic */, 2/* new */, 1/* newarray */,
  2574.         2/* anewarray */, 0/* arraylength */, 0/* athrow */, 2/* checkcast */, 2/* instanceof */, 0/* monitorenter */, 0/* monitorexit */,
  2575.         UNPREDICTABLE/* wide */, 3/* multianewarray */, 2/* ifnull */, 2/* ifnonnull */, 4/* goto_w */, 4/* jsr_w */, 0/* breakpoint */, UNDEFINED, UNDEFINED,
  2576.         UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
  2577.         UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
  2578.         UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
  2579.         UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, RESERVED/* impdep1 */,
  2580.         RESERVED/* impdep2 */
  2581.     };

  2582.     /**
  2583.      * How the byte code operands are to be interpreted for each opcode. Indexed by opcode. TYPE_OF_OPERANDS[ILOAD] = an
  2584.      * array of shorts describing the data types for the instruction.
  2585.      */
  2586.     static final short[][] TYPE_OF_OPERANDS = {{}/* nop */, {}/* aconst_null */, {}/* iconst_m1 */, {}/* iconst_0 */, {}/* iconst_1 */,
  2587.         {}/* iconst_2 */, {}/* iconst_3 */, {}/* iconst_4 */, {}/* iconst_5 */, {}/* lconst_0 */, {}/* lconst_1 */, {}/* fconst_0 */, {}/* fconst_1 */,
  2588.         {}/* fconst_2 */, {}/* dconst_0 */, {}/* dconst_1 */, {T_BYTE}/* bipush */, {T_SHORT}/* sipush */, {T_BYTE}/* ldc */, {T_SHORT}/* ldc_w */,
  2589.         {T_SHORT}/* ldc2_w */, {T_BYTE}/* iload */, {T_BYTE}/* lload */, {T_BYTE}/* fload */, {T_BYTE}/* dload */, {T_BYTE}/* aload */, {}/* iload_0 */,
  2590.         {}/* iload_1 */, {}/* iload_2 */, {}/* iload_3 */, {}/* lload_0 */, {}/* lload_1 */, {}/* lload_2 */, {}/* lload_3 */, {}/* fload_0 */, {}/* fload_1 */,
  2591.         {}/* fload_2 */, {}/* fload_3 */, {}/* dload_0 */, {}/* dload_1 */, {}/* dload_2 */, {}/* dload_3 */, {}/* aload_0 */, {}/* aload_1 */, {}/* aload_2 */,
  2592.         {}/* aload_3 */, {}/* iaload */, {}/* laload */, {}/* faload */, {}/* daload */, {}/* aaload */, {}/* baload */, {}/* caload */, {}/* saload */,
  2593.         {T_BYTE}/* istore */, {T_BYTE}/* lstore */, {T_BYTE}/* fstore */, {T_BYTE}/* dstore */, {T_BYTE}/* astore */, {}/* istore_0 */, {}/* istore_1 */,
  2594.         {}/* istore_2 */, {}/* istore_3 */, {}/* lstore_0 */, {}/* lstore_1 */, {}/* lstore_2 */, {}/* lstore_3 */, {}/* fstore_0 */, {}/* fstore_1 */,
  2595.         {}/* fstore_2 */, {}/* fstore_3 */, {}/* dstore_0 */, {}/* dstore_1 */, {}/* dstore_2 */, {}/* dstore_3 */, {}/* astore_0 */, {}/* astore_1 */,
  2596.         {}/* astore_2 */, {}/* astore_3 */, {}/* iastore */, {}/* lastore */, {}/* fastore */, {}/* dastore */, {}/* aastore */, {}/* bastore */,
  2597.         {}/* castore */, {}/* sastore */, {}/* pop */, {}/* pop2 */, {}/* dup */, {}/* dup_x1 */, {}/* dup_x2 */, {}/* dup2 */, {}/* dup2_x1 */,
  2598.         {}/* dup2_x2 */, {}/* swap */, {}/* iadd */, {}/* ladd */, {}/* fadd */, {}/* dadd */, {}/* isub */, {}/* lsub */, {}/* fsub */, {}/* dsub */,
  2599.         {}/* imul */, {}/* lmul */, {}/* fmul */, {}/* dmul */, {}/* idiv */, {}/* ldiv */, {}/* fdiv */, {}/* ddiv */, {}/* irem */, {}/* lrem */,
  2600.         {}/* frem */, {}/* drem */, {}/* ineg */, {}/* lneg */, {}/* fneg */, {}/* dneg */, {}/* ishl */, {}/* lshl */, {}/* ishr */, {}/* lshr */,
  2601.         {}/* iushr */, {}/* lushr */, {}/* iand */, {}/* land */, {}/* ior */, {}/* lor */, {}/* ixor */, {}/* lxor */, {T_BYTE, T_BYTE}/* iinc */, {}/* i2l */,
  2602.         {}/* i2f */, {}/* i2d */, {}/* l2i */, {}/* l2f */, {}/* l2d */, {}/* f2i */, {}/* f2l */, {}/* f2d */, {}/* d2i */, {}/* d2l */, {}/* d2f */,
  2603.         {}/* i2b */, {}/* i2c */, {}/* i2s */, {}/* lcmp */, {}/* fcmpl */, {}/* fcmpg */, {}/* dcmpl */, {}/* dcmpg */, {T_SHORT}/* ifeq */,
  2604.         {T_SHORT}/* ifne */, {T_SHORT}/* iflt */, {T_SHORT}/* ifge */, {T_SHORT}/* ifgt */, {T_SHORT}/* ifle */, {T_SHORT}/* if_icmpeq */,
  2605.         {T_SHORT}/* if_icmpne */, {T_SHORT}/* if_icmplt */, {T_SHORT}/* if_icmpge */, {T_SHORT}/* if_icmpgt */, {T_SHORT}/* if_icmple */,
  2606.         {T_SHORT}/* if_acmpeq */, {T_SHORT}/* if_acmpne */, {T_SHORT}/* goto */, {T_SHORT}/* jsr */, {T_BYTE}/* ret */, {}/* tableswitch */,
  2607.         {}/* lookupswitch */, {}/* ireturn */, {}/* lreturn */, {}/* freturn */, {}/* dreturn */, {}/* areturn */, {}/* return */, {T_SHORT}/* getstatic */,
  2608.         {T_SHORT}/* putstatic */, {T_SHORT}/* getfield */, {T_SHORT}/* putfield */, {T_SHORT}/* invokevirtual */, {T_SHORT}/* invokespecial */,
  2609.         {T_SHORT}/* invokestatic */, {T_SHORT, T_BYTE, T_BYTE}/* invokeinterface */, {T_SHORT, T_BYTE, T_BYTE}/* invokedynamic */, {T_SHORT}/* new */,
  2610.         {T_BYTE}/* newarray */, {T_SHORT}/* anewarray */, {}/* arraylength */, {}/* athrow */, {T_SHORT}/* checkcast */, {T_SHORT}/* instanceof */,
  2611.         {}/* monitorenter */, {}/* monitorexit */, {T_BYTE}/* wide */, {T_SHORT, T_BYTE}/* multianewarray */, {T_SHORT}/* ifnull */, {T_SHORT}/* ifnonnull */,
  2612.         {T_INT}/* goto_w */, {T_INT}/* jsr_w */, {}/* breakpoint */, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {},
  2613.         {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}/* impdep1 */, {}/* impdep2 */
  2614.     };

  2615.     /**
  2616.      * Names of opcodes. Indexed by opcode. OPCODE_NAMES[ALOAD] = "aload".
  2617.      */
  2618.     static final String[] OPCODE_NAMES = {"nop", "aconst_null", "iconst_m1", "iconst_0", "iconst_1", "iconst_2", "iconst_3", "iconst_4", "iconst_5",
  2619.         "lconst_0", "lconst_1", "fconst_0", "fconst_1", "fconst_2", "dconst_0", "dconst_1", "bipush", "sipush", "ldc", "ldc_w", "ldc2_w", "iload", "lload",
  2620.         "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",
  2621.         "fload_3", "dload_0", "dload_1", "dload_2", "dload_3", "aload_0", "aload_1", "aload_2", "aload_3", "iaload", "laload", "faload", "daload", "aaload",
  2622.         "baload", "caload", "saload", "istore", "lstore", "fstore", "dstore", "astore", "istore_0", "istore_1", "istore_2", "istore_3", "lstore_0", "lstore_1",
  2623.         "lstore_2", "lstore_3", "fstore_0", "fstore_1", "fstore_2", "fstore_3", "dstore_0", "dstore_1", "dstore_2", "dstore_3", "astore_0", "astore_1",
  2624.         "astore_2", "astore_3", "iastore", "lastore", "fastore", "dastore", "aastore", "bastore", "castore", "sastore", "pop", "pop2", "dup", "dup_x1",
  2625.         "dup_x2", "dup2", "dup2_x1", "dup2_x2", "swap", "iadd", "ladd", "fadd", "dadd", "isub", "lsub", "fsub", "dsub", "imul", "lmul", "fmul", "dmul", "idiv",
  2626.         "ldiv", "fdiv", "ddiv", "irem", "lrem", "frem", "drem", "ineg", "lneg", "fneg", "dneg", "ishl", "lshl", "ishr", "lshr", "iushr", "lushr", "iand",
  2627.         "land", "ior", "lor", "ixor", "lxor", "iinc", "i2l", "i2f", "i2d", "l2i", "l2f", "l2d", "f2i", "f2l", "f2d", "d2i", "d2l", "d2f", "i2b", "i2c", "i2s",
  2628.         "lcmp", "fcmpl", "fcmpg", "dcmpl", "dcmpg", "ifeq", "ifne", "iflt", "ifge", "ifgt", "ifle", "if_icmpeq", "if_icmpne", "if_icmplt", "if_icmpge",
  2629.         "if_icmpgt", "if_icmple", "if_acmpeq", "if_acmpne", "goto", "jsr", "ret", "tableswitch", "lookupswitch", "ireturn", "lreturn", "freturn", "dreturn",
  2630.         "areturn", "return", "getstatic", "putstatic", "getfield", "putfield", "invokevirtual", "invokespecial", "invokestatic", "invokeinterface",
  2631.         "invokedynamic", "new", "newarray", "anewarray", "arraylength", "athrow", "checkcast", "instanceof", "monitorenter", "monitorexit", "wide",
  2632.         "multianewarray", "ifnull", "ifnonnull", "goto_w", "jsr_w", "breakpoint", ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE,
  2633.         ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE,
  2634.         ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE,
  2635.         ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE,
  2636.         ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE,
  2637.         ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE,
  2638.         ILLEGAL_OPCODE, ILLEGAL_OPCODE, "impdep1", "impdep2"};

  2639.     /**
  2640.      * @since 6.0
  2641.      */
  2642.     public static final int OPCODE_NAMES_LENGTH = OPCODE_NAMES.length;

  2643.     /**
  2644.      * Number of words consumed on operand stack by instructions. Indexed by opcode. CONSUME_STACK[FALOAD] = number of words
  2645.      * consumed from the stack by a faload instruction.
  2646.      */
  2647.     static final int[] CONSUME_STACK = {0/* nop */, 0/* aconst_null */, 0/* iconst_m1 */, 0/* iconst_0 */, 0/* iconst_1 */, 0/* iconst_2 */,
  2648.         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 */,
  2649.         0/* dconst_1 */, 0/* bipush */, 0/* sipush */, 0/* ldc */, 0/* ldc_w */, 0/* ldc2_w */, 0/* iload */, 0/* lload */, 0/* fload */, 0/* dload */,
  2650.         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 */,
  2651.         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 */,
  2652.         0/* aload_1 */, 0/* aload_2 */, 0/* aload_3 */, 2/* iaload */, 2/* laload */, 2/* faload */, 2/* daload */, 2/* aaload */, 2/* baload */, 2/* caload */,
  2653.         2/* saload */, 1/* istore */, 2/* lstore */, 1/* fstore */, 2/* dstore */, 1/* astore */, 1/* istore_0 */, 1/* istore_1 */, 1/* istore_2 */,
  2654.         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 */,
  2655.         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 */,
  2656.         4/* lastore */, 3/* fastore */, 4/* dastore */, 3/* aastore */, 3/* bastore */, 3/* castore */, 3/* sastore */, 1/* pop */, 2/* pop2 */, 1/* dup */,
  2657.         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 */,
  2658.         4/* lsub */, 2/* fsub */, 4/* dsub */, 2/* imul */, 4/* lmul */, 2/* fmul */, 4/* dmul */, 2/* idiv */, 4/* ldiv */, 2/* fdiv */, 4/* ddiv */,
  2659.         2/* irem */, 4/* lrem */, 2/* frem */, 4/* drem */, 1/* ineg */, 2/* lneg */, 1/* fneg */, 2/* dneg */, 2/* ishl */, 3/* lshl */, 2/* ishr */,
  2660.         3/* lshr */, 2/* iushr */, 3/* lushr */, 2/* iand */, 4/* land */, 2/* ior */, 4/* lor */, 2/* ixor */, 4/* lxor */, 0/* iinc */, 1/* i2l */,
  2661.         1/* i2f */, 1/* i2d */, 2/* l2i */, 2/* l2f */, 2/* l2d */, 1/* f2i */, 1/* f2l */, 1/* f2d */, 2/* d2i */, 2/* d2l */, 2/* d2f */, 1/* i2b */,
  2662.         1/* i2c */, 1/* i2s */, 4/* lcmp */, 2/* fcmpl */, 2/* fcmpg */, 4/* dcmpl */, 4/* dcmpg */, 1/* ifeq */, 1/* ifne */, 1/* iflt */, 1/* ifge */,
  2663.         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 */,
  2664.         2/* if_acmpne */, 0/* goto */, 0/* jsr */, 0/* ret */, 1/* tableswitch */, 1/* lookupswitch */, 1/* ireturn */, 2/* lreturn */, 1/* freturn */,
  2665.         2/* dreturn */, 1/* areturn */, 0/* return */, 0/* getstatic */, UNPREDICTABLE/* putstatic */, 1/* getfield */, UNPREDICTABLE/* putfield */,
  2666.         UNPREDICTABLE/* invokevirtual */, UNPREDICTABLE/* invokespecial */, UNPREDICTABLE/* invokestatic */, UNPREDICTABLE/* invokeinterface */,
  2667.         UNPREDICTABLE/* invokedynamic */, 0/* new */, 1/* newarray */, 1/* anewarray */, 1/* arraylength */, 1/* athrow */, 1/* checkcast */, 1/* instanceof */,
  2668.         1/* monitorenter */, 1/* monitorexit */, 0/* wide */, UNPREDICTABLE/* multianewarray */, 1/* ifnull */, 1/* ifnonnull */, 0/* goto_w */, 0/* jsr_w */,
  2669.         0/* breakpoint */, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
  2670.         UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
  2671.         UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
  2672.         UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
  2673.         UNPREDICTABLE/* impdep1 */, UNPREDICTABLE/* impdep2 */
  2674.     };

  2675.     /**
  2676.      * Number of words produced onto operand stack by instructions. Indexed by opcode. CONSUME_STACK[DALOAD] = number of
  2677.      * words consumed from the stack by a daload instruction.
  2678.      */
  2679.     static final int[] PRODUCE_STACK = {0/* nop */, 1/* aconst_null */, 1/* iconst_m1 */, 1/* iconst_0 */, 1/* iconst_1 */, 1/* iconst_2 */,
  2680.         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 */,
  2681.         2/* dconst_1 */, 1/* bipush */, 1/* sipush */, 1/* ldc */, 1/* ldc_w */, 2/* ldc2_w */, 1/* iload */, 2/* lload */, 1/* fload */, 2/* dload */,
  2682.         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 */,
  2683.         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 */,
  2684.         1/* aload_1 */, 1/* aload_2 */, 1/* aload_3 */, 1/* iaload */, 2/* laload */, 1/* faload */, 2/* daload */, 1/* aaload */, 1/* baload */, 1/* caload */,
  2685.         1/* saload */, 0/* istore */, 0/* lstore */, 0/* fstore */, 0/* dstore */, 0/* astore */, 0/* istore_0 */, 0/* istore_1 */, 0/* istore_2 */,
  2686.         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 */,
  2687.         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 */,
  2688.         0/* lastore */, 0/* fastore */, 0/* dastore */, 0/* aastore */, 0/* bastore */, 0/* castore */, 0/* sastore */, 0/* pop */, 0/* pop2 */, 2/* dup */,
  2689.         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 */,
  2690.         2/* lsub */, 1/* fsub */, 2/* dsub */, 1/* imul */, 2/* lmul */, 1/* fmul */, 2/* dmul */, 1/* idiv */, 2/* ldiv */, 1/* fdiv */, 2/* ddiv */,
  2691.         1/* irem */, 2/* lrem */, 1/* frem */, 2/* drem */, 1/* ineg */, 2/* lneg */, 1/* fneg */, 2/* dneg */, 1/* ishl */, 2/* lshl */, 1/* ishr */,
  2692.         2/* lshr */, 1/* iushr */, 2/* lushr */, 1/* iand */, 2/* land */, 1/* ior */, 2/* lor */, 1/* ixor */, 2/* lxor */, 0/* iinc */, 2/* i2l */,
  2693.         1/* i2f */, 2/* i2d */, 1/* l2i */, 1/* l2f */, 2/* l2d */, 1/* f2i */, 2/* f2l */, 2/* f2d */, 1/* d2i */, 2/* d2l */, 1/* d2f */, 1/* i2b */,
  2694.         1/* i2c */, 1/* i2s */, 1/* lcmp */, 1/* fcmpl */, 1/* fcmpg */, 1/* dcmpl */, 1/* dcmpg */, 0/* ifeq */, 0/* ifne */, 0/* iflt */, 0/* ifge */,
  2695.         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 */,
  2696.         0/* if_acmpne */, 0/* goto */, 1/* jsr */, 0/* ret */, 0/* tableswitch */, 0/* lookupswitch */, 0/* ireturn */, 0/* lreturn */, 0/* freturn */,
  2697.         0/* dreturn */, 0/* areturn */, 0/* return */, UNPREDICTABLE/* getstatic */, 0/* putstatic */, UNPREDICTABLE/* getfield */, 0/* putfield */,
  2698.         UNPREDICTABLE/* invokevirtual */, UNPREDICTABLE/* invokespecial */, UNPREDICTABLE/* invokestatic */, UNPREDICTABLE/* invokeinterface */,
  2699.         UNPREDICTABLE/* invokedynamic */, 1/* new */, 1/* newarray */, 1/* anewarray */, 1/* arraylength */, 1/* athrow */, 1/* checkcast */, 1/* instanceof */,
  2700.         0/* monitorenter */, 0/* monitorexit */, 0/* wide */, 1/* multianewarray */, 0/* ifnull */, 0/* ifnonnull */, 0/* goto_w */, 1/* jsr_w */,
  2701.         0/* breakpoint */, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
  2702.         UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
  2703.         UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
  2704.         UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
  2705.         UNPREDICTABLE/* impdep1 */, UNPREDICTABLE/* impdep2 */
  2706.     };

  2707.     /**
  2708.      * Attributes and their corresponding names.
  2709.      */
  2710.     public static final byte ATTR_UNKNOWN = -1;

  2711.     public static final byte ATTR_SOURCE_FILE = 0;

  2712.     public static final byte ATTR_CONSTANT_VALUE = 1;

  2713.     public static final byte ATTR_CODE = 2;

  2714.     public static final byte ATTR_EXCEPTIONS = 3;

  2715.     public static final byte ATTR_LINE_NUMBER_TABLE = 4;

  2716.     public static final byte ATTR_LOCAL_VARIABLE_TABLE = 5;

  2717.     public static final byte ATTR_INNER_CLASSES = 6;

  2718.     public static final byte ATTR_SYNTHETIC = 7;

  2719.     public static final byte ATTR_DEPRECATED = 8;

  2720.     public static final byte ATTR_PMG = 9;

  2721.     public static final byte ATTR_SIGNATURE = 10;

  2722.     public static final byte ATTR_STACK_MAP = 11;
  2723.     public static final byte ATTR_RUNTIME_VISIBLE_ANNOTATIONS = 12;
  2724.     public static final byte ATTR_RUNTIME_INVISIBLE_ANNOTATIONS = 13;
  2725.     public static final byte ATTR_RUNTIME_VISIBLE_PARAMETER_ANNOTATIONS = 14;
  2726.     public static final byte ATTR_RUNTIME_INVISIBLE_PARAMETER_ANNOTATIONS = 15;
  2727.     public static final byte ATTR_ANNOTATION_DEFAULT = 16;
  2728.     public static final byte ATTR_LOCAL_VARIABLE_TYPE_TABLE = 17;
  2729.     public static final byte ATTR_ENCLOSING_METHOD = 18;
  2730.     public static final byte ATTR_STACK_MAP_TABLE = 19;
  2731.     public static final byte ATTR_BOOTSTRAP_METHODS = 20;
  2732.     public static final byte ATTR_METHOD_PARAMETERS = 21;
  2733.     public static final byte ATTR_MODULE = 22;
  2734.     public static final byte ATTR_MODULE_PACKAGES = 23;
  2735.     public static final byte ATTR_MODULE_MAIN_CLASS = 24;
  2736.     public static final byte ATTR_NEST_HOST = 25;
  2737.     public static final byte ATTR_NEST_MEMBERS = 26;
  2738.     public static final byte ATTR_RECORD = 27;

  2739.     public static final short KNOWN_ATTRIBUTES = 28; // count of attributes
  2740.     private static final String[] ATTRIBUTE_NAMES = {"SourceFile", "ConstantValue", "Code", "Exceptions", "LineNumberTable", "LocalVariableTable",
  2741.         "InnerClasses", "Synthetic", "Deprecated", "PMGClass", "Signature", "StackMap", "RuntimeVisibleAnnotations", "RuntimeInvisibleAnnotations",
  2742.         "RuntimeVisibleParameterAnnotations", "RuntimeInvisibleParameterAnnotations", "AnnotationDefault", "LocalVariableTypeTable", "EnclosingMethod",
  2743.         "StackMapTable", "BootstrapMethods", "MethodParameters", "Module", "ModulePackages", "ModuleMainClass", "NestHost", "NestMembers", "Record"};
  2744.     /**
  2745.      * Constants used in the StackMap attribute.
  2746.      */
  2747.     public static final byte ITEM_Bogus = 0;
  2748.     public static final byte ITEM_Integer = 1;
  2749.     public static final byte ITEM_Float = 2;
  2750.     public static final byte ITEM_Double = 3;
  2751.     public static final byte ITEM_Long = 4;
  2752.     public static final byte ITEM_Null = 5;
  2753.     public static final byte ITEM_InitObject = 6;
  2754.     public static final byte ITEM_Object = 7;
  2755.     public static final byte ITEM_NewObject = 8;
  2756.     private static final String[] ITEM_NAMES = {"Bogus", "Integer", "Float", "Double", "Long", "Null", "InitObject", "Object", "NewObject"};

  2757.     /**
  2758.      * Constants used to identify StackMapEntry types.
  2759.      *
  2760.      * For those types which can specify a range, the constant names the lowest value.
  2761.      */
  2762.     public static final int SAME_FRAME = 0;

  2763.     public static final int SAME_LOCALS_1_STACK_ITEM_FRAME = 64;

  2764.     public static final int SAME_LOCALS_1_STACK_ITEM_FRAME_EXTENDED = 247;

  2765.     public static final int CHOP_FRAME = 248;
  2766.     public static final int SAME_FRAME_EXTENDED = 251;
  2767.     public static final int APPEND_FRAME = 252;
  2768.     public static final int FULL_FRAME = 255;

  2769.     /**
  2770.      * Constants that define the maximum value of those constants which store ranges.
  2771.      */

  2772.     public static final int SAME_FRAME_MAX = 63;
  2773.     public static final int SAME_LOCALS_1_STACK_ITEM_FRAME_MAX = 127;
  2774.     public static final int CHOP_FRAME_MAX = 250;
  2775.     public static final int APPEND_FRAME_MAX = 254;
  2776.     public static final byte REF_getField = 1;

  2777.     public static final byte REF_getStatic = 2;

  2778.     public static final byte REF_putField = 3;

  2779.     public static final byte REF_putStatic = 4;
  2780.     public static final byte REF_invokeVirtual = 5;
  2781.     public static final byte REF_invokeStatic = 6;
  2782.     public static final byte REF_invokeSpecial = 7;
  2783.     public static final byte REF_newInvokeSpecial = 8;
  2784.     public static final byte REF_invokeInterface = 9;

  2785.     /**
  2786.      * The names of the reference_kinds of a CONSTANT_MethodHandle_info.
  2787.      */
  2788.     private static final String[] METHODHANDLE_NAMES = {"", "getField", "getStatic", "putField", "putStatic", "invokeVirtual", "invokeStatic", "invokeSpecial",
  2789.         "newInvokeSpecial", "invokeInterface"};

  2790.     /**
  2791.      * @param index index into {@code ACCESS_NAMES}.
  2792.      * @return the ACCESS_NAMES entry at the given index
  2793.      * @since 6.0
  2794.      */
  2795.     public static String getAccessName(final int index) {
  2796.         return ACCESS_NAMES[index];
  2797.     }

  2798.     /**
  2799.      *
  2800.      * @param index index into {@code ACCESS_NAMES}.
  2801.      * @return the attribute name
  2802.      * @since 6.0
  2803.      */
  2804.     public static String getAttributeName(final int index) {
  2805.         return ATTRIBUTE_NAMES[index];
  2806.     }

  2807.     /**
  2808.      * The primitive class names corresponding to the T_XX constants, e.g., CLASS_TYPE_NAMES[T_INT] = "java.lang.Integer"
  2809.      *
  2810.      * @param index index into {@code CLASS_TYPE_NAMES}.
  2811.      * @return the class name
  2812.      * @since 6.0
  2813.      */
  2814.     public static String getClassTypeName(final int index) {
  2815.         return CLASS_TYPE_NAMES[index];
  2816.     }

  2817.     /**
  2818.      *
  2819.      * @param index index into {@code CONSTANT_NAMES}.
  2820.      * @return the CONSTANT_NAMES entry at the given index
  2821.      * @since 6.0
  2822.      */
  2823.     public static String getConstantName(final int index) {
  2824.         return CONSTANT_NAMES[index];
  2825.     }

  2826.     // Constants defining the behavior of the Method Handles (JVMS �5.4.3.5)

  2827.     /**
  2828.      *
  2829.      * @param index index into {@code CONSUME_STACK}.
  2830.      * @return Number of words consumed on operand stack
  2831.      * @since 6.0
  2832.      */
  2833.     public static int getConsumeStack(final int index) {
  2834.         return CONSUME_STACK[index];
  2835.     }

  2836.     /**
  2837.      * @since 6.0
  2838.      */
  2839.     public static Iterable<String> getInterfacesImplementedByArrays() {
  2840.         return Collections.unmodifiableList(Arrays.asList(INTERFACES_IMPLEMENTED_BY_ARRAYS));
  2841.     }

  2842.     /**
  2843.      *
  2844.      * @param index index into {@code ITEM_NAMES}.
  2845.      * @return the item name
  2846.      * @since 6.0
  2847.      */
  2848.     public static String getItemName(final int index) {
  2849.         return ITEM_NAMES[index];
  2850.     }

  2851.     /**
  2852.      *
  2853.      * @param index index into {@code METHODHANDLE_NAMES}.
  2854.      * @return the method handle name
  2855.      * @since 6.0
  2856.      */
  2857.     public static String getMethodHandleName(final int index) {
  2858.         return METHODHANDLE_NAMES[index];
  2859.     }

  2860.     /**
  2861.      *
  2862.      * @param index index into {@code NO_OF_OPERANDS}.
  2863.      * @return Number of byte code operands
  2864.      * @since 6.0
  2865.      */
  2866.     public static short getNoOfOperands(final int index) {
  2867.         return NO_OF_OPERANDS[index];
  2868.     }

  2869.     /**
  2870.      * @since 6.0
  2871.      */
  2872.     public static String getOpcodeName(final int index) {
  2873.         return OPCODE_NAMES[index];
  2874.     }

  2875.     /**
  2876.      * @since 6.0
  2877.      */
  2878.     public static short getOperandType(final int opcode, final int index) {
  2879.         return TYPE_OF_OPERANDS[opcode][index];
  2880.     }

  2881.     /**
  2882.      * @since 6.0
  2883.      */
  2884.     public static long getOperandTypeCount(final int opcode) {
  2885.         return TYPE_OF_OPERANDS[opcode].length;
  2886.     }

  2887.     /**
  2888.      *
  2889.      * @param index
  2890.      * @return Number of words produced onto operand stack
  2891.      * @since 6.0
  2892.      */
  2893.     public static int getProduceStack(final int index) {
  2894.         return PRODUCE_STACK[index];
  2895.     }

  2896.     /**
  2897.      *
  2898.      * @param index
  2899.      * @return the short type name
  2900.      * @since 6.0
  2901.      */
  2902.     public static String getShortTypeName(final int index) {
  2903.         return SHORT_TYPE_NAMES[index];
  2904.     }

  2905.     /**
  2906.      * The primitive type names corresponding to the T_XX constants, e.g., TYPE_NAMES[T_INT] = "int"
  2907.      *
  2908.      * @param index
  2909.      * @return the type name
  2910.      * @since 6.0
  2911.      */
  2912.     public static String getTypeName(final int index) {
  2913.         return TYPE_NAMES[index];
  2914.     }

  2915.     private Const() {
  2916.     } // not instantiable

  2917. }