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 &quot;class
 135    *  initialization method&quot; or &quot;interface initialization
 136    *   method&quot;. This is &quot;&lt;clinit&gt;&quot;.
 137    */
 138   public final static String STATIC_INITIALIZER_NAME = "<clinit>";
 139 
 140   /** The name of every constructor method in a class, also called
 141    * &quot;instance initialization method&quot;. This is &quot;&lt;init&gt;&quot;.
 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 }