View Javadoc
1 package org.apache.bcel; 2 3 /* ==================================================================== 4 * The Apache Software License, Version 1.1 5 * 6 * Copyright (c) 2001 The Apache Software Foundation. All rights 7 * reserved. 8 * 9 * Redistribution and use in source and binary forms, with or without 10 * modification, are permitted provided that the following conditions 11 * are met: 12 * 13 * 1. Redistributions of source code must retain the above copyright 14 * notice, this list of conditions and the following disclaimer. 15 * 16 * 2. Redistributions in binary form must reproduce the above copyright 17 * notice, this list of conditions and the following disclaimer in 18 * the documentation and/or other materials provided with the 19 * distribution. 20 * 21 * 3. The end-user documentation included with the redistribution, 22 * if any, must include the following acknowledgment: 23 * "This product includes software developed by the 24 * Apache Software Foundation (http://www.apache.org/)." 25 * Alternately, this acknowledgment may appear in the software itself, 26 * if and wherever such third-party acknowledgments normally appear. 27 * 28 * 4. The names "Apache" and "Apache Software Foundation" and 29 * "Apache BCEL" must not be used to endorse or promote products 30 * derived from this software without prior written permission. For 31 * written permission, please contact apache@apache.org. 32 * 33 * 5. Products derived from this software may not be called "Apache", 34 * "Apache BCEL", nor may "Apache" appear in their name, without 35 * prior written permission of the Apache Software Foundation. 36 * 37 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED 38 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 39 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 40 * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR 41 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 42 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 43 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 44 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 45 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 46 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT 47 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 48 * SUCH DAMAGE. 49 * ==================================================================== 50 * 51 * This software consists of voluntary contributions made by many 52 * individuals on behalf of the Apache Software Foundation. For more 53 * information on the Apache Software Foundation, please see 54 * <http://www.apache.org/>;. 55 */ 56 57 /*** 58 * Constants for the project, mostly defined in the JVM specification. 59 * 60 * @version $Id: Constants.java,v 1.3 2002/06/06 11:30:27 mdahm Exp $ 61 * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> 62 */ 63 public interface Constants { 64 /*** Major and minor version of the code. 65 */ 66 public final static short MAJOR_1_1 = 45; 67 public final static short MINOR_1_1 = 3; 68 public final static short MAJOR_1_2 = 46; 69 public final static short MINOR_1_2 = 0; 70 public final static short MAJOR_1_3 = 47; 71 public final static short MINOR_1_3 = 0; 72 public final static short MAJOR = MAJOR_1_1; // Defaults 73 public final static short MINOR = MINOR_1_1; 74 75 /*** Maximum value for an unsigned short. 76 */ 77 public final static int MAX_SHORT = 65535; // 2^16 - 1 78 79 /*** Maximum value for an unsigned byte. 80 */ 81 public final static int MAX_BYTE = 255; // 2^8 - 1 82 83 /*** Access flags for classes, fields and methods. 84 */ 85 public final static short ACC_PUBLIC = 0x0001; 86 public final static short ACC_PRIVATE = 0x0002; 87 public final static short ACC_PROTECTED = 0x0004; 88 public final static short ACC_STATIC = 0x0008; 89 90 public final static short ACC_FINAL = 0x0010; 91 public final static short ACC_SYNCHRONIZED = 0x0020; 92 public final static short ACC_VOLATILE = 0x0040; 93 public final static short ACC_TRANSIENT = 0x0080; 94 95 public final static short ACC_NATIVE = 0x0100; 96 public final static short ACC_INTERFACE = 0x0200; 97 public final static short ACC_ABSTRACT = 0x0400; 98 public final static short ACC_STRICT = 0x0800; 99 100 // Applies to classes compiled by new compilers only 101 public final static short ACC_SUPER = 0x0020; 102 103 public final static short MAX_ACC_FLAG = ACC_STRICT; 104 105 public final static String[] ACCESS_NAMES = { 106 "public", "private", "protected", "static", "final", "synchronized", 107 "volatile", "transient", "native", "interface", "abstract", "strictfp" 108 }; 109 110 /*** Tags in constant pool to denote type of constant. 111 */ 112 public final static byte CONSTANT_Utf8 = 1; 113 public final static byte CONSTANT_Integer = 3; 114 public final static byte CONSTANT_Float = 4; 115 public final static byte CONSTANT_Long = 5; 116 public final static byte CONSTANT_Double = 6; 117 public final static byte CONSTANT_Class = 7; 118 public final static byte CONSTANT_Fieldref = 9; 119 public final static byte CONSTANT_String = 8; 120 public final static byte CONSTANT_Methodref = 10; 121 public final static byte CONSTANT_InterfaceMethodref = 11; 122 public final static byte CONSTANT_NameAndType = 12; 123 124 public final static String[] CONSTANT_NAMES = { 125 "", "CONSTANT_Utf8", "", "CONSTANT_Integer", 126 "CONSTANT_Float", "CONSTANT_Long", "CONSTANT_Double", 127 "CONSTANT_Class", "CONSTANT_String", "CONSTANT_Fieldref", 128 "CONSTANT_Methodref", "CONSTANT_InterfaceMethodref", 129 "CONSTANT_NameAndType" }; 130 131 /*** The name of the static initializer, also called "class 132 * initialization method" or "interface initialization 133 * method". This is "<clinit>". 134 */ 135 public final static String STATIC_INITIALIZER_NAME = "<clinit>"; 136 137 /*** The name of every constructor method in a class, also called 138 * "instance initialization method". This is "<init>". 139 */ 140 public final static String CONSTRUCTOR_NAME = "<init>"; 141 142 /*** The names of the interfaces implemented by arrays */ 143 public final static String[] INTERFACES_IMPLEMENTED_BY_ARRAYS = {"java.lang.Cloneable", "java.io.Serializable"}; 144 145 /*** 146 * Limitations of the Java Virtual Machine. 147 * See The Java Virtual Machine Specification, Second Edition, page 152, chapter 4.10. 148 */ 149 public static final int MAX_CP_ENTRIES = 65535; 150 public static final int MAX_CODE_SIZE = 65536; //bytes 151 152 /*** Java VM opcodes. 153 */ 154 public static final short NOP = 0; 155 public static final short ACONST_NULL = 1; 156 public static final short ICONST_M1 = 2; 157 public static final short ICONST_0 = 3; 158 public static final short ICONST_1 = 4; 159 public static final short ICONST_2 = 5; 160 public static final short ICONST_3 = 6; 161 public static final short ICONST_4 = 7; 162 public static final short ICONST_5 = 8; 163 public static final short LCONST_0 = 9; 164 public static final short LCONST_1 = 10; 165 public static final short FCONST_0 = 11; 166 public static final short FCONST_1 = 12; 167 public static final short FCONST_2 = 13; 168 public static final short DCONST_0 = 14; 169 public static final short DCONST_1 = 15; 170 public static final short BIPUSH = 16; 171 public static final short SIPUSH = 17; 172 public static final short LDC = 18; 173 public static final short LDC_W = 19; 174 public static final short LDC2_W = 20; 175 public static final short ILOAD = 21; 176 public static final short LLOAD = 22; 177 public static final short FLOAD = 23; 178 public static final short DLOAD = 24; 179 public static final short ALOAD = 25; 180 public static final short ILOAD_0 = 26; 181 public static final short ILOAD_1 = 27; 182 public static final short ILOAD_2 = 28; 183 public static final short ILOAD_3 = 29; 184 public static final short LLOAD_0 = 30; 185 public static final short LLOAD_1 = 31; 186 public static final short LLOAD_2 = 32; 187 public static final short LLOAD_3 = 33; 188 public static final short FLOAD_0 = 34; 189 public static final short FLOAD_1 = 35; 190 public static final short FLOAD_2 = 36; 191 public static final short FLOAD_3 = 37; 192 public static final short DLOAD_0 = 38; 193 public static final short DLOAD_1 = 39; 194 public static final short DLOAD_2 = 40; 195 public static final short DLOAD_3 = 41; 196 public static final short ALOAD_0 = 42; 197 public static final short ALOAD_1 = 43; 198 public static final short ALOAD_2 = 44; 199 public static final short ALOAD_3 = 45; 200 public static final short IALOAD = 46; 201 public static final short LALOAD = 47; 202 public static final short FALOAD = 48; 203 public static final short DALOAD = 49; 204 public static final short AALOAD = 50; 205 public static final short BALOAD = 51; 206 public static final short CALOAD = 52; 207 public static final short SALOAD = 53; 208 public static final short ISTORE = 54; 209 public static final short LSTORE = 55; 210 public static final short FSTORE = 56; 211 public static final short DSTORE = 57; 212 public static final short ASTORE = 58; 213 public static final short ISTORE_0 = 59; 214 public static final short ISTORE_1 = 60; 215 public static final short ISTORE_2 = 61; 216 public static final short ISTORE_3 = 62; 217 public static final short LSTORE_0 = 63; 218 public static final short LSTORE_1 = 64; 219 public static final short LSTORE_2 = 65; 220 public static final short LSTORE_3 = 66; 221 public static final short FSTORE_0 = 67; 222 public static final short FSTORE_1 = 68; 223 public static final short FSTORE_2 = 69; 224 public static final short FSTORE_3 = 70; 225 public static final short DSTORE_0 = 71; 226 public static final short DSTORE_1 = 72; 227 public static final short DSTORE_2 = 73; 228 public static final short DSTORE_3 = 74; 229 public static final short ASTORE_0 = 75; 230 public static final short ASTORE_1 = 76; 231 public static final short ASTORE_2 = 77; 232 public static final short ASTORE_3 = 78; 233 public static final short IASTORE = 79; 234 public static final short LASTORE = 80; 235 public static final short FASTORE = 81; 236 public static final short DASTORE = 82; 237 public static final short AASTORE = 83; 238 public static final short BASTORE = 84; 239 public static final short CASTORE = 85; 240 public static final short SASTORE = 86; 241 public static final short POP = 87; 242 public static final short POP2 = 88; 243 public static final short DUP = 89; 244 public static final short DUP_X1 = 90; 245 public static final short DUP_X2 = 91; 246 public static final short DUP2 = 92; 247 public static final short DUP2_X1 = 93; 248 public static final short DUP2_X2 = 94; 249 public static final short SWAP = 95; 250 public static final short IADD = 96; 251 public static final short LADD = 97; 252 public static final short FADD = 98; 253 public static final short DADD = 99; 254 public static final short ISUB = 100; 255 public static final short LSUB = 101; 256 public static final short FSUB = 102; 257 public static final short DSUB = 103; 258 public static final short IMUL = 104; 259 public static final short LMUL = 105; 260 public static final short FMUL = 106; 261 public static final short DMUL = 107; 262 public static final short IDIV = 108; 263 public static final short LDIV = 109; 264 public static final short FDIV = 110; 265 public static final short DDIV = 111; 266 public static final short IREM = 112; 267 public static final short LREM = 113; 268 public static final short FREM = 114; 269 public static final short DREM = 115; 270 public static final short INEG = 116; 271 public static final short LNEG = 117; 272 public static final short FNEG = 118; 273 public static final short DNEG = 119; 274 public static final short ISHL = 120; 275 public static final short LSHL = 121; 276 public static final short ISHR = 122; 277 public static final short LSHR = 123; 278 public static final short IUSHR = 124; 279 public static final short LUSHR = 125; 280 public static final short IAND = 126; 281 public static final short LAND = 127; 282 public static final short IOR = 128; 283 public static final short LOR = 129; 284 public static final short IXOR = 130; 285 public static final short LXOR = 131; 286 public static final short IINC = 132; 287 public static final short I2L = 133; 288 public static final short I2F = 134; 289 public static final short I2D = 135; 290 public static final short L2I = 136; 291 public static final short L2F = 137; 292 public static final short L2D = 138; 293 public static final short F2I = 139; 294 public static final short F2L = 140; 295 public static final short F2D = 141; 296 public static final short D2I = 142; 297 public static final short D2L = 143; 298 public static final short D2F = 144; 299 public static final short I2B = 145; 300 public static final short INT2BYTE = 145; // Old notion 301 public static final short I2C = 146; 302 public static final short INT2CHAR = 146; // Old notion 303 public static final short I2S = 147; 304 public static final short INT2SHORT = 147; // Old notion 305 public static final short LCMP = 148; 306 public static final short FCMPL = 149; 307 public static final short FCMPG = 150; 308 public static final short DCMPL = 151; 309 public static final short DCMPG = 152; 310 public static final short IFEQ = 153; 311 public static final short IFNE = 154; 312 public static final short IFLT = 155; 313 public static final short IFGE = 156; 314 public static final short IFGT = 157; 315 public static final short IFLE = 158; 316 public static final short IF_ICMPEQ = 159; 317 public static final short IF_ICMPNE = 160; 318 public static final short IF_ICMPLT = 161; 319 public static final short IF_ICMPGE = 162; 320 public static final short IF_ICMPGT = 163; 321 public static final short IF_ICMPLE = 164; 322 public static final short IF_ACMPEQ = 165; 323 public static final short IF_ACMPNE = 166; 324 public static final short GOTO = 167; 325 public static final short JSR = 168; 326 public static final short RET = 169; 327 public static final short TABLESWITCH = 170; 328 public static final short LOOKUPSWITCH = 171; 329 public static final short IRETURN = 172; 330 public static final short LRETURN = 173; 331 public static final short FRETURN = 174; 332 public static final short DRETURN = 175; 333 public static final short ARETURN = 176; 334 public static final short RETURN = 177; 335 public static final short GETSTATIC = 178; 336 public static final short PUTSTATIC = 179; 337 public static final short GETFIELD = 180; 338 public static final short PUTFIELD = 181; 339 public static final short INVOKEVIRTUAL = 182; 340 public static final short INVOKESPECIAL = 183; 341 public static final short INVOKENONVIRTUAL = 183; // Old name in JDK 1.0 342 public static final short INVOKESTATIC = 184; 343 public static final short INVOKEINTERFACE = 185; 344 public static final short NEW = 187; 345 public static final short NEWARRAY = 188; 346 public static final short ANEWARRAY = 189; 347 public static final short ARRAYLENGTH = 190; 348 public static final short ATHROW = 191; 349 public static final short CHECKCAST = 192; 350 public static final short INSTANCEOF = 193; 351 public static final short MONITORENTER = 194; 352 public static final short MONITOREXIT = 195; 353 public static final short WIDE = 196; 354 public static final short MULTIANEWARRAY = 197; 355 public static final short IFNULL = 198; 356 public static final short IFNONNULL = 199; 357 public static final short GOTO_W = 200; 358 public static final short JSR_W = 201; 359 360 /*** 361 * Non-legal opcodes, may be used by JVM internally. 362 */ 363 public static final short BREAKPOINT = 202; 364 public static final short LDC_QUICK = 203; 365 public static final short LDC_W_QUICK = 204; 366 public static final short LDC2_W_QUICK = 205; 367 public static final short GETFIELD_QUICK = 206; 368 public static final short PUTFIELD_QUICK = 207; 369 public static final short GETFIELD2_QUICK = 208; 370 public static final short PUTFIELD2_QUICK = 209; 371 public static final short GETSTATIC_QUICK = 210; 372 public static final short PUTSTATIC_QUICK = 211; 373 public static final short GETSTATIC2_QUICK = 212; 374 public static final short PUTSTATIC2_QUICK = 213; 375 public static final short INVOKEVIRTUAL_QUICK = 214; 376 public static final short INVOKENONVIRTUAL_QUICK = 215; 377 public static final short INVOKESUPER_QUICK = 216; 378 public static final short INVOKESTATIC_QUICK = 217; 379 public static final short INVOKEINTERFACE_QUICK = 218; 380 public static final short INVOKEVIRTUALOBJECT_QUICK = 219; 381 public static final short NEW_QUICK = 221; 382 public static final short ANEWARRAY_QUICK = 222; 383 public static final short MULTIANEWARRAY_QUICK = 223; 384 public static final short CHECKCAST_QUICK = 224; 385 public static final short INSTANCEOF_QUICK = 225; 386 public static final short INVOKEVIRTUAL_QUICK_W = 226; 387 public static final short GETFIELD_QUICK_W = 227; 388 public static final short PUTFIELD_QUICK_W = 228; 389 public static final short IMPDEP1 = 254; 390 public static final short IMPDEP2 = 255; 391 392 /*** 393 * For internal purposes only. 394 */ 395 public static final short PUSH = 4711; 396 public static final short SWITCH = 4712; 397 398 /*** 399 * Illegal codes 400 */ 401 public static final short UNDEFINED = -1; 402 public static final short UNPREDICTABLE = -2; 403 public static final short RESERVED = -3; 404 public static final String ILLEGAL_OPCODE = "<illegal opcode>"; 405 public static final String ILLEGAL_TYPE = "<illegal type>"; 406 407 public static final byte T_BOOLEAN = 4; 408 public static final byte T_CHAR = 5; 409 public static final byte T_FLOAT = 6; 410 public static final byte T_DOUBLE = 7; 411 public static final byte T_BYTE = 8; 412 public static final byte T_SHORT = 9; 413 public static final byte T_INT = 10; 414 public static final byte T_LONG = 11; 415 416 public static final byte T_VOID = 12; // Non-standard 417 public static final byte T_ARRAY = 13; 418 public static final byte T_OBJECT = 14; 419 public static final byte T_REFERENCE = 14; // Deprecated 420 public static final byte T_UNKNOWN = 15; 421 public static final byte T_ADDRESS = 16; 422 423 /*** The primitive type names corresponding to the T_XX constants, 424 * e.g., TYPE_NAMES[T_INT] = "int" 425 */ 426 public static final String[] TYPE_NAMES = { 427 ILLEGAL_TYPE, ILLEGAL_TYPE, ILLEGAL_TYPE, ILLEGAL_TYPE, 428 "boolean", "char", "float", "double", "byte", "short", "int", "long", 429 "void", "array", "object", "unknown" // Non-standard 430 }; 431 432 /*** The primitive class names corresponding to the T_XX constants, 433 * e.g., CLASS_TYPE_NAMES[T_INT] = "java.lang.Integer" 434 */ 435 public static final String[] CLASS_TYPE_NAMES = { 436 ILLEGAL_TYPE, ILLEGAL_TYPE, ILLEGAL_TYPE, ILLEGAL_TYPE, 437 "java.lang.Boolean", "java.lang.Character", "java.lang.Float", 438 "java.lang.Double", "java.lang.Byte", "java.lang.Short", 439 "java.lang.Integer", "java.lang.Long", "java.lang.Void", 440 ILLEGAL_TYPE, ILLEGAL_TYPE, ILLEGAL_TYPE 441 }; 442 443 /*** The signature characters corresponding to primitive types, 444 * e.g., SHORT_TYPE_NAMES[T_INT] = "I" 445 */ 446 public static final String[] SHORT_TYPE_NAMES = { 447 ILLEGAL_TYPE, ILLEGAL_TYPE, ILLEGAL_TYPE, ILLEGAL_TYPE, 448 "Z", "C", "F", "D", "B", "S", "I", "J", 449 "V", ILLEGAL_TYPE, ILLEGAL_TYPE, ILLEGAL_TYPE 450 }; 451 452 /*** 453 * Number of byte code operands, i.e., number of bytes after the tag byte 454 * itself. 455 */ 456 public static final short[] NO_OF_OPERANDS = { 457 0/*nop*/, 0/*aconst_null*/, 0/*iconst_m1*/, 0/*iconst_0*/, 458 0/*iconst_1*/, 0/*iconst_2*/, 0/*iconst_3*/, 0/*iconst_4*/, 459 0/*iconst_5*/, 0/*lconst_0*/, 0/*lconst_1*/, 0/*fconst_0*/, 460 0/*fconst_1*/, 0/*fconst_2*/, 0/*dconst_0*/, 0/*dconst_1*/, 461 1/*bipush*/, 2/*sipush*/, 1/*ldc*/, 2/*ldc_w*/, 2/*ldc2_w*/, 462 1/*iload*/, 1/*lload*/, 1/*fload*/, 1/*dload*/, 1/*aload*/, 463 0/*iload_0*/, 0/*iload_1*/, 0/*iload_2*/, 0/*iload_3*/, 464 0/*lload_0*/, 0/*lload_1*/, 0/*lload_2*/, 0/*lload_3*/, 465 0/*fload_0*/, 0/*fload_1*/, 0/*fload_2*/, 0/*fload_3*/, 466 0/*dload_0*/, 0/*dload_1*/, 0/*dload_2*/, 0/*dload_3*/, 467 0/*aload_0*/, 0/*aload_1*/, 0/*aload_2*/, 0/*aload_3*/, 468 0/*iaload*/, 0/*laload*/, 0/*faload*/, 0/*daload*/, 469 0/*aaload*/, 0/*baload*/, 0/*caload*/, 0/*saload*/, 470 1/*istore*/, 1/*lstore*/, 1/*fstore*/, 1/*dstore*/, 471 1/*astore*/, 0/*istore_0*/, 0/*istore_1*/, 0/*istore_2*/, 472 0/*istore_3*/, 0/*lstore_0*/, 0/*lstore_1*/, 0/*lstore_2*/, 473 0/*lstore_3*/, 0/*fstore_0*/, 0/*fstore_1*/, 0/*fstore_2*/, 474 0/*fstore_3*/, 0/*dstore_0*/, 0/*dstore_1*/, 0/*dstore_2*/, 475 0/*dstore_3*/, 0/*astore_0*/, 0/*astore_1*/, 0/*astore_2*/, 476 0/*astore_3*/, 0/*iastore*/, 0/*lastore*/, 0/*fastore*/, 477 0/*dastore*/, 0/*aastore*/, 0/*bastore*/, 0/*castore*/, 478 0/*sastore*/, 0/*pop*/, 0/*pop2*/, 0/*dup*/, 0/*dup_x1*/, 479 0/*dup_x2*/, 0/*dup2*/, 0/*dup2_x1*/, 0/*dup2_x2*/, 0/*swap*/, 480 0/*iadd*/, 0/*ladd*/, 0/*fadd*/, 0/*dadd*/, 0/*isub*/, 481 0/*lsub*/, 0/*fsub*/, 0/*dsub*/, 0/*imul*/, 0/*lmul*/, 482 0/*fmul*/, 0/*dmul*/, 0/*idiv*/, 0/*ldiv*/, 0/*fdiv*/, 483 0/*ddiv*/, 0/*irem*/, 0/*lrem*/, 0/*frem*/, 0/*drem*/, 484 0/*ineg*/, 0/*lneg*/, 0/*fneg*/, 0/*dneg*/, 0/*ishl*/, 485 0/*lshl*/, 0/*ishr*/, 0/*lshr*/, 0/*iushr*/, 0/*lushr*/, 486 0/*iand*/, 0/*land*/, 0/*ior*/, 0/*lor*/, 0/*ixor*/, 0/*lxor*/, 487 2/*iinc*/, 0/*i2l*/, 0/*i2f*/, 0/*i2d*/, 0/*l2i*/, 0/*l2f*/, 488 0/*l2d*/, 0/*f2i*/, 0/*f2l*/, 0/*f2d*/, 0/*d2i*/, 0/*d2l*/, 489 0/*d2f*/, 0/*i2b*/, 0/*i2c*/, 0/*i2s*/, 0/*lcmp*/, 0/*fcmpl*/, 490 0/*fcmpg*/, 0/*dcmpl*/, 0/*dcmpg*/, 2/*ifeq*/, 2/*ifne*/, 491 2/*iflt*/, 2/*ifge*/, 2/*ifgt*/, 2/*ifle*/, 2/*if_icmpeq*/, 492 2/*if_icmpne*/, 2/*if_icmplt*/, 2/*if_icmpge*/, 2/*if_icmpgt*/, 493 2/*if_icmple*/, 2/*if_acmpeq*/, 2/*if_acmpne*/, 2/*goto*/, 494 2/*jsr*/, 1/*ret*/, UNPREDICTABLE/*tableswitch*/, UNPREDICTABLE/*lookupswitch*/, 495 0/*ireturn*/, 0/*lreturn*/, 0/*freturn*/, 496 0/*dreturn*/, 0/*areturn*/, 0/*return*/, 497 2/*getstatic*/, 2/*putstatic*/, 2/*getfield*/, 498 2/*putfield*/, 2/*invokevirtual*/, 2/*invokespecial*/, 2/*invokestatic*/, 499 4/*invokeinterface*/, UNDEFINED, 2/*new*/, 500 1/*newarray*/, 2/*anewarray*/, 501 0/*arraylength*/, 0/*athrow*/, 2/*checkcast*/, 502 2/*instanceof*/, 0/*monitorenter*/, 503 0/*monitorexit*/, UNPREDICTABLE/*wide*/, 3/*multianewarray*/, 504 2/*ifnull*/, 2/*ifnonnull*/, 4/*goto_w*/, 505 4/*jsr_w*/, 0/*breakpoint*/, UNDEFINED, 506 UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, 507 UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, 508 UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, 509 UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, 510 UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, 511 UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, 512 UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, 513 UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, 514 UNDEFINED, UNDEFINED, RESERVED/*impdep1*/, RESERVED/*impdep2*/ 515 }; 516 517 /*** 518 * How the byte code operands are to be interpreted. 519 */ 520 public static final short[][] TYPE_OF_OPERANDS = { 521 {}/*nop*/, {}/*aconst_null*/, {}/*iconst_m1*/, {}/*iconst_0*/, 522 {}/*iconst_1*/, {}/*iconst_2*/, {}/*iconst_3*/, {}/*iconst_4*/, 523 {}/*iconst_5*/, {}/*lconst_0*/, {}/*lconst_1*/, {}/*fconst_0*/, 524 {}/*fconst_1*/, {}/*fconst_2*/, {}/*dconst_0*/, {}/*dconst_1*/, 525 {T_BYTE}/*bipush*/, {T_SHORT}/*sipush*/, {T_BYTE}/*ldc*/, 526 {T_SHORT}/*ldc_w*/, {T_SHORT}/*ldc2_w*/, 527 {T_BYTE}/*iload*/, {T_BYTE}/*lload*/, {T_BYTE}/*fload*/, 528 {T_BYTE}/*dload*/, {T_BYTE}/*aload*/, {}/*iload_0*/, 529 {}/*iload_1*/, {}/*iload_2*/, {}/*iload_3*/, {}/*lload_0*/, 530 {}/*lload_1*/, {}/*lload_2*/, {}/*lload_3*/, {}/*fload_0*/, 531 {}/*fload_1*/, {}/*fload_2*/, {}/*fload_3*/, {}/*dload_0*/, 532 {}/*dload_1*/, {}/*dload_2*/, {}/*dload_3*/, {}/*aload_0*/, 533 {}/*aload_1*/, {}/*aload_2*/, {}/*aload_3*/, {}/*iaload*/, 534 {}/*laload*/, {}/*faload*/, {}/*daload*/, {}/*aaload*/, 535 {}/*baload*/, {}/*caload*/, {}/*saload*/, {T_BYTE}/*istore*/, 536 {T_BYTE}/*lstore*/, {T_BYTE}/*fstore*/, {T_BYTE}/*dstore*/, 537 {T_BYTE}/*astore*/, {}/*istore_0*/, {}/*istore_1*/, 538 {}/*istore_2*/, {}/*istore_3*/, {}/*lstore_0*/, {}/*lstore_1*/, 539 {}/*lstore_2*/, {}/*lstore_3*/, {}/*fstore_0*/, {}/*fstore_1*/, 540 {}/*fstore_2*/, {}/*fstore_3*/, {}/*dstore_0*/, {}/*dstore_1*/, 541 {}/*dstore_2*/, {}/*dstore_3*/, {}/*astore_0*/, {}/*astore_1*/, 542 {}/*astore_2*/, {}/*astore_3*/, {}/*iastore*/, {}/*lastore*/, 543 {}/*fastore*/, {}/*dastore*/, {}/*aastore*/, {}/*bastore*/, 544 {}/*castore*/, {}/*sastore*/, {}/*pop*/, {}/*pop2*/, {}/*dup*/, 545 {}/*dup_x1*/, {}/*dup_x2*/, {}/*dup2*/, {}/*dup2_x1*/, 546 {}/*dup2_x2*/, {}/*swap*/, {}/*iadd*/, {}/*ladd*/, {}/*fadd*/, 547 {}/*dadd*/, {}/*isub*/, {}/*lsub*/, {}/*fsub*/, {}/*dsub*/, 548 {}/*imul*/, {}/*lmul*/, {}/*fmul*/, {}/*dmul*/, {}/*idiv*/, 549 {}/*ldiv*/, {}/*fdiv*/, {}/*ddiv*/, {}/*irem*/, {}/*lrem*/, 550 {}/*frem*/, {}/*drem*/, {}/*ineg*/, {}/*lneg*/, {}/*fneg*/, 551 {}/*dneg*/, {}/*ishl*/, {}/*lshl*/, {}/*ishr*/, {}/*lshr*/, 552 {}/*iushr*/, {}/*lushr*/, {}/*iand*/, {}/*land*/, {}/*ior*/, 553 {}/*lor*/, {}/*ixor*/, {}/*lxor*/, {T_BYTE, T_BYTE}/*iinc*/, 554 {}/*i2l*/, {}/*i2f*/, {}/*i2d*/, {}/*l2i*/, {}/*l2f*/, {}/*l2d*/, 555 {}/*f2i*/, {}/*f2l*/, {}/*f2d*/, {}/*d2i*/, {}/*d2l*/, {}/*d2f*/, 556 {}/*i2b*/, {}/*i2c*/,{}/*i2s*/, {}/*lcmp*/, {}/*fcmpl*/, 557 {}/*fcmpg*/, {}/*dcmpl*/, {}/*dcmpg*/, {T_SHORT}/*ifeq*/, 558 {T_SHORT}/*ifne*/, {T_SHORT}/*iflt*/, {T_SHORT}/*ifge*/, 559 {T_SHORT}/*ifgt*/, {T_SHORT}/*ifle*/, {T_SHORT}/*if_icmpeq*/, 560 {T_SHORT}/*if_icmpne*/, {T_SHORT}/*if_icmplt*/, 561 {T_SHORT}/*if_icmpge*/, {T_SHORT}/*if_icmpgt*/, 562 {T_SHORT}/*if_icmple*/, {T_SHORT}/*if_acmpeq*/, 563 {T_SHORT}/*if_acmpne*/, {T_SHORT}/*goto*/, {T_SHORT}/*jsr*/, 564 {T_BYTE}/*ret*/, {}/*tableswitch*/, {}/*lookupswitch*/, 565 {}/*ireturn*/, {}/*lreturn*/, {}/*freturn*/, {}/*dreturn*/, 566 {}/*areturn*/, {}/*return*/, {T_SHORT}/*getstatic*/, 567 {T_SHORT}/*putstatic*/, {T_SHORT}/*getfield*/, 568 {T_SHORT}/*putfield*/, {T_SHORT}/*invokevirtual*/, 569 {T_SHORT}/*invokespecial*/, {T_SHORT}/*invokestatic*/, 570 {T_SHORT, T_BYTE, T_BYTE}/*invokeinterface*/, {}, 571 {T_SHORT}/*new*/, {T_BYTE}/*newarray*/, 572 {T_SHORT}/*anewarray*/, {}/*arraylength*/, {}/*athrow*/, 573 {T_SHORT}/*checkcast*/, {T_SHORT}/*instanceof*/, 574 {}/*monitorenter*/, {}/*monitorexit*/, {T_BYTE}/*wide*/, 575 {T_SHORT, T_BYTE}/*multianewarray*/, {T_SHORT}/*ifnull*/, 576 {T_SHORT}/*ifnonnull*/, {T_INT}/*goto_w*/, {T_INT}/*jsr_w*/, 577 {}/*breakpoint*/, {}, {}, {}, {}, {}, {}, {}, 578 {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, 579 {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, 580 {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, 581 {}/*impdep1*/, {}/*impdep2*/ 582 }; 583 584 /*** 585 * Names of opcodes. 586 */ 587 public static final String[] OPCODE_NAMES = { 588 "nop", "aconst_null", "iconst_m1", "iconst_0", "iconst_1", 589 "iconst_2", "iconst_3", "iconst_4", "iconst_5", "lconst_0", 590 "lconst_1", "fconst_0", "fconst_1", "fconst_2", "dconst_0", 591 "dconst_1", "bipush", "sipush", "ldc", "ldc_w", "ldc2_w", "iload", 592 "lload", "fload", "dload", "aload", "iload_0", "iload_1", "iload_2", 593 "iload_3", "lload_0", "lload_1", "lload_2", "lload_3", "fload_0", 594 "fload_1", "fload_2", "fload_3", "dload_0", "dload_1", "dload_2", 595 "dload_3", "aload_0", "aload_1", "aload_2", "aload_3", "iaload", 596 "laload", "faload", "daload", "aaload", "baload", "caload", "saload", 597 "istore", "lstore", "fstore", "dstore", "astore", "istore_0", 598 "istore_1", "istore_2", "istore_3", "lstore_0", "lstore_1", 599 "lstore_2", "lstore_3", "fstore_0", "fstore_1", "fstore_2", 600 "fstore_3", "dstore_0", "dstore_1", "dstore_2", "dstore_3", 601 "astore_0", "astore_1", "astore_2", "astore_3", "iastore", "lastore", 602 "fastore", "dastore", "aastore", "bastore", "castore", "sastore", 603 "pop", "pop2", "dup", "dup_x1", "dup_x2", "dup2", "dup2_x1", 604 "dup2_x2", "swap", "iadd", "ladd", "fadd", "dadd", "isub", "lsub", 605 "fsub", "dsub", "imul", "lmul", "fmul", "dmul", "idiv", "ldiv", 606 "fdiv", "ddiv", "irem", "lrem", "frem", "drem", "ineg", "lneg", 607 "fneg", "dneg", "ishl", "lshl", "ishr", "lshr", "iushr", "lushr", 608 "iand", "land", "ior", "lor", "ixor", "lxor", "iinc", "i2l", "i2f", 609 "i2d", "l2i", "l2f", "l2d", "f2i", "f2l", "f2d", "d2i", "d2l", "d2f", 610 "i2b", "i2c", "i2s", "lcmp", "fcmpl", "fcmpg", 611 "dcmpl", "dcmpg", "ifeq", "ifne", "iflt", "ifge", "ifgt", "ifle", 612 "if_icmpeq", "if_icmpne", "if_icmplt", "if_icmpge", "if_icmpgt", 613 "if_icmple", "if_acmpeq", "if_acmpne", "goto", "jsr", "ret", 614 "tableswitch", "lookupswitch", "ireturn", "lreturn", "freturn", 615 "dreturn", "areturn", "return", "getstatic", "putstatic", "getfield", 616 "putfield", "invokevirtual", "invokespecial", "invokestatic", 617 "invokeinterface", ILLEGAL_OPCODE, "new", "newarray", "anewarray", 618 "arraylength", "athrow", "checkcast", "instanceof", "monitorenter", 619 "monitorexit", "wide", "multianewarray", "ifnull", "ifnonnull", 620 "goto_w", "jsr_w", "breakpoint", ILLEGAL_OPCODE, ILLEGAL_OPCODE, 621 ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, 622 ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, 623 ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, 624 ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, 625 ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, 626 ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, 627 ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, 628 ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, 629 ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, 630 ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, 631 ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, 632 ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, ILLEGAL_OPCODE, 633 ILLEGAL_OPCODE, "impdep1", "impdep2" 634 }; 635 636 /*** 637 * Number of words consumed on operand stack by instructions. 638 */ 639 public static final int[] CONSUME_STACK = { 640 0/*nop*/, 0/*aconst_null*/, 0/*iconst_m1*/, 0/*iconst_0*/, 0/*iconst_1*/, 641 0/*iconst_2*/, 0/*iconst_3*/, 0/*iconst_4*/, 0/*iconst_5*/, 0/*lconst_0*/, 642 0/*lconst_1*/, 0/*fconst_0*/, 0/*fconst_1*/, 0/*fconst_2*/, 0/*dconst_0*/, 643 0/*dconst_1*/, 0/*bipush*/, 0/*sipush*/, 0/*ldc*/, 0/*ldc_w*/, 0/*ldc2_w*/, 0/*iload*/, 644 0/*lload*/, 0/*fload*/, 0/*dload*/, 0/*aload*/, 0/*iload_0*/, 0/*iload_1*/, 0/*iload_2*/, 645 0/*iload_3*/, 0/*lload_0*/, 0/*lload_1*/, 0/*lload_2*/, 0/*lload_3*/, 0/*fload_0*/, 646 0/*fload_1*/, 0/*fload_2*/, 0/*fload_3*/, 0/*dload_0*/, 0/*dload_1*/, 0/*dload_2*/, 647 0/*dload_3*/, 0/*aload_0*/, 0/*aload_1*/, 0/*aload_2*/, 0/*aload_3*/, 2/*iaload*/, 648 2/*laload*/, 2/*faload*/, 2/*daload*/, 2/*aaload*/, 2/*baload*/, 2/*caload*/, 2/*saload*/, 649 1/*istore*/, 2/*lstore*/, 1/*fstore*/, 2/*dstore*/, 1/*astore*/, 1/*istore_0*/, 650 1/*istore_1*/, 1/*istore_2*/, 1/*istore_3*/, 2/*lstore_0*/, 2/*lstore_1*/, 651 2/*lstore_2*/, 2/*lstore_3*/, 1/*fstore_0*/, 1/*fstore_1*/, 1/*fstore_2*/, 652 1/*fstore_3*/, 2/*dstore_0*/, 2/*dstore_1*/, 2/*dstore_2*/, 2/*dstore_3*/, 653 1/*astore_0*/, 1/*astore_1*/, 1/*astore_2*/, 1/*astore_3*/, 3/*iastore*/, 4/*lastore*/, 654 3/*fastore*/, 4/*dastore*/, 3/*aastore*/, 3/*bastore*/, 3/*castore*/, 3/*sastore*/, 655 1/*pop*/, 2/*pop2*/, 1/*dup*/, 2/*dup_x1*/, 3/*dup_x2*/, 2/*dup2*/, 3/*dup2_x1*/, 656 4/*dup2_x2*/, 2/*swap*/, 2/*iadd*/, 4/*ladd*/, 2/*fadd*/, 4/*dadd*/, 2/*isub*/, 4/*lsub*/, 657 2/*fsub*/, 4/*dsub*/, 2/*imul*/, 4/*lmul*/, 2/*fmul*/, 4/*dmul*/, 2/*idiv*/, 4/*ldiv*/, 658 2/*fdiv*/, 4/*ddiv*/, 2/*irem*/, 4/*lrem*/, 2/*frem*/, 4/*drem*/, 1/*ineg*/, 2/*lneg*/, 659 1/*fneg*/, 2/*dneg*/, 2/*ishl*/, 3/*lshl*/, 2/*ishr*/, 3/*lshr*/, 2/*iushr*/, 3/*lushr*/, 660 2/*iand*/, 4/*land*/, 2/*ior*/, 4/*lor*/, 2/*ixor*/, 4/*lxor*/, 0/*iinc*/, 661 1/*i2l*/, 1/*i2f*/, 1/*i2d*/, 2/*l2i*/, 2/*l2f*/, 2/*l2d*/, 1/*f2i*/, 1/*f2l*/, 662 1/*f2d*/, 2/*d2i*/, 2/*d2l*/, 2/*d2f*/, 1/*i2b*/, 1/*i2c*/, 1/*i2s*/, 663 4/*lcmp*/, 2/*fcmpl*/, 2/*fcmpg*/, 4/*dcmpl*/, 4/*dcmpg*/, 1/*ifeq*/, 1/*ifne*/, 664 1/*iflt*/, 1/*ifge*/, 1/*ifgt*/, 1/*ifle*/, 2/*if_icmpeq*/, 2/*if_icmpne*/, 2/*if_icmplt*/, 665 2 /*if_icmpge*/, 2/*if_icmpgt*/, 2/*if_icmple*/, 2/*if_acmpeq*/, 2/*if_acmpne*/, 666 0/*goto*/, 0/*jsr*/, 0/*ret*/, 1/*tableswitch*/, 1/*lookupswitch*/, 1/*ireturn*/, 667 2/*lreturn*/, 1/*freturn*/, 2/*dreturn*/, 1/*areturn*/, 0/*return*/, 0/*getstatic*/, 668 UNPREDICTABLE/*putstatic*/, 1/*getfield*/, UNPREDICTABLE/*putfield*/, 669 UNPREDICTABLE/*invokevirtual*/, UNPREDICTABLE/*invokespecial*/, 670 UNPREDICTABLE/*invokestatic*/, 671 UNPREDICTABLE/*invokeinterface*/, UNDEFINED, 0/*new*/, 1/*newarray*/, 1/*anewarray*/, 672 1/*arraylength*/, 1/*athrow*/, 1/*checkcast*/, 1/*instanceof*/, 1/*monitorenter*/, 673 1/*monitorexit*/, 0/*wide*/, UNPREDICTABLE/*multianewarray*/, 1/*ifnull*/, 1/*ifnonnull*/, 674 0/*goto_w*/, 0/*jsr_w*/, 0/*breakpoint*/, UNDEFINED, UNDEFINED, 675 UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, 676 UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, 677 UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, 678 UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, 679 UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, 680 UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, 681 UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, 682 UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, 683 UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, 684 UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, 685 UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, 686 UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, 687 UNDEFINED, UNPREDICTABLE/*impdep1*/, UNPREDICTABLE/*impdep2*/ 688 }; 689 690 /*** 691 * Number of words produced onto operand stack by instructions. 692 */ 693 public static final int[] PRODUCE_STACK = { 694 0/*nop*/, 1/*aconst_null*/, 1/*iconst_m1*/, 1/*iconst_0*/, 1/*iconst_1*/, 695 1/*iconst_2*/, 1/*iconst_3*/, 1/*iconst_4*/, 1/*iconst_5*/, 2/*lconst_0*/, 696 2/*lconst_1*/, 1/*fconst_0*/, 1/*fconst_1*/, 1/*fconst_2*/, 2/*dconst_0*/, 697 2/*dconst_1*/, 1/*bipush*/, 1/*sipush*/, 1/*ldc*/, 1/*ldc_w*/, 2/*ldc2_w*/, 1/*iload*/, 698 2/*lload*/, 1/*fload*/, 2/*dload*/, 1/*aload*/, 1/*iload_0*/, 1/*iload_1*/, 1/*iload_2*/, 699 1/*iload_3*/, 2/*lload_0*/, 2/*lload_1*/, 2/*lload_2*/, 2/*lload_3*/, 1/*fload_0*/, 700 1/*fload_1*/, 1/*fload_2*/, 1/*fload_3*/, 2/*dload_0*/, 2/*dload_1*/, 2/*dload_2*/, 701 2/*dload_3*/, 1/*aload_0*/, 1/*aload_1*/, 1/*aload_2*/, 1/*aload_3*/, 1/*iaload*/, 702 2/*laload*/, 1/*faload*/, 2/*daload*/, 1/*aaload*/, 1/*baload*/, 1/*caload*/, 1/*saload*/, 703 0/*istore*/, 0/*lstore*/, 0/*fstore*/, 0/*dstore*/, 0/*astore*/, 0/*istore_0*/, 704 0/*istore_1*/, 0/*istore_2*/, 0/*istore_3*/, 0/*lstore_0*/, 0/*lstore_1*/, 705 0/*lstore_2*/, 0/*lstore_3*/, 0/*fstore_0*/, 0/*fstore_1*/, 0/*fstore_2*/, 706 0/*fstore_3*/, 0/*dstore_0*/, 0/*dstore_1*/, 0/*dstore_2*/, 0/*dstore_3*/, 707 0/*astore_0*/, 0/*astore_1*/, 0/*astore_2*/, 0/*astore_3*/, 0/*iastore*/, 0/*lastore*/, 708 0/*fastore*/, 0/*dastore*/, 0/*aastore*/, 0/*bastore*/, 0/*castore*/, 0/*sastore*/, 709 0/*pop*/, 0/*pop2*/, 2/*dup*/, 3/*dup_x1*/, 4/*dup_x2*/, 4/*dup2*/, 5/*dup2_x1*/, 710 6/*dup2_x2*/, 2/*swap*/, 1/*iadd*/, 2/*ladd*/, 1/*fadd*/, 2/*dadd*/, 1/*isub*/, 2/*lsub*/, 711 1/*fsub*/, 2/*dsub*/, 1/*imul*/, 2/*lmul*/, 1/*fmul*/, 2/*dmul*/, 1/*idiv*/, 2/*ldiv*/, 712 1/*fdiv*/, 2/*ddiv*/, 1/*irem*/, 2/*lrem*/, 1/*frem*/, 2/*drem*/, 1/*ineg*/, 2/*lneg*/, 713 1/*fneg*/, 2/*dneg*/, 1/*ishl*/, 2/*lshl*/, 1/*ishr*/, 2/*lshr*/, 1/*iushr*/, 2/*lushr*/, 714 1/*iand*/, 2/*land*/, 1/*ior*/, 2/*lor*/, 1/*ixor*/, 2/*lxor*/, 715 0/*iinc*/, 2/*i2l*/, 1/*i2f*/, 2/*i2d*/, 1/*l2i*/, 1/*l2f*/, 2/*l2d*/, 1/*f2i*/, 716 2/*f2l*/, 2/*f2d*/, 1/*d2i*/, 2/*d2l*/, 1/*d2f*/, 717 1/*i2b*/, 1/*i2c*/, 1/*i2s*/, 1/*lcmp*/, 1/*fcmpl*/, 1/*fcmpg*/, 718 1/*dcmpl*/, 1/*dcmpg*/, 0/*ifeq*/, 0/*ifne*/, 0/*iflt*/, 0/*ifge*/, 0/*ifgt*/, 0/*ifle*/, 719 0/*if_icmpeq*/, 0/*if_icmpne*/, 0/*if_icmplt*/, 0/*if_icmpge*/, 0/*if_icmpgt*/, 720 0/*if_icmple*/, 0/*if_acmpeq*/, 0/*if_acmpne*/, 0/*goto*/, 1/*jsr*/, 0/*ret*/, 721 0/*tableswitch*/, 0/*lookupswitch*/, 0/*ireturn*/, 0/*lreturn*/, 0/*freturn*/, 722 0/*dreturn*/, 0/*areturn*/, 0/*return*/, UNPREDICTABLE/*getstatic*/, 0/*putstatic*/, 723 UNPREDICTABLE/*getfield*/, 0/*putfield*/, UNPREDICTABLE/*invokevirtual*/, 724 UNPREDICTABLE/*invokespecial*/, UNPREDICTABLE/*invokestatic*/, 725 UNPREDICTABLE/*invokeinterface*/, UNDEFINED, 1/*new*/, 1/*newarray*/, 1/*anewarray*/, 726 1/*arraylength*/, 1/*athrow*/, 1/*checkcast*/, 1/*instanceof*/, 0/*monitorenter*/, 727 0/*monitorexit*/, 0/*wide*/, 1/*multianewarray*/, 0/*ifnull*/, 0/*ifnonnull*/, 728 0/*goto_w*/, 1/*jsr_w*/, 0/*breakpoint*/, UNDEFINED, UNDEFINED, 729 UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, 730 UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, 731 UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, 732 UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, 733 UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, 734 UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, 735 UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, 736 UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, 737 UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, 738 UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, 739 UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, 740 UNDEFINED, UNDEFINED, UNDEFINED, UNDEFINED, 741 UNDEFINED, UNPREDICTABLE/*impdep1*/, UNPREDICTABLE/*impdep2*/ 742 }; 743 744 /*** Attributes and their corresponding names. 745 */ 746 public static final byte ATTR_UNKNOWN = -1; 747 public static final byte ATTR_SOURCE_FILE = 0; 748 public static final byte ATTR_CONSTANT_VALUE = 1; 749 public static final byte ATTR_CODE = 2; 750 public static final byte ATTR_EXCEPTIONS = 3; 751 public static final byte ATTR_LINE_NUMBER_TABLE = 4; 752 public static final byte ATTR_LOCAL_VARIABLE_TABLE = 5; 753 public static final byte ATTR_INNER_CLASSES = 6; 754 public static final byte ATTR_SYNTHETIC = 7; 755 public static final byte ATTR_DEPRECATED = 8; 756 public static final byte ATTR_PMG = 9; 757 public static final byte ATTR_SIGNATURE = 10; 758 public static final byte ATTR_STACK_MAP = 11; 759 760 public static final short KNOWN_ATTRIBUTES = 12; 761 762 public static final String[] ATTRIBUTE_NAMES = { 763 "SourceFile", "ConstantValue", "Code", "Exceptions", 764 "LineNumberTable", "LocalVariableTable", 765 "InnerClasses", "Synthetic", "Deprecated", 766 "PMGClass", "Signature", "StackMap" 767 }; 768 769 /*** Constants used in the StackMap attribute. 770 */ 771 public static final byte ITEM_Bogus = 0; 772 public static final byte ITEM_Integer = 1; 773 public static final byte ITEM_Float = 2; 774 public static final byte ITEM_Double = 3; 775 public static final byte ITEM_Long = 4; 776 public static final byte ITEM_Null = 5; 777 public static final byte ITEM_InitObject = 6; 778 public static final byte ITEM_Object = 7; 779 public static final byte ITEM_NewObject = 8; 780 781 public static final String[] ITEM_NAMES = { 782 "Bogus", "Integer", "Float", "Double", "Long", 783 "Null", "InitObject", "Object", "NewObject" 784 }; 785 }

This page was automatically generated by Maven