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