Module xl.compiler

Class BytecodeWriter

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

    Fields
    Modifier and Type
    Field
    Description
    static final String
     

    Fields inherited from class org.objectweb.asm.MethodVisitor

    api, mv

    Fields 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, V9
  • Constructor Summary

    Constructors
    Constructor
    Description
     
     
  • Method Summary

    Modifier and Type
    Method
    Description
    static String
     
    int
     
    boolean
     
    boolean
     
    boolean
    supportsVersion(int ver)
     
    byte[]
    toByteArray(String source, CClass type)
     
    toName(Type type)
     
    toNames(Type[] types)
     
    void
     
    void
    visitALoad(int typeId)
     
    void
    visitAStore(int typeId)
     
    void
     
    void
     
    void
    visitdconst(double value)
     
    void
    visitDup(int typeId)
     
    void
    visitDupX1(int typeId)
     
    void
    visitDupX2(int typeId)
     
    void
    visitfconst(float value)
     
    void
    visitFieldInsn(int opcode, Field field, AccessMethod access)
     
    void
    visitFieldInsn(int opcode, Class type, String name, String descr)
     
    void
    visiticonst(int value)
     
    void
    visitInsn(int opcode)
     
    void
    visitJumpInsn(int opcode, org.objectweb.asm.Label lbl)
     
    void
    visitLabel(org.objectweb.asm.Label lbl)
     
    void
    visitlconst(long value)
     
    void
    visitLineNumber(int line)
     
    void
    visitLoad(int index, int typeId)
     
    void
     
    void
    visitMethodInsn(int opcode, Method method)
     
    void
     
    void
     
    void
    visitMethodInsn(Type type, String name, String descr)
     
    void
     
    void
    visitMethodInsn(Class type, String name, String descr)
     
    void
     
    void
    visitNull(int typeId)
     
    void
    visitPop(int typeId)
     
    void
    visitReturn(int typeId)
     
    void
     
    void
    visitSwap(int second, int top)
     
    void
    visitTypeInsn(int opcode, Type type)
     
    void
    visitVarInsn(int opcode, int var)
     
    void
    visitVM2T(int typeId)
     
    void
     
    void
     

    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

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • AUTH_DESCR

      public static final String AUTH_DESCR
  • Constructor Details

  • Method Details

    • toName

      public String toName(Type type)
    • getDescriptor

      public static String getDescriptor(Method method)
    • toNames

      public String[] toNames(Type[] types)
    • isFPStrict

      public boolean isFPStrict()
    • getVersion

      public int getVersion()
    • supportsVersion

      public boolean supportsVersion(int ver)
    • toByteArray

      public byte[] toByteArray(String source, CClass type)
    • visitInsn

      public void visitInsn(int opcode)
      Overrides:
      visitInsn in class org.objectweb.asm.MethodVisitor
    • visitVarInsn

      public void visitVarInsn(int opcode, int var)
      Overrides:
      visitVarInsn in class org.objectweb.asm.MethodVisitor
    • visitJumpInsn

      public void visitJumpInsn(int opcode, org.objectweb.asm.Label lbl)
      Overrides:
      visitJumpInsn in class org.objectweb.asm.MethodVisitor
    • visitLabel

      public void visitLabel(org.objectweb.asm.Label lbl)
      Overrides:
      visitLabel in class org.objectweb.asm.MethodVisitor
    • isUnreachable

      public boolean isUnreachable()
    • visitLineNumber

      public void visitLineNumber(int line)
    • visitFieldInsn

      public void visitFieldInsn(int opcode, Field field, AccessMethod access)
    • visitFieldInsn

      public void visitFieldInsn(int opcode, Class type, String name, String descr)
    • visitMethodInsn

      public void visitMethodInsn(int opcode, Method method)
    • visitMethodInsn

      public void visitMethodInsn(Method method)
    • visitMethodInsn

      public void visitMethodInsn(Type type, String name)
    • visitMethodInsn

      public void visitMethodInsn(Class type, String name, String descr)
    • visitMethodInsn

      public void visitMethodInsn(Class type, String name)
    • visitMethodInsn

      public void visitMethodInsn(Type type, String name, String descr)
    • visitTypeInsn

      public void visitTypeInsn(int opcode, Type type)
    • visitCheckCast

      public void visitCheckCast(Type type)
    • visitNewArray

      public void visitNewArray(Type type)
    • visitVMX

      public void visitVMX()
    • visitLoad

      public void visitLoad(VMXState.Local local, Type type)
    • visitLoad

      public void visitLoad(int index, int typeId)
    • visitStore

      public void visitStore(VMXState.Local local, Type type)
    • 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

      public void visitaconst(Object value)
    • write

      public void write(CompilationUnitScope cs, FileSystem fs, Object root) throws IOException
      Throws:
      IOException