1 /* 2 * Licensed to the Apache Software Foundation (ASF) under one or more 3 * contributor license agreements. See the NOTICE file distributed with 4 * this work for additional information regarding copyright ownership. 5 * The ASF licenses this file to You under the Apache License, Version 2.0 6 * (the "License"); you may not use this file except in compliance with 7 * the License. You may obtain a copy of the License at 8 * 9 * http://www.apache.org/licenses/LICENSE-2.0 10 * 11 * Unless required by applicable law or agreed to in writing, software 12 * distributed under the License is distributed on an "AS IS" BASIS, 13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 * See the License for the specific language governing permissions and 15 * limitations under the License. 16 * 17 */ 18 package org.apache.bcel; 19 20 /** 21 * Constants for the project, mostly defined in the JVM specification. 22 * 23 * @version $Id$ 24 * @deprecated (since 6.0) DO NOT USE - use Const instead 25 */ 26 @Deprecated 27 public interface Constants { 28 29 /** Major version number of class files for Java 1.1. 30 * @see #MINOR_1_1 31 * */ 32 short MAJOR_1_1 = 45; 33 34 /** Minor version number of class files for Java 1.1. 35 * @see #MAJOR_1_1 36 * */ 37 short MINOR_1_1 = 3; 38 39 /** Major version number of class files for Java 1.2. 40 * @see #MINOR_1_2 41 * */ 42 short MAJOR_1_2 = 46; 43 44 /** Minor version number of class files for Java 1.2. 45 * @see #MAJOR_1_2 46 * */ 47 short MINOR_1_2 = 0; 48 49 /** Major version number of class files for Java 1.2. 50 * @see #MINOR_1_2 51 * */ 52 short MAJOR_1_3 = 47; 53 54 /** Minor version number of class files for Java 1.3. 55 * @see #MAJOR_1_3 56 * */ 57 short MINOR_1_3 = 0; 58 59 /** Major version number of class files for Java 1.3. 60 * @see #MINOR_1_3 61 * */ 62 short MAJOR_1_4 = 48; 63 64 /** Minor version number of class files for Java 1.4. 65 * @see #MAJOR_1_4 66 * */ 67 short MINOR_1_4 = 0; 68 69 /** Major version number of class files for Java 1.4. 70 * @see #MINOR_1_4 71 * */ 72 short MAJOR_1_5 = 49; 73 74 /** Minor version number of class files for Java 1.5. 75 * @see #MAJOR_1_5 76 * */ 77 short MINOR_1_5 = 0; 78 79 80 /** Default major version number. Class file is for Java 1.1. 81 * @see #MAJOR_1_1 82 * */ 83 short MAJOR = MAJOR_1_1; 84 85 /** Default major version number. Class file is for Java 1.1. 86 * @see #MAJOR_1_1 87 * */ 88 short MINOR = MINOR_1_1; 89 90 /** Maximum value for an unsigned short. 91 */ 92 int MAX_SHORT = 65535; // 2^16 - 1 93 94 /** Maximum value for an unsigned byte. 95 */ 96 int MAX_BYTE = 255; // 2^8 - 1 97 98 /** One of the access flags for fields, methods, or classes. 99 * @see "<a href='http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.5'> 100 * Flag definitions for Fields in the Java Virtual Machine Specification (Java SE 8 Edition).</a>" 101 * @see "<a href='http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.6'> 102 * Flag definitions for Methods in the Java Virtual Machine Specification (Java SE 8 Edition).</a>" 103 * @see "<a href='http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.7.6-300-D.1-D.1'> 104 * Flag definitions for Classes in the Java Virtual Machine Specification (Java SE 8 Edition).</a>" 105 */ 106 short ACC_PUBLIC = 0x0001; 107 108 /** One of the access flags for fields, methods, or classes. 109 * @see #ACC_PUBLIC 110 */ 111 short ACC_PRIVATE = 0x0002; 112 113 /** One of the access flags for fields, methods, or classes. 114 * @see #ACC_PUBLIC 115 */ 116 short ACC_PROTECTED = 0x0004; 117 118 /** One of the access flags for fields, methods, or classes. 119 * @see #ACC_PUBLIC 120 */ 121 short ACC_STATIC = 0x0008; 122 123 /** One of the access flags for fields, methods, or classes. 124 * @see #ACC_PUBLIC 125 */ 126 short ACC_FINAL = 0x0010; 127 128 /** One of the access flags for fields, methods, or classes. 129 * @see #ACC_PUBLIC 130 */ 131 short ACC_SYNCHRONIZED = 0x0020; 132 133 /** One of the access flags for fields, methods, or classes. 134 * @see #ACC_PUBLIC 135 */ 136 short ACC_VOLATILE = 0x0040; 137 138 /** One of the access flags for fields, methods, or classes. 139 * @see #ACC_PUBLIC 140 */ 141 short ACC_BRIDGE = 0x0040; 142 143 /** One of the access flags for fields, methods, or classes. 144 * @see #ACC_PUBLIC 145 */ 146 short ACC_TRANSIENT = 0x0080; 147 148 /** One of the access flags for fields, methods, or classes. 149 * @see #ACC_PUBLIC 150 */ 151 short ACC_VARARGS = 0x0080; 152 153 /** One of the access flags for fields, methods, or classes. 154 * @see #ACC_PUBLIC 155 */ 156 short ACC_NATIVE = 0x0100; 157 158 /** One of the access flags for fields, methods, or classes. 159 * @see #ACC_PUBLIC 160 */ 161 short ACC_INTERFACE = 0x0200; 162 163 /** One of the access flags for fields, methods, or classes. 164 * @see #ACC_PUBLIC 165 */ 166 short ACC_ABSTRACT = 0x0400; 167 168 /** One of the access flags for fields, methods, or classes. 169 * @see #ACC_PUBLIC 170 */ 171 short ACC_STRICT = 0x0800; 172 173 /** One of the access flags for fields, methods, or classes. 174 * @see #ACC_PUBLIC 175 */ 176 short ACC_SYNTHETIC = 0x1000; 177 178 /** One of the access flags for fields, methods, or classes. 179 * @see #ACC_PUBLIC 180 */ 181 short ACC_ANNOTATION = 0x2000; 182 183 /** One of the access flags for fields, methods, or classes. 184 * @see #ACC_PUBLIC 185 */ 186 short ACC_ENUM = 0x4000; 187 188 // Applies to classes compiled by new compilers only 189 /** One of the access flags for fields, methods, or classes. 190 * @see #ACC_PUBLIC 191 */ 192 short ACC_SUPER = 0x0020; 193 194 /** One of the access flags for fields, methods, or classes. 195 * @see #ACC_PUBLIC 196 */ 197 short MAX_ACC_FLAG = ACC_ENUM; 198 199 /** The names of the access flags. */ 200 String[] ACCESS_NAMES = { 201 "public", "private", "protected", "static", "final", "synchronized", 202 "volatile", "transient", "native", "interface", "abstract", "strictfp", 203 "synthetic", "annotation", "enum" 204 }; 205 206 /** Marks a constant pool entry as type UTF-8. */ 207 byte CONSTANT_Utf8 = 1; 208 209 /** Marks a constant pool entry as type Integer. */ 210 byte CONSTANT_Integer = 3; 211 212 /** Marks a constant pool entry as type Float. */ 213 byte CONSTANT_Float = 4; 214 215 /** Marks a constant pool entry as type Long. */ 216 byte CONSTANT_Long = 5; 217 218 /** Marks a constant pool entry as type Double. */ 219 byte CONSTANT_Double = 6; 220 221 /** Marks a constant pool entry as a Class. */ 222 byte CONSTANT_Class = 7; 223 224 /** Marks a constant pool entry as a Field Reference. */ 225 byte CONSTANT_Fieldref = 9; 226 227 /** Marks a constant pool entry as type String. */ 228 byte CONSTANT_String = 8; 229 230 /** Marks a constant pool entry as a Method Reference. */ 231 byte CONSTANT_Methodref = 10; 232 233 /** Marks a constant pool entry as an Interface Method Reference. */ 234 byte CONSTANT_InterfaceMethodref = 11; 235 236 /** Marks a constant pool entry as a name and type. */ 237 byte CONSTANT_NameAndType = 12; 238 239 /** The names of the types of entries in a constant pool. */ 240 String[] CONSTANT_NAMES = { 241 "", "CONSTANT_Utf8", "", "CONSTANT_Integer", 242 "CONSTANT_Float", "CONSTANT_Long", "CONSTANT_Double", 243 "CONSTANT_Class", "CONSTANT_String", "CONSTANT_Fieldref", 244 "CONSTANT_Methodref", "CONSTANT_InterfaceMethodref", 245 "CONSTANT_NameAndType" }; 246 247 /** The name of the static initializer, also called "class 248 * initialization method" or "interface initialization 249 * method". This is "<clinit>". 250 */ 251 String STATIC_INITIALIZER_NAME = "<clinit>"; 252 253 /** The name of every constructor method in a class, also called 254 * "instance initialization method". This is "<init>". 255 */ 256 String CONSTRUCTOR_NAME = "<init>"; 257 258 /** The names of the interfaces implemented by arrays */ 259 String[] INTERFACES_IMPLEMENTED_BY_ARRAYS = {"java.lang.Cloneable", "java.io.Serializable"}; 260 261 /** 262 * One of the limitations of the Java Virtual Machine. 263 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.11"> 264 * The Java Virtual Machine Specification, Second Edition, page 152, chapter 4.10.</a> 265 */ 266 int MAX_CP_ENTRIES = 65535; 267 268 /** 269 * One of the limitations of the Java Virtual Machine. 270 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.11"> 271 * The Java Virtual Machine Specification, Second Edition, page 152, chapter 4.10.</a> 272 */ 273 int MAX_CODE_SIZE = 65536; //bytes 274 275 /** Java VM opcode. 276 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 277 * Opcode definitions in The Java Virtual Machine Specification</a> */ 278 short NOP = 0; 279 280 /** Java VM opcode. 281 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 282 * Opcode definitions in The Java Virtual Machine Specification</a> */ 283 short ACONST_NULL = 1; 284 285 /** Java VM opcode. 286 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 287 * Opcode definitions in The Java Virtual Machine Specification</a> */ 288 short ICONST_M1 = 2; 289 /** Java VM opcode. 290 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 291 * Opcode definitions in The Java Virtual Machine Specification</a> */ 292 short ICONST_0 = 3; 293 /** Java VM opcode. 294 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 295 * Opcode definitions in The Java Virtual Machine Specification</a> */ 296 short ICONST_1 = 4; 297 /** Java VM opcode. 298 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 299 * Opcode definitions in The Java Virtual Machine Specification</a> */ 300 short ICONST_2 = 5; 301 /** Java VM opcode. 302 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 303 * Opcode definitions in The Java Virtual Machine Specification</a> */ 304 short ICONST_3 = 6; 305 /** Java VM opcode. 306 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 307 * Opcode definitions in The Java Virtual Machine Specification</a> */ 308 short ICONST_4 = 7; 309 /** Java VM opcode. 310 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 311 * Opcode definitions in The Java Virtual Machine Specification</a> */ 312 short ICONST_5 = 8; 313 /** Java VM opcode. 314 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 315 * Opcode definitions in The Java Virtual Machine Specification</a> */ 316 short LCONST_0 = 9; 317 /** Java VM opcode. 318 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 319 * Opcode definitions in The Java Virtual Machine Specification</a> */ 320 short LCONST_1 = 10; 321 /** Java VM opcode. 322 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 323 * Opcode definitions in The Java Virtual Machine Specification</a> */ 324 short FCONST_0 = 11; 325 /** Java VM opcode. 326 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 327 * Opcode definitions in The Java Virtual Machine Specification</a> */ 328 short FCONST_1 = 12; 329 /** Java VM opcode. 330 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 331 * Opcode definitions in The Java Virtual Machine Specification</a> */ 332 short FCONST_2 = 13; 333 /** Java VM opcode. 334 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 335 * Opcode definitions in The Java Virtual Machine Specification</a> */ 336 short DCONST_0 = 14; 337 /** Java VM opcode. 338 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 339 * Opcode definitions in The Java Virtual Machine Specification</a> */ 340 short DCONST_1 = 15; 341 /** Java VM opcode. 342 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 343 * Opcode definitions in The Java Virtual Machine Specification</a> */ 344 short BIPUSH = 16; 345 /** Java VM opcode. 346 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 347 * Opcode definitions in The Java Virtual Machine Specification</a> */ 348 short SIPUSH = 17; 349 /** Java VM opcode. 350 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 351 * Opcode definitions in The Java Virtual Machine Specification</a> */ 352 short LDC = 18; 353 /** Java VM opcode. 354 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 355 * Opcode definitions in The Java Virtual Machine Specification</a> */ 356 short LDC_W = 19; 357 /** Java VM opcode. 358 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 359 * Opcode definitions in The Java Virtual Machine Specification</a> */ 360 short LDC2_W = 20; 361 /** Java VM opcode. 362 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 363 * Opcode definitions in The Java Virtual Machine Specification</a> */ 364 short ILOAD = 21; 365 /** Java VM opcode. 366 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 367 * Opcode definitions in The Java Virtual Machine Specification</a> */ 368 short LLOAD = 22; 369 /** Java VM opcode. 370 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 371 * Opcode definitions in The Java Virtual Machine Specification</a> */ 372 short FLOAD = 23; 373 /** Java VM opcode. 374 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 375 * Opcode definitions in The Java Virtual Machine Specification</a> */ 376 short DLOAD = 24; 377 /** Java VM opcode. 378 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 379 * Opcode definitions in The Java Virtual Machine Specification</a> */ 380 short ALOAD = 25; 381 /** Java VM opcode. 382 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 383 * Opcode definitions in The Java Virtual Machine Specification</a> */ 384 short ILOAD_0 = 26; 385 /** Java VM opcode. 386 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 387 * Opcode definitions in The Java Virtual Machine Specification</a> */ 388 short ILOAD_1 = 27; 389 /** Java VM opcode. 390 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 391 * Opcode definitions in The Java Virtual Machine Specification</a> */ 392 short ILOAD_2 = 28; 393 /** Java VM opcode. 394 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 395 * Opcode definitions in The Java Virtual Machine Specification</a> */ 396 short ILOAD_3 = 29; 397 /** Java VM opcode. 398 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 399 * Opcode definitions in The Java Virtual Machine Specification</a> */ 400 short LLOAD_0 = 30; 401 /** Java VM opcode. 402 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 403 * Opcode definitions in The Java Virtual Machine Specification</a> */ 404 short LLOAD_1 = 31; 405 /** Java VM opcode. 406 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 407 * Opcode definitions in The Java Virtual Machine Specification</a> */ 408 short LLOAD_2 = 32; 409 /** Java VM opcode. 410 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 411 * Opcode definitions in The Java Virtual Machine Specification</a> */ 412 short LLOAD_3 = 33; 413 /** Java VM opcode. 414 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 415 * Opcode definitions in The Java Virtual Machine Specification</a> */ 416 short FLOAD_0 = 34; 417 /** Java VM opcode. 418 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 419 * Opcode definitions in The Java Virtual Machine Specification</a> */ 420 short FLOAD_1 = 35; 421 /** Java VM opcode. 422 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 423 * Opcode definitions in The Java Virtual Machine Specification</a> */ 424 short FLOAD_2 = 36; 425 /** Java VM opcode. 426 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 427 * Opcode definitions in The Java Virtual Machine Specification</a> */ 428 short FLOAD_3 = 37; 429 /** Java VM opcode. 430 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 431 * Opcode definitions in The Java Virtual Machine Specification</a> */ 432 short DLOAD_0 = 38; 433 /** Java VM opcode. 434 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 435 * Opcode definitions in The Java Virtual Machine Specification</a> */ 436 short DLOAD_1 = 39; 437 /** Java VM opcode. 438 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 439 * Opcode definitions in The Java Virtual Machine Specification</a> */ 440 short DLOAD_2 = 40; 441 /** Java VM opcode. 442 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 443 * Opcode definitions in The Java Virtual Machine Specification</a> */ 444 short DLOAD_3 = 41; 445 /** Java VM opcode. 446 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 447 * Opcode definitions in The Java Virtual Machine Specification</a> */ 448 short ALOAD_0 = 42; 449 /** Java VM opcode. 450 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 451 * Opcode definitions in The Java Virtual Machine Specification</a> */ 452 short ALOAD_1 = 43; 453 /** Java VM opcode. 454 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 455 * Opcode definitions in The Java Virtual Machine Specification</a> */ 456 short ALOAD_2 = 44; 457 /** Java VM opcode. 458 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 459 * Opcode definitions in The Java Virtual Machine Specification</a> */ 460 short ALOAD_3 = 45; 461 /** Java VM opcode. 462 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 463 * Opcode definitions in The Java Virtual Machine Specification</a> */ 464 short IALOAD = 46; 465 /** Java VM opcode. 466 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 467 * Opcode definitions in The Java Virtual Machine Specification</a> */ 468 short LALOAD = 47; 469 /** Java VM opcode. 470 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 471 * Opcode definitions in The Java Virtual Machine Specification</a> */ 472 short FALOAD = 48; 473 /** Java VM opcode. 474 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 475 * Opcode definitions in The Java Virtual Machine Specification</a> */ 476 short DALOAD = 49; 477 /** Java VM opcode. 478 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 479 * Opcode definitions in The Java Virtual Machine Specification</a> */ 480 short AALOAD = 50; 481 /** Java VM opcode. 482 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 483 * Opcode definitions in The Java Virtual Machine Specification</a> */ 484 short BALOAD = 51; 485 /** Java VM opcode. 486 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 487 * Opcode definitions in The Java Virtual Machine Specification</a> */ 488 short CALOAD = 52; 489 /** Java VM opcode. 490 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 491 * Opcode definitions in The Java Virtual Machine Specification</a> */ 492 short SALOAD = 53; 493 /** Java VM opcode. 494 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 495 * Opcode definitions in The Java Virtual Machine Specification</a> */ 496 short ISTORE = 54; 497 /** Java VM opcode. 498 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 499 * Opcode definitions in The Java Virtual Machine Specification</a> */ 500 short LSTORE = 55; 501 /** Java VM opcode. 502 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 503 * Opcode definitions in The Java Virtual Machine Specification</a> */ 504 short FSTORE = 56; 505 /** Java VM opcode. 506 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 507 * Opcode definitions in The Java Virtual Machine Specification</a> */ 508 short DSTORE = 57; 509 /** Java VM opcode. 510 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 511 * Opcode definitions in The Java Virtual Machine Specification</a> */ 512 short ASTORE = 58; 513 /** Java VM opcode. 514 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 515 * Opcode definitions in The Java Virtual Machine Specification</a> */ 516 short ISTORE_0 = 59; 517 /** Java VM opcode. 518 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 519 * Opcode definitions in The Java Virtual Machine Specification</a> */ 520 short ISTORE_1 = 60; 521 /** Java VM opcode. 522 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 523 * Opcode definitions in The Java Virtual Machine Specification</a> */ 524 short ISTORE_2 = 61; 525 /** Java VM opcode. 526 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 527 * Opcode definitions in The Java Virtual Machine Specification</a> */ 528 short ISTORE_3 = 62; 529 /** Java VM opcode. 530 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 531 * Opcode definitions in The Java Virtual Machine Specification</a> */ 532 short LSTORE_0 = 63; 533 /** Java VM opcode. 534 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 535 * Opcode definitions in The Java Virtual Machine Specification</a> */ 536 short LSTORE_1 = 64; 537 /** Java VM opcode. 538 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 539 * Opcode definitions in The Java Virtual Machine Specification</a> */ 540 short LSTORE_2 = 65; 541 /** Java VM opcode. 542 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 543 * Opcode definitions in The Java Virtual Machine Specification</a> */ 544 short LSTORE_3 = 66; 545 /** Java VM opcode. 546 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 547 * Opcode definitions in The Java Virtual Machine Specification</a> */ 548 short FSTORE_0 = 67; 549 /** Java VM opcode. 550 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 551 * Opcode definitions in The Java Virtual Machine Specification</a> */ 552 short FSTORE_1 = 68; 553 /** Java VM opcode. 554 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 555 * Opcode definitions in The Java Virtual Machine Specification</a> */ 556 short FSTORE_2 = 69; 557 /** Java VM opcode. 558 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 559 * Opcode definitions in The Java Virtual Machine Specification</a> */ 560 short FSTORE_3 = 70; 561 /** Java VM opcode. 562 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 563 * Opcode definitions in The Java Virtual Machine Specification</a> */ 564 short DSTORE_0 = 71; 565 /** Java VM opcode. 566 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 567 * Opcode definitions in The Java Virtual Machine Specification</a> */ 568 short DSTORE_1 = 72; 569 /** Java VM opcode. 570 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 571 * Opcode definitions in The Java Virtual Machine Specification</a> */ 572 short DSTORE_2 = 73; 573 /** Java VM opcode. 574 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 575 * Opcode definitions in The Java Virtual Machine Specification</a> */ 576 short DSTORE_3 = 74; 577 /** Java VM opcode. 578 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 579 * Opcode definitions in The Java Virtual Machine Specification</a> */ 580 short ASTORE_0 = 75; 581 /** Java VM opcode. 582 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 583 * Opcode definitions in The Java Virtual Machine Specification</a> */ 584 short ASTORE_1 = 76; 585 /** Java VM opcode. 586 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 587 * Opcode definitions in The Java Virtual Machine Specification</a> */ 588 short ASTORE_2 = 77; 589 /** Java VM opcode. 590 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 591 * Opcode definitions in The Java Virtual Machine Specification</a> */ 592 short ASTORE_3 = 78; 593 /** Java VM opcode. 594 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 595 * Opcode definitions in The Java Virtual Machine Specification</a> */ 596 short IASTORE = 79; 597 /** Java VM opcode. 598 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 599 * Opcode definitions in The Java Virtual Machine Specification</a> */ 600 short LASTORE = 80; 601 /** Java VM opcode. 602 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 603 * Opcode definitions in The Java Virtual Machine Specification</a> */ 604 short FASTORE = 81; 605 /** Java VM opcode. 606 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 607 * Opcode definitions in The Java Virtual Machine Specification</a> */ 608 short DASTORE = 82; 609 /** Java VM opcode. 610 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 611 * Opcode definitions in The Java Virtual Machine Specification</a> */ 612 short AASTORE = 83; 613 /** Java VM opcode. 614 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 615 * Opcode definitions in The Java Virtual Machine Specification</a> */ 616 short BASTORE = 84; 617 /** Java VM opcode. 618 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 619 * Opcode definitions in The Java Virtual Machine Specification</a> */ 620 short CASTORE = 85; 621 /** Java VM opcode. 622 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 623 * Opcode definitions in The Java Virtual Machine Specification</a> */ 624 short SASTORE = 86; 625 /** Java VM opcode. 626 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 627 * Opcode definitions in The Java Virtual Machine Specification</a> */ 628 short POP = 87; 629 /** Java VM opcode. 630 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 631 * Opcode definitions in The Java Virtual Machine Specification</a> */ 632 short POP2 = 88; 633 /** Java VM opcode. 634 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 635 * Opcode definitions in The Java Virtual Machine Specification</a> */ 636 short DUP = 89; 637 /** Java VM opcode. 638 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 639 * Opcode definitions in The Java Virtual Machine Specification</a> */ 640 short DUP_X1 = 90; 641 /** Java VM opcode. 642 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 643 * Opcode definitions in The Java Virtual Machine Specification</a> */ 644 short DUP_X2 = 91; 645 /** Java VM opcode. 646 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 647 * Opcode definitions in The Java Virtual Machine Specification</a> */ 648 short DUP2 = 92; 649 /** Java VM opcode. 650 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 651 * Opcode definitions in The Java Virtual Machine Specification</a> */ 652 short DUP2_X1 = 93; 653 /** Java VM opcode. 654 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 655 * Opcode definitions in The Java Virtual Machine Specification</a> */ 656 short DUP2_X2 = 94; 657 /** Java VM opcode. 658 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 659 * Opcode definitions in The Java Virtual Machine Specification</a> */ 660 short SWAP = 95; 661 /** Java VM opcode. 662 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 663 * Opcode definitions in The Java Virtual Machine Specification</a> */ 664 short IADD = 96; 665 /** Java VM opcode. 666 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 667 * Opcode definitions in The Java Virtual Machine Specification</a> */ 668 short LADD = 97; 669 /** Java VM opcode. 670 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 671 * Opcode definitions in The Java Virtual Machine Specification</a> */ 672 short FADD = 98; 673 /** Java VM opcode. 674 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 675 * Opcode definitions in The Java Virtual Machine Specification</a> */ 676 short DADD = 99; 677 /** Java VM opcode. 678 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 679 * Opcode definitions in The Java Virtual Machine Specification</a> */ 680 short ISUB = 100; 681 /** Java VM opcode. 682 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 683 * Opcode definitions in The Java Virtual Machine Specification</a> */ 684 short LSUB = 101; 685 /** Java VM opcode. 686 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 687 * Opcode definitions in The Java Virtual Machine Specification</a> */ 688 short FSUB = 102; 689 /** Java VM opcode. 690 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 691 * Opcode definitions in The Java Virtual Machine Specification</a> */ 692 short DSUB = 103; 693 /** Java VM opcode. 694 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 695 * Opcode definitions in The Java Virtual Machine Specification</a> */ 696 short IMUL = 104; 697 /** Java VM opcode. 698 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 699 * Opcode definitions in The Java Virtual Machine Specification</a> */ 700 short LMUL = 105; 701 /** Java VM opcode. 702 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 703 * Opcode definitions in The Java Virtual Machine Specification</a> */ 704 short FMUL = 106; 705 /** Java VM opcode. 706 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 707 * Opcode definitions in The Java Virtual Machine Specification</a> */ 708 short DMUL = 107; 709 /** Java VM opcode. 710 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 711 * Opcode definitions in The Java Virtual Machine Specification</a> */ 712 short IDIV = 108; 713 /** Java VM opcode. 714 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 715 * Opcode definitions in The Java Virtual Machine Specification</a> */ 716 short LDIV = 109; 717 /** Java VM opcode. 718 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 719 * Opcode definitions in The Java Virtual Machine Specification</a> */ 720 short FDIV = 110; 721 /** Java VM opcode. 722 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 723 * Opcode definitions in The Java Virtual Machine Specification</a> */ 724 short DDIV = 111; 725 /** Java VM opcode. 726 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 727 * Opcode definitions in The Java Virtual Machine Specification</a> */ 728 short IREM = 112; 729 /** Java VM opcode. 730 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 731 * Opcode definitions in The Java Virtual Machine Specification</a> */ 732 short LREM = 113; 733 /** Java VM opcode. 734 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 735 * Opcode definitions in The Java Virtual Machine Specification</a> */ 736 short FREM = 114; 737 /** Java VM opcode. 738 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 739 * Opcode definitions in The Java Virtual Machine Specification</a> */ 740 short DREM = 115; 741 /** Java VM opcode. 742 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 743 * Opcode definitions in The Java Virtual Machine Specification</a> */ 744 short INEG = 116; 745 /** Java VM opcode. 746 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 747 * Opcode definitions in The Java Virtual Machine Specification</a> */ 748 short LNEG = 117; 749 /** Java VM opcode. 750 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 751 * Opcode definitions in The Java Virtual Machine Specification</a> */ 752 short FNEG = 118; 753 /** Java VM opcode. 754 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 755 * Opcode definitions in The Java Virtual Machine Specification</a> */ 756 short DNEG = 119; 757 /** Java VM opcode. 758 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 759 * Opcode definitions in The Java Virtual Machine Specification</a> */ 760 short ISHL = 120; 761 /** Java VM opcode. 762 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 763 * Opcode definitions in The Java Virtual Machine Specification</a> */ 764 short LSHL = 121; 765 /** Java VM opcode. 766 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 767 * Opcode definitions in The Java Virtual Machine Specification</a> */ 768 short ISHR = 122; 769 /** Java VM opcode. 770 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 771 * Opcode definitions in The Java Virtual Machine Specification</a> */ 772 short LSHR = 123; 773 /** Java VM opcode. 774 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 775 * Opcode definitions in The Java Virtual Machine Specification</a> */ 776 short IUSHR = 124; 777 /** Java VM opcode. 778 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 779 * Opcode definitions in The Java Virtual Machine Specification</a> */ 780 short LUSHR = 125; 781 /** Java VM opcode. 782 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 783 * Opcode definitions in The Java Virtual Machine Specification</a> */ 784 short IAND = 126; 785 /** Java VM opcode. 786 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 787 * Opcode definitions in The Java Virtual Machine Specification</a> */ 788 short LAND = 127; 789 /** Java VM opcode. 790 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 791 * Opcode definitions in The Java Virtual Machine Specification</a> */ 792 short IOR = 128; 793 /** Java VM opcode. 794 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 795 * Opcode definitions in The Java Virtual Machine Specification</a> */ 796 short LOR = 129; 797 /** Java VM opcode. 798 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 799 * Opcode definitions in The Java Virtual Machine Specification</a> */ 800 short IXOR = 130; 801 /** Java VM opcode. 802 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 803 * Opcode definitions in The Java Virtual Machine Specification</a> */ 804 short LXOR = 131; 805 /** Java VM opcode. 806 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 807 * Opcode definitions in The Java Virtual Machine Specification</a> */ 808 short IINC = 132; 809 /** Java VM opcode. 810 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 811 * Opcode definitions in The Java Virtual Machine Specification</a> */ 812 short I2L = 133; 813 /** Java VM opcode. 814 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 815 * Opcode definitions in The Java Virtual Machine Specification</a> */ 816 short I2F = 134; 817 /** Java VM opcode. 818 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 819 * Opcode definitions in The Java Virtual Machine Specification</a> */ 820 short I2D = 135; 821 /** Java VM opcode. 822 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 823 * Opcode definitions in The Java Virtual Machine Specification</a> */ 824 short L2I = 136; 825 /** Java VM opcode. 826 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 827 * Opcode definitions in The Java Virtual Machine Specification</a> */ 828 short L2F = 137; 829 /** Java VM opcode. 830 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 831 * Opcode definitions in The Java Virtual Machine Specification</a> */ 832 short L2D = 138; 833 /** Java VM opcode. 834 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 835 * Opcode definitions in The Java Virtual Machine Specification</a> */ 836 short F2I = 139; 837 /** Java VM opcode. 838 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 839 * Opcode definitions in The Java Virtual Machine Specification</a> */ 840 short F2L = 140; 841 /** Java VM opcode. 842 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 843 * Opcode definitions in The Java Virtual Machine Specification</a> */ 844 short F2D = 141; 845 /** Java VM opcode. 846 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 847 * Opcode definitions in The Java Virtual Machine Specification</a> */ 848 short D2I = 142; 849 /** Java VM opcode. 850 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 851 * Opcode definitions in The Java Virtual Machine Specification</a> */ 852 short D2L = 143; 853 /** Java VM opcode. 854 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 855 * Opcode definitions in The Java Virtual Machine Specification</a> */ 856 short D2F = 144; 857 /** Java VM opcode. 858 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 859 * Opcode definitions in The Java Virtual Machine Specification</a> */ 860 short I2B = 145; 861 /** Java VM opcode. 862 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 863 * Opcode definitions in The Java Virtual Machine Specification</a> */ 864 short INT2BYTE = 145; // Old notion 865 /** Java VM opcode. 866 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 867 * Opcode definitions in The Java Virtual Machine Specification</a> */ 868 short I2C = 146; 869 /** Java VM opcode. 870 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 871 * Opcode definitions in The Java Virtual Machine Specification</a> */ 872 short INT2CHAR = 146; // Old notion 873 /** Java VM opcode. 874 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 875 * Opcode definitions in The Java Virtual Machine Specification</a> */ 876 short I2S = 147; 877 /** Java VM opcode. 878 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 879 * Opcode definitions in The Java Virtual Machine Specification</a> */ 880 short INT2SHORT = 147; // Old notion 881 /** Java VM opcode. 882 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 883 * Opcode definitions in The Java Virtual Machine Specification</a> */ 884 short LCMP = 148; 885 /** Java VM opcode. 886 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 887 * Opcode definitions in The Java Virtual Machine Specification</a> */ 888 short FCMPL = 149; 889 /** Java VM opcode. 890 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 891 * Opcode definitions in The Java Virtual Machine Specification</a> */ 892 short FCMPG = 150; 893 /** Java VM opcode. 894 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 895 * Opcode definitions in The Java Virtual Machine Specification</a> */ 896 short DCMPL = 151; 897 /** Java VM opcode. 898 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 899 * Opcode definitions in The Java Virtual Machine Specification</a> */ 900 short DCMPG = 152; 901 /** Java VM opcode. 902 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 903 * Opcode definitions in The Java Virtual Machine Specification</a> */ 904 short IFEQ = 153; 905 /** Java VM opcode. 906 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 907 * Opcode definitions in The Java Virtual Machine Specification</a> */ 908 short IFNE = 154; 909 /** Java VM opcode. 910 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 911 * Opcode definitions in The Java Virtual Machine Specification</a> */ 912 short IFLT = 155; 913 /** Java VM opcode. 914 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 915 * Opcode definitions in The Java Virtual Machine Specification</a> */ 916 short IFGE = 156; 917 /** Java VM opcode. 918 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 919 * Opcode definitions in The Java Virtual Machine Specification</a> */ 920 short IFGT = 157; 921 /** Java VM opcode. 922 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 923 * Opcode definitions in The Java Virtual Machine Specification</a> */ 924 short IFLE = 158; 925 /** Java VM opcode. 926 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 927 * Opcode definitions in The Java Virtual Machine Specification</a> */ 928 short IF_ICMPEQ = 159; 929 /** Java VM opcode. 930 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 931 * Opcode definitions in The Java Virtual Machine Specification</a> */ 932 short IF_ICMPNE = 160; 933 /** Java VM opcode. 934 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 935 * Opcode definitions in The Java Virtual Machine Specification</a> */ 936 short IF_ICMPLT = 161; 937 /** Java VM opcode. 938 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 939 * Opcode definitions in The Java Virtual Machine Specification</a> */ 940 short IF_ICMPGE = 162; 941 /** Java VM opcode. 942 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 943 * Opcode definitions in The Java Virtual Machine Specification</a> */ 944 short IF_ICMPGT = 163; 945 /** Java VM opcode. 946 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 947 * Opcode definitions in The Java Virtual Machine Specification</a> */ 948 short IF_ICMPLE = 164; 949 /** Java VM opcode. 950 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 951 * Opcode definitions in The Java Virtual Machine Specification</a> */ 952 short IF_ACMPEQ = 165; 953 /** Java VM opcode. 954 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 955 * Opcode definitions in The Java Virtual Machine Specification</a> */ 956 short IF_ACMPNE = 166; 957 /** Java VM opcode. 958 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 959 * Opcode definitions in The Java Virtual Machine Specification</a> */ 960 short GOTO = 167; 961 /** Java VM opcode. 962 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 963 * Opcode definitions in The Java Virtual Machine Specification</a> */ 964 short JSR = 168; 965 /** Java VM opcode. 966 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 967 * Opcode definitions in The Java Virtual Machine Specification</a> */ 968 short RET = 169; 969 /** Java VM opcode. 970 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 971 * Opcode definitions in The Java Virtual Machine Specification</a> */ 972 short TABLESWITCH = 170; 973 /** Java VM opcode. 974 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 975 * Opcode definitions in The Java Virtual Machine Specification</a> */ 976 short LOOKUPSWITCH = 171; 977 /** Java VM opcode. 978 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 979 * Opcode definitions in The Java Virtual Machine Specification</a> */ 980 short IRETURN = 172; 981 /** Java VM opcode. 982 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 983 * Opcode definitions in The Java Virtual Machine Specification</a> */ 984 short LRETURN = 173; 985 /** Java VM opcode. 986 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 987 * Opcode definitions in The Java Virtual Machine Specification</a> */ 988 short FRETURN = 174; 989 /** Java VM opcode. 990 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 991 * Opcode definitions in The Java Virtual Machine Specification</a> */ 992 short DRETURN = 175; 993 /** Java VM opcode. 994 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 995 * Opcode definitions in The Java Virtual Machine Specification</a> */ 996 short ARETURN = 176; 997 /** Java VM opcode. 998 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 999 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1000 short RETURN = 177; 1001 /** Java VM opcode. 1002 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 1003 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1004 short GETSTATIC = 178; 1005 /** Java VM opcode. 1006 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 1007 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1008 short PUTSTATIC = 179; 1009 /** Java VM opcode. 1010 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 1011 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1012 short GETFIELD = 180; 1013 /** Java VM opcode. 1014 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 1015 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1016 short PUTFIELD = 181; 1017 /** Java VM opcode. 1018 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 1019 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1020 short INVOKEVIRTUAL = 182; 1021 /** Java VM opcode. 1022 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 1023 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1024 short INVOKESPECIAL = 183; 1025 /** Java VM opcode. 1026 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 1027 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1028 short INVOKENONVIRTUAL = 183; // Old name in JDK 1.0 1029 /** Java VM opcode. 1030 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 1031 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1032 short INVOKESTATIC = 184; 1033 /** Java VM opcode. 1034 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 1035 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1036 short INVOKEINTERFACE = 185; 1037 /** Java VM opcode. 1038 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 1039 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1040 short INVOKEDYNAMIC = 186; 1041 /** Java VM opcode. 1042 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 1043 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1044 short NEW = 187; 1045 /** Java VM opcode. 1046 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 1047 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1048 short NEWARRAY = 188; 1049 /** Java VM opcode. 1050 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 1051 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1052 short ANEWARRAY = 189; 1053 /** Java VM opcode. 1054 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 1055 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1056 short ARRAYLENGTH = 190; 1057 /** Java VM opcode. 1058 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 1059 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1060 short ATHROW = 191; 1061 /** Java VM opcode. 1062 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 1063 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1064 short CHECKCAST = 192; 1065 /** Java VM opcode. 1066 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 1067 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1068 short INSTANCEOF = 193; 1069 /** Java VM opcode. 1070 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 1071 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1072 short MONITORENTER = 194; 1073 /** Java VM opcode. 1074 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 1075 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1076 short MONITOREXIT = 195; 1077 /** Java VM opcode. 1078 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 1079 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1080 short WIDE = 196; 1081 /** Java VM opcode. 1082 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 1083 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1084 short MULTIANEWARRAY = 197; 1085 /** Java VM opcode. 1086 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 1087 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1088 short IFNULL = 198; 1089 /** Java VM opcode. 1090 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 1091 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1092 short IFNONNULL = 199; 1093 /** Java VM opcode. 1094 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 1095 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1096 short GOTO_W = 200; 1097 /** Java VM opcode. 1098 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5"> 1099 * Opcode definitions in The Java Virtual Machine Specification</a> */ 1100 short JSR_W = 201; 1101 1102 /** JVM internal opcode. 1103 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.2"> 1104 * Reserved opcodes in the Java Virtual Machine Specification</a> */ 1105 short BREAKPOINT = 202; 1106 /** JVM internal opcode. 1107 * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html"> 1108 * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a> 1109 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> 1110 * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */ 1111 short LDC_QUICK = 203; 1112 /** JVM internal opcode. 1113 * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html"> 1114 * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a> 1115 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> 1116 * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */ 1117 short LDC_W_QUICK = 204; 1118 /** JVM internal opcode. 1119 * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html"> 1120 * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a> 1121 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> 1122 * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */ 1123 short LDC2_W_QUICK = 205; 1124 /** JVM internal opcode. 1125 * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html"> 1126 * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a> 1127 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> 1128 * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */ 1129 short GETFIELD_QUICK = 206; 1130 /** JVM internal opcode. 1131 * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html"> 1132 * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a> 1133 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> 1134 * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */ 1135 short PUTFIELD_QUICK = 207; 1136 /** JVM internal opcode. 1137 * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html"> 1138 * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a> 1139 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> 1140 * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */ 1141 short GETFIELD2_QUICK = 208; 1142 /** JVM internal opcode. 1143 * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html"> 1144 * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a> 1145 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> 1146 * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */ 1147 short PUTFIELD2_QUICK = 209; 1148 /** JVM internal opcode. 1149 * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html"> 1150 * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a> 1151 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> 1152 * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */ 1153 short GETSTATIC_QUICK = 210; 1154 /** JVM internal opcode. 1155 * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html"> 1156 * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a> 1157 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> 1158 * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */ 1159 short PUTSTATIC_QUICK = 211; 1160 /** JVM internal opcode. 1161 * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html"> 1162 * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a> 1163 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> 1164 * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */ 1165 short GETSTATIC2_QUICK = 212; 1166 /** JVM internal opcode. 1167 * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html"> 1168 * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a> 1169 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> 1170 * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */ 1171 short PUTSTATIC2_QUICK = 213; 1172 /** JVM internal opcode. 1173 * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html"> 1174 * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a> 1175 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> 1176 * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */ 1177 short INVOKEVIRTUAL_QUICK = 214; 1178 /** JVM internal opcode. 1179 * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html"> 1180 * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a> 1181 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> 1182 * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */ 1183 short INVOKENONVIRTUAL_QUICK = 215; 1184 /** JVM internal opcode. 1185 * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html"> 1186 * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a> 1187 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> 1188 * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */ 1189 short INVOKESUPER_QUICK = 216; 1190 /** JVM internal opcode. 1191 * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html"> 1192 * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a> 1193 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> 1194 * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */ 1195 short INVOKESTATIC_QUICK = 217; 1196 /** JVM internal opcode. 1197 * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html"> 1198 * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a> 1199 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> 1200 * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */ 1201 short INVOKEINTERFACE_QUICK = 218; 1202 /** JVM internal opcode. 1203 * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html"> 1204 * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a> 1205 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> 1206 * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */ 1207 short INVOKEVIRTUALOBJECT_QUICK = 219; 1208 /** JVM internal opcode. 1209 * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html"> 1210 * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a> 1211 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> 1212 * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */ 1213 short NEW_QUICK = 221; 1214 /** JVM internal opcode. 1215 * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html"> 1216 * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a> 1217 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> 1218 * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */ 1219 short ANEWARRAY_QUICK = 222; 1220 /** JVM internal opcode. 1221 * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html"> 1222 * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a> 1223 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> 1224 * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */ 1225 short MULTIANEWARRAY_QUICK = 223; 1226 /** JVM internal opcode. 1227 * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html"> 1228 * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a> 1229 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> 1230 * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */ 1231 short CHECKCAST_QUICK = 224; 1232 /** JVM internal opcode. 1233 * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html"> 1234 * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a> 1235 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> 1236 * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */ 1237 short INSTANCEOF_QUICK = 225; 1238 /** JVM internal opcode. 1239 * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html"> 1240 * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a> 1241 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> 1242 * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */ 1243 short INVOKEVIRTUAL_QUICK_W = 226; 1244 /** JVM internal opcode. 1245 * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html"> 1246 * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a> 1247 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> 1248 * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */ 1249 short GETFIELD_QUICK_W = 227; 1250 /** JVM internal opcode. 1251 * @see <a href="https://web.archive.org/web/20120108031230/http://java.sun.com/docs/books/jvms/first_edition/html/Quick.doc.html"> 1252 * Specification of _quick opcodes in the Java Virtual Machine Specification (version 1)</a> 1253 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se5.0/html/ChangesAppendix.doc.html#448885"> 1254 * Why the _quick opcodes were removed from the second version of the Java Virtual Machine Specification.</a> */ 1255 short PUTFIELD_QUICK_W = 228; 1256 /** JVM internal opcode. 1257 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.2"> 1258 * Reserved opcodes in the Java Virtual Machine Specification</a> */ 1259 short IMPDEP1 = 254; 1260 /** JVM internal opcode. 1261 * @see <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.2"> 1262 * Reserved opcodes in the Java Virtual Machine Specification</a> */ 1263 short IMPDEP2 = 255; 1264 1265 /** 1266 * BCEL virtual instruction for pushing an arbitrary data type onto the stack. Will be converted to the appropriate JVM 1267 * opcode when the class is dumped. 1268 */ 1269 short PUSH = 4711; 1270 /** 1271 * BCEL virtual instruction for either LOOKUPSWITCH or TABLESWITCH. Will be converted to the appropriate JVM 1272 * opcode when the class is dumped. 1273 */ 1274 short SWITCH = 4712; 1275 1276 /** Illegal opcode. */ 1277 short UNDEFINED = -1; 1278 /** Illegal opcode. */ 1279 short UNPREDICTABLE = -2; 1280 /** Illegal opcode. */ 1281 short RESERVED = -3; 1282 /** Mnemonic for an illegal opcode. */ 1283 String ILLEGAL_OPCODE = "<illegal opcode>"; 1284 /** Mnemonic for an illegal type. */ 1285 String ILLEGAL_TYPE = "<illegal type>"; 1286 1287 /** Boolean data type. */ 1288 byte T_BOOLEAN = 4; 1289 /** Char data type. */ 1290 byte T_CHAR = 5; 1291 /** Float data type. */ 1292 byte T_FLOAT = 6; 1293 /** Double data type. */ 1294 byte T_DOUBLE = 7; 1295 /** Byte data type. */ 1296 byte T_BYTE = 8; 1297 /** Short data type. */ 1298 byte T_SHORT = 9; 1299 /** Int data type. */ 1300 byte T_INT = 10; 1301 /** Long data type. */ 1302 byte T_LONG = 11; 1303 1304 /** Void data type (non-standard). */ 1305 byte T_VOID = 12; // Non-standard 1306 /** Array data type. */ 1307 byte T_ARRAY = 13; 1308 /** Object data type. */ 1309 byte T_OBJECT = 14; 1310 /** Reference data type (deprecated). */ 1311 byte T_REFERENCE = 14; // Deprecated 1312 /** Unknown data type. */ 1313 byte T_UNKNOWN = 15; 1314 /** Address data type. */ 1315 byte T_ADDRESS = 16; 1316 1317 /** The primitive type names corresponding to the T_XX constants, 1318 * e.g., TYPE_NAMES[T_INT] = "int" 1319 */ 1320 String[] TYPE_NAMES = { 1321 ILLEGAL_TYPE, ILLEGAL_TYPE, ILLEGAL_TYPE, ILLEGAL_TYPE, 1322 "boolean", "char", "float", "double", "byte", "short", "int", "long", 1323 "void", "array", "object", "unknown", "address" 1324 }; 1325 1326 /** The primitive class names corresponding to the T_XX constants, 1327 * e.g., CLASS_TYPE_NAMES[T_INT] = "java.lang.Integer" 1328 */ 1329 String[] CLASS_TYPE_NAMES = { 1330 ILLEGAL_TYPE, ILLEGAL_TYPE, ILLEGAL_TYPE, ILLEGAL_TYPE, 1331 "java.lang.Boolean", "java.lang.Character", "java.lang.Float", 1332 "java.lang.Double", "java.lang.Byte", "java.lang.Short", 1333 "java.lang.Integer", "java.lang.Long", "java.lang.Void", 1334 ILLEGAL_TYPE, ILLEGAL_TYPE, ILLEGAL_TYPE, ILLEGAL_TYPE 1335 }; 1336 1337 /** The signature characters corresponding to primitive types, 1338 * e.g., SHORT_TYPE_NAMES[T_INT] = "I" 1339 */ 1340 String[] SHORT_TYPE_NAMES = { 1341 ILLEGAL_TYPE, ILLEGAL_TYPE, ILLEGAL_TYPE, ILLEGAL_TYPE, 1342 "Z", "C", "F", "D", "B", "S", "I", "J", 1343 "V", ILLEGAL_TYPE, ILLEGAL_TYPE, ILLEGAL_TYPE 1344 }; 1345 1346 /** 1347 * Number of byte code operands for each opcode, i.e., number of bytes after the tag byte 1348 * itself. Indexed by opcode, so NO_OF_OPERANDS[BIPUSH] = the number of operands for a bipush 1349 * instruction. 1350 */ 1351 short[] NO_OF_OPERANDS = { 1352 0/*nop*/, 0/*aconst_null*/, 0/*iconst_m1*/, 0/*iconst_0*/, 1353 0/*iconst_1*/, 0/*iconst_2*/, 0/*iconst_3*/, 0/*iconst_4*/, 1354 0/*iconst_5*/, 0/*lconst_0*/, 0/*lconst_1*/, 0/*fconst_0*/, 1355 0/*fconst_1*/, 0/*fconst_2*/, 0/*dconst_0*/, 0/*dconst_1*/, 1356 1/*bipush*/, 2/*sipush*/, 1/*ldc*/, 2/*ldc_w*/, 2/*ldc2_w*/, 1357 1/*iload*/, 1/*lload*/, 1/*fload*/, 1/*dload*/, 1/*aload*/, 1358 0/*iload_0*/, 0/*iload_1*/, 0/*iload_2*/, 0/*iload_3*/, 1359 0/*lload_0*/, 0/*lload_1*/, 0/*lload_2*/, 0/*lload_3*/, 1360 0/*fload_0*/, 0/*fload_1*/, 0/*fload_2*/, 0/*fload_3*/, 1361 0/*dload_0*/, 0/*dload_1*/, 0/*dload_2*/, 0/*dload_3*/, 1362 0/*aload_0*/, 0/*aload_1*/, 0/*aload_2*/, 0/*aload_3*/, 1363 0/*iaload*/, 0/*laload*/, 0/*faload*/, 0/*daload*/, 1364 0/*aaload*/, 0/*baload*/, 0/*caload*/, 0/*saload*/, 1365 1/*istore*/, 1/*lstore*/, 1/*fstore*/, 1/*dstore*/, 1366 1/*astore*/, 0/*istore_0*/, 0/*istore_1*/, 0/*istore_2*/, 1367 0/*istore_3*/, 0/*lstore_0*/, 0/*lstore_1*/, 0/*lstore_2*/, 1368 0/*lstore_3*/, 0/*fstore_0*/, 0/*fstore_1*/, 0/*fstore_2*/, 1369 0/*fstore_3*/, 0/*dstore_0*/, 0/*dstore_1*/, 0/*dstore_2*/, 1370 0/*dstore_3*/, 0/*astore_0*/, 0/*astore_1*/, 0/*astore_2*/, 1371 0/*astore_3*/, 0/*iastore*/, 0/*lastore*/, 0/*fastore*/, 1372 0/*dastore*/, 0/*aastore*/, 0/*bastore*/, 0/*castore*/, 1373 0/*sastore*/, 0/*pop*/, 0/*pop2*/, 0/*dup*/, 0/*dup_x1*/, 1374 0/*dup_x2*/, 0/*dup2*/, 0/*dup2_x1*/, 0/*dup2_x2*/, 0/*swap*/, 1375 0/*iadd*/, 0/*ladd*/, 0/*fadd*/, 0/*dadd*/, 0/*isub*/, 1376 0/*lsub*/, 0/*fsub*/, 0/*dsub*/, 0/*imul*/, 0/*lmul*/, 1377 0/*fmul*/, 0/*dmul*/, 0/*idiv*/, 0/*ldiv*/, 0/*fdiv*/, 1378 0/*ddiv*/, 0/*irem*/, 0/*lrem*/, 0/*frem*/, 0/*drem*/, 1379 0/*ineg*/, 0/*lneg*/, 0/*fneg*/, 0/*dneg*/, 0/*ishl*/, 1380 0/*lshl*/, 0/*ishr*/, 0/*lshr*/, 0/*iushr*/, 0/*lushr*/, 1381 0/*iand*/, 0/*land*/, 0/*ior*/, 0/*lor*/, 0/*ixor*/, 0/*lxor*/, 1382 2/*iinc*/, 0/*i2l*/, 0/*i2f*/, 0/*i2d*/, 0/*l2i*/, 0/*l2f*/, 1383 0/*l2d*/, 0/*f2i*/, 0/*f2l*/, 0/*f2d*/, 0/*d2i*/, 0/*d2l*/, 1384 0/*d2f*/, 0/*i2b*/, 0/*i2c*/, 0/*i2s*/, 0/*lcmp*/, 0/*fcmpl*/, 1385 0/*fcmpg*/, 0/*dcmpl*/, 0/*dcmpg*/, 2/*ifeq*/, 2/*ifne*/, 1386 2/*iflt*/, 2/*ifge*/, 2/*ifgt*/, 2/*ifle*/, 2/*if_icmpeq*/, 1387 2/*if_icmpne*/, 2/*if_icmplt*/, 2/*if_icmpge*/, 2/*if_icmpgt*/, 1388 2/*if_icmple*/, 2/*if_acmpeq*/, 2/*if_acmpne*/, 2/*goto*/, 1389 2/*jsr*/, 1/*ret*/, UNPREDICTABLE/*tableswitch*/, UNPREDICTABLE/*lookupswitch*/, 1390 0/*ireturn*/, 0/*lreturn*/, 0/*freturn*/, 1391 0/*dreturn*/, 0/*areturn*/, 0/*return*/, 1392 2/*getstatic*/, 2/*putstatic*/, 2/*getfield*/, 1393 2/*putfield*/, 2/*invokevirtual*/, 2/*invokespecial*/, 2/*invokestatic*/, 1394 4/*invokeinterface*/, 4/*invokedynamic*/, 2/*new*/, 1395 1/*newarray*/, 2/*anewarray*/, 1396 0/*arraylength*/, 0/*athrow*/, 2/*checkcast*/, 1397 2/*instanceof*/, 0/*monitorenter*/, 1398 0/*monitorexit*/, UNPREDICTABLE/*wide*/, 3/*multianewarray*/, 1399 2/*ifnull*/, 2/*ifnonnull*/, 4/*goto_w*/, 1400 4/*jsr_w*/, 0/*breakpoint*/, UNDEFINED, 1401 UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, 1402 UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, 1403 UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, 1404 UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, 1405 UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, 1406 UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, 1407 UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, 1408 UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, 1409 UNDEFINED, UNDEFINED, RESERVED/*impdep1*/, RESERVED/*impdep2*/ 1410 }; 1411 1412 /** 1413 * How the byte code operands are to be interpreted for each opcode. 1414 * Indexed by opcode. TYPE_OF_OPERANDS[ILOAD] = an array of shorts 1415 * describing the data types for the instruction. 1416 */ 1417 short[][] TYPE_OF_OPERANDS = { 1418 {}/*nop*/, {}/*aconst_null*/, {}/*iconst_m1*/, {}/*iconst_0*/, 1419 {}/*iconst_1*/, {}/*iconst_2*/, {}/*iconst_3*/, {}/*iconst_4*/, 1420 {}/*iconst_5*/, {}/*lconst_0*/, {}/*lconst_1*/, {}/*fconst_0*/, 1421 {}/*fconst_1*/, {}/*fconst_2*/, {}/*dconst_0*/, {}/*dconst_1*/, 1422 {T_BYTE}/*bipush*/, {T_SHORT}/*sipush*/, {T_BYTE}/*ldc*/, 1423 {T_SHORT}/*ldc_w*/, {T_SHORT}/*ldc2_w*/, 1424 {T_BYTE}/*iload*/, {T_BYTE}/*lload*/, {T_BYTE}/*fload*/, 1425 {T_BYTE}/*dload*/, {T_BYTE}/*aload*/, {}/*iload_0*/, 1426 {}/*iload_1*/, {}/*iload_2*/, {}/*iload_3*/, {}/*lload_0*/, 1427 {}/*lload_1*/, {}/*lload_2*/, {}/*lload_3*/, {}/*fload_0*/, 1428 {}/*fload_1*/, {}/*fload_2*/, {}/*fload_3*/, {}/*dload_0*/, 1429 {}/*dload_1*/, {}/*dload_2*/, {}/*dload_3*/, {}/*aload_0*/, 1430 {}/*aload_1*/, {}/*aload_2*/, {}/*aload_3*/, {}/*iaload*/, 1431 {}/*laload*/, {}/*faload*/, {}/*daload*/, {}/*aaload*/, 1432 {}/*baload*/, {}/*caload*/, {}/*saload*/, {T_BYTE}/*istore*/, 1433 {T_BYTE}/*lstore*/, {T_BYTE}/*fstore*/, {T_BYTE}/*dstore*/, 1434 {T_BYTE}/*astore*/, {}/*istore_0*/, {}/*istore_1*/, 1435 {}/*istore_2*/, {}/*istore_3*/, {}/*lstore_0*/, {}/*lstore_1*/, 1436 {}/*lstore_2*/, {}/*lstore_3*/, {}/*fstore_0*/, {}/*fstore_1*/, 1437 {}/*fstore_2*/, {}/*fstore_3*/, {}/*dstore_0*/, {}/*dstore_1*/, 1438 {}/*dstore_2*/, {}/*dstore_3*/, {}/*astore_0*/, {}/*astore_1*/, 1439 {}/*astore_2*/, {}/*astore_3*/, {}/*iastore*/, {}/*lastore*/, 1440 {}/*fastore*/, {}/*dastore*/, {}/*aastore*/, {}/*bastore*/, 1441 {}/*castore*/, {}/*sastore*/, {}/*pop*/, {}/*pop2*/, {}/*dup*/, 1442 {}/*dup_x1*/, {}/*dup_x2*/, {}/*dup2*/, {}/*dup2_x1*/, 1443 {}/*dup2_x2*/, {}/*swap*/, {}/*iadd*/, {}/*ladd*/, {}/*fadd*/, 1444 {}/*dadd*/, {}/*isub*/, {}/*lsub*/, {}/*fsub*/, {}/*dsub*/, 1445 {}/*imul*/, {}/*lmul*/, {}/*fmul*/, {}/*dmul*/, {}/*idiv*/, 1446 {}/*ldiv*/, {}/*fdiv*/, {}/*ddiv*/, {}/*irem*/, {}/*lrem*/, 1447 {}/*frem*/, {}/*drem*/, {}/*ineg*/, {}/*lneg*/, {}/*fneg*/, 1448 {}/*dneg*/, {}/*ishl*/, {}/*lshl*/, {}/*ishr*/, {}/*lshr*/, 1449 {}/*iushr*/, {}/*lushr*/, {}/*iand*/, {}/*land*/, {}/*ior*/, 1450 {}/*lor*/, {}/*ixor*/, {}/*lxor*/, {T_BYTE, T_BYTE}/*iinc*/, 1451 {}/*i2l*/, {}/*i2f*/, {}/*i2d*/, {}/*l2i*/, {}/*l2f*/, {}/*l2d*/, 1452 {}/*f2i*/, {}/*f2l*/, {}/*f2d*/, {}/*d2i*/, {}/*d2l*/, {}/*d2f*/, 1453 {}/*i2b*/, {}/*i2c*/,{}/*i2s*/, {}/*lcmp*/, {}/*fcmpl*/, 1454 {}/*fcmpg*/, {}/*dcmpl*/, {}/*dcmpg*/, {T_SHORT}/*ifeq*/, 1455 {T_SHORT}/*ifne*/, {T_SHORT}/*iflt*/, {T_SHORT}/*ifge*/, 1456 {T_SHORT}/*ifgt*/, {T_SHORT}/*ifle*/, {T_SHORT}/*if_icmpeq*/, 1457 {T_SHORT}/*if_icmpne*/, {T_SHORT}/*if_icmplt*/, 1458 {T_SHORT}/*if_icmpge*/, {T_SHORT}/*if_icmpgt*/, 1459 {T_SHORT}/*if_icmple*/, {T_SHORT}/*if_acmpeq*/, 1460 {T_SHORT}/*if_acmpne*/, {T_SHORT}/*goto*/, {T_SHORT}/*jsr*/, 1461 {T_BYTE}/*ret*/, {}/*tableswitch*/, {}/*lookupswitch*/, 1462 {}/*ireturn*/, {}/*lreturn*/, {}/*freturn*/, {}/*dreturn*/, 1463 {}/*areturn*/, {}/*return*/, {T_SHORT}/*getstatic*/, 1464 {T_SHORT}/*putstatic*/, {T_SHORT}/*getfield*/, 1465 {T_SHORT}/*putfield*/, {T_SHORT}/*invokevirtual*/, 1466 {T_SHORT}/*invokespecial*/, {T_SHORT}/*invokestatic*/, 1467 {T_SHORT, T_BYTE, T_BYTE}/*invokeinterface*/, {T_SHORT, T_BYTE, T_BYTE}/*invokedynamic*/, 1468 {T_SHORT}/*new*/, {T_BYTE}/*newarray*/, 1469 {T_SHORT}/*anewarray*/, {}/*arraylength*/, {}/*athrow*/, 1470 {T_SHORT}/*checkcast*/, {T_SHORT}/*instanceof*/, 1471 {}/*monitorenter*/, {}/*monitorexit*/, {T_BYTE}/*wide*/, 1472 {T_SHORT, T_BYTE}/*multianewarray*/, {T_SHORT}/*ifnull*/, 1473 {T_SHORT}/*ifnonnull*/, {T_INT}/*goto_w*/, {T_INT}/*jsr_w*/, 1474 {}/*breakpoint*/, {}, {}, {}, {}, {}, {}, {}, 1475 {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, 1476 {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, 1477 {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, 1478 {}/*impdep1*/, {}/*impdep2*/ 1479 }; 1480 1481 /** 1482 * Names of opcodes. Indexed by opcode. OPCODE_NAMES[ALOAD] = "aload". 1483 */ 1484 String[] OPCODE_NAMES = { 1485 "nop", "aconst_null", "iconst_m1", "iconst_0", "iconst_1", 1486 "iconst_2", "iconst_3", "iconst_4", "iconst_5", "lconst_0", 1487 "lconst_1", "fconst_0", "fconst_1", "fconst_2", "dconst_0", 1488 "dconst_1", "bipush", "sipush", "ldc", "ldc_w", "ldc2_w", "iload", 1489 "lload", "fload", "dload", "aload", "iload_0", "iload_1", "iload_2", 1490 "iload_3", "lload_0", "lload_1", "lload_2", "lload_3", "fload_0", 1491 "fload_1", "fload_2", "fload_3", "dload_0", "dload_1", "dload_2", 1492 "dload_3", "aload_0", "aload_1", "aload_2", "aload_3", "iaload", 1493 "laload", "faload", "daload", "aaload", "baload", "caload", "saload", 1494 "istore", "lstore", "fstore", "dstore", "astore", "istore_0", 1495 "istore_1", "istore_2", "istore_3", "lstore_0", "lstore_1", 1496 "lstore_2", "lstore_3", "fstore_0", "fstore_1", "fstore_2", 1497 "fstore_3", "dstore_0", "dstore_1", "dstore_2", "dstore_3", 1498 "astore_0", "astore_1", "astore_2", "astore_3", "iastore", "lastore", 1499 "fastore", "dastore", "aastore", "bastore", "castore", "sastore", 1500 "pop", "pop2", "dup", "dup_x1", "dup_x2", "dup2", "dup2_x1", 1501 "dup2_x2", "swap", "iadd", "ladd", "fadd", "dadd", "isub", "lsub", 1502 "fsub", "dsub", "imul", "lmul", "fmul", "dmul", "idiv", "ldiv", 1503 "fdiv", "ddiv", "irem", "lrem", "frem", "drem", "ineg", "lneg", 1504 "fneg", "dneg", "ishl", "lshl", "ishr", "lshr", "iushr", "lushr", 1505 "iand", "land", "ior", "lor", "ixor", "lxor", "iinc", "i2l", "i2f", 1506 "i2d", "l2i", "l2f", "l2d", "f2i", "f2l", "f2d", "d2i", "d2l", "d2f", 1507 "i2b", "i2c", "i2s", "lcmp", "fcmpl", "fcmpg", 1508 "dcmpl", "dcmpg", "ifeq", "ifne", "iflt", "ifge", "ifgt", "ifle", 1509 "if_icmpeq", "if_icmpne", "if_icmplt", "if_icmpge", "if_icmpgt", 1510 "if_icmple", "if_acmpeq", "if_acmpne", "goto", "jsr", "ret", 1511 "tableswitch", "lookupswitch", "ireturn", "lreturn", "freturn", 1512 "dreturn", "areturn", "return", "getstatic", "putstatic", "getfield", 1513 "putfield", "invokevirtual", "invokespecial", "invokestatic", 1514 "invokeinterface", "invokedynamic", "new", "newarray", "anewarray", 1515 "arraylength", "athrow", "checkcast", "instanceof", "monitorenter", 1516 "monitorexit", "wide", "multianewarray", "ifnull", "ifnonnull", 1517 "goto_w", "jsr_w", "breakpoint", ILLEGAL_OPCODE, ILLEGAL_OPCODE, 1518 ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, 1519 ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, 1520 ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, 1521 ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, 1522 ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, 1523 ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, 1524 ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, 1525 ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, 1526 ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, 1527 ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, 1528 ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, 1529 ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, 1530 ILLEGAL_OPCODE, "impdep1", "impdep2" 1531 }; 1532 1533 /** 1534 * Number of words consumed on operand stack by instructions. 1535 * Indexed by opcode. CONSUME_STACK[FALOAD] = number of words 1536 * consumed from the stack by a faload instruction. 1537 */ 1538 int[] CONSUME_STACK = { 1539 0/*nop*/, 0/*aconst_null*/, 0/*iconst_m1*/, 0/*iconst_0*/, 0/*iconst_1*/, 1540 0/*iconst_2*/, 0/*iconst_3*/, 0/*iconst_4*/, 0/*iconst_5*/, 0/*lconst_0*/, 1541 0/*lconst_1*/, 0/*fconst_0*/, 0/*fconst_1*/, 0/*fconst_2*/, 0/*dconst_0*/, 1542 0/*dconst_1*/, 0/*bipush*/, 0/*sipush*/, 0/*ldc*/, 0/*ldc_w*/, 0/*ldc2_w*/, 0/*iload*/, 1543 0/*lload*/, 0/*fload*/, 0/*dload*/, 0/*aload*/, 0/*iload_0*/, 0/*iload_1*/, 0/*iload_2*/, 1544 0/*iload_3*/, 0/*lload_0*/, 0/*lload_1*/, 0/*lload_2*/, 0/*lload_3*/, 0/*fload_0*/, 1545 0/*fload_1*/, 0/*fload_2*/, 0/*fload_3*/, 0/*dload_0*/, 0/*dload_1*/, 0/*dload_2*/, 1546 0/*dload_3*/, 0/*aload_0*/, 0/*aload_1*/, 0/*aload_2*/, 0/*aload_3*/, 2/*iaload*/, 1547 2/*laload*/, 2/*faload*/, 2/*daload*/, 2/*aaload*/, 2/*baload*/, 2/*caload*/, 2/*saload*/, 1548 1/*istore*/, 2/*lstore*/, 1/*fstore*/, 2/*dstore*/, 1/*astore*/, 1/*istore_0*/, 1549 1/*istore_1*/, 1/*istore_2*/, 1/*istore_3*/, 2/*lstore_0*/, 2/*lstore_1*/, 1550 2/*lstore_2*/, 2/*lstore_3*/, 1/*fstore_0*/, 1/*fstore_1*/, 1/*fstore_2*/, 1551 1/*fstore_3*/, 2/*dstore_0*/, 2/*dstore_1*/, 2/*dstore_2*/, 2/*dstore_3*/, 1552 1/*astore_0*/, 1/*astore_1*/, 1/*astore_2*/, 1/*astore_3*/, 3/*iastore*/, 4/*lastore*/, 1553 3/*fastore*/, 4/*dastore*/, 3/*aastore*/, 3/*bastore*/, 3/*castore*/, 3/*sastore*/, 1554 1/*pop*/, 2/*pop2*/, 1/*dup*/, 2/*dup_x1*/, 3/*dup_x2*/, 2/*dup2*/, 3/*dup2_x1*/, 1555 4/*dup2_x2*/, 2/*swap*/, 2/*iadd*/, 4/*ladd*/, 2/*fadd*/, 4/*dadd*/, 2/*isub*/, 4/*lsub*/, 1556 2/*fsub*/, 4/*dsub*/, 2/*imul*/, 4/*lmul*/, 2/*fmul*/, 4/*dmul*/, 2/*idiv*/, 4/*ldiv*/, 1557 2/*fdiv*/, 4/*ddiv*/, 2/*irem*/, 4/*lrem*/, 2/*frem*/, 4/*drem*/, 1/*ineg*/, 2/*lneg*/, 1558 1/*fneg*/, 2/*dneg*/, 2/*ishl*/, 3/*lshl*/, 2/*ishr*/, 3/*lshr*/, 2/*iushr*/, 3/*lushr*/, 1559 2/*iand*/, 4/*land*/, 2/*ior*/, 4/*lor*/, 2/*ixor*/, 4/*lxor*/, 0/*iinc*/, 1560 1/*i2l*/, 1/*i2f*/, 1/*i2d*/, 2/*l2i*/, 2/*l2f*/, 2/*l2d*/, 1/*f2i*/, 1/*f2l*/, 1561 1/*f2d*/, 2/*d2i*/, 2/*d2l*/, 2/*d2f*/, 1/*i2b*/, 1/*i2c*/, 1/*i2s*/, 1562 4/*lcmp*/, 2/*fcmpl*/, 2/*fcmpg*/, 4/*dcmpl*/, 4/*dcmpg*/, 1/*ifeq*/, 1/*ifne*/, 1563 1/*iflt*/, 1/*ifge*/, 1/*ifgt*/, 1/*ifle*/, 2/*if_icmpeq*/, 2/*if_icmpne*/, 2/*if_icmplt*/, 1564 2 /*if_icmpge*/, 2/*if_icmpgt*/, 2/*if_icmple*/, 2/*if_acmpeq*/, 2/*if_acmpne*/, 1565 0/*goto*/, 0/*jsr*/, 0/*ret*/, 1/*tableswitch*/, 1/*lookupswitch*/, 1/*ireturn*/, 1566 2/*lreturn*/, 1/*freturn*/, 2/*dreturn*/, 1/*areturn*/, 0/*return*/, 0/*getstatic*/, 1567 UNPREDICTABLE/*putstatic*/, 1/*getfield*/, UNPREDICTABLE/*putfield*/, 1568 UNPREDICTABLE/*invokevirtual*/, UNPREDICTABLE/*invokespecial*/, 1569 UNPREDICTABLE/*invokestatic*/, 1570 UNPREDICTABLE/*invokeinterface*/, UNPREDICTABLE/*invokedynamic*/, 0/*new*/, 1/*newarray*/, 1/*anewarray*/, 1571 1/*arraylength*/, 1/*athrow*/, 1/*checkcast*/, 1/*instanceof*/, 1/*monitorenter*/, 1572 1/*monitorexit*/, 0/*wide*/, UNPREDICTABLE/*multianewarray*/, 1/*ifnull*/, 1/*ifnonnull*/, 1573 0/*goto_w*/, 0/*jsr_w*/, 0/*breakpoint*/, UNDEFINED, UNDEFINED, 1574 UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, 1575 UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, 1576 UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, 1577 UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, 1578 UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, 1579 UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, 1580 UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, 1581 UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, 1582 UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, 1583 UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, 1584 UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, 1585 UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, 1586 UNDEFINED, UNPREDICTABLE/*impdep1*/, UNPREDICTABLE/*impdep2*/ 1587 }; 1588 1589 /** 1590 * Number of words produced onto operand stack by instructions. 1591 * Indexed by opcode. CONSUME_STACK[DALOAD] = number of words 1592 * consumed from the stack by a daload instruction. 1593 */ 1594 int[] PRODUCE_STACK = { 1595 0/*nop*/, 1/*aconst_null*/, 1/*iconst_m1*/, 1/*iconst_0*/, 1/*iconst_1*/, 1596 1/*iconst_2*/, 1/*iconst_3*/, 1/*iconst_4*/, 1/*iconst_5*/, 2/*lconst_0*/, 1597 2/*lconst_1*/, 1/*fconst_0*/, 1/*fconst_1*/, 1/*fconst_2*/, 2/*dconst_0*/, 1598 2/*dconst_1*/, 1/*bipush*/, 1/*sipush*/, 1/*ldc*/, 1/*ldc_w*/, 2/*ldc2_w*/, 1/*iload*/, 1599 2/*lload*/, 1/*fload*/, 2/*dload*/, 1/*aload*/, 1/*iload_0*/, 1/*iload_1*/, 1/*iload_2*/, 1600 1/*iload_3*/, 2/*lload_0*/, 2/*lload_1*/, 2/*lload_2*/, 2/*lload_3*/, 1/*fload_0*/, 1601 1/*fload_1*/, 1/*fload_2*/, 1/*fload_3*/, 2/*dload_0*/, 2/*dload_1*/, 2/*dload_2*/, 1602 2/*dload_3*/, 1/*aload_0*/, 1/*aload_1*/, 1/*aload_2*/, 1/*aload_3*/, 1/*iaload*/, 1603 2/*laload*/, 1/*faload*/, 2/*daload*/, 1/*aaload*/, 1/*baload*/, 1/*caload*/, 1/*saload*/, 1604 0/*istore*/, 0/*lstore*/, 0/*fstore*/, 0/*dstore*/, 0/*astore*/, 0/*istore_0*/, 1605 0/*istore_1*/, 0/*istore_2*/, 0/*istore_3*/, 0/*lstore_0*/, 0/*lstore_1*/, 1606 0/*lstore_2*/, 0/*lstore_3*/, 0/*fstore_0*/, 0/*fstore_1*/, 0/*fstore_2*/, 1607 0/*fstore_3*/, 0/*dstore_0*/, 0/*dstore_1*/, 0/*dstore_2*/, 0/*dstore_3*/, 1608 0/*astore_0*/, 0/*astore_1*/, 0/*astore_2*/, 0/*astore_3*/, 0/*iastore*/, 0/*lastore*/, 1609 0/*fastore*/, 0/*dastore*/, 0/*aastore*/, 0/*bastore*/, 0/*castore*/, 0/*sastore*/, 1610 0/*pop*/, 0/*pop2*/, 2/*dup*/, 3/*dup_x1*/, 4/*dup_x2*/, 4/*dup2*/, 5/*dup2_x1*/, 1611 6/*dup2_x2*/, 2/*swap*/, 1/*iadd*/, 2/*ladd*/, 1/*fadd*/, 2/*dadd*/, 1/*isub*/, 2/*lsub*/, 1612 1/*fsub*/, 2/*dsub*/, 1/*imul*/, 2/*lmul*/, 1/*fmul*/, 2/*dmul*/, 1/*idiv*/, 2/*ldiv*/, 1613 1/*fdiv*/, 2/*ddiv*/, 1/*irem*/, 2/*lrem*/, 1/*frem*/, 2/*drem*/, 1/*ineg*/, 2/*lneg*/, 1614 1/*fneg*/, 2/*dneg*/, 1/*ishl*/, 2/*lshl*/, 1/*ishr*/, 2/*lshr*/, 1/*iushr*/, 2/*lushr*/, 1615 1/*iand*/, 2/*land*/, 1/*ior*/, 2/*lor*/, 1/*ixor*/, 2/*lxor*/, 1616 0/*iinc*/, 2/*i2l*/, 1/*i2f*/, 2/*i2d*/, 1/*l2i*/, 1/*l2f*/, 2/*l2d*/, 1/*f2i*/, 1617 2/*f2l*/, 2/*f2d*/, 1/*d2i*/, 2/*d2l*/, 1/*d2f*/, 1618 1/*i2b*/, 1/*i2c*/, 1/*i2s*/, 1/*lcmp*/, 1/*fcmpl*/, 1/*fcmpg*/, 1619 1/*dcmpl*/, 1/*dcmpg*/, 0/*ifeq*/, 0/*ifne*/, 0/*iflt*/, 0/*ifge*/, 0/*ifgt*/, 0/*ifle*/, 1620 0/*if_icmpeq*/, 0/*if_icmpne*/, 0/*if_icmplt*/, 0/*if_icmpge*/, 0/*if_icmpgt*/, 1621 0/*if_icmple*/, 0/*if_acmpeq*/, 0/*if_acmpne*/, 0/*goto*/, 1/*jsr*/, 0/*ret*/, 1622 0/*tableswitch*/, 0/*lookupswitch*/, 0/*ireturn*/, 0/*lreturn*/, 0/*freturn*/, 1623 0/*dreturn*/, 0/*areturn*/, 0/*return*/, UNPREDICTABLE/*getstatic*/, 0/*putstatic*/, 1624 UNPREDICTABLE/*getfield*/, 0/*putfield*/, UNPREDICTABLE/*invokevirtual*/, 1625 UNPREDICTABLE/*invokespecial*/, UNPREDICTABLE/*invokestatic*/, 1626 UNPREDICTABLE/*invokeinterface*/, UNPREDICTABLE/*invokedynamic*/, 1/*new*/, 1/*newarray*/, 1/*anewarray*/, 1627 1/*arraylength*/, 1/*athrow*/, 1/*checkcast*/, 1/*instanceof*/, 0/*monitorenter*/, 1628 0/*monitorexit*/, 0/*wide*/, 1/*multianewarray*/, 0/*ifnull*/, 0/*ifnonnull*/, 1629 0/*goto_w*/, 1/*jsr_w*/, 0/*breakpoint*/, UNDEFINED, UNDEFINED, 1630 UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, 1631 UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, 1632 UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, 1633 UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, 1634 UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, 1635 UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, 1636 UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, 1637 UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, 1638 UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, 1639 UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, 1640 UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, 1641 UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, 1642 UNDEFINED, UNPREDICTABLE/*impdep1*/, UNPREDICTABLE/*impdep2*/ 1643 }; 1644 1645 /** Attributes and their corresponding names. 1646 */ 1647 byte ATTR_UNKNOWN = -1; 1648 byte ATTR_SOURCE_FILE = 0; 1649 byte ATTR_CONSTANT_VALUE = 1; 1650 byte ATTR_CODE = 2; 1651 byte ATTR_EXCEPTIONS = 3; 1652 byte ATTR_LINE_NUMBER_TABLE = 4; 1653 byte ATTR_LOCAL_VARIABLE_TABLE = 5; 1654 byte ATTR_INNER_CLASSES = 6; 1655 byte ATTR_SYNTHETIC = 7; 1656 byte ATTR_DEPRECATED = 8; 1657 byte ATTR_PMG = 9; 1658 byte ATTR_SIGNATURE = 10; 1659 byte ATTR_STACK_MAP = 11; 1660 byte ATTR_RUNTIMEVISIBLE_ANNOTATIONS = 12; 1661 byte ATTR_RUNTIMEINVISIBLE_ANNOTATIONS = 13; 1662 byte ATTR_RUNTIMEVISIBLE_PARAMETER_ANNOTATIONS = 14; 1663 byte ATTR_RUNTIMEINVISIBLE_PARAMETER_ANNOTATIONS = 15; 1664 byte ATTR_ANNOTATION_DEFAULT = 16; 1665 1666 short KNOWN_ATTRIBUTES = 12;//should be 17 1667 1668 1669 // TODO: mutable public array!! 1670 String[] ATTRIBUTE_NAMES = { 1671 "SourceFile", "ConstantValue", "Code", "Exceptions", 1672 "LineNumberTable", "LocalVariableTable", 1673 "InnerClasses", "Synthetic", "Deprecated", 1674 "PMGClass", "Signature", "StackMap", 1675 "RuntimeVisibleAnnotations", "RuntimeInvisibleAnnotations", 1676 "RuntimeVisibleParameterAnnotations", "RuntimeInvisibleParameterAnnotations", 1677 "AnnotationDefault" 1678 }; 1679 1680 /** Constants used in the StackMap attribute. 1681 */ 1682 byte ITEM_Bogus = 0; 1683 byte ITEM_Integer = 1; 1684 byte ITEM_Float = 2; 1685 byte ITEM_Double = 3; 1686 byte ITEM_Long = 4; 1687 byte ITEM_Null = 5; 1688 byte ITEM_InitObject = 6; 1689 byte ITEM_Object = 7; 1690 byte ITEM_NewObject = 8; 1691 1692 String[] ITEM_NAMES = { 1693 "Bogus", "Integer", "Float", "Double", "Long", 1694 "Null", "InitObject", "Object", "NewObject" 1695 }; 1696 1697 } 1698