1 /*
2  * Licensed to the Apache Software Foundation (ASF) under one or more
3  * contributor license agreements.  See the NOTICE file distributed with
4  * this work for additional information regarding copyright ownership.
5  * The ASF licenses this file to You under the Apache License, Version 2.0
6  * (the "License"); you may not use this file except in compliance with
7  * the License.  You may obtain a copy of the License at
8  *
9  *      http://www.apache.org/licenses/LICENSE-2.0
10  *
11  *  Unless required by applicable law or agreed to in writing, software
12  *  distributed under the License is distributed on an "AS IS" BASIS,
13  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  *  See the License for the specific language governing permissions and
15  *  limitations under the License.
16  *
17  */
18 package org.apache.bcel;
19 
20 /**
21  * Constants for the project, mostly defined in the JVM specification.
22  *
23  * @version $Id$
24  * @deprecated (since 6.0) DO NOT USE - use Const instead
25  */
26 @Deprecated
27 public interface Constants {
28 
29   /** Major version number of class files for Java 1.1.
30    *  @see #MINOR_1_1
31    *  */
32   short MAJOR_1_1 = 45;
33 
34   /** Minor version number of class files for Java 1.1.
35    *  @see #MAJOR_1_1
36    *  */
37   short MINOR_1_1 = 3;
38 
39   /** Major version number of class files for Java 1.2.
40    *  @see #MINOR_1_2
41    *  */
42   short MAJOR_1_2 = 46;
43 
44   /** Minor version number of class files for Java 1.2.
45    *  @see #MAJOR_1_2
46    *  */
47   short MINOR_1_2 = 0;
48 
49   /** Major version number of class files for Java 1.2.
50    *  @see #MINOR_1_2
51    *  */
52   short MAJOR_1_3 = 47;
53 
54   /** Minor version number of class files for Java 1.3.
55    *  @see #MAJOR_1_3
56    *  */
57   short MINOR_1_3 = 0;
58 
59   /** Major version number of class files for Java 1.3.
60    *  @see #MINOR_1_3
61    *  */
62   short MAJOR_1_4 = 48;
63 
64   /** Minor version number of class files for Java 1.4.
65    *  @see #MAJOR_1_4
66    *  */
67   short MINOR_1_4 = 0;
68 
69   /** Major version number of class files for Java 1.4.
70    *  @see #MINOR_1_4
71    *  */
72   short MAJOR_1_5 = 49;
73 
74   /** Minor version number of class files for Java 1.5.
75    *  @see #MAJOR_1_5
76    *  */
77   short MINOR_1_5 = 0;
78 
79 
80   /** Default major version number.  Class file is for Java 1.1.
81    *  @see #MAJOR_1_1
82    *  */
83   short MAJOR = MAJOR_1_1;
84 
85   /** Default major version number.  Class file is for Java 1.1.
86    *  @see #MAJOR_1_1
87    *  */
88   short MINOR     = MINOR_1_1;
89 
90   /** Maximum value for an unsigned short.
91    */
92   int MAX_SHORT = 65535; // 2^16 - 1
93 
94   /** Maximum value for an unsigned byte.
95    */
96   int MAX_BYTE  = 255; // 2^8 - 1
97 
98   /** One of the access flags for fields, methods, or classes.
99    *  @see "<a href='http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.5'>
100    *  Flag definitions for Fields in the Java Virtual Machine Specification (Java SE 8 Edition).</a>"
101    *  @see "<a href='http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.6'>
102    *  Flag definitions for Methods in the Java Virtual Machine Specification (Java SE 8 Edition).</a>"
103    *  @see "<a href='http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.7.6-300-D.1-D.1'>
104    *  Flag definitions for Classes in the Java Virtual Machine Specification (Java SE 8 Edition).</a>"
105    */
106   short ACC_PUBLIC       = 0x0001;
107 
108   /** One of the access flags for fields, methods, or classes.
109    *  @see #ACC_PUBLIC
110    */
111   short ACC_PRIVATE      = 0x0002;
112 
113   /** One of the access flags for fields, methods, or classes.
114    *  @see #ACC_PUBLIC
115    */
116   short ACC_PROTECTED    = 0x0004;
117 
118   /** One of the access flags for fields, methods, or classes.
119    *  @see #ACC_PUBLIC
120    */
121   short ACC_STATIC       = 0x0008;
122 
123   /** One of the access flags for fields, methods, or classes.
124    *  @see #ACC_PUBLIC
125    */
126   short ACC_FINAL        = 0x0010;
127 
128   /** One of the access flags for fields, methods, or classes.
129    *  @see #ACC_PUBLIC
130    */
131   short ACC_SYNCHRONIZED = 0x0020;
132 
133   /** One of the access flags for fields, methods, or classes.
134    *  @see #ACC_PUBLIC
135    */
136   short ACC_VOLATILE     = 0x0040;
137 
138   /** One of the access flags for fields, methods, or classes.
139    *  @see #ACC_PUBLIC
140    */
141   short ACC_BRIDGE       = 0x0040;
142 
143   /** One of the access flags for fields, methods, or classes.
144    *  @see #ACC_PUBLIC
145    */
146   short ACC_TRANSIENT    = 0x0080;
147 
148   /** One of the access flags for fields, methods, or classes.
149    *  @see #ACC_PUBLIC
150    */
151   short ACC_VARARGS      = 0x0080;
152 
153   /** One of the access flags for fields, methods, or classes.
154    *  @see #ACC_PUBLIC
155    */
156   short ACC_NATIVE       = 0x0100;
157 
158   /** One of the access flags for fields, methods, or classes.
159    *  @see #ACC_PUBLIC
160    */
161   short ACC_INTERFACE    = 0x0200;
162 
163   /** One of the access flags for fields, methods, or classes.
164    *  @see #ACC_PUBLIC
165    */
166   short ACC_ABSTRACT     = 0x0400;
167 
168   /** One of the access flags for fields, methods, or classes.
169    *  @see #ACC_PUBLIC
170    */
171   short ACC_STRICT       = 0x0800;
172 
173   /** One of the access flags for fields, methods, or classes.
174    *  @see #ACC_PUBLIC
175    */
176   short ACC_SYNTHETIC    = 0x1000;
177 
178   /** One of the access flags for fields, methods, or classes.
179    *  @see #ACC_PUBLIC
180    */
181   short ACC_ANNOTATION   = 0x2000;
182 
183   /** One of the access flags for fields, methods, or classes.
184    *  @see #ACC_PUBLIC
185    */
186   short ACC_ENUM         = 0x4000;
187 
188   // Applies to classes compiled by new compilers only
189   /** One of the access flags for fields, methods, or classes.
190    *  @see #ACC_PUBLIC
191    */
192   short ACC_SUPER        = 0x0020;
193 
194   /** One of the access flags for fields, methods, or classes.
195    *  @see #ACC_PUBLIC
196    */
197   short MAX_ACC_FLAG     = ACC_ENUM;
198 
199   /** The names of the access flags. */
200   String[] ACCESS_NAMES = {
201     "public", "private", "protected", "static", "final", "synchronized",
202     "volatile", "transient", "native", "interface", "abstract", "strictfp",
203     "synthetic", "annotation", "enum"
204   };
205 
206   /** Marks a constant pool entry as type UTF-8.  */
207   byte CONSTANT_Utf8               = 1;
208 
209   /** Marks a constant pool entry as type Integer.  */
210   byte CONSTANT_Integer            = 3;
211 
212   /** Marks a constant pool entry as type Float.  */
213   byte CONSTANT_Float              = 4;
214 
215   /** Marks a constant pool entry as type Long.  */
216   byte CONSTANT_Long               = 5;
217 
218   /** Marks a constant pool entry as type Double.  */
219   byte CONSTANT_Double             = 6;
220 
221   /** Marks a constant pool entry as a Class.  */
222   byte CONSTANT_Class              = 7;
223 
224   /** Marks a constant pool entry as a Field Reference.  */
225   byte CONSTANT_Fieldref           = 9;
226 
227   /** Marks a constant pool entry as type String.  */
228   byte CONSTANT_String             = 8;
229 
230   /** Marks a constant pool entry as a Method Reference.  */
231   byte CONSTANT_Methodref          = 10;
232 
233   /** Marks a constant pool entry as an Interface Method Reference.  */
234   byte CONSTANT_InterfaceMethodref = 11;
235 
236   /** Marks a constant pool entry as a name and type.  */
237   byte CONSTANT_NameAndType        = 12;
238 
239   /** The names of the types of entries in a constant pool. */
240   String[] CONSTANT_NAMES = {
241     "", "CONSTANT_Utf8", "", "CONSTANT_Integer",
242     "CONSTANT_Float", "CONSTANT_Long", "CONSTANT_Double",
243     "CONSTANT_Class", "CONSTANT_String", "CONSTANT_Fieldref",
244     "CONSTANT_Methodref", "CONSTANT_InterfaceMethodref",
245     "CONSTANT_NameAndType" };
246 
247   /** The name of the static initializer, also called &quot;class
248    *  initialization method&quot; or &quot;interface initialization
249    *   method&quot;. This is &quot;&lt;clinit&gt;&quot;.
250    */
251   String STATIC_INITIALIZER_NAME = "<clinit>";
252 
253   /** The name of every constructor method in a class, also called
254    * &quot;instance initialization method&quot;. This is &quot;&lt;init&gt;&quot;.
255    */
256   String CONSTRUCTOR_NAME = "<init>";
257 
258   /** The names of the interfaces implemented by arrays */
259   String[] INTERFACES_IMPLEMENTED_BY_ARRAYS = {"java.lang.Cloneable", "java.io.Serializable"};
260 
261   /**
262    * One of the limitations of the Java Virtual Machine.
263    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.11">
264    * The Java Virtual Machine Specification, Second Edition, page 152, chapter 4.10.</a>
265    */
266   int MAX_CP_ENTRIES     = 65535;
267 
268   /**
269    * One of the limitations of the Java Virtual Machine.
270    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.11">
271    * The Java Virtual Machine Specification, Second Edition, page 152, chapter 4.10.</a>
272    */
273   int MAX_CODE_SIZE      = 65536; //bytes
274 
275   /** Java VM opcode.
276    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
277    * Opcode definitions in The Java Virtual Machine Specification</a> */
278   short NOP              = 0;
279 
280   /** Java VM opcode.
281    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
282    * Opcode definitions in The Java Virtual Machine Specification</a> */
283   short ACONST_NULL      = 1;
284 
285   /** Java VM opcode.
286    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
287    * Opcode definitions in The Java Virtual Machine Specification</a> */
288   short ICONST_M1        = 2;
289   /** Java VM opcode.
290    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
291    * Opcode definitions in The Java Virtual Machine Specification</a> */
292   short ICONST_0         = 3;
293   /** Java VM opcode.
294    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
295    * Opcode definitions in The Java Virtual Machine Specification</a> */
296   short ICONST_1         = 4;
297   /** Java VM opcode.
298    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
299    * Opcode definitions in The Java Virtual Machine Specification</a> */
300   short ICONST_2         = 5;
301   /** Java VM opcode.
302    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
303    * Opcode definitions in The Java Virtual Machine Specification</a> */
304   short ICONST_3         = 6;
305   /** Java VM opcode.
306    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
307    * Opcode definitions in The Java Virtual Machine Specification</a> */
308   short ICONST_4         = 7;
309   /** Java VM opcode.
310    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
311    * Opcode definitions in The Java Virtual Machine Specification</a> */
312   short ICONST_5         = 8;
313   /** Java VM opcode.
314    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
315    * Opcode definitions in The Java Virtual Machine Specification</a> */
316   short LCONST_0         = 9;
317   /** Java VM opcode.
318    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
319    * Opcode definitions in The Java Virtual Machine Specification</a> */
320   short LCONST_1         = 10;
321   /** Java VM opcode.
322    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
323    * Opcode definitions in The Java Virtual Machine Specification</a> */
324   short FCONST_0         = 11;
325   /** Java VM opcode.
326    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
327    * Opcode definitions in The Java Virtual Machine Specification</a> */
328   short FCONST_1         = 12;
329   /** Java VM opcode.
330    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
331    * Opcode definitions in The Java Virtual Machine Specification</a> */
332   short FCONST_2         = 13;
333   /** Java VM opcode.
334    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
335    * Opcode definitions in The Java Virtual Machine Specification</a> */
336   short DCONST_0         = 14;
337   /** Java VM opcode.
338    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
339    * Opcode definitions in The Java Virtual Machine Specification</a> */
340   short DCONST_1         = 15;
341   /** Java VM opcode.
342    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
343    * Opcode definitions in The Java Virtual Machine Specification</a> */
344   short BIPUSH           = 16;
345   /** Java VM opcode.
346    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
347    * Opcode definitions in The Java Virtual Machine Specification</a> */
348   short SIPUSH           = 17;
349   /** Java VM opcode.
350    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
351    * Opcode definitions in The Java Virtual Machine Specification</a> */
352   short LDC              = 18;
353   /** Java VM opcode.
354    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
355    * Opcode definitions in The Java Virtual Machine Specification</a> */
356   short LDC_W            = 19;
357   /** Java VM opcode.
358    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
359    * Opcode definitions in The Java Virtual Machine Specification</a> */
360   short LDC2_W           = 20;
361   /** Java VM opcode.
362    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
363    * Opcode definitions in The Java Virtual Machine Specification</a> */
364   short ILOAD            = 21;
365   /** Java VM opcode.
366    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
367    * Opcode definitions in The Java Virtual Machine Specification</a> */
368   short LLOAD            = 22;
369   /** Java VM opcode.
370    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
371    * Opcode definitions in The Java Virtual Machine Specification</a> */
372   short FLOAD            = 23;
373   /** Java VM opcode.
374    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
375    * Opcode definitions in The Java Virtual Machine Specification</a> */
376   short DLOAD            = 24;
377   /** Java VM opcode.
378    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
379    * Opcode definitions in The Java Virtual Machine Specification</a> */
380   short ALOAD            = 25;
381   /** Java VM opcode.
382    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
383    * Opcode definitions in The Java Virtual Machine Specification</a> */
384   short ILOAD_0          = 26;
385   /** Java VM opcode.
386    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
387    * Opcode definitions in The Java Virtual Machine Specification</a> */
388   short ILOAD_1          = 27;
389   /** Java VM opcode.
390    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
391    * Opcode definitions in The Java Virtual Machine Specification</a> */
392   short ILOAD_2          = 28;
393   /** Java VM opcode.
394    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
395    * Opcode definitions in The Java Virtual Machine Specification</a> */
396   short ILOAD_3          = 29;
397   /** Java VM opcode.
398    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
399    * Opcode definitions in The Java Virtual Machine Specification</a> */
400   short LLOAD_0          = 30;
401   /** Java VM opcode.
402    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
403    * Opcode definitions in The Java Virtual Machine Specification</a> */
404   short LLOAD_1          = 31;
405   /** Java VM opcode.
406    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
407    * Opcode definitions in The Java Virtual Machine Specification</a> */
408   short LLOAD_2          = 32;
409   /** Java VM opcode.
410    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
411    * Opcode definitions in The Java Virtual Machine Specification</a> */
412   short LLOAD_3          = 33;
413   /** Java VM opcode.
414    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
415    * Opcode definitions in The Java Virtual Machine Specification</a> */
416   short FLOAD_0          = 34;
417   /** Java VM opcode.
418    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
419    * Opcode definitions in The Java Virtual Machine Specification</a> */
420   short FLOAD_1          = 35;
421   /** Java VM opcode.
422    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
423    * Opcode definitions in The Java Virtual Machine Specification</a> */
424   short FLOAD_2          = 36;
425   /** Java VM opcode.
426    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
427    * Opcode definitions in The Java Virtual Machine Specification</a> */
428   short FLOAD_3          = 37;
429   /** Java VM opcode.
430    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
431    * Opcode definitions in The Java Virtual Machine Specification</a> */
432   short DLOAD_0          = 38;
433   /** Java VM opcode.
434    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
435    * Opcode definitions in The Java Virtual Machine Specification</a> */
436   short DLOAD_1          = 39;
437   /** Java VM opcode.
438    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
439    * Opcode definitions in The Java Virtual Machine Specification</a> */
440   short DLOAD_2          = 40;
441   /** Java VM opcode.
442    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
443    * Opcode definitions in The Java Virtual Machine Specification</a> */
444   short DLOAD_3          = 41;
445   /** Java VM opcode.
446    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
447    * Opcode definitions in The Java Virtual Machine Specification</a> */
448   short ALOAD_0          = 42;
449   /** Java VM opcode.
450    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
451    * Opcode definitions in The Java Virtual Machine Specification</a> */
452   short ALOAD_1          = 43;
453   /** Java VM opcode.
454    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
455    * Opcode definitions in The Java Virtual Machine Specification</a> */
456   short ALOAD_2          = 44;
457   /** Java VM opcode.
458    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
459    * Opcode definitions in The Java Virtual Machine Specification</a> */
460   short ALOAD_3          = 45;
461   /** Java VM opcode.
462    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
463    * Opcode definitions in The Java Virtual Machine Specification</a> */
464   short IALOAD           = 46;
465   /** Java VM opcode.
466    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
467    * Opcode definitions in The Java Virtual Machine Specification</a> */
468   short LALOAD           = 47;
469   /** Java VM opcode.
470    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
471    * Opcode definitions in The Java Virtual Machine Specification</a> */
472   short FALOAD           = 48;
473   /** Java VM opcode.
474    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
475    * Opcode definitions in The Java Virtual Machine Specification</a> */
476   short DALOAD           = 49;
477   /** Java VM opcode.
478    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
479    * Opcode definitions in The Java Virtual Machine Specification</a> */
480   short AALOAD           = 50;
481   /** Java VM opcode.
482    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
483    * Opcode definitions in The Java Virtual Machine Specification</a> */
484   short BALOAD           = 51;
485   /** Java VM opcode.
486    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
487    * Opcode definitions in The Java Virtual Machine Specification</a> */
488   short CALOAD           = 52;
489   /** Java VM opcode.
490    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
491    * Opcode definitions in The Java Virtual Machine Specification</a> */
492   short SALOAD           = 53;
493   /** Java VM opcode.
494    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
495    * Opcode definitions in The Java Virtual Machine Specification</a> */
496   short ISTORE           = 54;
497   /** Java VM opcode.
498    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
499    * Opcode definitions in The Java Virtual Machine Specification</a> */
500   short LSTORE           = 55;
501   /** Java VM opcode.
502    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
503    * Opcode definitions in The Java Virtual Machine Specification</a> */
504   short FSTORE           = 56;
505   /** Java VM opcode.
506    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
507    * Opcode definitions in The Java Virtual Machine Specification</a> */
508   short DSTORE           = 57;
509   /** Java VM opcode.
510    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
511    * Opcode definitions in The Java Virtual Machine Specification</a> */
512   short ASTORE           = 58;
513   /** Java VM opcode.
514    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
515    * Opcode definitions in The Java Virtual Machine Specification</a> */
516   short ISTORE_0         = 59;
517   /** Java VM opcode.
518    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
519    * Opcode definitions in The Java Virtual Machine Specification</a> */
520   short ISTORE_1         = 60;
521   /** Java VM opcode.
522    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
523    * Opcode definitions in The Java Virtual Machine Specification</a> */
524   short ISTORE_2         = 61;
525   /** Java VM opcode.
526    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
527    * Opcode definitions in The Java Virtual Machine Specification</a> */
528   short ISTORE_3         = 62;
529   /** Java VM opcode.
530    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
531    * Opcode definitions in The Java Virtual Machine Specification</a> */
532   short LSTORE_0         = 63;
533   /** Java VM opcode.
534    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
535    * Opcode definitions in The Java Virtual Machine Specification</a> */
536   short LSTORE_1         = 64;
537   /** Java VM opcode.
538    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
539    * Opcode definitions in The Java Virtual Machine Specification</a> */
540   short LSTORE_2         = 65;
541   /** Java VM opcode.
542    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
543    * Opcode definitions in The Java Virtual Machine Specification</a> */
544   short LSTORE_3         = 66;
545   /** Java VM opcode.
546    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
547    * Opcode definitions in The Java Virtual Machine Specification</a> */
548   short FSTORE_0         = 67;
549   /** Java VM opcode.
550    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
551    * Opcode definitions in The Java Virtual Machine Specification</a> */
552   short FSTORE_1         = 68;
553   /** Java VM opcode.
554    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
555    * Opcode definitions in The Java Virtual Machine Specification</a> */
556   short FSTORE_2         = 69;
557   /** Java VM opcode.
558    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
559    * Opcode definitions in The Java Virtual Machine Specification</a> */
560   short FSTORE_3         = 70;
561   /** Java VM opcode.
562    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
563    * Opcode definitions in The Java Virtual Machine Specification</a> */
564   short DSTORE_0         = 71;
565   /** Java VM opcode.
566    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
567    * Opcode definitions in The Java Virtual Machine Specification</a> */
568   short DSTORE_1         = 72;
569   /** Java VM opcode.
570    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
571    * Opcode definitions in The Java Virtual Machine Specification</a> */
572   short DSTORE_2         = 73;
573   /** Java VM opcode.
574    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
575    * Opcode definitions in The Java Virtual Machine Specification</a> */
576   short DSTORE_3         = 74;
577   /** Java VM opcode.
578    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
579    * Opcode definitions in The Java Virtual Machine Specification</a> */
580   short ASTORE_0         = 75;
581   /** Java VM opcode.
582    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
583    * Opcode definitions in The Java Virtual Machine Specification</a> */
584   short ASTORE_1         = 76;
585   /** Java VM opcode.
586    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
587    * Opcode definitions in The Java Virtual Machine Specification</a> */
588   short ASTORE_2         = 77;
589   /** Java VM opcode.
590    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
591    * Opcode definitions in The Java Virtual Machine Specification</a> */
592   short ASTORE_3         = 78;
593   /** Java VM opcode.
594    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
595    * Opcode definitions in The Java Virtual Machine Specification</a> */
596   short IASTORE          = 79;
597   /** Java VM opcode.
598    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
599    * Opcode definitions in The Java Virtual Machine Specification</a> */
600   short LASTORE          = 80;
601   /** Java VM opcode.
602    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
603    * Opcode definitions in The Java Virtual Machine Specification</a> */
604   short FASTORE          = 81;
605   /** Java VM opcode.
606    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
607    * Opcode definitions in The Java Virtual Machine Specification</a> */
608   short DASTORE          = 82;
609   /** Java VM opcode.
610    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
611    * Opcode definitions in The Java Virtual Machine Specification</a> */
612   short AASTORE          = 83;
613   /** Java VM opcode.
614    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
615    * Opcode definitions in The Java Virtual Machine Specification</a> */
616   short BASTORE          = 84;
617   /** Java VM opcode.
618    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
619    * Opcode definitions in The Java Virtual Machine Specification</a> */
620   short CASTORE          = 85;
621   /** Java VM opcode.
622    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
623    * Opcode definitions in The Java Virtual Machine Specification</a> */
624   short SASTORE          = 86;
625   /** Java VM opcode.
626    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
627    * Opcode definitions in The Java Virtual Machine Specification</a> */
628   short POP              = 87;
629   /** Java VM opcode.
630    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
631    * Opcode definitions in The Java Virtual Machine Specification</a> */
632   short POP2             = 88;
633   /** Java VM opcode.
634    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
635    * Opcode definitions in The Java Virtual Machine Specification</a> */
636   short DUP              = 89;
637   /** Java VM opcode.
638    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
639    * Opcode definitions in The Java Virtual Machine Specification</a> */
640   short DUP_X1           = 90;
641   /** Java VM opcode.
642    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
643    * Opcode definitions in The Java Virtual Machine Specification</a> */
644   short DUP_X2           = 91;
645   /** Java VM opcode.
646    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
647    * Opcode definitions in The Java Virtual Machine Specification</a> */
648   short DUP2             = 92;
649   /** Java VM opcode.
650    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
651    * Opcode definitions in The Java Virtual Machine Specification</a> */
652   short DUP2_X1          = 93;
653   /** Java VM opcode.
654    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
655    * Opcode definitions in The Java Virtual Machine Specification</a> */
656   short DUP2_X2          = 94;
657   /** Java VM opcode.
658    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
659    * Opcode definitions in The Java Virtual Machine Specification</a> */
660   short SWAP             = 95;
661   /** Java VM opcode.
662    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
663    * Opcode definitions in The Java Virtual Machine Specification</a> */
664   short IADD             = 96;
665   /** Java VM opcode.
666    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
667    * Opcode definitions in The Java Virtual Machine Specification</a> */
668   short LADD             = 97;
669   /** Java VM opcode.
670    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
671    * Opcode definitions in The Java Virtual Machine Specification</a> */
672   short FADD             = 98;
673   /** Java VM opcode.
674    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
675    * Opcode definitions in The Java Virtual Machine Specification</a> */
676   short DADD             = 99;
677   /** Java VM opcode.
678    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
679    * Opcode definitions in The Java Virtual Machine Specification</a> */
680   short ISUB             = 100;
681   /** Java VM opcode.
682    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
683    * Opcode definitions in The Java Virtual Machine Specification</a> */
684   short LSUB             = 101;
685   /** Java VM opcode.
686    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
687    * Opcode definitions in The Java Virtual Machine Specification</a> */
688   short FSUB             = 102;
689   /** Java VM opcode.
690    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
691    * Opcode definitions in The Java Virtual Machine Specification</a> */
692   short DSUB             = 103;
693   /** Java VM opcode.
694    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
695    * Opcode definitions in The Java Virtual Machine Specification</a> */
696   short IMUL             = 104;
697   /** Java VM opcode.
698    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
699    * Opcode definitions in The Java Virtual Machine Specification</a> */
700   short LMUL             = 105;
701   /** Java VM opcode.
702    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
703    * Opcode definitions in The Java Virtual Machine Specification</a> */
704   short FMUL             = 106;
705   /** Java VM opcode.
706    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
707    * Opcode definitions in The Java Virtual Machine Specification</a> */
708   short DMUL             = 107;
709   /** Java VM opcode.
710    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
711    * Opcode definitions in The Java Virtual Machine Specification</a> */
712   short IDIV             = 108;
713   /** Java VM opcode.
714    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
715    * Opcode definitions in The Java Virtual Machine Specification</a> */
716   short LDIV             = 109;
717   /** Java VM opcode.
718    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
719    * Opcode definitions in The Java Virtual Machine Specification</a> */
720   short FDIV             = 110;
721   /** Java VM opcode.
722    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
723    * Opcode definitions in The Java Virtual Machine Specification</a> */
724   short DDIV             = 111;
725   /** Java VM opcode.
726    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
727    * Opcode definitions in The Java Virtual Machine Specification</a> */
728   short IREM             = 112;
729   /** Java VM opcode.
730    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
731    * Opcode definitions in The Java Virtual Machine Specification</a> */
732   short LREM             = 113;
733   /** Java VM opcode.
734    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
735    * Opcode definitions in The Java Virtual Machine Specification</a> */
736   short FREM             = 114;
737   /** Java VM opcode.
738    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
739    * Opcode definitions in The Java Virtual Machine Specification</a> */
740   short DREM             = 115;
741   /** Java VM opcode.
742    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
743    * Opcode definitions in The Java Virtual Machine Specification</a> */
744   short INEG             = 116;
745   /** Java VM opcode.
746    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
747    * Opcode definitions in The Java Virtual Machine Specification</a> */
748   short LNEG             = 117;
749   /** Java VM opcode.
750    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
751    * Opcode definitions in The Java Virtual Machine Specification</a> */
752   short FNEG             = 118;
753   /** Java VM opcode.
754    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
755    * Opcode definitions in The Java Virtual Machine Specification</a> */
756   short DNEG             = 119;
757   /** Java VM opcode.
758    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
759    * Opcode definitions in The Java Virtual Machine Specification</a> */
760   short ISHL             = 120;
761   /** Java VM opcode.
762    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
763    * Opcode definitions in The Java Virtual Machine Specification</a> */
764   short LSHL             = 121;
765   /** Java VM opcode.
766    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
767    * Opcode definitions in The Java Virtual Machine Specification</a> */
768   short ISHR             = 122;
769   /** Java VM opcode.
770    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
771    * Opcode definitions in The Java Virtual Machine Specification</a> */
772   short LSHR             = 123;
773   /** Java VM opcode.
774    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
775    * Opcode definitions in The Java Virtual Machine Specification</a> */
776   short IUSHR            = 124;
777   /** Java VM opcode.
778    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
779    * Opcode definitions in The Java Virtual Machine Specification</a> */
780   short LUSHR            = 125;
781   /** Java VM opcode.
782    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
783    * Opcode definitions in The Java Virtual Machine Specification</a> */
784   short IAND             = 126;
785   /** Java VM opcode.
786    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
787    * Opcode definitions in The Java Virtual Machine Specification</a> */
788   short LAND             = 127;
789   /** Java VM opcode.
790    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
791    * Opcode definitions in The Java Virtual Machine Specification</a> */
792   short IOR              = 128;
793   /** Java VM opcode.
794    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
795    * Opcode definitions in The Java Virtual Machine Specification</a> */
796   short LOR              = 129;
797   /** Java VM opcode.
798    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
799    * Opcode definitions in The Java Virtual Machine Specification</a> */
800   short IXOR             = 130;
801   /** Java VM opcode.
802    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
803    * Opcode definitions in The Java Virtual Machine Specification</a> */
804   short LXOR             = 131;
805   /** Java VM opcode.
806    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
807    * Opcode definitions in The Java Virtual Machine Specification</a> */
808   short IINC             = 132;
809   /** Java VM opcode.
810    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
811    * Opcode definitions in The Java Virtual Machine Specification</a> */
812   short I2L              = 133;
813   /** Java VM opcode.
814    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
815    * Opcode definitions in The Java Virtual Machine Specification</a> */
816   short I2F              = 134;
817   /** Java VM opcode.
818    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
819    * Opcode definitions in The Java Virtual Machine Specification</a> */
820   short I2D              = 135;
821   /** Java VM opcode.
822    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
823    * Opcode definitions in The Java Virtual Machine Specification</a> */
824   short L2I              = 136;
825   /** Java VM opcode.
826    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
827    * Opcode definitions in The Java Virtual Machine Specification</a> */
828   short L2F              = 137;
829   /** Java VM opcode.
830    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
831    * Opcode definitions in The Java Virtual Machine Specification</a> */
832   short L2D              = 138;
833   /** Java VM opcode.
834    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
835    * Opcode definitions in The Java Virtual Machine Specification</a> */
836   short F2I              = 139;
837   /** Java VM opcode.
838    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
839    * Opcode definitions in The Java Virtual Machine Specification</a> */
840   short F2L              = 140;
841   /** Java VM opcode.
842    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
843    * Opcode definitions in The Java Virtual Machine Specification</a> */
844   short F2D              = 141;
845   /** Java VM opcode.
846    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
847    * Opcode definitions in The Java Virtual Machine Specification</a> */
848   short D2I              = 142;
849   /** Java VM opcode.
850    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
851    * Opcode definitions in The Java Virtual Machine Specification</a> */
852   short D2L              = 143;
853   /** Java VM opcode.
854    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
855    * Opcode definitions in The Java Virtual Machine Specification</a> */
856   short D2F              = 144;
857   /** Java VM opcode.
858    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
859    * Opcode definitions in The Java Virtual Machine Specification</a> */
860   short I2B              = 145;
861   /** Java VM opcode.
862    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
863    * Opcode definitions in The Java Virtual Machine Specification</a> */
864   short INT2BYTE         = 145; // Old notion
865   /** Java VM opcode.
866    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
867    * Opcode definitions in The Java Virtual Machine Specification</a> */
868   short I2C              = 146;
869   /** Java VM opcode.
870    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
871    * Opcode definitions in The Java Virtual Machine Specification</a> */
872   short INT2CHAR         = 146; // Old notion
873   /** Java VM opcode.
874    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
875    * Opcode definitions in The Java Virtual Machine Specification</a> */
876   short I2S              = 147;
877   /** Java VM opcode.
878    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
879    * Opcode definitions in The Java Virtual Machine Specification</a> */
880   short INT2SHORT        = 147; // Old notion
881   /** Java VM opcode.
882    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
883    * Opcode definitions in The Java Virtual Machine Specification</a> */
884   short LCMP             = 148;
885   /** Java VM opcode.
886    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
887    * Opcode definitions in The Java Virtual Machine Specification</a> */
888   short FCMPL            = 149;
889   /** Java VM opcode.
890    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
891    * Opcode definitions in The Java Virtual Machine Specification</a> */
892   short FCMPG            = 150;
893   /** Java VM opcode.
894    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
895    * Opcode definitions in The Java Virtual Machine Specification</a> */
896   short DCMPL            = 151;
897   /** Java VM opcode.
898    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
899    * Opcode definitions in The Java Virtual Machine Specification</a> */
900   short DCMPG            = 152;
901   /** Java VM opcode.
902    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
903    * Opcode definitions in The Java Virtual Machine Specification</a> */
904   short IFEQ             = 153;
905   /** Java VM opcode.
906    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
907    * Opcode definitions in The Java Virtual Machine Specification</a> */
908   short IFNE             = 154;
909   /** Java VM opcode.
910    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
911    * Opcode definitions in The Java Virtual Machine Specification</a> */
912   short IFLT             = 155;
913   /** Java VM opcode.
914    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
915    * Opcode definitions in The Java Virtual Machine Specification</a> */
916   short IFGE             = 156;
917   /** Java VM opcode.
918    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
919    * Opcode definitions in The Java Virtual Machine Specification</a> */
920   short IFGT             = 157;
921   /** Java VM opcode.
922    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
923    * Opcode definitions in The Java Virtual Machine Specification</a> */
924   short IFLE             = 158;
925   /** Java VM opcode.
926    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
927    * Opcode definitions in The Java Virtual Machine Specification</a> */
928   short IF_ICMPEQ        = 159;
929   /** Java VM opcode.
930    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
931    * Opcode definitions in The Java Virtual Machine Specification</a> */
932   short IF_ICMPNE        = 160;
933   /** Java VM opcode.
934    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
935    * Opcode definitions in The Java Virtual Machine Specification</a> */
936   short IF_ICMPLT        = 161;
937   /** Java VM opcode.
938    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
939    * Opcode definitions in The Java Virtual Machine Specification</a> */
940   short IF_ICMPGE        = 162;
941   /** Java VM opcode.
942    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
943    * Opcode definitions in The Java Virtual Machine Specification</a> */
944   short IF_ICMPGT        = 163;
945   /** Java VM opcode.
946    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
947    * Opcode definitions in The Java Virtual Machine Specification</a> */
948   short IF_ICMPLE        = 164;
949   /** Java VM opcode.
950    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
951    * Opcode definitions in The Java Virtual Machine Specification</a> */
952   short IF_ACMPEQ        = 165;
953   /** Java VM opcode.
954    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
955    * Opcode definitions in The Java Virtual Machine Specification</a> */
956   short IF_ACMPNE        = 166;
957   /** Java VM opcode.
958    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
959    * Opcode definitions in The Java Virtual Machine Specification</a> */
960   short GOTO             = 167;
961   /** Java VM opcode.
962    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
963    * Opcode definitions in The Java Virtual Machine Specification</a> */
964   short JSR              = 168;
965   /** Java VM opcode.
966    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
967    * Opcode definitions in The Java Virtual Machine Specification</a> */
968   short RET              = 169;
969   /** Java VM opcode.
970    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
971    * Opcode definitions in The Java Virtual Machine Specification</a> */
972   short TABLESWITCH      = 170;
973   /** Java VM opcode.
974    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
975    * Opcode definitions in The Java Virtual Machine Specification</a> */
976   short LOOKUPSWITCH     = 171;
977   /** Java VM opcode.
978    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
979    * Opcode definitions in The Java Virtual Machine Specification</a> */
980   short IRETURN          = 172;
981   /** Java VM opcode.
982    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
983    * Opcode definitions in The Java Virtual Machine Specification</a> */
984   short LRETURN          = 173;
985   /** Java VM opcode.
986    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
987    * Opcode definitions in The Java Virtual Machine Specification</a> */
988   short FRETURN          = 174;
989   /** Java VM opcode.
990    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
991    * Opcode definitions in The Java Virtual Machine Specification</a> */
992   short DRETURN          = 175;
993   /** Java VM opcode.
994    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
995    * Opcode definitions in The Java Virtual Machine Specification</a> */
996   short ARETURN          = 176;
997   /** Java VM opcode.
998    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
999    * Opcode definitions in The Java Virtual Machine Specification</a> */
1000   short RETURN           = 177;
1001   /** Java VM opcode.
1002    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
1003    * Opcode definitions in The Java Virtual Machine Specification</a> */
1004   short GETSTATIC        = 178;
1005   /** Java VM opcode.
1006    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
1007    * Opcode definitions in The Java Virtual Machine Specification</a> */
1008   short PUTSTATIC        = 179;
1009   /** Java VM opcode.
1010    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
1011    * Opcode definitions in The Java Virtual Machine Specification</a> */
1012   short GETFIELD         = 180;
1013   /** Java VM opcode.
1014    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
1015    * Opcode definitions in The Java Virtual Machine Specification</a> */
1016   short PUTFIELD         = 181;
1017   /** Java VM opcode.
1018    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
1019    * Opcode definitions in The Java Virtual Machine Specification</a> */
1020   short INVOKEVIRTUAL    = 182;
1021   /** Java VM opcode.
1022    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
1023    * Opcode definitions in The Java Virtual Machine Specification</a> */
1024   short INVOKESPECIAL    = 183;
1025   /** Java VM opcode.
1026    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
1027    * Opcode definitions in The Java Virtual Machine Specification</a> */
1028   short INVOKENONVIRTUAL = 183; // Old name in JDK 1.0
1029   /** Java VM opcode.
1030    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
1031    * Opcode definitions in The Java Virtual Machine Specification</a> */
1032   short INVOKESTATIC     = 184;
1033   /** Java VM opcode.
1034    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
1035    * Opcode definitions in The Java Virtual Machine Specification</a> */
1036   short INVOKEINTERFACE  = 185;
1037   /** Java VM opcode.
1038    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
1039    * Opcode definitions in The Java Virtual Machine Specification</a> */
1040   short INVOKEDYNAMIC   = 186;
1041   /** Java VM opcode.
1042    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
1043    * Opcode definitions in The Java Virtual Machine Specification</a> */
1044   short NEW              = 187;
1045   /** Java VM opcode.
1046    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
1047    * Opcode definitions in The Java Virtual Machine Specification</a> */
1048   short NEWARRAY         = 188;
1049   /** Java VM opcode.
1050    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
1051    * Opcode definitions in The Java Virtual Machine Specification</a> */
1052   short ANEWARRAY        = 189;
1053   /** Java VM opcode.
1054    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
1055    * Opcode definitions in The Java Virtual Machine Specification</a> */
1056   short ARRAYLENGTH      = 190;
1057   /** Java VM opcode.
1058    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
1059    * Opcode definitions in The Java Virtual Machine Specification</a> */
1060   short ATHROW           = 191;
1061   /** Java VM opcode.
1062    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
1063    * Opcode definitions in The Java Virtual Machine Specification</a> */
1064   short CHECKCAST        = 192;
1065   /** Java VM opcode.
1066    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
1067    * Opcode definitions in The Java Virtual Machine Specification</a> */
1068   short INSTANCEOF       = 193;
1069   /** Java VM opcode.
1070    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
1071    * Opcode definitions in The Java Virtual Machine Specification</a> */
1072   short MONITORENTER     = 194;
1073   /** Java VM opcode.
1074    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
1075    * Opcode definitions in The Java Virtual Machine Specification</a> */
1076   short MONITOREXIT      = 195;
1077   /** Java VM opcode.
1078    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
1079    * Opcode definitions in The Java Virtual Machine Specification</a> */
1080   short WIDE             = 196;
1081   /** Java VM opcode.
1082    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
1083    * Opcode definitions in The Java Virtual Machine Specification</a> */
1084   short MULTIANEWARRAY   = 197;
1085   /** Java VM opcode.
1086    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
1087    * Opcode definitions in The Java Virtual Machine Specification</a> */
1088   short IFNULL           = 198;
1089   /** Java VM opcode.
1090    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
1091    * Opcode definitions in The Java Virtual Machine Specification</a> */
1092   short IFNONNULL        = 199;
1093   /** Java VM opcode.
1094    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
1095    * Opcode definitions in The Java Virtual Machine Specification</a> */
1096   short GOTO_W           = 200;
1097   /** Java VM opcode.
1098    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5">
1099    * Opcode definitions in The Java Virtual Machine Specification</a> */
1100   short JSR_W            = 201;
1101 
1102   /** JVM internal opcode.
1103    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.2">
1104    * Reserved opcodes in the Java Virtual Machine Specification</a> */
1105   short BREAKPOINT                = 202;
1106   /** JVM internal opcode.
1107    * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
1108    * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
1109    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
1110    * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
1111   short LDC_QUICK                 = 203;
1112   /** JVM internal opcode.
1113    * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
1114    * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
1115    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
1116    * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
1117   short LDC_W_QUICK               = 204;
1118   /** JVM internal opcode.
1119    * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
1120    * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
1121    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
1122    * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
1123   short LDC2_W_QUICK              = 205;
1124   /** JVM internal opcode.
1125    * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
1126    * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
1127    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
1128    * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
1129   short GETFIELD_QUICK            = 206;
1130   /** JVM internal opcode.
1131    * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
1132    * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
1133    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
1134    * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
1135   short PUTFIELD_QUICK            = 207;
1136   /** JVM internal opcode.
1137    * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
1138    * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
1139    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
1140    * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
1141   short GETFIELD2_QUICK           = 208;
1142   /** JVM internal opcode.
1143    * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
1144    * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
1145    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
1146    * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
1147   short PUTFIELD2_QUICK           = 209;
1148   /** JVM internal opcode.
1149    * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
1150    * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
1151    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
1152    * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
1153   short GETSTATIC_QUICK           = 210;
1154   /** JVM internal opcode.
1155    * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
1156    * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
1157    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
1158    * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
1159   short PUTSTATIC_QUICK           = 211;
1160   /** JVM internal opcode.
1161    * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
1162    * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
1163    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
1164    * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
1165   short GETSTATIC2_QUICK          = 212;
1166   /** JVM internal opcode.
1167    * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
1168    * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
1169    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
1170    * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
1171   short PUTSTATIC2_QUICK          = 213;
1172   /** JVM internal opcode.
1173    * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
1174    * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
1175    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
1176    * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
1177   short INVOKEVIRTUAL_QUICK       = 214;
1178   /** JVM internal opcode.
1179    * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
1180    * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
1181    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
1182    * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
1183   short INVOKENONVIRTUAL_QUICK    = 215;
1184   /** JVM internal opcode.
1185    * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
1186    * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
1187    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
1188    * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
1189   short INVOKESUPER_QUICK         = 216;
1190   /** JVM internal opcode.
1191    * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
1192    * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
1193    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
1194    * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
1195   short INVOKESTATIC_QUICK        = 217;
1196   /** JVM internal opcode.
1197    * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
1198    * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
1199    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
1200    * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
1201   short INVOKEINTERFACE_QUICK     = 218;
1202   /** JVM internal opcode.
1203    * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
1204    * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
1205    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
1206    * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
1207   short INVOKEVIRTUALOBJECT_QUICK = 219;
1208   /** JVM internal opcode.
1209    * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
1210    * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
1211    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
1212    * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
1213   short NEW_QUICK                 = 221;
1214   /** JVM internal opcode.
1215    * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
1216    * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
1217    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
1218    * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
1219   short ANEWARRAY_QUICK           = 222;
1220   /** JVM internal opcode.
1221    * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
1222    * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
1223    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
1224    * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
1225   short MULTIANEWARRAY_QUICK      = 223;
1226   /** JVM internal opcode.
1227    * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
1228    * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
1229    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
1230    * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
1231   short CHECKCAST_QUICK           = 224;
1232   /** JVM internal opcode.
1233    * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
1234    * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
1235    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
1236    * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
1237   short INSTANCEOF_QUICK          = 225;
1238   /** JVM internal opcode.
1239    * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
1240    * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
1241    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
1242    * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
1243   short INVOKEVIRTUAL_QUICK_W     = 226;
1244   /** JVM internal opcode.
1245    * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
1246    * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
1247    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
1248    * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
1249   short GETFIELD_QUICK_W          = 227;
1250   /** JVM internal opcode.
1251    * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html">
1252    * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a>
1253    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885">
1254    * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */
1255   short PUTFIELD_QUICK_W          = 228;
1256   /** JVM internal opcode.
1257    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.2">
1258    * Reserved opcodes in the Java Virtual Machine Specification</a> */
1259   short IMPDEP1                   = 254;
1260   /** JVM internal opcode.
1261    * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.2">
1262    * Reserved opcodes in the Java Virtual Machine Specification</a> */
1263   short IMPDEP2                   = 255;
1264 
1265   /**
1266    * BCEL virtual instruction for pushing an arbitrary data type onto the stack.  Will be converted to the appropriate JVM
1267    * opcode when the class is dumped.
1268    */
1269   short PUSH             = 4711;
1270   /**
1271    * BCEL virtual instruction for either LOOKUPSWITCH or TABLESWITCH.  Will be converted to the appropriate JVM
1272    * opcode when the class is dumped.
1273    */
1274   short SWITCH           = 4712;
1275 
1276   /** Illegal opcode. */
1277   short  UNDEFINED      = -1;
1278   /** Illegal opcode. */
1279   short  UNPREDICTABLE  = -2;
1280   /** Illegal opcode. */
1281   short  RESERVED       = -3;
1282   /** Mnemonic for an illegal opcode. */
1283   String ILLEGAL_OPCODE = "<illegal opcode>";
1284   /** Mnemonic for an illegal type. */
1285   String ILLEGAL_TYPE   = "<illegal type>";
1286 
1287   /** Boolean data type. */
1288   byte T_BOOLEAN = 4;
1289   /** Char data type. */
1290   byte T_CHAR    = 5;
1291   /** Float data type. */
1292   byte T_FLOAT   = 6;
1293   /** Double data type. */
1294   byte T_DOUBLE  = 7;
1295   /** Byte data type. */
1296   byte T_BYTE    = 8;
1297   /** Short data type. */
1298   byte T_SHORT   = 9;
1299   /** Int data type. */
1300   byte T_INT     = 10;
1301   /** Long data type. */
1302   byte T_LONG    = 11;
1303 
1304   /** Void data type (non-standard). */
1305   byte T_VOID      = 12; // Non-standard
1306   /** Array data type. */
1307   byte T_ARRAY     = 13;
1308   /** Object data type. */
1309   byte T_OBJECT    = 14;
1310   /** Reference data type (deprecated). */
1311   byte T_REFERENCE = 14; // Deprecated
1312   /** Unknown data type. */
1313   byte T_UNKNOWN   = 15;
1314   /** Address data type. */
1315   byte T_ADDRESS   = 16;
1316 
1317   /** The primitive type names corresponding to the T_XX constants,
1318    * e.g., TYPE_NAMES[T_INT] = "int"
1319    */
1320   String[] TYPE_NAMES = {
1321     ILLEGAL_TYPE, ILLEGAL_TYPE,  ILLEGAL_TYPE, ILLEGAL_TYPE,
1322     "boolean", "char", "float", "double", "byte", "short", "int", "long",
1323     "void", "array", "object", "unknown", "address"
1324   };
1325 
1326   /** The primitive class names corresponding to the T_XX constants,
1327    * e.g., CLASS_TYPE_NAMES[T_INT] = "java.lang.Integer"
1328    */
1329   String[] CLASS_TYPE_NAMES = {
1330     ILLEGAL_TYPE, ILLEGAL_TYPE,  ILLEGAL_TYPE, ILLEGAL_TYPE,
1331     "java.lang.Boolean", "java.lang.Character", "java.lang.Float",
1332     "java.lang.Double", "java.lang.Byte", "java.lang.Short",
1333     "java.lang.Integer", "java.lang.Long", "java.lang.Void",
1334     ILLEGAL_TYPE, ILLEGAL_TYPE,  ILLEGAL_TYPE,  ILLEGAL_TYPE
1335   };
1336 
1337   /** The signature characters corresponding to primitive types,
1338    * e.g., SHORT_TYPE_NAMES[T_INT] = "I"
1339    */
1340   String[] SHORT_TYPE_NAMES = {
1341     ILLEGAL_TYPE, ILLEGAL_TYPE,  ILLEGAL_TYPE, ILLEGAL_TYPE,
1342     "Z", "C", "F", "D", "B", "S", "I", "J",
1343     "V", ILLEGAL_TYPE, ILLEGAL_TYPE, ILLEGAL_TYPE
1344   };
1345 
1346   /**
1347    * Number of byte code operands for each opcode, i.e., number of bytes after the tag byte
1348    * itself.  Indexed by opcode, so NO_OF_OPERANDS[BIPUSH] = the number of operands for a bipush
1349    * instruction.
1350    */
1351   short[] NO_OF_OPERANDS = {
1352     0/*nop*/, 0/*aconst_null*/, 0/*iconst_m1*/, 0/*iconst_0*/,
1353     0/*iconst_1*/, 0/*iconst_2*/, 0/*iconst_3*/, 0/*iconst_4*/,
1354     0/*iconst_5*/, 0/*lconst_0*/, 0/*lconst_1*/, 0/*fconst_0*/,
1355     0/*fconst_1*/, 0/*fconst_2*/, 0/*dconst_0*/, 0/*dconst_1*/,
1356     1/*bipush*/, 2/*sipush*/, 1/*ldc*/, 2/*ldc_w*/, 2/*ldc2_w*/,
1357     1/*iload*/, 1/*lload*/, 1/*fload*/, 1/*dload*/, 1/*aload*/,
1358     0/*iload_0*/, 0/*iload_1*/, 0/*iload_2*/, 0/*iload_3*/,
1359     0/*lload_0*/, 0/*lload_1*/, 0/*lload_2*/, 0/*lload_3*/,
1360     0/*fload_0*/, 0/*fload_1*/, 0/*fload_2*/, 0/*fload_3*/,
1361     0/*dload_0*/, 0/*dload_1*/, 0/*dload_2*/, 0/*dload_3*/,
1362     0/*aload_0*/, 0/*aload_1*/, 0/*aload_2*/, 0/*aload_3*/,
1363     0/*iaload*/, 0/*laload*/, 0/*faload*/, 0/*daload*/,
1364     0/*aaload*/, 0/*baload*/, 0/*caload*/, 0/*saload*/,
1365     1/*istore*/, 1/*lstore*/, 1/*fstore*/, 1/*dstore*/,
1366     1/*astore*/, 0/*istore_0*/, 0/*istore_1*/, 0/*istore_2*/,
1367     0/*istore_3*/, 0/*lstore_0*/, 0/*lstore_1*/, 0/*lstore_2*/,
1368     0/*lstore_3*/, 0/*fstore_0*/, 0/*fstore_1*/, 0/*fstore_2*/,
1369     0/*fstore_3*/, 0/*dstore_0*/, 0/*dstore_1*/, 0/*dstore_2*/,
1370     0/*dstore_3*/, 0/*astore_0*/, 0/*astore_1*/, 0/*astore_2*/,
1371     0/*astore_3*/, 0/*iastore*/, 0/*lastore*/, 0/*fastore*/,
1372     0/*dastore*/, 0/*aastore*/, 0/*bastore*/, 0/*castore*/,
1373     0/*sastore*/, 0/*pop*/, 0/*pop2*/, 0/*dup*/, 0/*dup_x1*/,
1374     0/*dup_x2*/, 0/*dup2*/, 0/*dup2_x1*/, 0/*dup2_x2*/, 0/*swap*/,
1375     0/*iadd*/, 0/*ladd*/, 0/*fadd*/, 0/*dadd*/, 0/*isub*/,
1376     0/*lsub*/, 0/*fsub*/, 0/*dsub*/, 0/*imul*/, 0/*lmul*/,
1377     0/*fmul*/, 0/*dmul*/, 0/*idiv*/, 0/*ldiv*/, 0/*fdiv*/,
1378     0/*ddiv*/, 0/*irem*/, 0/*lrem*/, 0/*frem*/, 0/*drem*/,
1379     0/*ineg*/, 0/*lneg*/, 0/*fneg*/, 0/*dneg*/, 0/*ishl*/,
1380     0/*lshl*/, 0/*ishr*/, 0/*lshr*/, 0/*iushr*/, 0/*lushr*/,
1381     0/*iand*/, 0/*land*/, 0/*ior*/, 0/*lor*/, 0/*ixor*/, 0/*lxor*/,
1382     2/*iinc*/, 0/*i2l*/, 0/*i2f*/, 0/*i2d*/, 0/*l2i*/, 0/*l2f*/,
1383     0/*l2d*/, 0/*f2i*/, 0/*f2l*/, 0/*f2d*/, 0/*d2i*/, 0/*d2l*/,
1384     0/*d2f*/, 0/*i2b*/, 0/*i2c*/, 0/*i2s*/, 0/*lcmp*/, 0/*fcmpl*/,
1385     0/*fcmpg*/, 0/*dcmpl*/, 0/*dcmpg*/, 2/*ifeq*/, 2/*ifne*/,
1386     2/*iflt*/, 2/*ifge*/, 2/*ifgt*/, 2/*ifle*/, 2/*if_icmpeq*/,
1387     2/*if_icmpne*/, 2/*if_icmplt*/, 2/*if_icmpge*/, 2/*if_icmpgt*/,
1388     2/*if_icmple*/, 2/*if_acmpeq*/, 2/*if_acmpne*/, 2/*goto*/,
1389     2/*jsr*/, 1/*ret*/, UNPREDICTABLE/*tableswitch*/, UNPREDICTABLE/*lookupswitch*/,
1390     0/*ireturn*/, 0/*lreturn*/, 0/*freturn*/,
1391     0/*dreturn*/, 0/*areturn*/, 0/*return*/,
1392     2/*getstatic*/, 2/*putstatic*/, 2/*getfield*/,
1393     2/*putfield*/, 2/*invokevirtual*/, 2/*invokespecial*/, 2/*invokestatic*/,
1394     4/*invokeinterface*/, 4/*invokedynamic*/, 2/*new*/,
1395     1/*newarray*/, 2/*anewarray*/,
1396     0/*arraylength*/, 0/*athrow*/, 2/*checkcast*/,
1397     2/*instanceof*/, 0/*monitorenter*/,
1398     0/*monitorexit*/, UNPREDICTABLE/*wide*/, 3/*multianewarray*/,
1399     2/*ifnull*/, 2/*ifnonnull*/, 4/*goto_w*/,
1400     4/*jsr_w*/, 0/*breakpoint*/, UNDEFINED,
1401     UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
1402     UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
1403     UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
1404     UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
1405     UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
1406     UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
1407     UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
1408     UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
1409     UNDEFINED, UNDEFINED, RESERVED/*impdep1*/, RESERVED/*impdep2*/
1410   };
1411 
1412   /**
1413    * How the byte code operands are to be interpreted for each opcode.
1414    * Indexed by opcode.  TYPE_OF_OPERANDS[ILOAD] = an array of shorts
1415    * describing the data types for the instruction.
1416    */
1417   short[][] TYPE_OF_OPERANDS = {
1418     {}/*nop*/, {}/*aconst_null*/, {}/*iconst_m1*/, {}/*iconst_0*/,
1419     {}/*iconst_1*/, {}/*iconst_2*/, {}/*iconst_3*/, {}/*iconst_4*/,
1420     {}/*iconst_5*/, {}/*lconst_0*/, {}/*lconst_1*/, {}/*fconst_0*/,
1421     {}/*fconst_1*/, {}/*fconst_2*/, {}/*dconst_0*/, {}/*dconst_1*/,
1422     {T_BYTE}/*bipush*/, {T_SHORT}/*sipush*/, {T_BYTE}/*ldc*/,
1423     {T_SHORT}/*ldc_w*/, {T_SHORT}/*ldc2_w*/,
1424     {T_BYTE}/*iload*/, {T_BYTE}/*lload*/, {T_BYTE}/*fload*/,
1425     {T_BYTE}/*dload*/, {T_BYTE}/*aload*/, {}/*iload_0*/,
1426     {}/*iload_1*/, {}/*iload_2*/, {}/*iload_3*/, {}/*lload_0*/,
1427     {}/*lload_1*/, {}/*lload_2*/, {}/*lload_3*/, {}/*fload_0*/,
1428     {}/*fload_1*/, {}/*fload_2*/, {}/*fload_3*/, {}/*dload_0*/,
1429     {}/*dload_1*/, {}/*dload_2*/, {}/*dload_3*/, {}/*aload_0*/,
1430     {}/*aload_1*/, {}/*aload_2*/, {}/*aload_3*/, {}/*iaload*/,
1431     {}/*laload*/, {}/*faload*/, {}/*daload*/, {}/*aaload*/,
1432     {}/*baload*/, {}/*caload*/, {}/*saload*/, {T_BYTE}/*istore*/,
1433     {T_BYTE}/*lstore*/, {T_BYTE}/*fstore*/, {T_BYTE}/*dstore*/,
1434     {T_BYTE}/*astore*/, {}/*istore_0*/, {}/*istore_1*/,
1435     {}/*istore_2*/, {}/*istore_3*/, {}/*lstore_0*/, {}/*lstore_1*/,
1436     {}/*lstore_2*/, {}/*lstore_3*/, {}/*fstore_0*/, {}/*fstore_1*/,
1437     {}/*fstore_2*/, {}/*fstore_3*/, {}/*dstore_0*/, {}/*dstore_1*/,
1438     {}/*dstore_2*/, {}/*dstore_3*/, {}/*astore_0*/, {}/*astore_1*/,
1439     {}/*astore_2*/, {}/*astore_3*/, {}/*iastore*/, {}/*lastore*/,
1440     {}/*fastore*/, {}/*dastore*/, {}/*aastore*/, {}/*bastore*/,
1441     {}/*castore*/, {}/*sastore*/, {}/*pop*/, {}/*pop2*/, {}/*dup*/,
1442     {}/*dup_x1*/, {}/*dup_x2*/, {}/*dup2*/, {}/*dup2_x1*/,
1443     {}/*dup2_x2*/, {}/*swap*/, {}/*iadd*/, {}/*ladd*/, {}/*fadd*/,
1444     {}/*dadd*/, {}/*isub*/, {}/*lsub*/, {}/*fsub*/, {}/*dsub*/,
1445     {}/*imul*/, {}/*lmul*/, {}/*fmul*/, {}/*dmul*/, {}/*idiv*/,
1446     {}/*ldiv*/, {}/*fdiv*/, {}/*ddiv*/, {}/*irem*/, {}/*lrem*/,
1447     {}/*frem*/, {}/*drem*/, {}/*ineg*/, {}/*lneg*/, {}/*fneg*/,
1448     {}/*dneg*/, {}/*ishl*/, {}/*lshl*/, {}/*ishr*/, {}/*lshr*/,
1449     {}/*iushr*/, {}/*lushr*/, {}/*iand*/, {}/*land*/, {}/*ior*/,
1450     {}/*lor*/, {}/*ixor*/, {}/*lxor*/, {T_BYTE, T_BYTE}/*iinc*/,
1451     {}/*i2l*/, {}/*i2f*/, {}/*i2d*/, {}/*l2i*/, {}/*l2f*/, {}/*l2d*/,
1452     {}/*f2i*/, {}/*f2l*/, {}/*f2d*/, {}/*d2i*/, {}/*d2l*/, {}/*d2f*/,
1453     {}/*i2b*/, {}/*i2c*/,{}/*i2s*/, {}/*lcmp*/, {}/*fcmpl*/,
1454     {}/*fcmpg*/, {}/*dcmpl*/, {}/*dcmpg*/, {T_SHORT}/*ifeq*/,
1455     {T_SHORT}/*ifne*/, {T_SHORT}/*iflt*/, {T_SHORT}/*ifge*/,
1456     {T_SHORT}/*ifgt*/, {T_SHORT}/*ifle*/, {T_SHORT}/*if_icmpeq*/,
1457     {T_SHORT}/*if_icmpne*/, {T_SHORT}/*if_icmplt*/,
1458     {T_SHORT}/*if_icmpge*/, {T_SHORT}/*if_icmpgt*/,
1459     {T_SHORT}/*if_icmple*/, {T_SHORT}/*if_acmpeq*/,
1460     {T_SHORT}/*if_acmpne*/, {T_SHORT}/*goto*/, {T_SHORT}/*jsr*/,
1461     {T_BYTE}/*ret*/, {}/*tableswitch*/, {}/*lookupswitch*/,
1462     {}/*ireturn*/, {}/*lreturn*/, {}/*freturn*/, {}/*dreturn*/,
1463     {}/*areturn*/, {}/*return*/, {T_SHORT}/*getstatic*/,
1464     {T_SHORT}/*putstatic*/, {T_SHORT}/*getfield*/,
1465     {T_SHORT}/*putfield*/, {T_SHORT}/*invokevirtual*/,
1466     {T_SHORT}/*invokespecial*/, {T_SHORT}/*invokestatic*/,
1467     {T_SHORT, T_BYTE, T_BYTE}/*invokeinterface*/, {T_SHORT, T_BYTE, T_BYTE}/*invokedynamic*/,
1468     {T_SHORT}/*new*/, {T_BYTE}/*newarray*/,
1469     {T_SHORT}/*anewarray*/, {}/*arraylength*/, {}/*athrow*/,
1470     {T_SHORT}/*checkcast*/, {T_SHORT}/*instanceof*/,
1471     {}/*monitorenter*/, {}/*monitorexit*/, {T_BYTE}/*wide*/,
1472     {T_SHORT, T_BYTE}/*multianewarray*/, {T_SHORT}/*ifnull*/,
1473     {T_SHORT}/*ifnonnull*/, {T_INT}/*goto_w*/, {T_INT}/*jsr_w*/,
1474     {}/*breakpoint*/, {}, {}, {}, {}, {}, {}, {},
1475     {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {},
1476     {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {},
1477     {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {},
1478     {}/*impdep1*/, {}/*impdep2*/
1479   };
1480 
1481   /**
1482    * Names of opcodes.  Indexed by opcode.  OPCODE_NAMES[ALOAD] = "aload".
1483    */
1484   String[] OPCODE_NAMES = {
1485     "nop", "aconst_null", "iconst_m1", "iconst_0", "iconst_1",
1486     "iconst_2", "iconst_3", "iconst_4", "iconst_5", "lconst_0",
1487     "lconst_1", "fconst_0", "fconst_1", "fconst_2", "dconst_0",
1488     "dconst_1", "bipush", "sipush", "ldc", "ldc_w", "ldc2_w", "iload",
1489     "lload", "fload", "dload", "aload", "iload_0", "iload_1", "iload_2",
1490     "iload_3", "lload_0", "lload_1", "lload_2", "lload_3", "fload_0",
1491     "fload_1", "fload_2", "fload_3", "dload_0", "dload_1", "dload_2",
1492     "dload_3", "aload_0", "aload_1", "aload_2", "aload_3", "iaload",
1493     "laload", "faload", "daload", "aaload", "baload", "caload", "saload",
1494     "istore", "lstore", "fstore", "dstore", "astore", "istore_0",
1495     "istore_1", "istore_2", "istore_3", "lstore_0", "lstore_1",
1496     "lstore_2", "lstore_3", "fstore_0", "fstore_1", "fstore_2",
1497     "fstore_3", "dstore_0", "dstore_1", "dstore_2", "dstore_3",
1498     "astore_0", "astore_1", "astore_2", "astore_3", "iastore", "lastore",
1499     "fastore", "dastore", "aastore", "bastore", "castore", "sastore",
1500     "pop", "pop2", "dup", "dup_x1", "dup_x2", "dup2", "dup2_x1",
1501     "dup2_x2", "swap", "iadd", "ladd", "fadd", "dadd", "isub", "lsub",
1502     "fsub", "dsub", "imul", "lmul", "fmul", "dmul", "idiv", "ldiv",
1503     "fdiv", "ddiv", "irem", "lrem", "frem", "drem", "ineg", "lneg",
1504     "fneg", "dneg", "ishl", "lshl", "ishr", "lshr", "iushr", "lushr",
1505     "iand", "land", "ior", "lor", "ixor", "lxor", "iinc", "i2l", "i2f",
1506     "i2d", "l2i", "l2f", "l2d", "f2i", "f2l", "f2d", "d2i", "d2l", "d2f",
1507     "i2b", "i2c", "i2s", "lcmp", "fcmpl", "fcmpg",
1508     "dcmpl", "dcmpg", "ifeq", "ifne", "iflt", "ifge", "ifgt", "ifle",
1509     "if_icmpeq", "if_icmpne", "if_icmplt", "if_icmpge", "if_icmpgt",
1510     "if_icmple", "if_acmpeq", "if_acmpne", "goto", "jsr", "ret",
1511     "tableswitch", "lookupswitch", "ireturn", "lreturn", "freturn",
1512     "dreturn", "areturn", "return", "getstatic", "putstatic", "getfield",
1513     "putfield", "invokevirtual", "invokespecial", "invokestatic",
1514     "invokeinterface", "invokedynamic", "new", "newarray", "anewarray",
1515     "arraylength", "athrow", "checkcast", "instanceof", "monitorenter",
1516     "monitorexit", "wide", "multianewarray", "ifnull", "ifnonnull",
1517     "goto_w", "jsr_w", "breakpoint", ILLEGAL_OPCODE, ILLEGAL_OPCODE,
1518     ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE,
1519     ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE,
1520     ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE,
1521     ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE,
1522     ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE,
1523     ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE,
1524     ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE,
1525     ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE,
1526     ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE,
1527     ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE,
1528     ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE,
1529     ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE,
1530     ILLEGAL_OPCODE, "impdep1", "impdep2"
1531   };
1532 
1533   /**
1534    * Number of words consumed on operand stack by instructions.
1535    * Indexed by opcode.  CONSUME_STACK[FALOAD] = number of words
1536    * consumed from the stack by a faload instruction.
1537    */
1538   int[] CONSUME_STACK = {
1539     0/*nop*/, 0/*aconst_null*/, 0/*iconst_m1*/, 0/*iconst_0*/, 0/*iconst_1*/,
1540     0/*iconst_2*/, 0/*iconst_3*/, 0/*iconst_4*/, 0/*iconst_5*/, 0/*lconst_0*/,
1541     0/*lconst_1*/, 0/*fconst_0*/, 0/*fconst_1*/, 0/*fconst_2*/, 0/*dconst_0*/,
1542     0/*dconst_1*/, 0/*bipush*/, 0/*sipush*/, 0/*ldc*/, 0/*ldc_w*/, 0/*ldc2_w*/, 0/*iload*/,
1543     0/*lload*/, 0/*fload*/, 0/*dload*/, 0/*aload*/, 0/*iload_0*/, 0/*iload_1*/, 0/*iload_2*/,
1544     0/*iload_3*/, 0/*lload_0*/, 0/*lload_1*/, 0/*lload_2*/, 0/*lload_3*/, 0/*fload_0*/,
1545     0/*fload_1*/, 0/*fload_2*/, 0/*fload_3*/, 0/*dload_0*/, 0/*dload_1*/, 0/*dload_2*/,
1546     0/*dload_3*/, 0/*aload_0*/, 0/*aload_1*/, 0/*aload_2*/, 0/*aload_3*/, 2/*iaload*/,
1547     2/*laload*/, 2/*faload*/, 2/*daload*/, 2/*aaload*/, 2/*baload*/, 2/*caload*/, 2/*saload*/,
1548     1/*istore*/, 2/*lstore*/, 1/*fstore*/, 2/*dstore*/, 1/*astore*/, 1/*istore_0*/,
1549     1/*istore_1*/, 1/*istore_2*/, 1/*istore_3*/, 2/*lstore_0*/, 2/*lstore_1*/,
1550     2/*lstore_2*/, 2/*lstore_3*/, 1/*fstore_0*/, 1/*fstore_1*/, 1/*fstore_2*/,
1551     1/*fstore_3*/, 2/*dstore_0*/, 2/*dstore_1*/, 2/*dstore_2*/, 2/*dstore_3*/,
1552     1/*astore_0*/, 1/*astore_1*/, 1/*astore_2*/, 1/*astore_3*/, 3/*iastore*/, 4/*lastore*/,
1553     3/*fastore*/, 4/*dastore*/, 3/*aastore*/, 3/*bastore*/, 3/*castore*/, 3/*sastore*/,
1554     1/*pop*/, 2/*pop2*/, 1/*dup*/, 2/*dup_x1*/, 3/*dup_x2*/, 2/*dup2*/, 3/*dup2_x1*/,
1555     4/*dup2_x2*/, 2/*swap*/, 2/*iadd*/, 4/*ladd*/, 2/*fadd*/, 4/*dadd*/, 2/*isub*/, 4/*lsub*/,
1556     2/*fsub*/, 4/*dsub*/, 2/*imul*/, 4/*lmul*/, 2/*fmul*/, 4/*dmul*/, 2/*idiv*/, 4/*ldiv*/,
1557     2/*fdiv*/, 4/*ddiv*/, 2/*irem*/, 4/*lrem*/, 2/*frem*/, 4/*drem*/, 1/*ineg*/, 2/*lneg*/,
1558     1/*fneg*/, 2/*dneg*/, 2/*ishl*/, 3/*lshl*/, 2/*ishr*/, 3/*lshr*/, 2/*iushr*/, 3/*lushr*/,
1559     2/*iand*/, 4/*land*/, 2/*ior*/, 4/*lor*/, 2/*ixor*/, 4/*lxor*/, 0/*iinc*/,
1560     1/*i2l*/, 1/*i2f*/, 1/*i2d*/, 2/*l2i*/, 2/*l2f*/, 2/*l2d*/, 1/*f2i*/, 1/*f2l*/,
1561     1/*f2d*/, 2/*d2i*/, 2/*d2l*/, 2/*d2f*/, 1/*i2b*/, 1/*i2c*/, 1/*i2s*/,
1562     4/*lcmp*/, 2/*fcmpl*/, 2/*fcmpg*/, 4/*dcmpl*/, 4/*dcmpg*/, 1/*ifeq*/, 1/*ifne*/,
1563     1/*iflt*/, 1/*ifge*/, 1/*ifgt*/, 1/*ifle*/, 2/*if_icmpeq*/, 2/*if_icmpne*/, 2/*if_icmplt*/,
1564     2 /*if_icmpge*/, 2/*if_icmpgt*/, 2/*if_icmple*/, 2/*if_acmpeq*/, 2/*if_acmpne*/,
1565     0/*goto*/, 0/*jsr*/, 0/*ret*/, 1/*tableswitch*/, 1/*lookupswitch*/, 1/*ireturn*/,
1566     2/*lreturn*/, 1/*freturn*/, 2/*dreturn*/, 1/*areturn*/, 0/*return*/, 0/*getstatic*/,
1567     UNPREDICTABLE/*putstatic*/, 1/*getfield*/, UNPREDICTABLE/*putfield*/,
1568     UNPREDICTABLE/*invokevirtual*/, UNPREDICTABLE/*invokespecial*/,
1569     UNPREDICTABLE/*invokestatic*/,
1570     UNPREDICTABLE/*invokeinterface*/, UNPREDICTABLE/*invokedynamic*/, 0/*new*/, 1/*newarray*/, 1/*anewarray*/,
1571     1/*arraylength*/, 1/*athrow*/, 1/*checkcast*/, 1/*instanceof*/, 1/*monitorenter*/,
1572     1/*monitorexit*/, 0/*wide*/, UNPREDICTABLE/*multianewarray*/, 1/*ifnull*/, 1/*ifnonnull*/,
1573     0/*goto_w*/, 0/*jsr_w*/, 0/*breakpoint*/, UNDEFINED, UNDEFINED,
1574     UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
1575     UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
1576     UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
1577     UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
1578     UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
1579     UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
1580     UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
1581     UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
1582     UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
1583     UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
1584     UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
1585     UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
1586     UNDEFINED, UNPREDICTABLE/*impdep1*/, UNPREDICTABLE/*impdep2*/
1587   };
1588 
1589   /**
1590    * Number of words produced onto operand stack by instructions.
1591    * Indexed by opcode.  CONSUME_STACK[DALOAD] = number of words
1592    * consumed from the stack by a daload instruction.
1593    */
1594   int[] PRODUCE_STACK = {
1595     0/*nop*/, 1/*aconst_null*/, 1/*iconst_m1*/, 1/*iconst_0*/, 1/*iconst_1*/,
1596     1/*iconst_2*/, 1/*iconst_3*/, 1/*iconst_4*/, 1/*iconst_5*/, 2/*lconst_0*/,
1597     2/*lconst_1*/, 1/*fconst_0*/, 1/*fconst_1*/, 1/*fconst_2*/, 2/*dconst_0*/,
1598     2/*dconst_1*/, 1/*bipush*/, 1/*sipush*/, 1/*ldc*/, 1/*ldc_w*/, 2/*ldc2_w*/, 1/*iload*/,
1599     2/*lload*/, 1/*fload*/, 2/*dload*/, 1/*aload*/, 1/*iload_0*/, 1/*iload_1*/, 1/*iload_2*/,
1600     1/*iload_3*/, 2/*lload_0*/, 2/*lload_1*/, 2/*lload_2*/, 2/*lload_3*/, 1/*fload_0*/,
1601     1/*fload_1*/, 1/*fload_2*/, 1/*fload_3*/, 2/*dload_0*/, 2/*dload_1*/, 2/*dload_2*/,
1602     2/*dload_3*/, 1/*aload_0*/, 1/*aload_1*/, 1/*aload_2*/, 1/*aload_3*/, 1/*iaload*/,
1603     2/*laload*/, 1/*faload*/, 2/*daload*/, 1/*aaload*/, 1/*baload*/, 1/*caload*/, 1/*saload*/,
1604     0/*istore*/, 0/*lstore*/, 0/*fstore*/, 0/*dstore*/, 0/*astore*/, 0/*istore_0*/,
1605     0/*istore_1*/, 0/*istore_2*/, 0/*istore_3*/, 0/*lstore_0*/, 0/*lstore_1*/,
1606     0/*lstore_2*/, 0/*lstore_3*/, 0/*fstore_0*/, 0/*fstore_1*/, 0/*fstore_2*/,
1607     0/*fstore_3*/, 0/*dstore_0*/, 0/*dstore_1*/, 0/*dstore_2*/, 0/*dstore_3*/,
1608     0/*astore_0*/, 0/*astore_1*/, 0/*astore_2*/, 0/*astore_3*/, 0/*iastore*/, 0/*lastore*/,
1609     0/*fastore*/, 0/*dastore*/, 0/*aastore*/, 0/*bastore*/, 0/*castore*/, 0/*sastore*/,
1610     0/*pop*/, 0/*pop2*/, 2/*dup*/, 3/*dup_x1*/, 4/*dup_x2*/, 4/*dup2*/, 5/*dup2_x1*/,
1611     6/*dup2_x2*/, 2/*swap*/, 1/*iadd*/, 2/*ladd*/, 1/*fadd*/, 2/*dadd*/, 1/*isub*/, 2/*lsub*/,
1612     1/*fsub*/, 2/*dsub*/, 1/*imul*/, 2/*lmul*/, 1/*fmul*/, 2/*dmul*/, 1/*idiv*/, 2/*ldiv*/,
1613     1/*fdiv*/, 2/*ddiv*/, 1/*irem*/, 2/*lrem*/, 1/*frem*/, 2/*drem*/, 1/*ineg*/, 2/*lneg*/,
1614     1/*fneg*/, 2/*dneg*/, 1/*ishl*/, 2/*lshl*/, 1/*ishr*/, 2/*lshr*/, 1/*iushr*/, 2/*lushr*/,
1615     1/*iand*/, 2/*land*/, 1/*ior*/, 2/*lor*/, 1/*ixor*/, 2/*lxor*/,
1616     0/*iinc*/, 2/*i2l*/, 1/*i2f*/, 2/*i2d*/, 1/*l2i*/, 1/*l2f*/, 2/*l2d*/, 1/*f2i*/,
1617     2/*f2l*/, 2/*f2d*/, 1/*d2i*/, 2/*d2l*/, 1/*d2f*/,
1618     1/*i2b*/, 1/*i2c*/, 1/*i2s*/, 1/*lcmp*/, 1/*fcmpl*/, 1/*fcmpg*/,
1619     1/*dcmpl*/, 1/*dcmpg*/, 0/*ifeq*/, 0/*ifne*/, 0/*iflt*/, 0/*ifge*/, 0/*ifgt*/, 0/*ifle*/,
1620     0/*if_icmpeq*/, 0/*if_icmpne*/, 0/*if_icmplt*/, 0/*if_icmpge*/, 0/*if_icmpgt*/,
1621     0/*if_icmple*/, 0/*if_acmpeq*/, 0/*if_acmpne*/, 0/*goto*/, 1/*jsr*/, 0/*ret*/,
1622     0/*tableswitch*/, 0/*lookupswitch*/, 0/*ireturn*/, 0/*lreturn*/, 0/*freturn*/,
1623     0/*dreturn*/, 0/*areturn*/, 0/*return*/, UNPREDICTABLE/*getstatic*/, 0/*putstatic*/,
1624     UNPREDICTABLE/*getfield*/, 0/*putfield*/, UNPREDICTABLE/*invokevirtual*/,
1625     UNPREDICTABLE/*invokespecial*/, UNPREDICTABLE/*invokestatic*/,
1626     UNPREDICTABLE/*invokeinterface*/, UNPREDICTABLE/*invokedynamic*/, 1/*new*/, 1/*newarray*/, 1/*anewarray*/,
1627     1/*arraylength*/, 1/*athrow*/, 1/*checkcast*/, 1/*instanceof*/, 0/*monitorenter*/,
1628     0/*monitorexit*/, 0/*wide*/, 1/*multianewarray*/, 0/*ifnull*/, 0/*ifnonnull*/,
1629     0/*goto_w*/, 1/*jsr_w*/, 0/*breakpoint*/, UNDEFINED, UNDEFINED,
1630     UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
1631     UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
1632     UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
1633     UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
1634     UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
1635     UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
1636     UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
1637     UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
1638     UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
1639     UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
1640     UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
1641     UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
1642     UNDEFINED, UNPREDICTABLE/*impdep1*/, UNPREDICTABLE/*impdep2*/
1643   };
1644 
1645   /** Attributes and their corresponding names.
1646    */
1647   byte ATTR_UNKNOWN                                 = -1;
1648   byte ATTR_SOURCE_FILE                             = 0;
1649   byte ATTR_CONSTANT_VALUE                          = 1;
1650   byte ATTR_CODE                                    = 2;
1651   byte ATTR_EXCEPTIONS                              = 3;
1652   byte ATTR_LINE_NUMBER_TABLE                       = 4;
1653   byte ATTR_LOCAL_VARIABLE_TABLE                    = 5;
1654   byte ATTR_INNER_CLASSES                           = 6;
1655   byte ATTR_SYNTHETIC                               = 7;
1656   byte ATTR_DEPRECATED                              = 8;
1657   byte ATTR_PMG                                     = 9;
1658   byte ATTR_SIGNATURE                               = 10;
1659   byte ATTR_STACK_MAP                               = 11;
1660   byte ATTR_RUNTIMEVISIBLE_ANNOTATIONS              = 12;
1661   byte ATTR_RUNTIMEINVISIBLE_ANNOTATIONS            = 13;
1662   byte ATTR_RUNTIMEVISIBLE_PARAMETER_ANNOTATIONS    = 14;
1663   byte ATTR_RUNTIMEINVISIBLE_PARAMETER_ANNOTATIONS  = 15;
1664   byte ATTR_ANNOTATION_DEFAULT                      = 16;
1665 
1666   short KNOWN_ATTRIBUTES = 12;//should be 17
1667 
1668 
1669   // TODO: mutable public array!!
1670   String[] ATTRIBUTE_NAMES = {
1671     "SourceFile", "ConstantValue", "Code", "Exceptions",
1672     "LineNumberTable", "LocalVariableTable",
1673     "InnerClasses", "Synthetic", "Deprecated",
1674     "PMGClass", "Signature", "StackMap",
1675     "RuntimeVisibleAnnotations", "RuntimeInvisibleAnnotations",
1676     "RuntimeVisibleParameterAnnotations", "RuntimeInvisibleParameterAnnotations",
1677     "AnnotationDefault"
1678   };
1679 
1680   /** Constants used in the StackMap attribute.
1681    */
1682   byte ITEM_Bogus      = 0;
1683   byte ITEM_Integer    = 1;
1684   byte ITEM_Float      = 2;
1685   byte ITEM_Double     = 3;
1686   byte ITEM_Long       = 4;
1687   byte ITEM_Null       = 5;
1688   byte ITEM_InitObject = 6;
1689   byte ITEM_Object     = 7;
1690   byte ITEM_NewObject  = 8;
1691 
1692   String[] ITEM_NAMES = {
1693     "Bogus", "Integer", "Float", "Double", "Long",
1694     "Null", "InitObject", "Object", "NewObject"
1695   };
1696 
1697 }
1698