001: /*
002: * Copyright 1998-2005 Sun Microsystems, Inc. All Rights Reserved.
003: * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
004: *
005: * This code is free software; you can redistribute it and/or modify it
006: * under the terms of the GNU General Public License version 2 only, as
007: * published by the Free Software Foundation. Sun designates this
008: * particular file as subject to the "Classpath" exception as provided
009: * by Sun in the LICENSE file that accompanied this code.
010: *
011: * This code is distributed in the hope that it will be useful, but WITHOUT
012: * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
013: * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
014: * version 2 for more details (a copy is included in the LICENSE file that
015: * accompanied this code).
016: *
017: * You should have received a copy of the GNU General Public License version
018: * 2 along with this work; if not, write to the Free Software Foundation,
019: * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
020: *
021: * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
022: * CA 95054 USA or visit www.sun.com if you need additional information or
023: * have any questions.
024: */
025:
026: package sun.tools.java;
027:
028: /**
029: * WARNING: The contents of this source file are not part of any
030: * supported API. Code that depends on them does so at its own risk:
031: * they are subject to change or removal without notice.
032: */
033: public interface RuntimeConstants {
034:
035: /* Signature Characters */
036: char SIGC_VOID = 'V';
037: String SIG_VOID = "V";
038: char SIGC_BOOLEAN = 'Z';
039: String SIG_BOOLEAN = "Z";
040: char SIGC_BYTE = 'B';
041: String SIG_BYTE = "B";
042: char SIGC_CHAR = 'C';
043: String SIG_CHAR = "C";
044: char SIGC_SHORT = 'S';
045: String SIG_SHORT = "S";
046: char SIGC_INT = 'I';
047: String SIG_INT = "I";
048: char SIGC_LONG = 'J';
049: String SIG_LONG = "J";
050: char SIGC_FLOAT = 'F';
051: String SIG_FLOAT = "F";
052: char SIGC_DOUBLE = 'D';
053: String SIG_DOUBLE = "D";
054: char SIGC_ARRAY = '[';
055: String SIG_ARRAY = "[";
056: char SIGC_CLASS = 'L';
057: String SIG_CLASS = "L";
058: char SIGC_METHOD = '(';
059: String SIG_METHOD = "(";
060: char SIGC_ENDCLASS = ';';
061: String SIG_ENDCLASS = ";";
062: char SIGC_ENDMETHOD = ')';
063: String SIG_ENDMETHOD = ")";
064: char SIGC_PACKAGE = '/';
065: String SIG_PACKAGE = "/";
066:
067: /* Class File Constants */
068: int JAVA_MAGIC = 0xcafebabe;
069: int JAVA_MIN_SUPPORTED_VERSION = 45;
070: int JAVA_MAX_SUPPORTED_VERSION = 50;
071: int JAVA_MAX_SUPPORTED_MINOR_VERSION = 0;
072:
073: /* Generate class file version for 1.1 by default */
074: int JAVA_DEFAULT_VERSION = 45;
075: int JAVA_DEFAULT_MINOR_VERSION = 3;
076:
077: /* Constant table */
078: int CONSTANT_UTF8 = 1;
079: int CONSTANT_UNICODE = 2;
080: int CONSTANT_INTEGER = 3;
081: int CONSTANT_FLOAT = 4;
082: int CONSTANT_LONG = 5;
083: int CONSTANT_DOUBLE = 6;
084: int CONSTANT_CLASS = 7;
085: int CONSTANT_STRING = 8;
086: int CONSTANT_FIELD = 9;
087: int CONSTANT_METHOD = 10;
088: int CONSTANT_INTERFACEMETHOD = 11;
089: int CONSTANT_NAMEANDTYPE = 12;
090:
091: /* Access and modifier flags */
092: int ACC_PUBLIC = 0x00000001;
093: int ACC_PRIVATE = 0x00000002;
094: int ACC_PROTECTED = 0x00000004;
095: int ACC_STATIC = 0x00000008;
096: int ACC_FINAL = 0x00000010;
097: int ACC_SYNCHRONIZED = 0x00000020;
098: int ACC_VOLATILE = 0x00000040;
099: int ACC_TRANSIENT = 0x00000080;
100: int ACC_NATIVE = 0x00000100;
101: int ACC_INTERFACE = 0x00000200;
102: int ACC_ABSTRACT = 0x00000400;
103: int ACC_SUPER = 0x00000020;
104: int ACC_STRICT = 0x00000800;
105:
106: /* Type codes */
107: int T_CLASS = 0x00000002;
108: int T_BOOLEAN = 0x00000004;
109: int T_CHAR = 0x00000005;
110: int T_FLOAT = 0x00000006;
111: int T_DOUBLE = 0x00000007;
112: int T_BYTE = 0x00000008;
113: int T_SHORT = 0x00000009;
114: int T_INT = 0x0000000a;
115: int T_LONG = 0x0000000b;
116:
117: /* Opcodes */
118: int opc_try = -3;
119: int opc_dead = -2;
120: int opc_label = -1;
121: int opc_nop = 0;
122: int opc_aconst_null = 1;
123: int opc_iconst_m1 = 2;
124: int opc_iconst_0 = 3;
125: int opc_iconst_1 = 4;
126: int opc_iconst_2 = 5;
127: int opc_iconst_3 = 6;
128: int opc_iconst_4 = 7;
129: int opc_iconst_5 = 8;
130: int opc_lconst_0 = 9;
131: int opc_lconst_1 = 10;
132: int opc_fconst_0 = 11;
133: int opc_fconst_1 = 12;
134: int opc_fconst_2 = 13;
135: int opc_dconst_0 = 14;
136: int opc_dconst_1 = 15;
137: int opc_bipush = 16;
138: int opc_sipush = 17;
139: int opc_ldc = 18;
140: int opc_ldc_w = 19;
141: int opc_ldc2_w = 20;
142: int opc_iload = 21;
143: int opc_lload = 22;
144: int opc_fload = 23;
145: int opc_dload = 24;
146: int opc_aload = 25;
147: int opc_iload_0 = 26;
148: int opc_iload_1 = 27;
149: int opc_iload_2 = 28;
150: int opc_iload_3 = 29;
151: int opc_lload_0 = 30;
152: int opc_lload_1 = 31;
153: int opc_lload_2 = 32;
154: int opc_lload_3 = 33;
155: int opc_fload_0 = 34;
156: int opc_fload_1 = 35;
157: int opc_fload_2 = 36;
158: int opc_fload_3 = 37;
159: int opc_dload_0 = 38;
160: int opc_dload_1 = 39;
161: int opc_dload_2 = 40;
162: int opc_dload_3 = 41;
163: int opc_aload_0 = 42;
164: int opc_aload_1 = 43;
165: int opc_aload_2 = 44;
166: int opc_aload_3 = 45;
167: int opc_iaload = 46;
168: int opc_laload = 47;
169: int opc_faload = 48;
170: int opc_daload = 49;
171: int opc_aaload = 50;
172: int opc_baload = 51;
173: int opc_caload = 52;
174: int opc_saload = 53;
175: int opc_istore = 54;
176: int opc_lstore = 55;
177: int opc_fstore = 56;
178: int opc_dstore = 57;
179: int opc_astore = 58;
180: int opc_istore_0 = 59;
181: int opc_istore_1 = 60;
182: int opc_istore_2 = 61;
183: int opc_istore_3 = 62;
184: int opc_lstore_0 = 63;
185: int opc_lstore_1 = 64;
186: int opc_lstore_2 = 65;
187: int opc_lstore_3 = 66;
188: int opc_fstore_0 = 67;
189: int opc_fstore_1 = 68;
190: int opc_fstore_2 = 69;
191: int opc_fstore_3 = 70;
192: int opc_dstore_0 = 71;
193: int opc_dstore_1 = 72;
194: int opc_dstore_2 = 73;
195: int opc_dstore_3 = 74;
196: int opc_astore_0 = 75;
197: int opc_astore_1 = 76;
198: int opc_astore_2 = 77;
199: int opc_astore_3 = 78;
200: int opc_iastore = 79;
201: int opc_lastore = 80;
202: int opc_fastore = 81;
203: int opc_dastore = 82;
204: int opc_aastore = 83;
205: int opc_bastore = 84;
206: int opc_castore = 85;
207: int opc_sastore = 86;
208: int opc_pop = 87;
209: int opc_pop2 = 88;
210: int opc_dup = 89;
211: int opc_dup_x1 = 90;
212: int opc_dup_x2 = 91;
213: int opc_dup2 = 92;
214: int opc_dup2_x1 = 93;
215: int opc_dup2_x2 = 94;
216: int opc_swap = 95;
217: int opc_iadd = 96;
218: int opc_ladd = 97;
219: int opc_fadd = 98;
220: int opc_dadd = 99;
221: int opc_isub = 100;
222: int opc_lsub = 101;
223: int opc_fsub = 102;
224: int opc_dsub = 103;
225: int opc_imul = 104;
226: int opc_lmul = 105;
227: int opc_fmul = 106;
228: int opc_dmul = 107;
229: int opc_idiv = 108;
230: int opc_ldiv = 109;
231: int opc_fdiv = 110;
232: int opc_ddiv = 111;
233: int opc_irem = 112;
234: int opc_lrem = 113;
235: int opc_frem = 114;
236: int opc_drem = 115;
237: int opc_ineg = 116;
238: int opc_lneg = 117;
239: int opc_fneg = 118;
240: int opc_dneg = 119;
241: int opc_ishl = 120;
242: int opc_lshl = 121;
243: int opc_ishr = 122;
244: int opc_lshr = 123;
245: int opc_iushr = 124;
246: int opc_lushr = 125;
247: int opc_iand = 126;
248: int opc_land = 127;
249: int opc_ior = 128;
250: int opc_lor = 129;
251: int opc_ixor = 130;
252: int opc_lxor = 131;
253: int opc_iinc = 132;
254: int opc_i2l = 133;
255: int opc_i2f = 134;
256: int opc_i2d = 135;
257: int opc_l2i = 136;
258: int opc_l2f = 137;
259: int opc_l2d = 138;
260: int opc_f2i = 139;
261: int opc_f2l = 140;
262: int opc_f2d = 141;
263: int opc_d2i = 142;
264: int opc_d2l = 143;
265: int opc_d2f = 144;
266: int opc_i2b = 145;
267: int opc_i2c = 146;
268: int opc_i2s = 147;
269: int opc_lcmp = 148;
270: int opc_fcmpl = 149;
271: int opc_fcmpg = 150;
272: int opc_dcmpl = 151;
273: int opc_dcmpg = 152;
274: int opc_ifeq = 153;
275: int opc_ifne = 154;
276: int opc_iflt = 155;
277: int opc_ifge = 156;
278: int opc_ifgt = 157;
279: int opc_ifle = 158;
280: int opc_if_icmpeq = 159;
281: int opc_if_icmpne = 160;
282: int opc_if_icmplt = 161;
283: int opc_if_icmpge = 162;
284: int opc_if_icmpgt = 163;
285: int opc_if_icmple = 164;
286: int opc_if_acmpeq = 165;
287: int opc_if_acmpne = 166;
288: int opc_goto = 167;
289: int opc_jsr = 168;
290: int opc_ret = 169;
291: int opc_tableswitch = 170;
292: int opc_lookupswitch = 171;
293: int opc_ireturn = 172;
294: int opc_lreturn = 173;
295: int opc_freturn = 174;
296: int opc_dreturn = 175;
297: int opc_areturn = 176;
298: int opc_return = 177;
299: int opc_getstatic = 178;
300: int opc_putstatic = 179;
301: int opc_getfield = 180;
302: int opc_putfield = 181;
303: int opc_invokevirtual = 182;
304: int opc_invokespecial = 183;
305: int opc_invokestatic = 184;
306: int opc_invokeinterface = 185;
307: int opc_xxxunusedxxx = 186;
308: int opc_new = 187;
309: int opc_newarray = 188;
310: int opc_anewarray = 189;
311: int opc_arraylength = 190;
312: int opc_athrow = 191;
313: int opc_checkcast = 192;
314: int opc_instanceof = 193;
315: int opc_monitorenter = 194;
316: int opc_monitorexit = 195;
317: int opc_wide = 196;
318: int opc_multianewarray = 197;
319: int opc_ifnull = 198;
320: int opc_ifnonnull = 199;
321: int opc_goto_w = 200;
322: int opc_jsr_w = 201;
323: int opc_breakpoint = 202;
324:
325: /* Opcode Names */
326: String opcNames[] = { "nop", "aconst_null", "iconst_m1",
327: "iconst_0", "iconst_1", "iconst_2", "iconst_3", "iconst_4",
328: "iconst_5", "lconst_0", "lconst_1", "fconst_0", "fconst_1",
329: "fconst_2", "dconst_0", "dconst_1", "bipush", "sipush",
330: "ldc", "ldc_w", "ldc2_w", "iload", "lload", "fload",
331: "dload", "aload", "iload_0", "iload_1", "iload_2",
332: "iload_3", "lload_0", "lload_1", "lload_2", "lload_3",
333: "fload_0", "fload_1", "fload_2", "fload_3", "dload_0",
334: "dload_1", "dload_2", "dload_3", "aload_0", "aload_1",
335: "aload_2", "aload_3", "iaload", "laload", "faload",
336: "daload", "aaload", "baload", "caload", "saload", "istore",
337: "lstore", "fstore", "dstore", "astore", "istore_0",
338: "istore_1", "istore_2", "istore_3", "lstore_0", "lstore_1",
339: "lstore_2", "lstore_3", "fstore_0", "fstore_1", "fstore_2",
340: "fstore_3", "dstore_0", "dstore_1", "dstore_2", "dstore_3",
341: "astore_0", "astore_1", "astore_2", "astore_3", "iastore",
342: "lastore", "fastore", "dastore", "aastore", "bastore",
343: "castore", "sastore", "pop", "pop2", "dup", "dup_x1",
344: "dup_x2", "dup2", "dup2_x1", "dup2_x2", "swap", "iadd",
345: "ladd", "fadd", "dadd", "isub", "lsub", "fsub", "dsub",
346: "imul", "lmul", "fmul", "dmul", "idiv", "ldiv", "fdiv",
347: "ddiv", "irem", "lrem", "frem", "drem", "ineg", "lneg",
348: "fneg", "dneg", "ishl", "lshl", "ishr", "lshr", "iushr",
349: "lushr", "iand", "land", "ior", "lor", "ixor", "lxor",
350: "iinc", "i2l", "i2f", "i2d", "l2i", "l2f", "l2d", "f2i",
351: "f2l", "f2d", "d2i", "d2l", "d2f", "i2b", "i2c", "i2s",
352: "lcmp", "fcmpl", "fcmpg", "dcmpl", "dcmpg", "ifeq", "ifne",
353: "iflt", "ifge", "ifgt", "ifle", "if_icmpeq", "if_icmpne",
354: "if_icmplt", "if_icmpge", "if_icmpgt", "if_icmple",
355: "if_acmpeq", "if_acmpne", "goto", "jsr", "ret",
356: "tableswitch", "lookupswitch", "ireturn", "lreturn",
357: "freturn", "dreturn", "areturn", "return", "getstatic",
358: "putstatic", "getfield", "putfield", "invokevirtual",
359: "invokespecial", "invokestatic", "invokeinterface",
360: "xxxunusedxxx", "new", "newarray", "anewarray",
361: "arraylength", "athrow", "checkcast", "instanceof",
362: "monitorenter", "monitorexit", "wide", "multianewarray",
363: "ifnull", "ifnonnull", "goto_w", "jsr_w", "breakpoint" };
364:
365: /* Opcode Lengths */
366: int opcLengths[] = { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
367: 1, 2, 3, 2, 3, 3, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1,
368: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2,
369: 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
370: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
371: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
372: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1,
373: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3,
374: 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 99, 99, 1, 1,
375: 1, 1, 1, 1, 3, 3, 3, 3, 3, 3, 3, 5, 0, 3, 2, 3, 1, 1, 3, 3,
376: 1, 1, 0, 4, 3, 3, 5, 5, 1 };
377:
378: }
|