2 * Copyright (c) 2002, 2005, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation. Oracle designates this
8 * particular file as subject to the "Classpath" exception as provided
9 * by Oracle in the LICENSE file that accompanied this code.
11 * This code is distributed in the hope that it will be useful, but WITHOUT
12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14 * version 2 for more details (a copy is included in the LICENSE file that
15 * accompanied this code).
17 * You should have received a copy of the GNU General Public License version
18 * 2 along with this work; if not, write to the Free Software Foundation,
19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22 * or visit www.oracle.com if you need additional information or have any
27 package org.apidesign.javap;
29 public interface RuntimeConstants {
31 /* Signature Characters */
32 public static final char SIGC_VOID = 'V';
33 public static final String SIG_VOID = "V";
34 public static final char SIGC_BOOLEAN = 'Z';
35 public static final String SIG_BOOLEAN = "Z";
36 public static final char SIGC_BYTE = 'B';
37 public static final String SIG_BYTE = "B";
38 public static final char SIGC_CHAR = 'C';
39 public static final String SIG_CHAR = "C";
40 public static final char SIGC_SHORT = 'S';
41 public static final String SIG_SHORT = "S";
42 public static final char SIGC_INT = 'I';
43 public static final String SIG_INT = "I";
44 public static final char SIGC_LONG = 'J';
45 public static final String SIG_LONG = "J";
46 public static final char SIGC_FLOAT = 'F';
47 public static final String SIG_FLOAT = "F";
48 public static final char SIGC_DOUBLE = 'D';
49 public static final String SIG_DOUBLE = "D";
50 public static final char SIGC_ARRAY = '[';
51 public static final String SIG_ARRAY = "[";
52 public static final char SIGC_CLASS = 'L';
53 public static final String SIG_CLASS = "L";
54 public static final char SIGC_METHOD = '(';
55 public static final String SIG_METHOD = "(";
56 public static final char SIGC_ENDCLASS = ';';
57 public static final String SIG_ENDCLASS = ";";
58 public static final char SIGC_ENDMETHOD = ')';
59 public static final String SIG_ENDMETHOD = ")";
60 public static final char SIGC_PACKAGE = '/';
61 public static final String SIG_PACKAGE = "/";
63 /* Class File Constants */
64 public static final int JAVA_MAGIC = 0xcafebabe;
65 public static final int JAVA_VERSION = 45;
66 public static final int JAVA_MINOR_VERSION = 3;
69 public static final int CONSTANT_UTF8 = 1;
70 public static final int CONSTANT_UNICODE = 2;
71 public static final int CONSTANT_INTEGER = 3;
72 public static final int CONSTANT_FLOAT = 4;
73 public static final int CONSTANT_LONG = 5;
74 public static final int CONSTANT_DOUBLE = 6;
75 public static final int CONSTANT_CLASS = 7;
76 public static final int CONSTANT_STRING = 8;
77 public static final int CONSTANT_FIELD = 9;
78 public static final int CONSTANT_METHOD = 10;
79 public static final int CONSTANT_INTERFACEMETHOD = 11;
80 public static final int CONSTANT_NAMEANDTYPE = 12;
83 public static final int ACC_PUBLIC = 0x00000001;
84 public static final int ACC_PRIVATE = 0x00000002;
85 public static final int ACC_PROTECTED = 0x00000004;
86 public static final int ACC_STATIC = 0x00000008;
87 public static final int ACC_FINAL = 0x00000010;
88 public static final int ACC_SYNCHRONIZED = 0x00000020;
89 public static final int ACC_SUPER = 0x00000020;
90 public static final int ACC_VOLATILE = 0x00000040;
91 public static final int ACC_TRANSIENT = 0x00000080;
92 public static final int ACC_NATIVE = 0x00000100;
93 public static final int ACC_INTERFACE = 0x00000200;
94 public static final int ACC_ABSTRACT = 0x00000400;
95 public static final int ACC_STRICT = 0x00000800;
96 public static final int ACC_EXPLICIT = 0x00001000;
97 public static final int ACC_SYNTHETIC = 0x00010000; // actually, this is an attribute
100 public static final int T_CLASS = 0x00000002;
101 public static final int T_BOOLEAN = 0x00000004;
102 public static final int T_CHAR = 0x00000005;
103 public static final int T_FLOAT = 0x00000006;
104 public static final int T_DOUBLE = 0x00000007;
105 public static final int T_BYTE = 0x00000008;
106 public static final int T_SHORT = 0x00000009;
107 public static final int T_INT = 0x0000000a;
108 public static final int T_LONG = 0x0000000b;
110 /* Type codes for StackMap attribute */
111 public static final int ITEM_Bogus =0; // an unknown or uninitialized value
112 public static final int ITEM_Integer =1; // a 32-bit integer
113 public static final int ITEM_Float =2; // not used
114 public static final int ITEM_Double =3; // not used
115 public static final int ITEM_Long =4; // a 64-bit integer
116 public static final int ITEM_Null =5; // the type of null
117 public static final int ITEM_InitObject =6; // "this" in constructor
118 public static final int ITEM_Object =7; // followed by 2-byte index of class name
119 public static final int ITEM_NewObject =8; // followed by 2-byte ref to "new"
121 /* Constants used in StackMapTable attribute */
122 public static final int SAME_FRAME_BOUND = 64;
123 public static final int SAME_LOCALS_1_STACK_ITEM_BOUND = 128;
124 public static final int SAME_LOCALS_1_STACK_ITEM_EXTENDED = 247;
125 public static final int SAME_FRAME_EXTENDED = 251;
126 public static final int FULL_FRAME = 255;
129 public static final int opc_dead = -2;
130 public static final int opc_label = -1;
131 public static final int opc_nop = 0;
132 public static final int opc_aconst_null = 1;
133 public static final int opc_iconst_m1 = 2;
134 public static final int opc_iconst_0 = 3;
135 public static final int opc_iconst_1 = 4;
136 public static final int opc_iconst_2 = 5;
137 public static final int opc_iconst_3 = 6;
138 public static final int opc_iconst_4 = 7;
139 public static final int opc_iconst_5 = 8;
140 public static final int opc_lconst_0 = 9;
141 public static final int opc_lconst_1 = 10;
142 public static final int opc_fconst_0 = 11;
143 public static final int opc_fconst_1 = 12;
144 public static final int opc_fconst_2 = 13;
145 public static final int opc_dconst_0 = 14;
146 public static final int opc_dconst_1 = 15;
147 public static final int opc_bipush = 16;
148 public static final int opc_sipush = 17;
149 public static final int opc_ldc = 18;
150 public static final int opc_ldc_w = 19;
151 public static final int opc_ldc2_w = 20;
152 public static final int opc_iload = 21;
153 public static final int opc_lload = 22;
154 public static final int opc_fload = 23;
155 public static final int opc_dload = 24;
156 public static final int opc_aload = 25;
157 public static final int opc_iload_0 = 26;
158 public static final int opc_iload_1 = 27;
159 public static final int opc_iload_2 = 28;
160 public static final int opc_iload_3 = 29;
161 public static final int opc_lload_0 = 30;
162 public static final int opc_lload_1 = 31;
163 public static final int opc_lload_2 = 32;
164 public static final int opc_lload_3 = 33;
165 public static final int opc_fload_0 = 34;
166 public static final int opc_fload_1 = 35;
167 public static final int opc_fload_2 = 36;
168 public static final int opc_fload_3 = 37;
169 public static final int opc_dload_0 = 38;
170 public static final int opc_dload_1 = 39;
171 public static final int opc_dload_2 = 40;
172 public static final int opc_dload_3 = 41;
173 public static final int opc_aload_0 = 42;
174 public static final int opc_aload_1 = 43;
175 public static final int opc_aload_2 = 44;
176 public static final int opc_aload_3 = 45;
177 public static final int opc_iaload = 46;
178 public static final int opc_laload = 47;
179 public static final int opc_faload = 48;
180 public static final int opc_daload = 49;
181 public static final int opc_aaload = 50;
182 public static final int opc_baload = 51;
183 public static final int opc_caload = 52;
184 public static final int opc_saload = 53;
185 public static final int opc_istore = 54;
186 public static final int opc_lstore = 55;
187 public static final int opc_fstore = 56;
188 public static final int opc_dstore = 57;
189 public static final int opc_astore = 58;
190 public static final int opc_istore_0 = 59;
191 public static final int opc_istore_1 = 60;
192 public static final int opc_istore_2 = 61;
193 public static final int opc_istore_3 = 62;
194 public static final int opc_lstore_0 = 63;
195 public static final int opc_lstore_1 = 64;
196 public static final int opc_lstore_2 = 65;
197 public static final int opc_lstore_3 = 66;
198 public static final int opc_fstore_0 = 67;
199 public static final int opc_fstore_1 = 68;
200 public static final int opc_fstore_2 = 69;
201 public static final int opc_fstore_3 = 70;
202 public static final int opc_dstore_0 = 71;
203 public static final int opc_dstore_1 = 72;
204 public static final int opc_dstore_2 = 73;
205 public static final int opc_dstore_3 = 74;
206 public static final int opc_astore_0 = 75;
207 public static final int opc_astore_1 = 76;
208 public static final int opc_astore_2 = 77;
209 public static final int opc_astore_3 = 78;
210 public static final int opc_iastore = 79;
211 public static final int opc_lastore = 80;
212 public static final int opc_fastore = 81;
213 public static final int opc_dastore = 82;
214 public static final int opc_aastore = 83;
215 public static final int opc_bastore = 84;
216 public static final int opc_castore = 85;
217 public static final int opc_sastore = 86;
218 public static final int opc_pop = 87;
219 public static final int opc_pop2 = 88;
220 public static final int opc_dup = 89;
221 public static final int opc_dup_x1 = 90;
222 public static final int opc_dup_x2 = 91;
223 public static final int opc_dup2 = 92;
224 public static final int opc_dup2_x1 = 93;
225 public static final int opc_dup2_x2 = 94;
226 public static final int opc_swap = 95;
227 public static final int opc_iadd = 96;
228 public static final int opc_ladd = 97;
229 public static final int opc_fadd = 98;
230 public static final int opc_dadd = 99;
231 public static final int opc_isub = 100;
232 public static final int opc_lsub = 101;
233 public static final int opc_fsub = 102;
234 public static final int opc_dsub = 103;
235 public static final int opc_imul = 104;
236 public static final int opc_lmul = 105;
237 public static final int opc_fmul = 106;
238 public static final int opc_dmul = 107;
239 public static final int opc_idiv = 108;
240 public static final int opc_ldiv = 109;
241 public static final int opc_fdiv = 110;
242 public static final int opc_ddiv = 111;
243 public static final int opc_irem = 112;
244 public static final int opc_lrem = 113;
245 public static final int opc_frem = 114;
246 public static final int opc_drem = 115;
247 public static final int opc_ineg = 116;
248 public static final int opc_lneg = 117;
249 public static final int opc_fneg = 118;
250 public static final int opc_dneg = 119;
251 public static final int opc_ishl = 120;
252 public static final int opc_lshl = 121;
253 public static final int opc_ishr = 122;
254 public static final int opc_lshr = 123;
255 public static final int opc_iushr = 124;
256 public static final int opc_lushr = 125;
257 public static final int opc_iand = 126;
258 public static final int opc_land = 127;
259 public static final int opc_ior = 128;
260 public static final int opc_lor = 129;
261 public static final int opc_ixor = 130;
262 public static final int opc_lxor = 131;
263 public static final int opc_iinc = 132;
264 public static final int opc_i2l = 133;
265 public static final int opc_i2f = 134;
266 public static final int opc_i2d = 135;
267 public static final int opc_l2i = 136;
268 public static final int opc_l2f = 137;
269 public static final int opc_l2d = 138;
270 public static final int opc_f2i = 139;
271 public static final int opc_f2l = 140;
272 public static final int opc_f2d = 141;
273 public static final int opc_d2i = 142;
274 public static final int opc_d2l = 143;
275 public static final int opc_d2f = 144;
276 public static final int opc_i2b = 145;
277 public static final int opc_int2byte = 145;
278 public static final int opc_i2c = 146;
279 public static final int opc_int2char = 146;
280 public static final int opc_i2s = 147;
281 public static final int opc_int2short = 147;
282 public static final int opc_lcmp = 148;
283 public static final int opc_fcmpl = 149;
284 public static final int opc_fcmpg = 150;
285 public static final int opc_dcmpl = 151;
286 public static final int opc_dcmpg = 152;
287 public static final int opc_ifeq = 153;
288 public static final int opc_ifne = 154;
289 public static final int opc_iflt = 155;
290 public static final int opc_ifge = 156;
291 public static final int opc_ifgt = 157;
292 public static final int opc_ifle = 158;
293 public static final int opc_if_icmpeq = 159;
294 public static final int opc_if_icmpne = 160;
295 public static final int opc_if_icmplt = 161;
296 public static final int opc_if_icmpge = 162;
297 public static final int opc_if_icmpgt = 163;
298 public static final int opc_if_icmple = 164;
299 public static final int opc_if_acmpeq = 165;
300 public static final int opc_if_acmpne = 166;
301 public static final int opc_goto = 167;
302 public static final int opc_jsr = 168;
303 public static final int opc_ret = 169;
304 public static final int opc_tableswitch = 170;
305 public static final int opc_lookupswitch = 171;
306 public static final int opc_ireturn = 172;
307 public static final int opc_lreturn = 173;
308 public static final int opc_freturn = 174;
309 public static final int opc_dreturn = 175;
310 public static final int opc_areturn = 176;
311 public static final int opc_return = 177;
312 public static final int opc_getstatic = 178;
313 public static final int opc_putstatic = 179;
314 public static final int opc_getfield = 180;
315 public static final int opc_putfield = 181;
316 public static final int opc_invokevirtual = 182;
317 public static final int opc_invokenonvirtual = 183;
318 public static final int opc_invokespecial = 183;
319 public static final int opc_invokestatic = 184;
320 public static final int opc_invokeinterface = 185;
321 // public static final int opc_xxxunusedxxx = 186;
322 public static final int opc_new = 187;
323 public static final int opc_newarray = 188;
324 public static final int opc_anewarray = 189;
325 public static final int opc_arraylength = 190;
326 public static final int opc_athrow = 191;
327 public static final int opc_checkcast = 192;
328 public static final int opc_instanceof = 193;
329 public static final int opc_monitorenter = 194;
330 public static final int opc_monitorexit = 195;
331 public static final int opc_wide = 196;
332 public static final int opc_multianewarray = 197;
333 public static final int opc_ifnull = 198;
334 public static final int opc_ifnonnull = 199;
335 public static final int opc_goto_w = 200;
336 public static final int opc_jsr_w = 201;
337 /* Pseudo-instructions */
338 public static final int opc_bytecode = 203;
339 public static final int opc_try = 204;
340 public static final int opc_endtry = 205;
341 public static final int opc_catch = 206;
342 public static final int opc_var = 207;
343 public static final int opc_endvar = 208;
344 public static final int opc_localsmap = 209;
345 public static final int opc_stackmap = 210;
346 /* PicoJava prefixes */
347 public static final int opc_nonpriv = 254;
348 public static final int opc_priv = 255;
350 /* Wide instructions */
351 public static final int opc_iload_w = (opc_wide<<8)|opc_iload;
352 public static final int opc_lload_w = (opc_wide<<8)|opc_lload;
353 public static final int opc_fload_w = (opc_wide<<8)|opc_fload;
354 public static final int opc_dload_w = (opc_wide<<8)|opc_dload;
355 public static final int opc_aload_w = (opc_wide<<8)|opc_aload;
356 public static final int opc_istore_w = (opc_wide<<8)|opc_istore;
357 public static final int opc_lstore_w = (opc_wide<<8)|opc_lstore;
358 public static final int opc_fstore_w = (opc_wide<<8)|opc_fstore;
359 public static final int opc_dstore_w = (opc_wide<<8)|opc_dstore;
360 public static final int opc_astore_w = (opc_wide<<8)|opc_astore;
361 public static final int opc_ret_w = (opc_wide<<8)|opc_ret;
362 public static final int opc_iinc_w = (opc_wide<<8)|opc_iinc;
365 public static final String opcNamesTab[] = {
549 "invokespecial", // was "invokenonvirtual",
552 "bytecode 186", //"xxxunusedxxx",
568 "bytecode 202", // "breakpoint",
580 public static final int opcLengthsTab[] = {
784 1, 0, 0, 0, 0, 0 // pseudo