java.lang.Object
org.objectweb.asm.MethodVisitor
de.grogra.xl.compiler.BytecodeWriter
- All Implemented Interfaces:
org.objectweb.asm.Opcodes
public class BytecodeWriter
extends org.objectweb.asm.MethodVisitor
implements org.objectweb.asm.Opcodes
-
Field Summary
FieldsFields inherited from class org.objectweb.asm.MethodVisitor
api, mvFields inherited from interface org.objectweb.asm.Opcodes
AALOAD, AASTORE, ACC_ABSTRACT, ACC_ANNOTATION, ACC_BRIDGE, ACC_DEPRECATED, ACC_ENUM, ACC_FINAL, ACC_INTERFACE, ACC_MANDATED, ACC_MODULE, ACC_NATIVE, ACC_OPEN, ACC_PRIVATE, ACC_PROTECTED, ACC_PUBLIC, ACC_RECORD, ACC_STATIC, ACC_STATIC_PHASE, ACC_STRICT, ACC_SUPER, ACC_SYNCHRONIZED, ACC_SYNTHETIC, ACC_TRANSIENT, ACC_TRANSITIVE, ACC_VARARGS, ACC_VOLATILE, ACONST_NULL, ALOAD, ANEWARRAY, ARETURN, ARRAYLENGTH, ASM10_EXPERIMENTAL, ASM4, ASM5, ASM6, ASM7, ASM8, ASM9, ASTORE, ATHROW, BALOAD, BASTORE, BIPUSH, CALOAD, CASTORE, CHECKCAST, D2F, D2I, D2L, DADD, DALOAD, DASTORE, DCMPG, DCMPL, DCONST_0, DCONST_1, DDIV, DLOAD, DMUL, DNEG, DOUBLE, DREM, DRETURN, DSTORE, DSUB, DUP, DUP_X1, DUP_X2, DUP2, DUP2_X1, DUP2_X2, F_APPEND, F_CHOP, F_FULL, F_NEW, F_SAME, F_SAME1, F2D, F2I, F2L, FADD, FALOAD, FASTORE, FCMPG, FCMPL, FCONST_0, FCONST_1, FCONST_2, FDIV, FLOAD, FLOAT, FMUL, FNEG, FREM, FRETURN, FSTORE, FSUB, GETFIELD, GETSTATIC, GOTO, H_GETFIELD, H_GETSTATIC, H_INVOKEINTERFACE, H_INVOKESPECIAL, H_INVOKESTATIC, H_INVOKEVIRTUAL, H_NEWINVOKESPECIAL, H_PUTFIELD, H_PUTSTATIC, I2B, I2C, I2D, I2F, I2L, I2S, IADD, IALOAD, IAND, IASTORE, ICONST_0, ICONST_1, ICONST_2, ICONST_3, ICONST_4, ICONST_5, ICONST_M1, IDIV, IF_ACMPEQ, IF_ACMPNE, IF_ICMPEQ, IF_ICMPGE, IF_ICMPGT, IF_ICMPLE, IF_ICMPLT, IF_ICMPNE, IFEQ, IFGE, IFGT, IFLE, IFLT, IFNE, IFNONNULL, IFNULL, IINC, ILOAD, IMUL, INEG, INSTANCEOF, INTEGER, INVOKEDYNAMIC, INVOKEINTERFACE, INVOKESPECIAL, INVOKESTATIC, INVOKEVIRTUAL, IOR, IREM, IRETURN, ISHL, ISHR, ISTORE, ISUB, IUSHR, IXOR, JSR, L2D, L2F, L2I, LADD, LALOAD, LAND, LASTORE, LCMP, LCONST_0, LCONST_1, LDC, LDIV, LLOAD, LMUL, LNEG, LONG, LOOKUPSWITCH, LOR, LREM, LRETURN, LSHL, LSHR, LSTORE, LSUB, LUSHR, LXOR, MONITORENTER, MONITOREXIT, MULTIANEWARRAY, NEW, NEWARRAY, NOP, NULL, POP, POP2, PUTFIELD, PUTSTATIC, RET, RETURN, SALOAD, SASTORE, SIPUSH, SOURCE_DEPRECATED, SOURCE_MASK, SWAP, T_BOOLEAN, T_BYTE, T_CHAR, T_DOUBLE, T_FLOAT, T_INT, T_LONG, T_SHORT, TABLESWITCH, TOP, UNINITIALIZED_THIS, V_PREVIEW, V1_1, V1_2, V1_3, V1_4, V1_5, V1_6, V1_7, V1_8, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V9 -
Constructor Summary
ConstructorsConstructorDescriptionBytecodeWriter(CompilerOptions opts, ClassLoader cl) BytecodeWriter(CompilerOptions opts, ClassLoader cl, ObjectList<Type<?>> l) -
Method Summary
Modifier and TypeMethodDescriptionstatic StringgetDescriptor(Method method) intbooleanbooleanbooleansupportsVersion(int ver) byte[]toByteArray(String source, CClass type) String[]voidvisitaconst(Object value) voidvisitALoad(int typeId) voidvisitAStore(int typeId) voidvisitCheckCast(Type type) voidvoidvisitdconst(double value) voidvisitDup(int typeId) voidvisitDupX1(int typeId) voidvisitDupX2(int typeId) voidvisitfconst(float value) voidvisitFieldInsn(int opcode, Field field, AccessMethod access) voidvisitFieldInsn(int opcode, Class type, String name, String descr) voidvisiticonst(int value) voidvisitInsn(int opcode) voidvisitJumpInsn(int opcode, org.objectweb.asm.Label lbl) voidvisitLabel(org.objectweb.asm.Label lbl) voidvisitlconst(long value) voidvisitLineNumber(int line) voidvisitLoad(int index, int typeId) voidvisitLoad(VMXState.Local local, Type type) voidvisitMethodInsn(int opcode, Method method) voidvisitMethodInsn(Method method) voidvisitMethodInsn(Type type, String name) voidvisitMethodInsn(Type type, String name, String descr) voidvisitMethodInsn(Class type, String name) voidvisitMethodInsn(Class type, String name, String descr) voidvisitNewArray(Type type) voidvisitNull(int typeId) voidvisitPop(int typeId) voidvisitReturn(int typeId) voidvisitStore(VMXState.Local local, Type type) voidvisitSwap(int second, int top) voidvisitTypeInsn(int opcode, Type type) voidvisitVarInsn(int opcode, int var) voidvisitVM2T(int typeId) voidvisitVMX()voidwrite(CompilationUnitScope cs, FileSystem fs, Object root) Methods inherited from class org.objectweb.asm.MethodVisitor
getDelegate, visitAnnotableParameterCount, visitAnnotation, visitAnnotationDefault, visitAttribute, visitCode, visitEnd, visitFieldInsn, visitFrame, visitIincInsn, visitInsnAnnotation, visitIntInsn, visitInvokeDynamicInsn, visitLdcInsn, visitLineNumber, visitLocalVariable, visitLocalVariableAnnotation, visitLookupSwitchInsn, visitMaxs, visitMethodInsn, visitMethodInsn, visitMultiANewArrayInsn, visitParameter, visitParameterAnnotation, visitTableSwitchInsn, visitTryCatchAnnotation, visitTryCatchBlock, visitTypeAnnotation, visitTypeInsn
-
Field Details
-
AUTH_DESCR
-
-
Constructor Details
-
BytecodeWriter
-
BytecodeWriter
-
BytecodeWriter
-
-
Method Details
-
toName
-
getDescriptor
-
toNames
-
isFPStrict
public boolean isFPStrict() -
getVersion
public int getVersion() -
supportsVersion
public boolean supportsVersion(int ver) -
toByteArray
-
visitInsn
public void visitInsn(int opcode) - Overrides:
visitInsnin classorg.objectweb.asm.MethodVisitor
-
visitVarInsn
public void visitVarInsn(int opcode, int var) - Overrides:
visitVarInsnin classorg.objectweb.asm.MethodVisitor
-
visitJumpInsn
public void visitJumpInsn(int opcode, org.objectweb.asm.Label lbl) - Overrides:
visitJumpInsnin classorg.objectweb.asm.MethodVisitor
-
visitLabel
public void visitLabel(org.objectweb.asm.Label lbl) - Overrides:
visitLabelin classorg.objectweb.asm.MethodVisitor
-
isUnreachable
public boolean isUnreachable() -
visitLineNumber
public void visitLineNumber(int line) -
visitFieldInsn
-
visitFieldInsn
-
visitMethodInsn
-
visitMethodInsn
-
visitMethodInsn
-
visitMethodInsn
-
visitMethodInsn
-
visitMethodInsn
-
visitTypeInsn
-
visitCheckCast
-
visitNewArray
-
visitVMX
public void visitVMX() -
visitLoad
-
visitLoad
public void visitLoad(int index, int typeId) -
visitStore
-
visitReturn
public void visitReturn(int typeId) -
visitNull
public void visitNull(int typeId) -
visitPop
public void visitPop(int typeId) -
visitALoad
public void visitALoad(int typeId) -
visitAStore
public void visitAStore(int typeId) -
visitDup
public void visitDup(int typeId) -
visitDupX1
public void visitDupX1(int typeId) -
visitDupX2
public void visitDupX2(int typeId) -
visitSwap
public void visitSwap(int second, int top) -
visitVM2T
public void visitVM2T(int typeId) -
visitClass2Type
public void visitClass2Type() -
visiticonst
public void visiticonst(int value) -
visitlconst
public void visitlconst(long value) -
visitfconst
public void visitfconst(float value) -
visitdconst
public void visitdconst(double value) -
visitaconst
-
write
- Throws:
IOException
-