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