J. Duke | 319a3b9 | 2007-12-01 00:00:00 +0000 | [diff] [blame^] | 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 | const short opcode_length[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 | 2, /* bipush */ |
| 44 | 3, /* sipush */ |
| 45 | 2, /* ldc */ |
| 46 | 3, /* ldc_w */ |
| 47 | 3, /* ldc2_w */ |
| 48 | 2, /* iload */ |
| 49 | 2, /* lload */ |
| 50 | 2, /* fload */ |
| 51 | 2, /* dload */ |
| 52 | 2, /* 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 | 2, /* istore */ |
| 82 | 2, /* lstore */ |
| 83 | 2, /* fstore */ |
| 84 | 2, /* dstore */ |
| 85 | 2, /* 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 | 3, /* 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 | 3, /* ifeq */ |
| 181 | 3, /* ifne */ |
| 182 | 3, /* iflt */ |
| 183 | 3, /* ifge */ |
| 184 | 3, /* ifgt */ |
| 185 | 3, /* ifle */ |
| 186 | 3, /* if_icmpeq */ |
| 187 | 3, /* if_icmpne */ |
| 188 | 3, /* if_icmplt */ |
| 189 | 3, /* if_icmpge */ |
| 190 | 3, /* if_icmpgt */ |
| 191 | 3, /* if_icmple */ |
| 192 | 3, /* if_acmpeq */ |
| 193 | 3, /* if_acmpne */ |
| 194 | 3, /* goto */ |
| 195 | 3, /* jsr */ |
| 196 | 2, /* ret */ |
| 197 | 99, /* tableswitch */ |
| 198 | 99, /* lookupswitch */ |
| 199 | 1, /* ireturn */ |
| 200 | 1, /* lreturn */ |
| 201 | 1, /* freturn */ |
| 202 | 1, /* dreturn */ |
| 203 | 1, /* areturn */ |
| 204 | 1, /* return */ |
| 205 | 3, /* getstatic */ |
| 206 | 3, /* putstatic */ |
| 207 | 3, /* getfield */ |
| 208 | 3, /* putfield */ |
| 209 | 3, /* invokevirtual */ |
| 210 | 3, /* invokespecial */ |
| 211 | 3, /* invokestatic */ |
| 212 | 5, /* invokeinterface */ |
| 213 | 0, /* xxxunusedxxx */ |
| 214 | 3, /* new */ |
| 215 | 2, /* newarray */ |
| 216 | 3, /* anewarray */ |
| 217 | 1, /* arraylength */ |
| 218 | 1, /* athrow */ |
| 219 | 3, /* checkcast */ |
| 220 | 3, /* instanceof */ |
| 221 | 1, /* monitorenter */ |
| 222 | 1, /* monitorexit */ |
| 223 | 0, /* wide */ |
| 224 | 4, /* multianewarray */ |
| 225 | 3, /* ifnull */ |
| 226 | 3, /* ifnonnull */ |
| 227 | 5, /* goto_w */ |
| 228 | 5, /* jsr_w */ |
| 229 | 1, /* breakpoint */ |
| 230 | 2, /* ldc_quick */ |
| 231 | 3, /* ldc_w_quick */ |
| 232 | 3, /* ldc2_w_quick */ |
| 233 | 3, /* getfield_quick */ |
| 234 | 3, /* putfield_quick */ |
| 235 | 3, /* getfield2_quick */ |
| 236 | 3, /* putfield2_quick */ |
| 237 | 3, /* getstatic_quick */ |
| 238 | 3, /* putstatic_quick */ |
| 239 | 3, /* getstatic2_quick */ |
| 240 | 3, /* putstatic2_quick */ |
| 241 | 3, /* invokevirtual_quick */ |
| 242 | 3, /* invokenonvirtual_quick */ |
| 243 | 3, /* invokesuper_quick */ |
| 244 | 3, /* invokestatic_quick */ |
| 245 | 5, /* invokeinterface_quick */ |
| 246 | 3, /* invokevirtualobject_quick */ |
| 247 | 3, /* invokeignored_quick */ |
| 248 | 3, /* new_quick */ |
| 249 | 3, /* anewarray_quick */ |
| 250 | 4, /* multianewarray_quick */ |
| 251 | 3, /* checkcast_quick */ |
| 252 | 3, /* instanceof_quick */ |
| 253 | 3, /* invokevirtual_quick_w */ |
| 254 | 3, /* getfield_quick_w */ |
| 255 | 3, /* putfield_quick_w */ |
| 256 | 1, /* nonnull_quick */ |
| 257 | -1, |
| 258 | -1, |
| 259 | -1, |
| 260 | -1, |
| 261 | -1, |
| 262 | -1, |
| 263 | -1, |
| 264 | -1, |
| 265 | -1, |
| 266 | -1, |
| 267 | -1, |
| 268 | -1, |
| 269 | -1, |
| 270 | -1, |
| 271 | -1, |
| 272 | -1, |
| 273 | -1, |
| 274 | -1, |
| 275 | -1, |
| 276 | -1, |
| 277 | -1, |
| 278 | -1, |
| 279 | -1, |
| 280 | -1, |
| 281 | -1, |
| 282 | -1, |
| 283 | }; |