| /* |
| * Copyright 1998-2007 Sun Microsystems, Inc. All Rights Reserved. |
| * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
| * |
| * This code is free software; you can redistribute it and/or modify it |
| * under the terms of the GNU General Public License version 2 only, as |
| * published by the Free Software Foundation. Sun designates this |
| * particular file as subject to the "Classpath" exception as provided |
| * by Sun in the LICENSE file that accompanied this code. |
| * |
| * This code is distributed in the hope that it will be useful, but WITHOUT |
| * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
| * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
| * version 2 for more details (a copy is included in the LICENSE file that |
| * accompanied this code). |
| * |
| * You should have received a copy of the GNU General Public License version |
| * 2 along with this work; if not, write to the Free Software Foundation, |
| * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. |
| * |
| * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, |
| * CA 95054 USA or visit www.sun.com if you need additional information or |
| * have any questions. |
| */ |
| |
| const short opcode_length[256] = { |
| 1, /* nop */ |
| 1, /* aconst_null */ |
| 1, /* iconst_m1 */ |
| 1, /* iconst_0 */ |
| 1, /* iconst_1 */ |
| 1, /* iconst_2 */ |
| 1, /* iconst_3 */ |
| 1, /* iconst_4 */ |
| 1, /* iconst_5 */ |
| 1, /* lconst_0 */ |
| 1, /* lconst_1 */ |
| 1, /* fconst_0 */ |
| 1, /* fconst_1 */ |
| 1, /* fconst_2 */ |
| 1, /* dconst_0 */ |
| 1, /* dconst_1 */ |
| 2, /* bipush */ |
| 3, /* sipush */ |
| 2, /* ldc */ |
| 3, /* ldc_w */ |
| 3, /* ldc2_w */ |
| 2, /* iload */ |
| 2, /* lload */ |
| 2, /* fload */ |
| 2, /* dload */ |
| 2, /* aload */ |
| 1, /* iload_0 */ |
| 1, /* iload_1 */ |
| 1, /* iload_2 */ |
| 1, /* iload_3 */ |
| 1, /* lload_0 */ |
| 1, /* lload_1 */ |
| 1, /* lload_2 */ |
| 1, /* lload_3 */ |
| 1, /* fload_0 */ |
| 1, /* fload_1 */ |
| 1, /* fload_2 */ |
| 1, /* fload_3 */ |
| 1, /* dload_0 */ |
| 1, /* dload_1 */ |
| 1, /* dload_2 */ |
| 1, /* dload_3 */ |
| 1, /* aload_0 */ |
| 1, /* aload_1 */ |
| 1, /* aload_2 */ |
| 1, /* aload_3 */ |
| 1, /* iaload */ |
| 1, /* laload */ |
| 1, /* faload */ |
| 1, /* daload */ |
| 1, /* aaload */ |
| 1, /* baload */ |
| 1, /* caload */ |
| 1, /* saload */ |
| 2, /* istore */ |
| 2, /* lstore */ |
| 2, /* fstore */ |
| 2, /* dstore */ |
| 2, /* astore */ |
| 1, /* istore_0 */ |
| 1, /* istore_1 */ |
| 1, /* istore_2 */ |
| 1, /* istore_3 */ |
| 1, /* lstore_0 */ |
| 1, /* lstore_1 */ |
| 1, /* lstore_2 */ |
| 1, /* lstore_3 */ |
| 1, /* fstore_0 */ |
| 1, /* fstore_1 */ |
| 1, /* fstore_2 */ |
| 1, /* fstore_3 */ |
| 1, /* dstore_0 */ |
| 1, /* dstore_1 */ |
| 1, /* dstore_2 */ |
| 1, /* dstore_3 */ |
| 1, /* astore_0 */ |
| 1, /* astore_1 */ |
| 1, /* astore_2 */ |
| 1, /* astore_3 */ |
| 1, /* iastore */ |
| 1, /* lastore */ |
| 1, /* fastore */ |
| 1, /* dastore */ |
| 1, /* aastore */ |
| 1, /* bastore */ |
| 1, /* castore */ |
| 1, /* sastore */ |
| 1, /* pop */ |
| 1, /* pop2 */ |
| 1, /* dup */ |
| 1, /* dup_x1 */ |
| 1, /* dup_x2 */ |
| 1, /* dup2 */ |
| 1, /* dup2_x1 */ |
| 1, /* dup2_x2 */ |
| 1, /* swap */ |
| 1, /* iadd */ |
| 1, /* ladd */ |
| 1, /* fadd */ |
| 1, /* dadd */ |
| 1, /* isub */ |
| 1, /* lsub */ |
| 1, /* fsub */ |
| 1, /* dsub */ |
| 1, /* imul */ |
| 1, /* lmul */ |
| 1, /* fmul */ |
| 1, /* dmul */ |
| 1, /* idiv */ |
| 1, /* ldiv */ |
| 1, /* fdiv */ |
| 1, /* ddiv */ |
| 1, /* irem */ |
| 1, /* lrem */ |
| 1, /* frem */ |
| 1, /* drem */ |
| 1, /* ineg */ |
| 1, /* lneg */ |
| 1, /* fneg */ |
| 1, /* dneg */ |
| 1, /* ishl */ |
| 1, /* lshl */ |
| 1, /* ishr */ |
| 1, /* lshr */ |
| 1, /* iushr */ |
| 1, /* lushr */ |
| 1, /* iand */ |
| 1, /* land */ |
| 1, /* ior */ |
| 1, /* lor */ |
| 1, /* ixor */ |
| 1, /* lxor */ |
| 3, /* iinc */ |
| 1, /* i2l */ |
| 1, /* i2f */ |
| 1, /* i2d */ |
| 1, /* l2i */ |
| 1, /* l2f */ |
| 1, /* l2d */ |
| 1, /* f2i */ |
| 1, /* f2l */ |
| 1, /* f2d */ |
| 1, /* d2i */ |
| 1, /* d2l */ |
| 1, /* d2f */ |
| 1, /* i2b */ |
| 1, /* i2c */ |
| 1, /* i2s */ |
| 1, /* lcmp */ |
| 1, /* fcmpl */ |
| 1, /* fcmpg */ |
| 1, /* dcmpl */ |
| 1, /* dcmpg */ |
| 3, /* ifeq */ |
| 3, /* ifne */ |
| 3, /* iflt */ |
| 3, /* ifge */ |
| 3, /* ifgt */ |
| 3, /* ifle */ |
| 3, /* if_icmpeq */ |
| 3, /* if_icmpne */ |
| 3, /* if_icmplt */ |
| 3, /* if_icmpge */ |
| 3, /* if_icmpgt */ |
| 3, /* if_icmple */ |
| 3, /* if_acmpeq */ |
| 3, /* if_acmpne */ |
| 3, /* goto */ |
| 3, /* jsr */ |
| 2, /* ret */ |
| 99, /* tableswitch */ |
| 99, /* lookupswitch */ |
| 1, /* ireturn */ |
| 1, /* lreturn */ |
| 1, /* freturn */ |
| 1, /* dreturn */ |
| 1, /* areturn */ |
| 1, /* return */ |
| 3, /* getstatic */ |
| 3, /* putstatic */ |
| 3, /* getfield */ |
| 3, /* putfield */ |
| 3, /* invokevirtual */ |
| 3, /* invokespecial */ |
| 3, /* invokestatic */ |
| 5, /* invokeinterface */ |
| 0, /* xxxunusedxxx */ |
| 3, /* new */ |
| 2, /* newarray */ |
| 3, /* anewarray */ |
| 1, /* arraylength */ |
| 1, /* athrow */ |
| 3, /* checkcast */ |
| 3, /* instanceof */ |
| 1, /* monitorenter */ |
| 1, /* monitorexit */ |
| 0, /* wide */ |
| 4, /* multianewarray */ |
| 3, /* ifnull */ |
| 3, /* ifnonnull */ |
| 5, /* goto_w */ |
| 5, /* jsr_w */ |
| 1, /* breakpoint */ |
| 2, /* ldc_quick */ |
| 3, /* ldc_w_quick */ |
| 3, /* ldc2_w_quick */ |
| 3, /* getfield_quick */ |
| 3, /* putfield_quick */ |
| 3, /* getfield2_quick */ |
| 3, /* putfield2_quick */ |
| 3, /* getstatic_quick */ |
| 3, /* putstatic_quick */ |
| 3, /* getstatic2_quick */ |
| 3, /* putstatic2_quick */ |
| 3, /* invokevirtual_quick */ |
| 3, /* invokenonvirtual_quick */ |
| 3, /* invokesuper_quick */ |
| 3, /* invokestatic_quick */ |
| 5, /* invokeinterface_quick */ |
| 3, /* invokevirtualobject_quick */ |
| 3, /* invokeignored_quick */ |
| 3, /* new_quick */ |
| 3, /* anewarray_quick */ |
| 4, /* multianewarray_quick */ |
| 3, /* checkcast_quick */ |
| 3, /* instanceof_quick */ |
| 3, /* invokevirtual_quick_w */ |
| 3, /* getfield_quick_w */ |
| 3, /* putfield_quick_w */ |
| 1, /* nonnull_quick */ |
| -1, |
| -1, |
| -1, |
| -1, |
| -1, |
| -1, |
| -1, |
| -1, |
| -1, |
| -1, |
| -1, |
| -1, |
| -1, |
| -1, |
| -1, |
| -1, |
| -1, |
| -1, |
| -1, |
| -1, |
| -1, |
| -1, |
| -1, |
| -1, |
| -1, |
| -1, |
| }; |