blob: 3b6b333d7164b5dd40c835f21eb0495893ae884c [file] [log] [blame]
J. Duke319a3b92007-12-01 00:00:00 +00001/*
2 * Copyright 1998-2005 Sun Microsystems, Inc. All Rights Reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
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. Sun designates this
8 * particular file as subject to the "Classpath" exception as provided
9 * by Sun in the LICENSE file that accompanied this code.
10 *
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).
16 *
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.
20 *
21 * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
22 * CA 95054 USA or visit www.sun.com if you need additional information or
23 * have any questions.
24 */
25
26package sun.tools.java;
27
28/**
29 * WARNING: The contents of this source file are not part of any
30 * supported API. Code that depends on them does so at its own risk:
31 * they are subject to change or removal without notice.
32 */
33public interface RuntimeConstants {
34
35 /* Signature Characters */
36 char SIGC_VOID = 'V';
37 String SIG_VOID = "V";
38 char SIGC_BOOLEAN = 'Z';
39 String SIG_BOOLEAN = "Z";
40 char SIGC_BYTE = 'B';
41 String SIG_BYTE = "B";
42 char SIGC_CHAR = 'C';
43 String SIG_CHAR = "C";
44 char SIGC_SHORT = 'S';
45 String SIG_SHORT = "S";
46 char SIGC_INT = 'I';
47 String SIG_INT = "I";
48 char SIGC_LONG = 'J';
49 String SIG_LONG = "J";
50 char SIGC_FLOAT = 'F';
51 String SIG_FLOAT = "F";
52 char SIGC_DOUBLE = 'D';
53 String SIG_DOUBLE = "D";
54 char SIGC_ARRAY = '[';
55 String SIG_ARRAY = "[";
56 char SIGC_CLASS = 'L';
57 String SIG_CLASS = "L";
58 char SIGC_METHOD = '(';
59 String SIG_METHOD = "(";
60 char SIGC_ENDCLASS = ';';
61 String SIG_ENDCLASS = ";";
62 char SIGC_ENDMETHOD = ')';
63 String SIG_ENDMETHOD = ")";
64 char SIGC_PACKAGE = '/';
65 String SIG_PACKAGE = "/";
66
67 /* Class File Constants */
68 int JAVA_MAGIC = 0xcafebabe;
69 int JAVA_MIN_SUPPORTED_VERSION = 45;
70 int JAVA_MAX_SUPPORTED_VERSION = 50;
71 int JAVA_MAX_SUPPORTED_MINOR_VERSION = 0;
72
73 /* Generate class file version for 1.1 by default */
74 int JAVA_DEFAULT_VERSION = 45;
75 int JAVA_DEFAULT_MINOR_VERSION = 3;
76
77 /* Constant table */
78 int CONSTANT_UTF8 = 1;
79 int CONSTANT_UNICODE = 2;
80 int CONSTANT_INTEGER = 3;
81 int CONSTANT_FLOAT = 4;
82 int CONSTANT_LONG = 5;
83 int CONSTANT_DOUBLE = 6;
84 int CONSTANT_CLASS = 7;
85 int CONSTANT_STRING = 8;
86 int CONSTANT_FIELD = 9;
87 int CONSTANT_METHOD = 10;
88 int CONSTANT_INTERFACEMETHOD = 11;
89 int CONSTANT_NAMEANDTYPE = 12;
90
91 /* Access and modifier flags */
92 int ACC_PUBLIC = 0x00000001;
93 int ACC_PRIVATE = 0x00000002;
94 int ACC_PROTECTED = 0x00000004;
95 int ACC_STATIC = 0x00000008;
96 int ACC_FINAL = 0x00000010;
97 int ACC_SYNCHRONIZED = 0x00000020;
98 int ACC_VOLATILE = 0x00000040;
99 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[] = {
327 "nop",
328 "aconst_null",
329 "iconst_m1",
330 "iconst_0",
331 "iconst_1",
332 "iconst_2",
333 "iconst_3",
334 "iconst_4",
335 "iconst_5",
336 "lconst_0",
337 "lconst_1",
338 "fconst_0",
339 "fconst_1",
340 "fconst_2",
341 "dconst_0",
342 "dconst_1",
343 "bipush",
344 "sipush",
345 "ldc",
346 "ldc_w",
347 "ldc2_w",
348 "iload",
349 "lload",
350 "fload",
351 "dload",
352 "aload",
353 "iload_0",
354 "iload_1",
355 "iload_2",
356 "iload_3",
357 "lload_0",
358 "lload_1",
359 "lload_2",
360 "lload_3",
361 "fload_0",
362 "fload_1",
363 "fload_2",
364 "fload_3",
365 "dload_0",
366 "dload_1",
367 "dload_2",
368 "dload_3",
369 "aload_0",
370 "aload_1",
371 "aload_2",
372 "aload_3",
373 "iaload",
374 "laload",
375 "faload",
376 "daload",
377 "aaload",
378 "baload",
379 "caload",
380 "saload",
381 "istore",
382 "lstore",
383 "fstore",
384 "dstore",
385 "astore",
386 "istore_0",
387 "istore_1",
388 "istore_2",
389 "istore_3",
390 "lstore_0",
391 "lstore_1",
392 "lstore_2",
393 "lstore_3",
394 "fstore_0",
395 "fstore_1",
396 "fstore_2",
397 "fstore_3",
398 "dstore_0",
399 "dstore_1",
400 "dstore_2",
401 "dstore_3",
402 "astore_0",
403 "astore_1",
404 "astore_2",
405 "astore_3",
406 "iastore",
407 "lastore",
408 "fastore",
409 "dastore",
410 "aastore",
411 "bastore",
412 "castore",
413 "sastore",
414 "pop",
415 "pop2",
416 "dup",
417 "dup_x1",
418 "dup_x2",
419 "dup2",
420 "dup2_x1",
421 "dup2_x2",
422 "swap",
423 "iadd",
424 "ladd",
425 "fadd",
426 "dadd",
427 "isub",
428 "lsub",
429 "fsub",
430 "dsub",
431 "imul",
432 "lmul",
433 "fmul",
434 "dmul",
435 "idiv",
436 "ldiv",
437 "fdiv",
438 "ddiv",
439 "irem",
440 "lrem",
441 "frem",
442 "drem",
443 "ineg",
444 "lneg",
445 "fneg",
446 "dneg",
447 "ishl",
448 "lshl",
449 "ishr",
450 "lshr",
451 "iushr",
452 "lushr",
453 "iand",
454 "land",
455 "ior",
456 "lor",
457 "ixor",
458 "lxor",
459 "iinc",
460 "i2l",
461 "i2f",
462 "i2d",
463 "l2i",
464 "l2f",
465 "l2d",
466 "f2i",
467 "f2l",
468 "f2d",
469 "d2i",
470 "d2l",
471 "d2f",
472 "i2b",
473 "i2c",
474 "i2s",
475 "lcmp",
476 "fcmpl",
477 "fcmpg",
478 "dcmpl",
479 "dcmpg",
480 "ifeq",
481 "ifne",
482 "iflt",
483 "ifge",
484 "ifgt",
485 "ifle",
486 "if_icmpeq",
487 "if_icmpne",
488 "if_icmplt",
489 "if_icmpge",
490 "if_icmpgt",
491 "if_icmple",
492 "if_acmpeq",
493 "if_acmpne",
494 "goto",
495 "jsr",
496 "ret",
497 "tableswitch",
498 "lookupswitch",
499 "ireturn",
500 "lreturn",
501 "freturn",
502 "dreturn",
503 "areturn",
504 "return",
505 "getstatic",
506 "putstatic",
507 "getfield",
508 "putfield",
509 "invokevirtual",
510 "invokespecial",
511 "invokestatic",
512 "invokeinterface",
513 "xxxunusedxxx",
514 "new",
515 "newarray",
516 "anewarray",
517 "arraylength",
518 "athrow",
519 "checkcast",
520 "instanceof",
521 "monitorenter",
522 "monitorexit",
523 "wide",
524 "multianewarray",
525 "ifnull",
526 "ifnonnull",
527 "goto_w",
528 "jsr_w",
529 "breakpoint"
530 };
531
532 /* Opcode Lengths */
533 int opcLengths[] = {
534 1,
535 1,
536 1,
537 1,
538 1,
539 1,
540 1,
541 1,
542 1,
543 1,
544 1,
545 1,
546 1,
547 1,
548 1,
549 1,
550 2,
551 3,
552 2,
553 3,
554 3,
555 2,
556 2,
557 2,
558 2,
559 2,
560 1,
561 1,
562 1,
563 1,
564 1,
565 1,
566 1,
567 1,
568 1,
569 1,
570 1,
571 1,
572 1,
573 1,
574 1,
575 1,
576 1,
577 1,
578 1,
579 1,
580 1,
581 1,
582 1,
583 1,
584 1,
585 1,
586 1,
587 1,
588 2,
589 2,
590 2,
591 2,
592 2,
593 1,
594 1,
595 1,
596 1,
597 1,
598 1,
599 1,
600 1,
601 1,
602 1,
603 1,
604 1,
605 1,
606 1,
607 1,
608 1,
609 1,
610 1,
611 1,
612 1,
613 1,
614 1,
615 1,
616 1,
617 1,
618 1,
619 1,
620 1,
621 1,
622 1,
623 1,
624 1,
625 1,
626 1,
627 1,
628 1,
629 1,
630 1,
631 1,
632 1,
633 1,
634 1,
635 1,
636 1,
637 1,
638 1,
639 1,
640 1,
641 1,
642 1,
643 1,
644 1,
645 1,
646 1,
647 1,
648 1,
649 1,
650 1,
651 1,
652 1,
653 1,
654 1,
655 1,
656 1,
657 1,
658 1,
659 1,
660 1,
661 1,
662 1,
663 1,
664 1,
665 1,
666 3,
667 1,
668 1,
669 1,
670 1,
671 1,
672 1,
673 1,
674 1,
675 1,
676 1,
677 1,
678 1,
679 1,
680 1,
681 1,
682 1,
683 1,
684 1,
685 1,
686 1,
687 3,
688 3,
689 3,
690 3,
691 3,
692 3,
693 3,
694 3,
695 3,
696 3,
697 3,
698 3,
699 3,
700 3,
701 3,
702 3,
703 2,
704 99,
705 99,
706 1,
707 1,
708 1,
709 1,
710 1,
711 1,
712 3,
713 3,
714 3,
715 3,
716 3,
717 3,
718 3,
719 5,
720 0,
721 3,
722 2,
723 3,
724 1,
725 1,
726 3,
727 3,
728 1,
729 1,
730 0,
731 4,
732 3,
733 3,
734 5,
735 5,
736 1
737 };
738
739}