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 }