1 /*
   2  * Copyright (c) 1998, 2012, 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   = 52;
  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_invokedynamic            = 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         "invokedynamic",
 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         5,
 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 }