Interface LocalVarGen<V extends JitVarnodeVar>

Type Parameters:
V - the class of p-code variable node in the use-def graph
All Superinterfaces:
ValGen<V>, VarGen<V>
All Known Implementing Classes:
InputVarGen, LocalOutVarGen

public interface LocalVarGen<V extends JitVarnodeVar> extends VarGen<V>
The generator for local variable access.

These variables are presumed to be allocated as JVM locals. The generator emits iload and istore and or depending on the assigned type.

  • Method Details

    • generateValInitCode

      default void generateValInitCode(JitCodeGenerator gen, V v, org.objectweb.asm.MethodVisitor iv)
      Description copied from interface: ValGen
      Prepare any class-level items required to use this variable

      For example, if this represents a direct memory variable, then this can prepare a reference to the portion of the state involved, allowing it to access it readily.

      Specified by:
      generateValInitCode in interface ValGen<V extends JitVarnodeVar>
      Parameters:
      gen - the code generator
      v - the value
      iv - the constructor visitor
    • generateValReadCode

      default JitType generateValReadCode(JitCodeGenerator gen, V v, JitTypeBehavior typeReq, org.objectweb.asm.MethodVisitor rv)
      Description copied from interface: ValGen
      Read the value onto the stack
      Specified by:
      generateValReadCode in interface ValGen<V extends JitVarnodeVar>
      Parameters:
      gen - the code generator
      v - the value to read
      typeReq - the required type of the value
      rv - the visitor for the run method
      Returns:
      the actual p-code type (which determines the JVM type) of the value on the stack