本文整理汇总了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;
}
示例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();
}
}
示例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);
}
}