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