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