langtools/src/share/classes/com/sun/tools/classfile/Opcode.java
author jjg
Thu, 10 Jun 2010 16:08:01 -0700
changeset 5847 1908176fd6e3
parent 5520 86e4b9a9da40
child 9303 eae35c201e19
permissions -rw-r--r--
6944312: Potential rebranding issues in openjdk/langtools repository sources Reviewed-by: darcy
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2512
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
     1
/*
5520
86e4b9a9da40 6943119: Rebrand source copyright notices
ohair
parents: 2723
diff changeset
     2
 * Copyright (c) 2009, Oracle and/or its affiliates. All rights reserved.
2512
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
     3
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
     4
 *
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
     5
 * This code is free software; you can redistribute it and/or modify it
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
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
2512
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
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.
2512
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
    10
 *
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
    11
 * This code is distributed in the hope that it will be useful, but WITHOUT
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
    12
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
    13
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
    14
 * version 2 for more details (a copy is included in the LICENSE file that
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
    15
 * accompanied this code).
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
    16
 *
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
    17
 * You should have received a copy of the GNU General Public License version
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
    18
 * 2 along with this work; if not, write to the Free Software Foundation,
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
    19
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
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.
2512
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
    24
 */
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
    25
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
    26
package com.sun.tools.classfile;
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
    27
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
    28
import static com.sun.tools.classfile.Instruction.Kind.*;
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
    29
import static com.sun.tools.classfile.Opcode.Set.*;
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
    30
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
    31
/**
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
    32
 * See JVMS3, chapter 6.
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
    33
 *
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
    34
 * <p>In addition to providing all the standard opcodes defined in JVMS,
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
    35
 * this class also provides legacy support for the PicoJava extensions.
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
    36
 *
5847
1908176fd6e3 6944312: Potential rebranding issues in openjdk/langtools repository sources
jjg
parents: 5520
diff changeset
    37
 *  <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
    38
 *  If you write code that depends on this, you do so at your own risk.
2512
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
    39
 *  This code and its internal interfaces are subject to change or
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
    40
 *  deletion without notice.</b>
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
    41
 */
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
    42
public enum Opcode {
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
    43
    NOP(0x0),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
    44
    ACONST_NULL(0x1),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
    45
    ICONST_M1(0x2),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
    46
    ICONST_0(0x3),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
    47
    ICONST_1(0x4),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
    48
    ICONST_2(0x5),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
    49
    ICONST_3(0x6),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
    50
    ICONST_4(0x7),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
    51
    ICONST_5(0x8),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
    52
    LCONST_0(0x9),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
    53
    LCONST_1(0xa),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
    54
    FCONST_0(0xb),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
    55
    FCONST_1(0xc),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
    56
    FCONST_2(0xd),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
    57
    DCONST_0(0xe),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
    58
    DCONST_1(0xf),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
    59
    BIPUSH(0x10, BYTE),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
    60
    SIPUSH(0x11, SHORT),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
    61
    LDC(0x12, CPREF),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
    62
    LDC_W(0x13, CPREF_W),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
    63
    LDC2_W(0x14, CPREF_W),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
    64
    ILOAD(0x15, LOCAL),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
    65
    LLOAD(0x16, LOCAL),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
    66
    FLOAD(0x17, LOCAL),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
    67
    DLOAD(0x18, LOCAL),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
    68
    ALOAD(0x19, LOCAL),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
    69
    ILOAD_0(0x1a),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
    70
    ILOAD_1(0x1b),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
    71
    ILOAD_2(0x1c),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
    72
    ILOAD_3(0x1d),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
    73
    LLOAD_0(0x1e),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
    74
    LLOAD_1(0x1f),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
    75
    LLOAD_2(0x20),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
    76
    LLOAD_3(0x21),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
    77
    FLOAD_0(0x22),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
    78
    FLOAD_1(0x23),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
    79
    FLOAD_2(0x24),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
    80
    FLOAD_3(0x25),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
    81
    DLOAD_0(0x26),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
    82
    DLOAD_1(0x27),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
    83
    DLOAD_2(0x28),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
    84
    DLOAD_3(0x29),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
    85
    ALOAD_0(0x2a),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
    86
    ALOAD_1(0x2b),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
    87
    ALOAD_2(0x2c),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
    88
    ALOAD_3(0x2d),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
    89
    IALOAD(0x2e),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
    90
    LALOAD(0x2f),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
    91
    FALOAD(0x30),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
    92
    DALOAD(0x31),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
    93
    AALOAD(0x32),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
    94
    BALOAD(0x33),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
    95
    CALOAD(0x34),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
    96
    SALOAD(0x35),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
    97
    ISTORE(0x36, LOCAL),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
    98
    LSTORE(0x37, LOCAL),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
    99
    FSTORE(0x38, LOCAL),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   100
    DSTORE(0x39, LOCAL),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   101
    ASTORE(0x3a, LOCAL),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   102
    ISTORE_0(0x3b),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   103
    ISTORE_1(0x3c),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   104
    ISTORE_2(0x3d),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   105
    ISTORE_3(0x3e),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   106
    LSTORE_0(0x3f),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   107
    LSTORE_1(0x40),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   108
    LSTORE_2(0x41),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   109
    LSTORE_3(0x42),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   110
    FSTORE_0(0x43),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   111
    FSTORE_1(0x44),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   112
    FSTORE_2(0x45),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   113
    FSTORE_3(0x46),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   114
    DSTORE_0(0x47),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   115
    DSTORE_1(0x48),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   116
    DSTORE_2(0x49),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   117
    DSTORE_3(0x4a),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   118
    ASTORE_0(0x4b),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   119
    ASTORE_1(0x4c),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   120
    ASTORE_2(0x4d),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   121
    ASTORE_3(0x4e),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   122
    IASTORE(0x4f),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   123
    LASTORE(0x50),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   124
    FASTORE(0x51),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   125
    DASTORE(0x52),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   126
    AASTORE(0x53),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   127
    BASTORE(0x54),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   128
    CASTORE(0x55),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   129
    SASTORE(0x56),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   130
    POP(0x57),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   131
    POP2(0x58),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   132
    DUP(0x59),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   133
    DUP_X1(0x5a),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   134
    DUP_X2(0x5b),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   135
    DUP2(0x5c),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   136
    DUP2_X1(0x5d),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   137
    DUP2_X2(0x5e),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   138
    SWAP(0x5f),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   139
    IADD(0x60),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   140
    LADD(0x61),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   141
    FADD(0x62),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   142
    DADD(0x63),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   143
    ISUB(0x64),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   144
    LSUB(0x65),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   145
    FSUB(0x66),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   146
    DSUB(0x67),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   147
    IMUL(0x68),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   148
    LMUL(0x69),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   149
    FMUL(0x6a),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   150
    DMUL(0x6b),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   151
    IDIV(0x6c),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   152
    LDIV(0x6d),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   153
    FDIV(0x6e),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   154
    DDIV(0x6f),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   155
    IREM(0x70),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   156
    LREM(0x71),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   157
    FREM(0x72),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   158
    DREM(0x73),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   159
    INEG(0x74),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   160
    LNEG(0x75),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   161
    FNEG(0x76),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   162
    DNEG(0x77),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   163
    ISHL(0x78),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   164
    LSHL(0x79),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   165
    ISHR(0x7a),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   166
    LSHR(0x7b),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   167
    IUSHR(0x7c),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   168
    LUSHR(0x7d),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   169
    IAND(0x7e),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   170
    LAND(0x7f),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   171
    IOR(0x80),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   172
    LOR(0x81),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   173
    IXOR(0x82),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   174
    LXOR(0x83),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   175
    IINC(0x84, LOCAL_BYTE),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   176
    I2L(0x85),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   177
    I2F(0x86),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   178
    I2D(0x87),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   179
    L2I(0x88),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   180
    L2F(0x89),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   181
    L2D(0x8a),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   182
    F2I(0x8b),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   183
    F2L(0x8c),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   184
    F2D(0x8d),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   185
    D2I(0x8e),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   186
    D2L(0x8f),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   187
    D2F(0x90),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   188
    I2B(0x91),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   189
    I2C(0x92),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   190
    I2S(0x93),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   191
    LCMP(0x94),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   192
    FCMPL(0x95),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   193
    FCMPG(0x96),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   194
    DCMPL(0x97),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   195
    DCMPG(0x98),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   196
    IFEQ(0x99, BRANCH),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   197
    IFNE(0x9a, BRANCH),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   198
    IFLT(0x9b, BRANCH),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   199
    IFGE(0x9c, BRANCH),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   200
    IFGT(0x9d, BRANCH),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   201
    IFLE(0x9e, BRANCH),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   202
    IF_ICMPEQ(0x9f, BRANCH),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   203
    IF_ICMPNE(0xa0, BRANCH),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   204
    IF_ICMPLT(0xa1, BRANCH),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   205
    IF_ICMPGE(0xa2, BRANCH),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   206
    IF_ICMPGT(0xa3, BRANCH),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   207
    IF_ICMPLE(0xa4, BRANCH),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   208
    IF_ACMPEQ(0xa5, BRANCH),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   209
    IF_ACMPNE(0xa6, BRANCH),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   210
    GOTO(0xa7, BRANCH),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   211
    JSR(0xa8, BRANCH),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   212
    RET(0xa9, LOCAL),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   213
    TABLESWITCH(0xaa, DYNAMIC),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   214
    LOOKUPSWITCH(0xab, DYNAMIC),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   215
    IRETURN(0xac),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   216
    LRETURN(0xad),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   217
    FRETURN(0xae),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   218
    DRETURN(0xaf),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   219
    ARETURN(0xb0),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   220
    RETURN(0xb1),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   221
    GETSTATIC(0xb2, CPREF_W),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   222
    PUTSTATIC(0xb3, CPREF_W),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   223
    GETFIELD(0xb4, CPREF_W),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   224
    PUTFIELD(0xb5, CPREF_W),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   225
    INVOKEVIRTUAL(0xb6, CPREF_W),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   226
    INVOKESPECIAL(0xb7, CPREF_W),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   227
    INVOKESTATIC(0xb8, CPREF_W),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   228
    INVOKEINTERFACE(0xb9, CPREF_W_UBYTE_ZERO),
2723
b659ca23d5f5 6829189: Java programming with JSR 292 needs language support
jrose
parents: 2512
diff changeset
   229
    INVOKEDYNAMIC(0xba, CPREF_W_UBYTE_ZERO),
2512
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   230
    NEW(0xbb, CPREF_W),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   231
    NEWARRAY(0xbc, ATYPE),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   232
    ANEWARRAY(0xbd, CPREF_W),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   233
    ARRAYLENGTH(0xbe),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   234
    ATHROW(0xbf),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   235
    CHECKCAST(0xc0, CPREF_W),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   236
    INSTANCEOF(0xc1, CPREF_W),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   237
    MONITORENTER(0xc2),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   238
    MONITOREXIT(0xc3),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   239
    // wide 0xc4
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   240
    MULTIANEWARRAY(0xc5, CPREF_W_UBYTE),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   241
    IFNULL(0xc6, BRANCH),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   242
    IFNONNULL(0xc7, BRANCH),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   243
    GOTO_W(0xc8, BRANCH_W),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   244
    JSR_W(0xc9, BRANCH_W),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   245
    // impdep 0xfe: PicoJava nonpriv
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   246
    // impdep 0xff: Picojava priv
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   247
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   248
    // wide opcodes
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   249
    ILOAD_W(0xc415, WIDE_CPREF_W),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   250
    LLOAD_W(0xc416, WIDE_CPREF_W),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   251
    FLOAD_W(0xc417, WIDE_CPREF_W),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   252
    DLOAD_W(0xc418, WIDE_CPREF_W),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   253
    ALOAD_W(0xc419, WIDE_CPREF_W),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   254
    ISTORE_W(0xc436, WIDE_CPREF_W),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   255
    LSTORE_W(0xc437, WIDE_CPREF_W),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   256
    FSTORE_W(0xc438, WIDE_CPREF_W),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   257
    DSTORE_W(0xc439, WIDE_CPREF_W),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   258
    ASTORE_W(0xc43a, WIDE_CPREF_W),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   259
    IINC_W(0xc484, WIDE_CPREF_W_SHORT),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   260
    RET_W(0xc4a9, WIDE_CPREF_W),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   261
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   262
    // PicoJava nonpriv instructions
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   263
    LOAD_UBYTE(PICOJAVA, 0xfe00),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   264
    LOAD_BYTE(PICOJAVA, 0xfe01),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   265
    LOAD_CHAR(PICOJAVA, 0xfe02),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   266
    LOAD_SHORT(PICOJAVA, 0xfe03),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   267
    LOAD_WORD(PICOJAVA, 0xfe04),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   268
    RET_FROM_SUB(PICOJAVA, 0xfe05),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   269
    LOAD_CHAR_OE(PICOJAVA, 0xfe0a),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   270
    LOAD_SHORT_OE(PICOJAVA, 0xfe0b),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   271
    LOAD_WORD_OE(PICOJAVA, 0xfe0c),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   272
    NCLOAD_UBYTE(PICOJAVA, 0xfe10),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   273
    NCLOAD_BYTE(PICOJAVA, 0xfe11),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   274
    NCLOAD_CHAR(PICOJAVA, 0xfe12),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   275
    NCLOAD_SHORT(PICOJAVA, 0xfe13),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   276
    NCLOAD_WORD(PICOJAVA, 0xfe14),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   277
    NCLOAD_CHAR_OE(PICOJAVA, 0xfe1a),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   278
    NCLOAD_SHORT_OE(PICOJAVA, 0xfe1b),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   279
    NCLOAD_WORD_OE(PICOJAVA, 0xfe1c),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   280
    CACHE_FLUSH(PICOJAVA, 0xfe1e),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   281
    STORE_BYTE(PICOJAVA, 0xfe20),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   282
    STORE_SHORT(PICOJAVA, 0xfe22),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   283
    STORE_WORD(PICOJAVA, 0xfe24),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   284
    STORE_SHORT_OE(PICOJAVA, 0xfe2a),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   285
    STORE_WORD_OE(PICOJAVA, 0xfe2c),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   286
    NCSTORE_BYTE(PICOJAVA, 0xfe30),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   287
    NCSTORE_SHORT(PICOJAVA, 0xfe32),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   288
    NCSTORE_WORD(PICOJAVA, 0xfe34),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   289
    NCSTORE_SHORT_OE(PICOJAVA, 0xfe3a),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   290
    NCSTORE_WORD_OE(PICOJAVA, 0xfe3c),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   291
    ZERO_LINE(PICOJAVA, 0xfe3e),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   292
    ENTER_SYNC_METHOD(PICOJAVA, 0xfe3f),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   293
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   294
    // PicoJava priv instructions
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   295
    PRIV_LOAD_UBYTE(PICOJAVA, 0xff00),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   296
    PRIV_LOAD_BYTE(PICOJAVA, 0xff01),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   297
    PRIV_LOAD_CHAR(PICOJAVA, 0xff02),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   298
    PRIV_LOAD_SHORT(PICOJAVA, 0xff03),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   299
    PRIV_LOAD_WORD(PICOJAVA, 0xff04),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   300
    PRIV_RET_FROM_TRAP(PICOJAVA, 0xff05),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   301
    PRIV_READ_DCACHE_TAG(PICOJAVA, 0xff06),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   302
    PRIV_READ_DCACHE_DATA(PICOJAVA, 0xff07),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   303
    PRIV_LOAD_CHAR_OE(PICOJAVA, 0xff0a),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   304
    PRIV_LOAD_SHORT_OE(PICOJAVA, 0xff0b),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   305
    PRIV_LOAD_WORD_OE(PICOJAVA, 0xff0c),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   306
    PRIV_READ_ICACHE_TAG(PICOJAVA, 0xff0e),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   307
    PRIV_READ_ICACHE_DATA(PICOJAVA, 0xff0f),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   308
    PRIV_NCLOAD_UBYTE(PICOJAVA, 0xff10),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   309
    PRIV_NCLOAD_BYTE(PICOJAVA, 0xff11),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   310
    PRIV_NCLOAD_CHAR(PICOJAVA, 0xff12),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   311
    PRIV_NCLOAD_SHORT(PICOJAVA, 0xff13),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   312
    PRIV_NCLOAD_WORD(PICOJAVA, 0xff14),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   313
    PRIV_POWERDOWN(PICOJAVA, 0xff16),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   314
    PRIV_READ_SCACHE_DATA(PICOJAVA, 0xff17),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   315
    PRIV_NCLOAD_CHAR_OE(PICOJAVA, 0xff1a),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   316
    PRIV_NCLOAD_SHORT_OE(PICOJAVA, 0xff1b),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   317
    PRIV_NCLOAD_WORD_OE(PICOJAVA, 0xff1c),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   318
    PRIV_CACHE_FLUSH(PICOJAVA, 0xff1e),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   319
    PRIV_CACHE_INDEX_FLUSH(PICOJAVA, 0xff1f),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   320
    PRIV_STORE_BYTE(PICOJAVA, 0xff20),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   321
    PRIV_STORE_SHORT(PICOJAVA, 0xff22),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   322
    PRIV_STORE_WORD(PICOJAVA, 0xff24),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   323
    PRIV_WRITE_DCACHE_TAG(PICOJAVA, 0xff26),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   324
    PRIV_WRITE_DCACHE_DATA(PICOJAVA, 0xff27),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   325
    PRIV_STORE_SHORT_OE(PICOJAVA, 0xff2a),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   326
    PRIV_STORE_WORD_OE(PICOJAVA, 0xff2c),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   327
    PRIV_WRITE_ICACHE_TAG(PICOJAVA, 0xff2e),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   328
    PRIV_WRITE_ICACHE_DATA(PICOJAVA, 0xff2f),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   329
    PRIV_NCSTORE_BYTE(PICOJAVA, 0xff30),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   330
    PRIV_NCSTORE_SHORT(PICOJAVA, 0xff32),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   331
    PRIV_NCSTORE_WORD(PICOJAVA, 0xff34),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   332
    PRIV_RESET(PICOJAVA, 0xff36),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   333
    PRIV_WRITE_SCACHE_DATA(PICOJAVA, 0xff37),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   334
    PRIV_NCSTORE_SHORT_OE(PICOJAVA, 0xff3a),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   335
    PRIV_NCSTORE_WORD_OE(PICOJAVA, 0xff3c),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   336
    PRIV_ZERO_LINE(PICOJAVA, 0xff3e),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   337
    PRIV_READ_REG_0(PICOJAVA, 0xff40),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   338
    PRIV_READ_REG_1(PICOJAVA, 0xff41),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   339
    PRIV_READ_REG_2(PICOJAVA, 0xff42),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   340
    PRIV_READ_REG_3(PICOJAVA, 0xff43),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   341
    PRIV_READ_REG_4(PICOJAVA, 0xff44),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   342
    PRIV_READ_REG_5(PICOJAVA, 0xff45),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   343
    PRIV_READ_REG_6(PICOJAVA, 0xff46),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   344
    PRIV_READ_REG_7(PICOJAVA, 0xff47),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   345
    PRIV_READ_REG_8(PICOJAVA, 0xff48),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   346
    PRIV_READ_REG_9(PICOJAVA, 0xff49),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   347
    PRIV_READ_REG_10(PICOJAVA, 0xff4a),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   348
    PRIV_READ_REG_11(PICOJAVA, 0xff4b),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   349
    PRIV_READ_REG_12(PICOJAVA, 0xff4c),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   350
    PRIV_READ_REG_13(PICOJAVA, 0xff4d),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   351
    PRIV_READ_REG_14(PICOJAVA, 0xff4e),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   352
    PRIV_READ_REG_15(PICOJAVA, 0xff4f),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   353
    PRIV_READ_REG_16(PICOJAVA, 0xff50),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   354
    PRIV_READ_REG_17(PICOJAVA, 0xff51),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   355
    PRIV_READ_REG_18(PICOJAVA, 0xff52),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   356
    PRIV_READ_REG_19(PICOJAVA, 0xff53),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   357
    PRIV_READ_REG_20(PICOJAVA, 0xff54),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   358
    PRIV_READ_REG_21(PICOJAVA, 0xff55),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   359
    PRIV_READ_REG_22(PICOJAVA, 0xff56),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   360
    PRIV_READ_REG_23(PICOJAVA, 0xff57),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   361
    PRIV_READ_REG_24(PICOJAVA, 0xff58),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   362
    PRIV_READ_REG_25(PICOJAVA, 0xff59),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   363
    PRIV_READ_REG_26(PICOJAVA, 0xff5a),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   364
    PRIV_READ_REG_27(PICOJAVA, 0xff5b),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   365
    PRIV_READ_REG_28(PICOJAVA, 0xff5c),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   366
    PRIV_READ_REG_29(PICOJAVA, 0xff5d),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   367
    PRIV_READ_REG_30(PICOJAVA, 0xff5e),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   368
    PRIV_READ_REG_31(PICOJAVA, 0xff5f),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   369
    PRIV_WRITE_REG_0(PICOJAVA, 0xff60),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   370
    PRIV_WRITE_REG_1(PICOJAVA, 0xff61),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   371
    PRIV_WRITE_REG_2(PICOJAVA, 0xff62),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   372
    PRIV_WRITE_REG_3(PICOJAVA, 0xff63),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   373
    PRIV_WRITE_REG_4(PICOJAVA, 0xff64),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   374
    PRIV_WRITE_REG_5(PICOJAVA, 0xff65),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   375
    PRIV_WRITE_REG_6(PICOJAVA, 0xff66),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   376
    PRIV_WRITE_REG_7(PICOJAVA, 0xff67),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   377
    PRIV_WRITE_REG_8(PICOJAVA, 0xff68),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   378
    PRIV_WRITE_REG_9(PICOJAVA, 0xff69),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   379
    PRIV_WRITE_REG_10(PICOJAVA, 0xff6a),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   380
    PRIV_WRITE_REG_11(PICOJAVA, 0xff6b),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   381
    PRIV_WRITE_REG_12(PICOJAVA, 0xff6c),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   382
    PRIV_WRITE_REG_13(PICOJAVA, 0xff6d),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   383
    PRIV_WRITE_REG_14(PICOJAVA, 0xff6e),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   384
    PRIV_WRITE_REG_15(PICOJAVA, 0xff6f),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   385
    PRIV_WRITE_REG_16(PICOJAVA, 0xff70),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   386
    PRIV_WRITE_REG_17(PICOJAVA, 0xff71),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   387
    PRIV_WRITE_REG_18(PICOJAVA, 0xff72),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   388
    PRIV_WRITE_REG_19(PICOJAVA, 0xff73),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   389
    PRIV_WRITE_REG_20(PICOJAVA, 0xff74),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   390
    PRIV_WRITE_REG_21(PICOJAVA, 0xff75),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   391
    PRIV_WRITE_REG_22(PICOJAVA, 0xff76),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   392
    PRIV_WRITE_REG_23(PICOJAVA, 0xff77),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   393
    PRIV_WRITE_REG_24(PICOJAVA, 0xff78),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   394
    PRIV_WRITE_REG_25(PICOJAVA, 0xff79),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   395
    PRIV_WRITE_REG_26(PICOJAVA, 0xff7a),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   396
    PRIV_WRITE_REG_27(PICOJAVA, 0xff7b),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   397
    PRIV_WRITE_REG_28(PICOJAVA, 0xff7c),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   398
    PRIV_WRITE_REG_29(PICOJAVA, 0xff7d),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   399
    PRIV_WRITE_REG_30(PICOJAVA, 0xff7e),
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   400
    PRIV_WRITE_REG_31(PICOJAVA, 0xff7f);
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   401
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   402
    Opcode(int opcode) {
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   403
        this(STANDARD, opcode, NO_OPERANDS);
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   404
    }
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   405
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   406
    Opcode(int opcode, Instruction.Kind kind) {
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   407
        this(STANDARD, opcode, kind);
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   408
    }
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   409
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   410
    Opcode(Set set, int opcode) {
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   411
        this(set, opcode, (set == STANDARD ? NO_OPERANDS : WIDE_NO_OPERANDS));
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   412
    }
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   413
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   414
    Opcode(Set set, int opcode, Instruction.Kind kind) {
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   415
        this.set = set;
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   416
        this.opcode = opcode;
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   417
        this.kind = kind;
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   418
    }
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   419
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   420
    public final Set set;
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   421
    public final int opcode;
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   422
    public final Instruction.Kind kind;
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   423
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   424
    /** Get the Opcode for a simple standard 1-byte opcode. */
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   425
    public static Opcode get(int opcode) {
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   426
        return stdOpcodes[opcode];
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   427
    }
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   428
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   429
    /** Get the Opcode for 1- or 2-byte opcode. */
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   430
    public static Opcode get(int opcodePrefix, int opcode) {
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   431
        Opcode[] block = getOpcodeBlock(opcodePrefix);
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   432
        return (block == null ? null : block[opcode]);
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   433
    }
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   434
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   435
    private static Opcode[] getOpcodeBlock(int opcodePrefix) {
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   436
        switch (opcodePrefix) {
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   437
            case 0:
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   438
                return stdOpcodes;
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   439
            case WIDE:
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   440
                return wideOpcodes;
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   441
            case NONPRIV:
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   442
                return nonPrivOpcodes;
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   443
            case PRIV:
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   444
                return privOpcodes;
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   445
            default:
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   446
                return null;
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   447
        }
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   448
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   449
    }
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   450
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   451
    private static Opcode[] stdOpcodes = new Opcode[256];
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   452
    private static Opcode[] wideOpcodes = new Opcode[256];
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   453
    private static Opcode[] nonPrivOpcodes = new Opcode[256];
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   454
    private static Opcode[] privOpcodes = new Opcode[256];
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   455
    static {
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   456
        for (Opcode o: values())
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   457
            getOpcodeBlock(o.opcode >> 8)[o.opcode & 0xff] = o;
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   458
    }
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   459
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   460
    /** The byte prefix for the wide instructions. */
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   461
    public static final int WIDE = 0xc4;
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   462
    /** The byte prefix for the PicoJava nonpriv instructions. */
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   463
    public static final int NONPRIV = 0xfe;
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   464
    /** The byte prefix for the PicoJava priv instructions. */
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   465
    public static final int PRIV = 0xff;
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   466
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   467
    public enum Set {
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   468
        /** Standard opcodes. */
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   469
        STANDARD,
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   470
        /** Legacy support for PicoJava opcodes. */
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   471
        PICOJAVA  };
70eb5f17c5f8 6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff changeset
   472
}