1 /*
2 * Licensed to the Apache Software Foundation (ASF) under one
3 * or more contributor license agreements. See the NOTICE file
4 * distributed with this work for additional information
5 * regarding copyright ownership. The ASF licenses this file
6 * to you under the Apache License, Version 2.0 (the
7 * "License"); you may not use this file except in compliance
8 * with the License. You may obtain a copy of the License at
9 *
10 * https://www.apache.org/licenses/LICENSE-2.0
11 *
12 * Unless required by applicable law or agreed to in writing,
13 * software distributed under the License is distributed on an
14 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15 * KIND, either express or implied. See the License for the
16 * specific language governing permissions and limitations
17 * under the License.
18 */
19
20 package org.apache.bcel;
21
22 import java.util.Arrays;
23 import java.util.Collections;
24
25 /**
26 * Constants for the project, mostly defined in the JVM specification.
27 *
28 * @since 6.0 (intended to replace the Constants interface)
29 */
30 public final class Const {
31
32 /**
33 * Java class file format Magic number: {@value}.
34 *
35 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se7/html/jvms-4.html#jvms-4.1-200-A"> The ClassFile Structure in The Java Virtual Machine
36 * Specification</a>
37 */
38 public static final int JVM_CLASSFILE_MAGIC = 0xCAFEBABE;
39
40 /**
41 * Major version number of class files for Java 1.1: {@value}.
42 *
43 * @see #MINOR_1_1
44 */
45 public static final short MAJOR_1_1 = 45;
46
47 /**
48 * Minor version number of class files for Java 1.1: {@value}.
49 *
50 * @see #MAJOR_1_1
51 */
52 public static final short MINOR_1_1 = 3;
53
54 /**
55 * Major version number of class files for Java 1.2: {@value}.
56 *
57 * @see #MINOR_1_2
58 */
59 public static final short MAJOR_1_2 = 46;
60
61 /**
62 * Minor version number of class files for Java 1.2: {@value}.
63 *
64 * @see #MAJOR_1_2
65 */
66 public static final short MINOR_1_2 = 0;
67
68 /**
69 * Major version number of class files for Java 1.2: {@value}.
70 *
71 * @see #MINOR_1_2
72 */
73 public static final short MAJOR_1_3 = 47;
74
75 /**
76 * Minor version number of class files for Java 1.3: {@value}.
77 *
78 * @see #MAJOR_1_3
79 */
80 public static final short MINOR_1_3 = 0;
81
82 /**
83 * Major version number of class files for Java 1.3: {@value}.
84 *
85 * @see #MINOR_1_3
86 */
87 public static final short MAJOR_1_4 = 48;
88
89 /**
90 * Minor version number of class files for Java 1.4: {@value}.
91 *
92 * @see #MAJOR_1_4
93 */
94 public static final short MINOR_1_4 = 0;
95
96 /**
97 * Major version number of class files for Java 1.4: {@value}.
98 *
99 * @see #MINOR_1_4
100 */
101 public static final short MAJOR_1_5 = 49;
102
103 /**
104 * Minor version number of class files for Java 1.5: {@value}.
105 *
106 * @see #MAJOR_1_5
107 */
108 public static final short MINOR_1_5 = 0;
109
110 /**
111 * Major version number of class files for Java 1.6: {@value}.
112 *
113 * @see #MINOR_1_6
114 */
115 public static final short MAJOR_1_6 = 50;
116
117 /**
118 * Minor version number of class files for Java 1.6: {@value}.
119 *
120 * @see #MAJOR_1_6
121 */
122 public static final short MINOR_1_6 = 0;
123
124 /**
125 * Major version number of class files for Java 1.7: {@value}.
126 *
127 * @see #MINOR_1_7
128 */
129 public static final short MAJOR_1_7 = 51;
130
131 /**
132 * Minor version number of class files for Java 1.7: {@value}.
133 *
134 * @see #MAJOR_1_7
135 */
136 public static final short MINOR_1_7 = 0;
137
138 /**
139 * Major version number of class files for Java 1.8: {@value}.
140 *
141 * @see #MINOR_1_8
142 */
143 public static final short MAJOR_1_8 = 52;
144
145 /**
146 * Minor version number of class files for Java 1.8: {@value}.
147 *
148 * @see #MAJOR_1_8
149 */
150 public static final short MINOR_1_8 = 0;
151
152 /**
153 * Major version number of class files for Java 9: {@value}.
154 *
155 * @see #MINOR_9
156 */
157 public static final short MAJOR_9 = 53;
158
159 /**
160 * Minor version number of class files for Java 9: {@value}.
161 *
162 * @see #MAJOR_9
163 */
164 public static final short MINOR_9 = 0;
165
166 /**
167 * @deprecated Use {@link #MAJOR_9} ({@value}) instead.
168 */
169 @Deprecated
170 public static final short MAJOR_1_9 = MAJOR_9;
171
172 /**
173 * @deprecated Use {@link #MINOR_9} ({@value}) instead.
174 */
175 @Deprecated
176 public static final short MINOR_1_9 = MINOR_9;
177
178 /**
179 * Major version number of class files for Java 10: {@value}.
180 *
181 * @see #MINOR_10
182 */
183 public static final short MAJOR_10 = 54;
184
185 /**
186 * Minor version number of class files for Java 10: {@value}.
187 *
188 * @see #MAJOR_10
189 */
190 public static final short MINOR_10 = 0;
191
192 /**
193 * Major version number of class files for Java 11: {@value}.
194 *
195 * @see #MINOR_11
196 */
197 public static final short MAJOR_11 = 55;
198
199 /**
200 * Minor version number of class files for Java 11: {@value}.
201 *
202 * @see #MAJOR_11
203 */
204 public static final short MINOR_11 = 0;
205
206 /**
207 * Major version number of class files for Java 12: {@value}.
208 *
209 * @see #MINOR_12
210 */
211 public static final short MAJOR_12 = 56;
212
213 /**
214 * Minor version number of class files for Java 12: {@value}.
215 *
216 * @see #MAJOR_12
217 */
218 public static final short MINOR_12 = 0;
219
220 /**
221 * Major version number of class files for Java 13: {@value}.
222 *
223 * @see #MINOR_13
224 */
225 public static final short MAJOR_13 = 57;
226
227 /**
228 * Minor version number of class files for Java 13: {@value}.
229 *
230 * @see #MAJOR_13
231 */
232 public static final short MINOR_13 = 0;
233
234 /**
235 * Minor version number of class files for Java 14: {@value}.
236 *
237 * @see #MAJOR_14
238 * @since 6.4.0
239 */
240 public static final short MINOR_14 = 0;
241
242 /**
243 * Minor version number of class files for Java 15: {@value}.
244 *
245 * @see #MAJOR_15
246 * @since 6.6.0
247 */
248 public static final short MINOR_15 = 0;
249
250 /**
251 * Minor version number of class files for Java 16: {@value}.
252 *
253 * @see #MAJOR_16
254 * @since 6.6.0
255 */
256 public static final short MINOR_16 = 0;
257
258 /**
259 * Minor version number of class files for Java 17: {@value}.
260 *
261 * @see #MAJOR_17
262 * @since 6.6.0
263 */
264 public static final short MINOR_17 = 0;
265
266 /**
267 * Minor version number of class files for Java 18: {@value}.
268 *
269 * @see #MAJOR_18
270 * @since 6.6.0
271 */
272 public static final short MINOR_18 = 0;
273
274 /**
275 * Minor version number of class files for Java 19: {@value}.
276 *
277 * @see #MAJOR_19
278 * @since 6.6.0
279 */
280 public static final short MINOR_19 = 0;
281
282 /**
283 * Minor version number of class files for Java 20: {@value}.
284 *
285 * @see #MAJOR_20
286 * @since 6.8.0
287 */
288 public static final short MINOR_20 = 0;
289
290 /**
291 * Minor version number of class files for Java 21: {@value}.
292 *
293 * @see #MAJOR_21
294 * @since 6.8.0
295 */
296 public static final short MINOR_21 = 0;
297
298 /**
299 * Minor version number of class files for Java 22: {@value}.
300 *
301 * @see #MAJOR_22
302 * @since 6.10.0
303 */
304 public static final short MINOR_22 = 0;
305
306 /**
307 * Minor version number of class files for Java 23: {@value}.
308 *
309 * @see #MAJOR_23
310 * @since 6.10.0
311 */
312 public static final short MINOR_23 = 0;
313
314 /**
315 * Minor version number of class files for Java 24: {@value}.
316 *
317 * @see #MAJOR_24
318 * @since 6.10.0
319 */
320 public static final short MINOR_24 = 0;
321
322 /**
323 * Minor version number of class files for Java 25: {@value}.
324 *
325 * @see #MAJOR_25
326 * @since 6.11.0
327 */
328 public static final short MINOR_25 = 0;
329
330 /**
331 * Minor version number of class files for Java 26: {@value}.
332 *
333 * @see #MAJOR_26
334 * @since 6.12.0
335 */
336 public static final short MINOR_26 = 0;
337
338 /**
339 * Major version number of class files for Java 14: {@value}.
340 *
341 * @see #MINOR_14
342 * @since 6.4.0
343 */
344 public static final short MAJOR_14 = 58;
345
346 /**
347 * Major version number of class files for Java 15: {@value}.
348 *
349 * @see #MINOR_15
350 * @since 6.6.0
351 */
352 public static final short MAJOR_15 = 59;
353
354 /**
355 * Major version number of class files for Java 16: {@value}.
356 *
357 * @see #MINOR_16
358 * @since 6.6.0
359 */
360 public static final short MAJOR_16 = 60;
361
362 /**
363 * Major version number of class files for Java 17: {@value}.
364 *
365 * @see #MINOR_17
366 * @since 6.6.0
367 */
368 public static final short MAJOR_17 = 61;
369
370 /**
371 * Major version number of class files for Java 18: {@value}.
372 *
373 * @see #MINOR_18
374 * @since 6.6.0
375 */
376 public static final short MAJOR_18 = 62;
377
378 /**
379 * Major version number of class files for Java 19: {@value}.
380 *
381 * @see #MINOR_19
382 * @since 6.6.0
383 */
384 public static final short MAJOR_19 = 63;
385
386 /**
387 * Major version number of class files for Java 20: {@value}.
388 *
389 * @see #MINOR_20
390 * @since 6.8.0
391 */
392 public static final short MAJOR_20 = 64;
393
394 /**
395 * Major version number of class files for Java 21: {@value}.
396 *
397 * @see #MINOR_21
398 * @since 6.8.0
399 */
400 public static final short MAJOR_21 = 65;
401
402 /**
403 * Major version number of class files for Java 22: {@value}.
404 *
405 * @see #MINOR_22
406 * @since 6.10.0
407 */
408 public static final short MAJOR_22 = 66;
409
410 /**
411 * Major version number of class files for Java 23: {@value}.
412 *
413 * @see #MINOR_23
414 * @since 6.10.0
415 */
416 public static final short MAJOR_23 = 67;
417
418 /**
419 * Major version number of class files for Java 24: {@value}.
420 *
421 * @see #MINOR_24
422 * @since 6.10.0
423 */
424 public static final short MAJOR_24 = 68;
425
426 /**
427 * Major version number of class files for Java 25: {@value}.
428 *
429 * @see #MINOR_25
430 * @since 6.11.0
431 */
432 public static final short MAJOR_25 = 69;
433
434 /**
435 * Major version number of class files for Java 26: {@value}.
436 *
437 * @see #MINOR_26
438 * @since 6.12.0
439 */
440 public static final short MAJOR_26 = 70;
441
442 /**
443 * Default major version number. Class file is for Java 1.1: {@value}.
444 *
445 * @see #MAJOR_1_1
446 */
447 public static final short MAJOR = MAJOR_1_1;
448
449 /**
450 * Default major version number. Class file is for Java 1.1: {@value}.
451 *
452 * @see #MAJOR_1_1
453 */
454 public static final short MINOR = MINOR_1_1;
455
456 /**
457 * Maximum value for an unsigned short: {@value}.
458 */
459 public static final int MAX_SHORT = 65535; // 2^16 - 1
460
461 /**
462 * Maximum value for an unsigned byte: {@value}.
463 */
464 public static final int MAX_BYTE = 255; // 2^8 - 1
465
466 /**
467 * One of the access flags for fields, methods, or classes: {@value}.
468 *
469 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se9/html/jvms-4.html#jvms-4.1-200-E.1"> Flag definitions for Classes in the Java Virtual Machine
470 * Specification (Java SE 9 Edition).</a>
471 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se9/html/jvms-4.html#jvms-4.5"> Flag definitions for Fields in the Java Virtual Machine
472 * Specification (Java SE 9 Edition).</a>
473 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se9/html/jvms-4.html#jvms-4.6"> Flag definitions for Methods in the Java Virtual Machine
474 * Specification (Java SE 9 Edition).</a>
475 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se9/html/jvms-4.html#jvms-4.7.6-300-D.1-D.1"> Flag definitions for Inner Classes in the Java
476 * Virtual Machine Specification (Java SE 9 Edition).</a>
477 */
478 public static final short ACC_PUBLIC = 0x0001;
479
480 /**
481 * One of the access flags for fields, methods, or classes: {@value}.
482 *
483 * @see #ACC_PUBLIC
484 */
485 public static final short ACC_PRIVATE = 0x0002;
486
487 /**
488 * One of the access flags for fields, methods, or classes: {@value}.
489 *
490 * @see #ACC_PUBLIC
491 */
492 public static final short ACC_PROTECTED = 0x0004;
493
494 /**
495 * One of the access flags for fields, methods, or classes: {@value}.
496 *
497 * @see #ACC_PUBLIC
498 */
499 public static final short ACC_STATIC = 0x0008;
500
501 /**
502 * One of the access flags for fields, methods, or classes: {@value}.
503 *
504 * @see #ACC_PUBLIC
505 */
506 public static final short ACC_FINAL = 0x0010;
507
508 /**
509 * One of the access flags for the Module attribute: {@value}.
510 *
511 * @see #ACC_PUBLIC
512 */
513 public static final short ACC_OPEN = 0x0020;
514
515 /**
516 * One of the access flags for classes: {@value}.
517 *
518 * @see #ACC_PUBLIC
519 */
520 public static final short ACC_SUPER = 0x0020;
521
522 /**
523 * One of the access flags for methods: {@value}.
524 *
525 * @see #ACC_PUBLIC
526 */
527 public static final short ACC_SYNCHRONIZED = 0x0020;
528
529 /**
530 * One of the access flags for the Module attribute: {@value}.
531 *
532 * @see #ACC_PUBLIC
533 */
534 public static final short ACC_TRANSITIVE = 0x0020;
535
536 /**
537 * One of the access flags for methods: {@value}.
538 *
539 * @see #ACC_PUBLIC
540 */
541 public static final short ACC_BRIDGE = 0x0040;
542
543 /**
544 * One of the access flags for the Module attribute: {@value}.
545 *
546 * @see #ACC_PUBLIC
547 */
548 public static final short ACC_STATIC_PHASE = 0x0040;
549
550 /**
551 * One of the access flags for fields: {@value}.
552 *
553 * @see #ACC_PUBLIC
554 */
555 public static final short ACC_VOLATILE = 0x0040;
556
557 /**
558 * One of the access flags for fields: {@value}.
559 *
560 * @see #ACC_PUBLIC
561 */
562 public static final short ACC_TRANSIENT = 0x0080;
563
564 /**
565 * One of the access flags for methods: {@value}.
566 *
567 * @see #ACC_PUBLIC
568 */
569 public static final short ACC_VARARGS = 0x0080;
570
571 /**
572 * One of the access flags for methods: {@value}.
573 *
574 * @see #ACC_PUBLIC
575 */
576 public static final short ACC_NATIVE = 0x0100;
577
578 /**
579 * One of the access flags for classes: {@value}.
580 *
581 * @see #ACC_PUBLIC
582 */
583 public static final short ACC_INTERFACE = 0x0200;
584
585 /**
586 * One of the access flags for methods or classes: {@value}.
587 *
588 * @see #ACC_PUBLIC
589 */
590 public static final short ACC_ABSTRACT = 0x0400;
591
592 /**
593 * One of the access flags for methods: {@value}.
594 *
595 * @see #ACC_PUBLIC
596 */
597 public static final short ACC_STRICT = 0x0800;
598
599 /**
600 * One of the access flags for fields, methods, classes, MethodParameter attribute, or Module attribute: {@value}.
601 *
602 * @see #ACC_PUBLIC
603 */
604 public static final short ACC_SYNTHETIC = 0x1000;
605
606 /**
607 * One of the access flags for classes: {@value}.
608 *
609 * @see #ACC_PUBLIC
610 */
611 public static final short ACC_ANNOTATION = 0x2000;
612
613 /**
614 * One of the access flags for fields or classes: {@value}.
615 *
616 * @see #ACC_PUBLIC
617 */
618 public static final short ACC_ENUM = 0x4000;
619 // Applies to classes compiled by new compilers only
620
621 /**
622 * One of the access flags for MethodParameter or Module attributes: {@value}.
623 *
624 * @see #ACC_PUBLIC
625 */
626 public static final short ACC_MANDATED = (short) 0x8000;
627
628 /**
629 * One of the access flags for classes: {@value}.
630 *
631 * @see #ACC_PUBLIC
632 */
633 public static final short ACC_MODULE = (short) 0x8000;
634
635 /**
636 * One of the access flags for fields, methods, or classes: {@value}.
637 *
638 * @see #ACC_PUBLIC
639 * @deprecated Use {@link #MAX_ACC_FLAG_I}
640 */
641 @Deprecated
642 public static final short MAX_ACC_FLAG = ACC_ENUM;
643
644 /**
645 * One of the access flags for fields, methods, or classes. ACC_MODULE is negative as a short: {@value}.
646 *
647 * @see #ACC_PUBLIC
648 * @since 6.4.0
649 */
650 public static final int MAX_ACC_FLAG_I = 0x8000; // ACC_MODULE is negative as a short
651 // Note that do to overloading:
652 // 'synchronized' is for methods, might be 'open' (if Module), 'super' (if class), or 'transitive' (if Module).
653 // 'volatile' is for fields, might be 'bridge' (if method) or 'static_phase' (if Module)
654 // 'transient' is for fields, might be 'varargs' (if method)
655 // 'module' is for classes, might be 'mandated' (if Module or MethodParameters)
656
657 /**
658 * The names of the access flags.
659 */
660 private static final String[] ACCESS_NAMES = { "public", "private", "protected", "static", "final", "synchronized", "volatile", "transient", "native",
661 "interface", "abstract", "strictfp", "synthetic", "annotation", "enum", "module" };
662
663 /**
664 * The length of the ACCESS_NAMES array.
665 *
666 * @since 6.0
667 */
668 public static final int ACCESS_NAMES_LENGTH = ACCESS_NAMES.length;
669
670 /**
671 * Marks a constant pool entry as type UTF-8: {@value}.
672 *
673 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.7"> The Constant Pool in The Java Virtual Machine Specification</a>
674 */
675 public static final byte CONSTANT_Utf8 = 1;
676 /*
677 * The description of the constant pool is at: https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4 References below are to the
678 * individual sections
679 */
680
681 /**
682 * Marks a constant pool entry as type Integer: {@value}.
683 *
684 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.4"> The Constant Pool in The Java Virtual Machine Specification</a>
685 */
686 public static final byte CONSTANT_Integer = 3;
687
688 /**
689 * Marks a constant pool entry as type Float: {@value}.
690 *
691 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.4"> The Constant Pool in The Java Virtual Machine Specification</a>
692 */
693 public static final byte CONSTANT_Float = 4;
694
695 /**
696 * Marks a constant pool entry as type Long: {@value}.
697 *
698 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.5"> The Constant Pool in The Java Virtual Machine Specification</a>
699 */
700 public static final byte CONSTANT_Long = 5;
701
702 /**
703 * Marks a constant pool entry as type Double: {@value}.
704 *
705 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.5"> The Constant Pool in The Java Virtual Machine Specification</a>
706 */
707 public static final byte CONSTANT_Double = 6;
708
709 /**
710 * Marks a constant pool entry as a Class: {@value}.
711 *
712 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.1"> The Constant Pool in The Java Virtual Machine Specification</a>
713 */
714 public static final byte CONSTANT_Class = 7;
715
716 /**
717 * Marks a constant pool entry as a Field Reference: {@value}.
718 *
719 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.2"> The Constant Pool in The Java Virtual Machine Specification</a>
720 */
721 public static final byte CONSTANT_Fieldref = 9;
722
723 /**
724 * Marks a constant pool entry as type String: {@value}.
725 *
726 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.3"> The Constant Pool in The Java Virtual Machine Specification</a>
727 */
728 public static final byte CONSTANT_String = 8;
729
730 /**
731 * Marks a constant pool entry as a Method Reference: {@value}.
732 *
733 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.2"> The Constant Pool in The Java Virtual Machine Specification</a>
734 */
735 public static final byte CONSTANT_Methodref = 10;
736
737 /**
738 * Marks a constant pool entry as an Interface Method Reference: {@value}.
739 *
740 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.2"> The Constant Pool in The Java Virtual Machine Specification</a>
741 */
742 public static final byte CONSTANT_InterfaceMethodref = 11;
743
744 /**
745 * Marks a constant pool entry as a name and type: {@value}.
746 *
747 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.6"> The Constant Pool in The Java Virtual Machine Specification</a>
748 */
749 public static final byte CONSTANT_NameAndType = 12;
750
751 /**
752 * Marks a constant pool entry as a Method Handle: {@value}.
753 *
754 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.8"> The Constant Pool in The Java Virtual Machine Specification</a>
755 */
756 public static final byte CONSTANT_MethodHandle = 15;
757
758 /**
759 * Marks a constant pool entry as a Method Type: {@value}.
760 *
761 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.9"> The Constant Pool in The Java Virtual Machine Specification</a>
762 */
763 public static final byte CONSTANT_MethodType = 16;
764
765 /**
766 * Marks a constant pool entry as dynamically computed: {@value}.
767 *
768 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se11/html/jvms-4.html#jvms-4.4.10"> The Constant Pool in The Java Virtual Machine
769 * Specification</a>
770 * @since 6.3
771 */
772 public static final byte CONSTANT_Dynamic = 17;
773
774 /**
775 * Marks a constant pool entry as an Invoke Dynamic: {@value}.
776 *
777 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.10"> The Constant Pool in The Java Virtual Machine
778 * Specification</a>
779 */
780 public static final byte CONSTANT_InvokeDynamic = 18;
781
782 /**
783 * Marks a constant pool entry as a Module Reference: {@value}.
784 *
785 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se9/html/jvms-4.html#jvms-4.4.11"> The Constant Pool in The Java Virtual Machine
786 * Specification</a>
787 * @since 6.1
788 */
789 public static final byte CONSTANT_Module = 19;
790
791 /**
792 * Marks a constant pool entry as a Package Reference: {@value}.
793 *
794 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se9/html/jvms-4.html#jvms-4.4.12"> The Constant Pool in The Java Virtual Machine
795 * Specification</a>
796 * @since 6.1
797 */
798 public static final byte CONSTANT_Package = 20;
799
800 /**
801 * The names of the types of entries in a constant pool. Use getConstantName instead
802 */
803 private static final String[] CONSTANT_NAMES = { "", "CONSTANT_Utf8", "", "CONSTANT_Integer", "CONSTANT_Float", "CONSTANT_Long", "CONSTANT_Double",
804 "CONSTANT_Class", "CONSTANT_String", "CONSTANT_Fieldref", "CONSTANT_Methodref", "CONSTANT_InterfaceMethodref", "CONSTANT_NameAndType", "", "",
805 "CONSTANT_MethodHandle", "CONSTANT_MethodType", "CONSTANT_Dynamic", "CONSTANT_InvokeDynamic", "CONSTANT_Module", "CONSTANT_Package" };
806
807 /**
808 * The name of the static initializer, also called "class initialization method" or "interface initialization method". This is {@value}.
809 */
810 public static final String STATIC_INITIALIZER_NAME = "<clinit>";
811
812 /**
813 * The name of every constructor method in a class, also called "instance initialization method". This is {@value}.
814 */
815 public static final String CONSTRUCTOR_NAME = "<init>";
816
817 /**
818 * The names of the interfaces implemented by arrays.
819 */
820 private static final String[] INTERFACES_IMPLEMENTED_BY_ARRAYS = { "java.lang.Cloneable", "java.io.Serializable" };
821
822 /**
823 * Maximum Constant Pool entries: {@value}. One of the limitations of the Java Virtual Machine.
824 *
825 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.11-100-A"> The Java Virtual Machine Specification, Java SE 8 Edition,
826 * page 330, chapter 4.11.</a>
827 */
828 public static final int MAX_CP_ENTRIES = 65535;
829
830 /**
831 * Maximum code size plus one; the code size must be LESS than {@value}.
832 * <p>
833 * This limitation is from <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.7.3"> The Java Virtual Machine Specification, Java
834 * SE 8 Edition, 4.7.3 The Code Attribute.</a>:
835 * </p>
836 *
837 * <pre>
838 * code_length
839 *
840 * The value of the code_length item gives the number of bytes in the code array for this method.
841 *
842 * The value of code_length must be greater than zero (as the code array must not be empty) and less than 65536"
843 * </pre>
844 *
845 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.7.3"> The Java Virtual Machine Specification, Java SE 8 Edition,
846 * 4.7.3 The Code Attribute.</a>
847 */
848 public static final int MAX_CODE_SIZE = 65536; // bytes
849
850 /**
851 * The maximum number of dimensions in an array: {@value}. One of the limitations of the Java Virtual Machine.
852 *
853 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.3.2-150"> Field Descriptors in The Java Virtual Machine
854 * Specification</a>
855 */
856 public static final int MAX_ARRAY_DIMENSIONS = 255;
857
858 /**
859 * Java VM opcode {@value}.
860 *
861 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.nop"> Opcode definitions in The Java Virtual Machine
862 * Specification</a>
863 */
864 public static final short NOP = 0;
865
866 /**
867 * Java VM opcode {@value}.
868 *
869 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.aconst_null"> Opcode definitions in The Java Virtual Machine
870 * Specification</a>
871 */
872 public static final short ACONST_NULL = 1;
873
874 /**
875 * Java VM opcode {@value}.
876 *
877 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iconst_i"> Opcode definitions in The Java Virtual Machine
878 * Specification</a>
879 */
880 public static final short ICONST_M1 = 2;
881
882 /**
883 * Java VM opcode {@value}.
884 *
885 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iconst_i"> Opcode definitions in The Java Virtual Machine
886 * Specification</a>
887 */
888 public static final short ICONST_0 = 3;
889
890 /**
891 * Java VM opcode {@value}.
892 *
893 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iconst_i"> Opcode definitions in The Java Virtual Machine
894 * Specification</a>
895 */
896 public static final short ICONST_1 = 4;
897
898 /**
899 * Java VM opcode {@value}.
900 *
901 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iconst_i"> Opcode definitions in The Java Virtual Machine
902 * Specification</a>
903 */
904 public static final short ICONST_2 = 5;
905
906 /**
907 * Java VM opcode {@value}.
908 *
909 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iconst_i"> Opcode definitions in The Java Virtual Machine
910 * Specification</a>
911 */
912 public static final short ICONST_3 = 6;
913
914 /**
915 * Java VM opcode {@value}.
916 *
917 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iconst_i"> Opcode definitions in The Java Virtual Machine
918 * Specification</a>
919 */
920 public static final short ICONST_4 = 7;
921
922 /**
923 * Java VM opcode {@value}.
924 *
925 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iconst_i"> Opcode definitions in The Java Virtual Machine
926 * Specification</a>
927 */
928 public static final short ICONST_5 = 8;
929
930 /**
931 * Java VM opcode {@value}.
932 *
933 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lconst_l"> Opcode definitions in The Java Virtual Machine
934 * Specification</a>
935 */
936 public static final short LCONST_0 = 9;
937
938 /**
939 * Java VM opcode {@value}.
940 *
941 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lconst_l"> Opcode definitions in The Java Virtual Machine
942 * Specification</a>
943 */
944 public static final short LCONST_1 = 10;
945
946 /**
947 * Java VM opcode {@value}.
948 *
949 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fconst_f"> Opcode definitions in The Java Virtual Machine
950 * Specification</a>
951 */
952 public static final short FCONST_0 = 11;
953
954 /**
955 * Java VM opcode {@value}.
956 *
957 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fconst_f"> Opcode definitions in The Java Virtual Machine
958 * Specification</a>
959 */
960 public static final short FCONST_1 = 12;
961
962 /**
963 * Java VM opcode {@value}.
964 *
965 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fconst_f"> Opcode definitions in The Java Virtual Machine
966 * Specification</a>
967 */
968 public static final short FCONST_2 = 13;
969
970 /**
971 * Java VM opcode {@value}.
972 *
973 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dconst_d"> Opcode definitions in The Java Virtual Machine
974 * Specification</a>
975 */
976 public static final short DCONST_0 = 14;
977
978 /**
979 * Java VM opcode {@value}.
980 *
981 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dconst_d"> Opcode definitions in The Java Virtual Machine
982 * Specification</a>
983 */
984 public static final short DCONST_1 = 15;
985
986 /**
987 * Java VM opcode {@value}.
988 *
989 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.bipush"> Opcode definitions in The Java Virtual Machine
990 * Specification</a>
991 */
992 public static final short BIPUSH = 16;
993
994 /**
995 * Java VM opcode {@value}.
996 *
997 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.sipush"> Opcode definitions in The Java Virtual Machine
998 * Specification</a>
999 */
1000 public static final short SIPUSH = 17;
1001
1002 /**
1003 * Java VM opcode {@value}.
1004 *
1005 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ldc"> Opcode definitions in The Java Virtual Machine
1006 * Specification</a>
1007 */
1008 public static final short LDC = 18;
1009
1010 /**
1011 * Java VM opcode {@value}.
1012 *
1013 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ldc_w"> Opcode definitions in The Java Virtual Machine
1014 * Specification</a>
1015 */
1016 public static final short LDC_W = 19;
1017
1018 /**
1019 * Java VM opcode {@value}.
1020 *
1021 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ldc2_w"> Opcode definitions in The Java Virtual Machine
1022 * Specification</a>
1023 */
1024 public static final short LDC2_W = 20;
1025
1026 /**
1027 * Java VM opcode {@value}.
1028 *
1029 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iload"> Opcode definitions in The Java Virtual Machine
1030 * Specification</a>
1031 */
1032 public static final short ILOAD = 21;
1033
1034 /**
1035 * Java VM opcode {@value}.
1036 *
1037 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lload"> Opcode definitions in The Java Virtual Machine
1038 * Specification</a>
1039 */
1040 public static final short LLOAD = 22;
1041
1042 /**
1043 * Java VM opcode {@value}.
1044 *
1045 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fload"> Opcode definitions in The Java Virtual Machine
1046 * Specification</a>
1047 */
1048 public static final short FLOAD = 23;
1049
1050 /**
1051 * Java VM opcode {@value}.
1052 *
1053 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dload"> Opcode definitions in The Java Virtual Machine
1054 * Specification</a>
1055 */
1056 public static final short DLOAD = 24;
1057
1058 /**
1059 * Java VM opcode {@value}.
1060 *
1061 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.aload"> Opcode definitions in The Java Virtual Machine
1062 * Specification</a>
1063 */
1064 public static final short ALOAD = 25;
1065
1066 /**
1067 * Java VM opcode {@value}.
1068 *
1069 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iload_n"> Opcode definitions in The Java Virtual Machine
1070 * Specification</a>
1071 */
1072 public static final short ILOAD_0 = 26;
1073
1074 /**
1075 * Java VM opcode {@value}.
1076 *
1077 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iload_n"> Opcode definitions in The Java Virtual Machine
1078 * Specification</a>
1079 */
1080 public static final short ILOAD_1 = 27;
1081
1082 /**
1083 * Java VM opcode {@value}.
1084 *
1085 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iload_n"> Opcode definitions in The Java Virtual Machine
1086 * Specification</a>
1087 */
1088 public static final short ILOAD_2 = 28;
1089
1090 /**
1091 * Java VM opcode {@value}.
1092 *
1093 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iload_n"> Opcode definitions in The Java Virtual Machine
1094 * Specification</a>
1095 */
1096 public static final short ILOAD_3 = 29;
1097
1098 /**
1099 * Java VM opcode {@value}.
1100 *
1101 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lload_n"> Opcode definitions in The Java Virtual Machine
1102 * Specification</a>
1103 */
1104 public static final short LLOAD_0 = 30;
1105
1106 /**
1107 * Java VM opcode {@value}.
1108 *
1109 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lload_n"> Opcode definitions in The Java Virtual Machine
1110 * Specification</a>
1111 */
1112 public static final short LLOAD_1 = 31;
1113
1114 /**
1115 * Java VM opcode {@value}.
1116 *
1117 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lload_n"> Opcode definitions in The Java Virtual Machine
1118 * Specification</a>
1119 */
1120 public static final short LLOAD_2 = 32;
1121
1122 /**
1123 * Java VM opcode {@value}.
1124 *
1125 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lload_n"> Opcode definitions in The Java Virtual Machine
1126 * Specification</a>
1127 */
1128 public static final short LLOAD_3 = 33;
1129
1130 /**
1131 * Java VM opcode {@value}.
1132 *
1133 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fload_n"> Opcode definitions in The Java Virtual Machine
1134 * Specification</a>
1135 */
1136 public static final short FLOAD_0 = 34;
1137
1138 /**
1139 * Java VM opcode {@value}.
1140 *
1141 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fload_n"> Opcode definitions in The Java Virtual Machine
1142 * Specification</a>
1143 */
1144 public static final short FLOAD_1 = 35;
1145
1146 /**
1147 * Java VM opcode {@value}.
1148 *
1149 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fload_n"> Opcode definitions in The Java Virtual Machine
1150 * Specification</a>
1151 */
1152 public static final short FLOAD_2 = 36;
1153
1154 /**
1155 * Java VM opcode {@value}.
1156 *
1157 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fload_n"> Opcode definitions in The Java Virtual Machine
1158 * Specification</a>
1159 */
1160 public static final short FLOAD_3 = 37;
1161
1162 /**
1163 * Java VM opcode {@value}.
1164 *
1165 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dload_n"> Opcode definitions in The Java Virtual Machine
1166 * Specification</a>
1167 */
1168 public static final short DLOAD_0 = 38;
1169
1170 /**
1171 * Java VM opcode {@value}.
1172 *
1173 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dload_n"> Opcode definitions in The Java Virtual Machine
1174 * Specification</a>
1175 */
1176 public static final short DLOAD_1 = 39;
1177
1178 /**
1179 * Java VM opcode {@value}.
1180 *
1181 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dload_n"> Opcode definitions in The Java Virtual Machine
1182 * Specification</a>
1183 */
1184 public static final short DLOAD_2 = 40;
1185
1186 /**
1187 * Java VM opcode {@value}.
1188 *
1189 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dload_n"> Opcode definitions in The Java Virtual Machine
1190 * Specification</a>
1191 */
1192 public static final short DLOAD_3 = 41;
1193
1194 /**
1195 * Java VM opcode {@value}.
1196 *
1197 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.aload_n"> Opcode definitions in The Java Virtual Machine
1198 * Specification</a>
1199 */
1200 public static final short ALOAD_0 = 42;
1201
1202 /**
1203 * Java VM opcode {@value}.
1204 *
1205 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.aload_n"> Opcode definitions in The Java Virtual Machine
1206 * Specification</a>
1207 */
1208 public static final short ALOAD_1 = 43;
1209
1210 /**
1211 * Java VM opcode {@value}.
1212 *
1213 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.aload_n"> Opcode definitions in The Java Virtual Machine
1214 * Specification</a>
1215 */
1216 public static final short ALOAD_2 = 44;
1217
1218 /**
1219 * Java VM opcode {@value}.
1220 *
1221 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.aload_n"> Opcode definitions in The Java Virtual Machine
1222 * Specification</a>
1223 */
1224 public static final short ALOAD_3 = 45;
1225
1226 /**
1227 * Java VM opcode {@value}.
1228 *
1229 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iaload"> Opcode definitions in The Java Virtual Machine
1230 * Specification</a>
1231 */
1232 public static final short IALOAD = 46;
1233
1234 /**
1235 * Java VM opcode {@value}.
1236 *
1237 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.laload"> Opcode definitions in The Java Virtual Machine
1238 * Specification</a>
1239 */
1240 public static final short LALOAD = 47;
1241
1242 /**
1243 * Java VM opcode {@value}.
1244 *
1245 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.faload"> Opcode definitions in The Java Virtual Machine
1246 * Specification</a>
1247 */
1248 public static final short FALOAD = 48;
1249
1250 /**
1251 * Java VM opcode {@value}.
1252 *
1253 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.daload"> Opcode definitions in The Java Virtual Machine
1254 * Specification</a>
1255 */
1256 public static final short DALOAD = 49;
1257
1258 /**
1259 * Java VM opcode {@value}.
1260 *
1261 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.aaload"> Opcode definitions in The Java Virtual Machine
1262 * Specification</a>
1263 */
1264 public static final short AALOAD = 50;
1265
1266 /**
1267 * Java VM opcode {@value}.
1268 *
1269 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.baload"> Opcode definitions in The Java Virtual Machine
1270 * Specification</a>
1271 */
1272 public static final short BALOAD = 51;
1273
1274 /**
1275 * Java VM opcode {@value}.
1276 *
1277 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.caload"> Opcode definitions in The Java Virtual Machine
1278 * Specification</a>
1279 */
1280 public static final short CALOAD = 52;
1281
1282 /**
1283 * Java VM opcode {@value}.
1284 *
1285 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.saload"> Opcode definitions in The Java Virtual Machine
1286 * Specification</a>
1287 */
1288 public static final short SALOAD = 53;
1289
1290 /**
1291 * Java VM opcode {@value}.
1292 *
1293 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.istore"> Opcode definitions in The Java Virtual Machine
1294 * Specification</a>
1295 */
1296 public static final short ISTORE = 54;
1297
1298 /**
1299 * Java VM opcode {@value}.
1300 *
1301 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lstore"> Opcode definitions in The Java Virtual Machine
1302 * Specification</a>
1303 */
1304 public static final short LSTORE = 55;
1305
1306 /**
1307 * Java VM opcode {@value}.
1308 *
1309 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fstore"> Opcode definitions in The Java Virtual Machine
1310 * Specification</a>
1311 */
1312 public static final short FSTORE = 56;
1313
1314 /**
1315 * Java VM opcode {@value}.
1316 *
1317 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dstore"> Opcode definitions in The Java Virtual Machine
1318 * Specification</a>
1319 */
1320 public static final short DSTORE = 57;
1321
1322 /**
1323 * Java VM opcode {@value}.
1324 *
1325 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.astore"> Opcode definitions in The Java Virtual Machine
1326 * Specification</a>
1327 */
1328 public static final short ASTORE = 58;
1329
1330 /**
1331 * Java VM opcode {@value}.
1332 *
1333 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.istore_n"> Opcode definitions in The Java Virtual Machine
1334 * Specification</a>
1335 */
1336 public static final short ISTORE_0 = 59;
1337
1338 /**
1339 * Java VM opcode {@value}.
1340 *
1341 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.istore_n"> Opcode definitions in The Java Virtual Machine
1342 * Specification</a>
1343 */
1344 public static final short ISTORE_1 = 60;
1345
1346 /**
1347 * Java VM opcode {@value}.
1348 *
1349 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.istore_n"> Opcode definitions in The Java Virtual Machine
1350 * Specification</a>
1351 */
1352 public static final short ISTORE_2 = 61;
1353
1354 /**
1355 * Java VM opcode {@value}.
1356 *
1357 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.istore_n"> Opcode definitions in The Java Virtual Machine
1358 * Specification</a>
1359 */
1360 public static final short ISTORE_3 = 62;
1361
1362 /**
1363 * Java VM opcode {@value}.
1364 *
1365 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lstore_n"> Opcode definitions in The Java Virtual Machine
1366 * Specification</a>
1367 */
1368 public static final short LSTORE_0 = 63;
1369
1370 /**
1371 * Java VM opcode {@value}.
1372 *
1373 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lstore_n"> Opcode definitions in The Java Virtual Machine
1374 * Specification</a>
1375 */
1376 public static final short LSTORE_1 = 64;
1377
1378 /**
1379 * Java VM opcode {@value}.
1380 *
1381 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lstore_n"> Opcode definitions in The Java Virtual Machine
1382 * Specification</a>
1383 */
1384 public static final short LSTORE_2 = 65;
1385
1386 /**
1387 * Java VM opcode {@value}.
1388 *
1389 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lstore_n"> Opcode definitions in The Java Virtual Machine
1390 * Specification</a>
1391 */
1392 public static final short LSTORE_3 = 66;
1393
1394 /**
1395 * Java VM opcode {@value}.
1396 *
1397 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fstore_n"> Opcode definitions in The Java Virtual Machine
1398 * Specification</a>
1399 */
1400 public static final short FSTORE_0 = 67;
1401
1402 /**
1403 * Java VM opcode {@value}.
1404 *
1405 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fstore_n"> Opcode definitions in The Java Virtual Machine
1406 * Specification</a>
1407 */
1408 public static final short FSTORE_1 = 68;
1409
1410 /**
1411 * Java VM opcode {@value}.
1412 *
1413 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fstore_n"> Opcode definitions in The Java Virtual Machine
1414 * Specification</a>
1415 */
1416 public static final short FSTORE_2 = 69;
1417
1418 /**
1419 * Java VM opcode {@value}.
1420 *
1421 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fstore_n"> Opcode definitions in The Java Virtual Machine
1422 * Specification</a>
1423 */
1424 public static final short FSTORE_3 = 70;
1425
1426 /**
1427 * Java VM opcode {@value}.
1428 *
1429 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dstore_n"> Opcode definitions in The Java Virtual Machine
1430 * Specification</a>
1431 */
1432 public static final short DSTORE_0 = 71;
1433
1434 /**
1435 * Java VM opcode {@value}.
1436 *
1437 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dstore_n"> Opcode definitions in The Java Virtual Machine
1438 * Specification</a>
1439 */
1440 public static final short DSTORE_1 = 72;
1441
1442 /**
1443 * Java VM opcode {@value}.
1444 *
1445 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dstore_n"> Opcode definitions in The Java Virtual Machine
1446 * Specification</a>
1447 */
1448 public static final short DSTORE_2 = 73;
1449
1450 /**
1451 * Java VM opcode {@value}.
1452 *
1453 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dstore_n"> Opcode definitions in The Java Virtual Machine
1454 * Specification</a>
1455 */
1456 public static final short DSTORE_3 = 74;
1457
1458 /**
1459 * Java VM opcode {@value}.
1460 *
1461 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.astore_n"> Opcode definitions in The Java Virtual Machine
1462 * Specification</a>
1463 */
1464 public static final short ASTORE_0 = 75;
1465
1466 /**
1467 * Java VM opcode {@value}.
1468 *
1469 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.astore_n"> Opcode definitions in The Java Virtual Machine
1470 * Specification</a>
1471 */
1472 public static final short ASTORE_1 = 76;
1473
1474 /**
1475 * Java VM opcode {@value}.
1476 *
1477 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.astore_n"> Opcode definitions in The Java Virtual Machine
1478 * Specification</a>
1479 */
1480 public static final short ASTORE_2 = 77;
1481
1482 /**
1483 * Java VM opcode {@value}.
1484 *
1485 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.astore_n"> Opcode definitions in The Java Virtual Machine
1486 * Specification</a>
1487 */
1488 public static final short ASTORE_3 = 78;
1489
1490 /**
1491 * Java VM opcode {@value}.
1492 *
1493 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iastore"> Opcode definitions in The Java Virtual Machine
1494 * Specification</a>
1495 */
1496 public static final short IASTORE = 79;
1497
1498 /**
1499 * Java VM opcode {@value}.
1500 *
1501 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lastore"> Opcode definitions in The Java Virtual Machine
1502 * Specification</a>
1503 */
1504 public static final short LASTORE = 80;
1505
1506 /**
1507 * Java VM opcode {@value}.
1508 *
1509 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fastore"> Opcode definitions in The Java Virtual Machine
1510 * Specification</a>
1511 */
1512 public static final short FASTORE = 81;
1513
1514 /**
1515 * Java VM opcode {@value}.
1516 *
1517 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dastore"> Opcode definitions in The Java Virtual Machine
1518 * Specification</a>
1519 */
1520 public static final short DASTORE = 82;
1521
1522 /**
1523 * Java VM opcode {@value}.
1524 *
1525 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.aastore"> Opcode definitions in The Java Virtual Machine
1526 * Specification</a>
1527 */
1528 public static final short AASTORE = 83;
1529
1530 /**
1531 * Java VM opcode {@value}.
1532 *
1533 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.bastore"> Opcode definitions in The Java Virtual Machine
1534 * Specification</a>
1535 */
1536 public static final short BASTORE = 84;
1537
1538 /**
1539 * Java VM opcode {@value}.
1540 *
1541 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.castore"> Opcode definitions in The Java Virtual Machine
1542 * Specification</a>
1543 */
1544 public static final short CASTORE = 85;
1545
1546 /**
1547 * Java VM opcode {@value}.
1548 *
1549 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.sastore"> Opcode definitions in The Java Virtual Machine
1550 * Specification</a>
1551 */
1552 public static final short SASTORE = 86;
1553
1554 /**
1555 * Java VM opcode {@value}.
1556 *
1557 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.pop"> Opcode definitions in The Java Virtual Machine
1558 * Specification</a>
1559 */
1560 public static final short POP = 87;
1561
1562 /**
1563 * Java VM opcode {@value}.
1564 *
1565 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.pop2"> Opcode definitions in The Java Virtual Machine
1566 * Specification</a>
1567 */
1568 public static final short POP2 = 88;
1569
1570 /**
1571 * Java VM opcode {@value}.
1572 *
1573 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dup"> Opcode definitions in The Java Virtual Machine
1574 * Specification</a>
1575 */
1576 public static final short DUP = 89;
1577
1578 /**
1579 * Java VM opcode {@value}.
1580 *
1581 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dup_x1"> Opcode definitions in The Java Virtual Machine
1582 * Specification</a>
1583 */
1584 public static final short DUP_X1 = 90;
1585
1586 /**
1587 * Java VM opcode {@value}.
1588 *
1589 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dup_x2"> Opcode definitions in The Java Virtual Machine
1590 * Specification</a>
1591 */
1592 public static final short DUP_X2 = 91;
1593
1594 /**
1595 * Java VM opcode {@value}.
1596 *
1597 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dup2"> Opcode definitions in The Java Virtual Machine
1598 * Specification</a>
1599 */
1600 public static final short DUP2 = 92;
1601
1602 /**
1603 * Java VM opcode {@value}.
1604 *
1605 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dup2_x1"> Opcode definitions in The Java Virtual Machine
1606 * Specification</a>
1607 */
1608 public static final short DUP2_X1 = 93;
1609
1610 /**
1611 * Java VM opcode {@value}.
1612 *
1613 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dup2_x2"> Opcode definitions in The Java Virtual Machine
1614 * Specification</a>
1615 */
1616 public static final short DUP2_X2 = 94;
1617
1618 /**
1619 * Java VM opcode {@value}.
1620 *
1621 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.swap"> Opcode definitions in The Java Virtual Machine
1622 * Specification</a>
1623 */
1624 public static final short SWAP = 95;
1625
1626 /**
1627 * Java VM opcode {@value}.
1628 *
1629 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iadd"> Opcode definitions in The Java Virtual Machine
1630 * Specification</a>
1631 */
1632 public static final short IADD = 96;
1633
1634 /**
1635 * Java VM opcode {@value}.
1636 *
1637 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ladd"> Opcode definitions in The Java Virtual Machine
1638 * Specification</a>
1639 */
1640 public static final short LADD = 97;
1641
1642 /**
1643 * Java VM opcode {@value}.
1644 *
1645 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fadd"> Opcode definitions in The Java Virtual Machine
1646 * Specification</a>
1647 */
1648 public static final short FADD = 98;
1649
1650 /**
1651 * Java VM opcode {@value}.
1652 *
1653 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dadd"> Opcode definitions in The Java Virtual Machine
1654 * Specification</a>
1655 */
1656 public static final short DADD = 99;
1657
1658 /**
1659 * Java VM opcode {@value}.
1660 *
1661 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.isub"> Opcode definitions in The Java Virtual Machine
1662 * Specification</a>
1663 */
1664 public static final short ISUB = 100;
1665
1666 /**
1667 * Java VM opcode {@value}.
1668 *
1669 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lsub"> Opcode definitions in The Java Virtual Machine
1670 * Specification</a>
1671 */
1672 public static final short LSUB = 101;
1673
1674 /**
1675 * Java VM opcode {@value}.
1676 *
1677 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fsub"> Opcode definitions in The Java Virtual Machine
1678 * Specification</a>
1679 */
1680 public static final short FSUB = 102;
1681
1682 /**
1683 * Java VM opcode {@value}.
1684 *
1685 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dsub"> Opcode definitions in The Java Virtual Machine
1686 * Specification</a>
1687 */
1688 public static final short DSUB = 103;
1689
1690 /**
1691 * Java VM opcode {@value}.
1692 *
1693 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.imul"> Opcode definitions in The Java Virtual Machine
1694 * Specification</a>
1695 */
1696 public static final short IMUL = 104;
1697
1698 /**
1699 * Java VM opcode {@value}.
1700 *
1701 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lmul"> Opcode definitions in The Java Virtual Machine
1702 * Specification</a>
1703 */
1704 public static final short LMUL = 105;
1705
1706 /**
1707 * Java VM opcode {@value}.
1708 *
1709 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fmul"> Opcode definitions in The Java Virtual Machine
1710 * Specification</a>
1711 */
1712 public static final short FMUL = 106;
1713
1714 /**
1715 * Java VM opcode {@value}.
1716 *
1717 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dmul"> Opcode definitions in The Java Virtual Machine
1718 * Specification</a>
1719 */
1720 public static final short DMUL = 107;
1721
1722 /**
1723 * Java VM opcode {@value}.
1724 *
1725 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.idiv"> Opcode definitions in The Java Virtual Machine
1726 * Specification</a>
1727 */
1728 public static final short IDIV = 108;
1729
1730 /**
1731 * Java VM opcode {@value}.
1732 *
1733 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ldiv"> Opcode definitions in The Java Virtual Machine
1734 * Specification</a>
1735 */
1736 public static final short LDIV = 109;
1737
1738 /**
1739 * Java VM opcode {@value}.
1740 *
1741 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fdiv"> Opcode definitions in The Java Virtual Machine
1742 * Specification</a>
1743 */
1744 public static final short FDIV = 110;
1745
1746 /**
1747 * Java VM opcode {@value}.
1748 *
1749 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ddiv"> Opcode definitions in The Java Virtual Machine
1750 * Specification</a>
1751 */
1752 public static final short DDIV = 111;
1753
1754 /**
1755 * Java VM opcode {@value}.
1756 *
1757 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.irem"> Opcode definitions in The Java Virtual Machine
1758 * Specification</a>
1759 */
1760 public static final short IREM = 112;
1761
1762 /**
1763 * Java VM opcode {@value}.
1764 *
1765 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lrem"> Opcode definitions in The Java Virtual Machine
1766 * Specification</a>
1767 */
1768 public static final short LREM = 113;
1769
1770 /**
1771 * Java VM opcode {@value}.
1772 *
1773 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.frem"> Opcode definitions in The Java Virtual Machine
1774 * Specification</a>
1775 */
1776 public static final short FREM = 114;
1777
1778 /**
1779 * Java VM opcode {@value}.
1780 *
1781 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.drem"> Opcode definitions in The Java Virtual Machine
1782 * Specification</a>
1783 */
1784 public static final short DREM = 115;
1785
1786 /**
1787 * Java VM opcode {@value}.
1788 *
1789 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ineg"> Opcode definitions in The Java Virtual Machine
1790 * Specification</a>
1791 */
1792 public static final short INEG = 116;
1793
1794 /**
1795 * Java VM opcode {@value}.
1796 *
1797 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lneg"> Opcode definitions in The Java Virtual Machine
1798 * Specification</a>
1799 */
1800 public static final short LNEG = 117;
1801
1802 /**
1803 * Java VM opcode {@value}.
1804 *
1805 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fneg"> Opcode definitions in The Java Virtual Machine
1806 * Specification</a>
1807 */
1808 public static final short FNEG = 118;
1809
1810 /**
1811 * Java VM opcode {@value}.
1812 *
1813 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dneg"> Opcode definitions in The Java Virtual Machine
1814 * Specification</a>
1815 */
1816 public static final short DNEG = 119;
1817
1818 /**
1819 * Java VM opcode {@value}.
1820 *
1821 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ishl"> Opcode definitions in The Java Virtual Machine
1822 * Specification</a>
1823 */
1824 public static final short ISHL = 120;
1825
1826 /**
1827 * Java VM opcode {@value}.
1828 *
1829 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lshl"> Opcode definitions in The Java Virtual Machine
1830 * Specification</a>
1831 */
1832 public static final short LSHL = 121;
1833
1834 /**
1835 * Java VM opcode {@value}.
1836 *
1837 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ishr"> Opcode definitions in The Java Virtual Machine
1838 * Specification</a>
1839 */
1840 public static final short ISHR = 122;
1841
1842 /**
1843 * Java VM opcode {@value}.
1844 *
1845 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lshr"> Opcode definitions in The Java Virtual Machine
1846 * Specification</a>
1847 */
1848 public static final short LSHR = 123;
1849
1850 /**
1851 * Java VM opcode {@value}.
1852 *
1853 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iushr"> Opcode definitions in The Java Virtual Machine
1854 * Specification</a>
1855 */
1856 public static final short IUSHR = 124;
1857
1858 /**
1859 * Java VM opcode {@value}.
1860 *
1861 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lushr"> Opcode definitions in The Java Virtual Machine
1862 * Specification</a>
1863 */
1864 public static final short LUSHR = 125;
1865
1866 /**
1867 * Java VM opcode {@value}.
1868 *
1869 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iand"> Opcode definitions in The Java Virtual Machine
1870 * Specification</a>
1871 */
1872 public static final short IAND = 126;
1873
1874 /**
1875 * Java VM opcode {@value}.
1876 *
1877 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.land"> Opcode definitions in The Java Virtual Machine
1878 * Specification</a>
1879 */
1880 public static final short LAND = 127;
1881
1882 /**
1883 * Java VM opcode {@value}.
1884 *
1885 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ior"> Opcode definitions in The Java Virtual Machine
1886 * Specification</a>
1887 */
1888 public static final short IOR = 128;
1889
1890 /**
1891 * Java VM opcode {@value}.
1892 *
1893 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lor"> Opcode definitions in The Java Virtual Machine
1894 * Specification</a>
1895 */
1896 public static final short LOR = 129;
1897
1898 /**
1899 * Java VM opcode {@value}.
1900 *
1901 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ixor"> Opcode definitions in The Java Virtual Machine
1902 * Specification</a>
1903 */
1904 public static final short IXOR = 130;
1905
1906 /**
1907 * Java VM opcode {@value}.
1908 *
1909 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lxor"> Opcode definitions in The Java Virtual Machine
1910 * Specification</a>
1911 */
1912 public static final short LXOR = 131;
1913
1914 /**
1915 * Java VM opcode {@value}.
1916 *
1917 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iinc"> Opcode definitions in The Java Virtual Machine
1918 * Specification</a>
1919 */
1920 public static final short IINC = 132;
1921
1922 /**
1923 * Java VM opcode {@value}.
1924 *
1925 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.i2l"> Opcode definitions in The Java Virtual Machine
1926 * Specification</a>
1927 */
1928 public static final short I2L = 133;
1929
1930 /**
1931 * Java VM opcode {@value}.
1932 *
1933 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.i2f"> Opcode definitions in The Java Virtual Machine
1934 * Specification</a>
1935 */
1936 public static final short I2F = 134;
1937
1938 /**
1939 * Java VM opcode {@value}.
1940 *
1941 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.i2d"> Opcode definitions in The Java Virtual Machine
1942 * Specification</a>
1943 */
1944 public static final short I2D = 135;
1945
1946 /**
1947 * Java VM opcode {@value}.
1948 *
1949 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.l2i"> Opcode definitions in The Java Virtual Machine
1950 * Specification</a>
1951 */
1952 public static final short L2I = 136;
1953
1954 /**
1955 * Java VM opcode {@value}.
1956 *
1957 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.l2f"> Opcode definitions in The Java Virtual Machine
1958 * Specification</a>
1959 */
1960 public static final short L2F = 137;
1961
1962 /**
1963 * Java VM opcode {@value}.
1964 *
1965 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.l2d"> Opcode definitions in The Java Virtual Machine
1966 * Specification</a>
1967 */
1968 public static final short L2D = 138;
1969
1970 /**
1971 * Java VM opcode {@value}.
1972 *
1973 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.f2i"> Opcode definitions in The Java Virtual Machine
1974 * Specification</a>
1975 */
1976 public static final short F2I = 139;
1977
1978 /**
1979 * Java VM opcode {@value}.
1980 *
1981 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.f2l"> Opcode definitions in The Java Virtual Machine
1982 * Specification</a>
1983 */
1984 public static final short F2L = 140;
1985
1986 /**
1987 * Java VM opcode {@value}.
1988 *
1989 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.f2d"> Opcode definitions in The Java Virtual Machine
1990 * Specification</a>
1991 */
1992 public static final short F2D = 141;
1993
1994 /**
1995 * Java VM opcode {@value}.
1996 *
1997 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.d2i"> Opcode definitions in The Java Virtual Machine
1998 * Specification</a>
1999 */
2000 public static final short D2I = 142;
2001
2002 /**
2003 * Java VM opcode {@value}.
2004 *
2005 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.d2l"> Opcode definitions in The Java Virtual Machine
2006 * Specification</a>
2007 */
2008 public static final short D2L = 143;
2009
2010 /**
2011 * Java VM opcode {@value}.
2012 *
2013 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.d2f"> Opcode definitions in The Java Virtual Machine
2014 * Specification</a>
2015 */
2016 public static final short D2F = 144;
2017
2018 /**
2019 * Java VM opcode {@value}.
2020 *
2021 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.i2b"> Opcode definitions in The Java Virtual Machine
2022 * Specification</a>
2023 */
2024 public static final short I2B = 145;
2025
2026 /**
2027 * Java VM opcode {@value}.
2028 *
2029 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> Opcode definitions in The Java Virtual Machine Specification</a>
2030 */
2031 public static final short INT2BYTE = 145; // Old notation
2032
2033 /**
2034 * Java VM opcode {@value}.
2035 *
2036 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.i2c"> Opcode definitions in The Java Virtual Machine
2037 * Specification</a>
2038 */
2039 public static final short I2C = 146;
2040
2041 /**
2042 * Java VM opcode {@value}.
2043 *
2044 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> Opcode definitions in The Java Virtual Machine Specification</a>
2045 */
2046 public static final short INT2CHAR = 146; // Old notation
2047
2048 /**
2049 * Java VM opcode {@value}.
2050 *
2051 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.i2s"> Opcode definitions in The Java Virtual Machine
2052 * Specification</a>
2053 */
2054 public static final short I2S = 147;
2055
2056 /**
2057 * Java VM opcode {@value}.
2058 *
2059 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> Opcode definitions in The Java Virtual Machine Specification</a>
2060 */
2061 public static final short INT2SHORT = 147; // Old notation
2062
2063 /**
2064 * Java VM opcode {@value}.
2065 *
2066 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lcmp"> Opcode definitions in The Java Virtual Machine
2067 * Specification</a>
2068 */
2069 public static final short LCMP = 148;
2070
2071 /**
2072 * Java VM opcode {@value}.
2073 *
2074 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fcmpl"> Opcode definitions in The Java Virtual Machine
2075 * Specification</a>
2076 */
2077 public static final short FCMPL = 149;
2078
2079 /**
2080 * Java VM opcode {@value}.
2081 *
2082 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fcmpg"> Opcode definitions in The Java Virtual Machine
2083 * Specification</a>
2084 */
2085 public static final short FCMPG = 150;
2086
2087 /**
2088 * Java VM opcode {@value}.
2089 *
2090 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dcmpl"> Opcode definitions in The Java Virtual Machine
2091 * Specification</a>
2092 */
2093 public static final short DCMPL = 151;
2094
2095 /**
2096 * Java VM opcode {@value}.
2097 *
2098 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dcmpg"> Opcode definitions in The Java Virtual Machine
2099 * Specification</a>
2100 */
2101 public static final short DCMPG = 152;
2102
2103 /**
2104 * Java VM opcode {@value}.
2105 *
2106 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ifeq"> Opcode definitions in The Java Virtual Machine
2107 * Specification</a>
2108 */
2109 public static final short IFEQ = 153;
2110
2111 /**
2112 * Java VM opcode {@value}.
2113 *
2114 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ifne"> Opcode definitions in The Java Virtual Machine
2115 * Specification</a>
2116 */
2117 public static final short IFNE = 154;
2118
2119 /**
2120 * Java VM opcode {@value}.
2121 *
2122 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iflt"> Opcode definitions in The Java Virtual Machine
2123 * Specification</a>
2124 */
2125 public static final short IFLT = 155;
2126
2127 /**
2128 * Java VM opcode {@value}.
2129 *
2130 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ifge"> Opcode definitions in The Java Virtual Machine
2131 * Specification</a>
2132 */
2133 public static final short IFGE = 156;
2134
2135 /**
2136 * Java VM opcode {@value}.
2137 *
2138 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ifgt"> Opcode definitions in The Java Virtual Machine
2139 * Specification</a>
2140 */
2141 public static final short IFGT = 157;
2142
2143 /**
2144 * Java VM opcode {@value}.
2145 *
2146 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ifle"> Opcode definitions in The Java Virtual Machine
2147 * Specification</a>
2148 */
2149 public static final short IFLE = 158;
2150
2151 /**
2152 * Java VM opcode {@value}.
2153 *
2154 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.if_icmp_cond"> Opcode definitions in The Java Virtual Machine
2155 * Specification</a>
2156 */
2157 public static final short IF_ICMPEQ = 159;
2158
2159 /**
2160 * Java VM opcode {@value}.
2161 *
2162 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.if_icmp_cond"> Opcode definitions in The Java Virtual Machine
2163 * Specification</a>
2164 */
2165 public static final short IF_ICMPNE = 160;
2166
2167 /**
2168 * Java VM opcode {@value}.
2169 *
2170 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.if_icmp_cond"> Opcode definitions in The Java Virtual Machine
2171 * Specification</a>
2172 */
2173 public static final short IF_ICMPLT = 161;
2174
2175 /**
2176 * Java VM opcode {@value}.
2177 *
2178 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.if_icmp_cond"> Opcode definitions in The Java Virtual Machine
2179 * Specification</a>
2180 */
2181 public static final short IF_ICMPGE = 162;
2182
2183 /**
2184 * Java VM opcode {@value}.
2185 *
2186 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.if_icmp_cond"> Opcode definitions in The Java Virtual Machine
2187 * Specification</a>
2188 */
2189 public static final short IF_ICMPGT = 163;
2190
2191 /**
2192 * Java VM opcode {@value}.
2193 *
2194 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.if_icmp_cond"> Opcode definitions in The Java Virtual Machine
2195 * Specification</a>
2196 */
2197 public static final short IF_ICMPLE = 164;
2198
2199 /**
2200 * Java VM opcode {@value}.
2201 *
2202 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.if_acmp_cond"> Opcode definitions in The Java Virtual Machine
2203 * Specification</a>
2204 */
2205 public static final short IF_ACMPEQ = 165;
2206
2207 /**
2208 * Java VM opcode {@value}.
2209 *
2210 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.if_acmp_cond"> Opcode definitions in The Java Virtual Machine
2211 * Specification</a>
2212 */
2213 public static final short IF_ACMPNE = 166;
2214
2215 /**
2216 * Java VM opcode {@value}.
2217 *
2218 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.goto"> Opcode definitions in The Java Virtual Machine
2219 * Specification</a>
2220 */
2221 public static final short GOTO = 167;
2222
2223 /**
2224 * Java VM opcode {@value}.
2225 *
2226 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.jsr"> Opcode definitions in The Java Virtual Machine
2227 * Specification</a>
2228 */
2229 public static final short JSR = 168;
2230
2231 /**
2232 * Java VM opcode {@value}.
2233 *
2234 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ret"> Opcode definitions in The Java Virtual Machine
2235 * Specification</a>
2236 */
2237 public static final short RET = 169;
2238
2239 /**
2240 * Java VM opcode {@value}.
2241 *
2242 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.tableswitch"> Opcode definitions in The Java Virtual Machine
2243 * Specification</a>
2244 */
2245 public static final short TABLESWITCH = 170;
2246
2247 /**
2248 * Java VM opcode {@value}.
2249 *
2250 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lookupswitch"> Opcode definitions in The Java Virtual Machine
2251 * Specification</a>
2252 */
2253 public static final short LOOKUPSWITCH = 171;
2254
2255 /**
2256 * Java VM opcode {@value}.
2257 *
2258 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ireturn"> Opcode definitions in The Java Virtual Machine
2259 * Specification</a>
2260 */
2261 public static final short IRETURN = 172;
2262
2263 /**
2264 * Java VM opcode {@value}.
2265 *
2266 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lreturn"> Opcode definitions in The Java Virtual Machine
2267 * Specification</a>
2268 */
2269 public static final short LRETURN = 173;
2270
2271 /**
2272 * Java VM opcode {@value}.
2273 *
2274 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.freturn"> Opcode definitions in The Java Virtual Machine
2275 * Specification</a>
2276 */
2277 public static final short FRETURN = 174;
2278
2279 /**
2280 * Java VM opcode {@value}.
2281 *
2282 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dreturn"> Opcode definitions in The Java Virtual Machine
2283 * Specification</a>
2284 */
2285 public static final short DRETURN = 175;
2286
2287 /**
2288 * Java VM opcode {@value}.
2289 *
2290 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.areturn"> Opcode definitions in The Java Virtual Machine
2291 * Specification</a>
2292 */
2293 public static final short ARETURN = 176;
2294
2295 /**
2296 * Java VM opcode {@value}.
2297 *
2298 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.return"> Opcode definitions in The Java Virtual Machine
2299 * Specification</a>
2300 */
2301 public static final short RETURN = 177;
2302
2303 /**
2304 * Java VM opcode {@value}.
2305 *
2306 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.getstatic"> Opcode definitions in The Java Virtual Machine
2307 * Specification</a>
2308 */
2309 public static final short GETSTATIC = 178;
2310
2311 /**
2312 * Java VM opcode {@value}.
2313 *
2314 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.putstatic"> Opcode definitions in The Java Virtual Machine
2315 * Specification</a>
2316 */
2317 public static final short PUTSTATIC = 179;
2318
2319 /**
2320 * Java VM opcode {@value}.
2321 *
2322 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.getfield"> Opcode definitions in The Java Virtual Machine
2323 * Specification</a>
2324 */
2325 public static final short GETFIELD = 180;
2326
2327 /**
2328 * Java VM opcode {@value}.
2329 *
2330 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.putfield"> Opcode definitions in The Java Virtual Machine
2331 * Specification</a>
2332 */
2333 public static final short PUTFIELD = 181;
2334
2335 /**
2336 * Java VM opcode {@value}.
2337 *
2338 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.invokevirtual"> Opcode definitions in The Java Virtual Machine
2339 * Specification</a>
2340 */
2341 public static final short INVOKEVIRTUAL = 182;
2342
2343 /**
2344 * Java VM opcode {@value}.
2345 *
2346 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.invokespecial"> Opcode definitions in The Java Virtual Machine
2347 * Specification</a>
2348 */
2349 public static final short INVOKESPECIAL = 183;
2350
2351 /**
2352 * Java VM opcode {@value}.
2353 *
2354 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> Opcode definitions in The Java Virtual Machine Specification</a>
2355 */
2356 public static final short INVOKENONVIRTUAL = 183; // Old name in JDK 1.0
2357
2358 /**
2359 * Java VM opcode {@value}.
2360 *
2361 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.invokestatic"> Opcode definitions in The Java Virtual Machine
2362 * Specification</a>
2363 */
2364 public static final short INVOKESTATIC = 184;
2365
2366 /**
2367 * Java VM opcode {@value}.
2368 *
2369 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.invokeinterface"> Opcode definitions in The Java Virtual Machine
2370 * Specification</a>
2371 */
2372 public static final short INVOKEINTERFACE = 185;
2373
2374 /**
2375 * Java VM opcode {@value}.
2376 *
2377 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.invokedynamic"> Opcode definitions in The Java Virtual Machine
2378 * Specification</a>
2379 */
2380 public static final short INVOKEDYNAMIC = 186;
2381
2382 /**
2383 * Java VM opcode {@value}.
2384 *
2385 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.new"> Opcode definitions in The Java Virtual Machine
2386 * Specification</a>
2387 */
2388 public static final short NEW = 187;
2389
2390 /**
2391 * Java VM opcode {@value}.
2392 *
2393 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.newarray"> Opcode definitions in The Java Virtual Machine
2394 * Specification</a>
2395 */
2396 public static final short NEWARRAY = 188;
2397
2398 /**
2399 * Java VM opcode {@value}.
2400 *
2401 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.anewarray"> Opcode definitions in The Java Virtual Machine
2402 * Specification</a>
2403 */
2404 public static final short ANEWARRAY = 189;
2405
2406 /**
2407 * Java VM opcode {@value}.
2408 *
2409 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.arraylength"> Opcode definitions in The Java Virtual Machine
2410 * Specification</a>
2411 */
2412 public static final short ARRAYLENGTH = 190;
2413
2414 /**
2415 * Java VM opcode {@value}.
2416 *
2417 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.athrow"> Opcode definitions in The Java Virtual Machine
2418 * Specification</a>
2419 */
2420 public static final short ATHROW = 191;
2421
2422 /**
2423 * Java VM opcode {@value}.
2424 *
2425 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.checkcast"> Opcode definitions in The Java Virtual Machine
2426 * Specification</a>
2427 */
2428 public static final short CHECKCAST = 192;
2429
2430 /**
2431 * Java VM opcode {@value}.
2432 *
2433 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.instanceof"> Opcode definitions in The Java Virtual Machine
2434 * Specification</a>
2435 */
2436 public static final short INSTANCEOF = 193;
2437
2438 /**
2439 * Java VM opcode {@value}.
2440 *
2441 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.monitorenter"> Opcode definitions in The Java Virtual Machine
2442 * Specification</a>
2443 */
2444 public static final short MONITORENTER = 194;
2445
2446 /**
2447 * Java VM opcode {@value}.
2448 *
2449 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.monitorexit"> Opcode definitions in The Java Virtual Machine
2450 * Specification</a>
2451 */
2452 public static final short MONITOREXIT = 195;
2453
2454 /**
2455 * Java VM opcode {@value}.
2456 *
2457 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.wide"> Opcode definitions in The Java Virtual Machine
2458 * Specification</a>
2459 */
2460 public static final short WIDE = 196;
2461
2462 /**
2463 * Java VM opcode {@value}.
2464 *
2465 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.multianewarray"> Opcode definitions in The Java Virtual Machine
2466 * Specification</a>
2467 */
2468 public static final short MULTIANEWARRAY = 197;
2469
2470 /**
2471 * Java VM opcode {@value}.
2472 *
2473 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ifnull"> Opcode definitions in The Java Virtual Machine
2474 * Specification</a>
2475 */
2476 public static final short IFNULL = 198;
2477
2478 /**
2479 * Java VM opcode {@value}.
2480 *
2481 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ifnonnull"> Opcode definitions in The Java Virtual Machine
2482 * Specification</a>
2483 */
2484 public static final short IFNONNULL = 199;
2485
2486 /**
2487 * Java VM opcode {@value}.
2488 *
2489 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.goto_w"> Opcode definitions in The Java Virtual Machine
2490 * Specification</a>
2491 */
2492 public static final short GOTO_W = 200;
2493
2494 /**
2495 * Java VM opcode {@value}.
2496 *
2497 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.jsr_w"> Opcode definitions in The Java Virtual Machine
2498 * Specification</a>
2499 */
2500 public static final short JSR_W = 201;
2501
2502 /**
2503 * JVM internal opcode {@value}.
2504 *
2505 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.2"> Reserved opcodes in the Java Virtual Machine Specification</a>
2506 */
2507 public static final short BREAKPOINT = 202;
2508
2509 /**
2510 * JVM internal opcode {@value}.
2511 *
2512 * @see <a href= "https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html"> Specification of _quick
2513 * opcodes in the Java Virtual Machine Specification (version 1)</a>
2514 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> Why the _quick opcodes were removed from the second
2515 * version of the Java Virtual Machine Specification.</a>
2516 */
2517 public static final short LDC_QUICK = 203;
2518
2519 /**
2520 * JVM internal opcode {@value}.
2521 *
2522 * @see <a href= "https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html"> Specification of _quick
2523 * opcodes in the Java Virtual Machine Specification (version 1)</a>
2524 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> Why the _quick opcodes were removed from the second
2525 * version of the Java Virtual Machine Specification.</a>
2526 */
2527 public static final short LDC_W_QUICK = 204;
2528
2529 /**
2530 * JVM internal opcode {@value}.
2531 *
2532 * @see <a href= "https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html"> Specification of _quick
2533 * opcodes in the Java Virtual Machine Specification (version 1)</a>
2534 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> Why the _quick opcodes were removed from the second
2535 * version of the Java Virtual Machine Specification.</a>
2536 */
2537 public static final short LDC2_W_QUICK = 205;
2538
2539 /**
2540 * JVM internal opcode {@value}.
2541 *
2542 * @see <a href= "https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html"> Specification of _quick
2543 * opcodes in the Java Virtual Machine Specification (version 1)</a>
2544 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> Why the _quick opcodes were removed from the second
2545 * version of the Java Virtual Machine Specification.</a>
2546 */
2547 public static final short GETFIELD_QUICK = 206;
2548
2549 /**
2550 * JVM internal opcode {@value}.
2551 *
2552 * @see <a href= "https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html"> Specification of _quick
2553 * opcodes in the Java Virtual Machine Specification (version 1)</a>
2554 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> Why the _quick opcodes were removed from the second
2555 * version of the Java Virtual Machine Specification.</a>
2556 */
2557 public static final short PUTFIELD_QUICK = 207;
2558
2559 /**
2560 * JVM internal opcode {@value}.
2561 *
2562 * @see <a href= "https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html"> Specification of _quick
2563 * opcodes in the Java Virtual Machine Specification (version 1)</a>
2564 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> Why the _quick opcodes were removed from the second
2565 * version of the Java Virtual Machine Specification.</a>
2566 */
2567 public static final short GETFIELD2_QUICK = 208;
2568
2569 /**
2570 * JVM internal opcode {@value}.
2571 *
2572 * @see <a href= "https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html"> Specification of _quick
2573 * opcodes in the Java Virtual Machine Specification (version 1)</a>
2574 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> Why the _quick opcodes were removed from the second
2575 * version of the Java Virtual Machine Specification.</a>
2576 */
2577 public static final short PUTFIELD2_QUICK = 209;
2578
2579 /**
2580 * JVM internal opcode {@value}.
2581 *
2582 * @see <a href= "https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html"> Specification of _quick
2583 * opcodes in the Java Virtual Machine Specification (version 1)</a>
2584 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> Why the _quick opcodes were removed from the second
2585 * version of the Java Virtual Machine Specification.</a>
2586 */
2587 public static final short GETSTATIC_QUICK = 210;
2588
2589 /**
2590 * JVM internal opcode {@value}.
2591 *
2592 * @see <a href= "https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html"> Specification of _quick
2593 * opcodes in the Java Virtual Machine Specification (version 1)</a>
2594 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> Why the _quick opcodes were removed from the second
2595 * version of the Java Virtual Machine Specification.</a>
2596 */
2597 public static final short PUTSTATIC_QUICK = 211;
2598
2599 /**
2600 * JVM internal opcode {@value}.
2601 *
2602 * @see <a href= "https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html"> Specification of _quick
2603 * opcodes in the Java Virtual Machine Specification (version 1)</a>
2604 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> Why the _quick opcodes were removed from the second
2605 * version of the Java Virtual Machine Specification.</a>
2606 */
2607 public static final short GETSTATIC2_QUICK = 212;
2608
2609 /**
2610 * JVM internal opcode {@value}.
2611 *
2612 * @see <a href= "https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html"> Specification of _quick
2613 * opcodes in the Java Virtual Machine Specification (version 1)</a>
2614 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> Why the _quick opcodes were removed from the second
2615 * version of the Java Virtual Machine Specification.</a>
2616 */
2617 public static final short PUTSTATIC2_QUICK = 213;
2618
2619 /**
2620 * JVM internal opcode {@value}.
2621 *
2622 * @see <a href= "https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html"> Specification of _quick
2623 * opcodes in the Java Virtual Machine Specification (version 1)</a>
2624 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> Why the _quick opcodes were removed from the second
2625 * version of the Java Virtual Machine Specification.</a>
2626 */
2627 public static final short INVOKEVIRTUAL_QUICK = 214;
2628
2629 /**
2630 * JVM internal opcode {@value}.
2631 *
2632 * @see <a href= "https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html"> Specification of _quick
2633 * opcodes in the Java Virtual Machine Specification (version 1)</a>
2634 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> Why the _quick opcodes were removed from the second
2635 * version of the Java Virtual Machine Specification.</a>
2636 */
2637 public static final short INVOKENONVIRTUAL_QUICK = 215;
2638
2639 /**
2640 * JVM internal opcode {@value}.
2641 *
2642 * @see <a href= "https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html"> Specification of _quick
2643 * opcodes in the Java Virtual Machine Specification (version 1)</a>
2644 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> Why the _quick opcodes were removed from the second
2645 * version of the Java Virtual Machine Specification.</a>
2646 */
2647 public static final short INVOKESUPER_QUICK = 216;
2648
2649 /**
2650 * JVM internal opcode {@value}.
2651 *
2652 * @see <a href= "https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html"> Specification of _quick
2653 * opcodes in the Java Virtual Machine Specification (version 1)</a>
2654 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> Why the _quick opcodes were removed from the second
2655 * version of the Java Virtual Machine Specification.</a>
2656 */
2657 public static final short INVOKESTATIC_QUICK = 217;
2658
2659 /**
2660 * JVM internal opcode {@value}.
2661 *
2662 * @see <a href= "https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html"> Specification of _quick
2663 * opcodes in the Java Virtual Machine Specification (version 1)</a>
2664 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> Why the _quick opcodes were removed from the second
2665 * version of the Java Virtual Machine Specification.</a>
2666 */
2667 public static final short INVOKEINTERFACE_QUICK = 218;
2668
2669 /**
2670 * JVM internal opcode {@value}.
2671 *
2672 * @see <a href= "https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html"> Specification of _quick
2673 * opcodes in the Java Virtual Machine Specification (version 1)</a>
2674 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> Why the _quick opcodes were removed from the second
2675 * version of the Java Virtual Machine Specification.</a>
2676 */
2677 public static final short INVOKEVIRTUALOBJECT_QUICK = 219;
2678
2679 /**
2680 * JVM internal opcode {@value}.
2681 *
2682 * @see <a href= "https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html"> Specification of _quick
2683 * opcodes in the Java Virtual Machine Specification (version 1)</a>
2684 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> Why the _quick opcodes were removed from the second
2685 * version of the Java Virtual Machine Specification.</a>
2686 */
2687 public static final short NEW_QUICK = 221;
2688
2689 /**
2690 * JVM internal opcode {@value}.
2691 *
2692 * @see <a href= "https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html"> Specification of _quick
2693 * opcodes in the Java Virtual Machine Specification (version 1)</a>
2694 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> Why the _quick opcodes were removed from the second
2695 * version of the Java Virtual Machine Specification.</a>
2696 */
2697 public static final short ANEWARRAY_QUICK = 222;
2698
2699 /**
2700 * JVM internal opcode {@value}.
2701 *
2702 * @see <a href= "https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html"> Specification of _quick
2703 * opcodes in the Java Virtual Machine Specification (version 1)</a>
2704 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> Why the _quick opcodes were removed from the second
2705 * version of the Java Virtual Machine Specification.</a>
2706 */
2707 public static final short MULTIANEWARRAY_QUICK = 223;
2708
2709 /**
2710 * JVM internal opcode {@value}.
2711 *
2712 * @see <a href= "https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html"> Specification of _quick
2713 * opcodes in the Java Virtual Machine Specification (version 1)</a>
2714 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> Why the _quick opcodes were removed from the second
2715 * version of the Java Virtual Machine Specification.</a>
2716 */
2717 public static final short CHECKCAST_QUICK = 224;
2718
2719 /**
2720 * JVM internal opcode {@value}.
2721 *
2722 * @see <a href= "https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html"> Specification of _quick
2723 * opcodes in the Java Virtual Machine Specification (version 1)</a>
2724 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> Why the _quick opcodes were removed from the second
2725 * version of the Java Virtual Machine Specification.</a>
2726 */
2727 public static final short INSTANCEOF_QUICK = 225;
2728
2729 /**
2730 * JVM internal opcode {@value}.
2731 *
2732 * @see <a href= "https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html"> Specification of _quick
2733 * opcodes in the Java Virtual Machine Specification (version 1)</a>
2734 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> Why the _quick opcodes were removed from the second
2735 * version of the Java Virtual Machine Specification.</a>
2736 */
2737 public static final short INVOKEVIRTUAL_QUICK_W = 226;
2738
2739 /**
2740 * JVM internal opcode {@value}.
2741 *
2742 * @see <a href= "https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html"> Specification of _quick
2743 * opcodes in the Java Virtual Machine Specification (version 1)</a>
2744 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> Why the _quick opcodes were removed from the second
2745 * version of the Java Virtual Machine Specification.</a>
2746 */
2747 public static final short GETFIELD_QUICK_W = 227;
2748
2749 /**
2750 * JVM internal opcode {@value}.
2751 *
2752 * @see <a href= "https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html"> Specification of _quick
2753 * opcodes in the Java Virtual Machine Specification (version 1)</a>
2754 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> Why the _quick opcodes were removed from the second
2755 * version of the Java Virtual Machine Specification.</a>
2756 */
2757 public static final short PUTFIELD_QUICK_W = 228;
2758
2759 /**
2760 * JVM internal opcode {@value}.
2761 *
2762 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.2"> Reserved opcodes in the Java Virtual Machine Specification</a>
2763 */
2764 public static final short IMPDEP1 = 254;
2765
2766 /**
2767 * JVM internal opcode {@value}.
2768 *
2769 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.2"> Reserved opcodes in the Java Virtual Machine Specification</a>
2770 */
2771 public static final short IMPDEP2 = 255;
2772
2773 /**
2774 * BCEL virtual instruction for pushing an arbitrary data type onto the stack: {@value}. Will be converted to the appropriate JVM opcode when the class is
2775 * dumped.
2776 */
2777 public static final short PUSH = 4711;
2778
2779 /**
2780 * BCEL virtual instruction for either LOOKUPSWITCH or TABLESWITCH: {@value}. Will be converted to the appropriate JVM opcode when the class is dumped.
2781 */
2782 public static final short SWITCH = 4712;
2783
2784 /**
2785 * Illegal opcode: {@value}.
2786 */
2787 public static final short UNDEFINED = -1;
2788
2789 /**
2790 * Illegal opcode: {@value}.
2791 */
2792 public static final short UNPREDICTABLE = -2;
2793
2794 /**
2795 * Illegal opcode: {@value}.
2796 */
2797 public static final short RESERVED = -3;
2798
2799 /**
2800 * Mnemonic for an illegal opcode: {@value}.
2801 */
2802 public static final String ILLEGAL_OPCODE = "<illegal opcode>";
2803
2804 /**
2805 * Mnemonic for an illegal type: {@value}.
2806 */
2807 public static final String ILLEGAL_TYPE = "<illegal type>";
2808
2809 /**
2810 * Boolean data type: {@value}.
2811 *
2812 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.9.1-120-P"> Static Constraints in the Java Virtual Machine
2813 * Specification</a>
2814 */
2815 public static final byte T_BOOLEAN = 4;
2816
2817 /**
2818 * Char data type: {@value}.
2819 *
2820 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.9.1-120-P"> Static Constraints in the Java Virtual Machine
2821 * Specification</a>
2822 */
2823 public static final byte T_CHAR = 5;
2824
2825 /**
2826 * Float data type: {@value}.
2827 *
2828 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.9.1-120-P"> Static Constraints in the Java Virtual Machine
2829 * Specification</a>
2830 */
2831 public static final byte T_FLOAT = 6;
2832
2833 /**
2834 * Double data type: {@value}.
2835 *
2836 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.9.1-120-P"> Static Constraints in the Java Virtual Machine
2837 * Specification</a>
2838 */
2839 public static final byte T_DOUBLE = 7;
2840
2841 /**
2842 * Byte data type: {@value}.
2843 *
2844 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.9.1-120-P"> Static Constraints in the Java Virtual Machine
2845 * Specification</a>
2846 */
2847 public static final byte T_BYTE = 8;
2848
2849 /**
2850 * Short data type: {@value}.
2851 *
2852 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.9.1-120-P"> Static Constraints in the Java Virtual Machine
2853 * Specification</a>
2854 */
2855 public static final byte T_SHORT = 9;
2856
2857 /**
2858 * Int data type: {@value}.
2859 *
2860 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.9.1-120-P"> Static Constraints in the Java Virtual Machine
2861 * Specification</a>
2862 */
2863 public static final byte T_INT = 10;
2864
2865 /**
2866 * Long data type: {@value}.
2867 *
2868 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.9.1-120-P"> Static Constraints in the Java Virtual Machine
2869 * Specification</a>
2870 */
2871 public static final byte T_LONG = 11;
2872
2873 /** Void data type (non-standard). */
2874 public static final byte T_VOID = 12; // Non-standard
2875
2876 /** Array data type. */
2877 public static final byte T_ARRAY = 13;
2878
2879 /** Object data type. */
2880 public static final byte T_OBJECT = 14;
2881
2882 /** Reference data type (deprecated). */
2883 public static final byte T_REFERENCE = 14; // Deprecated
2884
2885 /** Unknown data type. */
2886 public static final byte T_UNKNOWN = 15;
2887
2888 /** Address data type. */
2889 public static final byte T_ADDRESS = 16;
2890
2891 /**
2892 * The primitive type names corresponding to the T_XX constants, for example, TYPE_NAMES[T_INT] = "int"
2893 */
2894 private static final String[] TYPE_NAMES = { ILLEGAL_TYPE, ILLEGAL_TYPE, ILLEGAL_TYPE, ILLEGAL_TYPE, "boolean", "char", "float", "double", "byte", "short",
2895 "int", "long", "void", "array", "object", "unknown", "address" };
2896
2897 /**
2898 * The primitive class names corresponding to the T_XX constants, for example, CLASS_TYPE_NAMES[T_INT] = "java.lang.Integer"
2899 */
2900 private static final String[] CLASS_TYPE_NAMES = { ILLEGAL_TYPE, ILLEGAL_TYPE, ILLEGAL_TYPE, ILLEGAL_TYPE, "java.lang.Boolean", "java.lang.Character",
2901 "java.lang.Float", "java.lang.Double", "java.lang.Byte", "java.lang.Short", "java.lang.Integer", "java.lang.Long", "java.lang.Void", ILLEGAL_TYPE,
2902 ILLEGAL_TYPE, ILLEGAL_TYPE, ILLEGAL_TYPE };
2903
2904 /**
2905 * The signature characters corresponding to primitive types, for example, SHORT_TYPE_NAMES[T_INT] = "I"
2906 */
2907 public static final String[] SHORT_TYPE_NAMES = { ILLEGAL_TYPE, ILLEGAL_TYPE, ILLEGAL_TYPE, ILLEGAL_TYPE, "Z", "C", "F", "D", "B", "S", "I", "J", "V",
2908 ILLEGAL_TYPE, ILLEGAL_TYPE, ILLEGAL_TYPE };
2909
2910 /**
2911 * Number of byte code operands for each opcode, that is, number of bytes after the tag byte itself. Indexed by opcode, so NO_OF_OPERANDS[BIPUSH] = the number
2912 * of operands for a bipush instruction.
2913 */
2914 static final short[] NO_OF_OPERANDS = { 0/* nop */, 0/* aconst_null */, 0/* iconst_m1 */, 0/* iconst_0 */, 0/* iconst_1 */, 0/* iconst_2 */,
2915 0/* iconst_3 */, 0/* iconst_4 */, 0/* iconst_5 */, 0/* lconst_0 */, 0/* lconst_1 */, 0/* fconst_0 */, 0/* fconst_1 */, 0/* fconst_2 */,
2916 0/* dconst_0 */, 0/* dconst_1 */, 1/* bipush */, 2/* sipush */, 1/* ldc */, 2/* ldc_w */, 2/* ldc2_w */, 1/* iload */, 1/* lload */, 1/* fload */,
2917 1/* dload */, 1/* aload */, 0/* iload_0 */, 0/* iload_1 */, 0/* iload_2 */, 0/* iload_3 */, 0/* lload_0 */, 0/* lload_1 */, 0/* lload_2 */,
2918 0/* lload_3 */, 0/* fload_0 */, 0/* fload_1 */, 0/* fload_2 */, 0/* fload_3 */, 0/* dload_0 */, 0/* dload_1 */, 0/* dload_2 */, 0/* dload_3 */,
2919 0/* aload_0 */, 0/* aload_1 */, 0/* aload_2 */, 0/* aload_3 */, 0/* iaload */, 0/* laload */, 0/* faload */, 0/* daload */, 0/* aaload */,
2920 0/* baload */, 0/* caload */, 0/* saload */, 1/* istore */, 1/* lstore */, 1/* fstore */, 1/* dstore */, 1/* astore */, 0/* istore_0 */,
2921 0/* istore_1 */, 0/* istore_2 */, 0/* istore_3 */, 0/* lstore_0 */, 0/* lstore_1 */, 0/* lstore_2 */, 0/* lstore_3 */, 0/* fstore_0 */,
2922 0/* fstore_1 */, 0/* fstore_2 */, 0/* fstore_3 */, 0/* dstore_0 */, 0/* dstore_1 */, 0/* dstore_2 */, 0/* dstore_3 */, 0/* astore_0 */,
2923 0/* astore_1 */, 0/* astore_2 */, 0/* astore_3 */, 0/* iastore */, 0/* lastore */, 0/* fastore */, 0/* dastore */, 0/* aastore */, 0/* bastore */,
2924 0/* castore */, 0/* sastore */, 0/* pop */, 0/* pop2 */, 0/* dup */, 0/* dup_x1 */, 0/* dup_x2 */, 0/* dup2 */, 0/* dup2_x1 */, 0/* dup2_x2 */,
2925 0/* swap */, 0/* iadd */, 0/* ladd */, 0/* fadd */, 0/* dadd */, 0/* isub */, 0/* lsub */, 0/* fsub */, 0/* dsub */, 0/* imul */, 0/* lmul */,
2926 0/* fmul */, 0/* dmul */, 0/* idiv */, 0/* ldiv */, 0/* fdiv */, 0/* ddiv */, 0/* irem */, 0/* lrem */, 0/* frem */, 0/* drem */, 0/* ineg */,
2927 0/* lneg */, 0/* fneg */, 0/* dneg */, 0/* ishl */, 0/* lshl */, 0/* ishr */, 0/* lshr */, 0/* iushr */, 0/* lushr */, 0/* iand */, 0/* land */,
2928 0/* ior */, 0/* lor */, 0/* ixor */, 0/* lxor */, 2/* iinc */, 0/* i2l */, 0/* i2f */, 0/* i2d */, 0/* l2i */, 0/* l2f */, 0/* l2d */, 0/* f2i */,
2929 0/* f2l */, 0/* f2d */, 0/* d2i */, 0/* d2l */, 0/* d2f */, 0/* i2b */, 0/* i2c */, 0/* i2s */, 0/* lcmp */, 0/* fcmpl */, 0/* fcmpg */,
2930 0/* dcmpl */, 0/* dcmpg */, 2/* ifeq */, 2/* ifne */, 2/* iflt */, 2/* ifge */, 2/* ifgt */, 2/* ifle */, 2/* if_icmpeq */, 2/* if_icmpne */,
2931 2/* if_icmplt */, 2/* if_icmpge */, 2/* if_icmpgt */, 2/* if_icmple */, 2/* if_acmpeq */, 2/* if_acmpne */, 2/* goto */, 2/* jsr */, 1/* ret */,
2932 UNPREDICTABLE/* tableswitch */, UNPREDICTABLE/* lookupswitch */, 0/* ireturn */, 0/* lreturn */, 0/* freturn */, 0/* dreturn */, 0/* areturn */,
2933 0/* return */, 2/* getstatic */, 2/* putstatic */, 2/* getfield */, 2/* putfield */, 2/* invokevirtual */, 2/* invokespecial */,
2934 2/* invokestatic */, 4/* invokeinterface */, 4/* invokedynamic */, 2/* new */, 1/* newarray */, 2/* anewarray */, 0/* arraylength */, 0/* athrow */,
2935 2/* checkcast */, 2/* instanceof */, 0/* monitorenter */, 0/* monitorexit */, UNPREDICTABLE/* wide */, 3/* multianewarray */, 2/* ifnull */,
2936 2/* ifnonnull */, 4/* goto_w */, 4/* jsr_w */, 0/* breakpoint */, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
2937 UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
2938 UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
2939 UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
2940 UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, RESERVED/* impdep1 */, RESERVED/* impdep2 */
2941 };
2942
2943 /**
2944 * How the byte code operands are to be interpreted for each opcode. Indexed by opcode. TYPE_OF_OPERANDS[ILOAD] = an array of shorts describing the data
2945 * types for the instruction.
2946 */
2947 static final short[][] TYPE_OF_OPERANDS = { {}/* nop */, {}/* aconst_null */, {}/* iconst_m1 */, {}/* iconst_0 */, {}/* iconst_1 */, {}/* iconst_2 */,
2948 {}/* iconst_3 */, {}/* iconst_4 */, {}/* iconst_5 */, {}/* lconst_0 */, {}/* lconst_1 */, {}/* fconst_0 */, {}/* fconst_1 */, {}/* fconst_2 */,
2949 {}/* dconst_0 */, {}/* dconst_1 */, { T_BYTE }/* bipush */, { T_SHORT }/* sipush */, { T_BYTE }/* ldc */, { T_SHORT }/* ldc_w */,
2950 { T_SHORT }/* ldc2_w */, { T_BYTE }/* iload */, { T_BYTE }/* lload */, { T_BYTE }/* fload */, { T_BYTE }/* dload */, { T_BYTE }/* aload */,
2951 {}/* iload_0 */, {}/* iload_1 */, {}/* iload_2 */, {}/* iload_3 */, {}/* lload_0 */, {}/* lload_1 */, {}/* lload_2 */, {}/* lload_3 */,
2952 {}/* fload_0 */, {}/* fload_1 */, {}/* fload_2 */, {}/* fload_3 */, {}/* dload_0 */, {}/* dload_1 */, {}/* dload_2 */, {}/* dload_3 */,
2953 {}/* aload_0 */, {}/* aload_1 */, {}/* aload_2 */, {}/* aload_3 */, {}/* iaload */, {}/* laload */, {}/* faload */, {}/* daload */, {}/* aaload */,
2954 {}/* baload */, {}/* caload */, {}/* saload */, { T_BYTE }/* istore */, { T_BYTE }/* lstore */, { T_BYTE }/* fstore */, { T_BYTE }/* dstore */,
2955 { T_BYTE }/* astore */, {}/* istore_0 */, {}/* istore_1 */, {}/* istore_2 */, {}/* istore_3 */, {}/* lstore_0 */, {}/* lstore_1 */,
2956 {}/* lstore_2 */, {}/* lstore_3 */, {}/* fstore_0 */, {}/* fstore_1 */, {}/* fstore_2 */, {}/* fstore_3 */, {}/* dstore_0 */, {}/* dstore_1 */,
2957 {}/* dstore_2 */, {}/* dstore_3 */, {}/* astore_0 */, {}/* astore_1 */, {}/* astore_2 */, {}/* astore_3 */, {}/* iastore */, {}/* lastore */,
2958 {}/* fastore */, {}/* dastore */, {}/* aastore */, {}/* bastore */, {}/* castore */, {}/* sastore */, {}/* pop */, {}/* pop2 */, {}/* dup */,
2959 {}/* dup_x1 */, {}/* dup_x2 */, {}/* dup2 */, {}/* dup2_x1 */, {}/* dup2_x2 */, {}/* swap */, {}/* iadd */, {}/* ladd */, {}/* fadd */,
2960 {}/* dadd */, {}/* isub */, {}/* lsub */, {}/* fsub */, {}/* dsub */, {}/* imul */, {}/* lmul */, {}/* fmul */, {}/* dmul */, {}/* idiv */,
2961 {}/* ldiv */, {}/* fdiv */, {}/* ddiv */, {}/* irem */, {}/* lrem */, {}/* frem */, {}/* drem */, {}/* ineg */, {}/* lneg */, {}/* fneg */,
2962 {}/* dneg */, {}/* ishl */, {}/* lshl */, {}/* ishr */, {}/* lshr */, {}/* iushr */, {}/* lushr */, {}/* iand */, {}/* land */, {}/* ior */,
2963 {}/* lor */, {}/* ixor */, {}/* lxor */, { T_BYTE, T_BYTE }/* iinc */, {}/* i2l */, {}/* i2f */, {}/* i2d */, {}/* l2i */, {}/* l2f */, {}/* l2d */,
2964 {}/* f2i */, {}/* f2l */, {}/* f2d */, {}/* d2i */, {}/* d2l */, {}/* d2f */, {}/* i2b */, {}/* i2c */, {}/* i2s */, {}/* lcmp */, {}/* fcmpl */,
2965 {}/* fcmpg */, {}/* dcmpl */, {}/* dcmpg */, { T_SHORT }/* ifeq */, { T_SHORT }/* ifne */, { T_SHORT }/* iflt */, { T_SHORT }/* ifge */,
2966 { T_SHORT }/* ifgt */, { T_SHORT }/* ifle */, { T_SHORT }/* if_icmpeq */, { T_SHORT }/* if_icmpne */, { T_SHORT }/* if_icmplt */,
2967 { T_SHORT }/* if_icmpge */, { T_SHORT }/* if_icmpgt */, { T_SHORT }/* if_icmple */, { T_SHORT }/* if_acmpeq */, { T_SHORT }/* if_acmpne */,
2968 { T_SHORT }/* goto */, { T_SHORT }/* jsr */, { T_BYTE }/* ret */, {}/* tableswitch */, {}/* lookupswitch */, {}/* ireturn */, {}/* lreturn */,
2969 {}/* freturn */, {}/* dreturn */, {}/* areturn */, {}/* return */, { T_SHORT }/* getstatic */, { T_SHORT }/* putstatic */,
2970 { T_SHORT }/* getfield */, { T_SHORT }/* putfield */, { T_SHORT }/* invokevirtual */, { T_SHORT }/* invokespecial */, { T_SHORT }/* invokestatic */,
2971 { T_SHORT, T_BYTE, T_BYTE }/* invokeinterface */, { T_SHORT, T_BYTE, T_BYTE }/* invokedynamic */, { T_SHORT }/* new */, { T_BYTE }/* newarray */,
2972 { T_SHORT }/* anewarray */, {}/* arraylength */, {}/* athrow */, { T_SHORT }/* checkcast */, { T_SHORT }/* instanceof */, {}/* monitorenter */,
2973 {}/* monitorexit */, { T_BYTE }/* wide */, { T_SHORT, T_BYTE }/* multianewarray */, { T_SHORT }/* ifnull */, { T_SHORT }/* ifnonnull */,
2974 { T_INT }/* goto_w */, { T_INT }/* jsr_w */, {}/* breakpoint */, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {},
2975 {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}/* impdep1 */,
2976 {}/* impdep2 */
2977 };
2978
2979 /**
2980 * Names of opcodes. Indexed by opcode. OPCODE_NAMES[ALOAD] = "aload".
2981 */
2982 static final String[] OPCODE_NAMES = { "nop", "aconst_null", "iconst_m1", "iconst_0", "iconst_1", "iconst_2", "iconst_3", "iconst_4", "iconst_5",
2983 "lconst_0", "lconst_1", "fconst_0", "fconst_1", "fconst_2", "dconst_0", "dconst_1", "bipush", "sipush", "ldc", "ldc_w", "ldc2_w", "iload", "lload",
2984 "fload", "dload", "aload", "iload_0", "iload_1", "iload_2", "iload_3", "lload_0", "lload_1", "lload_2", "lload_3", "fload_0", "fload_1", "fload_2",
2985 "fload_3", "dload_0", "dload_1", "dload_2", "dload_3", "aload_0", "aload_1", "aload_2", "aload_3", "iaload", "laload", "faload", "daload", "aaload",
2986 "baload", "caload", "saload", "istore", "lstore", "fstore", "dstore", "astore", "istore_0", "istore_1", "istore_2", "istore_3", "lstore_0",
2987 "lstore_1", "lstore_2", "lstore_3", "fstore_0", "fstore_1", "fstore_2", "fstore_3", "dstore_0", "dstore_1", "dstore_2", "dstore_3", "astore_0",
2988 "astore_1", "astore_2", "astore_3", "iastore", "lastore", "fastore", "dastore", "aastore", "bastore", "castore", "sastore", "pop", "pop2", "dup",
2989 "dup_x1", "dup_x2", "dup2", "dup2_x1", "dup2_x2", "swap", "iadd", "ladd", "fadd", "dadd", "isub", "lsub", "fsub", "dsub", "imul", "lmul", "fmul",
2990 "dmul", "idiv", "ldiv", "fdiv", "ddiv", "irem", "lrem", "frem", "drem", "ineg", "lneg", "fneg", "dneg", "ishl", "lshl", "ishr", "lshr", "iushr",
2991 "lushr", "iand", "land", "ior", "lor", "ixor", "lxor", "iinc", "i2l", "i2f", "i2d", "l2i", "l2f", "l2d", "f2i", "f2l", "f2d", "d2i", "d2l", "d2f",
2992 "i2b", "i2c", "i2s", "lcmp", "fcmpl", "fcmpg", "dcmpl", "dcmpg", "ifeq", "ifne", "iflt", "ifge", "ifgt", "ifle", "if_icmpeq", "if_icmpne",
2993 "if_icmplt", "if_icmpge", "if_icmpgt", "if_icmple", "if_acmpeq", "if_acmpne", "goto", "jsr", "ret", "tableswitch", "lookupswitch", "ireturn",
2994 "lreturn", "freturn", "dreturn", "areturn", "return", "getstatic", "putstatic", "getfield", "putfield", "invokevirtual", "invokespecial",
2995 "invokestatic", "invokeinterface", "invokedynamic", "new", "newarray", "anewarray", "arraylength", "athrow", "checkcast", "instanceof",
2996 "monitorenter", "monitorexit", "wide", "multianewarray", "ifnull", "ifnonnull", "goto_w", "jsr_w", "breakpoint", ILLEGAL_OPCODE, ILLEGAL_OPCODE,
2997 ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE,
2998 ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE,
2999 ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE,
3000 ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE,
3001 ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE,
3002 ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, "impdep1", "impdep2" };
3003
3004 /**
3005 * The length of the OPCODE_NAMES array.
3006 *
3007 * @since 6.0
3008 */
3009 public static final int OPCODE_NAMES_LENGTH = OPCODE_NAMES.length;
3010
3011 /**
3012 * Number of words consumed on operand stack by instructions. Indexed by opcode. CONSUME_STACK[FALOAD] = number of words consumed from the stack by a faload
3013 * instruction.
3014 */
3015 static final int[] CONSUME_STACK = { 0/* nop */, 0/* aconst_null */, 0/* iconst_m1 */, 0/* iconst_0 */, 0/* iconst_1 */, 0/* iconst_2 */, 0/* iconst_3 */,
3016 0/* iconst_4 */, 0/* iconst_5 */, 0/* lconst_0 */, 0/* lconst_1 */, 0/* fconst_0 */, 0/* fconst_1 */, 0/* fconst_2 */, 0/* dconst_0 */,
3017 0/* dconst_1 */, 0/* bipush */, 0/* sipush */, 0/* ldc */, 0/* ldc_w */, 0/* ldc2_w */, 0/* iload */, 0/* lload */, 0/* fload */, 0/* dload */,
3018 0/* aload */, 0/* iload_0 */, 0/* iload_1 */, 0/* iload_2 */, 0/* iload_3 */, 0/* lload_0 */, 0/* lload_1 */, 0/* lload_2 */, 0/* lload_3 */,
3019 0/* fload_0 */, 0/* fload_1 */, 0/* fload_2 */, 0/* fload_3 */, 0/* dload_0 */, 0/* dload_1 */, 0/* dload_2 */, 0/* dload_3 */, 0/* aload_0 */,
3020 0/* aload_1 */, 0/* aload_2 */, 0/* aload_3 */, 2/* iaload */, 2/* laload */, 2/* faload */, 2/* daload */, 2/* aaload */, 2/* baload */,
3021 2/* caload */, 2/* saload */, 1/* istore */, 2/* lstore */, 1/* fstore */, 2/* dstore */, 1/* astore */, 1/* istore_0 */, 1/* istore_1 */,
3022 1/* istore_2 */, 1/* istore_3 */, 2/* lstore_0 */, 2/* lstore_1 */, 2/* lstore_2 */, 2/* lstore_3 */, 1/* fstore_0 */, 1/* fstore_1 */,
3023 1/* fstore_2 */, 1/* fstore_3 */, 2/* dstore_0 */, 2/* dstore_1 */, 2/* dstore_2 */, 2/* dstore_3 */, 1/* astore_0 */, 1/* astore_1 */,
3024 1/* astore_2 */, 1/* astore_3 */, 3/* iastore */, 4/* lastore */, 3/* fastore */, 4/* dastore */, 3/* aastore */, 3/* bastore */, 3/* castore */,
3025 3/* sastore */, 1/* pop */, 2/* pop2 */, 1/* dup */, 2/* dup_x1 */, 3/* dup_x2 */, 2/* dup2 */, 3/* dup2_x1 */, 4/* dup2_x2 */, 2/* swap */,
3026 2/* iadd */, 4/* ladd */, 2/* fadd */, 4/* dadd */, 2/* isub */, 4/* lsub */, 2/* fsub */, 4/* dsub */, 2/* imul */, 4/* lmul */, 2/* fmul */,
3027 4/* dmul */, 2/* idiv */, 4/* ldiv */, 2/* fdiv */, 4/* ddiv */, 2/* irem */, 4/* lrem */, 2/* frem */, 4/* drem */, 1/* ineg */, 2/* lneg */,
3028 1/* fneg */, 2/* dneg */, 2/* ishl */, 3/* lshl */, 2/* ishr */, 3/* lshr */, 2/* iushr */, 3/* lushr */, 2/* iand */, 4/* land */, 2/* ior */,
3029 4/* lor */, 2/* ixor */, 4/* lxor */, 0/* iinc */, 1/* i2l */, 1/* i2f */, 1/* i2d */, 2/* l2i */, 2/* l2f */, 2/* l2d */, 1/* f2i */, 1/* f2l */,
3030 1/* f2d */, 2/* d2i */, 2/* d2l */, 2/* d2f */, 1/* i2b */, 1/* i2c */, 1/* i2s */, 4/* lcmp */, 2/* fcmpl */, 2/* fcmpg */, 4/* dcmpl */,
3031 4/* dcmpg */, 1/* ifeq */, 1/* ifne */, 1/* iflt */, 1/* ifge */, 1/* ifgt */, 1/* ifle */, 2/* if_icmpeq */, 2/* if_icmpne */, 2/* if_icmplt */,
3032 2 /* if_icmpge */, 2/* if_icmpgt */, 2/* if_icmple */, 2/* if_acmpeq */, 2/* if_acmpne */, 0/* goto */, 0/* jsr */, 0/* ret */, 1/* tableswitch */,
3033 1/* lookupswitch */, 1/* ireturn */, 2/* lreturn */, 1/* freturn */, 2/* dreturn */, 1/* areturn */, 0/* return */, 0/* getstatic */,
3034 UNPREDICTABLE/* putstatic */, 1/* getfield */, UNPREDICTABLE/* putfield */, UNPREDICTABLE/* invokevirtual */, UNPREDICTABLE/* invokespecial */,
3035 UNPREDICTABLE/* invokestatic */, UNPREDICTABLE/* invokeinterface */, UNPREDICTABLE/* invokedynamic */, 0/* new */, 1/* newarray */,
3036 1/* anewarray */, 1/* arraylength */, 1/* athrow */, 1/* checkcast */, 1/* instanceof */, 1/* monitorenter */, 1/* monitorexit */, 0/* wide */,
3037 UNPREDICTABLE/* multianewarray */, 1/* ifnull */, 1/* ifnonnull */, 0/* goto_w */, 0/* jsr_w */, 0/* breakpoint */, UNDEFINED, UNDEFINED, UNDEFINED,
3038 UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
3039 UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
3040 UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
3041 UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNPREDICTABLE/* impdep1 */,
3042 UNPREDICTABLE/* impdep2 */
3043 };
3044
3045 /**
3046 * Number of words produced onto operand stack by instructions. Indexed by opcode. CONSUME_STACK[DALOAD] = number of words consumed from the stack by a
3047 * daload instruction.
3048 */
3049 static final int[] PRODUCE_STACK = { 0/* nop */, 1/* aconst_null */, 1/* iconst_m1 */, 1/* iconst_0 */, 1/* iconst_1 */, 1/* iconst_2 */, 1/* iconst_3 */,
3050 1/* iconst_4 */, 1/* iconst_5 */, 2/* lconst_0 */, 2/* lconst_1 */, 1/* fconst_0 */, 1/* fconst_1 */, 1/* fconst_2 */, 2/* dconst_0 */,
3051 2/* dconst_1 */, 1/* bipush */, 1/* sipush */, 1/* ldc */, 1/* ldc_w */, 2/* ldc2_w */, 1/* iload */, 2/* lload */, 1/* fload */, 2/* dload */,
3052 1/* aload */, 1/* iload_0 */, 1/* iload_1 */, 1/* iload_2 */, 1/* iload_3 */, 2/* lload_0 */, 2/* lload_1 */, 2/* lload_2 */, 2/* lload_3 */,
3053 1/* fload_0 */, 1/* fload_1 */, 1/* fload_2 */, 1/* fload_3 */, 2/* dload_0 */, 2/* dload_1 */, 2/* dload_2 */, 2/* dload_3 */, 1/* aload_0 */,
3054 1/* aload_1 */, 1/* aload_2 */, 1/* aload_3 */, 1/* iaload */, 2/* laload */, 1/* faload */, 2/* daload */, 1/* aaload */, 1/* baload */,
3055 1/* caload */, 1/* saload */, 0/* istore */, 0/* lstore */, 0/* fstore */, 0/* dstore */, 0/* astore */, 0/* istore_0 */, 0/* istore_1 */,
3056 0/* istore_2 */, 0/* istore_3 */, 0/* lstore_0 */, 0/* lstore_1 */, 0/* lstore_2 */, 0/* lstore_3 */, 0/* fstore_0 */, 0/* fstore_1 */,
3057 0/* fstore_2 */, 0/* fstore_3 */, 0/* dstore_0 */, 0/* dstore_1 */, 0/* dstore_2 */, 0/* dstore_3 */, 0/* astore_0 */, 0/* astore_1 */,
3058 0/* astore_2 */, 0/* astore_3 */, 0/* iastore */, 0/* lastore */, 0/* fastore */, 0/* dastore */, 0/* aastore */, 0/* bastore */, 0/* castore */,
3059 0/* sastore */, 0/* pop */, 0/* pop2 */, 2/* dup */, 3/* dup_x1 */, 4/* dup_x2 */, 4/* dup2 */, 5/* dup2_x1 */, 6/* dup2_x2 */, 2/* swap */,
3060 1/* iadd */, 2/* ladd */, 1/* fadd */, 2/* dadd */, 1/* isub */, 2/* lsub */, 1/* fsub */, 2/* dsub */, 1/* imul */, 2/* lmul */, 1/* fmul */,
3061 2/* dmul */, 1/* idiv */, 2/* ldiv */, 1/* fdiv */, 2/* ddiv */, 1/* irem */, 2/* lrem */, 1/* frem */, 2/* drem */, 1/* ineg */, 2/* lneg */,
3062 1/* fneg */, 2/* dneg */, 1/* ishl */, 2/* lshl */, 1/* ishr */, 2/* lshr */, 1/* iushr */, 2/* lushr */, 1/* iand */, 2/* land */, 1/* ior */,
3063 2/* lor */, 1/* ixor */, 2/* lxor */, 0/* iinc */, 2/* i2l */, 1/* i2f */, 2/* i2d */, 1/* l2i */, 1/* l2f */, 2/* l2d */, 1/* f2i */, 2/* f2l */,
3064 2/* f2d */, 1/* d2i */, 2/* d2l */, 1/* d2f */, 1/* i2b */, 1/* i2c */, 1/* i2s */, 1/* lcmp */, 1/* fcmpl */, 1/* fcmpg */, 1/* dcmpl */,
3065 1/* dcmpg */, 0/* ifeq */, 0/* ifne */, 0/* iflt */, 0/* ifge */, 0/* ifgt */, 0/* ifle */, 0/* if_icmpeq */, 0/* if_icmpne */, 0/* if_icmplt */,
3066 0/* if_icmpge */, 0/* if_icmpgt */, 0/* if_icmple */, 0/* if_acmpeq */, 0/* if_acmpne */, 0/* goto */, 1/* jsr */, 0/* ret */, 0/* tableswitch */,
3067 0/* lookupswitch */, 0/* ireturn */, 0/* lreturn */, 0/* freturn */, 0/* dreturn */, 0/* areturn */, 0/* return */, UNPREDICTABLE/* getstatic */,
3068 0/* putstatic */, UNPREDICTABLE/* getfield */, 0/* putfield */, UNPREDICTABLE/* invokevirtual */, UNPREDICTABLE/* invokespecial */,
3069 UNPREDICTABLE/* invokestatic */, UNPREDICTABLE/* invokeinterface */, UNPREDICTABLE/* invokedynamic */, 1/* new */, 1/* newarray */,
3070 1/* anewarray */, 1/* arraylength */, 1/* athrow */, 1/* checkcast */, 1/* instanceof */, 0/* monitorenter */, 0/* monitorexit */, 0/* wide */,
3071 1/* multianewarray */, 0/* ifnull */, 0/* ifnonnull */, 0/* goto_w */, 1/* jsr_w */, 0/* breakpoint */, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
3072 UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
3073 UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
3074 UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED,
3075 UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNPREDICTABLE/* impdep1 */, UNPREDICTABLE/* impdep2 */
3076 };
3077
3078 /**
3079 * Attributes and their corresponding names.
3080 */
3081 public static final byte ATTR_UNKNOWN = -1;
3082
3083 /** Attribute constant for SourceFile. */
3084 public static final byte ATTR_SOURCE_FILE = 0;
3085
3086 /** Attribute constant for ConstantValue. */
3087 public static final byte ATTR_CONSTANT_VALUE = 1;
3088
3089 /** Attribute constant for Code. */
3090 public static final byte ATTR_CODE = 2;
3091
3092 /** Attribute constant for Exceptions. */
3093 public static final byte ATTR_EXCEPTIONS = 3;
3094
3095 /** Attribute constant for LineNumberTable. */
3096 public static final byte ATTR_LINE_NUMBER_TABLE = 4;
3097
3098 /** Attribute constant for LocalVariableTable. */
3099 public static final byte ATTR_LOCAL_VARIABLE_TABLE = 5;
3100
3101 /** Attribute constant for InnerClasses. */
3102 public static final byte ATTR_INNER_CLASSES = 6;
3103
3104 /** Attribute constant for Synthetic. */
3105 public static final byte ATTR_SYNTHETIC = 7;
3106
3107 /**
3108 * Attribute constant for Deprecated.
3109 *
3110 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se25/html/jvms-4.html#jvms-4.7.15">JVM Specification: The Deprecated Attribute</a>
3111 */
3112 public static final byte ATTR_DEPRECATED = 8;
3113
3114 /** Attribute constant for PMG. */
3115 public static final byte ATTR_PMG = 9;
3116
3117 /** Attribute constant for Signature. */
3118 public static final byte ATTR_SIGNATURE = 10;
3119
3120 /** Attribute constant for StackMap. */
3121 public static final byte ATTR_STACK_MAP = 11;
3122
3123 /** Attribute constant for RuntimeVisibleAnnotations. */
3124 public static final byte ATTR_RUNTIME_VISIBLE_ANNOTATIONS = 12;
3125
3126 /** Attribute constant for RuntimeInvisibleAnnotations. */
3127 public static final byte ATTR_RUNTIME_INVISIBLE_ANNOTATIONS = 13;
3128
3129 /** Attribute constant for RuntimeVisibleParameterAnnotations. */
3130 public static final byte ATTR_RUNTIME_VISIBLE_PARAMETER_ANNOTATIONS = 14;
3131
3132 /** Attribute constant for RuntimeInvisibleParameterAnnotations. */
3133 public static final byte ATTR_RUNTIME_INVISIBLE_PARAMETER_ANNOTATIONS = 15;
3134
3135 /** Attribute constant for AnnotationDefault. */
3136 public static final byte ATTR_ANNOTATION_DEFAULT = 16;
3137
3138 /** Attribute constant for LocalVariableTypeTable. */
3139 public static final byte ATTR_LOCAL_VARIABLE_TYPE_TABLE = 17;
3140
3141 /** Attribute constant for EnclosingMethod. */
3142 public static final byte ATTR_ENCLOSING_METHOD = 18;
3143
3144 /** Attribute constant for StackMapTable. */
3145 public static final byte ATTR_STACK_MAP_TABLE = 19;
3146
3147 /** Attribute constant for BootstrapMethods. */
3148 public static final byte ATTR_BOOTSTRAP_METHODS = 20;
3149
3150 /** Attribute constant for MethodParameters. */
3151 public static final byte ATTR_METHOD_PARAMETERS = 21;
3152
3153 /** Attribute constant for Module. */
3154 public static final byte ATTR_MODULE = 22;
3155
3156 /** Attribute constant for ModulePackages. */
3157 public static final byte ATTR_MODULE_PACKAGES = 23;
3158
3159 /** Attribute constant for ModuleMainClass. */
3160 public static final byte ATTR_MODULE_MAIN_CLASS = 24;
3161
3162 /** Attribute constant for NestHost. */
3163 public static final byte ATTR_NEST_HOST = 25;
3164
3165 /** Attribute constant for NestMembers. */
3166 public static final byte ATTR_NEST_MEMBERS = 26;
3167
3168 /** Attribute constant for Record. */
3169 public static final byte ATTR_RECORD = 27;
3170
3171 /** Count of known attributes. */
3172 public static final short KNOWN_ATTRIBUTES = 28; // count of attributes
3173
3174 private static final String[] ATTRIBUTE_NAMES = { "SourceFile", "ConstantValue", "Code", "Exceptions", "LineNumberTable", "LocalVariableTable",
3175 "InnerClasses", "Synthetic", "Deprecated", "PMGClass", "Signature", "StackMap", "RuntimeVisibleAnnotations", "RuntimeInvisibleAnnotations",
3176 "RuntimeVisibleParameterAnnotations", "RuntimeInvisibleParameterAnnotations", "AnnotationDefault", "LocalVariableTypeTable", "EnclosingMethod",
3177 "StackMapTable", "BootstrapMethods", "MethodParameters", "Module", "ModulePackages", "ModuleMainClass", "NestHost", "NestMembers", "Record" };
3178
3179 /**
3180 * Constants used in the StackMap attribute.
3181 */
3182 /** Item type: Bogus. */
3183 public static final byte ITEM_Bogus = 0;
3184
3185 /** Item type: Integer. */
3186 public static final byte ITEM_Integer = 1;
3187
3188 /** Item type: Float. */
3189 public static final byte ITEM_Float = 2;
3190
3191 /** Item type: Double. */
3192 public static final byte ITEM_Double = 3;
3193
3194 /** Item type: Long. */
3195 public static final byte ITEM_Long = 4;
3196
3197 /** Item type: Null. */
3198 public static final byte ITEM_Null = 5;
3199
3200 /** Item type: InitObject. */
3201 public static final byte ITEM_InitObject = 6;
3202
3203 /** Item type: Object. */
3204 public static final byte ITEM_Object = 7;
3205
3206 /** Item type: NewObject. */
3207 public static final byte ITEM_NewObject = 8;
3208
3209 private static final String[] ITEM_NAMES = { "Bogus", "Integer", "Float", "Double", "Long", "Null", "InitObject", "Object", "NewObject" };
3210
3211 /**
3212 * Constants used to identify StackMapEntry types. For those types which can specify a range, the constant names the lowest value.
3213 */
3214 /** StackMapEntry type: SAME_FRAME. */
3215 public static final int SAME_FRAME = 0;
3216
3217 /** StackMapEntry type: SAME_LOCALS_1_STACK_ITEM_FRAME. */
3218 public static final int SAME_LOCALS_1_STACK_ITEM_FRAME = 64;
3219
3220 /** StackMapEntry type: SAME_LOCALS_1_STACK_ITEM_FRAME_EXTENDED. */
3221 public static final int SAME_LOCALS_1_STACK_ITEM_FRAME_EXTENDED = 247;
3222
3223 /** StackMapEntry type: CHOP_FRAME. */
3224 public static final int CHOP_FRAME = 248;
3225
3226 /** StackMapEntry type: SAME_FRAME_EXTENDED. */
3227 public static final int SAME_FRAME_EXTENDED = 251;
3228
3229 /** StackMapEntry type: APPEND_FRAME. */
3230 public static final int APPEND_FRAME = 252;
3231
3232 /** StackMapEntry type: FULL_FRAME. */
3233 public static final int FULL_FRAME = 255;
3234
3235 /**
3236 * Constants that define the maximum value of those constants which store ranges.
3237 */
3238 /** Maximum value for SAME_FRAME. */
3239 public static final int SAME_FRAME_MAX = 63;
3240
3241 /** Maximum value for SAME_LOCALS_1_STACK_ITEM_FRAME. */
3242 public static final int SAME_LOCALS_1_STACK_ITEM_FRAME_MAX = 127;
3243
3244 /** Maximum value for CHOP_FRAME. */
3245 public static final int CHOP_FRAME_MAX = 250;
3246
3247 /** Maximum value for APPEND_FRAME. */
3248 public static final int APPEND_FRAME_MAX = 254;
3249
3250 /** Reference kind: getField. */
3251 public static final byte REF_getField = 1;
3252
3253 /** Reference kind: getStatic. */
3254 public static final byte REF_getStatic = 2;
3255
3256 /** Reference kind: putField. */
3257 public static final byte REF_putField = 3;
3258
3259 /** Reference kind: putStatic. */
3260 public static final byte REF_putStatic = 4;
3261
3262 /** Reference kind: invokeVirtual. */
3263 public static final byte REF_invokeVirtual = 5;
3264
3265 /** Reference kind: invokeStatic. */
3266 public static final byte REF_invokeStatic = 6;
3267
3268 /** Reference kind: invokeSpecial. */
3269 public static final byte REF_invokeSpecial = 7;
3270
3271 /** Reference kind: newInvokeSpecial. */
3272 public static final byte REF_newInvokeSpecial = 8;
3273
3274 /** Reference kind: invokeInterface. */
3275 public static final byte REF_invokeInterface = 9;
3276
3277 /**
3278 * The names of the reference_kinds of a CONSTANT_MethodHandle_info.
3279 */
3280 private static final String[] METHODHANDLE_NAMES = { "", "getField", "getStatic", "putField", "putStatic", "invokeVirtual", "invokeStatic", "invokeSpecial",
3281 "newInvokeSpecial", "invokeInterface" };
3282
3283 /**
3284 * Gets the access name at the given index.
3285 *
3286 * @param index index into {@code ACCESS_NAMES}.
3287 * @return the ACCESS_NAMES entry at the given index.
3288 * @since 6.0
3289 */
3290 public static String getAccessName(final int index) {
3291 return ACCESS_NAMES[index];
3292 }
3293
3294 /**
3295 * Gets the attribute name at the given index.
3296 *
3297 * @param index index into {@code ACCESS_NAMES}.
3298 * @return the attribute name.
3299 * @since 6.0
3300 */
3301 public static String getAttributeName(final int index) {
3302 return ATTRIBUTE_NAMES[index];
3303 }
3304
3305 /**
3306 * The primitive class names corresponding to the T_XX constants, for example, CLASS_TYPE_NAMES[T_INT] = "java.lang.Integer".
3307 *
3308 * @param index index into {@code CLASS_TYPE_NAMES}.
3309 * @return the class name.
3310 * @since 6.0
3311 */
3312 public static String getClassTypeName(final int index) {
3313 return CLASS_TYPE_NAMES[index];
3314 }
3315
3316 /**
3317 * Gets the constant name at the given index.
3318 *
3319 * @param index index into {@code CONSTANT_NAMES}.
3320 * @return the CONSTANT_NAMES entry at the given index.
3321 * @since 6.0
3322 */
3323 public static String getConstantName(final int index) {
3324 return CONSTANT_NAMES[index];
3325 }
3326 // Constants defining the behavior of the Method Handles (JVMS �5.4.3.5)
3327
3328 /**
3329 * Gets the number of words consumed on operand stack.
3330 *
3331 * @param index index into {@code CONSUME_STACK}.
3332 * @return Number of words consumed on operand stack.
3333 * @since 6.0
3334 */
3335 public static int getConsumeStack(final int index) {
3336 return CONSUME_STACK[index];
3337 }
3338
3339 /**
3340 * Gets the interfaces implemented by arrays.
3341 *
3342 * @return the interfaces implemented by arrays.
3343 * @since 6.0
3344 */
3345 public static Iterable<String> getInterfacesImplementedByArrays() {
3346 return Collections.unmodifiableList(Arrays.asList(INTERFACES_IMPLEMENTED_BY_ARRAYS));
3347 }
3348
3349 /**
3350 * Gets the item name at the given index.
3351 *
3352 * @param index index into {@code ITEM_NAMES}.
3353 * @return the item name.
3354 * @since 6.0
3355 */
3356 public static String getItemName(final int index) {
3357 return ITEM_NAMES[index];
3358 }
3359
3360 /**
3361 * Gets the method handle name at the given index.
3362 *
3363 * @param index index into {@code METHODHANDLE_NAMES}.
3364 * @return the method handle name.
3365 * @since 6.0
3366 */
3367 public static String getMethodHandleName(final int index) {
3368 return METHODHANDLE_NAMES[index];
3369 }
3370
3371 /**
3372 * Gets the number of byte code operands.
3373 *
3374 * @param index index into {@code NO_OF_OPERANDS}.
3375 * @return Number of byte code operands.
3376 * @since 6.0
3377 */
3378 public static short getNoOfOperands(final int index) {
3379 return NO_OF_OPERANDS[index];
3380 }
3381
3382 /**
3383 * Gets the opcode name at the given index.
3384 *
3385 * @param index the index.
3386 * @return the opcode name.
3387 * @since 6.0
3388 */
3389 public static String getOpcodeName(final int index) {
3390 return OPCODE_NAMES[index];
3391 }
3392
3393 /**
3394 * Gets the operand type.
3395 *
3396 * @param opcode the opcode.
3397 * @param index the index.
3398 * @return the operand type.
3399 * @since 6.0
3400 */
3401 public static short getOperandType(final int opcode, final int index) {
3402 return TYPE_OF_OPERANDS[opcode][index];
3403 }
3404
3405 /**
3406 * Gets the operand type count.
3407 *
3408 * @param opcode the opcode.
3409 * @return the operand type count.
3410 * @since 6.0
3411 */
3412 public static long getOperandTypeCount(final int opcode) {
3413 return TYPE_OF_OPERANDS[opcode].length;
3414 }
3415
3416 /**
3417 * Gets the number of words produced onto operand stack.
3418 *
3419 * @param index the index.
3420 * @return Number of words produced onto operand stack.
3421 * @since 6.0
3422 */
3423 public static int getProduceStack(final int index) {
3424 return PRODUCE_STACK[index];
3425 }
3426
3427 /**
3428 * Gets the short type name at the given index.
3429 *
3430 * @param index the index.
3431 * @return the short type name.
3432 * @since 6.0
3433 */
3434 public static String getShortTypeName(final int index) {
3435 return SHORT_TYPE_NAMES[index];
3436 }
3437
3438 /**
3439 * The primitive type names corresponding to the T_XX constants, for example, TYPE_NAMES[T_INT] = "int".
3440 *
3441 * @param index the index.
3442 * @return the type name.
3443 * @since 6.0
3444 */
3445 public static String getTypeName(final int index) {
3446 return TYPE_NAMES[index];
3447 }
3448
3449 private Const() {
3450 } // not instantiable
3451 }