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