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