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

com.alibaba.fastjson.asm.Opcodes Maven / Gradle / Ivy

There is a newer version: 3.2.26
Show newest version
/***
 * ASM: a very small and fast Java bytecode manipulation framework
 * Copyright (c) 2000-2007 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 com.alibaba.fastjson.asm;

/**
 * Defines the JVM opcodes, access flags and array type codes. 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 {
    int T_INT = 10;

    // versions

    // int V1_1 = 3 << 16 | 45;
    // int V1_2 = 0 << 16 | 46;
    // int V1_3 = 0 << 16 | 47;
    // int V1_4 = 0 << 16 | 48;
    int V1_5 = 0 << 16 | 49;
    // int V1_6 = 0 << 16 | 50;
    // int V1_7 = 0 << 16 | 51;

    // access flags

    int ACC_PUBLIC = 0x0001;                 // class, field, method
    int ACC_SUPER = 0x0020;                 // class

    // opcodes // visit method (- = idem)

    int ACONST_NULL = 1;                      // -
    int ICONST_0 = 3;                      // -
    int ICONST_1 = 4;                      // -
    int LCONST_0 = 9;                      // -
    int LCONST_1 = 10;                     // -
    int FCONST_0 = 11;                     // -
    int DCONST_0 = 14;                     // -
    int BIPUSH = 16;                     // visitIntInsn
    // int SIPUSH = 17; // -
//    int    LDC                 = 18;                     // visitLdcInsn
    // int LDC_W = 19; // -
    // int LDC2_W = 20; // -
    int ILOAD = 21;                     // visitVarInsn
    int LLOAD = 22;                     // -
    int FLOAD = 23;                     // -
    int DLOAD = 24;                     // -
    int ALOAD = 25;                     // -

    int ISTORE = 54;                     // visitVarInsn
    int LSTORE = 55;                     // -
    int FSTORE = 56;                     // -
    int DSTORE = 57;                     // -
    int ASTORE = 58;                     // -
    int IASTORE = 79; // visitInsn

    int POP = 87;                     // -
    //    int    POP2                = 88;                     // -
    int DUP = 89;                     // -

    int IADD = 96;                     // -

//    int    ISUB                = 100;                    // -

    int IAND = 126;                    // -
    // int LAND = 127; // -
    int IOR = 128;                    // -
    // int LOR = 129; // -
    // int IXOR = 130; // -
    // int LXOR = 131; // -
    // int    IINC                = 132;                    // visitIincInsn

    int LCMP = 148;                    // -
    int FCMPL = 149;                    // -
    int DCMPL = 151;                    // -
    int IFEQ = 153;                    // visitJumpInsn
    int IFNE = 154;                    // -
    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_ACMPEQ = 165;                    // -
    int IF_ACMPNE = 166;                    // -
    int GOTO = 167;                    // -
    int RET = 169;                    // visitVarInsn
    int ARETURN = 176;                    // -
    int RETURN = 177;                    // -
    int GETSTATIC = 178;                    // visitFieldInsn
    int GETFIELD = 180;                    // -
    int PUTFIELD = 181;                    // -
    int INVOKEVIRTUAL = 182;                    // visitMethodInsn
    int INVOKESPECIAL = 183;                    // -
    int INVOKESTATIC = 184;                    // -
    int INVOKEINTERFACE = 185;                    // -
    // int INVOKEDYNAMIC = 186; // -
    int NEW = 187;                    // visitTypeInsn
    int NEWARRAY = 188;                    // visitIntInsn
    // int ANEWARRAY = 189; // visitTypeInsn
    // int ARRAYLENGTH = 190; // visitInsn
    // int ATHROW = 191; // -
    int CHECKCAST = 192;                    // visitTypeInsn
    int INSTANCEOF = 193;

    int IFNULL = 198;                    // visitJumpInsn
    int IFNONNULL = 199;                    // -
    // int GOTO_W = 200; // -
    // int JSR_W = 201; // -
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy