1 /* 2 * Copyright (c) 1998, 2018, Oracle and/or its affiliates. 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. 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. 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 Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 22 * or visit www.oracle.com if you need additional information or have any 23 * questions. 24 */ 25 26 package 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 */ 33 public 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 = 56; 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 int CONSTANT_METHODHANDLE = 15; 91 int CONSTANT_METHODTYPE = 16; 92 int CONSTANT_INVOKEDYNAMIC = 18; 93 94 /* Access and modifier flags */ 95 int ACC_PUBLIC = 0x00000001; 96 int ACC_PRIVATE = 0x00000002; 97 int ACC_PROTECTED = 0x00000004; 98 int ACC_STATIC = 0x00000008; 99 int ACC_FINAL = 0x00000010; 100 int ACC_SYNCHRONIZED = 0x00000020; 101 int ACC_VOLATILE = 0x00000040; 102 int ACC_TRANSIENT = 0x00000080; 103 int ACC_NATIVE = 0x00000100; 104 int ACC_INTERFACE = 0x00000200; 105 int ACC_ABSTRACT = 0x00000400; 106 int ACC_SUPER = 0x00000020; 107 int ACC_STRICT = 0x00000800; 108 109 /* Type codes */ 110 int T_CLASS = 0x00000002; 111 int T_BOOLEAN = 0x00000004; 112 int T_CHAR = 0x00000005; 113 int T_FLOAT = 0x00000006; 114 int T_DOUBLE = 0x00000007; 115 int T_BYTE = 0x00000008; 116 int T_SHORT = 0x00000009; 117 int T_INT = 0x0000000a; 118 int T_LONG = 0x0000000b; 119 120 /* Opcodes */ 121 int opc_try = -3; 122 int opc_dead = -2; 123 int opc_label = -1; 124 int opc_nop = 0; 125 int opc_aconst_null = 1; 126 int opc_iconst_m1 = 2; 127 int opc_iconst_0 = 3; 128 int opc_iconst_1 = 4; 129 int opc_iconst_2 = 5; 130 int opc_iconst_3 = 6; 131 int opc_iconst_4 = 7; 132 int opc_iconst_5 = 8; 133 int opc_lconst_0 = 9; 134 int opc_lconst_1 = 10; 135 int opc_fconst_0 = 11; 136 int opc_fconst_1 = 12; 137 int opc_fconst_2 = 13; 138 int opc_dconst_0 = 14; 139 int opc_dconst_1 = 15; 140 int opc_bipush = 16; 141 int opc_sipush = 17; 142 int opc_ldc = 18; 143 int opc_ldc_w = 19; 144 int opc_ldc2_w = 20; 145 int opc_iload = 21; 146 int opc_lload = 22; 147 int opc_fload = 23; 148 int opc_dload = 24; 149 int opc_aload = 25; 150 int opc_iload_0 = 26; 151 int opc_iload_1 = 27; 152 int opc_iload_2 = 28; 153 int opc_iload_3 = 29; 154 int opc_lload_0 = 30; 155 int opc_lload_1 = 31; 156 int opc_lload_2 = 32; 157 int opc_lload_3 = 33; 158 int opc_fload_0 = 34; 159 int opc_fload_1 = 35; 160 int opc_fload_2 = 36; 161 int opc_fload_3 = 37; 162 int opc_dload_0 = 38; 163 int opc_dload_1 = 39; 164 int opc_dload_2 = 40; 165 int opc_dload_3 = 41; 166 int opc_aload_0 = 42; 167 int opc_aload_1 = 43; 168 int opc_aload_2 = 44; 169 int opc_aload_3 = 45; 170 int opc_iaload = 46; 171 int opc_laload = 47; 172 int opc_faload = 48; 173 int opc_daload = 49; 174 int opc_aaload = 50; 175 int opc_baload = 51; 176 int opc_caload = 52; 177 int opc_saload = 53; 178 int opc_istore = 54; 179 int opc_lstore = 55; 180 int opc_fstore = 56; 181 int opc_dstore = 57; 182 int opc_astore = 58; 183 int opc_istore_0 = 59; 184 int opc_istore_1 = 60; 185 int opc_istore_2 = 61; 186 int opc_istore_3 = 62; 187 int opc_lstore_0 = 63; 188 int opc_lstore_1 = 64; 189 int opc_lstore_2 = 65; 190 int opc_lstore_3 = 66; 191 int opc_fstore_0 = 67; 192 int opc_fstore_1 = 68; 193 int opc_fstore_2 = 69; 194 int opc_fstore_3 = 70; 195 int opc_dstore_0 = 71; 196 int opc_dstore_1 = 72; 197 int opc_dstore_2 = 73; 198 int opc_dstore_3 = 74; 199 int opc_astore_0 = 75; 200 int opc_astore_1 = 76; 201 int opc_astore_2 = 77; 202 int opc_astore_3 = 78; 203 int opc_iastore = 79; 204 int opc_lastore = 80; 205 int opc_fastore = 81; 206 int opc_dastore = 82; 207 int opc_aastore = 83; 208 int opc_bastore = 84; 209 int opc_castore = 85; 210 int opc_sastore = 86; 211 int opc_pop = 87; 212 int opc_pop2 = 88; 213 int opc_dup = 89; 214 int opc_dup_x1 = 90; 215 int opc_dup_x2 = 91; 216 int opc_dup2 = 92; 217 int opc_dup2_x1 = 93; 218 int opc_dup2_x2 = 94; 219 int opc_swap = 95; 220 int opc_iadd = 96; 221 int opc_ladd = 97; 222 int opc_fadd = 98; 223 int opc_dadd = 99; 224 int opc_isub = 100; 225 int opc_lsub = 101; 226 int opc_fsub = 102; 227 int opc_dsub = 103; 228 int opc_imul = 104; 229 int opc_lmul = 105; 230 int opc_fmul = 106; 231 int opc_dmul = 107; 232 int opc_idiv = 108; 233 int opc_ldiv = 109; 234 int opc_fdiv = 110; 235 int opc_ddiv = 111; 236 int opc_irem = 112; 237 int opc_lrem = 113; 238 int opc_frem = 114; 239 int opc_drem = 115; 240 int opc_ineg = 116; 241 int opc_lneg = 117; 242 int opc_fneg = 118; 243 int opc_dneg = 119; 244 int opc_ishl = 120; 245 int opc_lshl = 121; 246 int opc_ishr = 122; 247 int opc_lshr = 123; 248 int opc_iushr = 124; 249 int opc_lushr = 125; 250 int opc_iand = 126; 251 int opc_land = 127; 252 int opc_ior = 128; 253 int opc_lor = 129; 254 int opc_ixor = 130; 255 int opc_lxor = 131; 256 int opc_iinc = 132; 257 int opc_i2l = 133; 258 int opc_i2f = 134; 259 int opc_i2d = 135; 260 int opc_l2i = 136; 261 int opc_l2f = 137; 262 int opc_l2d = 138; 263 int opc_f2i = 139; 264 int opc_f2l = 140; 265 int opc_f2d = 141; 266 int opc_d2i = 142; 267 int opc_d2l = 143; 268 int opc_d2f = 144; 269 int opc_i2b = 145; 270 int opc_i2c = 146; 271 int opc_i2s = 147; 272 int opc_lcmp = 148; 273 int opc_fcmpl = 149; 274 int opc_fcmpg = 150; 275 int opc_dcmpl = 151; 276 int opc_dcmpg = 152; 277 int opc_ifeq = 153; 278 int opc_ifne = 154; 279 int opc_iflt = 155; 280 int opc_ifge = 156; 281 int opc_ifgt = 157; 282 int opc_ifle = 158; 283 int opc_if_icmpeq = 159; 284 int opc_if_icmpne = 160; 285 int opc_if_icmplt = 161; 286 int opc_if_icmpge = 162; 287 int opc_if_icmpgt = 163; 288 int opc_if_icmple = 164; 289 int opc_if_acmpeq = 165; 290 int opc_if_acmpne = 166; 291 int opc_goto = 167; 292 int opc_jsr = 168; 293 int opc_ret = 169; 294 int opc_tableswitch = 170; 295 int opc_lookupswitch = 171; 296 int opc_ireturn = 172; 297 int opc_lreturn = 173; 298 int opc_freturn = 174; 299 int opc_dreturn = 175; 300 int opc_areturn = 176; 301 int opc_return = 177; 302 int opc_getstatic = 178; 303 int opc_putstatic = 179; 304 int opc_getfield = 180; 305 int opc_putfield = 181; 306 int opc_invokevirtual = 182; 307 int opc_invokespecial = 183; 308 int opc_invokestatic = 184; 309 int opc_invokeinterface = 185; 310 int opc_invokedynamic = 186; 311 int opc_new = 187; 312 int opc_newarray = 188; 313 int opc_anewarray = 189; 314 int opc_arraylength = 190; 315 int opc_athrow = 191; 316 int opc_checkcast = 192; 317 int opc_instanceof = 193; 318 int opc_monitorenter = 194; 319 int opc_monitorexit = 195; 320 int opc_wide = 196; 321 int opc_multianewarray = 197; 322 int opc_ifnull = 198; 323 int opc_ifnonnull = 199; 324 int opc_goto_w = 200; 325 int opc_jsr_w = 201; 326 int opc_breakpoint = 202; 327 328 /* Opcode Names */ 329 String opcNames[] = { 330 "nop", 331 "aconst_null", 332 "iconst_m1", 333 "iconst_0", 334 "iconst_1", 335 "iconst_2", 336 "iconst_3", 337 "iconst_4", 338 "iconst_5", 339 "lconst_0", 340 "lconst_1", 341 "fconst_0", 342 "fconst_1", 343 "fconst_2", 344 "dconst_0", 345 "dconst_1", 346 "bipush", 347 "sipush", 348 "ldc", 349 "ldc_w", 350 "ldc2_w", 351 "iload", 352 "lload", 353 "fload", 354 "dload", 355 "aload", 356 "iload_0", 357 "iload_1", 358 "iload_2", 359 "iload_3", 360 "lload_0", 361 "lload_1", 362 "lload_2", 363 "lload_3", 364 "fload_0", 365 "fload_1", 366 "fload_2", 367 "fload_3", 368 "dload_0", 369 "dload_1", 370 "dload_2", 371 "dload_3", 372 "aload_0", 373 "aload_1", 374 "aload_2", 375 "aload_3", 376 "iaload", 377 "laload", 378 "faload", 379 "daload", 380 "aaload", 381 "baload", 382 "caload", 383 "saload", 384 "istore", 385 "lstore", 386 "fstore", 387 "dstore", 388 "astore", 389 "istore_0", 390 "istore_1", 391 "istore_2", 392 "istore_3", 393 "lstore_0", 394 "lstore_1", 395 "lstore_2", 396 "lstore_3", 397 "fstore_0", 398 "fstore_1", 399 "fstore_2", 400 "fstore_3", 401 "dstore_0", 402 "dstore_1", 403 "dstore_2", 404 "dstore_3", 405 "astore_0", 406 "astore_1", 407 "astore_2", 408 "astore_3", 409 "iastore", 410 "lastore", 411 "fastore", 412 "dastore", 413 "aastore", 414 "bastore", 415 "castore", 416 "sastore", 417 "pop", 418 "pop2", 419 "dup", 420 "dup_x1", 421 "dup_x2", 422 "dup2", 423 "dup2_x1", 424 "dup2_x2", 425 "swap", 426 "iadd", 427 "ladd", 428 "fadd", 429 "dadd", 430 "isub", 431 "lsub", 432 "fsub", 433 "dsub", 434 "imul", 435 "lmul", 436 "fmul", 437 "dmul", 438 "idiv", 439 "ldiv", 440 "fdiv", 441 "ddiv", 442 "irem", 443 "lrem", 444 "frem", 445 "drem", 446 "ineg", 447 "lneg", 448 "fneg", 449 "dneg", 450 "ishl", 451 "lshl", 452 "ishr", 453 "lshr", 454 "iushr", 455 "lushr", 456 "iand", 457 "land", 458 "ior", 459 "lor", 460 "ixor", 461 "lxor", 462 "iinc", 463 "i2l", 464 "i2f", 465 "i2d", 466 "l2i", 467 "l2f", 468 "l2d", 469 "f2i", 470 "f2l", 471 "f2d", 472 "d2i", 473 "d2l", 474 "d2f", 475 "i2b", 476 "i2c", 477 "i2s", 478 "lcmp", 479 "fcmpl", 480 "fcmpg", 481 "dcmpl", 482 "dcmpg", 483 "ifeq", 484 "ifne", 485 "iflt", 486 "ifge", 487 "ifgt", 488 "ifle", 489 "if_icmpeq", 490 "if_icmpne", 491 "if_icmplt", 492 "if_icmpge", 493 "if_icmpgt", 494 "if_icmple", 495 "if_acmpeq", 496 "if_acmpne", 497 "goto", 498 "jsr", 499 "ret", 500 "tableswitch", 501 "lookupswitch", 502 "ireturn", 503 "lreturn", 504 "freturn", 505 "dreturn", 506 "areturn", 507 "return", 508 "getstatic", 509 "putstatic", 510 "getfield", 511 "putfield", 512 "invokevirtual", 513 "invokespecial", 514 "invokestatic", 515 "invokeinterface", 516 "invokedynamic", 517 "new", 518 "newarray", 519 "anewarray", 520 "arraylength", 521 "athrow", 522 "checkcast", 523 "instanceof", 524 "monitorenter", 525 "monitorexit", 526 "wide", 527 "multianewarray", 528 "ifnull", 529 "ifnonnull", 530 "goto_w", 531 "jsr_w", 532 "breakpoint" 533 }; 534 535 /* Opcode Lengths */ 536 int opcLengths[] = { 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 1, 551 1, 552 1, 553 2, 554 3, 555 2, 556 3, 557 3, 558 2, 559 2, 560 2, 561 2, 562 2, 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 1, 589 1, 590 1, 591 2, 592 2, 593 2, 594 2, 595 2, 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 1, 667 1, 668 1, 669 3, 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 1, 688 1, 689 1, 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 3, 704 3, 705 3, 706 2, 707 99, 708 99, 709 1, 710 1, 711 1, 712 1, 713 1, 714 1, 715 3, 716 3, 717 3, 718 3, 719 3, 720 3, 721 3, 722 5, 723 5, 724 3, 725 2, 726 3, 727 1, 728 1, 729 3, 730 3, 731 1, 732 1, 733 0, 734 4, 735 3, 736 3, 737 5, 738 5, 739 1 740 }; 741 742 }