| /* |
| * ProGuard -- shrinking, optimization, obfuscation, and preverification |
| * of Java bytecode. |
| * |
| * Copyright (c) 2002-2009 Eric Lafortune (eric@graphics.cornell.edu) |
| * |
| * This program is free software; you can redistribute it and/or modify it |
| * under the terms of the GNU General Public License as published by the Free |
| * Software Foundation; either version 2 of the License, or (at your option) |
| * any later version. |
| * |
| * This program 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 for |
| * more details. |
| * |
| * You should have received a copy of the GNU General Public License along |
| * with this program; if not, write to the Free Software Foundation, Inc., |
| * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
| */ |
| package proguard.classfile.instruction; |
| |
| /** |
| * Representation of an instruction. |
| * |
| * @author Eric Lafortune |
| */ |
| public interface InstructionConstants |
| { |
| public static final byte OP_NOP = 0; |
| public static final byte OP_ACONST_NULL = 1; |
| public static final byte OP_ICONST_M1 = 2; |
| public static final byte OP_ICONST_0 = 3; |
| public static final byte OP_ICONST_1 = 4; |
| public static final byte OP_ICONST_2 = 5; |
| public static final byte OP_ICONST_3 = 6; |
| public static final byte OP_ICONST_4 = 7; |
| public static final byte OP_ICONST_5 = 8; |
| public static final byte OP_LCONST_0 = 9; |
| public static final byte OP_LCONST_1 = 10; |
| public static final byte OP_FCONST_0 = 11; |
| public static final byte OP_FCONST_1 = 12; |
| public static final byte OP_FCONST_2 = 13; |
| public static final byte OP_DCONST_0 = 14; |
| public static final byte OP_DCONST_1 = 15; |
| public static final byte OP_BIPUSH = 16; |
| public static final byte OP_SIPUSH = 17; |
| public static final byte OP_LDC = 18; |
| public static final byte OP_LDC_W = 19; |
| public static final byte OP_LDC2_W = 20; |
| public static final byte OP_ILOAD = 21; |
| public static final byte OP_LLOAD = 22; |
| public static final byte OP_FLOAD = 23; |
| public static final byte OP_DLOAD = 24; |
| public static final byte OP_ALOAD = 25; |
| public static final byte OP_ILOAD_0 = 26; |
| public static final byte OP_ILOAD_1 = 27; |
| public static final byte OP_ILOAD_2 = 28; |
| public static final byte OP_ILOAD_3 = 29; |
| public static final byte OP_LLOAD_0 = 30; |
| public static final byte OP_LLOAD_1 = 31; |
| public static final byte OP_LLOAD_2 = 32; |
| public static final byte OP_LLOAD_3 = 33; |
| public static final byte OP_FLOAD_0 = 34; |
| public static final byte OP_FLOAD_1 = 35; |
| public static final byte OP_FLOAD_2 = 36; |
| public static final byte OP_FLOAD_3 = 37; |
| public static final byte OP_DLOAD_0 = 38; |
| public static final byte OP_DLOAD_1 = 39; |
| public static final byte OP_DLOAD_2 = 40; |
| public static final byte OP_DLOAD_3 = 41; |
| public static final byte OP_ALOAD_0 = 42; |
| public static final byte OP_ALOAD_1 = 43; |
| public static final byte OP_ALOAD_2 = 44; |
| public static final byte OP_ALOAD_3 = 45; |
| public static final byte OP_IALOAD = 46; |
| public static final byte OP_LALOAD = 47; |
| public static final byte OP_FALOAD = 48; |
| public static final byte OP_DALOAD = 49; |
| public static final byte OP_AALOAD = 50; |
| public static final byte OP_BALOAD = 51; |
| public static final byte OP_CALOAD = 52; |
| public static final byte OP_SALOAD = 53; |
| public static final byte OP_ISTORE = 54; |
| public static final byte OP_LSTORE = 55; |
| public static final byte OP_FSTORE = 56; |
| public static final byte OP_DSTORE = 57; |
| public static final byte OP_ASTORE = 58; |
| public static final byte OP_ISTORE_0 = 59; |
| public static final byte OP_ISTORE_1 = 60; |
| public static final byte OP_ISTORE_2 = 61; |
| public static final byte OP_ISTORE_3 = 62; |
| public static final byte OP_LSTORE_0 = 63; |
| public static final byte OP_LSTORE_1 = 64; |
| public static final byte OP_LSTORE_2 = 65; |
| public static final byte OP_LSTORE_3 = 66; |
| public static final byte OP_FSTORE_0 = 67; |
| public static final byte OP_FSTORE_1 = 68; |
| public static final byte OP_FSTORE_2 = 69; |
| public static final byte OP_FSTORE_3 = 70; |
| public static final byte OP_DSTORE_0 = 71; |
| public static final byte OP_DSTORE_1 = 72; |
| public static final byte OP_DSTORE_2 = 73; |
| public static final byte OP_DSTORE_3 = 74; |
| public static final byte OP_ASTORE_0 = 75; |
| public static final byte OP_ASTORE_1 = 76; |
| public static final byte OP_ASTORE_2 = 77; |
| public static final byte OP_ASTORE_3 = 78; |
| public static final byte OP_IASTORE = 79; |
| public static final byte OP_LASTORE = 80; |
| public static final byte OP_FASTORE = 81; |
| public static final byte OP_DASTORE = 82; |
| public static final byte OP_AASTORE = 83; |
| public static final byte OP_BASTORE = 84; |
| public static final byte OP_CASTORE = 85; |
| public static final byte OP_SASTORE = 86; |
| public static final byte OP_POP = 87; |
| public static final byte OP_POP2 = 88; |
| public static final byte OP_DUP = 89; |
| public static final byte OP_DUP_X1 = 90; |
| public static final byte OP_DUP_X2 = 91; |
| public static final byte OP_DUP2 = 92; |
| public static final byte OP_DUP2_X1 = 93; |
| public static final byte OP_DUP2_X2 = 94; |
| public static final byte OP_SWAP = 95; |
| public static final byte OP_IADD = 96; |
| public static final byte OP_LADD = 97; |
| public static final byte OP_FADD = 98; |
| public static final byte OP_DADD = 99; |
| public static final byte OP_ISUB = 100; |
| public static final byte OP_LSUB = 101; |
| public static final byte OP_FSUB = 102; |
| public static final byte OP_DSUB = 103; |
| public static final byte OP_IMUL = 104; |
| public static final byte OP_LMUL = 105; |
| public static final byte OP_FMUL = 106; |
| public static final byte OP_DMUL = 107; |
| public static final byte OP_IDIV = 108; |
| public static final byte OP_LDIV = 109; |
| public static final byte OP_FDIV = 110; |
| public static final byte OP_DDIV = 111; |
| public static final byte OP_IREM = 112; |
| public static final byte OP_LREM = 113; |
| public static final byte OP_FREM = 114; |
| public static final byte OP_DREM = 115; |
| public static final byte OP_INEG = 116; |
| public static final byte OP_LNEG = 117; |
| public static final byte OP_FNEG = 118; |
| public static final byte OP_DNEG = 119; |
| public static final byte OP_ISHL = 120; |
| public static final byte OP_LSHL = 121; |
| public static final byte OP_ISHR = 122; |
| public static final byte OP_LSHR = 123; |
| public static final byte OP_IUSHR = 124; |
| public static final byte OP_LUSHR = 125; |
| public static final byte OP_IAND = 126; |
| public static final byte OP_LAND = 127; |
| public static final byte OP_IOR = -128; |
| public static final byte OP_LOR = -127; |
| public static final byte OP_IXOR = -126; |
| public static final byte OP_LXOR = -125; |
| public static final byte OP_IINC = -124; |
| public static final byte OP_I2L = -123; |
| public static final byte OP_I2F = -122; |
| public static final byte OP_I2D = -121; |
| public static final byte OP_L2I = -120; |
| public static final byte OP_L2F = -119; |
| public static final byte OP_L2D = -118; |
| public static final byte OP_F2I = -117; |
| public static final byte OP_F2L = -116; |
| public static final byte OP_F2D = -115; |
| public static final byte OP_D2I = -114; |
| public static final byte OP_D2L = -113; |
| public static final byte OP_D2F = -112; |
| public static final byte OP_I2B = -111; |
| public static final byte OP_I2C = -110; |
| public static final byte OP_I2S = -109; |
| public static final byte OP_LCMP = -108; |
| public static final byte OP_FCMPL = -107; |
| public static final byte OP_FCMPG = -106; |
| public static final byte OP_DCMPL = -105; |
| public static final byte OP_DCMPG = -104; |
| public static final byte OP_IFEQ = -103; |
| public static final byte OP_IFNE = -102; |
| public static final byte OP_IFLT = -101; |
| public static final byte OP_IFGE = -100; |
| public static final byte OP_IFGT = -99; |
| public static final byte OP_IFLE = -98; |
| public static final byte OP_IFICMPEQ = -97; |
| public static final byte OP_IFICMPNE = -96; |
| public static final byte OP_IFICMPLT = -95; |
| public static final byte OP_IFICMPGE = -94; |
| public static final byte OP_IFICMPGT = -93; |
| public static final byte OP_IFICMPLE = -92; |
| public static final byte OP_IFACMPEQ = -91; |
| public static final byte OP_IFACMPNE = -90; |
| public static final byte OP_GOTO = -89; |
| public static final byte OP_JSR = -88; |
| public static final byte OP_RET = -87; |
| public static final byte OP_TABLESWITCH = -86; |
| public static final byte OP_LOOKUPSWITCH = -85; |
| public static final byte OP_IRETURN = -84; |
| public static final byte OP_LRETURN = -83; |
| public static final byte OP_FRETURN = -82; |
| public static final byte OP_DRETURN = -81; |
| public static final byte OP_ARETURN = -80; |
| public static final byte OP_RETURN = -79; |
| public static final byte OP_GETSTATIC = -78; |
| public static final byte OP_PUTSTATIC = -77; |
| public static final byte OP_GETFIELD = -76; |
| public static final byte OP_PUTFIELD = -75; |
| public static final byte OP_INVOKEVIRTUAL = -74; |
| public static final byte OP_INVOKESPECIAL = -73; |
| public static final byte OP_INVOKESTATIC = -72; |
| public static final byte OP_INVOKEINTERFACE = -71; |
| // public static final byte OP_UNUSED = -70; |
| public static final byte OP_NEW = -69; |
| public static final byte OP_NEWARRAY = -68; |
| public static final byte OP_ANEWARRAY = -67; |
| public static final byte OP_ARRAYLENGTH = -66; |
| public static final byte OP_ATHROW = -65; |
| public static final byte OP_CHECKCAST = -64; |
| public static final byte OP_INSTANCEOF = -63; |
| public static final byte OP_MONITORENTER = -62; |
| public static final byte OP_MONITOREXIT = -61; |
| public static final byte OP_WIDE = -60; |
| public static final byte OP_MULTIANEWARRAY = -59; |
| public static final byte OP_IFNULL = -58; |
| public static final byte OP_IFNONNULL = -57; |
| public static final byte OP_GOTO_W = -56; |
| public static final byte OP_JSR_W = -55; |
| |
| |
| public static final String[] NAMES = |
| { |
| "nop", |
| "aconst_null", |
| "iconst_m1", |
| "iconst_0", |
| "iconst_1", |
| "iconst_2", |
| "iconst_3", |
| "iconst_4", |
| "iconst_5", |
| "lconst_0", |
| "lconst_1", |
| "fconst_0", |
| "fconst_1", |
| "fconst_2", |
| "dconst_0", |
| "dconst_1", |
| "bipush", |
| "sipush", |
| "ldc", |
| "ldc_w", |
| "ldc2_w", |
| "iload", |
| "lload", |
| "fload", |
| "dload", |
| "aload", |
| "iload_0", |
| "iload_1", |
| "iload_2", |
| "iload_3", |
| "lload_0", |
| "lload_1", |
| "lload_2", |
| "lload_3", |
| "fload_0", |
| "fload_1", |
| "fload_2", |
| "fload_3", |
| "dload_0", |
| "dload_1", |
| "dload_2", |
| "dload_3", |
| "aload_0", |
| "aload_1", |
| "aload_2", |
| "aload_3", |
| "iaload", |
| "laload", |
| "faload", |
| "daload", |
| "aaload", |
| "baload", |
| "caload", |
| "saload", |
| "istore", |
| "lstore", |
| "fstore", |
| "dstore", |
| "astore", |
| "istore_0", |
| "istore_1", |
| "istore_2", |
| "istore_3", |
| "lstore_0", |
| "lstore_1", |
| "lstore_2", |
| "lstore_3", |
| "fstore_0", |
| "fstore_1", |
| "fstore_2", |
| "fstore_3", |
| "dstore_0", |
| "dstore_1", |
| "dstore_2", |
| "dstore_3", |
| "astore_0", |
| "astore_1", |
| "astore_2", |
| "astore_3", |
| "iastore", |
| "lastore", |
| "fastore", |
| "dastore", |
| "aastore", |
| "bastore", |
| "castore", |
| "sastore", |
| "pop", |
| "pop2", |
| "dup", |
| "dup_x1", |
| "dup_x2", |
| "dup2", |
| "dup2_x1", |
| "dup2_x2", |
| "swap", |
| "iadd", |
| "ladd", |
| "fadd", |
| "dadd", |
| "isub", |
| "lsub", |
| "fsub", |
| "dsub", |
| "imul", |
| "lmul", |
| "fmul", |
| "dmul", |
| "idiv", |
| "ldiv", |
| "fdiv", |
| "ddiv", |
| "irem", |
| "lrem", |
| "frem", |
| "drem", |
| "ineg", |
| "lneg", |
| "fneg", |
| "dneg", |
| "ishl", |
| "lshl", |
| "ishr", |
| "lshr", |
| "iushr", |
| "lushr", |
| "iand", |
| "land", |
| "ior", |
| "lor", |
| "ixor", |
| "lxor", |
| "iinc", |
| "i2l", |
| "i2f", |
| "i2d", |
| "l2i", |
| "l2f", |
| "l2d", |
| "f2i", |
| "f2l", |
| "f2d", |
| "d2i", |
| "d2l", |
| "d2f", |
| "i2b", |
| "i2c", |
| "i2s", |
| "lcmp", |
| "fcmpl", |
| "fcmpg", |
| "dcmpl", |
| "dcmpg", |
| "ifeq", |
| "ifne", |
| "iflt", |
| "ifge", |
| "ifgt", |
| "ifle", |
| "ificmpeq", |
| "ificmpne", |
| "ificmplt", |
| "ificmpge", |
| "ificmpgt", |
| "ificmple", |
| "ifacmpeq", |
| "ifacmpne", |
| "goto", |
| "jsr", |
| "ret", |
| "tableswitch", |
| "lookupswitch", |
| "ireturn", |
| "lreturn", |
| "freturn", |
| "dreturn", |
| "areturn", |
| "return", |
| "getstatic", |
| "putstatic", |
| "getfield", |
| "putfield", |
| "invokevirtual", |
| "invokespecial", |
| "invokestatic", |
| "invokeinterface", |
| "unused", |
| "new", |
| "newarray", |
| "anewarray", |
| "arraylength", |
| "athrow", |
| "checkcast", |
| "instanceof", |
| "monitorenter", |
| "monitorexit", |
| "wide", |
| "multianewarray", |
| "ifnull", |
| "ifnonnull", |
| "goto_w", |
| "jsr_w", |
| }; |
| |
| |
| public static final byte ARRAY_T_BOOLEAN = 4; |
| public static final byte ARRAY_T_CHAR = 5; |
| public static final byte ARRAY_T_FLOAT = 6; |
| public static final byte ARRAY_T_DOUBLE = 7; |
| public static final byte ARRAY_T_BYTE = 8; |
| public static final byte ARRAY_T_SHORT = 9; |
| public static final byte ARRAY_T_INT = 10; |
| public static final byte ARRAY_T_LONG = 11; |
| } |