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