author | duke |
Wed, 05 Jul 2017 20:46:50 +0200 | |
changeset 32264 | 58af228a68fa |
parent 30846 | 2b3f379840f0 |
permissions | -rw-r--r-- |
2512
70eb5f17c5f8
6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff
changeset
|
1 |
/* |
14717
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
9303
diff
changeset
|
2 |
* Copyright (c) 2009, 2012, 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 | 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 | 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 | 21 |
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA |
22 |
* or visit www.oracle.com if you need additional information or have any |
|
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 |
/** |
9303
eae35c201e19
7032975: API files in javax.annotation.processing need to be updated for references to JLS
jjh
parents:
5847
diff
changeset
|
32 |
* See JVMS, chapter 6. |
2512
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 |
14717
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
9303
diff
changeset
|
249 |
ILOAD_W(0xc415, WIDE_LOCAL), |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
9303
diff
changeset
|
250 |
LLOAD_W(0xc416, WIDE_LOCAL), |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
9303
diff
changeset
|
251 |
FLOAD_W(0xc417, WIDE_LOCAL), |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
9303
diff
changeset
|
252 |
DLOAD_W(0xc418, WIDE_LOCAL), |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
9303
diff
changeset
|
253 |
ALOAD_W(0xc419, WIDE_LOCAL), |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
9303
diff
changeset
|
254 |
ISTORE_W(0xc436, WIDE_LOCAL), |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
9303
diff
changeset
|
255 |
LSTORE_W(0xc437, WIDE_LOCAL), |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
9303
diff
changeset
|
256 |
FSTORE_W(0xc438, WIDE_LOCAL), |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
9303
diff
changeset
|
257 |
DSTORE_W(0xc439, WIDE_LOCAL), |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
9303
diff
changeset
|
258 |
ASTORE_W(0xc43a, WIDE_LOCAL), |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
9303
diff
changeset
|
259 |
IINC_W(0xc484, WIDE_LOCAL_SHORT), |
641fdce05089
7190862: javap shows an incorrect type for operands if the 'wide' prefix is used
vromero
parents:
9303
diff
changeset
|
260 |
RET_W(0xc4a9, WIDE_LOCAL), |
2512
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 |
|
14801
d66cab4ef397
8003967: detect and remove all mutable implicit static enum fields in langtools
vromero
parents:
14717
diff
changeset
|
451 |
private static final Opcode[] stdOpcodes = new Opcode[256]; |
d66cab4ef397
8003967: detect and remove all mutable implicit static enum fields in langtools
vromero
parents:
14717
diff
changeset
|
452 |
private static final Opcode[] wideOpcodes = new Opcode[256]; |
d66cab4ef397
8003967: detect and remove all mutable implicit static enum fields in langtools
vromero
parents:
14717
diff
changeset
|
453 |
private static final Opcode[] nonPrivOpcodes = new Opcode[256]; |
d66cab4ef397
8003967: detect and remove all mutable implicit static enum fields in langtools
vromero
parents:
14717
diff
changeset
|
454 |
private static final Opcode[] privOpcodes = new Opcode[256]; |
2512
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. */ |
22163 | 471 |
PICOJAVA } |
2512
70eb5f17c5f8
6819246: improve support for decoding instructions in classfile library
jjg
parents:
diff
changeset
|
472 |
} |