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