169e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal/* 269e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal * Javassist, a Java-bytecode translator toolkit. 369e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal * Copyright (C) 1999-2007 Shigeru Chiba. All Rights Reserved. 469e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal * 569e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal * The contents of this file are subject to the Mozilla Public License Version 669e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal * 1.1 (the "License"); you may not use this file except in compliance with 769e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal * the License. Alternatively, the contents of this file may be used under 869e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal * the terms of the GNU Lesser General Public License Version 2.1 or later. 969e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal * 1069e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal * Software distributed under the License is distributed on an "AS IS" basis, 1169e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License 1269e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal * for the specific language governing rights and limitations under the 1369e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal * License. 1469e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal */ 1569e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal 1669e17611504376e4d4603925f8528dfc890fd2c6Luis Sigalpackage javassist.bytecode; 1769e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal 1869e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal/** 1969e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal * JVM Instruction Set. 2069e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal * 2169e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal * <p>This interface defines opcodes and 2269e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal * array types for the NEWARRAY instruction. 2369e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal * 2469e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal * @see Mnemonic 2569e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal */ 2669e17611504376e4d4603925f8528dfc890fd2c6Luis Sigalpublic interface Opcode { 2769e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal /* Opcodes */ 2869e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal 2969e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int AALOAD = 50; 3069e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int AASTORE = 83; 3169e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int ACONST_NULL = 1; 3269e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int ALOAD = 25; 3369e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int ALOAD_0 = 42; 3469e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int ALOAD_1 = 43; 3569e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int ALOAD_2 = 44; 3669e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int ALOAD_3 = 45; 3769e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int ANEWARRAY = 189; 3869e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int ARETURN = 176; 3969e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int ARRAYLENGTH = 190; 4069e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int ASTORE = 58; 4169e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int ASTORE_0 = 75; 4269e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int ASTORE_1 = 76; 4369e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int ASTORE_2 = 77; 4469e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int ASTORE_3 = 78; 4569e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int ATHROW = 191; 4669e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int BALOAD = 51; 4769e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int BASTORE = 84; 4869e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int BIPUSH = 16; 4969e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int CALOAD = 52; 5069e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int CASTORE = 85; 5169e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int CHECKCAST = 192; 5269e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int D2F = 144; 5369e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int D2I = 142; 5469e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int D2L = 143; 5569e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int DADD = 99; 5669e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int DALOAD = 49; 5769e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int DASTORE = 82; 5869e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int DCMPG = 152; 5969e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int DCMPL = 151; 6069e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int DCONST_0 = 14; 6169e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int DCONST_1 = 15; 6269e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int DDIV = 111; 6369e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int DLOAD = 24; 6469e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int DLOAD_0 = 38; 6569e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int DLOAD_1 = 39; 6669e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int DLOAD_2 = 40; 6769e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int DLOAD_3 = 41; 6869e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int DMUL = 107; 6969e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int DNEG = 119; 7069e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int DREM = 115; 7169e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int DRETURN = 175; 7269e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int DSTORE = 57; 7369e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int DSTORE_0 = 71; 7469e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int DSTORE_1 = 72; 7569e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int DSTORE_2 = 73; 7669e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int DSTORE_3 = 74; 7769e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int DSUB = 103; 7869e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int DUP = 89; 7969e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int DUP2 = 92; 8069e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int DUP2_X1 = 93; 8169e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int DUP2_X2 = 94; 8269e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int DUP_X1 = 90; 8369e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int DUP_X2 = 91; 8469e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int F2D = 141; 8569e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int F2I = 139; 8669e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int F2L = 140; 8769e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int FADD = 98; 8869e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int FALOAD = 48; 8969e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int FASTORE = 81; 9069e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int FCMPG = 150; 9169e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int FCMPL = 149; 9269e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int FCONST_0 = 11; 9369e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int FCONST_1 = 12; 9469e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int FCONST_2 = 13; 9569e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int FDIV = 110; 9669e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int FLOAD = 23; 9769e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int FLOAD_0 = 34; 9869e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int FLOAD_1 = 35; 9969e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int FLOAD_2 = 36; 10069e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int FLOAD_3 = 37; 10169e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int FMUL = 106; 10269e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int FNEG = 118; 10369e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int FREM = 114; 10469e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int FRETURN = 174; 10569e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int FSTORE = 56; 10669e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int FSTORE_0 = 67; 10769e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int FSTORE_1 = 68; 10869e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int FSTORE_2 = 69; 10969e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int FSTORE_3 = 70; 11069e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int FSUB = 102; 11169e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int GETFIELD = 180; 11269e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int GETSTATIC = 178; 11369e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int GOTO = 167; 11469e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int GOTO_W = 200; 11569e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int I2B = 145; 11669e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int I2C = 146; 11769e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int I2D = 135; 11869e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int I2F = 134; 11969e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int I2L = 133; 12069e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int I2S = 147; 12169e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int IADD = 96; 12269e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int IALOAD = 46; 12369e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int IAND = 126; 12469e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int IASTORE = 79; 12569e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int ICONST_0 = 3; 12669e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int ICONST_1 = 4; 12769e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int ICONST_2 = 5; 12869e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int ICONST_3 = 6; 12969e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int ICONST_4 = 7; 13069e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int ICONST_5 = 8; 13169e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int ICONST_M1 = 2; 13269e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int IDIV = 108; 13369e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int IFEQ = 153; 13469e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int IFGE = 156; 13569e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int IFGT = 157; 13669e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int IFLE = 158; 13769e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int IFLT = 155; 13869e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int IFNE = 154; 13969e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int IFNONNULL = 199; 14069e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int IFNULL = 198; 14169e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int IF_ACMPEQ = 165; 14269e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int IF_ACMPNE = 166; 14369e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int IF_ICMPEQ = 159; 14469e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int IF_ICMPGE = 162; 14569e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int IF_ICMPGT = 163; 14669e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int IF_ICMPLE = 164; 14769e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int IF_ICMPLT = 161; 14869e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int IF_ICMPNE = 160; 14969e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int IINC = 132; 15069e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int ILOAD = 21; 15169e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int ILOAD_0 = 26; 15269e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int ILOAD_1 = 27; 15369e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int ILOAD_2 = 28; 15469e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int ILOAD_3 = 29; 15569e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int IMUL = 104; 15669e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int INEG = 116; 15769e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int INSTANCEOF = 193; 15869e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int INVOKEINTERFACE = 185; 15969e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int INVOKESPECIAL = 183; 16069e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int INVOKESTATIC = 184; 16169e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int INVOKEVIRTUAL = 182; 16269e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int IOR = 128; 16369e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int IREM = 112; 16469e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int IRETURN = 172; 16569e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int ISHL = 120; 16669e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int ISHR = 122; 16769e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int ISTORE = 54; 16869e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int ISTORE_0 = 59; 16969e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int ISTORE_1 = 60; 17069e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int ISTORE_2 = 61; 17169e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int ISTORE_3 = 62; 17269e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int ISUB = 100; 17369e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int IUSHR = 124; 17469e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int IXOR = 130; 17569e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int JSR = 168; 17669e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int JSR_W = 201; 17769e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int L2D = 138; 17869e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int L2F = 137; 17969e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int L2I = 136; 18069e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int LADD = 97; 18169e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int LALOAD = 47; 18269e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int LAND = 127; 18369e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int LASTORE = 80; 18469e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int LCMP = 148; 18569e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int LCONST_0 = 9; 18669e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int LCONST_1 = 10; 18769e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int LDC = 18; 18869e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int LDC2_W = 20; 18969e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int LDC_W = 19; 19069e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int LDIV = 109; 19169e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int LLOAD = 22; 19269e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int LLOAD_0 = 30; 19369e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int LLOAD_1 = 31; 19469e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int LLOAD_2 = 32; 19569e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int LLOAD_3 = 33; 19669e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int LMUL = 105; 19769e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int LNEG = 117; 19869e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int LOOKUPSWITCH = 171; 19969e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int LOR = 129; 20069e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int LREM = 113; 20169e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int LRETURN = 173; 20269e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int LSHL = 121; 20369e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int LSHR = 123; 20469e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int LSTORE = 55; 20569e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int LSTORE_0 = 63; 20669e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int LSTORE_1 = 64; 20769e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int LSTORE_2 = 65; 20869e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int LSTORE_3 = 66; 20969e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int LSUB = 101; 21069e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int LUSHR = 125; 21169e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int LXOR = 131; 21269e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int MONITORENTER = 194; 21369e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int MONITOREXIT = 195; 21469e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int MULTIANEWARRAY = 197; 21569e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int NEW = 187; 21669e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int NEWARRAY = 188; 21769e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int NOP = 0; 21869e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int POP = 87; 21969e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int POP2 = 88; 22069e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int PUTFIELD = 181; 22169e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int PUTSTATIC = 179; 22269e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int RET = 169; 22369e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int RETURN = 177; 22469e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int SALOAD = 53; 22569e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int SASTORE = 86; 22669e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int SIPUSH = 17; 22769e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int SWAP = 95; 22869e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int TABLESWITCH = 170; 22969e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int WIDE = 196; 23069e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal 23169e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal /* array-type code for the newarray instruction */ 23269e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal 23369e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int T_BOOLEAN = 4; 23469e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int T_CHAR = 5; 23569e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int T_FLOAT = 6; 23669e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int T_DOUBLE = 7; 23769e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int T_BYTE = 8; 23869e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int T_SHORT = 9; 23969e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int T_INT = 10; 24069e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int T_LONG = 11; 24169e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal 24269e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal /* how many values are pushed on the operand stack. */ 24369e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal int[] STACK_GROW = { 24469e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal 0, // nop, 0 24569e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal 1, // aconst_null, 1 24669e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal 1, // iconst_m1, 2 24769e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal 1, // iconst_0, 3 24869e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal 1, // iconst_1, 4 24969e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal 1, // iconst_2, 5 25069e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal 1, // iconst_3, 6 25169e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal 1, // iconst_4, 7 25269e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal 1, // iconst_5, 8 25369e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal 2, // lconst_0, 9 25469e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal 2, // lconst_1, 10 25569e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal 1, // fconst_0, 11 25669e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal 1, // fconst_1, 12 25769e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal 1, // fconst_2, 13 25869e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal 2, // dconst_0, 14 25969e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal 2, // dconst_1, 15 26069e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal 1, // bipush, 16 26169e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal 1, // sipush, 17 26269e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal 1, // ldc, 18 26369e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal 1, // ldc_w, 19 26469e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal 2, // ldc2_w, 20 26569e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal 1, // iload, 21 26669e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal 2, // lload, 22 26769e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal 1, // fload, 23 26869e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal 2, // dload, 24 26969e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal 1, // aload, 25 27069e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal 1, // iload_0, 26 27169e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal 1, // iload_1, 27 27269e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal 1, // iload_2, 28 27369e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal 1, // iload_3, 29 27469e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal 2, // lload_0, 30 27569e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal 2, // lload_1, 31 27669e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal 2, // lload_2, 32 27769e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal 2, // lload_3, 33 27869e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal 1, // fload_0, 34 27969e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal 1, // fload_1, 35 28069e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal 1, // fload_2, 36 28169e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal 1, // fload_3, 37 28269e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal 2, // dload_0, 38 28369e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal 2, // dload_1, 39 28469e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal 2, // dload_2, 40 28569e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal 2, // dload_3, 41 28669e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal 1, // aload_0, 42 28769e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal 1, // aload_1, 43 28869e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal 1, // aload_2, 44 28969e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal 1, // aload_3, 45 29069e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal -1, // iaload, 46 29169e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal 0, // laload, 47 29269e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal -1, // faload, 48 29369e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal 0, // daload, 49 29469e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal -1, // aaload, 50 29569e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal -1, // baload, 51 29669e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal -1, // caload, 52 29769e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal -1, // saload, 53 29869e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal -1, // istore, 54 29969e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal -2, // lstore, 55 30069e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal -1, // fstore, 56 30169e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal -2, // dstore, 57 30269e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal -1, // astore, 58 30369e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal -1, // istore_0, 59 30469e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal -1, // istore_1, 60 30569e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal -1, // istore_2, 61 30669e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal -1, // istore_3, 62 30769e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal -2, // lstore_0, 63 30869e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal -2, // lstore_1, 64 30969e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal -2, // lstore_2, 65 31069e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal -2, // lstore_3, 66 31169e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal -1, // fstore_0, 67 31269e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal -1, // fstore_1, 68 31369e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal -1, // fstore_2, 69 31469e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal -1, // fstore_3, 70 31569e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal -2, // dstore_0, 71 31669e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal -2, // dstore_1, 72 31769e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal -2, // dstore_2, 73 31869e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal -2, // dstore_3, 74 31969e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal -1, // astore_0, 75 32069e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal -1, // astore_1, 76 32169e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal -1, // astore_2, 77 32269e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal -1, // astore_3, 78 32369e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal -3, // iastore, 79 32469e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal -4, // lastore, 80 32569e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal -3, // fastore, 81 32669e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal -4, // dastore, 82 32769e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal -3, // aastore, 83 32869e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal -3, // bastore, 84 32969e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal -3, // castore, 85 33069e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal -3, // sastore, 86 33169e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal -1, // pop, 87 33269e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal -2, // pop2, 88 33369e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal 1, // dup, 89 33469e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal 1, // dup_x1, 90 33569e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal 1, // dup_x2, 91 33669e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal 2, // dup2, 92 33769e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal 2, // dup2_x1, 93 33869e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal 2, // dup2_x2, 94 33969e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal 0, // swap, 95 34069e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal -1, // iadd, 96 34169e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal -2, // ladd, 97 34269e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal -1, // fadd, 98 34369e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal -2, // dadd, 99 34469e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal -1, // isub, 100 34569e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal -2, // lsub, 101 34669e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal -1, // fsub, 102 34769e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal -2, // dsub, 103 34869e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal -1, // imul, 104 34969e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal -2, // lmul, 105 35069e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal -1, // fmul, 106 35169e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal -2, // dmul, 107 35269e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal -1, // idiv, 108 35369e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal -2, // ldiv, 109 35469e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal -1, // fdiv, 110 35569e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal -2, // ddiv, 111 35669e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal -1, // irem, 112 35769e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal -2, // lrem, 113 35869e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal -1, // frem, 114 35969e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal -2, // drem, 115 36069e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal 0, // ineg, 116 36169e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal 0, // lneg, 117 36269e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal 0, // fneg, 118 36369e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal 0, // dneg, 119 36469e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal -1, // ishl, 120 36569e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal -1, // lshl, 121 36669e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal -1, // ishr, 122 36769e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal -1, // lshr, 123 36869e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal -1, // iushr, 124 36969e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal -1, // lushr, 125 37069e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal -1, // iand, 126 37169e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal -2, // land, 127 37269e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal -1, // ior, 128 37369e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal -2, // lor, 129 37469e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal -1, // ixor, 130 37569e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal -2, // lxor, 131 37669e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal 0, // iinc, 132 37769e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal 1, // i2l, 133 37869e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal 0, // i2f, 134 37969e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal 1, // i2d, 135 38069e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal -1, // l2i, 136 38169e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal -1, // l2f, 137 38269e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal 0, // l2d, 138 38369e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal 0, // f2i, 139 38469e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal 1, // f2l, 140 38569e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal 1, // f2d, 141 38669e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal -1, // d2i, 142 38769e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal 0, // d2l, 143 38869e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal -1, // d2f, 144 38969e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal 0, // i2b, 145 39069e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal 0, // i2c, 146 39169e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal 0, // i2s, 147 39269e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal -3, // lcmp, 148 39369e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal -1, // fcmpl, 149 39469e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal -1, // fcmpg, 150 39569e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal -3, // dcmpl, 151 39669e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal -3, // dcmpg, 152 39769e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal -1, // ifeq, 153 39869e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal -1, // ifne, 154 39969e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal -1, // iflt, 155 40069e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal -1, // ifge, 156 40169e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal -1, // ifgt, 157 40269e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal -1, // ifle, 158 40369e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal -2, // if_icmpeq, 159 40469e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal -2, // if_icmpne, 160 40569e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal -2, // if_icmplt, 161 40669e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal -2, // if_icmpge, 162 40769e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal -2, // if_icmpgt, 163 40869e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal -2, // if_icmple, 164 40969e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal -2, // if_acmpeq, 165 41069e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal -2, // if_acmpne, 166 41169e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal 0, // goto, 167 41269e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal 1, // jsr, 168 41369e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal 0, // ret, 169 41469e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal -1, // tableswitch, 170 41569e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal -1, // lookupswitch, 171 41669e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal -1, // ireturn, 172 41769e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal -2, // lreturn, 173 41869e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal -1, // freturn, 174 41969e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal -2, // dreturn, 175 42069e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal -1, // areturn, 176 42169e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal 0, // return, 177 42269e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal 0, // getstatic, 178 depends on the type 42369e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal 0, // putstatic, 179 depends on the type 42469e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal 0, // getfield, 180 depends on the type 42569e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal 0, // putfield, 181 depends on the type 42669e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal 0, // invokevirtual, 182 depends on the type 42769e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal 0, // invokespecial, 183 depends on the type 42869e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal 0, // invokestatic, 184 depends on the type 42969e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal 0, // invokeinterface, 185 depends on the type 43069e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal 0, // undefined, 186 43169e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal 1, // new, 187 43269e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal 0, // newarray, 188 43369e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal 0, // anewarray, 189 43469e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal 0, // arraylength, 190 43569e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal -1, // athrow, 191 stack is cleared 43669e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal 0, // checkcast, 192 43769e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal 0, // instanceof, 193 43869e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal -1, // monitorenter, 194 43969e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal -1, // monitorexit, 195 44069e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal 0, // wide, 196 depends on the following opcode 44169e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal 0, // multianewarray, 197 depends on the dimensions 44269e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal -1, // ifnull, 198 44369e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal -1, // ifnonnull, 199 44469e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal 0, // goto_w, 200 44569e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal 1 // jsr_w, 201 44669e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal }; 44769e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal} 448