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