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