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