1 /* 2 * Copyright (c) 2017, 2020, Oracle and/or its affiliates. All rights reserved. 3 */ 4 /* 5 * Licensed to the Apache Software Foundation (ASF) under one or more 6 * contributor license agreements. See the NOTICE file distributed with 7 * this work for additional information regarding copyright ownership. 8 * The ASF licenses this file to You under the Apache License, Version 2.0 9 * (the "License"); you may not use this file except in compliance with 10 * the License. You may obtain a copy of the License at 11 * 12 * http://www.apache.org/licenses/LICENSE-2.0 13 * 14 * Unless required by applicable law or agreed to in writing, software 15 * distributed under the License is distributed on an "AS IS" BASIS, 16 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 * See the License for the specific language governing permissions and 18 * limitations under the License. 19 */ 20 package com.sun.org.apache.bcel.internal; 21 22 import java.util.Arrays; 23 import java.util.Collections; 24 25 /** 26 * Constants for the project, mostly defined in the JVM specification. 27 * 28 * @since 6.0 (intended to replace the Constants interface) 29 * @LastModified: Jan 2020 30 */ 31 public final class Const { 32 33 /** 34 * Java class file format Magic number (0xCAFEBABE) 35 * 36 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se7/html/jvms-4.html#jvms-4.1-200-A"> 37 * The ClassFile Structure in The Java Virtual Machine Specification</a> 38 */ 39 public static final int JVM_CLASSFILE_MAGIC = 0xCAFEBABE; 40 41 /** Major version number of class files for Java 1.1. 42 * @see #MINOR_1_1 43 * */ 44 public static final short MAJOR_1_1 = 45; 45 46 /** Minor version number of class files for Java 1.1. 47 * @see #MAJOR_1_1 48 * */ 49 public static final short MINOR_1_1 = 3; 50 51 /** Major version number of class files for Java 1.2. 52 * @see #MINOR_1_2 53 * */ 54 public static final short MAJOR_1_2 = 46; 55 56 /** Minor version number of class files for Java 1.2. 57 * @see #MAJOR_1_2 58 * */ 59 public static final short MINOR_1_2 = 0; 60 61 /** Major version number of class files for Java 1.2. 62 * @see #MINOR_1_2 63 * */ 64 public static final short MAJOR_1_3 = 47; 65 66 /** Minor version number of class files for Java 1.3. 67 * @see #MAJOR_1_3 68 * */ 69 public static final short MINOR_1_3 = 0; 70 71 /** Major version number of class files for Java 1.3. 72 * @see #MINOR_1_3 73 * */ 74 public static final short MAJOR_1_4 = 48; 75 76 /** Minor version number of class files for Java 1.4. 77 * @see #MAJOR_1_4 78 * */ 79 public static final short MINOR_1_4 = 0; 80 81 /** Major version number of class files for Java 1.4. 82 * @see #MINOR_1_4 83 * */ 84 public static final short MAJOR_1_5 = 49; 85 86 /** Minor version number of class files for Java 1.5. 87 * @see #MAJOR_1_5 88 * */ 89 public static final short MINOR_1_5 = 0; 90 91 /** Major version number of class files for Java 1.6. 92 * @see #MINOR_1_6 93 * */ 94 public static final short MAJOR_1_6 = 50; 95 96 /** Minor version number of class files for Java 1.6. 97 * @see #MAJOR_1_6 98 * */ 99 public static final short MINOR_1_6 = 0; 100 101 /** Major version number of class files for Java 1.7. 102 * @see #MINOR_1_7 103 * */ 104 public static final short MAJOR_1_7 = 51; 105 106 /** Minor version number of class files for Java 1.7. 107 * @see #MAJOR_1_7 108 * */ 109 public static final short MINOR_1_7 = 0; 110 111 /** Major version number of class files for Java 1.8. 112 * @see #MINOR_1_8 113 * */ 114 public static final short MAJOR_1_8 = 52; 115 116 /** Minor version number of class files for Java 1.8. 117 * @see #MAJOR_1_8 118 * */ 119 public static final short MINOR_1_8 = 0; 120 121 /** Major version number of class files for Java 9. 122 * @see #MINOR_9 123 * */ 124 public static final short MAJOR_9 = 53; 125 126 /** Minor version number of class files for Java 9. 127 * @see #MAJOR_9 128 * */ 129 public static final short MINOR_9 = 0; 130 131 /** 132 * @deprecated Use {@link #MAJOR_9} instead 133 */ 134 @Deprecated 135 public static final short MAJOR_1_9 = MAJOR_9; 136 137 /** 138 * @deprecated Use {@link #MINOR_9} instead 139 */ 140 @Deprecated 141 public static final short MINOR_1_9 = MINOR_9; 142 143 /** Major version number of class files for Java 10. 144 * @see #MINOR_10 145 * */ 146 public static final short MAJOR_10 = 54; 147 148 /** Minor version number of class files for Java 10. 149 * @see #MAJOR_10 150 * */ 151 public static final short MINOR_10 = 0; 152 153 /** Major version number of class files for Java 11. 154 * @see #MINOR_11 155 * */ 156 public static final short MAJOR_11 = 55; 157 158 /** Minor version number of class files for Java 11. 159 * @see #MAJOR_11 160 * */ 161 public static final short MINOR_11 = 0; 162 163 /** Major version number of class files for Java 12. 164 * @see #MINOR_12 165 * */ 166 public static final short MAJOR_12 = 56; 167 168 /** Minor version number of class files for Java 12. 169 * @see #MAJOR_12 170 * */ 171 public static final short MINOR_12 = 0; 172 173 /** Major version number of class files for Java 13. 174 * @see #MINOR_13 175 * */ 176 public static final short MAJOR_13 = 57; 177 178 /** Minor version number of class files for Java 13. 179 * @see #MAJOR_13 180 * */ 181 public static final short MINOR_13 = 0; 182 183 /** Major version number of class files for Java 14. 184 * @see #MINOR_14 185 * @since 6.4.0 186 * */ 187 public static final short MAJOR_14 = 58; 188 189 /** Minor version number of class files for Java 14. 190 * @see #MAJOR_14 191 * @since 6.4.0 192 * */ 193 public static final short MINOR_14 = 0; 194 195 /** Default major version number. Class file is for Java 1.1. 196 * @see #MAJOR_1_1 197 * */ 198 public static final short MAJOR = MAJOR_1_1; 199 200 /** Default major version number. Class file is for Java 1.1. 201 * @see #MAJOR_1_1 202 * */ 203 public static final short MINOR = MINOR_1_1; 204 205 /** Maximum value for an unsigned short. 206 */ 207 public static final int MAX_SHORT = 65535; // 2^16 - 1 208 209 /** Maximum value for an unsigned byte. 210 */ 211 public static final int MAX_BYTE = 255; // 2^8 - 1 212 213 /** One of the access flags for fields, methods, or classes. 214 * @see <a href='http://docs.oracle.com/javase/specs/jvms/se9/html/jvms-4.html#jvms-4.1-200-E.1'> 215 * Flag definitions for Classes in the Java Virtual Machine Specification (Java SE 9 Edition).</a> 216 * @see <a href='http://docs.oracle.com/javase/specs/jvms/se9/html/jvms-4.html#jvms-4.5'> 217 * Flag definitions for Fields in the Java Virtual Machine Specification (Java SE 9 Edition).</a> 218 * @see <a href='http://docs.oracle.com/javase/specs/jvms/se9/html/jvms-4.html#jvms-4.6'> 219 * Flag definitions for Methods in the Java Virtual Machine Specification (Java SE 9 Edition).</a> 220 * @see <a href='http://docs.oracle.com/javase/specs/jvms/se9/html/jvms-4.html#jvms-4.7.6-300-D.1-D.1'> 221 * Flag definitions for Inner Classes in the Java Virtual Machine Specification (Java SE 9 Edition).</a> 222 */ 223 public static final short ACC_PUBLIC = 0x0001; 224 225 /** One of the access flags for fields, methods, or classes. 226 * @see #ACC_PUBLIC 227 */ 228 public static final short ACC_PRIVATE = 0x0002; 229 230 /** One of the access flags for fields, methods, or classes. 231 * @see #ACC_PUBLIC 232 */ 233 public static final short ACC_PROTECTED = 0x0004; 234 235 /** One of the access flags for fields, methods, or classes. 236 * @see #ACC_PUBLIC 237 */ 238 public static final short ACC_STATIC = 0x0008; 239 240 /** One of the access flags for fields, methods, or classes. 241 * @see #ACC_PUBLIC 242 */ 243 public static final short ACC_FINAL = 0x0010; 244 245 /** One of the access flags for the Module attribute. 246 * @see #ACC_PUBLIC 247 */ 248 public static final short ACC_OPEN = 0x0020; 249 250 /** One of the access flags for classes. 251 * @see #ACC_PUBLIC 252 */ 253 public static final short ACC_SUPER = 0x0020; 254 255 /** One of the access flags for methods. 256 * @see #ACC_PUBLIC 257 */ 258 public static final short ACC_SYNCHRONIZED = 0x0020; 259 260 /** One of the access flags for the Module attribute. 261 * @see #ACC_PUBLIC 262 */ 263 public static final short ACC_TRANSITIVE = 0x0020; 264 265 /** One of the access flags for methods. 266 * @see #ACC_PUBLIC 267 */ 268 public static final short ACC_BRIDGE = 0x0040; 269 270 /** One of the access flags for the Module attribute. 271 * @see #ACC_PUBLIC 272 */ 273 public static final short ACC_STATIC_PHASE = 0x0040; 274 275 /** One of the access flags for fields. 276 * @see #ACC_PUBLIC 277 */ 278 public static final short ACC_VOLATILE = 0x0040; 279 280 /** One of the access flags for fields. 281 * @see #ACC_PUBLIC 282 */ 283 public static final short ACC_TRANSIENT = 0x0080; 284 285 /** One of the access flags for methods. 286 * @see #ACC_PUBLIC 287 */ 288 public static final short ACC_VARARGS = 0x0080; 289 290 /** One of the access flags for methods. 291 * @see #ACC_PUBLIC 292 */ 293 public static final short ACC_NATIVE = 0x0100; 294 295 /** One of the access flags for classes. 296 * @see #ACC_PUBLIC 297 */ 298 public static final short ACC_INTERFACE = 0x0200; 299 300 /** One of the access flags for methods or classes. 301 * @see #ACC_PUBLIC 302 */ 303 public static final short ACC_ABSTRACT = 0x0400; 304 305 /** One of the access flags for methods. 306 * @see #ACC_PUBLIC 307 */ 308 public static final short ACC_STRICT = 0x0800; 309 310 /** One of the access flags for fields, methods, classes, MethodParameter attribute, or Module attribute. 311 * @see #ACC_PUBLIC 312 */ 313 public static final short ACC_SYNTHETIC = 0x1000; 314 315 /** One of the access flags for classes. 316 * @see #ACC_PUBLIC 317 */ 318 public static final short ACC_ANNOTATION = 0x2000; 319 320 /** One of the access flags for fields or classes. 321 * @see #ACC_PUBLIC 322 */ 323 public static final short ACC_ENUM = 0x4000; 324 325 // Applies to classes compiled by new compilers only 326 /** One of the access flags for MethodParameter or Module attributes. 327 * @see #ACC_PUBLIC 328 */ 329 public static final short ACC_MANDATED = (short) 0x8000; 330 331 /** One of the access flags for classes. 332 * @see #ACC_PUBLIC 333 */ 334 public static final short ACC_MODULE = (short) 0x8000; 335 336 /** One of the access flags for fields, methods, or classes. 337 * @see #ACC_PUBLIC 338 * @deprecated Use {@link #MAX_ACC_FLAG_I} 339 */ 340 @Deprecated 341 public static final short MAX_ACC_FLAG = ACC_ENUM; 342 343 /** One of the access flags for fields, methods, or classes. 344 * ACC_MODULE is negative as a short. 345 * @see #ACC_PUBLIC 346 * @since 6.4.0 347 */ 348 public static final int MAX_ACC_FLAG_I = 0x8000; // ACC_MODULE is negative as a short 349 350 // Note that do to overloading: 351 // 'synchronized' is for methods, might be 'open' (if Module), 'super' (if class), or 'transitive' (if Module). 352 // 'volatile' is for fields, might be 'bridge' (if method) or 'static_phase' (if Module) 353 // 'transient' is for fields, might be 'varargs' (if method) 354 // 'module' is for classes, might be 'mandated' (if Module or MethodParameters) 355 /** 356 * The names of the access flags. 357 */ 358 private static final String[] ACCESS_NAMES = { 359 "public", "private", "protected", "static", "final", "synchronized", 360 "volatile", "transient", "native", "interface", "abstract", "strictfp", 361 "synthetic", "annotation", "enum", "module" 362 }; 363 364 /** @since 6.0 */ 365 public static final int ACCESS_NAMES_LENGTH = ACCESS_NAMES.length; 366 367 /** 368 * @param index 369 * @return the ACCESS_NAMES entry at the given index 370 * @since 6.0 371 */ getAccessName(final int index)372 public static String getAccessName(final int index) { 373 return ACCESS_NAMES[index]; 374 } 375 376 /* 377 * The description of the constant pool is at: 378 * http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4 379 * References below are to the individual sections 380 */ 381 382 /** 383 * Marks a constant pool entry as type UTF-8. 384 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.7"> 385 * The Constant Pool in The Java Virtual Machine Specification</a> 386 */ 387 public static final byte CONSTANT_Utf8 = 1; 388 389 /** 390 * Marks a constant pool entry as type Integer. 391 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.4"> 392 * The Constant Pool in The Java Virtual Machine Specification</a> 393 */ 394 public static final byte CONSTANT_Integer = 3; 395 396 /** 397 * Marks a constant pool entry as type Float. 398 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.4"> 399 * The Constant Pool in The Java Virtual Machine Specification</a> 400 */ 401 public static final byte CONSTANT_Float = 4; 402 403 /** 404 * Marks a constant pool entry as type Long. 405 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.5"> 406 * The Constant Pool in The Java Virtual Machine Specification</a> 407 */ 408 public static final byte CONSTANT_Long = 5; 409 410 /** 411 * Marks a constant pool entry as type Double. 412 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.5"> 413 * The Constant Pool in The Java Virtual Machine Specification</a> 414 */ 415 public static final byte CONSTANT_Double = 6; 416 417 /** 418 * Marks a constant pool entry as a Class 419 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.1"> 420 * The Constant Pool in The Java Virtual Machine Specification</a> 421 */ 422 public static final byte CONSTANT_Class = 7; 423 424 /** 425 * Marks a constant pool entry as a Field Reference. 426 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.2"> 427 * The Constant Pool in The Java Virtual Machine Specification</a> 428 */ 429 public static final byte CONSTANT_Fieldref = 9; 430 431 /** 432 * Marks a constant pool entry as type String 433 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.3"> 434 * The Constant Pool in The Java Virtual Machine Specification</a> 435 */ 436 public static final byte CONSTANT_String = 8; 437 438 /** Marks a constant pool entry as a Method Reference. 439 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.2"> 440 * The Constant Pool in The Java Virtual Machine Specification</a> */ 441 public static final byte CONSTANT_Methodref = 10; 442 443 /** 444 * Marks a constant pool entry as an Interface Method Reference. 445 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.2"> 446 * The Constant Pool in The Java Virtual Machine Specification</a> 447 */ 448 public static final byte CONSTANT_InterfaceMethodref = 11; 449 450 /** Marks a constant pool entry as a name and type. 451 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.6"> 452 * The Constant Pool in The Java Virtual Machine Specification</a> */ 453 public static final byte CONSTANT_NameAndType = 12; 454 455 /** 456 * Marks a constant pool entry as a Method Handle. 457 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.8"> 458 * The Constant Pool in The Java Virtual Machine Specification</a> 459 */ 460 public static final byte CONSTANT_MethodHandle = 15; 461 462 /** 463 * Marks a constant pool entry as a Method Type. 464 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.9"> 465 * The Constant Pool in The Java Virtual Machine Specification</a> 466 */ 467 public static final byte CONSTANT_MethodType = 16; 468 469 /** 470 * Marks a constant pool entry as dynamically computed. 471 * @see <a href="https://bugs.openjdk.java.net/secure/attachment/74618/constant-dynamic.html"> 472 * Change request for JEP 309</a> 473 * @since 6.3 474 */ 475 public static final byte CONSTANT_Dynamic = 17; 476 477 /** 478 * Marks a constant pool entry as an Invoke Dynamic 479 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4.10"> 480 * The Constant Pool in The Java Virtual Machine Specification</a> 481 */ 482 public static final byte CONSTANT_InvokeDynamic = 18; 483 484 /** 485 * Marks a constant pool entry as a Module Reference. 486 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se9/html/jvms-4.html#jvms-4.4.11"> 487 * The Constant Pool in The Java Virtual Machine Specification</a> 488 * @since 6.1 489 */ 490 public static final byte CONSTANT_Module = 19; 491 492 /** 493 * Marks a constant pool entry as a Package Reference. 494 * @see <a href="https://docs.oracle.com/javase/specs/jvms/se9/html/jvms-4.html#jvms-4.4.12"> 495 * The Constant Pool in The Java Virtual Machine Specification</a> 496 * @since 6.1 497 */ 498 public static final byte CONSTANT_Package = 20; 499 500 /** 501 * The names of the types of entries in a constant pool. 502 * Use getConstantName instead 503 */ 504 private static final String[] CONSTANT_NAMES = { 505 "", "CONSTANT_Utf8", "", "CONSTANT_Integer", 506 "CONSTANT_Float", "CONSTANT_Long", "CONSTANT_Double", 507 "CONSTANT_Class", "CONSTANT_String", "CONSTANT_Fieldref", 508 "CONSTANT_Methodref", "CONSTANT_InterfaceMethodref", 509 "CONSTANT_NameAndType", "", "", "CONSTANT_MethodHandle", 510 "CONSTANT_MethodType", "CONSTANT_Dynamic", "CONSTANT_InvokeDynamic", 511 "CONSTANT_Module", "CONSTANT_Package"}; 512 513 /** 514 * 515 * @param index 516 * @return the CONSTANT_NAMES entry at the given index 517 * @since 6.0 518 */ getConstantName(final int index)519 public static String getConstantName(final int index) { 520 return CONSTANT_NAMES[index]; 521 } 522 523 /** The name of the static initializer, also called "class 524 * initialization method" or "interface initialization 525 * method". This is "<clinit>". 526 */ 527 public static final String STATIC_INITIALIZER_NAME = "<clinit>"; 528 529 /** The name of every constructor method in a class, also called 530 * "instance initialization method". This is "<init>". 531 */ 532 public static final String CONSTRUCTOR_NAME = "<init>"; 533 534 /** 535 * The names of the interfaces implemented by arrays 536 */ 537 private static final String[] INTERFACES_IMPLEMENTED_BY_ARRAYS = {"java.lang.Cloneable", "java.io.Serializable"}; 538 539 /** 540 * @since 6.0 541 */ getInterfacesImplementedByArrays()542 public static Iterable<String> getInterfacesImplementedByArrays() { 543 return Collections.unmodifiableList(Arrays.asList(INTERFACES_IMPLEMENTED_BY_ARRAYS)); 544 } 545 546 /** 547 * Maximum Constant Pool entries. 548 * One of the limitations of the Java Virtual Machine. 549 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.11-100-A"> 550 * The Java Virtual Machine Specification, Java SE 8 Edition, page 330, chapter 4.11.</a> 551 */ 552 public static final int MAX_CP_ENTRIES = 65535; 553 554 /** 555 * Maximum code size (plus one; the code size must be LESS than this) 556 * One of the limitations of the Java Virtual Machine. 557 * Note vmspec2 page 152 ("Limitations") says: 558 * "The amount of code per non-native, non-abstract method is limited to 65536 bytes by 559 * the sizes of the indices in the exception_table of the Code attribute (4.7.3), 560 * in the LineNumberTable attribute (4.7.8), and in the LocalVariableTable attribute (4.7.9)." 561 * However this should be taken as an upper limit rather than the defined maximum. 562 * On page 134 (4.8.1 Static Constants) of the same spec, it says: 563 * "The value of the code_length item must be less than 65536." 564 * The entry in the Limitations section has been removed from later versions of the spec; 565 * it is not present in the Java SE 8 edition. 566 * 567 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.7.3-300-E"> 568 * The Java Virtual Machine Specification, Java SE 8 Edition, page 104, chapter 4.7.3</a> 569 */ 570 public static final int MAX_CODE_SIZE = 65536; //bytes 571 572 /** 573 * The maximum number of dimensions in an array ({@value}). 574 * One of the limitations of the Java Virtual Machine. 575 * 576 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.3.2-150"> 577 * Field Descriptors in The Java Virtual Machine Specification</a> 578 */ 579 public static final int MAX_ARRAY_DIMENSIONS = 255; 580 581 /** Java VM opcode. 582 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.nop"> 583 * Opcode definitions in The Java Virtual Machine Specification</a> */ 584 public static final short NOP = 0; 585 586 /** Java VM opcode. 587 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.aconst_null"> 588 * Opcode definitions in The Java Virtual Machine Specification</a> */ 589 public static final short ACONST_NULL = 1; 590 591 /** Java VM opcode. 592 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iconst_i"> 593 * Opcode definitions in The Java Virtual Machine Specification</a> */ 594 public static final short ICONST_M1 = 2; 595 596 /** Java VM opcode. 597 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iconst_i"> 598 * Opcode definitions in The Java Virtual Machine Specification</a> */ 599 public static final short ICONST_0 = 3; 600 601 /** Java VM opcode. 602 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iconst_i"> 603 * Opcode definitions in The Java Virtual Machine Specification</a> */ 604 public static final short ICONST_1 = 4; 605 606 /** Java VM opcode. 607 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iconst_i"> 608 * Opcode definitions in The Java Virtual Machine Specification</a> */ 609 public static final short ICONST_2 = 5; 610 611 /** Java VM opcode. 612 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iconst_i"> 613 * Opcode definitions in The Java Virtual Machine Specification</a> */ 614 public static final short ICONST_3 = 6; 615 616 /** Java VM opcode. 617 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iconst_i"> 618 * Opcode definitions in The Java Virtual Machine Specification</a> */ 619 public static final short ICONST_4 = 7; 620 621 /** Java VM opcode. 622 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iconst_i"> 623 * Opcode definitions in The Java Virtual Machine Specification</a> */ 624 public static final short ICONST_5 = 8; 625 626 /** Java VM opcode. 627 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lconst_l"> 628 * Opcode definitions in The Java Virtual Machine Specification</a> */ 629 public static final short LCONST_0 = 9; 630 631 /** Java VM opcode. 632 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lconst_l"> 633 * Opcode definitions in The Java Virtual Machine Specification</a> */ 634 public static final short LCONST_1 = 10; 635 636 /** Java VM opcode. 637 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fconst_f"> 638 * Opcode definitions in The Java Virtual Machine Specification</a> */ 639 public static final short FCONST_0 = 11; 640 641 /** Java VM opcode. 642 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fconst_f"> 643 * Opcode definitions in The Java Virtual Machine Specification</a> */ 644 public static final short FCONST_1 = 12; 645 646 /** Java VM opcode. 647 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fconst_f"> 648 * Opcode definitions in The Java Virtual Machine Specification</a> */ 649 public static final short FCONST_2 = 13; 650 651 /** Java VM opcode. 652 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dconst_d"> 653 * Opcode definitions in The Java Virtual Machine Specification</a> */ 654 public static final short DCONST_0 = 14; 655 656 /** Java VM opcode. 657 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dconst_d"> 658 * Opcode definitions in The Java Virtual Machine Specification</a> */ 659 public static final short DCONST_1 = 15; 660 661 /** Java VM opcode. 662 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.bipush"> 663 * Opcode definitions in The Java Virtual Machine Specification</a> */ 664 public static final short BIPUSH = 16; 665 666 /** Java VM opcode. 667 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.sipush"> 668 * Opcode definitions in The Java Virtual Machine Specification</a> */ 669 public static final short SIPUSH = 17; 670 671 /** Java VM opcode. 672 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ldc"> 673 * Opcode definitions in The Java Virtual Machine Specification</a> */ 674 public static final short LDC = 18; 675 676 /** Java VM opcode. 677 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ldc_w"> 678 * Opcode definitions in The Java Virtual Machine Specification</a> */ 679 public static final short LDC_W = 19; 680 681 /** Java VM opcode. 682 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ldc2_w"> 683 * Opcode definitions in The Java Virtual Machine Specification</a> */ 684 public static final short LDC2_W = 20; 685 686 /** Java VM opcode. 687 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iload"> 688 * Opcode definitions in The Java Virtual Machine Specification</a> */ 689 public static final short ILOAD = 21; 690 691 /** Java VM opcode. 692 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lload"> 693 * Opcode definitions in The Java Virtual Machine Specification</a> */ 694 public static final short LLOAD = 22; 695 696 /** Java VM opcode. 697 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fload"> 698 * Opcode definitions in The Java Virtual Machine Specification</a> */ 699 public static final short FLOAD = 23; 700 701 /** Java VM opcode. 702 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dload"> 703 * Opcode definitions in The Java Virtual Machine Specification</a> */ 704 public static final short DLOAD = 24; 705 706 /** Java VM opcode. 707 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.aload"> 708 * Opcode definitions in The Java Virtual Machine Specification</a> */ 709 public static final short ALOAD = 25; 710 711 /** Java VM opcode. 712 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iload_n"> 713 * Opcode definitions in The Java Virtual Machine Specification</a> */ 714 public static final short ILOAD_0 = 26; 715 716 /** Java VM opcode. 717 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iload_n"> 718 * Opcode definitions in The Java Virtual Machine Specification</a> */ 719 public static final short ILOAD_1 = 27; 720 721 /** Java VM opcode. 722 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iload_n"> 723 * Opcode definitions in The Java Virtual Machine Specification</a> */ 724 public static final short ILOAD_2 = 28; 725 726 /** Java VM opcode. 727 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iload_n"> 728 * Opcode definitions in The Java Virtual Machine Specification</a> */ 729 public static final short ILOAD_3 = 29; 730 731 /** Java VM opcode. 732 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lload_n"> 733 * Opcode definitions in The Java Virtual Machine Specification</a> */ 734 public static final short LLOAD_0 = 30; 735 736 /** Java VM opcode. 737 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lload_n"> 738 * Opcode definitions in The Java Virtual Machine Specification</a> */ 739 public static final short LLOAD_1 = 31; 740 741 /** Java VM opcode. 742 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lload_n"> 743 * Opcode definitions in The Java Virtual Machine Specification</a> */ 744 public static final short LLOAD_2 = 32; 745 746 /** Java VM opcode. 747 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lload_n"> 748 * Opcode definitions in The Java Virtual Machine Specification</a> */ 749 public static final short LLOAD_3 = 33; 750 751 /** Java VM opcode. 752 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fload_n"> 753 * Opcode definitions in The Java Virtual Machine Specification</a> */ 754 public static final short FLOAD_0 = 34; 755 756 /** Java VM opcode. 757 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fload_n"> 758 * Opcode definitions in The Java Virtual Machine Specification</a> */ 759 public static final short FLOAD_1 = 35; 760 761 /** Java VM opcode. 762 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fload_n"> 763 * Opcode definitions in The Java Virtual Machine Specification</a> */ 764 public static final short FLOAD_2 = 36; 765 766 /** Java VM opcode. 767 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fload_n"> 768 * Opcode definitions in The Java Virtual Machine Specification</a> */ 769 public static final short FLOAD_3 = 37; 770 771 /** Java VM opcode. 772 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dload_n"> 773 * Opcode definitions in The Java Virtual Machine Specification</a> */ 774 public static final short DLOAD_0 = 38; 775 776 /** Java VM opcode. 777 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dload_n"> 778 * Opcode definitions in The Java Virtual Machine Specification</a> */ 779 public static final short DLOAD_1 = 39; 780 781 /** Java VM opcode. 782 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dload_n"> 783 * Opcode definitions in The Java Virtual Machine Specification</a> */ 784 public static final short DLOAD_2 = 40; 785 786 /** Java VM opcode. 787 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dload_n"> 788 * Opcode definitions in The Java Virtual Machine Specification</a> */ 789 public static final short DLOAD_3 = 41; 790 791 /** Java VM opcode. 792 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.aload_n"> 793 * Opcode definitions in The Java Virtual Machine Specification</a> */ 794 public static final short ALOAD_0 = 42; 795 796 /** Java VM opcode. 797 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.aload_n"> 798 * Opcode definitions in The Java Virtual Machine Specification</a> */ 799 public static final short ALOAD_1 = 43; 800 801 /** Java VM opcode. 802 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.aload_n"> 803 * Opcode definitions in The Java Virtual Machine Specification</a> */ 804 public static final short ALOAD_2 = 44; 805 806 /** Java VM opcode. 807 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.aload_n"> 808 * Opcode definitions in The Java Virtual Machine Specification</a> */ 809 public static final short ALOAD_3 = 45; 810 811 /** Java VM opcode. 812 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iaload"> 813 * Opcode definitions in The Java Virtual Machine Specification</a> */ 814 public static final short IALOAD = 46; 815 816 /** Java VM opcode. 817 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.laload"> 818 * Opcode definitions in The Java Virtual Machine Specification</a> */ 819 public static final short LALOAD = 47; 820 821 /** Java VM opcode. 822 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.faload"> 823 * Opcode definitions in The Java Virtual Machine Specification</a> */ 824 public static final short FALOAD = 48; 825 826 /** Java VM opcode. 827 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.daload"> 828 * Opcode definitions in The Java Virtual Machine Specification</a> */ 829 public static final short DALOAD = 49; 830 831 /** Java VM opcode. 832 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.aaload"> 833 * Opcode definitions in The Java Virtual Machine Specification</a> */ 834 public static final short AALOAD = 50; 835 836 /** Java VM opcode. 837 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.baload"> 838 * Opcode definitions in The Java Virtual Machine Specification</a> */ 839 public static final short BALOAD = 51; 840 841 /** Java VM opcode. 842 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.caload"> 843 * Opcode definitions in The Java Virtual Machine Specification</a> */ 844 public static final short CALOAD = 52; 845 846 /** Java VM opcode. 847 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.saload"> 848 * Opcode definitions in The Java Virtual Machine Specification</a> */ 849 public static final short SALOAD = 53; 850 851 /** Java VM opcode. 852 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.istore"> 853 * Opcode definitions in The Java Virtual Machine Specification</a> */ 854 public static final short ISTORE = 54; 855 856 /** Java VM opcode. 857 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lstore"> 858 * Opcode definitions in The Java Virtual Machine Specification</a> */ 859 public static final short LSTORE = 55; 860 861 /** Java VM opcode. 862 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fstore"> 863 * Opcode definitions in The Java Virtual Machine Specification</a> */ 864 public static final short FSTORE = 56; 865 866 /** Java VM opcode. 867 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dstore"> 868 * Opcode definitions in The Java Virtual Machine Specification</a> */ 869 public static final short DSTORE = 57; 870 871 /** Java VM opcode. 872 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.astore"> 873 * Opcode definitions in The Java Virtual Machine Specification</a> */ 874 public static final short ASTORE = 58; 875 876 /** Java VM opcode. 877 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.istore_n"> 878 * Opcode definitions in The Java Virtual Machine Specification</a> */ 879 public static final short ISTORE_0 = 59; 880 881 /** Java VM opcode. 882 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.istore_n"> 883 * Opcode definitions in The Java Virtual Machine Specification</a> */ 884 public static final short ISTORE_1 = 60; 885 886 /** Java VM opcode. 887 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.istore_n"> 888 * Opcode definitions in The Java Virtual Machine Specification</a> */ 889 public static final short ISTORE_2 = 61; 890 891 /** Java VM opcode. 892 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.istore_n"> 893 * Opcode definitions in The Java Virtual Machine Specification</a> */ 894 public static final short ISTORE_3 = 62; 895 896 /** Java VM opcode. 897 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lstore_n"> 898 * Opcode definitions in The Java Virtual Machine Specification</a> */ 899 public static final short LSTORE_0 = 63; 900 901 /** Java VM opcode. 902 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lstore_n"> 903 * Opcode definitions in The Java Virtual Machine Specification</a> */ 904 public static final short LSTORE_1 = 64; 905 906 /** Java VM opcode. 907 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lstore_n"> 908 * Opcode definitions in The Java Virtual Machine Specification</a> */ 909 public static final short LSTORE_2 = 65; 910 911 /** Java VM opcode. 912 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lstore_n"> 913 * Opcode definitions in The Java Virtual Machine Specification</a> */ 914 public static final short LSTORE_3 = 66; 915 916 /** Java VM opcode. 917 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fstore_n"> 918 * Opcode definitions in The Java Virtual Machine Specification</a> */ 919 public static final short FSTORE_0 = 67; 920 921 /** Java VM opcode. 922 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fstore_n"> 923 * Opcode definitions in The Java Virtual Machine Specification</a> */ 924 public static final short FSTORE_1 = 68; 925 926 /** Java VM opcode. 927 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fstore_n"> 928 * Opcode definitions in The Java Virtual Machine Specification</a> */ 929 public static final short FSTORE_2 = 69; 930 931 /** Java VM opcode. 932 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fstore_n"> 933 * Opcode definitions in The Java Virtual Machine Specification</a> */ 934 public static final short FSTORE_3 = 70; 935 936 /** Java VM opcode. 937 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dstore_n"> 938 * Opcode definitions in The Java Virtual Machine Specification</a> */ 939 public static final short DSTORE_0 = 71; 940 941 /** Java VM opcode. 942 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dstore_n"> 943 * Opcode definitions in The Java Virtual Machine Specification</a> */ 944 public static final short DSTORE_1 = 72; 945 946 /** Java VM opcode. 947 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dstore_n"> 948 * Opcode definitions in The Java Virtual Machine Specification</a> */ 949 public static final short DSTORE_2 = 73; 950 951 /** Java VM opcode. 952 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dstore_n"> 953 * Opcode definitions in The Java Virtual Machine Specification</a> */ 954 public static final short DSTORE_3 = 74; 955 956 /** Java VM opcode. 957 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.astore_n"> 958 * Opcode definitions in The Java Virtual Machine Specification</a> */ 959 public static final short ASTORE_0 = 75; 960 961 /** Java VM opcode. 962 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.astore_n"> 963 * Opcode definitions in The Java Virtual Machine Specification</a> */ 964 public static final short ASTORE_1 = 76; 965 966 /** Java VM opcode. 967 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.astore_n"> 968 * Opcode definitions in The Java Virtual Machine Specification</a> */ 969 public static final short ASTORE_2 = 77; 970 971 /** Java VM opcode. 972 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.astore_n"> 973 * Opcode definitions in The Java Virtual Machine Specification</a> */ 974 public static final short ASTORE_3 = 78; 975 976 /** Java VM opcode. 977 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iastore"> 978 * Opcode definitions in The Java Virtual Machine Specification</a> */ 979 public static final short IASTORE = 79; 980 981 /** Java VM opcode. 982 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lastore"> 983 * Opcode definitions in The Java Virtual Machine Specification</a> */ 984 public static final short LASTORE = 80; 985 986 /** Java VM opcode. 987 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fastore"> 988 * Opcode definitions in The Java Virtual Machine Specification</a> */ 989 public static final short FASTORE = 81; 990 991 /** Java VM opcode. 992 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dastore"> 993 * Opcode definitions in The Java Virtual Machine Specification</a> */ 994 public static final short DASTORE = 82; 995 996 /** Java VM opcode. 997 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.aastore"> 998 * Opcode definitions in The Java Virtual Machine Specification</a> */ 999 public static final short AASTORE = 83; 1000 1001 /** Java VM opcode. 1002 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.bastore"> 1003 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1004 public static final short BASTORE = 84; 1005 1006 /** Java VM opcode. 1007 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.castore"> 1008 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1009 public static final short CASTORE = 85; 1010 1011 /** Java VM opcode. 1012 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.sastore"> 1013 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1014 public static final short SASTORE = 86; 1015 1016 /** Java VM opcode. 1017 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.pop"> 1018 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1019 public static final short POP = 87; 1020 1021 /** Java VM opcode. 1022 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.pop2"> 1023 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1024 public static final short POP2 = 88; 1025 1026 /** Java VM opcode. 1027 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dup"> 1028 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1029 public static final short DUP = 89; 1030 1031 /** Java VM opcode. 1032 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dup_x1"> 1033 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1034 public static final short DUP_X1 = 90; 1035 1036 /** Java VM opcode. 1037 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dup_x2"> 1038 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1039 public static final short DUP_X2 = 91; 1040 1041 /** Java VM opcode. 1042 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dup2"> 1043 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1044 public static final short DUP2 = 92; 1045 1046 /** Java VM opcode. 1047 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dup2_x1"> 1048 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1049 public static final short DUP2_X1 = 93; 1050 1051 /** Java VM opcode. 1052 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dup2_x2"> 1053 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1054 public static final short DUP2_X2 = 94; 1055 1056 /** Java VM opcode. 1057 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.swap"> 1058 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1059 public static final short SWAP = 95; 1060 1061 /** Java VM opcode. 1062 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iadd"> 1063 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1064 public static final short IADD = 96; 1065 1066 /** Java VM opcode. 1067 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ladd"> 1068 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1069 public static final short LADD = 97; 1070 1071 /** Java VM opcode. 1072 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fadd"> 1073 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1074 public static final short FADD = 98; 1075 1076 /** Java VM opcode. 1077 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dadd"> 1078 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1079 public static final short DADD = 99; 1080 1081 /** Java VM opcode. 1082 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.isub"> 1083 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1084 public static final short ISUB = 100; 1085 1086 /** Java VM opcode. 1087 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lsub"> 1088 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1089 public static final short LSUB = 101; 1090 1091 /** Java VM opcode. 1092 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fsub"> 1093 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1094 public static final short FSUB = 102; 1095 1096 /** Java VM opcode. 1097 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dsub"> 1098 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1099 public static final short DSUB = 103; 1100 1101 /** Java VM opcode. 1102 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.imul"> 1103 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1104 public static final short IMUL = 104; 1105 1106 /** Java VM opcode. 1107 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lmul"> 1108 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1109 public static final short LMUL = 105; 1110 1111 /** Java VM opcode. 1112 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fmul"> 1113 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1114 public static final short FMUL = 106; 1115 1116 /** Java VM opcode. 1117 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dmul"> 1118 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1119 public static final short DMUL = 107; 1120 1121 /** Java VM opcode. 1122 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.idiv"> 1123 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1124 public static final short IDIV = 108; 1125 1126 /** Java VM opcode. 1127 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ldiv"> 1128 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1129 public static final short LDIV = 109; 1130 1131 /** Java VM opcode. 1132 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fdiv"> 1133 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1134 public static final short FDIV = 110; 1135 1136 /** Java VM opcode. 1137 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ddiv"> 1138 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1139 public static final short DDIV = 111; 1140 1141 /** Java VM opcode. 1142 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.irem"> 1143 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1144 public static final short IREM = 112; 1145 1146 /** Java VM opcode. 1147 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lrem"> 1148 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1149 public static final short LREM = 113; 1150 1151 /** Java VM opcode. 1152 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.frem"> 1153 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1154 public static final short FREM = 114; 1155 1156 /** Java VM opcode. 1157 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.drem"> 1158 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1159 public static final short DREM = 115; 1160 1161 /** Java VM opcode. 1162 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ineg"> 1163 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1164 public static final short INEG = 116; 1165 1166 /** Java VM opcode. 1167 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lneg"> 1168 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1169 public static final short LNEG = 117; 1170 1171 /** Java VM opcode. 1172 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fneg"> 1173 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1174 public static final short FNEG = 118; 1175 1176 /** Java VM opcode. 1177 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dneg"> 1178 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1179 public static final short DNEG = 119; 1180 1181 /** Java VM opcode. 1182 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ishl"> 1183 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1184 public static final short ISHL = 120; 1185 1186 /** Java VM opcode. 1187 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lshl"> 1188 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1189 public static final short LSHL = 121; 1190 1191 /** Java VM opcode. 1192 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ishr"> 1193 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1194 public static final short ISHR = 122; 1195 1196 /** Java VM opcode. 1197 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lshr"> 1198 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1199 public static final short LSHR = 123; 1200 1201 /** Java VM opcode. 1202 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iushr"> 1203 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1204 public static final short IUSHR = 124; 1205 1206 /** Java VM opcode. 1207 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lushr"> 1208 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1209 public static final short LUSHR = 125; 1210 1211 /** Java VM opcode. 1212 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iand"> 1213 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1214 public static final short IAND = 126; 1215 1216 /** Java VM opcode. 1217 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.land"> 1218 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1219 public static final short LAND = 127; 1220 1221 /** Java VM opcode. 1222 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ior"> 1223 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1224 public static final short IOR = 128; 1225 1226 /** Java VM opcode. 1227 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lor"> 1228 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1229 public static final short LOR = 129; 1230 1231 /** Java VM opcode. 1232 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ixor"> 1233 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1234 public static final short IXOR = 130; 1235 1236 /** Java VM opcode. 1237 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lxor"> 1238 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1239 public static final short LXOR = 131; 1240 1241 /** Java VM opcode. 1242 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iinc"> 1243 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1244 public static final short IINC = 132; 1245 1246 /** Java VM opcode. 1247 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.i2l"> 1248 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1249 public static final short I2L = 133; 1250 1251 /** Java VM opcode. 1252 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.i2f"> 1253 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1254 public static final short I2F = 134; 1255 1256 /** Java VM opcode. 1257 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.i2d"> 1258 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1259 public static final short I2D = 135; 1260 1261 /** Java VM opcode. 1262 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.l2i"> 1263 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1264 public static final short L2I = 136; 1265 1266 /** Java VM opcode. 1267 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.l2f"> 1268 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1269 public static final short L2F = 137; 1270 1271 /** Java VM opcode. 1272 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.l2d"> 1273 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1274 public static final short L2D = 138; 1275 1276 /** Java VM opcode. 1277 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.f2i"> 1278 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1279 public static final short F2I = 139; 1280 1281 /** Java VM opcode. 1282 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.f2l"> 1283 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1284 public static final short F2L = 140; 1285 1286 /** Java VM opcode. 1287 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.f2d"> 1288 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1289 public static final short F2D = 141; 1290 1291 /** Java VM opcode. 1292 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.d2i"> 1293 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1294 public static final short D2I = 142; 1295 1296 /** Java VM opcode. 1297 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.d2l"> 1298 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1299 public static final short D2L = 143; 1300 1301 /** Java VM opcode. 1302 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.d2f"> 1303 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1304 public static final short D2F = 144; 1305 1306 /** Java VM opcode. 1307 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.i2b"> 1308 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1309 public static final short I2B = 145; 1310 1311 /** Java VM opcode. 1312 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 1313 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1314 public static final short INT2BYTE = 145; // Old notation 1315 1316 /** Java VM opcode. 1317 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.i2c"> 1318 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1319 public static final short I2C = 146; 1320 1321 /** Java VM opcode. 1322 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 1323 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1324 public static final short INT2CHAR = 146; // Old notation 1325 1326 /** Java VM opcode. 1327 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.i2s"> 1328 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1329 public static final short I2S = 147; 1330 1331 /** Java VM opcode. 1332 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 1333 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1334 public static final short INT2SHORT = 147; // Old notation 1335 1336 /** Java VM opcode. 1337 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lcmp"> 1338 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1339 public static final short LCMP = 148; 1340 1341 /** Java VM opcode. 1342 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fcmpl"> 1343 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1344 public static final short FCMPL = 149; 1345 1346 /** Java VM opcode. 1347 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.fcmpg"> 1348 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1349 public static final short FCMPG = 150; 1350 1351 /** Java VM opcode. 1352 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dcmpl"> 1353 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1354 public static final short DCMPL = 151; 1355 1356 /** Java VM opcode. 1357 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dcmpg"> 1358 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1359 public static final short DCMPG = 152; 1360 1361 /** Java VM opcode. 1362 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ifeq"> 1363 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1364 public static final short IFEQ = 153; 1365 1366 /** Java VM opcode. 1367 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ifne"> 1368 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1369 public static final short IFNE = 154; 1370 1371 /** Java VM opcode. 1372 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.iflt"> 1373 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1374 public static final short IFLT = 155; 1375 1376 /** Java VM opcode. 1377 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ifge"> 1378 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1379 public static final short IFGE = 156; 1380 1381 /** Java VM opcode. 1382 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ifgt"> 1383 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1384 public static final short IFGT = 157; 1385 1386 /** Java VM opcode. 1387 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ifle"> 1388 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1389 public static final short IFLE = 158; 1390 1391 /** Java VM opcode. 1392 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.if_icmp_cond"> 1393 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1394 public static final short IF_ICMPEQ = 159; 1395 1396 /** Java VM opcode. 1397 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.if_icmp_cond"> 1398 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1399 public static final short IF_ICMPNE = 160; 1400 1401 /** Java VM opcode. 1402 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.if_icmp_cond"> 1403 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1404 public static final short IF_ICMPLT = 161; 1405 1406 /** Java VM opcode. 1407 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.if_icmp_cond"> 1408 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1409 public static final short IF_ICMPGE = 162; 1410 1411 /** Java VM opcode. 1412 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.if_icmp_cond"> 1413 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1414 public static final short IF_ICMPGT = 163; 1415 1416 /** Java VM opcode. 1417 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.if_icmp_cond"> 1418 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1419 public static final short IF_ICMPLE = 164; 1420 1421 /** Java VM opcode. 1422 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.if_acmp_cond"> 1423 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1424 public static final short IF_ACMPEQ = 165; 1425 1426 /** Java VM opcode. 1427 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.if_acmp_cond"> 1428 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1429 public static final short IF_ACMPNE = 166; 1430 1431 /** Java VM opcode. 1432 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.goto"> 1433 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1434 public static final short GOTO = 167; 1435 1436 /** Java VM opcode. 1437 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.jsr"> 1438 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1439 public static final short JSR = 168; 1440 1441 /** Java VM opcode. 1442 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ret"> 1443 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1444 public static final short RET = 169; 1445 1446 /** Java VM opcode. 1447 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.tableswitch"> 1448 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1449 public static final short TABLESWITCH = 170; 1450 1451 /** Java VM opcode. 1452 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lookupswitch"> 1453 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1454 public static final short LOOKUPSWITCH = 171; 1455 1456 /** Java VM opcode. 1457 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ireturn"> 1458 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1459 public static final short IRETURN = 172; 1460 1461 /** Java VM opcode. 1462 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.lreturn"> 1463 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1464 public static final short LRETURN = 173; 1465 1466 /** Java VM opcode. 1467 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.freturn"> 1468 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1469 public static final short FRETURN = 174; 1470 1471 /** Java VM opcode. 1472 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.dreturn"> 1473 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1474 public static final short DRETURN = 175; 1475 1476 /** Java VM opcode. 1477 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.areturn"> 1478 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1479 public static final short ARETURN = 176; 1480 1481 /** Java VM opcode. 1482 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.return"> 1483 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1484 public static final short RETURN = 177; 1485 1486 /** Java VM opcode. 1487 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.getstatic"> 1488 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1489 public static final short GETSTATIC = 178; 1490 1491 /** Java VM opcode. 1492 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.putstatic"> 1493 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1494 public static final short PUTSTATIC = 179; 1495 1496 /** Java VM opcode. 1497 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.getfield"> 1498 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1499 public static final short GETFIELD = 180; 1500 1501 /** Java VM opcode. 1502 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.putfield"> 1503 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1504 public static final short PUTFIELD = 181; 1505 1506 /** Java VM opcode. 1507 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.invokevirtual"> 1508 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1509 public static final short INVOKEVIRTUAL = 182; 1510 1511 /** Java VM opcode. 1512 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.invokespecial"> 1513 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1514 public static final short INVOKESPECIAL = 183; 1515 1516 /** Java VM opcode. 1517 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 1518 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1519 public static final short INVOKENONVIRTUAL = 183; // Old name in JDK 1.0 1520 1521 /** Java VM opcode. 1522 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.invokestatic"> 1523 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1524 public static final short INVOKESTATIC = 184; 1525 1526 /** Java VM opcode. 1527 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.invokeinterface"> 1528 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1529 public static final short INVOKEINTERFACE = 185; 1530 1531 /** Java VM opcode. 1532 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.invokedynamic"> 1533 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1534 public static final short INVOKEDYNAMIC = 186; 1535 1536 /** Java VM opcode. 1537 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.new"> 1538 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1539 public static final short NEW = 187; 1540 1541 /** Java VM opcode. 1542 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.newarray"> 1543 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1544 public static final short NEWARRAY = 188; 1545 1546 /** Java VM opcode. 1547 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.anewarray"> 1548 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1549 public static final short ANEWARRAY = 189; 1550 1551 /** Java VM opcode. 1552 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.arraylength"> 1553 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1554 public static final short ARRAYLENGTH = 190; 1555 1556 /** Java VM opcode. 1557 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.athrow"> 1558 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1559 public static final short ATHROW = 191; 1560 1561 /** Java VM opcode. 1562 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.checkcast"> 1563 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1564 public static final short CHECKCAST = 192; 1565 1566 /** Java VM opcode. 1567 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.instanceof"> 1568 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1569 public static final short INSTANCEOF = 193; 1570 1571 /** Java VM opcode. 1572 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.monitorenter"> 1573 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1574 public static final short MONITORENTER = 194; 1575 1576 /** Java VM opcode. 1577 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.monitorexit"> 1578 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1579 public static final short MONITOREXIT = 195; 1580 1581 /** Java VM opcode. 1582 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.wide"> 1583 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1584 public static final short WIDE = 196; 1585 1586 /** Java VM opcode. 1587 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.multianewarray"> 1588 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1589 public static final short MULTIANEWARRAY = 197; 1590 1591 /** Java VM opcode. 1592 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ifnull"> 1593 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1594 public static final short IFNULL = 198; 1595 1596 /** Java VM opcode. 1597 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ifnonnull"> 1598 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1599 public static final short IFNONNULL = 199; 1600 1601 /** Java VM opcode. 1602 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.goto_w"> 1603 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1604 public static final short GOTO_W = 200; 1605 1606 /** Java VM opcode. 1607 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.jsr_w"> 1608 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1609 public static final short JSR_W = 201; 1610 1611 /** JVM internal opcode. 1612 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.2"> 1613 * Reserved opcodes in the Java Virtual Machine Specification</a> */ 1614 public static final short BREAKPOINT = 202; 1615 1616 /** JVM internal opcode. 1617 * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html"> 1618 * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a> 1619 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> 1620 * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */ 1621 public static final short LDC_QUICK = 203; 1622 1623 /** JVM internal opcode. 1624 * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html"> 1625 * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a> 1626 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> 1627 * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */ 1628 public static final short LDC_W_QUICK = 204; 1629 1630 /** JVM internal opcode. 1631 * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html"> 1632 * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a> 1633 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> 1634 * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */ 1635 public static final short LDC2_W_QUICK = 205; 1636 1637 /** JVM internal opcode. 1638 * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html"> 1639 * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a> 1640 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> 1641 * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */ 1642 public static final short GETFIELD_QUICK = 206; 1643 1644 /** JVM internal opcode. 1645 * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html"> 1646 * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a> 1647 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> 1648 * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */ 1649 public static final short PUTFIELD_QUICK = 207; 1650 1651 /** JVM internal opcode. 1652 * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html"> 1653 * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a> 1654 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> 1655 * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */ 1656 public static final short GETFIELD2_QUICK = 208; 1657 1658 /** JVM internal opcode. 1659 * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html"> 1660 * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a> 1661 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> 1662 * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */ 1663 public static final short PUTFIELD2_QUICK = 209; 1664 1665 /** JVM internal opcode. 1666 * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html"> 1667 * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a> 1668 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> 1669 * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */ 1670 public static final short GETSTATIC_QUICK = 210; 1671 1672 /** JVM internal opcode. 1673 * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html"> 1674 * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a> 1675 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> 1676 * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */ 1677 public static final short PUTSTATIC_QUICK = 211; 1678 1679 /** JVM internal opcode. 1680 * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html"> 1681 * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a> 1682 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> 1683 * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */ 1684 public static final short GETSTATIC2_QUICK = 212; 1685 1686 /** JVM internal opcode. 1687 * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html"> 1688 * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a> 1689 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> 1690 * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */ 1691 public static final short PUTSTATIC2_QUICK = 213; 1692 1693 /** JVM internal opcode. 1694 * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html"> 1695 * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a> 1696 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> 1697 * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */ 1698 public static final short INVOKEVIRTUAL_QUICK = 214; 1699 1700 /** JVM internal opcode. 1701 * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html"> 1702 * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a> 1703 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> 1704 * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */ 1705 public static final short INVOKENONVIRTUAL_QUICK = 215; 1706 1707 /** JVM internal opcode. 1708 * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html"> 1709 * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a> 1710 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> 1711 * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */ 1712 public static final short INVOKESUPER_QUICK = 216; 1713 1714 /** JVM internal opcode. 1715 * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html"> 1716 * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a> 1717 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> 1718 * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */ 1719 public static final short INVOKESTATIC_QUICK = 217; 1720 1721 /** JVM internal opcode. 1722 * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html"> 1723 * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a> 1724 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> 1725 * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */ 1726 public static final short INVOKEINTERFACE_QUICK = 218; 1727 1728 /** JVM internal opcode. 1729 * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html"> 1730 * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a> 1731 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> 1732 * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */ 1733 public static final short INVOKEVIRTUALOBJECT_QUICK = 219; 1734 1735 /** JVM internal opcode. 1736 * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html"> 1737 * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a> 1738 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> 1739 * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */ 1740 public static final short NEW_QUICK = 221; 1741 1742 /** JVM internal opcode. 1743 * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html"> 1744 * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a> 1745 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> 1746 * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */ 1747 public static final short ANEWARRAY_QUICK = 222; 1748 1749 /** JVM internal opcode. 1750 * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html"> 1751 * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a> 1752 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> 1753 * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */ 1754 public static final short MULTIANEWARRAY_QUICK = 223; 1755 1756 /** JVM internal opcode. 1757 * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html"> 1758 * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a> 1759 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> 1760 * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */ 1761 public static final short CHECKCAST_QUICK = 224; 1762 1763 /** JVM internal opcode. 1764 * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html"> 1765 * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a> 1766 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> 1767 * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */ 1768 public static final short INSTANCEOF_QUICK = 225; 1769 1770 /** JVM internal opcode. 1771 * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html"> 1772 * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a> 1773 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> 1774 * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */ 1775 public static final short INVOKEVIRTUAL_QUICK_W = 226; 1776 1777 /** JVM internal opcode. 1778 * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html"> 1779 * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a> 1780 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> 1781 * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */ 1782 public static final short GETFIELD_QUICK_W = 227; 1783 1784 /** JVM internal opcode. 1785 * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html"> 1786 * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a> 1787 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> 1788 * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */ 1789 public static final short PUTFIELD_QUICK_W = 228; 1790 1791 /** JVM internal opcode. 1792 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.2"> 1793 * Reserved opcodes in the Java Virtual Machine Specification</a> */ 1794 public static final short IMPDEP1 = 254; 1795 1796 /** JVM internal opcode. 1797 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.2"> 1798 * Reserved opcodes in the Java Virtual Machine Specification</a> */ 1799 public static final short IMPDEP2 = 255; 1800 1801 /** 1802 * BCEL virtual instruction for pushing an arbitrary data type onto the stack. Will be converted to the appropriate JVM 1803 * opcode when the class is dumped. 1804 */ 1805 public static final short PUSH = 4711; 1806 1807 /** 1808 * BCEL virtual instruction for either LOOKUPSWITCH or TABLESWITCH. Will be converted to the appropriate JVM 1809 * opcode when the class is dumped. 1810 */ 1811 public static final short SWITCH = 4712; 1812 1813 /** Illegal opcode. */ 1814 public static final short UNDEFINED = -1; 1815 1816 /** Illegal opcode. */ 1817 public static final short UNPREDICTABLE = -2; 1818 1819 /** Illegal opcode. */ 1820 public static final short RESERVED = -3; 1821 1822 /** Mnemonic for an illegal opcode. */ 1823 public static final String ILLEGAL_OPCODE = "<illegal opcode>"; 1824 1825 /** Mnemonic for an illegal type. */ 1826 public static final String ILLEGAL_TYPE = "<illegal type>"; 1827 1828 /** Boolean data type. 1829 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.9.1-120-P"> 1830 * Static Constraints in the Java Virtual Machine Specification</a> */ 1831 public static final byte T_BOOLEAN = 4; 1832 1833 /** Char data type. 1834 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.9.1-120-P"> 1835 * Static Constraints in the Java Virtual Machine Specification</a> */ 1836 public static final byte T_CHAR = 5; 1837 1838 /** Float data type. 1839 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.9.1-120-P"> 1840 * Static Constraints in the Java Virtual Machine Specification</a> */ 1841 public static final byte T_FLOAT = 6; 1842 1843 /** Double data type. 1844 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.9.1-120-P"> 1845 * Static Constraints in the Java Virtual Machine Specification</a> */ 1846 public static final byte T_DOUBLE = 7; 1847 1848 /** Byte data type. 1849 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.9.1-120-P"> 1850 * Static Constraints in the Java Virtual Machine Specification</a> */ 1851 public static final byte T_BYTE = 8; 1852 1853 /** Short data type. 1854 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.9.1-120-P"> 1855 * Static Constraints in the Java Virtual Machine Specification</a> */ 1856 public static final byte T_SHORT = 9; 1857 1858 /** Int data type. 1859 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.9.1-120-P"> 1860 * Static Constraints in the Java Virtual Machine Specification</a> */ 1861 public static final byte T_INT = 10; 1862 1863 /** Long data type. 1864 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.9.1-120-P"> 1865 * Static Constraints in the Java Virtual Machine Specification</a> */ 1866 public static final byte T_LONG = 11; 1867 1868 /** Void data type (non-standard). */ 1869 public static final byte T_VOID = 12; // Non-standard 1870 1871 /** Array data type. */ 1872 public static final byte T_ARRAY = 13; 1873 1874 /** Object data type. */ 1875 public static final byte T_OBJECT = 14; 1876 1877 /** Reference data type (deprecated). */ 1878 public static final byte T_REFERENCE = 14; // Deprecated 1879 1880 /** Unknown data type. */ 1881 public static final byte T_UNKNOWN = 15; 1882 1883 /** Address data type. */ 1884 public static final byte T_ADDRESS = 16; 1885 1886 /** The primitive type names corresponding to the T_XX constants, 1887 * e.g., TYPE_NAMES[T_INT] = "int" 1888 */ 1889 private static final String[] TYPE_NAMES = { 1890 ILLEGAL_TYPE, ILLEGAL_TYPE, ILLEGAL_TYPE, ILLEGAL_TYPE, 1891 "boolean", "char", "float", "double", "byte", "short", "int", "long", 1892 "void", "array", "object", "unknown", "address" 1893 }; 1894 1895 /** 1896 * The primitive type names corresponding to the T_XX constants, 1897 * e.g., TYPE_NAMES[T_INT] = "int" 1898 * @param index 1899 * @return the type name 1900 * @since 6.0 1901 */ getTypeName(final int index)1902 public static String getTypeName(final int index) { 1903 return TYPE_NAMES[index]; 1904 } 1905 1906 /** The primitive class names corresponding to the T_XX constants, 1907 * e.g., CLASS_TYPE_NAMES[T_INT] = "java.lang.Integer" 1908 */ 1909 private static final String[] CLASS_TYPE_NAMES = { 1910 ILLEGAL_TYPE, ILLEGAL_TYPE, ILLEGAL_TYPE, ILLEGAL_TYPE, 1911 "java.lang.Boolean", "java.lang.Character", "java.lang.Float", 1912 "java.lang.Double", "java.lang.Byte", "java.lang.Short", 1913 "java.lang.Integer", "java.lang.Long", "java.lang.Void", 1914 ILLEGAL_TYPE, ILLEGAL_TYPE, ILLEGAL_TYPE, ILLEGAL_TYPE 1915 }; 1916 1917 /** 1918 * The primitive class names corresponding to the T_XX constants, 1919 * e.g., CLASS_TYPE_NAMES[T_INT] = "java.lang.Integer" 1920 * @param index 1921 * @return the class name 1922 * @since 6.0 1923 */ getClassTypeName(final int index)1924 public static String getClassTypeName(final int index) { 1925 return CLASS_TYPE_NAMES[index]; 1926 } 1927 1928 /** The signature characters corresponding to primitive types, 1929 * e.g., SHORT_TYPE_NAMES[T_INT] = "I" 1930 */ 1931 private static final String[] SHORT_TYPE_NAMES = { 1932 ILLEGAL_TYPE, ILLEGAL_TYPE, ILLEGAL_TYPE, ILLEGAL_TYPE, 1933 "Z", "C", "F", "D", "B", "S", "I", "J", 1934 "V", ILLEGAL_TYPE, ILLEGAL_TYPE, ILLEGAL_TYPE 1935 }; 1936 1937 /** 1938 * 1939 * @param index 1940 * @return the short type name 1941 * @since 6.0 1942 */ getShortTypeName(final int index)1943 public static String getShortTypeName(final int index) { 1944 return SHORT_TYPE_NAMES[index]; 1945 } 1946 1947 1948 /** 1949 * Number of byte code operands for each opcode, i.e., number of bytes after the tag byte 1950 * itself. Indexed by opcode, so NO_OF_OPERANDS[BIPUSH] = the number of operands for a bipush 1951 * instruction. 1952 */ 1953 private static final short[] NO_OF_OPERANDS = { 1954 0/*nop*/, 0/*aconst_null*/, 0/*iconst_m1*/, 0/*iconst_0*/, 1955 0/*iconst_1*/, 0/*iconst_2*/, 0/*iconst_3*/, 0/*iconst_4*/, 1956 0/*iconst_5*/, 0/*lconst_0*/, 0/*lconst_1*/, 0/*fconst_0*/, 1957 0/*fconst_1*/, 0/*fconst_2*/, 0/*dconst_0*/, 0/*dconst_1*/, 1958 1/*bipush*/, 2/*sipush*/, 1/*ldc*/, 2/*ldc_w*/, 2/*ldc2_w*/, 1959 1/*iload*/, 1/*lload*/, 1/*fload*/, 1/*dload*/, 1/*aload*/, 1960 0/*iload_0*/, 0/*iload_1*/, 0/*iload_2*/, 0/*iload_3*/, 1961 0/*lload_0*/, 0/*lload_1*/, 0/*lload_2*/, 0/*lload_3*/, 1962 0/*fload_0*/, 0/*fload_1*/, 0/*fload_2*/, 0/*fload_3*/, 1963 0/*dload_0*/, 0/*dload_1*/, 0/*dload_2*/, 0/*dload_3*/, 1964 0/*aload_0*/, 0/*aload_1*/, 0/*aload_2*/, 0/*aload_3*/, 1965 0/*iaload*/, 0/*laload*/, 0/*faload*/, 0/*daload*/, 1966 0/*aaload*/, 0/*baload*/, 0/*caload*/, 0/*saload*/, 1967 1/*istore*/, 1/*lstore*/, 1/*fstore*/, 1/*dstore*/, 1968 1/*astore*/, 0/*istore_0*/, 0/*istore_1*/, 0/*istore_2*/, 1969 0/*istore_3*/, 0/*lstore_0*/, 0/*lstore_1*/, 0/*lstore_2*/, 1970 0/*lstore_3*/, 0/*fstore_0*/, 0/*fstore_1*/, 0/*fstore_2*/, 1971 0/*fstore_3*/, 0/*dstore_0*/, 0/*dstore_1*/, 0/*dstore_2*/, 1972 0/*dstore_3*/, 0/*astore_0*/, 0/*astore_1*/, 0/*astore_2*/, 1973 0/*astore_3*/, 0/*iastore*/, 0/*lastore*/, 0/*fastore*/, 1974 0/*dastore*/, 0/*aastore*/, 0/*bastore*/, 0/*castore*/, 1975 0/*sastore*/, 0/*pop*/, 0/*pop2*/, 0/*dup*/, 0/*dup_x1*/, 1976 0/*dup_x2*/, 0/*dup2*/, 0/*dup2_x1*/, 0/*dup2_x2*/, 0/*swap*/, 1977 0/*iadd*/, 0/*ladd*/, 0/*fadd*/, 0/*dadd*/, 0/*isub*/, 1978 0/*lsub*/, 0/*fsub*/, 0/*dsub*/, 0/*imul*/, 0/*lmul*/, 1979 0/*fmul*/, 0/*dmul*/, 0/*idiv*/, 0/*ldiv*/, 0/*fdiv*/, 1980 0/*ddiv*/, 0/*irem*/, 0/*lrem*/, 0/*frem*/, 0/*drem*/, 1981 0/*ineg*/, 0/*lneg*/, 0/*fneg*/, 0/*dneg*/, 0/*ishl*/, 1982 0/*lshl*/, 0/*ishr*/, 0/*lshr*/, 0/*iushr*/, 0/*lushr*/, 1983 0/*iand*/, 0/*land*/, 0/*ior*/, 0/*lor*/, 0/*ixor*/, 0/*lxor*/, 1984 2/*iinc*/, 0/*i2l*/, 0/*i2f*/, 0/*i2d*/, 0/*l2i*/, 0/*l2f*/, 1985 0/*l2d*/, 0/*f2i*/, 0/*f2l*/, 0/*f2d*/, 0/*d2i*/, 0/*d2l*/, 1986 0/*d2f*/, 0/*i2b*/, 0/*i2c*/, 0/*i2s*/, 0/*lcmp*/, 0/*fcmpl*/, 1987 0/*fcmpg*/, 0/*dcmpl*/, 0/*dcmpg*/, 2/*ifeq*/, 2/*ifne*/, 1988 2/*iflt*/, 2/*ifge*/, 2/*ifgt*/, 2/*ifle*/, 2/*if_icmpeq*/, 1989 2/*if_icmpne*/, 2/*if_icmplt*/, 2/*if_icmpge*/, 2/*if_icmpgt*/, 1990 2/*if_icmple*/, 2/*if_acmpeq*/, 2/*if_acmpne*/, 2/*goto*/, 1991 2/*jsr*/, 1/*ret*/, UNPREDICTABLE/*tableswitch*/, UNPREDICTABLE/*lookupswitch*/, 1992 0/*ireturn*/, 0/*lreturn*/, 0/*freturn*/, 1993 0/*dreturn*/, 0/*areturn*/, 0/*return*/, 1994 2/*getstatic*/, 2/*putstatic*/, 2/*getfield*/, 1995 2/*putfield*/, 2/*invokevirtual*/, 2/*invokespecial*/, 2/*invokestatic*/, 1996 4/*invokeinterface*/, 4/*invokedynamic*/, 2/*new*/, 1997 1/*newarray*/, 2/*anewarray*/, 1998 0/*arraylength*/, 0/*athrow*/, 2/*checkcast*/, 1999 2/*instanceof*/, 0/*monitorenter*/, 2000 0/*monitorexit*/, UNPREDICTABLE/*wide*/, 3/*multianewarray*/, 2001 2/*ifnull*/, 2/*ifnonnull*/, 4/*goto_w*/, 2002 4/*jsr_w*/, 0/*breakpoint*/, UNDEFINED, 2003 UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, 2004 UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, 2005 UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, 2006 UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, 2007 UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, 2008 UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, 2009 UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, 2010 UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, 2011 UNDEFINED, UNDEFINED, RESERVED/*impdep1*/, RESERVED/*impdep2*/ 2012 }; 2013 2014 /** 2015 * 2016 * @param index 2017 * @return Number of byte code operands 2018 * @since 6.0 2019 */ getNoOfOperands(final int index)2020 public static short getNoOfOperands(final int index) { 2021 return NO_OF_OPERANDS[index]; 2022 } 2023 2024 /** 2025 * How the byte code operands are to be interpreted for each opcode. 2026 * Indexed by opcode. TYPE_OF_OPERANDS[ILOAD] = an array of shorts 2027 * describing the data types for the instruction. 2028 */ 2029 private static final short[][] TYPE_OF_OPERANDS = { 2030 {}/*nop*/, {}/*aconst_null*/, {}/*iconst_m1*/, {}/*iconst_0*/, 2031 {}/*iconst_1*/, {}/*iconst_2*/, {}/*iconst_3*/, {}/*iconst_4*/, 2032 {}/*iconst_5*/, {}/*lconst_0*/, {}/*lconst_1*/, {}/*fconst_0*/, 2033 {}/*fconst_1*/, {}/*fconst_2*/, {}/*dconst_0*/, {}/*dconst_1*/, 2034 {T_BYTE}/*bipush*/, {T_SHORT}/*sipush*/, {T_BYTE}/*ldc*/, 2035 {T_SHORT}/*ldc_w*/, {T_SHORT}/*ldc2_w*/, 2036 {T_BYTE}/*iload*/, {T_BYTE}/*lload*/, {T_BYTE}/*fload*/, 2037 {T_BYTE}/*dload*/, {T_BYTE}/*aload*/, {}/*iload_0*/, 2038 {}/*iload_1*/, {}/*iload_2*/, {}/*iload_3*/, {}/*lload_0*/, 2039 {}/*lload_1*/, {}/*lload_2*/, {}/*lload_3*/, {}/*fload_0*/, 2040 {}/*fload_1*/, {}/*fload_2*/, {}/*fload_3*/, {}/*dload_0*/, 2041 {}/*dload_1*/, {}/*dload_2*/, {}/*dload_3*/, {}/*aload_0*/, 2042 {}/*aload_1*/, {}/*aload_2*/, {}/*aload_3*/, {}/*iaload*/, 2043 {}/*laload*/, {}/*faload*/, {}/*daload*/, {}/*aaload*/, 2044 {}/*baload*/, {}/*caload*/, {}/*saload*/, {T_BYTE}/*istore*/, 2045 {T_BYTE}/*lstore*/, {T_BYTE}/*fstore*/, {T_BYTE}/*dstore*/, 2046 {T_BYTE}/*astore*/, {}/*istore_0*/, {}/*istore_1*/, 2047 {}/*istore_2*/, {}/*istore_3*/, {}/*lstore_0*/, {}/*lstore_1*/, 2048 {}/*lstore_2*/, {}/*lstore_3*/, {}/*fstore_0*/, {}/*fstore_1*/, 2049 {}/*fstore_2*/, {}/*fstore_3*/, {}/*dstore_0*/, {}/*dstore_1*/, 2050 {}/*dstore_2*/, {}/*dstore_3*/, {}/*astore_0*/, {}/*astore_1*/, 2051 {}/*astore_2*/, {}/*astore_3*/, {}/*iastore*/, {}/*lastore*/, 2052 {}/*fastore*/, {}/*dastore*/, {}/*aastore*/, {}/*bastore*/, 2053 {}/*castore*/, {}/*sastore*/, {}/*pop*/, {}/*pop2*/, {}/*dup*/, 2054 {}/*dup_x1*/, {}/*dup_x2*/, {}/*dup2*/, {}/*dup2_x1*/, 2055 {}/*dup2_x2*/, {}/*swap*/, {}/*iadd*/, {}/*ladd*/, {}/*fadd*/, 2056 {}/*dadd*/, {}/*isub*/, {}/*lsub*/, {}/*fsub*/, {}/*dsub*/, 2057 {}/*imul*/, {}/*lmul*/, {}/*fmul*/, {}/*dmul*/, {}/*idiv*/, 2058 {}/*ldiv*/, {}/*fdiv*/, {}/*ddiv*/, {}/*irem*/, {}/*lrem*/, 2059 {}/*frem*/, {}/*drem*/, {}/*ineg*/, {}/*lneg*/, {}/*fneg*/, 2060 {}/*dneg*/, {}/*ishl*/, {}/*lshl*/, {}/*ishr*/, {}/*lshr*/, 2061 {}/*iushr*/, {}/*lushr*/, {}/*iand*/, {}/*land*/, {}/*ior*/, 2062 {}/*lor*/, {}/*ixor*/, {}/*lxor*/, {T_BYTE, T_BYTE}/*iinc*/, 2063 {}/*i2l*/, {}/*i2f*/, {}/*i2d*/, {}/*l2i*/, {}/*l2f*/, {}/*l2d*/, 2064 {}/*f2i*/, {}/*f2l*/, {}/*f2d*/, {}/*d2i*/, {}/*d2l*/, {}/*d2f*/, 2065 {}/*i2b*/, {}/*i2c*/, {}/*i2s*/, {}/*lcmp*/, {}/*fcmpl*/, 2066 {}/*fcmpg*/, {}/*dcmpl*/, {}/*dcmpg*/, {T_SHORT}/*ifeq*/, 2067 {T_SHORT}/*ifne*/, {T_SHORT}/*iflt*/, {T_SHORT}/*ifge*/, 2068 {T_SHORT}/*ifgt*/, {T_SHORT}/*ifle*/, {T_SHORT}/*if_icmpeq*/, 2069 {T_SHORT}/*if_icmpne*/, {T_SHORT}/*if_icmplt*/, 2070 {T_SHORT}/*if_icmpge*/, {T_SHORT}/*if_icmpgt*/, 2071 {T_SHORT}/*if_icmple*/, {T_SHORT}/*if_acmpeq*/, 2072 {T_SHORT}/*if_acmpne*/, {T_SHORT}/*goto*/, {T_SHORT}/*jsr*/, 2073 {T_BYTE}/*ret*/, {}/*tableswitch*/, {}/*lookupswitch*/, 2074 {}/*ireturn*/, {}/*lreturn*/, {}/*freturn*/, {}/*dreturn*/, 2075 {}/*areturn*/, {}/*return*/, {T_SHORT}/*getstatic*/, 2076 {T_SHORT}/*putstatic*/, {T_SHORT}/*getfield*/, 2077 {T_SHORT}/*putfield*/, {T_SHORT}/*invokevirtual*/, 2078 {T_SHORT}/*invokespecial*/, {T_SHORT}/*invokestatic*/, 2079 {T_SHORT, T_BYTE, T_BYTE}/*invokeinterface*/, {T_SHORT, T_BYTE, T_BYTE}/*invokedynamic*/, 2080 {T_SHORT}/*new*/, {T_BYTE}/*newarray*/, 2081 {T_SHORT}/*anewarray*/, {}/*arraylength*/, {}/*athrow*/, 2082 {T_SHORT}/*checkcast*/, {T_SHORT}/*instanceof*/, 2083 {}/*monitorenter*/, {}/*monitorexit*/, {T_BYTE}/*wide*/, 2084 {T_SHORT, T_BYTE}/*multianewarray*/, {T_SHORT}/*ifnull*/, 2085 {T_SHORT}/*ifnonnull*/, {T_INT}/*goto_w*/, {T_INT}/*jsr_w*/, 2086 {}/*breakpoint*/, {}, {}, {}, {}, {}, {}, {}, 2087 {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, 2088 {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, 2089 {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, 2090 {}/*impdep1*/, {}/*impdep2*/ 2091 }; 2092 2093 /** 2094 * @since 6.0 2095 */ getOperandType(final int opcode, final int index)2096 public static short getOperandType(final int opcode, final int index) { 2097 return TYPE_OF_OPERANDS[opcode][index]; 2098 } 2099 2100 /** 2101 * @since 6.0 2102 */ getOperandTypeCount(final int opcode)2103 public static long getOperandTypeCount(final int opcode) { 2104 return TYPE_OF_OPERANDS[opcode].length; 2105 } 2106 2107 /** 2108 * Names of opcodes. Indexed by opcode. OPCODE_NAMES[ALOAD] = "aload". 2109 */ 2110 private static final String[] OPCODE_NAMES = { 2111 "nop", "aconst_null", "iconst_m1", "iconst_0", "iconst_1", 2112 "iconst_2", "iconst_3", "iconst_4", "iconst_5", "lconst_0", 2113 "lconst_1", "fconst_0", "fconst_1", "fconst_2", "dconst_0", 2114 "dconst_1", "bipush", "sipush", "ldc", "ldc_w", "ldc2_w", "iload", 2115 "lload", "fload", "dload", "aload", "iload_0", "iload_1", "iload_2", 2116 "iload_3", "lload_0", "lload_1", "lload_2", "lload_3", "fload_0", 2117 "fload_1", "fload_2", "fload_3", "dload_0", "dload_1", "dload_2", 2118 "dload_3", "aload_0", "aload_1", "aload_2", "aload_3", "iaload", 2119 "laload", "faload", "daload", "aaload", "baload", "caload", "saload", 2120 "istore", "lstore", "fstore", "dstore", "astore", "istore_0", 2121 "istore_1", "istore_2", "istore_3", "lstore_0", "lstore_1", 2122 "lstore_2", "lstore_3", "fstore_0", "fstore_1", "fstore_2", 2123 "fstore_3", "dstore_0", "dstore_1", "dstore_2", "dstore_3", 2124 "astore_0", "astore_1", "astore_2", "astore_3", "iastore", "lastore", 2125 "fastore", "dastore", "aastore", "bastore", "castore", "sastore", 2126 "pop", "pop2", "dup", "dup_x1", "dup_x2", "dup2", "dup2_x1", 2127 "dup2_x2", "swap", "iadd", "ladd", "fadd", "dadd", "isub", "lsub", 2128 "fsub", "dsub", "imul", "lmul", "fmul", "dmul", "idiv", "ldiv", 2129 "fdiv", "ddiv", "irem", "lrem", "frem", "drem", "ineg", "lneg", 2130 "fneg", "dneg", "ishl", "lshl", "ishr", "lshr", "iushr", "lushr", 2131 "iand", "land", "ior", "lor", "ixor", "lxor", "iinc", "i2l", "i2f", 2132 "i2d", "l2i", "l2f", "l2d", "f2i", "f2l", "f2d", "d2i", "d2l", "d2f", 2133 "i2b", "i2c", "i2s", "lcmp", "fcmpl", "fcmpg", 2134 "dcmpl", "dcmpg", "ifeq", "ifne", "iflt", "ifge", "ifgt", "ifle", 2135 "if_icmpeq", "if_icmpne", "if_icmplt", "if_icmpge", "if_icmpgt", 2136 "if_icmple", "if_acmpeq", "if_acmpne", "goto", "jsr", "ret", 2137 "tableswitch", "lookupswitch", "ireturn", "lreturn", "freturn", 2138 "dreturn", "areturn", "return", "getstatic", "putstatic", "getfield", 2139 "putfield", "invokevirtual", "invokespecial", "invokestatic", 2140 "invokeinterface", "invokedynamic", "new", "newarray", "anewarray", 2141 "arraylength", "athrow", "checkcast", "instanceof", "monitorenter", 2142 "monitorexit", "wide", "multianewarray", "ifnull", "ifnonnull", 2143 "goto_w", "jsr_w", "breakpoint", ILLEGAL_OPCODE, ILLEGAL_OPCODE, 2144 ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, 2145 ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, 2146 ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, 2147 ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, 2148 ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, 2149 ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, 2150 ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, 2151 ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, 2152 ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, 2153 ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, 2154 ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, 2155 ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, 2156 ILLEGAL_OPCODE, "impdep1", "impdep2" 2157 }; 2158 2159 /** 2160 * @since 6.0 2161 */ 2162 public static final int OPCODE_NAMES_LENGTH = OPCODE_NAMES.length; 2163 2164 2165 /** 2166 * @since 6.0 2167 */ getOpcodeName(final int index)2168 public static String getOpcodeName(final int index) { 2169 return OPCODE_NAMES[index]; 2170 } 2171 2172 /** 2173 * Number of words consumed on operand stack by instructions. 2174 * Indexed by opcode. CONSUME_STACK[FALOAD] = number of words 2175 * consumed from the stack by a faload instruction. 2176 */ 2177 private static final int[] CONSUME_STACK = { 2178 0/*nop*/, 0/*aconst_null*/, 0/*iconst_m1*/, 0/*iconst_0*/, 0/*iconst_1*/, 2179 0/*iconst_2*/, 0/*iconst_3*/, 0/*iconst_4*/, 0/*iconst_5*/, 0/*lconst_0*/, 2180 0/*lconst_1*/, 0/*fconst_0*/, 0/*fconst_1*/, 0/*fconst_2*/, 0/*dconst_0*/, 2181 0/*dconst_1*/, 0/*bipush*/, 0/*sipush*/, 0/*ldc*/, 0/*ldc_w*/, 0/*ldc2_w*/, 0/*iload*/, 2182 0/*lload*/, 0/*fload*/, 0/*dload*/, 0/*aload*/, 0/*iload_0*/, 0/*iload_1*/, 0/*iload_2*/, 2183 0/*iload_3*/, 0/*lload_0*/, 0/*lload_1*/, 0/*lload_2*/, 0/*lload_3*/, 0/*fload_0*/, 2184 0/*fload_1*/, 0/*fload_2*/, 0/*fload_3*/, 0/*dload_0*/, 0/*dload_1*/, 0/*dload_2*/, 2185 0/*dload_3*/, 0/*aload_0*/, 0/*aload_1*/, 0/*aload_2*/, 0/*aload_3*/, 2/*iaload*/, 2186 2/*laload*/, 2/*faload*/, 2/*daload*/, 2/*aaload*/, 2/*baload*/, 2/*caload*/, 2/*saload*/, 2187 1/*istore*/, 2/*lstore*/, 1/*fstore*/, 2/*dstore*/, 1/*astore*/, 1/*istore_0*/, 2188 1/*istore_1*/, 1/*istore_2*/, 1/*istore_3*/, 2/*lstore_0*/, 2/*lstore_1*/, 2189 2/*lstore_2*/, 2/*lstore_3*/, 1/*fstore_0*/, 1/*fstore_1*/, 1/*fstore_2*/, 2190 1/*fstore_3*/, 2/*dstore_0*/, 2/*dstore_1*/, 2/*dstore_2*/, 2/*dstore_3*/, 2191 1/*astore_0*/, 1/*astore_1*/, 1/*astore_2*/, 1/*astore_3*/, 3/*iastore*/, 4/*lastore*/, 2192 3/*fastore*/, 4/*dastore*/, 3/*aastore*/, 3/*bastore*/, 3/*castore*/, 3/*sastore*/, 2193 1/*pop*/, 2/*pop2*/, 1/*dup*/, 2/*dup_x1*/, 3/*dup_x2*/, 2/*dup2*/, 3/*dup2_x1*/, 2194 4/*dup2_x2*/, 2/*swap*/, 2/*iadd*/, 4/*ladd*/, 2/*fadd*/, 4/*dadd*/, 2/*isub*/, 4/*lsub*/, 2195 2/*fsub*/, 4/*dsub*/, 2/*imul*/, 4/*lmul*/, 2/*fmul*/, 4/*dmul*/, 2/*idiv*/, 4/*ldiv*/, 2196 2/*fdiv*/, 4/*ddiv*/, 2/*irem*/, 4/*lrem*/, 2/*frem*/, 4/*drem*/, 1/*ineg*/, 2/*lneg*/, 2197 1/*fneg*/, 2/*dneg*/, 2/*ishl*/, 3/*lshl*/, 2/*ishr*/, 3/*lshr*/, 2/*iushr*/, 3/*lushr*/, 2198 2/*iand*/, 4/*land*/, 2/*ior*/, 4/*lor*/, 2/*ixor*/, 4/*lxor*/, 0/*iinc*/, 2199 1/*i2l*/, 1/*i2f*/, 1/*i2d*/, 2/*l2i*/, 2/*l2f*/, 2/*l2d*/, 1/*f2i*/, 1/*f2l*/, 2200 1/*f2d*/, 2/*d2i*/, 2/*d2l*/, 2/*d2f*/, 1/*i2b*/, 1/*i2c*/, 1/*i2s*/, 2201 4/*lcmp*/, 2/*fcmpl*/, 2/*fcmpg*/, 4/*dcmpl*/, 4/*dcmpg*/, 1/*ifeq*/, 1/*ifne*/, 2202 1/*iflt*/, 1/*ifge*/, 1/*ifgt*/, 1/*ifle*/, 2/*if_icmpeq*/, 2/*if_icmpne*/, 2/*if_icmplt*/, 2203 2 /*if_icmpge*/, 2/*if_icmpgt*/, 2/*if_icmple*/, 2/*if_acmpeq*/, 2/*if_acmpne*/, 2204 0/*goto*/, 0/*jsr*/, 0/*ret*/, 1/*tableswitch*/, 1/*lookupswitch*/, 1/*ireturn*/, 2205 2/*lreturn*/, 1/*freturn*/, 2/*dreturn*/, 1/*areturn*/, 0/*return*/, 0/*getstatic*/, 2206 UNPREDICTABLE/*putstatic*/, 1/*getfield*/, UNPREDICTABLE/*putfield*/, 2207 UNPREDICTABLE/*invokevirtual*/, UNPREDICTABLE/*invokespecial*/, 2208 UNPREDICTABLE/*invokestatic*/, 2209 UNPREDICTABLE/*invokeinterface*/, UNPREDICTABLE/*invokedynamic*/, 0/*new*/, 1/*newarray*/, 1/*anewarray*/, 2210 1/*arraylength*/, 1/*athrow*/, 1/*checkcast*/, 1/*instanceof*/, 1/*monitorenter*/, 2211 1/*monitorexit*/, 0/*wide*/, UNPREDICTABLE/*multianewarray*/, 1/*ifnull*/, 1/*ifnonnull*/, 2212 0/*goto_w*/, 0/*jsr_w*/, 0/*breakpoint*/, UNDEFINED, UNDEFINED, 2213 UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, 2214 UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, 2215 UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, 2216 UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, 2217 UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, 2218 UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, 2219 UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, 2220 UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, 2221 UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, 2222 UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, 2223 UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, 2224 UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, 2225 UNDEFINED, UNPREDICTABLE/*impdep1*/, UNPREDICTABLE/*impdep2*/ 2226 }; 2227 2228 /** 2229 * 2230 * @param index 2231 * @return Number of words consumed on operand stack 2232 * @since 6.0 2233 */ getConsumeStack(final int index)2234 public static int getConsumeStack(final int index) { 2235 return CONSUME_STACK[index]; 2236 } 2237 2238 2239 /** 2240 * Number of words produced onto operand stack by instructions. 2241 * Indexed by opcode. CONSUME_STACK[DALOAD] = number of words 2242 * consumed from the stack by a daload instruction. 2243 */ 2244 private static final int[] PRODUCE_STACK = { 2245 0/*nop*/, 1/*aconst_null*/, 1/*iconst_m1*/, 1/*iconst_0*/, 1/*iconst_1*/, 2246 1/*iconst_2*/, 1/*iconst_3*/, 1/*iconst_4*/, 1/*iconst_5*/, 2/*lconst_0*/, 2247 2/*lconst_1*/, 1/*fconst_0*/, 1/*fconst_1*/, 1/*fconst_2*/, 2/*dconst_0*/, 2248 2/*dconst_1*/, 1/*bipush*/, 1/*sipush*/, 1/*ldc*/, 1/*ldc_w*/, 2/*ldc2_w*/, 1/*iload*/, 2249 2/*lload*/, 1/*fload*/, 2/*dload*/, 1/*aload*/, 1/*iload_0*/, 1/*iload_1*/, 1/*iload_2*/, 2250 1/*iload_3*/, 2/*lload_0*/, 2/*lload_1*/, 2/*lload_2*/, 2/*lload_3*/, 1/*fload_0*/, 2251 1/*fload_1*/, 1/*fload_2*/, 1/*fload_3*/, 2/*dload_0*/, 2/*dload_1*/, 2/*dload_2*/, 2252 2/*dload_3*/, 1/*aload_0*/, 1/*aload_1*/, 1/*aload_2*/, 1/*aload_3*/, 1/*iaload*/, 2253 2/*laload*/, 1/*faload*/, 2/*daload*/, 1/*aaload*/, 1/*baload*/, 1/*caload*/, 1/*saload*/, 2254 0/*istore*/, 0/*lstore*/, 0/*fstore*/, 0/*dstore*/, 0/*astore*/, 0/*istore_0*/, 2255 0/*istore_1*/, 0/*istore_2*/, 0/*istore_3*/, 0/*lstore_0*/, 0/*lstore_1*/, 2256 0/*lstore_2*/, 0/*lstore_3*/, 0/*fstore_0*/, 0/*fstore_1*/, 0/*fstore_2*/, 2257 0/*fstore_3*/, 0/*dstore_0*/, 0/*dstore_1*/, 0/*dstore_2*/, 0/*dstore_3*/, 2258 0/*astore_0*/, 0/*astore_1*/, 0/*astore_2*/, 0/*astore_3*/, 0/*iastore*/, 0/*lastore*/, 2259 0/*fastore*/, 0/*dastore*/, 0/*aastore*/, 0/*bastore*/, 0/*castore*/, 0/*sastore*/, 2260 0/*pop*/, 0/*pop2*/, 2/*dup*/, 3/*dup_x1*/, 4/*dup_x2*/, 4/*dup2*/, 5/*dup2_x1*/, 2261 6/*dup2_x2*/, 2/*swap*/, 1/*iadd*/, 2/*ladd*/, 1/*fadd*/, 2/*dadd*/, 1/*isub*/, 2/*lsub*/, 2262 1/*fsub*/, 2/*dsub*/, 1/*imul*/, 2/*lmul*/, 1/*fmul*/, 2/*dmul*/, 1/*idiv*/, 2/*ldiv*/, 2263 1/*fdiv*/, 2/*ddiv*/, 1/*irem*/, 2/*lrem*/, 1/*frem*/, 2/*drem*/, 1/*ineg*/, 2/*lneg*/, 2264 1/*fneg*/, 2/*dneg*/, 1/*ishl*/, 2/*lshl*/, 1/*ishr*/, 2/*lshr*/, 1/*iushr*/, 2/*lushr*/, 2265 1/*iand*/, 2/*land*/, 1/*ior*/, 2/*lor*/, 1/*ixor*/, 2/*lxor*/, 2266 0/*iinc*/, 2/*i2l*/, 1/*i2f*/, 2/*i2d*/, 1/*l2i*/, 1/*l2f*/, 2/*l2d*/, 1/*f2i*/, 2267 2/*f2l*/, 2/*f2d*/, 1/*d2i*/, 2/*d2l*/, 1/*d2f*/, 2268 1/*i2b*/, 1/*i2c*/, 1/*i2s*/, 1/*lcmp*/, 1/*fcmpl*/, 1/*fcmpg*/, 2269 1/*dcmpl*/, 1/*dcmpg*/, 0/*ifeq*/, 0/*ifne*/, 0/*iflt*/, 0/*ifge*/, 0/*ifgt*/, 0/*ifle*/, 2270 0/*if_icmpeq*/, 0/*if_icmpne*/, 0/*if_icmplt*/, 0/*if_icmpge*/, 0/*if_icmpgt*/, 2271 0/*if_icmple*/, 0/*if_acmpeq*/, 0/*if_acmpne*/, 0/*goto*/, 1/*jsr*/, 0/*ret*/, 2272 0/*tableswitch*/, 0/*lookupswitch*/, 0/*ireturn*/, 0/*lreturn*/, 0/*freturn*/, 2273 0/*dreturn*/, 0/*areturn*/, 0/*return*/, UNPREDICTABLE/*getstatic*/, 0/*putstatic*/, 2274 UNPREDICTABLE/*getfield*/, 0/*putfield*/, UNPREDICTABLE/*invokevirtual*/, 2275 UNPREDICTABLE/*invokespecial*/, UNPREDICTABLE/*invokestatic*/, 2276 UNPREDICTABLE/*invokeinterface*/, UNPREDICTABLE/*invokedynamic*/, 1/*new*/, 1/*newarray*/, 1/*anewarray*/, 2277 1/*arraylength*/, 1/*athrow*/, 1/*checkcast*/, 1/*instanceof*/, 0/*monitorenter*/, 2278 0/*monitorexit*/, 0/*wide*/, 1/*multianewarray*/, 0/*ifnull*/, 0/*ifnonnull*/, 2279 0/*goto_w*/, 1/*jsr_w*/, 0/*breakpoint*/, UNDEFINED, UNDEFINED, 2280 UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, 2281 UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, 2282 UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, 2283 UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, 2284 UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, 2285 UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, 2286 UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, 2287 UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, 2288 UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, 2289 UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, 2290 UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, 2291 UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, 2292 UNDEFINED, UNPREDICTABLE/*impdep1*/, UNPREDICTABLE/*impdep2*/ 2293 }; 2294 2295 /** 2296 * 2297 * @param index 2298 * @return Number of words produced onto operand stack 2299 * @since 6.0 2300 */ getProduceStack(final int index)2301 public static int getProduceStack(final int index) { 2302 return PRODUCE_STACK[index]; 2303 } 2304 2305 /** Attributes and their corresponding names. 2306 */ 2307 public static final byte ATTR_UNKNOWN = -1; 2308 public static final byte ATTR_SOURCE_FILE = 0; 2309 public static final byte ATTR_CONSTANT_VALUE = 1; 2310 public static final byte ATTR_CODE = 2; 2311 public static final byte ATTR_EXCEPTIONS = 3; 2312 public static final byte ATTR_LINE_NUMBER_TABLE = 4; 2313 public static final byte ATTR_LOCAL_VARIABLE_TABLE = 5; 2314 public static final byte ATTR_INNER_CLASSES = 6; 2315 public static final byte ATTR_SYNTHETIC = 7; 2316 public static final byte ATTR_DEPRECATED = 8; 2317 public static final byte ATTR_PMG = 9; 2318 public static final byte ATTR_SIGNATURE = 10; 2319 public static final byte ATTR_STACK_MAP = 11; 2320 public static final byte ATTR_RUNTIME_VISIBLE_ANNOTATIONS = 12; 2321 public static final byte ATTR_RUNTIME_INVISIBLE_ANNOTATIONS = 13; 2322 public static final byte ATTR_RUNTIME_VISIBLE_PARAMETER_ANNOTATIONS = 14; 2323 public static final byte ATTR_RUNTIME_INVISIBLE_PARAMETER_ANNOTATIONS = 15; 2324 public static final byte ATTR_ANNOTATION_DEFAULT = 16; 2325 public static final byte ATTR_LOCAL_VARIABLE_TYPE_TABLE = 17; 2326 public static final byte ATTR_ENCLOSING_METHOD = 18; 2327 public static final byte ATTR_STACK_MAP_TABLE = 19; 2328 public static final byte ATTR_BOOTSTRAP_METHODS = 20; 2329 public static final byte ATTR_METHOD_PARAMETERS = 21; 2330 public static final byte ATTR_MODULE = 22; 2331 public static final byte ATTR_MODULE_PACKAGES = 23; 2332 public static final byte ATTR_MODULE_MAIN_CLASS = 24; 2333 public static final byte ATTR_NEST_HOST = 25; 2334 public static final byte ATTR_NEST_MEMBERS = 26; 2335 2336 public static final short KNOWN_ATTRIBUTES = 27; // count of attributes 2337 2338 private static final String[] ATTRIBUTE_NAMES = { 2339 "SourceFile", "ConstantValue", "Code", "Exceptions", 2340 "LineNumberTable", "LocalVariableTable", 2341 "InnerClasses", "Synthetic", "Deprecated", 2342 "PMGClass", "Signature", "StackMap", 2343 "RuntimeVisibleAnnotations", "RuntimeInvisibleAnnotations", 2344 "RuntimeVisibleParameterAnnotations", "RuntimeInvisibleParameterAnnotations", 2345 "AnnotationDefault", "LocalVariableTypeTable", "EnclosingMethod", "StackMapTable", 2346 "BootstrapMethods", "MethodParameters", "Module", "ModulePackages", 2347 "ModuleMainClass", "NestHost", "NestMembers" 2348 }; 2349 2350 /** 2351 * 2352 * @param index 2353 * @return the attribute name 2354 * @since 6.0 2355 */ getAttributeName(final int index)2356 public static String getAttributeName(final int index) { 2357 return ATTRIBUTE_NAMES[index]; 2358 } 2359 2360 /** Constants used in the StackMap attribute. 2361 */ 2362 public static final byte ITEM_Bogus = 0; 2363 public static final byte ITEM_Integer = 1; 2364 public static final byte ITEM_Float = 2; 2365 public static final byte ITEM_Double = 3; 2366 public static final byte ITEM_Long = 4; 2367 public static final byte ITEM_Null = 5; 2368 public static final byte ITEM_InitObject = 6; 2369 public static final byte ITEM_Object = 7; 2370 public static final byte ITEM_NewObject = 8; 2371 2372 private static final String[] ITEM_NAMES = { 2373 "Bogus", "Integer", "Float", "Double", "Long", 2374 "Null", "InitObject", "Object", "NewObject" 2375 }; 2376 2377 /** 2378 * 2379 * @param index 2380 * @return the item name 2381 * @since 6.0 2382 */ getItemName(final int index)2383 public static String getItemName(final int index) { 2384 return ITEM_NAMES[index]; 2385 } 2386 2387 /** Constants used to identify StackMapEntry types. 2388 * 2389 * For those types which can specify a range, the 2390 * constant names the lowest value. 2391 */ 2392 public static final int SAME_FRAME = 0; 2393 public static final int SAME_LOCALS_1_STACK_ITEM_FRAME = 64; 2394 public static final int SAME_LOCALS_1_STACK_ITEM_FRAME_EXTENDED = 247; 2395 public static final int CHOP_FRAME = 248; 2396 public static final int SAME_FRAME_EXTENDED = 251; 2397 public static final int APPEND_FRAME = 252; 2398 public static final int FULL_FRAME = 255; 2399 2400 /** Constants that define the maximum value of 2401 * those constants which store ranges. */ 2402 2403 public static final int SAME_FRAME_MAX = 63; 2404 public static final int SAME_LOCALS_1_STACK_ITEM_FRAME_MAX = 127; 2405 public static final int CHOP_FRAME_MAX = 250; 2406 public static final int APPEND_FRAME_MAX = 254; 2407 2408 2409 // Constants defining the behavior of the Method Handles (JVMS 5.4.3.5) 2410 2411 public static final byte REF_getField = 1; 2412 public static final byte REF_getStatic = 2; 2413 public static final byte REF_putField = 3; 2414 public static final byte REF_putStatic = 4; 2415 public static final byte REF_invokeVirtual = 5; 2416 public static final byte REF_invokeStatic = 6; 2417 public static final byte REF_invokeSpecial = 7; 2418 public static final byte REF_newInvokeSpecial = 8; 2419 public static final byte REF_invokeInterface = 9; 2420 2421 /** 2422 * The names of the reference_kinds of a CONSTANT_MethodHandle_info. 2423 */ 2424 private static final String[] METHODHANDLE_NAMES = { 2425 "", "getField", "getStatic", "putField", "putStatic", "invokeVirtual", 2426 "invokeStatic", "invokeSpecial", "newInvokeSpecial", "invokeInterface" }; 2427 2428 /** 2429 * 2430 * @param index 2431 * @return the method handle name 2432 * @since 6.0 2433 */ getMethodHandleName(final int index)2434 public static String getMethodHandleName(final int index) { 2435 return METHODHANDLE_NAMES[index]; 2436 } 2437 Const()2438 private Const() { } // not instantiable 2439 2440 } 2441