Source Code Cross Referenced for Constants.java in  » Scripting » bcel » org » apache » bcel » Java Source Code / Java DocumentationJava Source Code and Java Documentation

Java Source Code / Java Documentation
1. 6.0 JDK Core
2. 6.0 JDK Modules
3. 6.0 JDK Modules com.sun
4. 6.0 JDK Modules com.sun.java
5. 6.0 JDK Modules sun
6. 6.0 JDK Platform
7. Ajax
8. Apache Harmony Java SE
9. Aspect oriented
10. Authentication Authorization
11. Blogger System
12. Build
13. Byte Code
14. Cache
15. Chart
16. Chat
17. Code Analyzer
18. Collaboration
19. Content Management System
20. Database Client
21. Database DBMS
22. Database JDBC Connection Pool
23. Database ORM
24. Development
25. EJB Server geronimo
26. EJB Server GlassFish
27. EJB Server JBoss 4.2.1
28. EJB Server resin 3.1.5
29. ERP CRM Financial
30. ESB
31. Forum
32. GIS
33. Graphic Library
34. Groupware
35. HTML Parser
36. IDE
37. IDE Eclipse
38. IDE Netbeans
39. Installer
40. Internationalization Localization
41. Inversion of Control
42. Issue Tracking
43. J2EE
44. JBoss
45. JMS
46. JMX
47. Library
48. Mail Clients
49. Net
50. Parser
51. PDF
52. Portal
53. Profiler
54. Project Management
55. Report
56. RSS RDF
57. Rule Engine
58. Science
59. Scripting
60. Search Engine
61. Security
62. Sevlet Container
63. Source Control
64. Swing Library
65. Template Engine
66. Test Coverage
67. Testing
68. UML
69. Web Crawler
70. Web Framework
71. Web Mail
72. Web Server
73. Web Services
74. Web Services apache cxf 2.0.1
75. Web Services AXIS2
76. Wiki Engine
77. Workflow Engines
78. XML
79. XML UI
Java
Java Tutorial
Java Open Source
Jar File Download
Java Articles
Java Products
Java by API
Photoshop Tutorials
Maya Tutorials
Flash Tutorials
3ds-Max Tutorials
Illustrator Tutorials
GIMP Tutorials
C# / C Sharp
C# / CSharp Tutorial
C# / CSharp Open Source
ASP.Net
ASP.NET Tutorial
JavaScript DHTML
JavaScript Tutorial
JavaScript Reference
HTML / CSS
HTML CSS Reference
C / ANSI-C
C Tutorial
C++
C++ Tutorial
Ruby
PHP
Python
Python Tutorial
Python Open Source
SQL Server / T-SQL
SQL Server / T-SQL Tutorial
Oracle PL / SQL
Oracle PL/SQL Tutorial
PostgreSQL
SQL / MySQL
MySQL Tutorial
VB.Net
VB.Net Tutorial
Flash / Flex / ActionScript
VBA / Excel / Access / Word
XML
XML Tutorial
Microsoft Office PowerPoint 2007 Tutorial
Microsoft Office Excel 2007 Tutorial
Microsoft Office Word 2007 Tutorial
Java Source Code / Java Documentation » Scripting » bcel » org.apache.bcel 
Source Cross Referenced  Class Diagram Java Document (Java Doc) 


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