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 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
-
Method Summary
Modifier and TypeMethodDescriptionstatic String
getDescriptor
(Method method) int
boolean
boolean
boolean
supportsVersion
(int ver) byte[]
toByteArray
(String source, CClass type) String[]
void
visitaconst
(Object value) void
visitALoad
(int typeId) void
visitAStore
(int typeId) void
visitCheckCast
(Type type) 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
visitLoad
(VMXState.Local local, Type type) void
visitMethodInsn
(int opcode, Method method) void
visitMethodInsn
(Method method) void
visitMethodInsn
(Type type, String name) void
visitMethodInsn
(Type type, String name, String descr) void
visitMethodInsn
(Class type, String name) void
visitMethodInsn
(Class type, String name, String descr) void
visitNewArray
(Type type) void
visitNull
(int typeId) void
visitPop
(int typeId) void
visitReturn
(int typeId) void
visitStore
(VMXState.Local local, Type type) void
visitSwap
(int second, int top) void
visitTypeInsn
(int opcode, Type type) void
visitVarInsn
(int opcode, int var) void
visitVM2T
(int typeId) void
visitVMX()
void
write
(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
-
-
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:
visitInsn
in classorg.objectweb.asm.MethodVisitor
-
visitVarInsn
public void visitVarInsn(int opcode, int var) - Overrides:
visitVarInsn
in classorg.objectweb.asm.MethodVisitor
-
visitJumpInsn
public void visitJumpInsn(int opcode, org.objectweb.asm.Label lbl) - Overrides:
visitJumpInsn
in classorg.objectweb.asm.MethodVisitor
-
visitLabel
public void visitLabel(org.objectweb.asm.Label lbl) - Overrides:
visitLabel
in 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
-