Home | History | Annotate | Download | only in bcel
      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  */
     18 package org.apache.bcel;
     19 
     20 import java.util.Arrays;
     21 import java.util.Collections;
     22 
     23 /**
     24  * Constants for the project, mostly defined in the JVM specification.
     25  *
     26  * @version $Id$
     27  * @since 6.0 (intended to replace the Constants interface)
     28  */
     29 public final class Const {
     30 
     31   /**
     32    * Java class file format Magic number (0xCAFEBABE)
     33    *
     34    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se7/html/jvms-4.html#jvms-4.1-200-A">
     35    * The ClassFile Structure in The Java Virtual Machine Specification</a>
     36    */
     37   public static final int JVM_CLASSFILE_MAGIC = 0xCAFEBABE;
     38 
     39   /** Major version number of class files for Java 1.1.
     40    *  @see #MINOR_1_1
     41    *  */
     42   public static final short MAJOR_1_1 = 45;
     43 
     44   /** Minor version number of class files for Java 1.1.
     45    *  @see #MAJOR_1_1
     46    *  */
     47   public static final short MINOR_1_1 = 3;
     48 
     49   /** Major version number of class files for Java 1.2.
     50    *  @see #MINOR_1_2
     51    *  */
     52   public static final short MAJOR_1_2 = 46;
     53 
     54   /** Minor version number of class files for Java 1.2.
     55    *  @see #MAJOR_1_2
     56    *  */
     57   public static final short MINOR_1_2 = 0;
     58 
     59   /** Major version number of class files for Java 1.2.
     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.
     65    *  @see #MAJOR_1_3
     66    *  */
     67   public static final short MINOR_1_3 = 0;
     68 
     69   /** Major version number of class files for Java 1.3.
     70    *  @see #MINOR_1_3
     71    *  */
     72   public static final short MAJOR_1_4 = 48;
     73 
     74   /** Minor version number of class files for Java 1.4.
     75    *  @see #MAJOR_1_4
     76    *  */
     77   public static final short MINOR_1_4 = 0;
     78 
     79   /** Major version number of class files for Java 1.4.
     80    *  @see #MINOR_1_4
     81    *  */
     82   public static final short MAJOR_1_5 = 49;
     83 
     84   /** Minor version number of class files for Java 1.5.
     85    *  @see #MAJOR_1_5
     86    *  */
     87   public static final short MINOR_1_5 = 0;
     88 
     89   /** Major version number of class files for Java 1.6.
     90    *  @see #MINOR_1_6
     91    *  */
     92   public static final short MAJOR_1_6 = 50;
     93 
     94   /** Minor version number of class files for Java 1.6.
     95    *  @see #MAJOR_1_6
     96    *  */
     97   public static final short MINOR_1_6 = 0;
     98 
     99   /** Major version number of class files for Java 1.7.
    100    *  @see #MINOR_1_7
    101    *  */
    102   public static final short MAJOR_1_7 = 51;
    103 
    104   /** Minor version number of class files for Java 1.7.
    105    *  @see #MAJOR_1_7
    106    *  */
    107   public static final short MINOR_1_7 = 0;
    108 
    109   /** Major version number of class files for Java 1.8.
    110    *  @see #MINOR_1_8
    111    *  */
    112   public static final short MAJOR_1_8 = 52;
    113 
    114   /** Major version number of class files for Java 1.9.
    115    *  @see #MINOR_1_9
    116    *  */
    117   public static final short MAJOR_1_9 = 53;
    118 
    119   /** Minor version number of class files for Java 1.8.
    120    *  @see #MAJOR_1_8
    121    *  */
    122   public static final short MINOR_1_8 = 0;
    123 
    124   /** Minor version number of class files for Java 1.9.
    125    *  @see #MAJOR_1_9
    126    *  */
    127   public static final short MINOR_1_9 = 0;
    128 
    129   /** Default major version number.  Class file is for Java 1.1.
    130    *  @see #MAJOR_1_1
    131    *  */
    132   public static final short MAJOR = MAJOR_1_1;
    133 
    134   /** Default major version number.  Class file is for Java 1.1.
    135    *  @see #MAJOR_1_1
    136    *  */
    137   public static final short MINOR     = MINOR_1_1;
    138 
    139   /** Maximum value for an unsigned short.
    140    */
    141   public static final int MAX_SHORT = 65535; // 2^16 - 1
    142 
    143   /** Maximum value for an unsigned byte.
    144    */
    145   public static final int MAX_BYTE  = 255; // 2^8 - 1
    146 
    147   /** One of the access flags for fields, methods, or classes.
    148    *  @see <a href='http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.5'>
    149    *  Flag definitions for Fields in the Java Virtual Machine Specification (Java SE 8 Edition).</a>
    150    *  @see <a href='http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.6'>
    151    *  Flag definitions for Methods in the Java Virtual Machine Specification (Java SE 8 Edition).</a>
    152    *  @see <a href='http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.7.6-300-D.1-D.1'>
    153    *  Flag definitions for Classes in the Java Virtual Machine Specification (Java SE 8 Edition).</a>
    154    */
    155   public static final short ACC_PUBLIC       = 0x0001;
    156 
    157   /** One of the access flags for fields, methods, or classes.
    158    *  @see #ACC_PUBLIC
    159    */
    160   public static final short ACC_PRIVATE      = 0x0002;
    161 
    162   /** One of the access flags for fields, methods, or classes.
    163    *  @see #ACC_PUBLIC
    164    */
    165   public static final short ACC_PROTECTED    = 0x0004;
    166 
    167   /** One of the access flags for fields, methods, or classes.
    168    *  @see #ACC_PUBLIC
    169    */
    170   public static final short ACC_STATIC       = 0x0008;
    171 
    172   /** One of the access flags for fields, methods, or classes.
    173    *  @see #ACC_PUBLIC
    174    */
    175   public static final short ACC_FINAL        = 0x0010;
    176 
    177   /** One of the access flags for fields, methods, or classes.
    178    *  @see #ACC_PUBLIC
    179    */
    180   public static final short ACC_SYNCHRONIZED = 0x0020;
    181 
    182   /** One of the access flags for fields, methods, or classes.
    183    *  @see #ACC_PUBLIC
    184    */
    185   public static final short ACC_VOLATILE     = 0x0040;
    186 
    187   /** One of the access flags for fields, methods, or classes.
    188    *  @see #ACC_PUBLIC
    189    */
    190   public static final short ACC_BRIDGE       = 0x0040;
    191 
    192   /** One of the access flags for fields, methods, or classes.
    193    *  @see #ACC_PUBLIC
    194    */
    195   public static final short ACC_TRANSIENT    = 0x0080;
    196 
    197   /** One of the access flags for fields, methods, or classes.
    198    *  @see #ACC_PUBLIC
    199    */
    200   public static final short ACC_VARARGS      = 0x0080;
    201 
    202   /** One of the access flags for fields, methods, or classes.
    203    *  @see #ACC_PUBLIC
    204    */
    205   public static final short ACC_NATIVE       = 0x0100;
    206 
    207   /** One of the access flags for fields, methods, or classes.
    208    *  @see #ACC_PUBLIC
    209    */
    210   public static final short ACC_INTERFACE    = 0x0200;
    211 
    212   /** One of the access flags for fields, methods, or classes.
    213    *  @see #ACC_PUBLIC
    214    */
    215   public static final short ACC_ABSTRACT     = 0x0400;
    216 
    217   /** One of the access flags for fields, methods, or classes.
    218    *  @see #ACC_PUBLIC
    219    */
    220   public static final short ACC_STRICT       = 0x0800;
    221 
    222   /** One of the access flags for fields, methods, or classes.
    223    *  @see #ACC_PUBLIC
    224    */
    225   public static final short ACC_SYNTHETIC    = 0x1000;
    226 
    227   /** One of the access flags for fields, methods, or classes.
    228    *  @see #ACC_PUBLIC
    229    */
    230   public static final short ACC_ANNOTATION   = 0x2000;
    231 
    232   /** One of the access flags for fields, methods, or classes.
    233    *  @see #ACC_PUBLIC
    234    */
    235   public static final short ACC_ENUM         = 0x4000;
    236 
    237   /** One of the access flags for fields, methods, or classes.
    238    *  @see #ACC_PUBLIC
    239    */
    240   public static final short ACC_MANDATED     = (short) 0x8000;
    241 
    242   // Applies to classes compiled by new compilers only
    243   /** One of the access flags for fields, methods, or classes.
    244    *  @see #ACC_PUBLIC
    245    */
    246   public static final short ACC_SUPER        = 0x0020;
    247 
    248   /** One of the access flags for fields, methods, or classes.
    249    *  @see #ACC_PUBLIC
    250    */
    251   public static final short MAX_ACC_FLAG     = ACC_ENUM;
    252 
    253   /**
    254    * The names of the access flags.
    255    */
    256   private static final String[] ACCESS_NAMES = {
    257     "public", "private", "protected", "static", "final", "synchronized",
    258     "volatile", "transient", "native", "interface", "abstract", "strictfp",
    259     "synthetic", "annotation", "enum"
    260   };
    261 
    262   /** @since 6.0 */
    263   public static final int ACCESS_NAMES_LENGTH = ACCESS_NAMES.length;
    264 
    265   /**
    266    * @param index
    267    * @return the ACCESS_NAMES entry at the given index
    268    * @since 6.0
    269    */
    270   public static String getAccessName(final int index) {
    271       return ACCESS_NAMES[index];
    272   }
    273 
    274   /*
    275    * The description of the constant pool is at:
    276    * http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4
    277    * References below are to the individual sections
    278    */
    279 
    280   /**
    281    * Marks a constant pool entry as type UTF-8.
    282    * @see  <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.7">
    283    * The Constant Pool in The Java Virtual Machine Specification</a>
    284    */
    285   public static final byte CONSTANT_Utf8               = 1;
    286 
    287   /**
    288    * Marks a constant pool entry as type Integer.
    289    * @see  <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.4">
    290    * The Constant Pool in The Java Virtual Machine Specification</a>
    291    */
    292   public static final byte CONSTANT_Integer            = 3;
    293 
    294   /**
    295    * Marks a constant pool entry as type Float.
    296    * @see  <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.4">
    297    * The Constant Pool in The Java Virtual Machine Specification</a>
    298    */
    299   public static final byte CONSTANT_Float              = 4;
    300 
    301   /**
    302    * Marks a constant pool entry as type Long.
    303    * @see  <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.5">
    304    * The Constant Pool in The Java Virtual Machine Specification</a>
    305    */
    306   public static final byte CONSTANT_Long               = 5;
    307 
    308   /**
    309    * Marks a constant pool entry as type Double.
    310    * @see  <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.5">
    311    * The Constant Pool in The Java Virtual Machine Specification</a>
    312    */
    313   public static final byte CONSTANT_Double             = 6;
    314 
    315   /**
    316    * Marks a constant pool entry as a Class
    317    * @see  <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.1">
    318    * The Constant Pool in The Java Virtual Machine Specification</a>
    319    */
    320   public static final byte CONSTANT_Class              = 7;
    321 
    322   /**
    323    * Marks a constant pool entry as a Field Reference.
    324    * @see  <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.2">
    325    * The Constant Pool in The Java Virtual Machine Specification</a>
    326    */
    327   public static final byte CONSTANT_Fieldref           = 9;
    328 
    329   /**
    330    * Marks a constant pool entry as type String
    331    * @see  <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.3">
    332    * The Constant Pool in The Java Virtual Machine Specification</a>
    333    */
    334   public static final byte CONSTANT_String             = 8;
    335 
    336   /** Marks a constant pool entry as a Method Reference.
    337    * @see  <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.2">
    338    * The Constant Pool in The Java Virtual Machine Specification</a> */
    339   public static final byte CONSTANT_Methodref          = 10;
    340 
    341   /**
    342    * Marks a constant pool entry as an Interface Method Reference.
    343    * @see  <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.2">
    344    * The Constant Pool in The Java Virtual Machine Specification</a>
    345    */
    346   public static final byte CONSTANT_InterfaceMethodref = 11;
    347 
    348   /** Marks a constant pool entry as a name and type.
    349    * @see  <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.6">
    350    * The Constant Pool in The Java Virtual Machine Specification</a> */
    351   public static final byte CONSTANT_NameAndType        = 12;
    352 
    353   /**
    354    * Marks a constant pool entry as a Method Handle.
    355    * @see  <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.8">
    356    * The Constant Pool in The Java Virtual Machine Specification</a>
    357    */
    358   public static final byte CONSTANT_MethodHandle       = 15;
    359 
    360   /**
    361    * Marks a constant pool entry as a Method Type.
    362    * @see  <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.9">
    363    * The Constant Pool in The Java Virtual Machine Specification</a>
    364    */
    365   public static final byte CONSTANT_MethodType         = 16;
    366 
    367   /**
    368    * Marks a constant pool entry as an Invoke Dynamic
    369    * @see  <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.10">
    370    * The Constant Pool in The Java Virtual Machine Specification</a>
    371    */
    372   public static final byte CONSTANT_InvokeDynamic      = 18;
    373 
    374   /**
    375    * Marks a constant pool entry as a Module Reference.
    376    *
    377    * <p>Note: Early access Java 9 support- currently subject to change</p>
    378    *
    379    * @see <a href="http://cr.openjdk.java.net/~mr/jigsaw/spec/lang-vm.html#jigsaw-2.6">
    380    * JPMS: Modules in the Java Language and JVM</a>
    381    * @since 6.1
    382    */
    383   public static final byte CONSTANT_Module             = 19;
    384 
    385   /**
    386    * Marks a constant pool entry as a Package Reference.
    387    *
    388    * <p>Note: Early access Java 9 support- currently subject to change</p>
    389    *
    390    * @see <a href="http://cr.openjdk.java.net/~mr/jigsaw/spec/lang-vm.html#jigsaw-2.6">
    391    * JPMS: Modules in the Java Language and JVM</a>
    392    * @since 6.1
    393    */
    394   public static final byte CONSTANT_Package            = 20;
    395 
    396   /**
    397    * The names of the types of entries in a constant pool.
    398    * Use getConstantName instead
    399    */
    400   private static final String[] CONSTANT_NAMES = {
    401     "", "CONSTANT_Utf8", "", "CONSTANT_Integer",
    402     "CONSTANT_Float", "CONSTANT_Long", "CONSTANT_Double",
    403     "CONSTANT_Class", "CONSTANT_String", "CONSTANT_Fieldref",
    404     "CONSTANT_Methodref", "CONSTANT_InterfaceMethodref",
    405     "CONSTANT_NameAndType", "", "", "CONSTANT_MethodHandle",
    406     "CONSTANT_MethodType", "", "CONSTANT_InvokeDynamic",
    407     "CONSTANT_Module", "CONSTANT_Package"};
    408 
    409   /**
    410    *
    411    * @param index
    412    * @return the CONSTANT_NAMES entry at the given index
    413    * @since 6.0
    414    */
    415   public static String getConstantName(final int index) {
    416       return CONSTANT_NAMES[index];
    417   }
    418 
    419   /** The name of the static initializer, also called &quot;class
    420    *  initialization method&quot; or &quot;interface initialization
    421    *   method&quot;. This is &quot;&lt;clinit&gt;&quot;.
    422    */
    423   public static final String STATIC_INITIALIZER_NAME = "<clinit>";
    424 
    425   /** The name of every constructor method in a class, also called
    426    * &quot;instance initialization method&quot;. This is &quot;&lt;init&gt;&quot;.
    427    */
    428   public static final String CONSTRUCTOR_NAME = "<init>";
    429 
    430   /**
    431    * The names of the interfaces implemented by arrays
    432    */
    433   private static final String[] INTERFACES_IMPLEMENTED_BY_ARRAYS = {"java.lang.Cloneable", "java.io.Serializable"};
    434 
    435   /**
    436    * @since 6.0
    437    */
    438   public static Iterable<String> getInterfacesImplementedByArrays() {
    439       return Collections.unmodifiableList(Arrays.asList(INTERFACES_IMPLEMENTED_BY_ARRAYS));
    440   }
    441 
    442   /**
    443    * Maximum Constant Pool entries.
    444    * One of the limitations of the Java Virtual Machine.
    445    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.11-100-A">
    446    * The Java Virtual Machine Specification, Java SE 8 Edition, page 330, chapter 4.11.</a>
    447    */
    448   public static final int MAX_CP_ENTRIES     = 65535;
    449 
    450   /**
    451    * Maximum code size (plus one; the code size must be LESS than this)
    452    * One of the limitations of the Java Virtual Machine.
    453    * Note vmspec2 page 152 ("Limitations") says:
    454    * "The amount of code per non-native, non-abstract method is limited to 65536 bytes by
    455    * the sizes of the indices in the exception_table of the Code attribute (4.7.3),
    456    * in the LineNumberTable attribute (4.7.8), and in the LocalVariableTable attribute (4.7.9)."
    457    * However this should be taken as an upper limit rather than the defined maximum.
    458    * On page 134 (4.8.1 Static Constants) of the same spec, it says:
    459    * "The value of the code_length item must be less than 65536."
    460    * The entry in the Limitations section has been removed from later versions of the spec;
    461    * it is not present in the Java SE 8 edition.
    462    *
    463    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.7.3-300-E">
    464    * The Java Virtual Machine Specification, Java SE 8 Edition, page 104, chapter 4.7.</a>
    465    */
    466   public static final int MAX_CODE_SIZE      = 65536; //bytes
    467 
    468   /**
    469    * The maximum number of dimensions in an array ({@value}).
    470    * One of the limitations of the Java Virtual Machine.
    471    *
    472    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.3.2-150">
    473    * Field Descriptors in The Java Virtual Machine Specification</a>
    474    */
    475   public static final int MAX_ARRAY_DIMENSIONS = 255;
    476 
    477   /** Java VM opcode.
    478    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.nop">
    479    * Opcode definitions in The Java Virtual Machine Specification</a> */
    480   public static final short NOP              = 0;
    481 
    482   /** Java VM opcode.
    483    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.aconst_null">
    484    * Opcode definitions in The Java Virtual Machine Specification</a> */
    485   public static final short ACONST_NULL      = 1;
    486 
    487   /** Java VM opcode.
    488    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iconst_i">
    489    * Opcode definitions in The Java Virtual Machine Specification</a> */
    490   public static final short ICONST_M1        = 2;
    491 
    492   /** Java VM opcode.
    493    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iconst_i">
    494    * Opcode definitions in The Java Virtual Machine Specification</a> */
    495   public static final short ICONST_0         = 3;
    496 
    497   /** Java VM opcode.
    498    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iconst_i">
    499    * Opcode definitions in The Java Virtual Machine Specification</a> */
    500   public static final short ICONST_1         = 4;
    501 
    502   /** Java VM opcode.
    503    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iconst_i">
    504    * Opcode definitions in The Java Virtual Machine Specification</a> */
    505   public static final short ICONST_2         = 5;
    506 
    507   /** Java VM opcode.
    508    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iconst_i">
    509    * Opcode definitions in The Java Virtual Machine Specification</a> */
    510   public static final short ICONST_3         = 6;
    511 
    512   /** Java VM opcode.
    513    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iconst_i">
    514    * Opcode definitions in The Java Virtual Machine Specification</a> */
    515   public static final short ICONST_4         = 7;
    516 
    517   /** Java VM opcode.
    518    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iconst_i">
    519    * Opcode definitions in The Java Virtual Machine Specification</a> */
    520   public static final short ICONST_5         = 8;
    521 
    522   /** Java VM opcode.
    523    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lconst_l">
    524    * Opcode definitions in The Java Virtual Machine Specification</a> */
    525   public static final short LCONST_0         = 9;
    526 
    527   /** Java VM opcode.
    528    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lconst_l">
    529    * Opcode definitions in The Java Virtual Machine Specification</a> */
    530   public static final short LCONST_1         = 10;
    531 
    532   /** Java VM opcode.
    533    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fconst_f">
    534    * Opcode definitions in The Java Virtual Machine Specification</a> */
    535   public static final short FCONST_0         = 11;
    536 
    537   /** Java VM opcode.
    538    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fconst_f">
    539    * Opcode definitions in The Java Virtual Machine Specification</a> */
    540   public static final short FCONST_1         = 12;
    541 
    542   /** Java VM opcode.
    543    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fconst_f">
    544    * Opcode definitions in The Java Virtual Machine Specification</a> */
    545   public static final short FCONST_2         = 13;
    546 
    547   /** Java VM opcode.
    548    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dconst_d">
    549    * Opcode definitions in The Java Virtual Machine Specification</a> */
    550   public static final short DCONST_0         = 14;
    551 
    552   /** Java VM opcode.
    553    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dconst_d">
    554    * Opcode definitions in The Java Virtual Machine Specification</a> */
    555   public static final short DCONST_1         = 15;
    556 
    557   /** Java VM opcode.
    558    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.bipush">
    559    * Opcode definitions in The Java Virtual Machine Specification</a> */
    560   public static final short BIPUSH           = 16;
    561 
    562   /** Java VM opcode.
    563    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.sipush">
    564    * Opcode definitions in The Java Virtual Machine Specification</a> */
    565   public static final short SIPUSH           = 17;
    566 
    567   /** Java VM opcode.
    568    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ldc">
    569    * Opcode definitions in The Java Virtual Machine Specification</a> */
    570   public static final short LDC              = 18;
    571 
    572   /** Java VM opcode.
    573    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ldc_w">
    574    * Opcode definitions in The Java Virtual Machine Specification</a> */
    575   public static final short LDC_W            = 19;
    576 
    577   /** Java VM opcode.
    578    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ldc2_w">
    579    * Opcode definitions in The Java Virtual Machine Specification</a> */
    580   public static final short LDC2_W           = 20;
    581 
    582   /** Java VM opcode.
    583    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iload">
    584    * Opcode definitions in The Java Virtual Machine Specification</a> */
    585   public static final short ILOAD            = 21;
    586 
    587   /** Java VM opcode.
    588    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lload">
    589    * Opcode definitions in The Java Virtual Machine Specification</a> */
    590   public static final short LLOAD            = 22;
    591 
    592   /** Java VM opcode.
    593    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fload">
    594    * Opcode definitions in The Java Virtual Machine Specification</a> */
    595   public static final short FLOAD            = 23;
    596 
    597   /** Java VM opcode.
    598    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dload">
    599    * Opcode definitions in The Java Virtual Machine Specification</a> */
    600   public static final short DLOAD            = 24;
    601 
    602   /** Java VM opcode.
    603    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.aload">
    604    * Opcode definitions in The Java Virtual Machine Specification</a> */
    605   public static final short ALOAD            = 25;
    606 
    607   /** Java VM opcode.
    608    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iload_n">
    609    * Opcode definitions in The Java Virtual Machine Specification</a> */
    610   public static final short ILOAD_0          = 26;
    611 
    612   /** Java VM opcode.
    613    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iload_n">
    614    * Opcode definitions in The Java Virtual Machine Specification</a> */
    615   public static final short ILOAD_1          = 27;
    616 
    617   /** Java VM opcode.
    618    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iload_n">
    619    * Opcode definitions in The Java Virtual Machine Specification</a> */
    620   public static final short ILOAD_2          = 28;
    621 
    622   /** Java VM opcode.
    623    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iload_n">
    624    * Opcode definitions in The Java Virtual Machine Specification</a> */
    625   public static final short ILOAD_3          = 29;
    626 
    627   /** Java VM opcode.
    628    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lload_n">
    629    * Opcode definitions in The Java Virtual Machine Specification</a> */
    630   public static final short LLOAD_0          = 30;
    631 
    632   /** Java VM opcode.
    633    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lload_n">
    634    * Opcode definitions in The Java Virtual Machine Specification</a> */
    635   public static final short LLOAD_1          = 31;
    636 
    637   /** Java VM opcode.
    638    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lload_n">
    639    * Opcode definitions in The Java Virtual Machine Specification</a> */
    640   public static final short LLOAD_2          = 32;
    641 
    642   /** Java VM opcode.
    643    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lload_n">
    644    * Opcode definitions in The Java Virtual Machine Specification</a> */
    645   public static final short LLOAD_3          = 33;
    646 
    647   /** Java VM opcode.
    648    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fload_n">
    649    * Opcode definitions in The Java Virtual Machine Specification</a> */
    650   public static final short FLOAD_0          = 34;
    651 
    652   /** Java VM opcode.
    653    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fload_n">
    654    * Opcode definitions in The Java Virtual Machine Specification</a> */
    655   public static final short FLOAD_1          = 35;
    656 
    657   /** Java VM opcode.
    658    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fload_n">
    659    * Opcode definitions in The Java Virtual Machine Specification</a> */
    660   public static final short FLOAD_2          = 36;
    661 
    662   /** Java VM opcode.
    663    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fload_n">
    664    * Opcode definitions in The Java Virtual Machine Specification</a> */
    665   public static final short FLOAD_3          = 37;
    666 
    667   /** Java VM opcode.
    668    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dload_n">
    669    * Opcode definitions in The Java Virtual Machine Specification</a> */
    670   public static final short DLOAD_0          = 38;
    671 
    672   /** Java VM opcode.
    673    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dload_n">
    674    * Opcode definitions in The Java Virtual Machine Specification</a> */
    675   public static final short DLOAD_1          = 39;
    676 
    677   /** Java VM opcode.
    678    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dload_n">
    679    * Opcode definitions in The Java Virtual Machine Specification</a> */
    680   public static final short DLOAD_2          = 40;
    681 
    682   /** Java VM opcode.
    683    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dload_n">
    684    * Opcode definitions in The Java Virtual Machine Specification</a> */
    685   public static final short DLOAD_3          = 41;
    686 
    687   /** Java VM opcode.
    688    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.aload_n">
    689    * Opcode definitions in The Java Virtual Machine Specification</a> */
    690   public static final short ALOAD_0          = 42;
    691 
    692   /** Java VM opcode.
    693    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.aload_n">
    694    * Opcode definitions in The Java Virtual Machine Specification</a> */
    695   public static final short ALOAD_1          = 43;
    696 
    697   /** Java VM opcode.
    698    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.aload_n">
    699    * Opcode definitions in The Java Virtual Machine Specification</a> */
    700   public static final short ALOAD_2          = 44;
    701 
    702   /** Java VM opcode.
    703    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.aload_n">
    704    * Opcode definitions in The Java Virtual Machine Specification</a> */
    705   public static final short ALOAD_3          = 45;
    706 
    707   /** Java VM opcode.
    708    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iaload">
    709    * Opcode definitions in The Java Virtual Machine Specification</a> */
    710   public static final short IALOAD           = 46;
    711 
    712   /** Java VM opcode.
    713    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.laload">
    714    * Opcode definitions in The Java Virtual Machine Specification</a> */
    715   public static final short LALOAD           = 47;
    716 
    717   /** Java VM opcode.
    718    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.faload">
    719    * Opcode definitions in The Java Virtual Machine Specification</a> */
    720   public static final short FALOAD           = 48;
    721 
    722   /** Java VM opcode.
    723    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.daload">
    724    * Opcode definitions in The Java Virtual Machine Specification</a> */
    725   public static final short DALOAD           = 49;
    726 
    727   /** Java VM opcode.
    728    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.aaload">
    729    * Opcode definitions in The Java Virtual Machine Specification</a> */
    730   public static final short AALOAD           = 50;
    731 
    732   /** Java VM opcode.
    733    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.baload">
    734    * Opcode definitions in The Java Virtual Machine Specification</a> */
    735   public static final short BALOAD           = 51;
    736 
    737   /** Java VM opcode.
    738    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.caload">
    739    * Opcode definitions in The Java Virtual Machine Specification</a> */
    740   public static final short CALOAD           = 52;
    741 
    742   /** Java VM opcode.
    743    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.saload">
    744    * Opcode definitions in The Java Virtual Machine Specification</a> */
    745   public static final short SALOAD           = 53;
    746 
    747   /** Java VM opcode.
    748    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.istore">
    749    * Opcode definitions in The Java Virtual Machine Specification</a> */
    750   public static final short ISTORE           = 54;
    751 
    752   /** Java VM opcode.
    753    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lstore">
    754    * Opcode definitions in The Java Virtual Machine Specification</a> */
    755   public static final short LSTORE           = 55;
    756 
    757   /** Java VM opcode.
    758    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fstore">
    759    * Opcode definitions in The Java Virtual Machine Specification</a> */
    760   public static final short FSTORE           = 56;
    761 
    762   /** Java VM opcode.
    763    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dstore">
    764    * Opcode definitions in The Java Virtual Machine Specification</a> */
    765   public static final short DSTORE           = 57;
    766 
    767   /** Java VM opcode.
    768    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.astore">
    769    * Opcode definitions in The Java Virtual Machine Specification</a> */
    770   public static final short ASTORE           = 58;
    771 
    772   /** Java VM opcode.
    773    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.istore_n">
    774    * Opcode definitions in The Java Virtual Machine Specification</a> */
    775   public static final short ISTORE_0         = 59;
    776 
    777   /** Java VM opcode.
    778    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.istore_n">
    779    * Opcode definitions in The Java Virtual Machine Specification</a> */
    780   public static final short ISTORE_1         = 60;
    781 
    782   /** Java VM opcode.
    783    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.istore_n">
    784    * Opcode definitions in The Java Virtual Machine Specification</a> */
    785   public static final short ISTORE_2         = 61;
    786 
    787   /** Java VM opcode.
    788    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.istore_n">
    789    * Opcode definitions in The Java Virtual Machine Specification</a> */
    790   public static final short ISTORE_3         = 62;
    791 
    792   /** Java VM opcode.
    793    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lstore_n">
    794    * Opcode definitions in The Java Virtual Machine Specification</a> */
    795   public static final short LSTORE_0         = 63;
    796 
    797   /** Java VM opcode.
    798    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lstore_n">
    799    * Opcode definitions in The Java Virtual Machine Specification</a> */
    800   public static final short LSTORE_1         = 64;
    801 
    802   /** Java VM opcode.
    803    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lstore_n">
    804    * Opcode definitions in The Java Virtual Machine Specification</a> */
    805   public static final short LSTORE_2         = 65;
    806 
    807   /** Java VM opcode.
    808    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lstore_n">
    809    * Opcode definitions in The Java Virtual Machine Specification</a> */
    810   public static final short LSTORE_3         = 66;
    811 
    812   /** Java VM opcode.
    813    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fstore_n">
    814    * Opcode definitions in The Java Virtual Machine Specification</a> */
    815   public static final short FSTORE_0         = 67;
    816 
    817   /** Java VM opcode.
    818    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fstore_n">
    819    * Opcode definitions in The Java Virtual Machine Specification</a> */
    820   public static final short FSTORE_1         = 68;
    821 
    822   /** Java VM opcode.
    823    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fstore_n">
    824    * Opcode definitions in The Java Virtual Machine Specification</a> */
    825   public static final short FSTORE_2         = 69;
    826 
    827   /** Java VM opcode.
    828    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fstore_n">
    829    * Opcode definitions in The Java Virtual Machine Specification</a> */
    830   public static final short FSTORE_3         = 70;
    831 
    832   /** Java VM opcode.
    833    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dstore_n">
    834    * Opcode definitions in The Java Virtual Machine Specification</a> */
    835   public static final short DSTORE_0         = 71;
    836 
    837   /** Java VM opcode.
    838    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dstore_n">
    839    * Opcode definitions in The Java Virtual Machine Specification</a> */
    840   public static final short DSTORE_1         = 72;
    841 
    842   /** Java VM opcode.
    843    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dstore_n">
    844    * Opcode definitions in The Java Virtual Machine Specification</a> */
    845   public static final short DSTORE_2         = 73;
    846 
    847   /** Java VM opcode.
    848    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dstore_n">
    849    * Opcode definitions in The Java Virtual Machine Specification</a> */
    850   public static final short DSTORE_3         = 74;
    851 
    852   /** Java VM opcode.
    853    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.astore_n">
    854    * Opcode definitions in The Java Virtual Machine Specification</a> */
    855   public static final short ASTORE_0         = 75;
    856 
    857   /** Java VM opcode.
    858    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.astore_n">
    859    * Opcode definitions in The Java Virtual Machine Specification</a> */
    860   public static final short ASTORE_1         = 76;
    861 
    862   /** Java VM opcode.
    863    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.astore_n">
    864    * Opcode definitions in The Java Virtual Machine Specification</a> */
    865   public static final short ASTORE_2         = 77;
    866 
    867   /** Java VM opcode.
    868    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.astore_n">
    869    * Opcode definitions in The Java Virtual Machine Specification</a> */
    870   public static final short ASTORE_3         = 78;
    871 
    872   /** Java VM opcode.
    873    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iastore">
    874    * Opcode definitions in The Java Virtual Machine Specification</a> */
    875   public static final short IASTORE          = 79;
    876 
    877   /** Java VM opcode.
    878    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lastore">
    879    * Opcode definitions in The Java Virtual Machine Specification</a> */
    880   public static final short LASTORE          = 80;
    881 
    882   /** Java VM opcode.
    883    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fastore">
    884    * Opcode definitions in The Java Virtual Machine Specification</a> */
    885   public static final short FASTORE          = 81;
    886 
    887   /** Java VM opcode.
    888    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dastore">
    889    * Opcode definitions in The Java Virtual Machine Specification</a> */
    890   public static final short DASTORE          = 82;
    891 
    892   /** Java VM opcode.
    893    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.aastore">
    894    * Opcode definitions in The Java Virtual Machine Specification</a> */
    895   public static final short AASTORE          = 83;
    896 
    897   /** Java VM opcode.
    898    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.bastore">
    899    * Opcode definitions in The Java Virtual Machine Specification</a> */
    900   public static final short BASTORE          = 84;
    901 
    902   /** Java VM opcode.
    903    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.castore">
    904    * Opcode definitions in The Java Virtual Machine Specification</a> */
    905   public static final short CASTORE          = 85;
    906 
    907   /** Java VM opcode.
    908    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.sastore">
    909    * Opcode definitions in The Java Virtual Machine Specification</a> */
    910   public static final short SASTORE          = 86;
    911 
    912   /** Java VM opcode.
    913    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.pop">
    914    * Opcode definitions in The Java Virtual Machine Specification</a> */
    915   public static final short POP              = 87;
    916 
    917   /** Java VM opcode.
    918    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.pop2">
    919    * Opcode definitions in The Java Virtual Machine Specification</a> */
    920   public static final short POP2             = 88;
    921 
    922   /** Java VM opcode.
    923    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dup">
    924    * Opcode definitions in The Java Virtual Machine Specification</a> */
    925   public static final short DUP              = 89;
    926 
    927   /** Java VM opcode.
    928    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dup_x1">
    929    * Opcode definitions in The Java Virtual Machine Specification</a> */
    930   public static final short DUP_X1           = 90;
    931 
    932   /** Java VM opcode.
    933    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dup_x2">
    934    * Opcode definitions in The Java Virtual Machine Specification</a> */
    935   public static final short DUP_X2           = 91;
    936 
    937   /** Java VM opcode.
    938    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dup2">
    939    * Opcode definitions in The Java Virtual Machine Specification</a> */
    940   public static final short DUP2             = 92;
    941 
    942   /** Java VM opcode.
    943    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dup2_x1">
    944    * Opcode definitions in The Java Virtual Machine Specification</a> */
    945   public static final short DUP2_X1          = 93;
    946 
    947   /** Java VM opcode.
    948    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dup2_x2">
    949    * Opcode definitions in The Java Virtual Machine Specification</a> */
    950   public static final short DUP2_X2          = 94;
    951 
    952   /** Java VM opcode.
    953    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.swap">
    954    * Opcode definitions in The Java Virtual Machine Specification</a> */
    955   public static final short SWAP             = 95;
    956 
    957   /** Java VM opcode.
    958    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iadd">
    959    * Opcode definitions in The Java Virtual Machine Specification</a> */
    960   public static final short IADD             = 96;
    961 
    962   /** Java VM opcode.
    963    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ladd">
    964    * Opcode definitions in The Java Virtual Machine Specification</a> */
    965   public static final short LADD             = 97;
    966 
    967   /** Java VM opcode.
    968    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fadd">
    969    * Opcode definitions in The Java Virtual Machine Specification</a> */
    970   public static final short FADD             = 98;
    971 
    972   /** Java VM opcode.
    973    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dadd">
    974    * Opcode definitions in The Java Virtual Machine Specification</a> */
    975   public static final short DADD             = 99;
    976 
    977   /** Java VM opcode.
    978    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.isub">
    979    * Opcode definitions in The Java Virtual Machine Specification</a> */
    980   public static final short ISUB             = 100;
    981 
    982   /** Java VM opcode.
    983    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lsub">
    984    * Opcode definitions in The Java Virtual Machine Specification</a> */
    985   public static final short LSUB             = 101;
    986 
    987   /** Java VM opcode.
    988    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fsub">
    989    * Opcode definitions in The Java Virtual Machine Specification</a> */
    990   public static final short FSUB             = 102;
    991 
    992   /** Java VM opcode.
    993    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dsub">
    994    * Opcode definitions in The Java Virtual Machine Specification</a> */
    995   public static final short DSUB             = 103;
    996 
    997   /** Java VM opcode.
    998    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.imul">
    999    * Opcode definitions in The Java Virtual Machine Specification</a> */
   1000   public static final short IMUL             = 104;
   1001 
   1002   /** Java VM opcode.
   1003    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lmul">
   1004    * Opcode definitions in The Java Virtual Machine Specification</a> */
   1005   public static final short LMUL             = 105;
   1006 
   1007   /** Java VM opcode.
   1008    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fmul">
   1009    * Opcode definitions in The Java Virtual Machine Specification</a> */
   1010   public static final short FMUL             = 106;
   1011 
   1012   /** Java VM opcode.
   1013    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dmul">
   1014    * Opcode definitions in The Java Virtual Machine Specification</a> */
   1015   public static final short DMUL             = 107;
   1016 
   1017   /** Java VM opcode.
   1018    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.idiv">
   1019    * Opcode definitions in The Java Virtual Machine Specification</a> */
   1020   public static final short IDIV             = 108;
   1021 
   1022   /** Java VM opcode.
   1023    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ldiv">
   1024    * Opcode definitions in The Java Virtual Machine Specification</a> */
   1025   public static final short LDIV             = 109;
   1026 
   1027   /** Java VM opcode.
   1028    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fdiv">
   1029    * Opcode definitions in The Java Virtual Machine Specification</a> */
   1030   public static final short FDIV             = 110;
   1031 
   1032   /** Java VM opcode.
   1033    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ddiv">
   1034    * Opcode definitions in The Java Virtual Machine Specification</a> */
   1035   public static final short DDIV             = 111;
   1036 
   1037   /** Java VM opcode.
   1038    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.irem">
   1039    * Opcode definitions in The Java Virtual Machine Specification</a> */
   1040   public static final short IREM             = 112;
   1041 
   1042   /** Java VM opcode.
   1043    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lrem">
   1044    * Opcode definitions in The Java Virtual Machine Specification</a> */
   1045   public static final short LREM             = 113;
   1046 
   1047   /** Java VM opcode.
   1048    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.frem">
   1049    * Opcode definitions in The Java Virtual Machine Specification</a> */
   1050   public static final short FREM             = 114;
   1051 
   1052   /** Java VM opcode.
   1053    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.drem">
   1054    * Opcode definitions in The Java Virtual Machine Specification</a> */
   1055   public static final short DREM             = 115;
   1056 
   1057   /** Java VM opcode.
   1058    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ineg">
   1059    * Opcode definitions in The Java Virtual Machine Specification</a> */
   1060   public static final short INEG             = 116;
   1061 
   1062   /** Java VM opcode.
   1063    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lneg">
   1064    * Opcode definitions in The Java Virtual Machine Specification</a> */
   1065   public static final short LNEG             = 117;
   1066 
   1067   /** Java VM opcode.
   1068    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fneg">
   1069    * Opcode definitions in The Java Virtual Machine Specification</a> */
   1070   public static final short FNEG             = 118;
   1071 
   1072   /** Java VM opcode.
   1073    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dneg">
   1074    * Opcode definitions in The Java Virtual Machine Specification</a> */
   1075   public static final short DNEG             = 119;
   1076 
   1077   /** Java VM opcode.
   1078    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ishl">
   1079    * Opcode definitions in The Java Virtual Machine Specification</a> */
   1080   public static final short ISHL             = 120;
   1081 
   1082   /** Java VM opcode.
   1083    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lshl">
   1084    * Opcode definitions in The Java Virtual Machine Specification</a> */
   1085   public static final short LSHL             = 121;
   1086 
   1087   /** Java VM opcode.
   1088    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ishr">
   1089    * Opcode definitions in The Java Virtual Machine Specification</a> */
   1090   public static final short ISHR             = 122;
   1091 
   1092   /** Java VM opcode.
   1093    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lshr">
   1094    * Opcode definitions in The Java Virtual Machine Specification</a> */
   1095   public static final short LSHR             = 123;
   1096 
   1097   /** Java VM opcode.
   1098    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iushr">
   1099    * Opcode definitions in The Java Virtual Machine Specification</a> */
   1100   public static final short IUSHR            = 124;
   1101 
   1102   /** Java VM opcode.
   1103    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lushr">
   1104    * Opcode definitions in The Java Virtual Machine Specification</a> */
   1105   public static final short LUSHR            = 125;
   1106 
   1107   /** Java VM opcode.
   1108    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iand">
   1109    * Opcode definitions in The Java Virtual Machine Specification</a> */
   1110   public static final short IAND             = 126;
   1111 
   1112   /** Java VM opcode.
   1113    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.land">
   1114    * Opcode definitions in The Java Virtual Machine Specification</a> */
   1115   public static final short LAND             = 127;
   1116 
   1117   /** Java VM opcode.
   1118    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ior">
   1119    * Opcode definitions in The Java Virtual Machine Specification</a> */
   1120   public static final short IOR              = 128;
   1121 
   1122   /** Java VM opcode.
   1123    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lor">
   1124    * Opcode definitions in The Java Virtual Machine Specification</a> */
   1125   public static final short LOR              = 129;
   1126 
   1127   /** Java VM opcode.
   1128    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ixor">
   1129    * Opcode definitions in The Java Virtual Machine Specification</a> */
   1130   public static final short IXOR             = 130;
   1131 
   1132   /** Java VM opcode.
   1133    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lxor">
   1134    * Opcode definitions in The Java Virtual Machine Specification</a> */
   1135   public static final short LXOR             = 131;
   1136 
   1137   /** Java VM opcode.
   1138    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iinc">
   1139    * Opcode definitions in The Java Virtual Machine Specification</a> */
   1140   public static final short IINC             = 132;
   1141 
   1142   /** Java VM opcode.
   1143    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.i2l">
   1144    * Opcode definitions in The Java Virtual Machine Specification</a> */
   1145   public static final short I2L              = 133;
   1146 
   1147   /** Java VM opcode.
   1148    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.i2f">
   1149    * Opcode definitions in The Java Virtual Machine Specification</a> */
   1150   public static final short I2F              = 134;
   1151 
   1152   /** Java VM opcode.
   1153    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.i2d">
   1154    * Opcode definitions in The Java Virtual Machine Specification</a> */
   1155   public static final short I2D              = 135;
   1156 
   1157   /** Java VM opcode.
   1158    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.l2i">
   1159    * Opcode definitions in The Java Virtual Machine Specification</a> */
   1160   public static final short L2I              = 136;
   1161 
   1162   /** Java VM opcode.
   1163    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.l2f">
   1164    * Opcode definitions in The Java Virtual Machine Specification</a> */
   1165   public static final short L2F              = 137;
   1166 
   1167   /** Java VM opcode.
   1168    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.l2d">
   1169    * Opcode definitions in The Java Virtual Machine Specification</a> */
   1170   public static final short L2D              = 138;
   1171 
   1172   /** Java VM opcode.
   1173    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.f2i">
   1174    * Opcode definitions in The Java Virtual Machine Specification</a> */
   1175   public static final short F2I              = 139;
   1176 
   1177   /** Java VM opcode.
   1178    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.f2l">
   1179    * Opcode definitions in The Java Virtual Machine Specification</a> */
   1180   public static final short F2L              = 140;
   1181 
   1182   /** Java VM opcode.
   1183    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.f2d">
   1184    * Opcode definitions in The Java Virtual Machine Specification</a> */
   1185   public static final short F2D              = 141;
   1186 
   1187   /** Java VM opcode.
   1188    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.d2i">
   1189    * Opcode definitions in The Java Virtual Machine Specification</a> */
   1190   public static final short D2I              = 142;
   1191 
   1192   /** Java VM opcode.
   1193    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.d2l">
   1194    * Opcode definitions in The Java Virtual Machine Specification</a> */
   1195   public static final short D2L              = 143;
   1196 
   1197   /** Java VM opcode.
   1198    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.d2f">
   1199    * Opcode definitions in The Java Virtual Machine Specification</a> */
   1200   public static final short D2F              = 144;
   1201 
   1202   /** Java VM opcode.
   1203    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.i2b">
   1204    * Opcode definitions in The Java Virtual Machine Specification</a> */
   1205   public static final short I2B              = 145;
   1206 
   1207   /** Java VM opcode.
   1208    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
   1209    * Opcode definitions in The Java Virtual Machine Specification</a> */
   1210   public static final short INT2BYTE         = 145; // Old notation
   1211 
   1212   /** Java VM opcode.
   1213    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.i2c">
   1214    * Opcode definitions in The Java Virtual Machine Specification</a> */
   1215   public static final short I2C              = 146;
   1216 
   1217   /** Java VM opcode.
   1218    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
   1219    * Opcode definitions in The Java Virtual Machine Specification</a> */
   1220   public static final short INT2CHAR         = 146; // Old notation
   1221 
   1222   /** Java VM opcode.
   1223    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.i2s">
   1224    * Opcode definitions in The Java Virtual Machine Specification</a> */
   1225   public static final short I2S              = 147;
   1226 
   1227   /** Java VM opcode.
   1228    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
   1229    * Opcode definitions in The Java Virtual Machine Specification</a> */
   1230   public static final short INT2SHORT        = 147; // Old notation
   1231 
   1232   /** Java VM opcode.
   1233    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lcmp">
   1234    * Opcode definitions in The Java Virtual Machine Specification</a> */
   1235   public static final short LCMP             = 148;
   1236 
   1237   /** Java VM opcode.
   1238    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fcmpl">
   1239    * Opcode definitions in The Java Virtual Machine Specification</a> */
   1240   public static final short FCMPL            = 149;
   1241 
   1242   /** Java VM opcode.
   1243    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fcmpg">
   1244    * Opcode definitions in The Java Virtual Machine Specification</a> */
   1245   public static final short FCMPG            = 150;
   1246 
   1247   /** Java VM opcode.
   1248    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dcmpl">
   1249    * Opcode definitions in The Java Virtual Machine Specification</a> */
   1250   public static final short DCMPL            = 151;
   1251 
   1252   /** Java VM opcode.
   1253    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dcmpg">
   1254    * Opcode definitions in The Java Virtual Machine Specification</a> */
   1255   public static final short DCMPG            = 152;
   1256 
   1257   /** Java VM opcode.
   1258    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ifeq">
   1259    * Opcode definitions in The Java Virtual Machine Specification</a> */
   1260   public static final short IFEQ             = 153;
   1261 
   1262   /** Java VM opcode.
   1263    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ifne">
   1264    * Opcode definitions in The Java Virtual Machine Specification</a> */
   1265   public static final short IFNE             = 154;
   1266 
   1267   /** Java VM opcode.
   1268    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iflt">
   1269    * Opcode definitions in The Java Virtual Machine Specification</a> */
   1270   public static final short IFLT             = 155;
   1271 
   1272   /** Java VM opcode.
   1273    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ifge">
   1274    * Opcode definitions in The Java Virtual Machine Specification</a> */
   1275   public static final short IFGE             = 156;
   1276 
   1277   /** Java VM opcode.
   1278    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ifgt">
   1279    * Opcode definitions in The Java Virtual Machine Specification</a> */
   1280   public static final short IFGT             = 157;
   1281 
   1282   /** Java VM opcode.
   1283    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ifle">
   1284    * Opcode definitions in The Java Virtual Machine Specification</a> */
   1285   public static final short IFLE             = 158;
   1286 
   1287   /** Java VM opcode.
   1288    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.if_icmp_cond">
   1289    * Opcode definitions in The Java Virtual Machine Specification</a> */
   1290   public static final short IF_ICMPEQ        = 159;
   1291 
   1292   /** Java VM opcode.
   1293    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.if_icmp_cond">
   1294    * Opcode definitions in The Java Virtual Machine Specification</a> */
   1295   public static final short IF_ICMPNE        = 160;
   1296 
   1297   /** Java VM opcode.
   1298    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.if_icmp_cond">
   1299    * Opcode definitions in The Java Virtual Machine Specification</a> */
   1300   public static final short IF_ICMPLT        = 161;
   1301 
   1302   /** Java VM opcode.
   1303    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.if_icmp_cond">
   1304    * Opcode definitions in The Java Virtual Machine Specification</a> */
   1305   public static final short IF_ICMPGE        = 162;
   1306 
   1307   /** Java VM opcode.
   1308    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.if_icmp_cond">
   1309    * Opcode definitions in The Java Virtual Machine Specification</a> */
   1310   public static final short IF_ICMPGT        = 163;
   1311 
   1312   /** Java VM opcode.
   1313    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.if_icmp_cond">
   1314    * Opcode definitions in The Java Virtual Machine Specification</a> */
   1315   public static final short IF_ICMPLE        = 164;
   1316 
   1317   /** Java VM opcode.
   1318    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.if_acmp_cond">
   1319    * Opcode definitions in The Java Virtual Machine Specification</a> */
   1320   public static final short IF_ACMPEQ        = 165;
   1321 
   1322   /** Java VM opcode.
   1323    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.if_acmp_cond">
   1324    * Opcode definitions in The Java Virtual Machine Specification</a> */
   1325   public static final short IF_ACMPNE        = 166;
   1326 
   1327   /** Java VM opcode.
   1328    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.goto">
   1329    * Opcode definitions in The Java Virtual Machine Specification</a> */
   1330   public static final short GOTO             = 167;
   1331 
   1332   /** Java VM opcode.
   1333    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.jsr">
   1334    * Opcode definitions in The Java Virtual Machine Specification</a> */
   1335   public static final short JSR              = 168;
   1336 
   1337   /** Java VM opcode.
   1338    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ret">
   1339    * Opcode definitions in The Java Virtual Machine Specification</a> */
   1340   public static final short RET              = 169;
   1341 
   1342   /** Java VM opcode.
   1343    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.tableswitch">
   1344    * Opcode definitions in The Java Virtual Machine Specification</a> */
   1345   public static final short TABLESWITCH      = 170;
   1346 
   1347   /** Java VM opcode.
   1348    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lookupswitch">
   1349    * Opcode definitions in The Java Virtual Machine Specification</a> */
   1350   public static final short LOOKUPSWITCH     = 171;
   1351 
   1352   /** Java VM opcode.
   1353    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ireturn">
   1354    * Opcode definitions in The Java Virtual Machine Specification</a> */
   1355   public static final short IRETURN          = 172;
   1356 
   1357   /** Java VM opcode.
   1358    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lreturn">
   1359    * Opcode definitions in The Java Virtual Machine Specification</a> */
   1360   public static final short LRETURN          = 173;
   1361 
   1362   /** Java VM opcode.
   1363    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.freturn">
   1364    * Opcode definitions in The Java Virtual Machine Specification</a> */
   1365   public static final short FRETURN          = 174;
   1366 
   1367   /** Java VM opcode.
   1368    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dreturn">
   1369    * Opcode definitions in The Java Virtual Machine Specification</a> */
   1370   public static final short DRETURN          = 175;
   1371 
   1372   /** Java VM opcode.
   1373    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.areturn">
   1374    * Opcode definitions in The Java Virtual Machine Specification</a> */
   1375   public static final short ARETURN          = 176;
   1376 
   1377   /** Java VM opcode.
   1378    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.return">
   1379    * Opcode definitions in The Java Virtual Machine Specification</a> */
   1380   public static final short RETURN           = 177;
   1381 
   1382   /** Java VM opcode.
   1383    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.getstatic">
   1384    * Opcode definitions in The Java Virtual Machine Specification</a> */
   1385   public static final short GETSTATIC        = 178;
   1386 
   1387   /** Java VM opcode.
   1388    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.putstatic">
   1389    * Opcode definitions in The Java Virtual Machine Specification</a> */
   1390   public static final short PUTSTATIC        = 179;
   1391 
   1392   /** Java VM opcode.
   1393    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.getfield">
   1394    * Opcode definitions in The Java Virtual Machine Specification</a> */
   1395   public static final short GETFIELD         = 180;
   1396 
   1397   /** Java VM opcode.
   1398    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.putfield">
   1399    * Opcode definitions in The Java Virtual Machine Specification</a> */
   1400   public static final short PUTFIELD         = 181;
   1401 
   1402   /** Java VM opcode.
   1403    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.invokevirtual">
   1404    * Opcode definitions in The Java Virtual Machine Specification</a> */
   1405   public static final short INVOKEVIRTUAL    = 182;
   1406 
   1407   /** Java VM opcode.
   1408    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.invokespecial">
   1409    * Opcode definitions in The Java Virtual Machine Specification</a> */
   1410   public static final short INVOKESPECIAL    = 183;
   1411 
   1412   /** Java VM opcode.
   1413    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
   1414    * Opcode definitions in The Java Virtual Machine Specification</a> */
   1415   public static final short INVOKENONVIRTUAL = 183; // Old name in JDK 1.0
   1416 
   1417   /** Java VM opcode.
   1418    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.invokestatic">
   1419    * Opcode definitions in The Java Virtual Machine Specification</a> */
   1420   public static final short INVOKESTATIC     = 184;
   1421 
   1422   /** Java VM opcode.
   1423    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.invokeinterface">
   1424    * Opcode definitions in The Java Virtual Machine Specification</a> */
   1425   public static final short INVOKEINTERFACE  = 185;
   1426 
   1427   /** Java VM opcode.
   1428    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.invokedynamic">
   1429    * Opcode definitions in The Java Virtual Machine Specification</a> */
   1430   public static final short INVOKEDYNAMIC    = 186;
   1431 
   1432   /** Java VM opcode.
   1433    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.new">
   1434    * Opcode definitions in The Java Virtual Machine Specification</a> */
   1435   public static final short NEW              = 187;
   1436 
   1437   /** Java VM opcode.
   1438    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.newarray">
   1439    * Opcode definitions in The Java Virtual Machine Specification</a> */
   1440   public static final short NEWARRAY         = 188;
   1441 
   1442   /** Java VM opcode.
   1443    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.anewarray">
   1444    * Opcode definitions in The Java Virtual Machine Specification</a> */
   1445   public static final short ANEWARRAY        = 189;
   1446 
   1447   /** Java VM opcode.
   1448    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.arraylength">
   1449    * Opcode definitions in The Java Virtual Machine Specification</a> */
   1450   public static final short ARRAYLENGTH      = 190;
   1451 
   1452   /** Java VM opcode.
   1453    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.athrow">
   1454    * Opcode definitions in The Java Virtual Machine Specification</a> */
   1455   public static final short ATHROW           = 191;
   1456 
   1457   /** Java VM opcode.
   1458    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.checkcast">
   1459    * Opcode definitions in The Java Virtual Machine Specification</a> */
   1460   public static final short CHECKCAST        = 192;
   1461 
   1462   /** Java VM opcode.
   1463    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.instanceof">
   1464    * Opcode definitions in The Java Virtual Machine Specification</a> */
   1465   public static final short INSTANCEOF       = 193;
   1466 
   1467   /** Java VM opcode.
   1468    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.monitorenter">
   1469    * Opcode definitions in The Java Virtual Machine Specification</a> */
   1470   public static final short MONITORENTER     = 194;
   1471 
   1472   /** Java VM opcode.
   1473    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.monitorexit">
   1474    * Opcode definitions in The Java Virtual Machine Specification</a> */
   1475   public static final short MONITOREXIT      = 195;
   1476 
   1477   /** Java VM opcode.
   1478    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.wide">
   1479    * Opcode definitions in The Java Virtual Machine Specification</a> */
   1480   public static final short WIDE             = 196;
   1481 
   1482   /** Java VM opcode.
   1483    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.multianewarray">
   1484    * Opcode definitions in The Java Virtual Machine Specification</a> */
   1485   public static final short MULTIANEWARRAY   = 197;
   1486 
   1487   /** Java VM opcode.
   1488    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ifnull">
   1489    * Opcode definitions in The Java Virtual Machine Specification</a> */
   1490   public static final short IFNULL           = 198;
   1491 
   1492   /** Java VM opcode.
   1493    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ifnonnull">
   1494    * Opcode definitions in The Java Virtual Machine Specification</a> */
   1495   public static final short IFNONNULL        = 199;
   1496 
   1497   /** Java VM opcode.
   1498    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.goto_w">
   1499    * Opcode definitions in The Java Virtual Machine Specification</a> */
   1500   public static final short GOTO_W           = 200;
   1501 
   1502   /** Java VM opcode.
   1503    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.jsr_w">
   1504    * Opcode definitions in The Java Virtual Machine Specification</a> */
   1505   public static final short JSR_W            = 201;
   1506 
   1507   /** JVM internal opcode.
   1508    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.2">
   1509    * Reserved opcodes in the Java Virtual Machine Specification</a> */
   1510   public static final short BREAKPOINT                = 202;
   1511 
   1512   /** JVM internal opcode.
   1513    * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
   1514    * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
   1515    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
   1516    * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
   1517   public static final short LDC_QUICK                 = 203;
   1518 
   1519   /** JVM internal opcode.
   1520    * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
   1521    * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
   1522    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
   1523    * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
   1524   public static final short LDC_W_QUICK               = 204;
   1525 
   1526   /** JVM internal opcode.
   1527    * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
   1528    * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
   1529    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
   1530    * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
   1531   public static final short LDC2_W_QUICK              = 205;
   1532 
   1533   /** JVM internal opcode.
   1534    * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
   1535    * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
   1536    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
   1537    * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
   1538   public static final short GETFIELD_QUICK            = 206;
   1539 
   1540   /** JVM internal opcode.
   1541    * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
   1542    * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
   1543    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
   1544    * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
   1545   public static final short PUTFIELD_QUICK            = 207;
   1546 
   1547   /** JVM internal opcode.
   1548    * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
   1549    * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
   1550    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
   1551    * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
   1552   public static final short GETFIELD2_QUICK           = 208;
   1553 
   1554   /** JVM internal opcode.
   1555    * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
   1556    * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
   1557    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
   1558    * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
   1559   public static final short PUTFIELD2_QUICK           = 209;
   1560 
   1561   /** JVM internal opcode.
   1562    * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
   1563    * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
   1564    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
   1565    * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
   1566   public static final short GETSTATIC_QUICK           = 210;
   1567 
   1568   /** JVM internal opcode.
   1569    * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
   1570    * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
   1571    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
   1572    * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
   1573   public static final short PUTSTATIC_QUICK           = 211;
   1574 
   1575   /** JVM internal opcode.
   1576    * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
   1577    * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
   1578    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
   1579    * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
   1580   public static final short GETSTATIC2_QUICK          = 212;
   1581 
   1582   /** JVM internal opcode.
   1583    * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
   1584    * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
   1585    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
   1586    * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
   1587   public static final short PUTSTATIC2_QUICK          = 213;
   1588 
   1589   /** JVM internal opcode.
   1590    * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
   1591    * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
   1592    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
   1593    * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
   1594   public static final short INVOKEVIRTUAL_QUICK       = 214;
   1595 
   1596   /** JVM internal opcode.
   1597    * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
   1598    * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
   1599    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
   1600    * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
   1601   public static final short INVOKENONVIRTUAL_QUICK    = 215;
   1602 
   1603   /** JVM internal opcode.
   1604    * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
   1605    * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
   1606    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
   1607    * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
   1608   public static final short INVOKESUPER_QUICK         = 216;
   1609 
   1610   /** JVM internal opcode.
   1611    * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
   1612    * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
   1613    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
   1614    * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
   1615   public static final short INVOKESTATIC_QUICK        = 217;
   1616 
   1617   /** JVM internal opcode.
   1618    * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
   1619    * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
   1620    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
   1621    * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
   1622   public static final short INVOKEINTERFACE_QUICK     = 218;
   1623 
   1624   /** JVM internal opcode.
   1625    * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
   1626    * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
   1627    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
   1628    * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
   1629   public static final short INVOKEVIRTUALOBJECT_QUICK = 219;
   1630 
   1631   /** JVM internal opcode.
   1632    * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
   1633    * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
   1634    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
   1635    * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
   1636   public static final short NEW_QUICK                 = 221;
   1637 
   1638   /** JVM internal opcode.
   1639    * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
   1640    * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
   1641    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
   1642    * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
   1643   public static final short ANEWARRAY_QUICK           = 222;
   1644 
   1645   /** JVM internal opcode.
   1646    * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
   1647    * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
   1648    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
   1649    * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
   1650   public static final short MULTIANEWARRAY_QUICK      = 223;
   1651 
   1652   /** JVM internal opcode.
   1653    * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
   1654    * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
   1655    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
   1656    * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
   1657   public static final short CHECKCAST_QUICK           = 224;
   1658 
   1659   /** JVM internal opcode.
   1660    * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
   1661    * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
   1662    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
   1663    * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
   1664   public static final short INSTANCEOF_QUICK          = 225;
   1665 
   1666   /** JVM internal opcode.
   1667    * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
   1668    * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
   1669    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
   1670    * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
   1671   public static final short INVOKEVIRTUAL_QUICK_W     = 226;
   1672 
   1673   /** JVM internal opcode.
   1674    * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
   1675    * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
   1676    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
   1677    * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
   1678   public static final short GETFIELD_QUICK_W          = 227;
   1679 
   1680   /** JVM internal opcode.
   1681    * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
   1682    * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
   1683    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
   1684    * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
   1685   public static final short PUTFIELD_QUICK_W          = 228;
   1686 
   1687   /** JVM internal opcode.
   1688    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.2">
   1689    * Reserved opcodes in the Java Virtual Machine Specification</a> */
   1690   public static final short IMPDEP1                   = 254;
   1691 
   1692   /** JVM internal opcode.
   1693    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.2">
   1694    * Reserved opcodes in the Java Virtual Machine Specification</a> */
   1695   public static final short IMPDEP2                   = 255;
   1696 
   1697   /**
   1698    * BCEL virtual instruction for pushing an arbitrary data type onto the stack.  Will be converted to the appropriate JVM
   1699    * opcode when the class is dumped.
   1700    */
   1701   public static final short PUSH             = 4711;
   1702 
   1703   /**
   1704    * BCEL virtual instruction for either LOOKUPSWITCH or TABLESWITCH.  Will be converted to the appropriate JVM
   1705    * opcode when the class is dumped.
   1706    */
   1707   public static final short SWITCH           = 4712;
   1708 
   1709   /** Illegal opcode. */
   1710   public static final short  UNDEFINED      = -1;
   1711 
   1712   /** Illegal opcode. */
   1713   public static final short  UNPREDICTABLE  = -2;
   1714 
   1715   /** Illegal opcode. */
   1716   public static final short  RESERVED       = -3;
   1717 
   1718   /** Mnemonic for an illegal opcode. */
   1719   public static final String ILLEGAL_OPCODE = "<illegal opcode>";
   1720 
   1721   /** Mnemonic for an illegal type. */
   1722   public static final String ILLEGAL_TYPE   = "<illegal type>";
   1723 
   1724   /** Boolean data type.
   1725    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.9.1-120-P">
   1726    * Static Constraints in the Java Virtual Machine Specification</a> */
   1727   public static final byte T_BOOLEAN = 4;
   1728 
   1729   /** Char data type.
   1730    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.9.1-120-P">
   1731    * Static Constraints in the Java Virtual Machine Specification</a> */
   1732   public static final byte T_CHAR    = 5;
   1733 
   1734   /** Float data type.
   1735    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.9.1-120-P">
   1736    * Static Constraints in the Java Virtual Machine Specification</a> */
   1737   public static final byte T_FLOAT   = 6;
   1738 
   1739   /** Double data type.
   1740    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.9.1-120-P">
   1741    * Static Constraints in the Java Virtual Machine Specification</a> */
   1742   public static final byte T_DOUBLE  = 7;
   1743 
   1744   /** Byte data type.
   1745    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.9.1-120-P">
   1746    * Static Constraints in the Java Virtual Machine Specification</a> */
   1747   public static final byte T_BYTE    = 8;
   1748 
   1749   /** Short data type.
   1750    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.9.1-120-P">
   1751    * Static Constraints in the Java Virtual Machine Specification</a> */
   1752   public static final byte T_SHORT   = 9;
   1753 
   1754   /** Int data type.
   1755    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.9.1-120-P">
   1756    * Static Constraints in the Java Virtual Machine Specification</a> */
   1757   public static final byte T_INT     = 10;
   1758 
   1759   /** Long data type.
   1760    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.9.1-120-P">
   1761    * Static Constraints in the Java Virtual Machine Specification</a> */
   1762   public static final byte T_LONG    = 11;
   1763 
   1764   /** Void data type (non-standard). */
   1765   public static final byte T_VOID      = 12; // Non-standard
   1766 
   1767   /** Array data type. */
   1768   public static final byte T_ARRAY     = 13;
   1769 
   1770   /** Object data type. */
   1771   public static final byte T_OBJECT    = 14;
   1772 
   1773   /** Reference data type (deprecated). */
   1774   public static final byte T_REFERENCE = 14; // Deprecated
   1775 
   1776   /** Unknown data type. */
   1777   public static final byte T_UNKNOWN   = 15;
   1778 
   1779   /** Address data type. */
   1780   public static final byte T_ADDRESS   = 16;
   1781 
   1782   /** The primitive type names corresponding to the T_XX constants,
   1783    * e.g., TYPE_NAMES[T_INT] = "int"
   1784    */
   1785   private static final String[] TYPE_NAMES = {
   1786     ILLEGAL_TYPE, ILLEGAL_TYPE,  ILLEGAL_TYPE, ILLEGAL_TYPE,
   1787     "boolean", "char", "float", "double", "byte", "short", "int", "long",
   1788     "void", "array", "object", "unknown", "address"
   1789   };
   1790 
   1791   /**
   1792    * The primitive type names corresponding to the T_XX constants,
   1793    * e.g., TYPE_NAMES[T_INT] = "int"
   1794    * @param index
   1795    * @return the type name
   1796    * @since 6.0
   1797    */
   1798   public static String getTypeName(final int index) {
   1799       return TYPE_NAMES[index];
   1800   }
   1801 
   1802   /** The primitive class names corresponding to the T_XX constants,
   1803    * e.g., CLASS_TYPE_NAMES[T_INT] = "java.lang.Integer"
   1804    */
   1805   private static final String[] CLASS_TYPE_NAMES = {
   1806     ILLEGAL_TYPE, ILLEGAL_TYPE,  ILLEGAL_TYPE, ILLEGAL_TYPE,
   1807     "java.lang.Boolean", "java.lang.Character", "java.lang.Float",
   1808     "java.lang.Double", "java.lang.Byte", "java.lang.Short",
   1809     "java.lang.Integer", "java.lang.Long", "java.lang.Void",
   1810     ILLEGAL_TYPE, ILLEGAL_TYPE,  ILLEGAL_TYPE,  ILLEGAL_TYPE
   1811   };
   1812 
   1813   /**
   1814    * The primitive class names corresponding to the T_XX constants,
   1815    * e.g., CLASS_TYPE_NAMES[T_INT] = "java.lang.Integer"
   1816    * @param index
   1817    * @return the class name
   1818    * @since 6.0
   1819    */
   1820   public static String getClassTypeName(final int index) {
   1821       return CLASS_TYPE_NAMES[index];
   1822   }
   1823 
   1824   /** The signature characters corresponding to primitive types,
   1825    * e.g., SHORT_TYPE_NAMES[T_INT] = "I"
   1826    */
   1827   private static final String[] SHORT_TYPE_NAMES = {
   1828     ILLEGAL_TYPE, ILLEGAL_TYPE,  ILLEGAL_TYPE, ILLEGAL_TYPE,
   1829     "Z", "C", "F", "D", "B", "S", "I", "J",
   1830     "V", ILLEGAL_TYPE, ILLEGAL_TYPE, ILLEGAL_TYPE
   1831   };
   1832 
   1833   /**
   1834    *
   1835    * @param index
   1836    * @return the short type name
   1837    * @since 6.0
   1838    */
   1839   public static String getShortTypeName(final int index) {
   1840       return SHORT_TYPE_NAMES[index];
   1841   }
   1842 
   1843 
   1844   /**
   1845    * Number of byte code operands for each opcode, i.e., number of bytes after the tag byte
   1846    * itself.  Indexed by opcode, so NO_OF_OPERANDS[BIPUSH] = the number of operands for a bipush
   1847    * instruction.
   1848    */
   1849   private static final short[] NO_OF_OPERANDS = {
   1850     0/*nop*/, 0/*aconst_null*/, 0/*iconst_m1*/, 0/*iconst_0*/,
   1851     0/*iconst_1*/, 0/*iconst_2*/, 0/*iconst_3*/, 0/*iconst_4*/,
   1852     0/*iconst_5*/, 0/*lconst_0*/, 0/*lconst_1*/, 0/*fconst_0*/,
   1853     0/*fconst_1*/, 0/*fconst_2*/, 0/*dconst_0*/, 0/*dconst_1*/,
   1854     1/*bipush*/, 2/*sipush*/, 1/*ldc*/, 2/*ldc_w*/, 2/*ldc2_w*/,
   1855     1/*iload*/, 1/*lload*/, 1/*fload*/, 1/*dload*/, 1/*aload*/,
   1856     0/*iload_0*/, 0/*iload_1*/, 0/*iload_2*/, 0/*iload_3*/,
   1857     0/*lload_0*/, 0/*lload_1*/, 0/*lload_2*/, 0/*lload_3*/,
   1858     0/*fload_0*/, 0/*fload_1*/, 0/*fload_2*/, 0/*fload_3*/,
   1859     0/*dload_0*/, 0/*dload_1*/, 0/*dload_2*/, 0/*dload_3*/,
   1860     0/*aload_0*/, 0/*aload_1*/, 0/*aload_2*/, 0/*aload_3*/,
   1861     0/*iaload*/, 0/*laload*/, 0/*faload*/, 0/*daload*/,
   1862     0/*aaload*/, 0/*baload*/, 0/*caload*/, 0/*saload*/,
   1863     1/*istore*/, 1/*lstore*/, 1/*fstore*/, 1/*dstore*/,
   1864     1/*astore*/, 0/*istore_0*/, 0/*istore_1*/, 0/*istore_2*/,
   1865     0/*istore_3*/, 0/*lstore_0*/, 0/*lstore_1*/, 0/*lstore_2*/,
   1866     0/*lstore_3*/, 0/*fstore_0*/, 0/*fstore_1*/, 0/*fstore_2*/,
   1867     0/*fstore_3*/, 0/*dstore_0*/, 0/*dstore_1*/, 0/*dstore_2*/,
   1868     0/*dstore_3*/, 0/*astore_0*/, 0/*astore_1*/, 0/*astore_2*/,
   1869     0/*astore_3*/, 0/*iastore*/, 0/*lastore*/, 0/*fastore*/,
   1870     0/*dastore*/, 0/*aastore*/, 0/*bastore*/, 0/*castore*/,
   1871     0/*sastore*/, 0/*pop*/, 0/*pop2*/, 0/*dup*/, 0/*dup_x1*/,
   1872     0/*dup_x2*/, 0/*dup2*/, 0/*dup2_x1*/, 0/*dup2_x2*/, 0/*swap*/,
   1873     0/*iadd*/, 0/*ladd*/, 0/*fadd*/, 0/*dadd*/, 0/*isub*/,
   1874     0/*lsub*/, 0/*fsub*/, 0/*dsub*/, 0/*imul*/, 0/*lmul*/,
   1875     0/*fmul*/, 0/*dmul*/, 0/*idiv*/, 0/*ldiv*/, 0/*fdiv*/,
   1876     0/*ddiv*/, 0/*irem*/, 0/*lrem*/, 0/*frem*/, 0/*drem*/,
   1877     0/*ineg*/, 0/*lneg*/, 0/*fneg*/, 0/*dneg*/, 0/*ishl*/,
   1878     0/*lshl*/, 0/*ishr*/, 0/*lshr*/, 0/*iushr*/, 0/*lushr*/,
   1879     0/*iand*/, 0/*land*/, 0/*ior*/, 0/*lor*/, 0/*ixor*/, 0/*lxor*/,
   1880     2/*iinc*/, 0/*i2l*/, 0/*i2f*/, 0/*i2d*/, 0/*l2i*/, 0/*l2f*/,
   1881     0/*l2d*/, 0/*f2i*/, 0/*f2l*/, 0/*f2d*/, 0/*d2i*/, 0/*d2l*/,
   1882     0/*d2f*/, 0/*i2b*/, 0/*i2c*/, 0/*i2s*/, 0/*lcmp*/, 0/*fcmpl*/,
   1883     0/*fcmpg*/, 0/*dcmpl*/, 0/*dcmpg*/, 2/*ifeq*/, 2/*ifne*/,
   1884     2/*iflt*/, 2/*ifge*/, 2/*ifgt*/, 2/*ifle*/, 2/*if_icmpeq*/,
   1885     2/*if_icmpne*/, 2/*if_icmplt*/, 2/*if_icmpge*/, 2/*if_icmpgt*/,
   1886     2/*if_icmple*/, 2/*if_acmpeq*/, 2/*if_acmpne*/, 2/*goto*/,
   1887     2/*jsr*/, 1/*ret*/, UNPREDICTABLE/*tableswitch*/, UNPREDICTABLE/*lookupswitch*/,
   1888     0/*ireturn*/, 0/*lreturn*/, 0/*freturn*/,
   1889     0/*dreturn*/, 0/*areturn*/, 0/*return*/,
   1890     2/*getstatic*/, 2/*putstatic*/, 2/*getfield*/,
   1891     2/*putfield*/, 2/*invokevirtual*/, 2/*invokespecial*/, 2/*invokestatic*/,
   1892     4/*invokeinterface*/, 4/*invokedynamic*/, 2/*new*/,
   1893     1/*newarray*/, 2/*anewarray*/,
   1894     0/*arraylength*/, 0/*athrow*/, 2/*checkcast*/,
   1895     2/*instanceof*/, 0/*monitorenter*/,
   1896     0/*monitorexit*/, UNPREDICTABLE/*wide*/, 3/*multianewarray*/,
   1897     2/*ifnull*/, 2/*ifnonnull*/, 4/*goto_w*/,
   1898     4/*jsr_w*/, 0/*breakpoint*/, UNDEFINED,
   1899     UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
   1900     UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
   1901     UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
   1902     UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
   1903     UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
   1904     UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
   1905     UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
   1906     UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
   1907     UNDEFINED, UNDEFINED, RESERVED/*impdep1*/, RESERVED/*impdep2*/
   1908   };
   1909 
   1910   /**
   1911    *
   1912    * @param index
   1913    * @return Number of byte code operands
   1914    * @since 6.0
   1915    */
   1916   public static short getNoOfOperands(final int index) {
   1917       return NO_OF_OPERANDS[index];
   1918   }
   1919 
   1920   /**
   1921    * How the byte code operands are to be interpreted for each opcode.
   1922    * Indexed by opcode.  TYPE_OF_OPERANDS[ILOAD] = an array of shorts
   1923    * describing the data types for the instruction.
   1924    */
   1925   private static final short[][] TYPE_OF_OPERANDS = {
   1926     {}/*nop*/, {}/*aconst_null*/, {}/*iconst_m1*/, {}/*iconst_0*/,
   1927     {}/*iconst_1*/, {}/*iconst_2*/, {}/*iconst_3*/, {}/*iconst_4*/,
   1928     {}/*iconst_5*/, {}/*lconst_0*/, {}/*lconst_1*/, {}/*fconst_0*/,
   1929     {}/*fconst_1*/, {}/*fconst_2*/, {}/*dconst_0*/, {}/*dconst_1*/,
   1930     {T_BYTE}/*bipush*/, {T_SHORT}/*sipush*/, {T_BYTE}/*ldc*/,
   1931     {T_SHORT}/*ldc_w*/, {T_SHORT}/*ldc2_w*/,
   1932     {T_BYTE}/*iload*/, {T_BYTE}/*lload*/, {T_BYTE}/*fload*/,
   1933     {T_BYTE}/*dload*/, {T_BYTE}/*aload*/, {}/*iload_0*/,
   1934     {}/*iload_1*/, {}/*iload_2*/, {}/*iload_3*/, {}/*lload_0*/,
   1935     {}/*lload_1*/, {}/*lload_2*/, {}/*lload_3*/, {}/*fload_0*/,
   1936     {}/*fload_1*/, {}/*fload_2*/, {}/*fload_3*/, {}/*dload_0*/,
   1937     {}/*dload_1*/, {}/*dload_2*/, {}/*dload_3*/, {}/*aload_0*/,
   1938     {}/*aload_1*/, {}/*aload_2*/, {}/*aload_3*/, {}/*iaload*/,
   1939     {}/*laload*/, {}/*faload*/, {}/*daload*/, {}/*aaload*/,
   1940     {}/*baload*/, {}/*caload*/, {}/*saload*/, {T_BYTE}/*istore*/,
   1941     {T_BYTE}/*lstore*/, {T_BYTE}/*fstore*/, {T_BYTE}/*dstore*/,
   1942     {T_BYTE}/*astore*/, {}/*istore_0*/, {}/*istore_1*/,
   1943     {}/*istore_2*/, {}/*istore_3*/, {}/*lstore_0*/, {}/*lstore_1*/,
   1944     {}/*lstore_2*/, {}/*lstore_3*/, {}/*fstore_0*/, {}/*fstore_1*/,
   1945     {}/*fstore_2*/, {}/*fstore_3*/, {}/*dstore_0*/, {}/*dstore_1*/,
   1946     {}/*dstore_2*/, {}/*dstore_3*/, {}/*astore_0*/, {}/*astore_1*/,
   1947     {}/*astore_2*/, {}/*astore_3*/, {}/*iastore*/, {}/*lastore*/,
   1948     {}/*fastore*/, {}/*dastore*/, {}/*aastore*/, {}/*bastore*/,
   1949     {}/*castore*/, {}/*sastore*/, {}/*pop*/, {}/*pop2*/, {}/*dup*/,
   1950     {}/*dup_x1*/, {}/*dup_x2*/, {}/*dup2*/, {}/*dup2_x1*/,
   1951     {}/*dup2_x2*/, {}/*swap*/, {}/*iadd*/, {}/*ladd*/, {}/*fadd*/,
   1952     {}/*dadd*/, {}/*isub*/, {}/*lsub*/, {}/*fsub*/, {}/*dsub*/,
   1953     {}/*imul*/, {}/*lmul*/, {}/*fmul*/, {}/*dmul*/, {}/*idiv*/,
   1954     {}/*ldiv*/, {}/*fdiv*/, {}/*ddiv*/, {}/*irem*/, {}/*lrem*/,
   1955     {}/*frem*/, {}/*drem*/, {}/*ineg*/, {}/*lneg*/, {}/*fneg*/,
   1956     {}/*dneg*/, {}/*ishl*/, {}/*lshl*/, {}/*ishr*/, {}/*lshr*/,
   1957     {}/*iushr*/, {}/*lushr*/, {}/*iand*/, {}/*land*/, {}/*ior*/,
   1958     {}/*lor*/, {}/*ixor*/, {}/*lxor*/, {T_BYTE, T_BYTE}/*iinc*/,
   1959     {}/*i2l*/, {}/*i2f*/, {}/*i2d*/, {}/*l2i*/, {}/*l2f*/, {}/*l2d*/,
   1960     {}/*f2i*/, {}/*f2l*/, {}/*f2d*/, {}/*d2i*/, {}/*d2l*/, {}/*d2f*/,
   1961     {}/*i2b*/, {}/*i2c*/, {}/*i2s*/, {}/*lcmp*/, {}/*fcmpl*/,
   1962     {}/*fcmpg*/, {}/*dcmpl*/, {}/*dcmpg*/, {T_SHORT}/*ifeq*/,
   1963     {T_SHORT}/*ifne*/, {T_SHORT}/*iflt*/, {T_SHORT}/*ifge*/,
   1964     {T_SHORT}/*ifgt*/, {T_SHORT}/*ifle*/, {T_SHORT}/*if_icmpeq*/,
   1965     {T_SHORT}/*if_icmpne*/, {T_SHORT}/*if_icmplt*/,
   1966     {T_SHORT}/*if_icmpge*/, {T_SHORT}/*if_icmpgt*/,
   1967     {T_SHORT}/*if_icmple*/, {T_SHORT}/*if_acmpeq*/,
   1968     {T_SHORT}/*if_acmpne*/, {T_SHORT}/*goto*/, {T_SHORT}/*jsr*/,
   1969     {T_BYTE}/*ret*/, {}/*tableswitch*/, {}/*lookupswitch*/,
   1970     {}/*ireturn*/, {}/*lreturn*/, {}/*freturn*/, {}/*dreturn*/,
   1971     {}/*areturn*/, {}/*return*/, {T_SHORT}/*getstatic*/,
   1972     {T_SHORT}/*putstatic*/, {T_SHORT}/*getfield*/,
   1973     {T_SHORT}/*putfield*/, {T_SHORT}/*invokevirtual*/,
   1974     {T_SHORT}/*invokespecial*/, {T_SHORT}/*invokestatic*/,
   1975     {T_SHORT, T_BYTE, T_BYTE}/*invokeinterface*/, {T_SHORT, T_BYTE, T_BYTE}/*invokedynamic*/,
   1976     {T_SHORT}/*new*/, {T_BYTE}/*newarray*/,
   1977     {T_SHORT}/*anewarray*/, {}/*arraylength*/, {}/*athrow*/,
   1978     {T_SHORT}/*checkcast*/, {T_SHORT}/*instanceof*/,
   1979     {}/*monitorenter*/, {}/*monitorexit*/, {T_BYTE}/*wide*/,
   1980     {T_SHORT, T_BYTE}/*multianewarray*/, {T_SHORT}/*ifnull*/,
   1981     {T_SHORT}/*ifnonnull*/, {T_INT}/*goto_w*/, {T_INT}/*jsr_w*/,
   1982     {}/*breakpoint*/, {}, {}, {}, {}, {}, {}, {},
   1983     {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {},
   1984     {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {},
   1985     {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {},
   1986     {}/*impdep1*/, {}/*impdep2*/
   1987   };
   1988 
   1989   /**
   1990    * @since 6.0
   1991    */
   1992   public static short getOperandType(final int opcode, final int index) {
   1993       return TYPE_OF_OPERANDS[opcode][index];
   1994   }
   1995 
   1996   /**
   1997    * @since 6.0
   1998    */
   1999   public static long getOperandTypeCount(final int opcode) {
   2000       return TYPE_OF_OPERANDS[opcode].length;
   2001   }
   2002 
   2003   /**
   2004    * Names of opcodes.  Indexed by opcode.  OPCODE_NAMES[ALOAD] = "aload".
   2005    */
   2006   private static final String[] OPCODE_NAMES = {
   2007     "nop", "aconst_null", "iconst_m1", "iconst_0", "iconst_1",
   2008     "iconst_2", "iconst_3", "iconst_4", "iconst_5", "lconst_0",
   2009     "lconst_1", "fconst_0", "fconst_1", "fconst_2", "dconst_0",
   2010     "dconst_1", "bipush", "sipush", "ldc", "ldc_w", "ldc2_w", "iload",
   2011     "lload", "fload", "dload", "aload", "iload_0", "iload_1", "iload_2",
   2012     "iload_3", "lload_0", "lload_1", "lload_2", "lload_3", "fload_0",
   2013     "fload_1", "fload_2", "fload_3", "dload_0", "dload_1", "dload_2",
   2014     "dload_3", "aload_0", "aload_1", "aload_2", "aload_3", "iaload",
   2015     "laload", "faload", "daload", "aaload", "baload", "caload", "saload",
   2016     "istore", "lstore", "fstore", "dstore", "astore", "istore_0",
   2017     "istore_1", "istore_2", "istore_3", "lstore_0", "lstore_1",
   2018     "lstore_2", "lstore_3", "fstore_0", "fstore_1", "fstore_2",
   2019     "fstore_3", "dstore_0", "dstore_1", "dstore_2", "dstore_3",
   2020     "astore_0", "astore_1", "astore_2", "astore_3", "iastore", "lastore",
   2021     "fastore", "dastore", "aastore", "bastore", "castore", "sastore",
   2022     "pop", "pop2", "dup", "dup_x1", "dup_x2", "dup2", "dup2_x1",
   2023     "dup2_x2", "swap", "iadd", "ladd", "fadd", "dadd", "isub", "lsub",
   2024     "fsub", "dsub", "imul", "lmul", "fmul", "dmul", "idiv", "ldiv",
   2025     "fdiv", "ddiv", "irem", "lrem", "frem", "drem", "ineg", "lneg",
   2026     "fneg", "dneg", "ishl", "lshl", "ishr", "lshr", "iushr", "lushr",
   2027     "iand", "land", "ior", "lor", "ixor", "lxor", "iinc", "i2l", "i2f",
   2028     "i2d", "l2i", "l2f", "l2d", "f2i", "f2l", "f2d", "d2i", "d2l", "d2f",
   2029     "i2b", "i2c", "i2s", "lcmp", "fcmpl", "fcmpg",
   2030     "dcmpl", "dcmpg", "ifeq", "ifne", "iflt", "ifge", "ifgt", "ifle",
   2031     "if_icmpeq", "if_icmpne", "if_icmplt", "if_icmpge", "if_icmpgt",
   2032     "if_icmple", "if_acmpeq", "if_acmpne", "goto", "jsr", "ret",
   2033     "tableswitch", "lookupswitch", "ireturn", "lreturn", "freturn",
   2034     "dreturn", "areturn", "return", "getstatic", "putstatic", "getfield",
   2035     "putfield", "invokevirtual", "invokespecial", "invokestatic",
   2036     "invokeinterface", "invokedynamic", "new", "newarray", "anewarray",
   2037     "arraylength", "athrow", "checkcast", "instanceof", "monitorenter",
   2038     "monitorexit", "wide", "multianewarray", "ifnull", "ifnonnull",
   2039     "goto_w", "jsr_w", "breakpoint", ILLEGAL_OPCODE, ILLEGAL_OPCODE,
   2040     ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE,
   2041     ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE,
   2042     ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE,
   2043     ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE,
   2044     ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE,
   2045     ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE,
   2046     ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE,
   2047     ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE,
   2048     ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE,
   2049     ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE,
   2050     ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE,
   2051     ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE,
   2052     ILLEGAL_OPCODE, "impdep1", "impdep2"
   2053   };
   2054 
   2055   /**
   2056    * @since 6.0
   2057    */
   2058   public static final int OPCODE_NAMES_LENGTH = OPCODE_NAMES.length;
   2059 
   2060 
   2061   /**
   2062    * @since 6.0
   2063    */
   2064   public static String getOpcodeName(final int index) {
   2065       return OPCODE_NAMES[index];
   2066   }
   2067 
   2068   /**
   2069    * Number of words consumed on operand stack by instructions.
   2070    * Indexed by opcode.  CONSUME_STACK[FALOAD] = number of words
   2071    * consumed from the stack by a faload instruction.
   2072    */
   2073   private static final int[] CONSUME_STACK = {
   2074     0/*nop*/, 0/*aconst_null*/, 0/*iconst_m1*/, 0/*iconst_0*/, 0/*iconst_1*/,
   2075     0/*iconst_2*/, 0/*iconst_3*/, 0/*iconst_4*/, 0/*iconst_5*/, 0/*lconst_0*/,
   2076     0/*lconst_1*/, 0/*fconst_0*/, 0/*fconst_1*/, 0/*fconst_2*/, 0/*dconst_0*/,
   2077     0/*dconst_1*/, 0/*bipush*/, 0/*sipush*/, 0/*ldc*/, 0/*ldc_w*/, 0/*ldc2_w*/, 0/*iload*/,
   2078     0/*lload*/, 0/*fload*/, 0/*dload*/, 0/*aload*/, 0/*iload_0*/, 0/*iload_1*/, 0/*iload_2*/,
   2079     0/*iload_3*/, 0/*lload_0*/, 0/*lload_1*/, 0/*lload_2*/, 0/*lload_3*/, 0/*fload_0*/,
   2080     0/*fload_1*/, 0/*fload_2*/, 0/*fload_3*/, 0/*dload_0*/, 0/*dload_1*/, 0/*dload_2*/,
   2081     0/*dload_3*/, 0/*aload_0*/, 0/*aload_1*/, 0/*aload_2*/, 0/*aload_3*/, 2/*iaload*/,
   2082     2/*laload*/, 2/*faload*/, 2/*daload*/, 2/*aaload*/, 2/*baload*/, 2/*caload*/, 2/*saload*/,
   2083     1/*istore*/, 2/*lstore*/, 1/*fstore*/, 2/*dstore*/, 1/*astore*/, 1/*istore_0*/,
   2084     1/*istore_1*/, 1/*istore_2*/, 1/*istore_3*/, 2/*lstore_0*/, 2/*lstore_1*/,
   2085     2/*lstore_2*/, 2/*lstore_3*/, 1/*fstore_0*/, 1/*fstore_1*/, 1/*fstore_2*/,
   2086     1/*fstore_3*/, 2/*dstore_0*/, 2/*dstore_1*/, 2/*dstore_2*/, 2/*dstore_3*/,
   2087     1/*astore_0*/, 1/*astore_1*/, 1/*astore_2*/, 1/*astore_3*/, 3/*iastore*/, 4/*lastore*/,
   2088     3/*fastore*/, 4/*dastore*/, 3/*aastore*/, 3/*bastore*/, 3/*castore*/, 3/*sastore*/,
   2089     1/*pop*/, 2/*pop2*/, 1/*dup*/, 2/*dup_x1*/, 3/*dup_x2*/, 2/*dup2*/, 3/*dup2_x1*/,
   2090     4/*dup2_x2*/, 2/*swap*/, 2/*iadd*/, 4/*ladd*/, 2/*fadd*/, 4/*dadd*/, 2/*isub*/, 4/*lsub*/,
   2091     2/*fsub*/, 4/*dsub*/, 2/*imul*/, 4/*lmul*/, 2/*fmul*/, 4/*dmul*/, 2/*idiv*/, 4/*ldiv*/,
   2092     2/*fdiv*/, 4/*ddiv*/, 2/*irem*/, 4/*lrem*/, 2/*frem*/, 4/*drem*/, 1/*ineg*/, 2/*lneg*/,
   2093     1/*fneg*/, 2/*dneg*/, 2/*ishl*/, 3/*lshl*/, 2/*ishr*/, 3/*lshr*/, 2/*iushr*/, 3/*lushr*/,
   2094     2/*iand*/, 4/*land*/, 2/*ior*/, 4/*lor*/, 2/*ixor*/, 4/*lxor*/, 0/*iinc*/,
   2095     1/*i2l*/, 1/*i2f*/, 1/*i2d*/, 2/*l2i*/, 2/*l2f*/, 2/*l2d*/, 1/*f2i*/, 1/*f2l*/,
   2096     1/*f2d*/, 2/*d2i*/, 2/*d2l*/, 2/*d2f*/, 1/*i2b*/, 1/*i2c*/, 1/*i2s*/,
   2097     4/*lcmp*/, 2/*fcmpl*/, 2/*fcmpg*/, 4/*dcmpl*/, 4/*dcmpg*/, 1/*ifeq*/, 1/*ifne*/,
   2098     1/*iflt*/, 1/*ifge*/, 1/*ifgt*/, 1/*ifle*/, 2/*if_icmpeq*/, 2/*if_icmpne*/, 2/*if_icmplt*/,
   2099     2 /*if_icmpge*/, 2/*if_icmpgt*/, 2/*if_icmple*/, 2/*if_acmpeq*/, 2/*if_acmpne*/,
   2100     0/*goto*/, 0/*jsr*/, 0/*ret*/, 1/*tableswitch*/, 1/*lookupswitch*/, 1/*ireturn*/,
   2101     2/*lreturn*/, 1/*freturn*/, 2/*dreturn*/, 1/*areturn*/, 0/*return*/, 0/*getstatic*/,
   2102     UNPREDICTABLE/*putstatic*/, 1/*getfield*/, UNPREDICTABLE/*putfield*/,
   2103     UNPREDICTABLE/*invokevirtual*/, UNPREDICTABLE/*invokespecial*/,
   2104     UNPREDICTABLE/*invokestatic*/,
   2105     UNPREDICTABLE/*invokeinterface*/, UNPREDICTABLE/*invokedynamic*/, 0/*new*/, 1/*newarray*/, 1/*anewarray*/,
   2106     1/*arraylength*/, 1/*athrow*/, 1/*checkcast*/, 1/*instanceof*/, 1/*monitorenter*/,
   2107     1/*monitorexit*/, 0/*wide*/, UNPREDICTABLE/*multianewarray*/, 1/*ifnull*/, 1/*ifnonnull*/,
   2108     0/*goto_w*/, 0/*jsr_w*/, 0/*breakpoint*/, UNDEFINED, UNDEFINED,
   2109     UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
   2110     UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
   2111     UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
   2112     UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
   2113     UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
   2114     UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
   2115     UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
   2116     UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
   2117     UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
   2118     UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
   2119     UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
   2120     UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
   2121     UNDEFINED, UNPREDICTABLE/*impdep1*/, UNPREDICTABLE/*impdep2*/
   2122   };
   2123 
   2124   /**
   2125    *
   2126    * @param index
   2127    * @return Number of words consumed on operand stack
   2128    * @since 6.0
   2129    */
   2130   public static int getConsumeStack(final int index) {
   2131       return CONSUME_STACK[index];
   2132   }
   2133 
   2134 
   2135   /**
   2136    * Number of words produced onto operand stack by instructions.
   2137    * Indexed by opcode.  CONSUME_STACK[DALOAD] = number of words
   2138    * consumed from the stack by a daload instruction.
   2139    */
   2140   private static final int[] PRODUCE_STACK = {
   2141     0/*nop*/, 1/*aconst_null*/, 1/*iconst_m1*/, 1/*iconst_0*/, 1/*iconst_1*/,
   2142     1/*iconst_2*/, 1/*iconst_3*/, 1/*iconst_4*/, 1/*iconst_5*/, 2/*lconst_0*/,
   2143     2/*lconst_1*/, 1/*fconst_0*/, 1/*fconst_1*/, 1/*fconst_2*/, 2/*dconst_0*/,
   2144     2/*dconst_1*/, 1/*bipush*/, 1/*sipush*/, 1/*ldc*/, 1/*ldc_w*/, 2/*ldc2_w*/, 1/*iload*/,
   2145     2/*lload*/, 1/*fload*/, 2/*dload*/, 1/*aload*/, 1/*iload_0*/, 1/*iload_1*/, 1/*iload_2*/,
   2146     1/*iload_3*/, 2/*lload_0*/, 2/*lload_1*/, 2/*lload_2*/, 2/*lload_3*/, 1/*fload_0*/,
   2147     1/*fload_1*/, 1/*fload_2*/, 1/*fload_3*/, 2/*dload_0*/, 2/*dload_1*/, 2/*dload_2*/,
   2148     2/*dload_3*/, 1/*aload_0*/, 1/*aload_1*/, 1/*aload_2*/, 1/*aload_3*/, 1/*iaload*/,
   2149     2/*laload*/, 1/*faload*/, 2/*daload*/, 1/*aaload*/, 1/*baload*/, 1/*caload*/, 1/*saload*/,
   2150     0/*istore*/, 0/*lstore*/, 0/*fstore*/, 0/*dstore*/, 0/*astore*/, 0/*istore_0*/,
   2151     0/*istore_1*/, 0/*istore_2*/, 0/*istore_3*/, 0/*lstore_0*/, 0/*lstore_1*/,
   2152     0/*lstore_2*/, 0/*lstore_3*/, 0/*fstore_0*/, 0/*fstore_1*/, 0/*fstore_2*/,
   2153     0/*fstore_3*/, 0/*dstore_0*/, 0/*dstore_1*/, 0/*dstore_2*/, 0/*dstore_3*/,
   2154     0/*astore_0*/, 0/*astore_1*/, 0/*astore_2*/, 0/*astore_3*/, 0/*iastore*/, 0/*lastore*/,
   2155     0/*fastore*/, 0/*dastore*/, 0/*aastore*/, 0/*bastore*/, 0/*castore*/, 0/*sastore*/,
   2156     0/*pop*/, 0/*pop2*/, 2/*dup*/, 3/*dup_x1*/, 4/*dup_x2*/, 4/*dup2*/, 5/*dup2_x1*/,
   2157     6/*dup2_x2*/, 2/*swap*/, 1/*iadd*/, 2/*ladd*/, 1/*fadd*/, 2/*dadd*/, 1/*isub*/, 2/*lsub*/,
   2158     1/*fsub*/, 2/*dsub*/, 1/*imul*/, 2/*lmul*/, 1/*fmul*/, 2/*dmul*/, 1/*idiv*/, 2/*ldiv*/,
   2159     1/*fdiv*/, 2/*ddiv*/, 1/*irem*/, 2/*lrem*/, 1/*frem*/, 2/*drem*/, 1/*ineg*/, 2/*lneg*/,
   2160     1/*fneg*/, 2/*dneg*/, 1/*ishl*/, 2/*lshl*/, 1/*ishr*/, 2/*lshr*/, 1/*iushr*/, 2/*lushr*/,
   2161     1/*iand*/, 2/*land*/, 1/*ior*/, 2/*lor*/, 1/*ixor*/, 2/*lxor*/,
   2162     0/*iinc*/, 2/*i2l*/, 1/*i2f*/, 2/*i2d*/, 1/*l2i*/, 1/*l2f*/, 2/*l2d*/, 1/*f2i*/,
   2163     2/*f2l*/, 2/*f2d*/, 1/*d2i*/, 2/*d2l*/, 1/*d2f*/,
   2164     1/*i2b*/, 1/*i2c*/, 1/*i2s*/, 1/*lcmp*/, 1/*fcmpl*/, 1/*fcmpg*/,
   2165     1/*dcmpl*/, 1/*dcmpg*/, 0/*ifeq*/, 0/*ifne*/, 0/*iflt*/, 0/*ifge*/, 0/*ifgt*/, 0/*ifle*/,
   2166     0/*if_icmpeq*/, 0/*if_icmpne*/, 0/*if_icmplt*/, 0/*if_icmpge*/, 0/*if_icmpgt*/,
   2167     0/*if_icmple*/, 0/*if_acmpeq*/, 0/*if_acmpne*/, 0/*goto*/, 1/*jsr*/, 0/*ret*/,
   2168     0/*tableswitch*/, 0/*lookupswitch*/, 0/*ireturn*/, 0/*lreturn*/, 0/*freturn*/,
   2169     0/*dreturn*/, 0/*areturn*/, 0/*return*/, UNPREDICTABLE/*getstatic*/, 0/*putstatic*/,
   2170     UNPREDICTABLE/*getfield*/, 0/*putfield*/, UNPREDICTABLE/*invokevirtual*/,
   2171     UNPREDICTABLE/*invokespecial*/, UNPREDICTABLE/*invokestatic*/,
   2172     UNPREDICTABLE/*invokeinterface*/, UNPREDICTABLE/*invokedynamic*/, 1/*new*/, 1/*newarray*/, 1/*anewarray*/,
   2173     1/*arraylength*/, 1/*athrow*/, 1/*checkcast*/, 1/*instanceof*/, 0/*monitorenter*/,
   2174     0/*monitorexit*/, 0/*wide*/, 1/*multianewarray*/, 0/*ifnull*/, 0/*ifnonnull*/,
   2175     0/*goto_w*/, 1/*jsr_w*/, 0/*breakpoint*/, UNDEFINED, UNDEFINED,
   2176     UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
   2177     UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
   2178     UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
   2179     UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
   2180     UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
   2181     UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
   2182     UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
   2183     UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
   2184     UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
   2185     UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
   2186     UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
   2187     UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
   2188     UNDEFINED, UNPREDICTABLE/*impdep1*/, UNPREDICTABLE/*impdep2*/
   2189   };
   2190 
   2191   /**
   2192    *
   2193    * @param index
   2194    * @return Number of words produced onto operand stack
   2195    * @since 6.0
   2196    */
   2197   public static int getProduceStack(final int index) {
   2198       return PRODUCE_STACK[index];
   2199   }
   2200 
   2201   /** Attributes and their corresponding names.
   2202    */
   2203   public static final byte ATTR_UNKNOWN                                 = -1;
   2204   public static final byte ATTR_SOURCE_FILE                             = 0;
   2205   public static final byte ATTR_CONSTANT_VALUE                          = 1;
   2206   public static final byte ATTR_CODE                                    = 2;
   2207   public static final byte ATTR_EXCEPTIONS                              = 3;
   2208   public static final byte ATTR_LINE_NUMBER_TABLE                       = 4;
   2209   public static final byte ATTR_LOCAL_VARIABLE_TABLE                    = 5;
   2210   public static final byte ATTR_INNER_CLASSES                           = 6;
   2211   public static final byte ATTR_SYNTHETIC                               = 7;
   2212   public static final byte ATTR_DEPRECATED                              = 8;
   2213   public static final byte ATTR_PMG                                     = 9;
   2214   public static final byte ATTR_SIGNATURE                               = 10;
   2215   public static final byte ATTR_STACK_MAP                               = 11;
   2216   public static final byte ATTR_RUNTIME_VISIBLE_ANNOTATIONS             = 12;
   2217   public static final byte ATTR_RUNTIME_INVISIBLE_ANNOTATIONS           = 13;
   2218   public static final byte ATTR_RUNTIME_VISIBLE_PARAMETER_ANNOTATIONS   = 14;
   2219   public static final byte ATTR_RUNTIME_INVISIBLE_PARAMETER_ANNOTATIONS = 15;
   2220   public static final byte ATTR_ANNOTATION_DEFAULT                      = 16;
   2221   public static final byte ATTR_LOCAL_VARIABLE_TYPE_TABLE               = 17;
   2222   public static final byte ATTR_ENCLOSING_METHOD                        = 18;
   2223   public static final byte ATTR_STACK_MAP_TABLE                         = 19;
   2224   public static final byte ATTR_BOOTSTRAP_METHODS                       = 20;
   2225   public static final byte ATTR_METHOD_PARAMETERS                       = 21;
   2226 
   2227   public static final short KNOWN_ATTRIBUTES = 22; // count of attributes
   2228 
   2229   private static final String[] ATTRIBUTE_NAMES = {
   2230     "SourceFile", "ConstantValue", "Code", "Exceptions",
   2231     "LineNumberTable", "LocalVariableTable",
   2232     "InnerClasses", "Synthetic", "Deprecated",
   2233     "PMGClass", "Signature", "StackMap",
   2234     "RuntimeVisibleAnnotations", "RuntimeInvisibleAnnotations",
   2235     "RuntimeVisibleParameterAnnotations", "RuntimeInvisibleParameterAnnotations",
   2236     "AnnotationDefault", "LocalVariableTypeTable", "EnclosingMethod", "StackMapTable",
   2237     "BootstrapMethods", "MethodParameters"
   2238   };
   2239 
   2240   /**
   2241    *
   2242    * @param index
   2243    * @return the attribute name
   2244    * @since 6.0
   2245    */
   2246   public static String getAttributeName(final int index) {
   2247       return ATTRIBUTE_NAMES[index];
   2248   }
   2249 
   2250   /** Constants used in the StackMap attribute.
   2251    */
   2252   public static final byte ITEM_Bogus      = 0;
   2253   public static final byte ITEM_Integer    = 1;
   2254   public static final byte ITEM_Float      = 2;
   2255   public static final byte ITEM_Double     = 3;
   2256   public static final byte ITEM_Long       = 4;
   2257   public static final byte ITEM_Null       = 5;
   2258   public static final byte ITEM_InitObject = 6;
   2259   public static final byte ITEM_Object     = 7;
   2260   public static final byte ITEM_NewObject  = 8;
   2261 
   2262   private static final String[] ITEM_NAMES = {
   2263     "Bogus", "Integer", "Float", "Double", "Long",
   2264     "Null", "InitObject", "Object", "NewObject"
   2265   };
   2266 
   2267   /**
   2268    *
   2269    * @param index
   2270    * @return the item name
   2271    * @since 6.0
   2272    */
   2273   public static String getItemName(final int index) {
   2274       return ITEM_NAMES[index];
   2275   }
   2276 
   2277   /** Constants used to identify StackMapEntry types.
   2278    *
   2279    * For those types which can specify a range, the
   2280    * constant names the lowest value.
   2281    */
   2282   public static final int SAME_FRAME = 0;
   2283   public static final int SAME_LOCALS_1_STACK_ITEM_FRAME = 64;
   2284   public static final int SAME_LOCALS_1_STACK_ITEM_FRAME_EXTENDED = 247;
   2285   public static final int CHOP_FRAME = 248;
   2286   public static final int SAME_FRAME_EXTENDED = 251;
   2287   public static final int APPEND_FRAME = 252;
   2288   public static final int FULL_FRAME = 255;
   2289 
   2290   /** Constants that define the maximum value of
   2291    * those constants which store ranges. */
   2292 
   2293   public static final int SAME_FRAME_MAX = 63;
   2294   public static final int SAME_LOCALS_1_STACK_ITEM_FRAME_MAX = 127;
   2295   public static final int CHOP_FRAME_MAX = 250;
   2296   public static final int APPEND_FRAME_MAX = 254;
   2297 
   2298 
   2299   // Constants defining the behavior of the Method Handles (JVMS 5.4.3.5)
   2300 
   2301   public static final byte REF_getField         = 1;
   2302   public static final byte REF_getStatic        = 2;
   2303   public static final byte REF_putField         = 3;
   2304   public static final byte REF_putStatic        = 4;
   2305   public static final byte REF_invokeVirtual    = 5;
   2306   public static final byte REF_invokeStatic     = 6;
   2307   public static final byte REF_invokeSpecial    = 7;
   2308   public static final byte REF_newInvokeSpecial = 8;
   2309   public static final byte REF_invokeInterface  = 9;
   2310 
   2311   /**
   2312    * The names of the reference_kinds of a CONSTANT_MethodHandle_info.
   2313    */
   2314   private static final String[] METHODHANDLE_NAMES = {
   2315       "", "getField", "getStatic", "putField", "putStatic", "invokeVirtual",
   2316       "invokeStatic", "invokeSpecial", "newInvokeSpecial", "invokeInterface" };
   2317 
   2318   /**
   2319    *
   2320    * @param index
   2321    * @return the method handle name
   2322    * @since 6.0
   2323    */
   2324   public static String getMethodHandleName(final int index) {
   2325       return METHODHANDLE_NAMES[index];
   2326   }
   2327 
   2328   private Const() { } // not instantiable
   2329 
   2330 }
   2331