All Downloads are FREE. Search and download functionalities are using the official Maven repository.

mockit.external.asm.Opcodes Maven / Gradle / Ivy

Go to download

JMockit is a Java toolkit for automated developer testing. It contains APIs for the creation of the objects to be tested, for mocking dependencies, and for faking external APIs; JUnit (4 & 5) and TestNG test runners are supported. It also contains an advanced code coverage tool.

There is a newer version: 1.49
Show newest version
/*
 * ASM: a very small and fast Java bytecode manipulation framework
 * Copyright (c) 2000-2011 INRIA, France Telecom
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in the
 *    documentation and/or other materials provided with the distribution.
 * 3. Neither the name of the copyright holders nor the names of its
 *    contributors may be used to endorse or promote products derived from
 *    this software without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
 * THE POSSIBILITY OF SUCH DAMAGE.
 */
package mockit.external.asm;

/**
 * Defines the JVM opcodes. This interface does not define all the JVM opcodes because some opcodes are automatically
 * handled. For example, the xLOAD and xSTORE opcodes are automatically replaced by xLOAD_n and xSTORE_n opcodes when
 * possible. The xLOAD_n and xSTORE_n opcodes are therefore not defined in this interface. Likewise for LDC,
 * automatically replaced by LDC_W or LDC2_W when necessary, WIDE, GOTO_W and JSR_W.
 *
 * @author Eric Bruneton
 * @author Eugene Kuleshov
 */
public interface Opcodes
{
   // visitInsn
   int NOP         = 0;
   int ACONST_NULL = 1;
   int ICONST_M1   = 2;
   int ICONST_0    = 3;
   int ICONST_1    = 4;
   int ICONST_2    = 5;
   int ICONST_3    = 6;
   int ICONST_4    = 7;
   int ICONST_5    = 8;
   int LCONST_0    = 9;
   int LCONST_1   = 10;
   int FCONST_0   = 11;
   int FCONST_1   = 12;
   int FCONST_2   = 13;
   int DCONST_0   = 14;
   int DCONST_1   = 15;
   int IALOAD = 46;
   int LALOAD = 47;
   int FALOAD = 48;
   int DALOAD = 49;
   int AALOAD = 50;
   int BALOAD = 51;
   int CALOAD = 52;
   int SALOAD = 53;
   int IASTORE = 79;
   int LASTORE = 80;
   int FASTORE = 81;
   int DASTORE = 82;
   int AASTORE = 83;
   int BASTORE = 84;
   int CASTORE = 85;
   int SASTORE = 86;
   int POP     = 87;
   int POP2    = 88;
   int DUP     = 89;
   int DUP_X1  = 90;
   int DUP_X2  = 91;
   int DUP2    = 92;
   int DUP2_X1 = 93;
   int DUP2_X2 = 94;
   int SWAP = 95;
   int IADD = 96;
   int LADD = 97;
   int FADD = 98;
   int DADD = 99;
   int ISUB = 100;
   int LSUB = 101;
   int FSUB = 102;
   int DSUB = 103;
   int IMUL = 104;
   int LMUL = 105;
   int FMUL = 106;
   int DMUL = 107;
   int IDIV = 108;
   int LDIV = 109;
   int FDIV = 110;
   int DDIV = 111;
   int IREM = 112;
   int LREM = 113;
   int FREM = 114;
   int DREM = 115;
   int INEG = 116;
   int LNEG = 117;
   int FNEG = 118;
   int DNEG = 119;
   int ISHL = 120;
   int LSHL = 121;
   int ISHR = 122;
   int LSHR = 123;
   int IUSHR = 124;
   int LUSHR = 125;
   int IAND = 126;
   int LAND = 127;
   int IOR  = 128;
   int LOR  = 129;
   int IXOR = 130;
   int LXOR = 131;
   int I2L = 133;
   int I2F = 134;
   int I2D = 135;
   int L2I = 136;
   int L2F = 137;
   int L2D = 138;
   int F2I = 139;
   int F2L = 140;
   int F2D = 141;
   int D2I = 142;
   int D2L = 143;
   int D2F = 144;
   int I2B = 145;
   int I2C = 146;
   int I2S = 147;
   int LCMP = 148;
   int FCMPL = 149;
   int FCMPG = 150;
   int DCMPL = 151;
   int DCMPG = 152;
   int IRETURN = 172;
   int LRETURN = 173;
   int FRETURN = 174;
   int DRETURN = 175;
   int ARETURN = 176;
   int RETURN  = 177;
   int ARRAYLENGTH = 190;
   int ATHROW      = 191;
   int MONITORENTER = 194;
   int MONITOREXIT  = 195;

   // visitIntInsn
   int BIPUSH = 16;
   int SIPUSH = 17;
   int NEWARRAY = 188;

   // visitLdcInsn
   int LDC    = 18;
   int LDC_W  = 19;
   int LDC2_W = 20;

   // visitVarInsn
   int ILOAD = 21;
   int LLOAD = 22;
   int FLOAD = 23;
   int DLOAD = 24;
   int ALOAD = 25;
   int ILOAD_0 = 26;
// int ILOAD_1 = 27;
// int ILOAD_2 = 28;
// int ILOAD_3 = 29;
// int LLOAD_0 = 30;
// int LLOAD_1 = 31;
// int LLOAD_2 = 32;
// int LLOAD_3 = 33;
// int FLOAD_0 = 34;
// int FLOAD_1 = 35;
// int FLOAD_2 = 36;
// int FLOAD_3 = 37;
// int DLOAD_0 = 38;
// int DLOAD_1 = 39;
// int DLOAD_2 = 40;
// int DLOAD_3 = 41;
// int ALOAD_0 = 42;
// int ALOAD_1 = 43;
// int ALOAD_2 = 44;
// int ALOAD_3 = 45;
   int ISTORE = 54;
   int LSTORE = 55;
   int FSTORE = 56;
   int DSTORE = 57;
   int ASTORE = 58;
   int ISTORE_0 = 59;
// int ISTORE_1 = 60;
// int ISTORE_2 = 61;
// int ISTORE_3 = 62;
// int LSTORE_0 = 63;
// int LSTORE_1 = 64;
// int LSTORE_2 = 65;
// int LSTORE_3 = 66;
// int FSTORE_0 = 67;
// int FSTORE_1 = 68;
// int FSTORE_2 = 69;
// int FSTORE_3 = 70;
// int DSTORE_0 = 71;
// int DSTORE_1 = 72;
// int DSTORE_2 = 73;
// int DSTORE_3 = 74;
// int ASTORE_0 = 75;
// int ASTORE_1 = 76;
// int ASTORE_2 = 77;
// int ASTORE_3 = 78;
   int RET  = 169;
   int WIDE = 196; // NOT VISITED

   // visitIincInsn
   int IINC = 132;

   // visitJumpInsn
   int IFEQ = 153;
   int IFNE = 154;
   int IFLT = 155;
   int IFGE = 156;
   int IFGT = 157;
   int IFLE = 158;
   int IF_ICMPEQ = 159;
   int IF_ICMPNE = 160;
   int IF_ICMPLT = 161;
   int IF_ICMPGE = 162;
   int IF_ICMPGT = 163;
   int IF_ICMPLE = 164;
   int IF_ACMPEQ = 165;
   int IF_ACMPNE = 166;
   int GOTO      = 167;
   int JSR       = 168;
   int IFNULL    = 198;
   int IFNONNULL = 199;
   int GOTO_W    = 200;
   int JSR_W     = 201;

   // visitTableSwitchInsn, visitLookupSwitch
   int TABLESWITCH  = 170;
   int LOOKUPSWITCH = 171;

   // visitFieldInsn
   int GETSTATIC = 178;
   int PUTSTATIC = 179;
   int GETFIELD  = 180;
   int PUTFIELD  = 181;

   // visitMethodInsn, visitInvokeDynamicInsn
   int INVOKEVIRTUAL   = 182;
   int INVOKESPECIAL   = 183;
   int INVOKESTATIC    = 184;
   int INVOKEINTERFACE = 185;
   int INVOKEDYNAMIC   = 186;

   // visitTypeInsn
   int NEW        = 187;
   int ANEWARRAY  = 189;
   int CHECKCAST  = 192;
   int INSTANCEOF = 193;

   // visitMultiANewArrayInsn
   int MULTIANEWARRAY = 197;
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy