Class MethodHandler

java.lang.Object
org.objectweb.asm.MethodVisitor
dev.quantumfusion.hyphen.codegen.MethodHandler
All Implemented Interfaces:
AutoCloseable

public class MethodHandler extends org.objectweb.asm.MethodVisitor implements AutoCloseable
Our enhanced MethodVisitor with some helper functions for Hyphen Serializer Generation
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
     
     
     

    Fields inherited from class org.objectweb.asm.MethodVisitor

    api, mv
  • Constructor Summary

    Constructors
    Constructor
    Description
    MethodHandler​(org.objectweb.asm.ClassWriter cw, MethodInfo methodInfo, String self, Class<?> dataClass, Class<?> ioClass, boolean compactVars, boolean spark, boolean synthetic)
     
    MethodHandler​(org.objectweb.asm.MethodVisitor methodVisitor, String self, Class<?> dataClass, Class<?> ioClass, boolean instanceMethod)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    addVar​(String name, Class<?> type)
     
    addVar​(String name, Class<?> type, int createOp)
     
    void
    callInst​(int opcode, Class<?> owner, String name, Class<?> returnClass, Class<?>... parameters)
     
    void
     
    void
     
    org.objectweb.asm.Label
     
    void
    defineLabel​(org.objectweb.asm.Label label)
     
    void
    getIO​(Class<?> primitive)
     
    static String
    getParamName​(int id)
     
    getVar​(String name)
     
    void
    inc​(Variable var, int size)
     
    org.objectweb.asm.Label
    jump​(int op)
     
    void
    jump​(int op, org.objectweb.asm.Label label)
     
    void
     
    void
    op​(int... op)
     
    void
    parameterOp​(int op, int parameter)
     
    void
    putIO​(Class<?> primitive)
     
    void
     
    void
    typeOp​(int opcode, Class<?> type)
     
    void
    varOp​(int op, Variable var)
     
    void
    varOp​(int op, Variable... vars)
     
    void
    visitFieldInsn​(int opcode, Class<?> owner, String name, Class<?> descriptor)
     

    Methods inherited from class org.objectweb.asm.MethodVisitor

    visitAnnotableParameterCount, visitAnnotation, visitAnnotationDefault, visitAttribute, visitCode, visitEnd, visitFieldInsn, visitFrame, visitIincInsn, visitInsn, visitInsnAnnotation, visitIntInsn, visitInvokeDynamicInsn, visitJumpInsn, visitLabel, visitLdcInsn, visitLineNumber, visitLocalVariable, visitLocalVariableAnnotation, visitLookupSwitchInsn, visitMaxs, visitMethodInsn, visitMethodInsn, visitMultiANewArrayInsn, visitParameter, visitParameterAnnotation, visitTableSwitchInsn, visitTryCatchAnnotation, visitTryCatchBlock, visitTypeAnnotation, visitTypeInsn, visitVarInsn

    Methods inherited from class java.lang.Object

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

    • self

      public final String self
    • dataClass

      public final Class<?> dataClass
    • ioClass

      public final Class<?> ioClass
  • Constructor Details

    • MethodHandler

      public MethodHandler(org.objectweb.asm.MethodVisitor methodVisitor, String self, Class<?> dataClass, Class<?> ioClass, boolean instanceMethod)
    • MethodHandler

      public MethodHandler(org.objectweb.asm.ClassWriter cw, MethodInfo methodInfo, String self, Class<?> dataClass, Class<?> ioClass, boolean compactVars, boolean spark, boolean synthetic)
  • Method Details

    • typeOp

      public void typeOp(int opcode, Class<?> type)
    • visitFieldInsn

      public void visitFieldInsn(int opcode, Class<?> owner, String name, Class<?> descriptor)
    • callInst

      public void callInst(int opcode, Class<?> owner, String name, Class<?> returnClass, Class<?>... parameters)
    • callInst

      public void callInst(MethodInfo info)
    • op

      public void op(int... op)
    • parameterOp

      public void parameterOp(int op, int parameter)
    • varOp

      public void varOp(int op, Variable... vars)
    • varOp

      public void varOp(int op, Variable var)
    • loadIO

      public void loadIO()
    • getParamName

      public static String getParamName(int id)
    • throwException

      public void throwException(String error)
    • getIO

      public void getIO(Class<?> primitive)
    • putIO

      public void putIO(Class<?> primitive)
    • jump

      public org.objectweb.asm.Label jump(int op)
    • jump

      public void jump(int op, org.objectweb.asm.Label label)
    • defineLabel

      public void defineLabel(org.objectweb.asm.Label label)
    • defineLabel

      public org.objectweb.asm.Label defineLabel()
    • addVar

      public Variable addVar(String name, Class<?> type, int createOp)
    • addVar

      public Variable addVar(String name, Class<?> type)
    • getVar

      public Variable getVar(String name)
    • inc

      public void inc(Variable var, int size)
    • close

      public void close()
      Specified by:
      close in interface AutoCloseable