/* * Copyright (c) 1998, 2018, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. Oracle designates this * particular file as subject to the "Classpath" exception as provided * by Oracle in the LICENSE file that accompanied this code. * * This code is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * version 2 for more details (a copy is included in the LICENSE file that * accompanied this code). * * You should have received a copy of the GNU General Public License version * 2 along with this work; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. * * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA * or visit www.oracle.com if you need additional information or have any * questions. */ package sun.tools.java; /** * WARNING: The contents of this source file are not part of any * supported API. Code that depends on them does so at its own risk: * they are subject to change or removal without notice. */ public interface RuntimeConstants { /* Signature Characters */ char SIGC_VOID = 'V'; String SIG_VOID = "V"; char SIGC_BOOLEAN = 'Z'; String SIG_BOOLEAN = "Z"; char SIGC_BYTE = 'B'; String SIG_BYTE = "B"; char SIGC_CHAR = 'C'; String SIG_CHAR = "C"; char SIGC_SHORT = 'S'; String SIG_SHORT = "S"; char SIGC_INT = 'I'; String SIG_INT = "I"; char SIGC_LONG = 'J'; String SIG_LONG = "J"; char SIGC_FLOAT = 'F'; String SIG_FLOAT = "F"; char SIGC_DOUBLE = 'D'; String SIG_DOUBLE = "D"; char SIGC_ARRAY = '['; String SIG_ARRAY = "["; char SIGC_CLASS = 'L'; String SIG_CLASS = "L"; char SIGC_METHOD = '('; String SIG_METHOD = "("; char SIGC_ENDCLASS = ';'; String SIG_ENDCLASS = ";"; char SIGC_ENDMETHOD = ')'; String SIG_ENDMETHOD = ")"; char SIGC_PACKAGE = '/'; String SIG_PACKAGE = "/"; /* Class File Constants */ int JAVA_MAGIC = 0xcafebabe; int JAVA_MIN_SUPPORTED_VERSION = 45; int JAVA_MAX_SUPPORTED_VERSION = 57; int JAVA_MAX_SUPPORTED_MINOR_VERSION = 0; /* Generate class file version for 1.1 by default */ int JAVA_DEFAULT_VERSION = 45; int JAVA_DEFAULT_MINOR_VERSION = 3; /* Constant table */ int CONSTANT_UTF8 = 1; int CONSTANT_UNICODE = 2; int CONSTANT_INTEGER = 3; int CONSTANT_FLOAT = 4; int CONSTANT_LONG = 5; int CONSTANT_DOUBLE = 6; int CONSTANT_CLASS = 7; int CONSTANT_STRING = 8; int CONSTANT_FIELD = 9; int CONSTANT_METHOD = 10; int CONSTANT_INTERFACEMETHOD = 11; int CONSTANT_NAMEANDTYPE = 12; int CONSTANT_METHODHANDLE = 15; int CONSTANT_METHODTYPE = 16; int CONSTANT_INVOKEDYNAMIC = 18; /* Access and modifier flags */ int ACC_PUBLIC = 0x00000001; int ACC_PRIVATE = 0x00000002; int ACC_PROTECTED = 0x00000004; int ACC_STATIC = 0x00000008; int ACC_FINAL = 0x00000010; int ACC_SYNCHRONIZED = 0x00000020; int ACC_VOLATILE = 0x00000040; int ACC_TRANSIENT = 0x00000080; int ACC_NATIVE = 0x00000100; int ACC_INTERFACE = 0x00000200; int ACC_ABSTRACT = 0x00000400; int ACC_SUPER = 0x00000020; int ACC_STRICT = 0x00000800; /* Type codes */ int T_CLASS = 0x00000002; int T_BOOLEAN = 0x00000004; int T_CHAR = 0x00000005; int T_FLOAT = 0x00000006; int T_DOUBLE = 0x00000007; int T_BYTE = 0x00000008; int T_SHORT = 0x00000009; int T_INT = 0x0000000a; int T_LONG = 0x0000000b; /* Opcodes */ int opc_try = -3; int opc_dead = -2; int opc_label = -1; int opc_nop = 0; int opc_aconst_null = 1; int opc_iconst_m1 = 2; int opc_iconst_0 = 3; int opc_iconst_1 = 4; int opc_iconst_2 = 5; int opc_iconst_3 = 6; int opc_iconst_4 = 7; int opc_iconst_5 = 8; int opc_lconst_0 = 9; int opc_lconst_1 = 10; int opc_fconst_0 = 11; int opc_fconst_1 = 12; int opc_fconst_2 = 13; int opc_dconst_0 = 14; int opc_dconst_1 = 15; int opc_bipush = 16; int opc_sipush = 17; int opc_ldc = 18; int opc_ldc_w = 19; int opc_ldc2_w = 20; int opc_iload = 21; int opc_lload = 22; int opc_fload = 23; int opc_dload = 24; int opc_aload = 25; int opc_iload_0 = 26; int opc_iload_1 = 27; int opc_iload_2 = 28; int opc_iload_3 = 29; int opc_lload_0 = 30; int opc_lload_1 = 31; int opc_lload_2 = 32; int opc_lload_3 = 33; int opc_fload_0 = 34; int opc_fload_1 = 35; int opc_fload_2 = 36; int opc_fload_3 = 37; int opc_dload_0 = 38; int opc_dload_1 = 39; int opc_dload_2 = 40; int opc_dload_3 = 41; int opc_aload_0 = 42; int opc_aload_1 = 43; int opc_aload_2 = 44; int opc_aload_3 = 45; int opc_iaload = 46; int opc_laload = 47; int opc_faload = 48; int opc_daload = 49; int opc_aaload = 50; int opc_baload = 51; int opc_caload = 52; int opc_saload = 53; int opc_istore = 54; int opc_lstore = 55; int opc_fstore = 56; int opc_dstore = 57; int opc_astore = 58; int opc_istore_0 = 59; int opc_istore_1 = 60; int opc_istore_2 = 61; int opc_istore_3 = 62; int opc_lstore_0 = 63; int opc_lstore_1 = 64; int opc_lstore_2 = 65; int opc_lstore_3 = 66; int opc_fstore_0 = 67; int opc_fstore_1 = 68; int opc_fstore_2 = 69; int opc_fstore_3 = 70; int opc_dstore_0 = 71; int opc_dstore_1 = 72; int opc_dstore_2 = 73; int opc_dstore_3 = 74; int opc_astore_0 = 75; int opc_astore_1 = 76; int opc_astore_2 = 77; int opc_astore_3 = 78; int opc_iastore = 79; int opc_lastore = 80; int opc_fastore = 81; int opc_dastore = 82; int opc_aastore = 83; int opc_bastore = 84; int opc_castore = 85; int opc_sastore = 86; int opc_pop = 87; int opc_pop2 = 88; int opc_dup = 89; int opc_dup_x1 = 90; int opc_dup_x2 = 91; int opc_dup2 = 92; int opc_dup2_x1 = 93; int opc_dup2_x2 = 94; int opc_swap = 95; int opc_iadd = 96; int opc_ladd = 97; int opc_fadd = 98; int opc_dadd = 99; int opc_isub = 100; int opc_lsub = 101; int opc_fsub = 102; int opc_dsub = 103; int opc_imul = 104; int opc_lmul = 105; int opc_fmul = 106; int opc_dmul = 107; int opc_idiv = 108; int opc_ldiv = 109; int opc_fdiv = 110; int opc_ddiv = 111; int opc_irem = 112; int opc_lrem = 113; int opc_frem = 114; int opc_drem = 115; int opc_ineg = 116; int opc_lneg = 117; int opc_fneg = 118; int opc_dneg = 119; int opc_ishl = 120; int opc_lshl = 121; int opc_ishr = 122; int opc_lshr = 123; int opc_iushr = 124; int opc_lushr = 125; int opc_iand = 126; int opc_land = 127; int opc_ior = 128; int opc_lor = 129; int opc_ixor = 130; int opc_lxor = 131; int opc_iinc = 132; int opc_i2l = 133; int opc_i2f = 134; int opc_i2d = 135; int opc_l2i = 136; int opc_l2f = 137; int opc_l2d = 138; int opc_f2i = 139; int opc_f2l = 140; int opc_f2d = 141; int opc_d2i = 142; int opc_d2l = 143; int opc_d2f = 144; int opc_i2b = 145; int opc_i2c = 146; int opc_i2s = 147; int opc_lcmp = 148; int opc_fcmpl = 149; int opc_fcmpg = 150; int opc_dcmpl = 151; int opc_dcmpg = 152; int opc_ifeq = 153; int opc_ifne = 154; int opc_iflt = 155; int opc_ifge = 156; int opc_ifgt = 157; int opc_ifle = 158; int opc_if_icmpeq = 159; int opc_if_icmpne = 160; int opc_if_icmplt = 161; int opc_if_icmpge = 162; int opc_if_icmpgt = 163; int opc_if_icmple = 164; int opc_if_acmpeq = 165; int opc_if_acmpne = 166; int opc_goto = 167; int opc_jsr = 168; int opc_ret = 169; int opc_tableswitch = 170; int opc_lookupswitch = 171; int opc_ireturn = 172; int opc_lreturn = 173; int opc_freturn = 174; int opc_dreturn = 175; int opc_areturn = 176; int opc_return = 177; int opc_getstatic = 178; int opc_putstatic = 179; int opc_getfield = 180; int opc_putfield = 181; int opc_invokevirtual = 182; int opc_invokespecial = 183; int opc_invokestatic = 184; int opc_invokeinterface = 185; int opc_invokedynamic = 186; int opc_new = 187; int opc_newarray = 188; int opc_anewarray = 189; int opc_arraylength = 190; int opc_athrow = 191; int opc_checkcast = 192; int opc_instanceof = 193; int opc_monitorenter = 194; int opc_monitorexit = 195; int opc_wide = 196; int opc_multianewarray = 197; int opc_ifnull = 198; int opc_ifnonnull = 199; int opc_goto_w = 200; int opc_jsr_w = 201; int opc_breakpoint = 202; /* Opcode Names */ String opcNames[] = { "nop", "aconst_null", "iconst_m1", "iconst_0", "iconst_1", "iconst_2", "iconst_3", "iconst_4", "iconst_5", "lconst_0", "lconst_1", "fconst_0", "fconst_1", "fconst_2", "dconst_0", "dconst_1", "bipush", "sipush", "ldc", "ldc_w", "ldc2_w", "iload", "lload", "fload", "dload", "aload", "iload_0", "iload_1", "iload_2", "iload_3", "lload_0", "lload_1", "lload_2", "lload_3", "fload_0", "fload_1", "fload_2", "fload_3", "dload_0", "dload_1", "dload_2", "dload_3", "aload_0", "aload_1", "aload_2", "aload_3", "iaload", "laload", "faload", "daload", "aaload", "baload", "caload", "saload", "istore", "lstore", "fstore", "dstore", "astore", "istore_0", "istore_1", "istore_2", "istore_3", "lstore_0", "lstore_1", "lstore_2", "lstore_3", "fstore_0", "fstore_1", "fstore_2", "fstore_3", "dstore_0", "dstore_1", "dstore_2", "dstore_3", "astore_0", "astore_1", "astore_2", "astore_3", "iastore", "lastore", "fastore", "dastore", "aastore", "bastore", "castore", "sastore", "pop", "pop2", "dup", "dup_x1", "dup_x2", "dup2", "dup2_x1", "dup2_x2", "swap", "iadd", "ladd", "fadd", "dadd", "isub", "lsub", "fsub", "dsub", "imul", "lmul", "fmul", "dmul", "idiv", "ldiv", "fdiv", "ddiv", "irem", "lrem", "frem", "drem", "ineg", "lneg", "fneg", "dneg", "ishl", "lshl", "ishr", "lshr", "iushr", "lushr", "iand", "land", "ior", "lor", "ixor", "lxor", "iinc", "i2l", "i2f", "i2d", "l2i", "l2f", "l2d", "f2i", "f2l", "f2d", "d2i", "d2l", "d2f", "i2b", "i2c", "i2s", "lcmp", "fcmpl", "fcmpg", "dcmpl", "dcmpg", "ifeq", "ifne", "iflt", "ifge", "ifgt", "ifle", "if_icmpeq", "if_icmpne", "if_icmplt", "if_icmpge", "if_icmpgt", "if_icmple", "if_acmpeq", "if_acmpne", "goto", "jsr", "ret", "tableswitch", "lookupswitch", "ireturn", "lreturn", "freturn", "dreturn", "areturn", "return", "getstatic", "putstatic", "getfield", "putfield", "invokevirtual", "invokespecial", "invokestatic", "invokeinterface", "invokedynamic", "new", "newarray", "anewarray", "arraylength", "athrow", "checkcast", "instanceof", "monitorenter", "monitorexit", "wide", "multianewarray", "ifnull", "ifnonnull", "goto_w", "jsr_w", "breakpoint" }; /* Opcode Lengths */ int opcLengths[] = { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 2, 3, 3, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 99, 99, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 3, 3, 5, 5, 3, 2, 3, 1, 1, 3, 3, 1, 1, 0, 4, 3, 3, 5, 5, 1 }; }