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