src/java.base/share/classes/com/sun/java/util/jar/pack/Constants.java
author darcy
Tue, 11 Jun 2019 16:45:20 -0700
changeset 55382 30b1b7b4dd86
parent 53023 6879069d9d94
permissions -rw-r--r--
8214546: Start of release updates for JDK 14 8214547: Add SourceVersion.RELEASE_14 8214548: Add source 14 and target 14 to javac 8214549: Bump maximum recognized class file version to 58 for JDK 14 Reviewed-by: jjg, mikael, erikj, jlahoda, dholmes
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
     1
/*
55382
30b1b7b4dd86 8214546: Start of release updates for JDK 14
darcy
parents: 53023
diff changeset
     2
 * Copyright (c) 2001, 2019, Oracle and/or its affiliates. All rights reserved.
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
     3
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
90ce3da70b43 Initial load
duke
parents:
diff changeset
     4
 *
90ce3da70b43 Initial load
duke
parents:
diff changeset
     5
 * This code is free software; you can redistribute it and/or modify it
90ce3da70b43 Initial load
duke
parents:
diff changeset
     6
 * under the terms of the GNU General Public License version 2 only, as
5506
202f599c92aa 6943119: Rebrand source copyright notices
ohair
parents: 2
diff changeset
     7
 * published by the Free Software Foundation.  Oracle designates this
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
     8
 * particular file as subject to the "Classpath" exception as provided
5506
202f599c92aa 6943119: Rebrand source copyright notices
ohair
parents: 2
diff changeset
     9
 * by Oracle in the LICENSE file that accompanied this code.
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
    10
 *
90ce3da70b43 Initial load
duke
parents:
diff changeset
    11
 * This code is distributed in the hope that it will be useful, but WITHOUT
90ce3da70b43 Initial load
duke
parents:
diff changeset
    12
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
90ce3da70b43 Initial load
duke
parents:
diff changeset
    13
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
90ce3da70b43 Initial load
duke
parents:
diff changeset
    14
 * version 2 for more details (a copy is included in the LICENSE file that
90ce3da70b43 Initial load
duke
parents:
diff changeset
    15
 * accompanied this code).
90ce3da70b43 Initial load
duke
parents:
diff changeset
    16
 *
90ce3da70b43 Initial load
duke
parents:
diff changeset
    17
 * You should have received a copy of the GNU General Public License version
90ce3da70b43 Initial load
duke
parents:
diff changeset
    18
 * 2 along with this work; if not, write to the Free Software Foundation,
90ce3da70b43 Initial load
duke
parents:
diff changeset
    19
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
90ce3da70b43 Initial load
duke
parents:
diff changeset
    20
 *
5506
202f599c92aa 6943119: Rebrand source copyright notices
ohair
parents: 2
diff changeset
    21
 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
202f599c92aa 6943119: Rebrand source copyright notices
ohair
parents: 2
diff changeset
    22
 * or visit www.oracle.com if you need additional information or have any
202f599c92aa 6943119: Rebrand source copyright notices
ohair
parents: 2
diff changeset
    23
 * questions.
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
    24
 */
90ce3da70b43 Initial load
duke
parents:
diff changeset
    25
90ce3da70b43 Initial load
duke
parents:
diff changeset
    26
package com.sun.java.util.jar.pack;
90ce3da70b43 Initial load
duke
parents:
diff changeset
    27
7192
445c518364c4 7003227: (pack200) intermittent failures compiling pack200
ksrini
parents: 5811
diff changeset
    28
import java.util.Arrays;
445c518364c4 7003227: (pack200) intermittent failures compiling pack200
ksrini
parents: 5811
diff changeset
    29
import java.util.List;
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
    30
90ce3da70b43 Initial load
duke
parents:
diff changeset
    31
/**
90ce3da70b43 Initial load
duke
parents:
diff changeset
    32
 * Shared constants
90ce3da70b43 Initial load
duke
parents:
diff changeset
    33
 * @author John Rose
90ce3da70b43 Initial load
duke
parents:
diff changeset
    34
 */
7795
98021fc612af 6990106: FindBugs scan - Malicious code vulnerability Warnings in com.sun.java.util.jar.pack.*
ksrini
parents: 7192
diff changeset
    35
class Constants {
98021fc612af 6990106: FindBugs scan - Malicious code vulnerability Warnings in com.sun.java.util.jar.pack.*
ksrini
parents: 7192
diff changeset
    36
98021fc612af 6990106: FindBugs scan - Malicious code vulnerability Warnings in com.sun.java.util.jar.pack.*
ksrini
parents: 7192
diff changeset
    37
    private Constants(){}
98021fc612af 6990106: FindBugs scan - Malicious code vulnerability Warnings in com.sun.java.util.jar.pack.*
ksrini
parents: 7192
diff changeset
    38
32649
2ee9017c7597 8136583: Core libraries should use blessed modifier order
martin
parents: 25859
diff changeset
    39
    public static final int JAVA_MAGIC = 0xCAFEBABE;
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
    40
90ce3da70b43 Initial load
duke
parents:
diff changeset
    41
    /*
90ce3da70b43 Initial load
duke
parents:
diff changeset
    42
        Java Class Version numbers history
90ce3da70b43 Initial load
duke
parents:
diff changeset
    43
        1.0 to 1.3.X 45,3
90ce3da70b43 Initial load
duke
parents:
diff changeset
    44
        1.4 to 1.4.X 46,0
90ce3da70b43 Initial load
duke
parents:
diff changeset
    45
        1.5 to 1.5.X 49,0
38421
f75f729fdc5c 8156807: Pack200 must support v53.0 class files
ksrini
parents: 32649
diff changeset
    46
        1.6 to 1.6.X 50,0
f75f729fdc5c 8156807: Pack200 must support v53.0 class files
ksrini
parents: 32649
diff changeset
    47
        1.7 to 1.7.X 51,0
f75f729fdc5c 8156807: Pack200 must support v53.0 class files
ksrini
parents: 32649
diff changeset
    48
        1.8 to 1.8.X 52,0
f75f729fdc5c 8156807: Pack200 must support v53.0 class files
ksrini
parents: 32649
diff changeset
    49
        1.9 to 1.9.X 53,0
48081
89829dd3cc54 8188870: Bump classfile version number to 54
psandoz
parents: 47216
diff changeset
    50
        1.10 to 1.10.X 54,0
48355
4944950606ef 8191913: Bump classfile version number to 55
psandoz
parents: 48081
diff changeset
    51
        1.11 to 1.11.X 55,0
50892
a5557f24b4d4 8205615: Start of release updates for JDK 12
darcy
parents: 48355
diff changeset
    52
        1.12 to 1.12.X 56,0
53023
6879069d9d94 8205626: Start of release updates for JDK 13
darcy
parents: 50892
diff changeset
    53
        1.13 to 1.13.X 57,0
55382
30b1b7b4dd86 8214546: Start of release updates for JDK 14
darcy
parents: 53023
diff changeset
    54
        1.14 to 1.14.X 58,0
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
    55
    */
90ce3da70b43 Initial load
duke
parents:
diff changeset
    56
32649
2ee9017c7597 8136583: Core libraries should use blessed modifier order
martin
parents: 25859
diff changeset
    57
    public static final Package.Version JAVA_MIN_CLASS_VERSION =
12857
0a5f341c2a28 7168401: pack200 does not produce a compatible pack file for JDK7 classes if indy is not present
ksrini
parents: 12544
diff changeset
    58
            Package.Version.of(45, 03);
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
    59
32649
2ee9017c7597 8136583: Core libraries should use blessed modifier order
martin
parents: 25859
diff changeset
    60
    public static final Package.Version JAVA5_MAX_CLASS_VERSION =
12857
0a5f341c2a28 7168401: pack200 does not produce a compatible pack file for JDK7 classes if indy is not present
ksrini
parents: 12544
diff changeset
    61
            Package.Version.of(49, 00);
5811
f4d1f45c0058 6712743: pack200: should default to 150.7 pack format for classfiles without any classes.
ksrini
parents: 5506
diff changeset
    62
32649
2ee9017c7597 8136583: Core libraries should use blessed modifier order
martin
parents: 25859
diff changeset
    63
    public static final Package.Version JAVA6_MAX_CLASS_VERSION =
12857
0a5f341c2a28 7168401: pack200 does not produce a compatible pack file for JDK7 classes if indy is not present
ksrini
parents: 12544
diff changeset
    64
            Package.Version.of(50, 00);
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
    65
32649
2ee9017c7597 8136583: Core libraries should use blessed modifier order
martin
parents: 25859
diff changeset
    66
    public static final Package.Version JAVA7_MAX_CLASS_VERSION =
12857
0a5f341c2a28 7168401: pack200 does not produce a compatible pack file for JDK7 classes if indy is not present
ksrini
parents: 12544
diff changeset
    67
            Package.Version.of(51, 00);
5811
f4d1f45c0058 6712743: pack200: should default to 150.7 pack format for classfiles without any classes.
ksrini
parents: 5506
diff changeset
    68
32649
2ee9017c7597 8136583: Core libraries should use blessed modifier order
martin
parents: 25859
diff changeset
    69
    public static final Package.Version JAVA8_MAX_CLASS_VERSION =
14407
09c87f7a7199 7050936: (pack200) Support version 52.0 class files in langtools
ksrini
parents: 12857
diff changeset
    70
            Package.Version.of(52, 00);
09c87f7a7199 7050936: (pack200) Support version 52.0 class files in langtools
ksrini
parents: 12857
diff changeset
    71
38421
f75f729fdc5c 8156807: Pack200 must support v53.0 class files
ksrini
parents: 32649
diff changeset
    72
    public static final Package.Version JAVA9_MAX_CLASS_VERSION =
f75f729fdc5c 8156807: Pack200 must support v53.0 class files
ksrini
parents: 32649
diff changeset
    73
            Package.Version.of(53, 00);
f75f729fdc5c 8156807: Pack200 must support v53.0 class files
ksrini
parents: 32649
diff changeset
    74
48081
89829dd3cc54 8188870: Bump classfile version number to 54
psandoz
parents: 47216
diff changeset
    75
    public static final Package.Version JAVA10_MAX_CLASS_VERSION =
89829dd3cc54 8188870: Bump classfile version number to 54
psandoz
parents: 47216
diff changeset
    76
            Package.Version.of(54, 00);
89829dd3cc54 8188870: Bump classfile version number to 54
psandoz
parents: 47216
diff changeset
    77
48355
4944950606ef 8191913: Bump classfile version number to 55
psandoz
parents: 48081
diff changeset
    78
    public static final Package.Version JAVA11_MAX_CLASS_VERSION =
4944950606ef 8191913: Bump classfile version number to 55
psandoz
parents: 48081
diff changeset
    79
            Package.Version.of(55, 00);
4944950606ef 8191913: Bump classfile version number to 55
psandoz
parents: 48081
diff changeset
    80
50892
a5557f24b4d4 8205615: Start of release updates for JDK 12
darcy
parents: 48355
diff changeset
    81
    public static final Package.Version JAVA12_MAX_CLASS_VERSION =
a5557f24b4d4 8205615: Start of release updates for JDK 12
darcy
parents: 48355
diff changeset
    82
            Package.Version.of(56, 00);
a5557f24b4d4 8205615: Start of release updates for JDK 12
darcy
parents: 48355
diff changeset
    83
53023
6879069d9d94 8205626: Start of release updates for JDK 13
darcy
parents: 50892
diff changeset
    84
    public static final Package.Version JAVA13_MAX_CLASS_VERSION =
6879069d9d94 8205626: Start of release updates for JDK 13
darcy
parents: 50892
diff changeset
    85
            Package.Version.of(57, 00);
6879069d9d94 8205626: Start of release updates for JDK 13
darcy
parents: 50892
diff changeset
    86
55382
30b1b7b4dd86 8214546: Start of release updates for JDK 14
darcy
parents: 53023
diff changeset
    87
    public static final Package.Version JAVA14_MAX_CLASS_VERSION =
30b1b7b4dd86 8214546: Start of release updates for JDK 14
darcy
parents: 53023
diff changeset
    88
            Package.Version.of(58, 00);
30b1b7b4dd86 8214546: Start of release updates for JDK 14
darcy
parents: 53023
diff changeset
    89
32649
2ee9017c7597 8136583: Core libraries should use blessed modifier order
martin
parents: 25859
diff changeset
    90
    public static final int JAVA_PACKAGE_MAGIC = 0xCAFED00D;
12857
0a5f341c2a28 7168401: pack200 does not produce a compatible pack file for JDK7 classes if indy is not present
ksrini
parents: 12544
diff changeset
    91
32649
2ee9017c7597 8136583: Core libraries should use blessed modifier order
martin
parents: 25859
diff changeset
    92
    public static final Package.Version JAVA5_PACKAGE_VERSION =
12857
0a5f341c2a28 7168401: pack200 does not produce a compatible pack file for JDK7 classes if indy is not present
ksrini
parents: 12544
diff changeset
    93
            Package.Version.of(150, 7);
0a5f341c2a28 7168401: pack200 does not produce a compatible pack file for JDK7 classes if indy is not present
ksrini
parents: 12544
diff changeset
    94
32649
2ee9017c7597 8136583: Core libraries should use blessed modifier order
martin
parents: 25859
diff changeset
    95
    public static final Package.Version JAVA6_PACKAGE_VERSION =
12857
0a5f341c2a28 7168401: pack200 does not produce a compatible pack file for JDK7 classes if indy is not present
ksrini
parents: 12544
diff changeset
    96
            Package.Version.of(160, 1);
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
    97
32649
2ee9017c7597 8136583: Core libraries should use blessed modifier order
martin
parents: 25859
diff changeset
    98
    public static final Package.Version JAVA7_PACKAGE_VERSION =
12857
0a5f341c2a28 7168401: pack200 does not produce a compatible pack file for JDK7 classes if indy is not present
ksrini
parents: 12544
diff changeset
    99
            Package.Version.of(170, 1);
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   100
32649
2ee9017c7597 8136583: Core libraries should use blessed modifier order
martin
parents: 25859
diff changeset
   101
    public static final Package.Version JAVA8_PACKAGE_VERSION =
15261
c5b882836677 8005252: pack200 should support MethodParameters
ksrini
parents: 14407
diff changeset
   102
            Package.Version.of(171, 0);
c5b882836677 8005252: pack200 should support MethodParameters
ksrini
parents: 14407
diff changeset
   103
12857
0a5f341c2a28 7168401: pack200 does not produce a compatible pack file for JDK7 classes if indy is not present
ksrini
parents: 12544
diff changeset
   104
    // upper limit, should point to the latest class version
32649
2ee9017c7597 8136583: Core libraries should use blessed modifier order
martin
parents: 25859
diff changeset
   105
    public static final Package.Version JAVA_MAX_CLASS_VERSION =
53023
6879069d9d94 8205626: Start of release updates for JDK 13
darcy
parents: 50892
diff changeset
   106
            JAVA13_MAX_CLASS_VERSION;
12857
0a5f341c2a28 7168401: pack200 does not produce a compatible pack file for JDK7 classes if indy is not present
ksrini
parents: 12544
diff changeset
   107
0a5f341c2a28 7168401: pack200 does not produce a compatible pack file for JDK7 classes if indy is not present
ksrini
parents: 12544
diff changeset
   108
    // upper limit should point to the latest package version, for version info!.
32649
2ee9017c7597 8136583: Core libraries should use blessed modifier order
martin
parents: 25859
diff changeset
   109
    public static final Package.Version MAX_PACKAGE_VERSION =
12857
0a5f341c2a28 7168401: pack200 does not produce a compatible pack file for JDK7 classes if indy is not present
ksrini
parents: 12544
diff changeset
   110
            JAVA7_PACKAGE_VERSION;
12544
5768f2e096de 6981776: Pack200 must support -target 7 bytecodes
ksrini
parents: 10115
diff changeset
   111
32649
2ee9017c7597 8136583: Core libraries should use blessed modifier order
martin
parents: 25859
diff changeset
   112
    public static final int CONSTANT_POOL_INDEX_LIMIT  = 0x10000;
2ee9017c7597 8136583: Core libraries should use blessed modifier order
martin
parents: 25859
diff changeset
   113
    public static final int CONSTANT_POOL_NARROW_LIMIT = 0x00100;
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   114
32649
2ee9017c7597 8136583: Core libraries should use blessed modifier order
martin
parents: 25859
diff changeset
   115
    public static final String JAVA_SIGNATURE_CHARS = "BSCIJFDZLV([";
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   116
32649
2ee9017c7597 8136583: Core libraries should use blessed modifier order
martin
parents: 25859
diff changeset
   117
    public static final byte CONSTANT_Utf8 = 1;
2ee9017c7597 8136583: Core libraries should use blessed modifier order
martin
parents: 25859
diff changeset
   118
    public static final byte CONSTANT_unused2 = 2;  // unused, was Unicode
2ee9017c7597 8136583: Core libraries should use blessed modifier order
martin
parents: 25859
diff changeset
   119
    public static final byte CONSTANT_Integer = 3;
2ee9017c7597 8136583: Core libraries should use blessed modifier order
martin
parents: 25859
diff changeset
   120
    public static final byte CONSTANT_Float = 4;
2ee9017c7597 8136583: Core libraries should use blessed modifier order
martin
parents: 25859
diff changeset
   121
    public static final byte CONSTANT_Long = 5;
2ee9017c7597 8136583: Core libraries should use blessed modifier order
martin
parents: 25859
diff changeset
   122
    public static final byte CONSTANT_Double = 6;
2ee9017c7597 8136583: Core libraries should use blessed modifier order
martin
parents: 25859
diff changeset
   123
    public static final byte CONSTANT_Class = 7;
2ee9017c7597 8136583: Core libraries should use blessed modifier order
martin
parents: 25859
diff changeset
   124
    public static final byte CONSTANT_String = 8;
2ee9017c7597 8136583: Core libraries should use blessed modifier order
martin
parents: 25859
diff changeset
   125
    public static final byte CONSTANT_Fieldref = 9;
2ee9017c7597 8136583: Core libraries should use blessed modifier order
martin
parents: 25859
diff changeset
   126
    public static final byte CONSTANT_Methodref = 10;
2ee9017c7597 8136583: Core libraries should use blessed modifier order
martin
parents: 25859
diff changeset
   127
    public static final byte CONSTANT_InterfaceMethodref = 11;
2ee9017c7597 8136583: Core libraries should use blessed modifier order
martin
parents: 25859
diff changeset
   128
    public static final byte CONSTANT_NameandType = 12;
2ee9017c7597 8136583: Core libraries should use blessed modifier order
martin
parents: 25859
diff changeset
   129
    public static final byte CONSTANT_unused13 = 13;
2ee9017c7597 8136583: Core libraries should use blessed modifier order
martin
parents: 25859
diff changeset
   130
    public static final byte CONSTANT_unused14 = 14;
2ee9017c7597 8136583: Core libraries should use blessed modifier order
martin
parents: 25859
diff changeset
   131
    public static final byte CONSTANT_MethodHandle = 15;
2ee9017c7597 8136583: Core libraries should use blessed modifier order
martin
parents: 25859
diff changeset
   132
    public static final byte CONSTANT_MethodType = 16;
2ee9017c7597 8136583: Core libraries should use blessed modifier order
martin
parents: 25859
diff changeset
   133
    public static final byte CONSTANT_unused17 = 17;  // unused
2ee9017c7597 8136583: Core libraries should use blessed modifier order
martin
parents: 25859
diff changeset
   134
    public static final byte CONSTANT_InvokeDynamic = 18;
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   135
90ce3da70b43 Initial load
duke
parents:
diff changeset
   136
    // pseudo-constants:
32649
2ee9017c7597 8136583: Core libraries should use blessed modifier order
martin
parents: 25859
diff changeset
   137
    public static final byte CONSTANT_None = 0;
2ee9017c7597 8136583: Core libraries should use blessed modifier order
martin
parents: 25859
diff changeset
   138
    public static final byte CONSTANT_Signature = CONSTANT_unused13;
2ee9017c7597 8136583: Core libraries should use blessed modifier order
martin
parents: 25859
diff changeset
   139
    public static final byte CONSTANT_BootstrapMethod = CONSTANT_unused17; // used only in InvokeDynamic constants
2ee9017c7597 8136583: Core libraries should use blessed modifier order
martin
parents: 25859
diff changeset
   140
    public static final byte CONSTANT_Limit = 19;
12544
5768f2e096de 6981776: Pack200 must support -target 7 bytecodes
ksrini
parents: 10115
diff changeset
   141
32649
2ee9017c7597 8136583: Core libraries should use blessed modifier order
martin
parents: 25859
diff changeset
   142
    public static final byte CONSTANT_All = 50;  // combined global map
2ee9017c7597 8136583: Core libraries should use blessed modifier order
martin
parents: 25859
diff changeset
   143
    public static final byte CONSTANT_LoadableValue = 51; // used for 'KL' and qldc operands
2ee9017c7597 8136583: Core libraries should use blessed modifier order
martin
parents: 25859
diff changeset
   144
    public static final byte CONSTANT_AnyMember = 52; // union of refs to field or (interface) method
2ee9017c7597 8136583: Core libraries should use blessed modifier order
martin
parents: 25859
diff changeset
   145
    public static final byte CONSTANT_FieldSpecific = 53; // used only for 'KQ' ConstantValue attrs
2ee9017c7597 8136583: Core libraries should use blessed modifier order
martin
parents: 25859
diff changeset
   146
    public static final byte CONSTANT_GroupFirst = CONSTANT_All;
2ee9017c7597 8136583: Core libraries should use blessed modifier order
martin
parents: 25859
diff changeset
   147
    public static final byte CONSTANT_GroupLimit = CONSTANT_FieldSpecific+1;
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   148
12544
5768f2e096de 6981776: Pack200 must support -target 7 bytecodes
ksrini
parents: 10115
diff changeset
   149
    // CONSTANT_MethodHandle reference kinds
32649
2ee9017c7597 8136583: Core libraries should use blessed modifier order
martin
parents: 25859
diff changeset
   150
    public static final byte REF_getField = 1;
2ee9017c7597 8136583: Core libraries should use blessed modifier order
martin
parents: 25859
diff changeset
   151
    public static final byte REF_getStatic = 2;
2ee9017c7597 8136583: Core libraries should use blessed modifier order
martin
parents: 25859
diff changeset
   152
    public static final byte REF_putField = 3;
2ee9017c7597 8136583: Core libraries should use blessed modifier order
martin
parents: 25859
diff changeset
   153
    public static final byte REF_putStatic = 4;
2ee9017c7597 8136583: Core libraries should use blessed modifier order
martin
parents: 25859
diff changeset
   154
    public static final byte REF_invokeVirtual = 5;
2ee9017c7597 8136583: Core libraries should use blessed modifier order
martin
parents: 25859
diff changeset
   155
    public static final byte REF_invokeStatic = 6;
2ee9017c7597 8136583: Core libraries should use blessed modifier order
martin
parents: 25859
diff changeset
   156
    public static final byte REF_invokeSpecial = 7;
2ee9017c7597 8136583: Core libraries should use blessed modifier order
martin
parents: 25859
diff changeset
   157
    public static final byte REF_newInvokeSpecial = 8;
2ee9017c7597 8136583: Core libraries should use blessed modifier order
martin
parents: 25859
diff changeset
   158
    public static final byte REF_invokeInterface = 9;
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   159
90ce3da70b43 Initial load
duke
parents:
diff changeset
   160
    // pseudo-access bits
32649
2ee9017c7597 8136583: Core libraries should use blessed modifier order
martin
parents: 25859
diff changeset
   161
    public static final int ACC_IC_LONG_FORM   = (1<<16); //for ic_flags
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   162
90ce3da70b43 Initial load
duke
parents:
diff changeset
   163
    // attribute "context types"
90ce3da70b43 Initial load
duke
parents:
diff changeset
   164
    public static final int ATTR_CONTEXT_CLASS  = 0;
90ce3da70b43 Initial load
duke
parents:
diff changeset
   165
    public static final int ATTR_CONTEXT_FIELD  = 1;
90ce3da70b43 Initial load
duke
parents:
diff changeset
   166
    public static final int ATTR_CONTEXT_METHOD = 2;
90ce3da70b43 Initial load
duke
parents:
diff changeset
   167
    public static final int ATTR_CONTEXT_CODE   = 3;
90ce3da70b43 Initial load
duke
parents:
diff changeset
   168
    public static final int ATTR_CONTEXT_LIMIT  = 4;
90ce3da70b43 Initial load
duke
parents:
diff changeset
   169
    public static final String[] ATTR_CONTEXT_NAME
90ce3da70b43 Initial load
duke
parents:
diff changeset
   170
        = { "class", "field", "method", "code" };
90ce3da70b43 Initial load
duke
parents:
diff changeset
   171
90ce3da70b43 Initial load
duke
parents:
diff changeset
   172
    // predefined attr bits
90ce3da70b43 Initial load
duke
parents:
diff changeset
   173
    public static final int
90ce3da70b43 Initial load
duke
parents:
diff changeset
   174
        X_ATTR_OVERFLOW = 16,
90ce3da70b43 Initial load
duke
parents:
diff changeset
   175
        CLASS_ATTR_SourceFile = 17,
90ce3da70b43 Initial load
duke
parents:
diff changeset
   176
        METHOD_ATTR_Code = 17,
90ce3da70b43 Initial load
duke
parents:
diff changeset
   177
        FIELD_ATTR_ConstantValue = 17,
90ce3da70b43 Initial load
duke
parents:
diff changeset
   178
        CLASS_ATTR_EnclosingMethod = 18,
90ce3da70b43 Initial load
duke
parents:
diff changeset
   179
        METHOD_ATTR_Exceptions = 18,
90ce3da70b43 Initial load
duke
parents:
diff changeset
   180
        X_ATTR_Signature = 19,
90ce3da70b43 Initial load
duke
parents:
diff changeset
   181
        X_ATTR_Deprecated = 20,
90ce3da70b43 Initial load
duke
parents:
diff changeset
   182
        X_ATTR_RuntimeVisibleAnnotations = 21,
90ce3da70b43 Initial load
duke
parents:
diff changeset
   183
        X_ATTR_RuntimeInvisibleAnnotations = 22,
90ce3da70b43 Initial load
duke
parents:
diff changeset
   184
        METHOD_ATTR_RuntimeVisibleParameterAnnotations = 23,
90ce3da70b43 Initial load
duke
parents:
diff changeset
   185
        CLASS_ATTR_InnerClasses = 23,
90ce3da70b43 Initial load
duke
parents:
diff changeset
   186
        METHOD_ATTR_RuntimeInvisibleParameterAnnotations = 24,
90ce3da70b43 Initial load
duke
parents:
diff changeset
   187
        CLASS_ATTR_ClassFile_version = 24,
90ce3da70b43 Initial load
duke
parents:
diff changeset
   188
        METHOD_ATTR_AnnotationDefault = 25,
17490
46864558d068 8001163: [pack200] should support attributes introduced by JSR-308
ksrini
parents: 16050
diff changeset
   189
        METHOD_ATTR_MethodParameters = 26,           // JDK8
46864558d068 8001163: [pack200] should support attributes introduced by JSR-308
ksrini
parents: 16050
diff changeset
   190
        X_ATTR_RuntimeVisibleTypeAnnotations = 27,   // JDK8
46864558d068 8001163: [pack200] should support attributes introduced by JSR-308
ksrini
parents: 16050
diff changeset
   191
        X_ATTR_RuntimeInvisibleTypeAnnotations = 28, // JDK8
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   192
        CODE_ATTR_StackMapTable = 0,  // new in Java 6
90ce3da70b43 Initial load
duke
parents:
diff changeset
   193
        CODE_ATTR_LineNumberTable = 1,
90ce3da70b43 Initial load
duke
parents:
diff changeset
   194
        CODE_ATTR_LocalVariableTable = 2,
90ce3da70b43 Initial load
duke
parents:
diff changeset
   195
        CODE_ATTR_LocalVariableTypeTable = 3;
90ce3da70b43 Initial load
duke
parents:
diff changeset
   196
90ce3da70b43 Initial load
duke
parents:
diff changeset
   197
    // File option bits, from LSB in ascending bit position.
90ce3da70b43 Initial load
duke
parents:
diff changeset
   198
    public static final int FO_DEFLATE_HINT           = 1<<0;
90ce3da70b43 Initial load
duke
parents:
diff changeset
   199
    public static final int FO_IS_CLASS_STUB          = 1<<1;
90ce3da70b43 Initial load
duke
parents:
diff changeset
   200
90ce3da70b43 Initial load
duke
parents:
diff changeset
   201
    // Archive option bits, from LSB in ascending bit position:
90ce3da70b43 Initial load
duke
parents:
diff changeset
   202
    public static final int AO_HAVE_SPECIAL_FORMATS   = 1<<0;
90ce3da70b43 Initial load
duke
parents:
diff changeset
   203
    public static final int AO_HAVE_CP_NUMBERS        = 1<<1;
90ce3da70b43 Initial load
duke
parents:
diff changeset
   204
    public static final int AO_HAVE_ALL_CODE_FLAGS    = 1<<2;
12544
5768f2e096de 6981776: Pack200 must support -target 7 bytecodes
ksrini
parents: 10115
diff changeset
   205
    public static final int AO_HAVE_CP_EXTRAS         = 1<<3;
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   206
    public static final int AO_HAVE_FILE_HEADERS      = 1<<4;
90ce3da70b43 Initial load
duke
parents:
diff changeset
   207
    public static final int AO_DEFLATE_HINT           = 1<<5;
90ce3da70b43 Initial load
duke
parents:
diff changeset
   208
    public static final int AO_HAVE_FILE_MODTIME      = 1<<6;
90ce3da70b43 Initial load
duke
parents:
diff changeset
   209
    public static final int AO_HAVE_FILE_OPTIONS      = 1<<7;
90ce3da70b43 Initial load
duke
parents:
diff changeset
   210
    public static final int AO_HAVE_FILE_SIZE_HI      = 1<<8;
90ce3da70b43 Initial load
duke
parents:
diff changeset
   211
    public static final int AO_HAVE_CLASS_FLAGS_HI    = 1<<9;
90ce3da70b43 Initial load
duke
parents:
diff changeset
   212
    public static final int AO_HAVE_FIELD_FLAGS_HI    = 1<<10;
90ce3da70b43 Initial load
duke
parents:
diff changeset
   213
    public static final int AO_HAVE_METHOD_FLAGS_HI   = 1<<11;
90ce3da70b43 Initial load
duke
parents:
diff changeset
   214
    public static final int AO_HAVE_CODE_FLAGS_HI     = 1<<12;
12544
5768f2e096de 6981776: Pack200 must support -target 7 bytecodes
ksrini
parents: 10115
diff changeset
   215
    public static final int AO_UNUSED_MBZ          = (-1)<<13;  // option bits reserved for future use
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   216
90ce3da70b43 Initial load
duke
parents:
diff changeset
   217
    public static final int LG_AO_HAVE_XXX_FLAGS_HI   = 9;
90ce3da70b43 Initial load
duke
parents:
diff changeset
   218
90ce3da70b43 Initial load
duke
parents:
diff changeset
   219
    // visitRefs modes:
90ce3da70b43 Initial load
duke
parents:
diff changeset
   220
    static final int VRM_CLASSIC = 0;
90ce3da70b43 Initial load
duke
parents:
diff changeset
   221
    static final int VRM_PACKAGE = 1;
90ce3da70b43 Initial load
duke
parents:
diff changeset
   222
90ce3da70b43 Initial load
duke
parents:
diff changeset
   223
    public static final int NO_MODTIME = 0;  // null modtime value
90ce3da70b43 Initial load
duke
parents:
diff changeset
   224
90ce3da70b43 Initial load
duke
parents:
diff changeset
   225
    // some comstantly empty containers
32649
2ee9017c7597 8136583: Core libraries should use blessed modifier order
martin
parents: 25859
diff changeset
   226
    public static final int[]        noInts = {};
2ee9017c7597 8136583: Core libraries should use blessed modifier order
martin
parents: 25859
diff changeset
   227
    public static final byte[]       noBytes = {};
2ee9017c7597 8136583: Core libraries should use blessed modifier order
martin
parents: 25859
diff changeset
   228
    public static final Object[]     noValues = {};
2ee9017c7597 8136583: Core libraries should use blessed modifier order
martin
parents: 25859
diff changeset
   229
    public static final String[]     noStrings = {};
2ee9017c7597 8136583: Core libraries should use blessed modifier order
martin
parents: 25859
diff changeset
   230
    public static final List<Object> emptyList = Arrays.asList(noValues);
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   231
90ce3da70b43 Initial load
duke
parents:
diff changeset
   232
    // meta-coding
32649
2ee9017c7597 8136583: Core libraries should use blessed modifier order
martin
parents: 25859
diff changeset
   233
    public static final int
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   234
        _meta_default = 0,
90ce3da70b43 Initial load
duke
parents:
diff changeset
   235
        _meta_canon_min = 1,
90ce3da70b43 Initial load
duke
parents:
diff changeset
   236
        _meta_canon_max = 115,
90ce3da70b43 Initial load
duke
parents:
diff changeset
   237
        _meta_arb = 116,
90ce3da70b43 Initial load
duke
parents:
diff changeset
   238
        _meta_run = 117,
90ce3da70b43 Initial load
duke
parents:
diff changeset
   239
        _meta_pop = 141,
90ce3da70b43 Initial load
duke
parents:
diff changeset
   240
        _meta_limit = 189;
90ce3da70b43 Initial load
duke
parents:
diff changeset
   241
90ce3da70b43 Initial load
duke
parents:
diff changeset
   242
    // bytecodes
32649
2ee9017c7597 8136583: Core libraries should use blessed modifier order
martin
parents: 25859
diff changeset
   243
    public static final int
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   244
        _nop                  =   0, // 0x00
90ce3da70b43 Initial load
duke
parents:
diff changeset
   245
        _aconst_null          =   1, // 0x01
90ce3da70b43 Initial load
duke
parents:
diff changeset
   246
        _iconst_m1            =   2, // 0x02
90ce3da70b43 Initial load
duke
parents:
diff changeset
   247
        _iconst_0             =   3, // 0x03
90ce3da70b43 Initial load
duke
parents:
diff changeset
   248
        _iconst_1             =   4, // 0x04
90ce3da70b43 Initial load
duke
parents:
diff changeset
   249
        _iconst_2             =   5, // 0x05
90ce3da70b43 Initial load
duke
parents:
diff changeset
   250
        _iconst_3             =   6, // 0x06
90ce3da70b43 Initial load
duke
parents:
diff changeset
   251
        _iconst_4             =   7, // 0x07
90ce3da70b43 Initial load
duke
parents:
diff changeset
   252
        _iconst_5             =   8, // 0x08
90ce3da70b43 Initial load
duke
parents:
diff changeset
   253
        _lconst_0             =   9, // 0x09
90ce3da70b43 Initial load
duke
parents:
diff changeset
   254
        _lconst_1             =  10, // 0x0a
90ce3da70b43 Initial load
duke
parents:
diff changeset
   255
        _fconst_0             =  11, // 0x0b
90ce3da70b43 Initial load
duke
parents:
diff changeset
   256
        _fconst_1             =  12, // 0x0c
90ce3da70b43 Initial load
duke
parents:
diff changeset
   257
        _fconst_2             =  13, // 0x0d
90ce3da70b43 Initial load
duke
parents:
diff changeset
   258
        _dconst_0             =  14, // 0x0e
90ce3da70b43 Initial load
duke
parents:
diff changeset
   259
        _dconst_1             =  15, // 0x0f
90ce3da70b43 Initial load
duke
parents:
diff changeset
   260
        _bipush               =  16, // 0x10
90ce3da70b43 Initial load
duke
parents:
diff changeset
   261
        _sipush               =  17, // 0x11
90ce3da70b43 Initial load
duke
parents:
diff changeset
   262
        _ldc                  =  18, // 0x12
90ce3da70b43 Initial load
duke
parents:
diff changeset
   263
        _ldc_w                =  19, // 0x13
90ce3da70b43 Initial load
duke
parents:
diff changeset
   264
        _ldc2_w               =  20, // 0x14
90ce3da70b43 Initial load
duke
parents:
diff changeset
   265
        _iload                =  21, // 0x15
90ce3da70b43 Initial load
duke
parents:
diff changeset
   266
        _lload                =  22, // 0x16
90ce3da70b43 Initial load
duke
parents:
diff changeset
   267
        _fload                =  23, // 0x17
90ce3da70b43 Initial load
duke
parents:
diff changeset
   268
        _dload                =  24, // 0x18
90ce3da70b43 Initial load
duke
parents:
diff changeset
   269
        _aload                =  25, // 0x19
90ce3da70b43 Initial load
duke
parents:
diff changeset
   270
        _iload_0              =  26, // 0x1a
90ce3da70b43 Initial load
duke
parents:
diff changeset
   271
        _iload_1              =  27, // 0x1b
90ce3da70b43 Initial load
duke
parents:
diff changeset
   272
        _iload_2              =  28, // 0x1c
90ce3da70b43 Initial load
duke
parents:
diff changeset
   273
        _iload_3              =  29, // 0x1d
90ce3da70b43 Initial load
duke
parents:
diff changeset
   274
        _lload_0              =  30, // 0x1e
90ce3da70b43 Initial load
duke
parents:
diff changeset
   275
        _lload_1              =  31, // 0x1f
90ce3da70b43 Initial load
duke
parents:
diff changeset
   276
        _lload_2              =  32, // 0x20
90ce3da70b43 Initial load
duke
parents:
diff changeset
   277
        _lload_3              =  33, // 0x21
90ce3da70b43 Initial load
duke
parents:
diff changeset
   278
        _fload_0              =  34, // 0x22
90ce3da70b43 Initial load
duke
parents:
diff changeset
   279
        _fload_1              =  35, // 0x23
90ce3da70b43 Initial load
duke
parents:
diff changeset
   280
        _fload_2              =  36, // 0x24
90ce3da70b43 Initial load
duke
parents:
diff changeset
   281
        _fload_3              =  37, // 0x25
90ce3da70b43 Initial load
duke
parents:
diff changeset
   282
        _dload_0              =  38, // 0x26
90ce3da70b43 Initial load
duke
parents:
diff changeset
   283
        _dload_1              =  39, // 0x27
90ce3da70b43 Initial load
duke
parents:
diff changeset
   284
        _dload_2              =  40, // 0x28
90ce3da70b43 Initial load
duke
parents:
diff changeset
   285
        _dload_3              =  41, // 0x29
90ce3da70b43 Initial load
duke
parents:
diff changeset
   286
        _aload_0              =  42, // 0x2a
90ce3da70b43 Initial load
duke
parents:
diff changeset
   287
        _aload_1              =  43, // 0x2b
90ce3da70b43 Initial load
duke
parents:
diff changeset
   288
        _aload_2              =  44, // 0x2c
90ce3da70b43 Initial load
duke
parents:
diff changeset
   289
        _aload_3              =  45, // 0x2d
90ce3da70b43 Initial load
duke
parents:
diff changeset
   290
        _iaload               =  46, // 0x2e
90ce3da70b43 Initial load
duke
parents:
diff changeset
   291
        _laload               =  47, // 0x2f
90ce3da70b43 Initial load
duke
parents:
diff changeset
   292
        _faload               =  48, // 0x30
90ce3da70b43 Initial load
duke
parents:
diff changeset
   293
        _daload               =  49, // 0x31
90ce3da70b43 Initial load
duke
parents:
diff changeset
   294
        _aaload               =  50, // 0x32
90ce3da70b43 Initial load
duke
parents:
diff changeset
   295
        _baload               =  51, // 0x33
90ce3da70b43 Initial load
duke
parents:
diff changeset
   296
        _caload               =  52, // 0x34
90ce3da70b43 Initial load
duke
parents:
diff changeset
   297
        _saload               =  53, // 0x35
90ce3da70b43 Initial load
duke
parents:
diff changeset
   298
        _istore               =  54, // 0x36
90ce3da70b43 Initial load
duke
parents:
diff changeset
   299
        _lstore               =  55, // 0x37
90ce3da70b43 Initial load
duke
parents:
diff changeset
   300
        _fstore               =  56, // 0x38
90ce3da70b43 Initial load
duke
parents:
diff changeset
   301
        _dstore               =  57, // 0x39
90ce3da70b43 Initial load
duke
parents:
diff changeset
   302
        _astore               =  58, // 0x3a
90ce3da70b43 Initial load
duke
parents:
diff changeset
   303
        _istore_0             =  59, // 0x3b
90ce3da70b43 Initial load
duke
parents:
diff changeset
   304
        _istore_1             =  60, // 0x3c
90ce3da70b43 Initial load
duke
parents:
diff changeset
   305
        _istore_2             =  61, // 0x3d
90ce3da70b43 Initial load
duke
parents:
diff changeset
   306
        _istore_3             =  62, // 0x3e
90ce3da70b43 Initial load
duke
parents:
diff changeset
   307
        _lstore_0             =  63, // 0x3f
90ce3da70b43 Initial load
duke
parents:
diff changeset
   308
        _lstore_1             =  64, // 0x40
90ce3da70b43 Initial load
duke
parents:
diff changeset
   309
        _lstore_2             =  65, // 0x41
90ce3da70b43 Initial load
duke
parents:
diff changeset
   310
        _lstore_3             =  66, // 0x42
90ce3da70b43 Initial load
duke
parents:
diff changeset
   311
        _fstore_0             =  67, // 0x43
90ce3da70b43 Initial load
duke
parents:
diff changeset
   312
        _fstore_1             =  68, // 0x44
90ce3da70b43 Initial load
duke
parents:
diff changeset
   313
        _fstore_2             =  69, // 0x45
90ce3da70b43 Initial load
duke
parents:
diff changeset
   314
        _fstore_3             =  70, // 0x46
90ce3da70b43 Initial load
duke
parents:
diff changeset
   315
        _dstore_0             =  71, // 0x47
90ce3da70b43 Initial load
duke
parents:
diff changeset
   316
        _dstore_1             =  72, // 0x48
90ce3da70b43 Initial load
duke
parents:
diff changeset
   317
        _dstore_2             =  73, // 0x49
90ce3da70b43 Initial load
duke
parents:
diff changeset
   318
        _dstore_3             =  74, // 0x4a
90ce3da70b43 Initial load
duke
parents:
diff changeset
   319
        _astore_0             =  75, // 0x4b
90ce3da70b43 Initial load
duke
parents:
diff changeset
   320
        _astore_1             =  76, // 0x4c
90ce3da70b43 Initial load
duke
parents:
diff changeset
   321
        _astore_2             =  77, // 0x4d
90ce3da70b43 Initial load
duke
parents:
diff changeset
   322
        _astore_3             =  78, // 0x4e
90ce3da70b43 Initial load
duke
parents:
diff changeset
   323
        _iastore              =  79, // 0x4f
90ce3da70b43 Initial load
duke
parents:
diff changeset
   324
        _lastore              =  80, // 0x50
90ce3da70b43 Initial load
duke
parents:
diff changeset
   325
        _fastore              =  81, // 0x51
90ce3da70b43 Initial load
duke
parents:
diff changeset
   326
        _dastore              =  82, // 0x52
90ce3da70b43 Initial load
duke
parents:
diff changeset
   327
        _aastore              =  83, // 0x53
90ce3da70b43 Initial load
duke
parents:
diff changeset
   328
        _bastore              =  84, // 0x54
90ce3da70b43 Initial load
duke
parents:
diff changeset
   329
        _castore              =  85, // 0x55
90ce3da70b43 Initial load
duke
parents:
diff changeset
   330
        _sastore              =  86, // 0x56
90ce3da70b43 Initial load
duke
parents:
diff changeset
   331
        _pop                  =  87, // 0x57
90ce3da70b43 Initial load
duke
parents:
diff changeset
   332
        _pop2                 =  88, // 0x58
90ce3da70b43 Initial load
duke
parents:
diff changeset
   333
        _dup                  =  89, // 0x59
90ce3da70b43 Initial load
duke
parents:
diff changeset
   334
        _dup_x1               =  90, // 0x5a
90ce3da70b43 Initial load
duke
parents:
diff changeset
   335
        _dup_x2               =  91, // 0x5b
90ce3da70b43 Initial load
duke
parents:
diff changeset
   336
        _dup2                 =  92, // 0x5c
90ce3da70b43 Initial load
duke
parents:
diff changeset
   337
        _dup2_x1              =  93, // 0x5d
90ce3da70b43 Initial load
duke
parents:
diff changeset
   338
        _dup2_x2              =  94, // 0x5e
90ce3da70b43 Initial load
duke
parents:
diff changeset
   339
        _swap                 =  95, // 0x5f
90ce3da70b43 Initial load
duke
parents:
diff changeset
   340
        _iadd                 =  96, // 0x60
90ce3da70b43 Initial load
duke
parents:
diff changeset
   341
        _ladd                 =  97, // 0x61
90ce3da70b43 Initial load
duke
parents:
diff changeset
   342
        _fadd                 =  98, // 0x62
90ce3da70b43 Initial load
duke
parents:
diff changeset
   343
        _dadd                 =  99, // 0x63
90ce3da70b43 Initial load
duke
parents:
diff changeset
   344
        _isub                 = 100, // 0x64
90ce3da70b43 Initial load
duke
parents:
diff changeset
   345
        _lsub                 = 101, // 0x65
90ce3da70b43 Initial load
duke
parents:
diff changeset
   346
        _fsub                 = 102, // 0x66
90ce3da70b43 Initial load
duke
parents:
diff changeset
   347
        _dsub                 = 103, // 0x67
90ce3da70b43 Initial load
duke
parents:
diff changeset
   348
        _imul                 = 104, // 0x68
90ce3da70b43 Initial load
duke
parents:
diff changeset
   349
        _lmul                 = 105, // 0x69
90ce3da70b43 Initial load
duke
parents:
diff changeset
   350
        _fmul                 = 106, // 0x6a
90ce3da70b43 Initial load
duke
parents:
diff changeset
   351
        _dmul                 = 107, // 0x6b
90ce3da70b43 Initial load
duke
parents:
diff changeset
   352
        _idiv                 = 108, // 0x6c
90ce3da70b43 Initial load
duke
parents:
diff changeset
   353
        _ldiv                 = 109, // 0x6d
90ce3da70b43 Initial load
duke
parents:
diff changeset
   354
        _fdiv                 = 110, // 0x6e
90ce3da70b43 Initial load
duke
parents:
diff changeset
   355
        _ddiv                 = 111, // 0x6f
90ce3da70b43 Initial load
duke
parents:
diff changeset
   356
        _irem                 = 112, // 0x70
90ce3da70b43 Initial load
duke
parents:
diff changeset
   357
        _lrem                 = 113, // 0x71
90ce3da70b43 Initial load
duke
parents:
diff changeset
   358
        _frem                 = 114, // 0x72
90ce3da70b43 Initial load
duke
parents:
diff changeset
   359
        _drem                 = 115, // 0x73
90ce3da70b43 Initial load
duke
parents:
diff changeset
   360
        _ineg                 = 116, // 0x74
90ce3da70b43 Initial load
duke
parents:
diff changeset
   361
        _lneg                 = 117, // 0x75
90ce3da70b43 Initial load
duke
parents:
diff changeset
   362
        _fneg                 = 118, // 0x76
90ce3da70b43 Initial load
duke
parents:
diff changeset
   363
        _dneg                 = 119, // 0x77
90ce3da70b43 Initial load
duke
parents:
diff changeset
   364
        _ishl                 = 120, // 0x78
90ce3da70b43 Initial load
duke
parents:
diff changeset
   365
        _lshl                 = 121, // 0x79
90ce3da70b43 Initial load
duke
parents:
diff changeset
   366
        _ishr                 = 122, // 0x7a
90ce3da70b43 Initial load
duke
parents:
diff changeset
   367
        _lshr                 = 123, // 0x7b
90ce3da70b43 Initial load
duke
parents:
diff changeset
   368
        _iushr                = 124, // 0x7c
90ce3da70b43 Initial load
duke
parents:
diff changeset
   369
        _lushr                = 125, // 0x7d
90ce3da70b43 Initial load
duke
parents:
diff changeset
   370
        _iand                 = 126, // 0x7e
90ce3da70b43 Initial load
duke
parents:
diff changeset
   371
        _land                 = 127, // 0x7f
90ce3da70b43 Initial load
duke
parents:
diff changeset
   372
        _ior                  = 128, // 0x80
90ce3da70b43 Initial load
duke
parents:
diff changeset
   373
        _lor                  = 129, // 0x81
90ce3da70b43 Initial load
duke
parents:
diff changeset
   374
        _ixor                 = 130, // 0x82
90ce3da70b43 Initial load
duke
parents:
diff changeset
   375
        _lxor                 = 131, // 0x83
90ce3da70b43 Initial load
duke
parents:
diff changeset
   376
        _iinc                 = 132, // 0x84
90ce3da70b43 Initial load
duke
parents:
diff changeset
   377
        _i2l                  = 133, // 0x85
90ce3da70b43 Initial load
duke
parents:
diff changeset
   378
        _i2f                  = 134, // 0x86
90ce3da70b43 Initial load
duke
parents:
diff changeset
   379
        _i2d                  = 135, // 0x87
90ce3da70b43 Initial load
duke
parents:
diff changeset
   380
        _l2i                  = 136, // 0x88
90ce3da70b43 Initial load
duke
parents:
diff changeset
   381
        _l2f                  = 137, // 0x89
90ce3da70b43 Initial load
duke
parents:
diff changeset
   382
        _l2d                  = 138, // 0x8a
90ce3da70b43 Initial load
duke
parents:
diff changeset
   383
        _f2i                  = 139, // 0x8b
90ce3da70b43 Initial load
duke
parents:
diff changeset
   384
        _f2l                  = 140, // 0x8c
90ce3da70b43 Initial load
duke
parents:
diff changeset
   385
        _f2d                  = 141, // 0x8d
90ce3da70b43 Initial load
duke
parents:
diff changeset
   386
        _d2i                  = 142, // 0x8e
90ce3da70b43 Initial load
duke
parents:
diff changeset
   387
        _d2l                  = 143, // 0x8f
90ce3da70b43 Initial load
duke
parents:
diff changeset
   388
        _d2f                  = 144, // 0x90
90ce3da70b43 Initial load
duke
parents:
diff changeset
   389
        _i2b                  = 145, // 0x91
90ce3da70b43 Initial load
duke
parents:
diff changeset
   390
        _i2c                  = 146, // 0x92
90ce3da70b43 Initial load
duke
parents:
diff changeset
   391
        _i2s                  = 147, // 0x93
90ce3da70b43 Initial load
duke
parents:
diff changeset
   392
        _lcmp                 = 148, // 0x94
90ce3da70b43 Initial load
duke
parents:
diff changeset
   393
        _fcmpl                = 149, // 0x95
90ce3da70b43 Initial load
duke
parents:
diff changeset
   394
        _fcmpg                = 150, // 0x96
90ce3da70b43 Initial load
duke
parents:
diff changeset
   395
        _dcmpl                = 151, // 0x97
90ce3da70b43 Initial load
duke
parents:
diff changeset
   396
        _dcmpg                = 152, // 0x98
90ce3da70b43 Initial load
duke
parents:
diff changeset
   397
        _ifeq                 = 153, // 0x99
90ce3da70b43 Initial load
duke
parents:
diff changeset
   398
        _ifne                 = 154, // 0x9a
90ce3da70b43 Initial load
duke
parents:
diff changeset
   399
        _iflt                 = 155, // 0x9b
90ce3da70b43 Initial load
duke
parents:
diff changeset
   400
        _ifge                 = 156, // 0x9c
90ce3da70b43 Initial load
duke
parents:
diff changeset
   401
        _ifgt                 = 157, // 0x9d
90ce3da70b43 Initial load
duke
parents:
diff changeset
   402
        _ifle                 = 158, // 0x9e
90ce3da70b43 Initial load
duke
parents:
diff changeset
   403
        _if_icmpeq            = 159, // 0x9f
90ce3da70b43 Initial load
duke
parents:
diff changeset
   404
        _if_icmpne            = 160, // 0xa0
90ce3da70b43 Initial load
duke
parents:
diff changeset
   405
        _if_icmplt            = 161, // 0xa1
90ce3da70b43 Initial load
duke
parents:
diff changeset
   406
        _if_icmpge            = 162, // 0xa2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   407
        _if_icmpgt            = 163, // 0xa3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   408
        _if_icmple            = 164, // 0xa4
90ce3da70b43 Initial load
duke
parents:
diff changeset
   409
        _if_acmpeq            = 165, // 0xa5
90ce3da70b43 Initial load
duke
parents:
diff changeset
   410
        _if_acmpne            = 166, // 0xa6
90ce3da70b43 Initial load
duke
parents:
diff changeset
   411
        _goto                 = 167, // 0xa7
90ce3da70b43 Initial load
duke
parents:
diff changeset
   412
        _jsr                  = 168, // 0xa8
90ce3da70b43 Initial load
duke
parents:
diff changeset
   413
        _ret                  = 169, // 0xa9
90ce3da70b43 Initial load
duke
parents:
diff changeset
   414
        _tableswitch          = 170, // 0xaa
90ce3da70b43 Initial load
duke
parents:
diff changeset
   415
        _lookupswitch         = 171, // 0xab
90ce3da70b43 Initial load
duke
parents:
diff changeset
   416
        _ireturn              = 172, // 0xac
90ce3da70b43 Initial load
duke
parents:
diff changeset
   417
        _lreturn              = 173, // 0xad
90ce3da70b43 Initial load
duke
parents:
diff changeset
   418
        _freturn              = 174, // 0xae
90ce3da70b43 Initial load
duke
parents:
diff changeset
   419
        _dreturn              = 175, // 0xaf
90ce3da70b43 Initial load
duke
parents:
diff changeset
   420
        _areturn              = 176, // 0xb0
90ce3da70b43 Initial load
duke
parents:
diff changeset
   421
        _return               = 177, // 0xb1
90ce3da70b43 Initial load
duke
parents:
diff changeset
   422
        _getstatic            = 178, // 0xb2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   423
        _putstatic            = 179, // 0xb3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   424
        _getfield             = 180, // 0xb4
90ce3da70b43 Initial load
duke
parents:
diff changeset
   425
        _putfield             = 181, // 0xb5
90ce3da70b43 Initial load
duke
parents:
diff changeset
   426
        _invokevirtual        = 182, // 0xb6
90ce3da70b43 Initial load
duke
parents:
diff changeset
   427
        _invokespecial        = 183, // 0xb7
90ce3da70b43 Initial load
duke
parents:
diff changeset
   428
        _invokestatic         = 184, // 0xb8
90ce3da70b43 Initial load
duke
parents:
diff changeset
   429
        _invokeinterface      = 185, // 0xb9
12544
5768f2e096de 6981776: Pack200 must support -target 7 bytecodes
ksrini
parents: 10115
diff changeset
   430
        _invokedynamic        = 186, // 0xba
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   431
        _new                  = 187, // 0xbb
90ce3da70b43 Initial load
duke
parents:
diff changeset
   432
        _newarray             = 188, // 0xbc
90ce3da70b43 Initial load
duke
parents:
diff changeset
   433
        _anewarray            = 189, // 0xbd
90ce3da70b43 Initial load
duke
parents:
diff changeset
   434
        _arraylength          = 190, // 0xbe
90ce3da70b43 Initial load
duke
parents:
diff changeset
   435
        _athrow               = 191, // 0xbf
90ce3da70b43 Initial load
duke
parents:
diff changeset
   436
        _checkcast            = 192, // 0xc0
90ce3da70b43 Initial load
duke
parents:
diff changeset
   437
        _instanceof           = 193, // 0xc1
90ce3da70b43 Initial load
duke
parents:
diff changeset
   438
        _monitorenter         = 194, // 0xc2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   439
        _monitorexit          = 195, // 0xc3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   440
        _wide                 = 196, // 0xc4
90ce3da70b43 Initial load
duke
parents:
diff changeset
   441
        _multianewarray       = 197, // 0xc5
90ce3da70b43 Initial load
duke
parents:
diff changeset
   442
        _ifnull               = 198, // 0xc6
90ce3da70b43 Initial load
duke
parents:
diff changeset
   443
        _ifnonnull            = 199, // 0xc7
90ce3da70b43 Initial load
duke
parents:
diff changeset
   444
        _goto_w               = 200, // 0xc8
90ce3da70b43 Initial load
duke
parents:
diff changeset
   445
        _jsr_w                = 201, // 0xc9
90ce3da70b43 Initial load
duke
parents:
diff changeset
   446
        _bytecode_limit       = 202; // 0xca
90ce3da70b43 Initial load
duke
parents:
diff changeset
   447
90ce3da70b43 Initial load
duke
parents:
diff changeset
   448
    // End marker, used to terminate bytecode sequences:
32649
2ee9017c7597 8136583: Core libraries should use blessed modifier order
martin
parents: 25859
diff changeset
   449
    public static final int _end_marker = 255;
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   450
    // Escapes:
32649
2ee9017c7597 8136583: Core libraries should use blessed modifier order
martin
parents: 25859
diff changeset
   451
    public static final int _byte_escape = 254;
2ee9017c7597 8136583: Core libraries should use blessed modifier order
martin
parents: 25859
diff changeset
   452
    public static final int _ref_escape = 253;
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   453
90ce3da70b43 Initial load
duke
parents:
diff changeset
   454
    // Self-relative pseudo-opcodes for better compression.
90ce3da70b43 Initial load
duke
parents:
diff changeset
   455
    // A "linker op" is a bytecode which links to a class member.
90ce3da70b43 Initial load
duke
parents:
diff changeset
   456
    // (But in what follows, "invokeinterface" ops are excluded.)
90ce3da70b43 Initial load
duke
parents:
diff changeset
   457
    //
90ce3da70b43 Initial load
duke
parents:
diff changeset
   458
    // A "self linker op" is a variant bytecode which works only
90ce3da70b43 Initial load
duke
parents:
diff changeset
   459
    // with the current class or its super.  Because the number of
90ce3da70b43 Initial load
duke
parents:
diff changeset
   460
    // possible targets is small, it admits a more compact encoding.
90ce3da70b43 Initial load
duke
parents:
diff changeset
   461
    // Self linker ops are allowed to absorb a previous "aload_0" op.
90ce3da70b43 Initial load
duke
parents:
diff changeset
   462
    // There are (7 * 4) self linker ops (super or not, aload_0 or not).
90ce3da70b43 Initial load
duke
parents:
diff changeset
   463
    //
90ce3da70b43 Initial load
duke
parents:
diff changeset
   464
    // For simplicity, we define the full symmetric set of variants.
90ce3da70b43 Initial load
duke
parents:
diff changeset
   465
    // However, some of them are relatively useless.
90ce3da70b43 Initial load
duke
parents:
diff changeset
   466
    // Self linker ops are enabled by Pack.selfCallVariants (true).
32649
2ee9017c7597 8136583: Core libraries should use blessed modifier order
martin
parents: 25859
diff changeset
   467
    public static final int _first_linker_op = _getstatic;
2ee9017c7597 8136583: Core libraries should use blessed modifier order
martin
parents: 25859
diff changeset
   468
    public static final int _last_linker_op  = _invokestatic;
2ee9017c7597 8136583: Core libraries should use blessed modifier order
martin
parents: 25859
diff changeset
   469
    public static final int _num_linker_ops  = (_last_linker_op - _first_linker_op) + 1;
2ee9017c7597 8136583: Core libraries should use blessed modifier order
martin
parents: 25859
diff changeset
   470
    public static final int _self_linker_op  = _bytecode_limit;
2ee9017c7597 8136583: Core libraries should use blessed modifier order
martin
parents: 25859
diff changeset
   471
    public static final int _self_linker_aload_flag = 1*_num_linker_ops;
2ee9017c7597 8136583: Core libraries should use blessed modifier order
martin
parents: 25859
diff changeset
   472
    public static final int _self_linker_super_flag = 2*_num_linker_ops;
2ee9017c7597 8136583: Core libraries should use blessed modifier order
martin
parents: 25859
diff changeset
   473
    public static final int _self_linker_limit = _self_linker_op + 4*_num_linker_ops;
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   474
    // An "invoke init" op is a variant of invokespecial which works
90ce3da70b43 Initial load
duke
parents:
diff changeset
   475
    // only with the method name "<init>".  There are variants which
90ce3da70b43 Initial load
duke
parents:
diff changeset
   476
    // link to the current class, the super class, or the class of the
90ce3da70b43 Initial load
duke
parents:
diff changeset
   477
    // immediately previous "newinstance" op.  There are 3 of these ops.
90ce3da70b43 Initial load
duke
parents:
diff changeset
   478
    // They all take method signature references as operands.
90ce3da70b43 Initial load
duke
parents:
diff changeset
   479
    // Invoke init ops are enabled by Pack.initCallVariants (true).
32649
2ee9017c7597 8136583: Core libraries should use blessed modifier order
martin
parents: 25859
diff changeset
   480
    public static final int _invokeinit_op = _self_linker_limit;
2ee9017c7597 8136583: Core libraries should use blessed modifier order
martin
parents: 25859
diff changeset
   481
    public static final int _invokeinit_self_option = 0;
2ee9017c7597 8136583: Core libraries should use blessed modifier order
martin
parents: 25859
diff changeset
   482
    public static final int _invokeinit_super_option = 1;
2ee9017c7597 8136583: Core libraries should use blessed modifier order
martin
parents: 25859
diff changeset
   483
    public static final int _invokeinit_new_option = 2;
2ee9017c7597 8136583: Core libraries should use blessed modifier order
martin
parents: 25859
diff changeset
   484
    public static final int _invokeinit_limit = _invokeinit_op+3;
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   485
32649
2ee9017c7597 8136583: Core libraries should use blessed modifier order
martin
parents: 25859
diff changeset
   486
    public static final int _pseudo_instruction_limit = _invokeinit_limit;
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   487
    // linker variant limit == 202+(7*4)+3 == 233
90ce3da70b43 Initial load
duke
parents:
diff changeset
   488
90ce3da70b43 Initial load
duke
parents:
diff changeset
   489
    // Ldc variants support strongly typed references to constants.
90ce3da70b43 Initial load
duke
parents:
diff changeset
   490
    // This lets us index constant pool entries completely according to tag,
90ce3da70b43 Initial load
duke
parents:
diff changeset
   491
    // which is a great simplification.
90ce3da70b43 Initial load
duke
parents:
diff changeset
   492
    // Ldc variants gain us only 0.007% improvement in compression ratio,
90ce3da70b43 Initial load
duke
parents:
diff changeset
   493
    // but they simplify the file format greatly.
32649
2ee9017c7597 8136583: Core libraries should use blessed modifier order
martin
parents: 25859
diff changeset
   494
    public static final int _xldc_op = _invokeinit_limit;
2ee9017c7597 8136583: Core libraries should use blessed modifier order
martin
parents: 25859
diff changeset
   495
    public static final int _sldc = _ldc;  // previously named _aldc
2ee9017c7597 8136583: Core libraries should use blessed modifier order
martin
parents: 25859
diff changeset
   496
    public static final int _cldc = _xldc_op+0;
2ee9017c7597 8136583: Core libraries should use blessed modifier order
martin
parents: 25859
diff changeset
   497
    public static final int _ildc = _xldc_op+1;
2ee9017c7597 8136583: Core libraries should use blessed modifier order
martin
parents: 25859
diff changeset
   498
    public static final int _fldc = _xldc_op+2;
2ee9017c7597 8136583: Core libraries should use blessed modifier order
martin
parents: 25859
diff changeset
   499
    public static final int _sldc_w = _ldc_w;  // previously named _aldc_w
2ee9017c7597 8136583: Core libraries should use blessed modifier order
martin
parents: 25859
diff changeset
   500
    public static final int _cldc_w = _xldc_op+3;
2ee9017c7597 8136583: Core libraries should use blessed modifier order
martin
parents: 25859
diff changeset
   501
    public static final int _ildc_w = _xldc_op+4;
2ee9017c7597 8136583: Core libraries should use blessed modifier order
martin
parents: 25859
diff changeset
   502
    public static final int _fldc_w = _xldc_op+5;
2ee9017c7597 8136583: Core libraries should use blessed modifier order
martin
parents: 25859
diff changeset
   503
    public static final int _lldc2_w = _ldc2_w;
2ee9017c7597 8136583: Core libraries should use blessed modifier order
martin
parents: 25859
diff changeset
   504
    public static final int _dldc2_w = _xldc_op+6;
12544
5768f2e096de 6981776: Pack200 must support -target 7 bytecodes
ksrini
parents: 10115
diff changeset
   505
    // anything other than primitive, string, or class must be handled with qldc:
32649
2ee9017c7597 8136583: Core libraries should use blessed modifier order
martin
parents: 25859
diff changeset
   506
    public static final int _qldc   = _xldc_op+7;
2ee9017c7597 8136583: Core libraries should use blessed modifier order
martin
parents: 25859
diff changeset
   507
    public static final int _qldc_w = _xldc_op+8;
2ee9017c7597 8136583: Core libraries should use blessed modifier order
martin
parents: 25859
diff changeset
   508
    public static final int _xldc_limit = _xldc_op+9;
16050
1eee624cddb3 8007297: [pack200] allow opcodes with InterfaceMethodRefs
ksrini
parents: 15261
diff changeset
   509
1eee624cddb3 8007297: [pack200] allow opcodes with InterfaceMethodRefs
ksrini
parents: 15261
diff changeset
   510
    // handling of InterfaceMethodRef
32649
2ee9017c7597 8136583: Core libraries should use blessed modifier order
martin
parents: 25859
diff changeset
   511
    public static final int _invoke_int_op = _xldc_limit;
2ee9017c7597 8136583: Core libraries should use blessed modifier order
martin
parents: 25859
diff changeset
   512
    public static final int _invokespecial_int = _invoke_int_op+0;
2ee9017c7597 8136583: Core libraries should use blessed modifier order
martin
parents: 25859
diff changeset
   513
    public static final int _invokestatic_int = _invoke_int_op+1;
2ee9017c7597 8136583: Core libraries should use blessed modifier order
martin
parents: 25859
diff changeset
   514
    public static final int _invoke_int_limit = _invoke_int_op+2;
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   515
}