1 /* |
|
2 * Copyright 1998-2007 Sun Microsystems, Inc. All Rights Reserved. |
|
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
|
4 * |
|
5 * This code is free software; you can redistribute it and/or modify it |
|
6 * under the terms of the GNU General Public License version 2 only, as |
|
7 * published by the Free Software Foundation. Sun designates this |
|
8 * particular file as subject to the "Classpath" exception as provided |
|
9 * by Sun in the LICENSE file that accompanied this code. |
|
10 * |
|
11 * This code is distributed in the hope that it will be useful, but WITHOUT |
|
12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
|
13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
|
14 * version 2 for more details (a copy is included in the LICENSE file that |
|
15 * accompanied this code). |
|
16 * |
|
17 * You should have received a copy of the GNU General Public License version |
|
18 * 2 along with this work; if not, write to the Free Software Foundation, |
|
19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. |
|
20 * |
|
21 * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, |
|
22 * CA 95054 USA or visit www.sun.com if you need additional information or |
|
23 * have any questions. |
|
24 */ |
|
25 |
|
26 char const opcode_weight[256] = { |
|
27 1, /* nop */ |
|
28 1, /* aconst_null */ |
|
29 1, /* iconst_m1 */ |
|
30 1, /* iconst_0 */ |
|
31 1, /* iconst_1 */ |
|
32 1, /* iconst_2 */ |
|
33 1, /* iconst_3 */ |
|
34 1, /* iconst_4 */ |
|
35 1, /* iconst_5 */ |
|
36 1, /* lconst_0 */ |
|
37 1, /* lconst_1 */ |
|
38 1, /* fconst_0 */ |
|
39 1, /* fconst_1 */ |
|
40 1, /* fconst_2 */ |
|
41 1, /* dconst_0 */ |
|
42 1, /* dconst_1 */ |
|
43 1, /* bipush */ |
|
44 1, /* sipush */ |
|
45 1, /* ldc */ |
|
46 1, /* ldc_w */ |
|
47 1, /* ldc2_w */ |
|
48 1, /* iload */ |
|
49 1, /* lload */ |
|
50 1, /* fload */ |
|
51 1, /* dload */ |
|
52 1, /* aload */ |
|
53 1, /* iload_0 */ |
|
54 1, /* iload_1 */ |
|
55 1, /* iload_2 */ |
|
56 1, /* iload_3 */ |
|
57 1, /* lload_0 */ |
|
58 1, /* lload_1 */ |
|
59 1, /* lload_2 */ |
|
60 1, /* lload_3 */ |
|
61 1, /* fload_0 */ |
|
62 1, /* fload_1 */ |
|
63 1, /* fload_2 */ |
|
64 1, /* fload_3 */ |
|
65 1, /* dload_0 */ |
|
66 1, /* dload_1 */ |
|
67 1, /* dload_2 */ |
|
68 1, /* dload_3 */ |
|
69 1, /* aload_0 */ |
|
70 1, /* aload_1 */ |
|
71 1, /* aload_2 */ |
|
72 1, /* aload_3 */ |
|
73 1, /* iaload */ |
|
74 1, /* laload */ |
|
75 1, /* faload */ |
|
76 1, /* daload */ |
|
77 1, /* aaload */ |
|
78 1, /* baload */ |
|
79 1, /* caload */ |
|
80 1, /* saload */ |
|
81 1, /* istore */ |
|
82 1, /* lstore */ |
|
83 1, /* fstore */ |
|
84 1, /* dstore */ |
|
85 1, /* astore */ |
|
86 1, /* istore_0 */ |
|
87 1, /* istore_1 */ |
|
88 1, /* istore_2 */ |
|
89 1, /* istore_3 */ |
|
90 1, /* lstore_0 */ |
|
91 1, /* lstore_1 */ |
|
92 1, /* lstore_2 */ |
|
93 1, /* lstore_3 */ |
|
94 1, /* fstore_0 */ |
|
95 1, /* fstore_1 */ |
|
96 1, /* fstore_2 */ |
|
97 1, /* fstore_3 */ |
|
98 1, /* dstore_0 */ |
|
99 1, /* dstore_1 */ |
|
100 1, /* dstore_2 */ |
|
101 1, /* dstore_3 */ |
|
102 1, /* astore_0 */ |
|
103 1, /* astore_1 */ |
|
104 1, /* astore_2 */ |
|
105 1, /* astore_3 */ |
|
106 1, /* iastore */ |
|
107 1, /* lastore */ |
|
108 1, /* fastore */ |
|
109 1, /* dastore */ |
|
110 1, /* aastore */ |
|
111 1, /* bastore */ |
|
112 1, /* castore */ |
|
113 1, /* sastore */ |
|
114 1, /* pop */ |
|
115 1, /* pop2 */ |
|
116 1, /* dup */ |
|
117 1, /* dup_x1 */ |
|
118 1, /* dup_x2 */ |
|
119 1, /* dup2 */ |
|
120 1, /* dup2_x1 */ |
|
121 1, /* dup2_x2 */ |
|
122 1, /* swap */ |
|
123 1, /* iadd */ |
|
124 1, /* ladd */ |
|
125 1, /* fadd */ |
|
126 1, /* dadd */ |
|
127 1, /* isub */ |
|
128 1, /* lsub */ |
|
129 1, /* fsub */ |
|
130 1, /* dsub */ |
|
131 1, /* imul */ |
|
132 1, /* lmul */ |
|
133 1, /* fmul */ |
|
134 1, /* dmul */ |
|
135 1, /* idiv */ |
|
136 1, /* ldiv */ |
|
137 1, /* fdiv */ |
|
138 1, /* ddiv */ |
|
139 1, /* irem */ |
|
140 1, /* lrem */ |
|
141 1, /* frem */ |
|
142 1, /* drem */ |
|
143 1, /* ineg */ |
|
144 1, /* lneg */ |
|
145 1, /* fneg */ |
|
146 1, /* dneg */ |
|
147 1, /* ishl */ |
|
148 1, /* lshl */ |
|
149 1, /* ishr */ |
|
150 1, /* lshr */ |
|
151 1, /* iushr */ |
|
152 1, /* lushr */ |
|
153 1, /* iand */ |
|
154 1, /* land */ |
|
155 1, /* ior */ |
|
156 1, /* lor */ |
|
157 1, /* ixor */ |
|
158 1, /* lxor */ |
|
159 1, /* iinc */ |
|
160 1, /* i2l */ |
|
161 1, /* i2f */ |
|
162 1, /* i2d */ |
|
163 1, /* l2i */ |
|
164 1, /* l2f */ |
|
165 1, /* l2d */ |
|
166 1, /* f2i */ |
|
167 1, /* f2l */ |
|
168 1, /* f2d */ |
|
169 1, /* d2i */ |
|
170 1, /* d2l */ |
|
171 1, /* d2f */ |
|
172 1, /* i2b */ |
|
173 1, /* i2c */ |
|
174 1, /* i2s */ |
|
175 1, /* lcmp */ |
|
176 1, /* fcmpl */ |
|
177 1, /* fcmpg */ |
|
178 1, /* dcmpl */ |
|
179 1, /* dcmpg */ |
|
180 1, /* ifeq */ |
|
181 1, /* ifne */ |
|
182 1, /* iflt */ |
|
183 1, /* ifge */ |
|
184 1, /* ifgt */ |
|
185 1, /* ifle */ |
|
186 1, /* if_icmpeq */ |
|
187 1, /* if_icmpne */ |
|
188 1, /* if_icmplt */ |
|
189 1, /* if_icmpge */ |
|
190 1, /* if_icmpgt */ |
|
191 1, /* if_icmple */ |
|
192 1, /* if_acmpeq */ |
|
193 1, /* if_acmpne */ |
|
194 1, /* goto */ |
|
195 1, /* jsr */ |
|
196 1, /* ret */ |
|
197 1, /* tableswitch */ |
|
198 1, /* lookupswitch */ |
|
199 1, /* ireturn */ |
|
200 1, /* lreturn */ |
|
201 1, /* freturn */ |
|
202 1, /* dreturn */ |
|
203 1, /* areturn */ |
|
204 1, /* return */ |
|
205 1, /* getstatic */ |
|
206 1, /* putstatic */ |
|
207 1, /* getfield */ |
|
208 1, /* putfield */ |
|
209 1, /* invokevirtual */ |
|
210 1, /* invokespecial */ |
|
211 1, /* invokestatic */ |
|
212 1, /* invokeinterface */ |
|
213 1, /* xxxunusedxxx */ |
|
214 1, /* new */ |
|
215 1, /* newarray */ |
|
216 1, /* anewarray */ |
|
217 1, /* arraylength */ |
|
218 1, /* athrow */ |
|
219 1, /* checkcast */ |
|
220 1, /* instanceof */ |
|
221 1, /* monitorenter */ |
|
222 1, /* monitorexit */ |
|
223 1, /* wide */ |
|
224 1, /* multianewarray */ |
|
225 1, /* ifnull */ |
|
226 1, /* ifnonnull */ |
|
227 1, /* goto_w */ |
|
228 1, /* jsr_w */ |
|
229 1, /* breakpoint */ |
|
230 1, /* ldc_quick */ |
|
231 1, /* ldc_w_quick */ |
|
232 1, /* ldc2_w_quick */ |
|
233 1, /* getfield_quick */ |
|
234 1, /* putfield_quick */ |
|
235 1, /* getfield2_quick */ |
|
236 1, /* putfield2_quick */ |
|
237 1, /* getstatic_quick */ |
|
238 1, /* putstatic_quick */ |
|
239 1, /* getstatic2_quick */ |
|
240 1, /* putstatic2_quick */ |
|
241 1, /* invokevirtual_quick */ |
|
242 1, /* invokenonvirtual_quick */ |
|
243 1, /* invokesuper_quick */ |
|
244 1, /* invokestatic_quick */ |
|
245 1, /* invokeinterface_quick */ |
|
246 1, /* invokevirtualobject_quick */ |
|
247 1, /* invokeignored_quick */ |
|
248 1, /* new_quick */ |
|
249 1, /* anewarray_quick */ |
|
250 1, /* multianewarray_quick */ |
|
251 1, /* checkcast_quick */ |
|
252 1, /* instanceof_quick */ |
|
253 1, /* invokevirtual_quick_w */ |
|
254 1, /* getfield_quick_w */ |
|
255 1, /* putfield_quick_w */ |
|
256 1, /* nonnull_quick */ |
|
257 0, |
|
258 0, |
|
259 0, |
|
260 0, |
|
261 0, |
|
262 0, |
|
263 0, |
|
264 0, |
|
265 0, |
|
266 0, |
|
267 0, |
|
268 0, |
|
269 0, |
|
270 0, |
|
271 0, |
|
272 0, |
|
273 0, |
|
274 0, |
|
275 0, |
|
276 0, |
|
277 0, |
|
278 0, |
|
279 0, |
|
280 0, |
|
281 0, |
|
282 0, |
|
283 }; |
|