src/share/classes/com/sun/tools/javac/jvm/ByteCodes.java

Tue, 28 Jul 2009 12:12:59 -0700

author
xdono
date
Tue, 28 Jul 2009 12:12:59 -0700
changeset 323
14b1a8ede954
parent 267
e2722bd43f3a
child 554
9d9f26857129
permissions
-rw-r--r--

6862919: Update copyright year
Summary: Update copyright for files that have been modified in 2009, up to 07/09
Reviewed-by: tbell, ohair

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

mercurial