langtools/src/share/classes/com/sun/tools/javac/jvm/ByteCodes.java
author mcimadamore
Sat, 17 Nov 2012 19:01:03 +0000
changeset 14547 86d8d242b0c4
parent 13844 56339cf983a3
permissions -rw-r--r--
8003280: Add lambda tests Summary: Turn on lambda expression, method reference and default method support Reviewed-by: jjg
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
10
06bc494ca11e Initial load
duke
parents:
diff changeset
     1
/*
13844
56339cf983a3 7177970: fix issues in langtools doc comments
jjg
parents: 5847
diff changeset
     2
 * Copyright (c) 1999, 2012, Oracle and/or its affiliates. All rights reserved.
10
06bc494ca11e Initial load
duke
parents:
diff changeset
     3
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
06bc494ca11e Initial load
duke
parents:
diff changeset
     4
 *
06bc494ca11e Initial load
duke
parents:
diff changeset
     5
 * This code is free software; you can redistribute it and/or modify it
06bc494ca11e Initial load
duke
parents:
diff changeset
     6
 * under the terms of the GNU General Public License version 2 only, as
5520
86e4b9a9da40 6943119: Rebrand source copyright notices
ohair
parents: 2723
diff changeset
     7
 * published by the Free Software Foundation.  Oracle designates this
10
06bc494ca11e Initial load
duke
parents:
diff changeset
     8
 * particular file as subject to the "Classpath" exception as provided
5520
86e4b9a9da40 6943119: Rebrand source copyright notices
ohair
parents: 2723
diff changeset
     9
 * by Oracle in the LICENSE file that accompanied this code.
10
06bc494ca11e Initial load
duke
parents:
diff changeset
    10
 *
06bc494ca11e Initial load
duke
parents:
diff changeset
    11
 * This code is distributed in the hope that it will be useful, but WITHOUT
06bc494ca11e Initial load
duke
parents:
diff changeset
    12
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
06bc494ca11e Initial load
duke
parents:
diff changeset
    13
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
06bc494ca11e Initial load
duke
parents:
diff changeset
    14
 * version 2 for more details (a copy is included in the LICENSE file that
06bc494ca11e Initial load
duke
parents:
diff changeset
    15
 * accompanied this code).
06bc494ca11e Initial load
duke
parents:
diff changeset
    16
 *
06bc494ca11e Initial load
duke
parents:
diff changeset
    17
 * You should have received a copy of the GNU General Public License version
06bc494ca11e Initial load
duke
parents:
diff changeset
    18
 * 2 along with this work; if not, write to the Free Software Foundation,
06bc494ca11e Initial load
duke
parents:
diff changeset
    19
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
06bc494ca11e Initial load
duke
parents:
diff changeset
    20
 *
5520
86e4b9a9da40 6943119: Rebrand source copyright notices
ohair
parents: 2723
diff changeset
    21
 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
86e4b9a9da40 6943119: Rebrand source copyright notices
ohair
parents: 2723
diff changeset
    22
 * or visit www.oracle.com if you need additional information or have any
86e4b9a9da40 6943119: Rebrand source copyright notices
ohair
parents: 2723
diff changeset
    23
 * questions.
10
06bc494ca11e Initial load
duke
parents:
diff changeset
    24
 */
06bc494ca11e Initial load
duke
parents:
diff changeset
    25
06bc494ca11e Initial load
duke
parents:
diff changeset
    26
package com.sun.tools.javac.jvm;
06bc494ca11e Initial load
duke
parents:
diff changeset
    27
06bc494ca11e Initial load
duke
parents:
diff changeset
    28
06bc494ca11e Initial load
duke
parents:
diff changeset
    29
/** Bytecode instruction codes, as well as typecodes used as
06bc494ca11e Initial load
duke
parents:
diff changeset
    30
 *  instruction modifiers.
06bc494ca11e Initial load
duke
parents:
diff changeset
    31
 *
5847
1908176fd6e3 6944312: Potential rebranding issues in openjdk/langtools repository sources
jjg
parents: 5520
diff changeset
    32
 *  <p><b>This is NOT part of any supported API.
1908176fd6e3 6944312: Potential rebranding issues in openjdk/langtools repository sources
jjg
parents: 5520
diff changeset
    33
 *  If you write code that depends on this, you do so at your own risk.
10
06bc494ca11e Initial load
duke
parents:
diff changeset
    34
 *  This code and its internal interfaces are subject to change or
06bc494ca11e Initial load
duke
parents:
diff changeset
    35
 *  deletion without notice.</b>
06bc494ca11e Initial load
duke
parents:
diff changeset
    36
 */
06bc494ca11e Initial load
duke
parents:
diff changeset
    37
public interface ByteCodes {
06bc494ca11e Initial load
duke
parents:
diff changeset
    38
06bc494ca11e Initial load
duke
parents:
diff changeset
    39
    /** Byte code instruction codes.
06bc494ca11e Initial load
duke
parents:
diff changeset
    40
     */
06bc494ca11e Initial load
duke
parents:
diff changeset
    41
    int illegal         = -1,
06bc494ca11e Initial load
duke
parents:
diff changeset
    42
        nop             = 0,
06bc494ca11e Initial load
duke
parents:
diff changeset
    43
        aconst_null     = 1,
06bc494ca11e Initial load
duke
parents:
diff changeset
    44
        iconst_m1       = 2,
06bc494ca11e Initial load
duke
parents:
diff changeset
    45
        iconst_0        = 3,
06bc494ca11e Initial load
duke
parents:
diff changeset
    46
        iconst_1        = 4,
06bc494ca11e Initial load
duke
parents:
diff changeset
    47
        iconst_2        = 5,
06bc494ca11e Initial load
duke
parents:
diff changeset
    48
        iconst_3        = 6,
06bc494ca11e Initial load
duke
parents:
diff changeset
    49
        iconst_4        = 7,
06bc494ca11e Initial load
duke
parents:
diff changeset
    50
        iconst_5        = 8,
06bc494ca11e Initial load
duke
parents:
diff changeset
    51
        lconst_0        = 9,
06bc494ca11e Initial load
duke
parents:
diff changeset
    52
        lconst_1        = 10,
06bc494ca11e Initial load
duke
parents:
diff changeset
    53
        fconst_0        = 11,
06bc494ca11e Initial load
duke
parents:
diff changeset
    54
        fconst_1        = 12,
06bc494ca11e Initial load
duke
parents:
diff changeset
    55
        fconst_2        = 13,
06bc494ca11e Initial load
duke
parents:
diff changeset
    56
        dconst_0        = 14,
06bc494ca11e Initial load
duke
parents:
diff changeset
    57
        dconst_1        = 15,
06bc494ca11e Initial load
duke
parents:
diff changeset
    58
        bipush          = 16,
06bc494ca11e Initial load
duke
parents:
diff changeset
    59
        sipush          = 17,
06bc494ca11e Initial load
duke
parents:
diff changeset
    60
        ldc1            = 18,
06bc494ca11e Initial load
duke
parents:
diff changeset
    61
        ldc2            = 19,
06bc494ca11e Initial load
duke
parents:
diff changeset
    62
        ldc2w           = 20,
06bc494ca11e Initial load
duke
parents:
diff changeset
    63
        iload           = 21,
06bc494ca11e Initial load
duke
parents:
diff changeset
    64
        lload           = 22,
06bc494ca11e Initial load
duke
parents:
diff changeset
    65
        fload           = 23,
06bc494ca11e Initial load
duke
parents:
diff changeset
    66
        dload           = 24,
06bc494ca11e Initial load
duke
parents:
diff changeset
    67
        aload           = 25,
06bc494ca11e Initial load
duke
parents:
diff changeset
    68
        iload_0         = 26,
06bc494ca11e Initial load
duke
parents:
diff changeset
    69
        iload_1         = 27,
06bc494ca11e Initial load
duke
parents:
diff changeset
    70
        iload_2         = 28,
06bc494ca11e Initial load
duke
parents:
diff changeset
    71
        iload_3         = 29,
06bc494ca11e Initial load
duke
parents:
diff changeset
    72
        lload_0         = 30,
06bc494ca11e Initial load
duke
parents:
diff changeset
    73
        lload_1         = 31,
06bc494ca11e Initial load
duke
parents:
diff changeset
    74
        lload_2         = 32,
06bc494ca11e Initial load
duke
parents:
diff changeset
    75
        lload_3         = 33,
06bc494ca11e Initial load
duke
parents:
diff changeset
    76
        fload_0         = 34,
06bc494ca11e Initial load
duke
parents:
diff changeset
    77
        fload_1         = 35,
06bc494ca11e Initial load
duke
parents:
diff changeset
    78
        fload_2         = 36,
06bc494ca11e Initial load
duke
parents:
diff changeset
    79
        fload_3         = 37,
06bc494ca11e Initial load
duke
parents:
diff changeset
    80
        dload_0         = 38,
06bc494ca11e Initial load
duke
parents:
diff changeset
    81
        dload_1         = 39,
06bc494ca11e Initial load
duke
parents:
diff changeset
    82
        dload_2         = 40,
06bc494ca11e Initial load
duke
parents:
diff changeset
    83
        dload_3         = 41,
06bc494ca11e Initial load
duke
parents:
diff changeset
    84
        aload_0         = 42,
06bc494ca11e Initial load
duke
parents:
diff changeset
    85
        aload_1         = 43,
06bc494ca11e Initial load
duke
parents:
diff changeset
    86
        aload_2         = 44,
06bc494ca11e Initial load
duke
parents:
diff changeset
    87
        aload_3         = 45,
06bc494ca11e Initial load
duke
parents:
diff changeset
    88
        iaload          = 46,
06bc494ca11e Initial load
duke
parents:
diff changeset
    89
        laload          = 47,
06bc494ca11e Initial load
duke
parents:
diff changeset
    90
        faload          = 48,
06bc494ca11e Initial load
duke
parents:
diff changeset
    91
        daload          = 49,
06bc494ca11e Initial load
duke
parents:
diff changeset
    92
        aaload          = 50,
06bc494ca11e Initial load
duke
parents:
diff changeset
    93
        baload          = 51,
06bc494ca11e Initial load
duke
parents:
diff changeset
    94
        caload          = 52,
06bc494ca11e Initial load
duke
parents:
diff changeset
    95
        saload          = 53,
06bc494ca11e Initial load
duke
parents:
diff changeset
    96
        istore          = 54,
06bc494ca11e Initial load
duke
parents:
diff changeset
    97
        lstore          = 55,
06bc494ca11e Initial load
duke
parents:
diff changeset
    98
        fstore          = 56,
06bc494ca11e Initial load
duke
parents:
diff changeset
    99
        dstore          = 57,
06bc494ca11e Initial load
duke
parents:
diff changeset
   100
        astore          = 58,
06bc494ca11e Initial load
duke
parents:
diff changeset
   101
        istore_0        = 59,
06bc494ca11e Initial load
duke
parents:
diff changeset
   102
        istore_1        = 60,
06bc494ca11e Initial load
duke
parents:
diff changeset
   103
        istore_2        = 61,
06bc494ca11e Initial load
duke
parents:
diff changeset
   104
        istore_3        = 62,
06bc494ca11e Initial load
duke
parents:
diff changeset
   105
        lstore_0        = 63,
06bc494ca11e Initial load
duke
parents:
diff changeset
   106
        lstore_1        = 64,
06bc494ca11e Initial load
duke
parents:
diff changeset
   107
        lstore_2        = 65,
06bc494ca11e Initial load
duke
parents:
diff changeset
   108
        lstore_3        = 66,
06bc494ca11e Initial load
duke
parents:
diff changeset
   109
        fstore_0        = 67,
06bc494ca11e Initial load
duke
parents:
diff changeset
   110
        fstore_1        = 68,
06bc494ca11e Initial load
duke
parents:
diff changeset
   111
        fstore_2        = 69,
06bc494ca11e Initial load
duke
parents:
diff changeset
   112
        fstore_3        = 70,
06bc494ca11e Initial load
duke
parents:
diff changeset
   113
        dstore_0        = 71,
06bc494ca11e Initial load
duke
parents:
diff changeset
   114
        dstore_1        = 72,
06bc494ca11e Initial load
duke
parents:
diff changeset
   115
        dstore_2        = 73,
06bc494ca11e Initial load
duke
parents:
diff changeset
   116
        dstore_3        = 74,
06bc494ca11e Initial load
duke
parents:
diff changeset
   117
        astore_0        = 75,
06bc494ca11e Initial load
duke
parents:
diff changeset
   118
        astore_1        = 76,
06bc494ca11e Initial load
duke
parents:
diff changeset
   119
        astore_2        = 77,
06bc494ca11e Initial load
duke
parents:
diff changeset
   120
        astore_3        = 78,
06bc494ca11e Initial load
duke
parents:
diff changeset
   121
        iastore         = 79,
06bc494ca11e Initial load
duke
parents:
diff changeset
   122
        lastore         = 80,
06bc494ca11e Initial load
duke
parents:
diff changeset
   123
        fastore         = 81,
06bc494ca11e Initial load
duke
parents:
diff changeset
   124
        dastore         = 82,
06bc494ca11e Initial load
duke
parents:
diff changeset
   125
        aastore         = 83,
06bc494ca11e Initial load
duke
parents:
diff changeset
   126
        bastore         = 84,
06bc494ca11e Initial load
duke
parents:
diff changeset
   127
        castore         = 85,
06bc494ca11e Initial load
duke
parents:
diff changeset
   128
        sastore         = 86,
06bc494ca11e Initial load
duke
parents:
diff changeset
   129
        pop             = 87,
06bc494ca11e Initial load
duke
parents:
diff changeset
   130
        pop2            = 88,
06bc494ca11e Initial load
duke
parents:
diff changeset
   131
        dup             = 89,
06bc494ca11e Initial load
duke
parents:
diff changeset
   132
        dup_x1          = 90,
06bc494ca11e Initial load
duke
parents:
diff changeset
   133
        dup_x2          = 91,
06bc494ca11e Initial load
duke
parents:
diff changeset
   134
        dup2            = 92,
06bc494ca11e Initial load
duke
parents:
diff changeset
   135
        dup2_x1         = 93,
06bc494ca11e Initial load
duke
parents:
diff changeset
   136
        dup2_x2         = 94,
06bc494ca11e Initial load
duke
parents:
diff changeset
   137
        swap            = 95,
06bc494ca11e Initial load
duke
parents:
diff changeset
   138
        iadd            = 96,
06bc494ca11e Initial load
duke
parents:
diff changeset
   139
        ladd            = 97,
06bc494ca11e Initial load
duke
parents:
diff changeset
   140
        fadd            = 98,
06bc494ca11e Initial load
duke
parents:
diff changeset
   141
        dadd            = 99,
06bc494ca11e Initial load
duke
parents:
diff changeset
   142
        isub            = 100,
06bc494ca11e Initial load
duke
parents:
diff changeset
   143
        lsub            = 101,
06bc494ca11e Initial load
duke
parents:
diff changeset
   144
        fsub            = 102,
06bc494ca11e Initial load
duke
parents:
diff changeset
   145
        dsub            = 103,
06bc494ca11e Initial load
duke
parents:
diff changeset
   146
        imul            = 104,
06bc494ca11e Initial load
duke
parents:
diff changeset
   147
        lmul            = 105,
06bc494ca11e Initial load
duke
parents:
diff changeset
   148
        fmul            = 106,
06bc494ca11e Initial load
duke
parents:
diff changeset
   149
        dmul            = 107,
06bc494ca11e Initial load
duke
parents:
diff changeset
   150
        idiv            = 108,
06bc494ca11e Initial load
duke
parents:
diff changeset
   151
        ldiv            = 109,
06bc494ca11e Initial load
duke
parents:
diff changeset
   152
        fdiv            = 110,
06bc494ca11e Initial load
duke
parents:
diff changeset
   153
        ddiv            = 111,
06bc494ca11e Initial load
duke
parents:
diff changeset
   154
        imod            = 112,
06bc494ca11e Initial load
duke
parents:
diff changeset
   155
        lmod            = 113,
06bc494ca11e Initial load
duke
parents:
diff changeset
   156
        fmod            = 114,
06bc494ca11e Initial load
duke
parents:
diff changeset
   157
        dmod            = 115,
06bc494ca11e Initial load
duke
parents:
diff changeset
   158
        ineg            = 116,
06bc494ca11e Initial load
duke
parents:
diff changeset
   159
        lneg            = 117,
06bc494ca11e Initial load
duke
parents:
diff changeset
   160
        fneg            = 118,
06bc494ca11e Initial load
duke
parents:
diff changeset
   161
        dneg            = 119,
06bc494ca11e Initial load
duke
parents:
diff changeset
   162
        ishl            = 120,
06bc494ca11e Initial load
duke
parents:
diff changeset
   163
        lshl            = 121,
06bc494ca11e Initial load
duke
parents:
diff changeset
   164
        ishr            = 122,
06bc494ca11e Initial load
duke
parents:
diff changeset
   165
        lshr            = 123,
06bc494ca11e Initial load
duke
parents:
diff changeset
   166
        iushr           = 124,
06bc494ca11e Initial load
duke
parents:
diff changeset
   167
        lushr           = 125,
06bc494ca11e Initial load
duke
parents:
diff changeset
   168
        iand            = 126,
06bc494ca11e Initial load
duke
parents:
diff changeset
   169
        land            = 127,
06bc494ca11e Initial load
duke
parents:
diff changeset
   170
        ior             = 128,
06bc494ca11e Initial load
duke
parents:
diff changeset
   171
        lor             = 129,
06bc494ca11e Initial load
duke
parents:
diff changeset
   172
        ixor            = 130,
06bc494ca11e Initial load
duke
parents:
diff changeset
   173
        lxor            = 131,
06bc494ca11e Initial load
duke
parents:
diff changeset
   174
        iinc            = 132,
06bc494ca11e Initial load
duke
parents:
diff changeset
   175
        i2l             = 133,
06bc494ca11e Initial load
duke
parents:
diff changeset
   176
        i2f             = 134,
06bc494ca11e Initial load
duke
parents:
diff changeset
   177
        i2d             = 135,
06bc494ca11e Initial load
duke
parents:
diff changeset
   178
        l2i             = 136,
06bc494ca11e Initial load
duke
parents:
diff changeset
   179
        l2f             = 137,
06bc494ca11e Initial load
duke
parents:
diff changeset
   180
        l2d             = 138,
06bc494ca11e Initial load
duke
parents:
diff changeset
   181
        f2i             = 139,
06bc494ca11e Initial load
duke
parents:
diff changeset
   182
        f2l             = 140,
06bc494ca11e Initial load
duke
parents:
diff changeset
   183
        f2d             = 141,
06bc494ca11e Initial load
duke
parents:
diff changeset
   184
        d2i             = 142,
06bc494ca11e Initial load
duke
parents:
diff changeset
   185
        d2l             = 143,
06bc494ca11e Initial load
duke
parents:
diff changeset
   186
        d2f             = 144,
06bc494ca11e Initial load
duke
parents:
diff changeset
   187
        int2byte        = 145,
06bc494ca11e Initial load
duke
parents:
diff changeset
   188
        int2char        = 146,
06bc494ca11e Initial load
duke
parents:
diff changeset
   189
        int2short       = 147,
06bc494ca11e Initial load
duke
parents:
diff changeset
   190
        lcmp            = 148,
06bc494ca11e Initial load
duke
parents:
diff changeset
   191
        fcmpl           = 149,
06bc494ca11e Initial load
duke
parents:
diff changeset
   192
        fcmpg           = 150,
06bc494ca11e Initial load
duke
parents:
diff changeset
   193
        dcmpl           = 151,
06bc494ca11e Initial load
duke
parents:
diff changeset
   194
        dcmpg           = 152,
06bc494ca11e Initial load
duke
parents:
diff changeset
   195
        ifeq            = 153,
06bc494ca11e Initial load
duke
parents:
diff changeset
   196
        ifne            = 154,
06bc494ca11e Initial load
duke
parents:
diff changeset
   197
        iflt            = 155,
06bc494ca11e Initial load
duke
parents:
diff changeset
   198
        ifge            = 156,
06bc494ca11e Initial load
duke
parents:
diff changeset
   199
        ifgt            = 157,
06bc494ca11e Initial load
duke
parents:
diff changeset
   200
        ifle            = 158,
06bc494ca11e Initial load
duke
parents:
diff changeset
   201
        if_icmpeq       = 159,
06bc494ca11e Initial load
duke
parents:
diff changeset
   202
        if_icmpne       = 160,
06bc494ca11e Initial load
duke
parents:
diff changeset
   203
        if_icmplt       = 161,
06bc494ca11e Initial load
duke
parents:
diff changeset
   204
        if_icmpge       = 162,
06bc494ca11e Initial load
duke
parents:
diff changeset
   205
        if_icmpgt       = 163,
06bc494ca11e Initial load
duke
parents:
diff changeset
   206
        if_icmple       = 164,
06bc494ca11e Initial load
duke
parents:
diff changeset
   207
        if_acmpeq       = 165,
06bc494ca11e Initial load
duke
parents:
diff changeset
   208
        if_acmpne       = 166,
06bc494ca11e Initial load
duke
parents:
diff changeset
   209
        goto_           = 167,
06bc494ca11e Initial load
duke
parents:
diff changeset
   210
        jsr             = 168,
06bc494ca11e Initial load
duke
parents:
diff changeset
   211
        ret             = 169,
06bc494ca11e Initial load
duke
parents:
diff changeset
   212
        tableswitch     = 170,
06bc494ca11e Initial load
duke
parents:
diff changeset
   213
        lookupswitch    = 171,
06bc494ca11e Initial load
duke
parents:
diff changeset
   214
        ireturn         = 172,
06bc494ca11e Initial load
duke
parents:
diff changeset
   215
        lreturn         = 173,
06bc494ca11e Initial load
duke
parents:
diff changeset
   216
        freturn         = 174,
06bc494ca11e Initial load
duke
parents:
diff changeset
   217
        dreturn         = 175,
06bc494ca11e Initial load
duke
parents:
diff changeset
   218
        areturn         = 176,
06bc494ca11e Initial load
duke
parents:
diff changeset
   219
        return_         = 177,
06bc494ca11e Initial load
duke
parents:
diff changeset
   220
        getstatic       = 178,
06bc494ca11e Initial load
duke
parents:
diff changeset
   221
        putstatic       = 179,
06bc494ca11e Initial load
duke
parents:
diff changeset
   222
        getfield        = 180,
06bc494ca11e Initial load
duke
parents:
diff changeset
   223
        putfield        = 181,
06bc494ca11e Initial load
duke
parents:
diff changeset
   224
        invokevirtual   = 182,
06bc494ca11e Initial load
duke
parents:
diff changeset
   225
        invokespecial   = 183,
06bc494ca11e Initial load
duke
parents:
diff changeset
   226
        invokestatic    = 184,
06bc494ca11e Initial load
duke
parents:
diff changeset
   227
        invokeinterface = 185,
2723
b659ca23d5f5 6829189: Java programming with JSR 292 needs language support
jrose
parents: 10
diff changeset
   228
        invokedynamic   = 186,
10
06bc494ca11e Initial load
duke
parents:
diff changeset
   229
        new_            = 187,
06bc494ca11e Initial load
duke
parents:
diff changeset
   230
        newarray        = 188,
06bc494ca11e Initial load
duke
parents:
diff changeset
   231
        anewarray       = 189,
06bc494ca11e Initial load
duke
parents:
diff changeset
   232
        arraylength     = 190,
06bc494ca11e Initial load
duke
parents:
diff changeset
   233
        athrow          = 191,
06bc494ca11e Initial load
duke
parents:
diff changeset
   234
        checkcast       = 192,
06bc494ca11e Initial load
duke
parents:
diff changeset
   235
        instanceof_     = 193,
06bc494ca11e Initial load
duke
parents:
diff changeset
   236
        monitorenter    = 194,
06bc494ca11e Initial load
duke
parents:
diff changeset
   237
        monitorexit     = 195,
06bc494ca11e Initial load
duke
parents:
diff changeset
   238
        wide            = 196,
06bc494ca11e Initial load
duke
parents:
diff changeset
   239
        multianewarray  = 197,
06bc494ca11e Initial load
duke
parents:
diff changeset
   240
        if_acmp_null    = 198,
06bc494ca11e Initial load
duke
parents:
diff changeset
   241
        if_acmp_nonnull = 199,
06bc494ca11e Initial load
duke
parents:
diff changeset
   242
        goto_w          = 200,
06bc494ca11e Initial load
duke
parents:
diff changeset
   243
        jsr_w           = 201,
06bc494ca11e Initial load
duke
parents:
diff changeset
   244
        breakpoint      = 202,
06bc494ca11e Initial load
duke
parents:
diff changeset
   245
        ByteCodeCount   = 203;
06bc494ca11e Initial load
duke
parents:
diff changeset
   246
06bc494ca11e Initial load
duke
parents:
diff changeset
   247
    /** Virtual instruction codes; used for constant folding.
06bc494ca11e Initial load
duke
parents:
diff changeset
   248
     */
06bc494ca11e Initial load
duke
parents:
diff changeset
   249
    int string_add      = 256,  // string +
06bc494ca11e Initial load
duke
parents:
diff changeset
   250
        bool_not        = 257,  // boolean !
06bc494ca11e Initial load
duke
parents:
diff changeset
   251
        bool_and        = 258,  // boolean &&
06bc494ca11e Initial load
duke
parents:
diff changeset
   252
        bool_or         = 259;  // boolean ||
06bc494ca11e Initial load
duke
parents:
diff changeset
   253
06bc494ca11e Initial load
duke
parents:
diff changeset
   254
    /** Virtual opcodes; used for shifts with long shiftcount
06bc494ca11e Initial load
duke
parents:
diff changeset
   255
     */
06bc494ca11e Initial load
duke
parents:
diff changeset
   256
    int ishll           = 270,  // int shift left with long count
06bc494ca11e Initial load
duke
parents:
diff changeset
   257
        lshll           = 271,  // long shift left with long count
06bc494ca11e Initial load
duke
parents:
diff changeset
   258
        ishrl           = 272,  // int shift right with long count
06bc494ca11e Initial load
duke
parents:
diff changeset
   259
        lshrl           = 273,  // long shift right with long count
06bc494ca11e Initial load
duke
parents:
diff changeset
   260
        iushrl          = 274,  // int unsigned shift right with long count
06bc494ca11e Initial load
duke
parents:
diff changeset
   261
        lushrl          = 275;  // long unsigned shift right with long count
06bc494ca11e Initial load
duke
parents:
diff changeset
   262
06bc494ca11e Initial load
duke
parents:
diff changeset
   263
    /** Virtual opcode for null reference checks
06bc494ca11e Initial load
duke
parents:
diff changeset
   264
     */
06bc494ca11e Initial load
duke
parents:
diff changeset
   265
    int nullchk         = 276;  // return operand if non-null,
06bc494ca11e Initial load
duke
parents:
diff changeset
   266
                                // otherwise throw NullPointerException.
06bc494ca11e Initial load
duke
parents:
diff changeset
   267
06bc494ca11e Initial load
duke
parents:
diff changeset
   268
    /** Virtual opcode for disallowed operations.
06bc494ca11e Initial load
duke
parents:
diff changeset
   269
     */
06bc494ca11e Initial load
duke
parents:
diff changeset
   270
    int error           = 277;
06bc494ca11e Initial load
duke
parents:
diff changeset
   271
06bc494ca11e Initial load
duke
parents:
diff changeset
   272
    /** All conditional jumps come in pairs. To streamline the
06bc494ca11e Initial load
duke
parents:
diff changeset
   273
     *  treatment of jumps, we also introduce a negation of an
06bc494ca11e Initial load
duke
parents:
diff changeset
   274
     *  unconditional jump. That opcode happens to be jsr.
06bc494ca11e Initial load
duke
parents:
diff changeset
   275
     */
06bc494ca11e Initial load
duke
parents:
diff changeset
   276
    int dontgoto        = jsr;
06bc494ca11e Initial load
duke
parents:
diff changeset
   277
06bc494ca11e Initial load
duke
parents:
diff changeset
   278
    /** Shift and mask constants for shifting prefix instructions.
06bc494ca11e Initial load
duke
parents:
diff changeset
   279
     *  a pair of instruction codes such as LCMP ; IFEQ is encoded
13844
56339cf983a3 7177970: fix issues in langtools doc comments
jjg
parents: 5847
diff changeset
   280
     *  in Symtab as {@literal (LCMP << preShift) + IFEQ }.
10
06bc494ca11e Initial load
duke
parents:
diff changeset
   281
     */
06bc494ca11e Initial load
duke
parents:
diff changeset
   282
    int preShift        = 9;
06bc494ca11e Initial load
duke
parents:
diff changeset
   283
    int preMask         = (1 << preShift) - 1;
06bc494ca11e Initial load
duke
parents:
diff changeset
   284
06bc494ca11e Initial load
duke
parents:
diff changeset
   285
    /** Type codes.
06bc494ca11e Initial load
duke
parents:
diff changeset
   286
     */
06bc494ca11e Initial load
duke
parents:
diff changeset
   287
    int INTcode         = 0,
06bc494ca11e Initial load
duke
parents:
diff changeset
   288
        LONGcode        = 1,
06bc494ca11e Initial load
duke
parents:
diff changeset
   289
        FLOATcode       = 2,
06bc494ca11e Initial load
duke
parents:
diff changeset
   290
        DOUBLEcode      = 3,
06bc494ca11e Initial load
duke
parents:
diff changeset
   291
        OBJECTcode      = 4,
06bc494ca11e Initial load
duke
parents:
diff changeset
   292
        BYTEcode        = 5,
06bc494ca11e Initial load
duke
parents:
diff changeset
   293
        CHARcode        = 6,
06bc494ca11e Initial load
duke
parents:
diff changeset
   294
        SHORTcode       = 7,
06bc494ca11e Initial load
duke
parents:
diff changeset
   295
        VOIDcode        = 8,
06bc494ca11e Initial load
duke
parents:
diff changeset
   296
        TypeCodeCount   = 9;
06bc494ca11e Initial load
duke
parents:
diff changeset
   297
06bc494ca11e Initial load
duke
parents:
diff changeset
   298
    static final String[] typecodeNames = {
06bc494ca11e Initial load
duke
parents:
diff changeset
   299
        "int",
06bc494ca11e Initial load
duke
parents:
diff changeset
   300
        "long",
06bc494ca11e Initial load
duke
parents:
diff changeset
   301
        "float",
06bc494ca11e Initial load
duke
parents:
diff changeset
   302
        "double",
06bc494ca11e Initial load
duke
parents:
diff changeset
   303
        "object",
06bc494ca11e Initial load
duke
parents:
diff changeset
   304
        "byte",
06bc494ca11e Initial load
duke
parents:
diff changeset
   305
        "char",
06bc494ca11e Initial load
duke
parents:
diff changeset
   306
        "short",
06bc494ca11e Initial load
duke
parents:
diff changeset
   307
        "void",
06bc494ca11e Initial load
duke
parents:
diff changeset
   308
        "oops"
06bc494ca11e Initial load
duke
parents:
diff changeset
   309
    };
06bc494ca11e Initial load
duke
parents:
diff changeset
   310
}