当前位置: 首页>>代码示例>>Java>>正文


Java Opcodes.ASTORE属性代码示例

本文整理汇总了Java中jdk.internal.org.objectweb.asm.Opcodes.ASTORE属性的典型用法代码示例。如果您正苦于以下问题:Java Opcodes.ASTORE属性的具体用法?Java Opcodes.ASTORE怎么用?Java Opcodes.ASTORE使用的例子?那么, 这里精选的属性代码示例或许可以为您提供帮助。您也可以进一步了解该属性所在jdk.internal.org.objectweb.asm.Opcodes的用法示例。


在下文中一共展示了Opcodes.ASTORE属性的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: visitLocalVar

private byte[] visitLocalVar(Initialization node) {
    VariableInfo vi = node.getVariableInfo();
    int index = locals.addLocal(vi);
    int store;
    node.getChild(0).accept(this); // place initialization expression on stack
    emitDup(vi.type);
    if (vi.type instanceof TypeKlass) {
        store = Opcodes.ASTORE;
    } else if (vi.type.equals(TypeList.DOUBLE)) {
        store = Opcodes.DSTORE;
    } else if (vi.type.equals(TypeList.LONG)) {
        store = Opcodes.LSTORE;
    } else if (vi.type.equals(TypeList.FLOAT)) {
        store = Opcodes.FSTORE;
    } else {
        store = Opcodes.ISTORE;
    }
    currentMV.visitVarInsn(store, index);
    return EMPTY_BYTE_ARRAY;
}
 
开发者ID:AdoptOpenJDK,项目名称:openjdk-jdk10,代码行数:20,代码来源:ByteCodeVisitor.java

示例2: visitVarInsn

@Override
public void visitVarInsn(final int opcode, final int var) {
    switch (opcode) {
    case Opcodes.ILOAD:
        load(var, Type.INT_TYPE);
        break;
    case Opcodes.LLOAD:
        load(var, Type.LONG_TYPE);
        break;
    case Opcodes.FLOAD:
        load(var, Type.FLOAT_TYPE);
        break;
    case Opcodes.DLOAD:
        load(var, Type.DOUBLE_TYPE);
        break;
    case Opcodes.ALOAD:
        load(var, OBJECT_TYPE);
        break;
    case Opcodes.ISTORE:
        store(var, Type.INT_TYPE);
        break;
    case Opcodes.LSTORE:
        store(var, Type.LONG_TYPE);
        break;
    case Opcodes.FSTORE:
        store(var, Type.FLOAT_TYPE);
        break;
    case Opcodes.DSTORE:
        store(var, Type.DOUBLE_TYPE);
        break;
    case Opcodes.ASTORE:
        store(var, OBJECT_TYPE);
        break;
    case Opcodes.RET:
        ret(var);
        break;
    default:
        throw new IllegalArgumentException();
    }
}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:40,代码来源:InstructionAdapter.java

示例3: storeInsnOpcode

private int storeInsnOpcode(BasicType type) throws InternalError {
    switch (type) {
        case I_TYPE: return Opcodes.ISTORE;
        case J_TYPE: return Opcodes.LSTORE;
        case F_TYPE: return Opcodes.FSTORE;
        case D_TYPE: return Opcodes.DSTORE;
        case L_TYPE: return Opcodes.ASTORE;
        default:
            throw new InternalError("unknown type: " + type);
    }
}
 
开发者ID:AdoptOpenJDK,项目名称:openjdk-jdk10,代码行数:11,代码来源:InvokerBytecodeGenerator.java


注:本文中的jdk.internal.org.objectweb.asm.Opcodes.ASTORE属性示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。