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