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