Interface LocalOutVarGen

All Superinterfaces:
LocalVarGen<JitLocalOutVar>, ValGen<JitLocalOutVar>, VarGen<JitLocalOutVar>
All Known Implementing Classes:
SubLocalOutVarGen, WholeLocalOutVarGen

public interface LocalOutVarGen extends LocalVarGen<JitLocalOutVar>
The generator for a local variable that is defined within the passage.
  • Method Details

    • genWriteFromStack

      default <THIS extends JitCompiledPassage, T extends Types.BPrim<?>, JT extends JitType.SimpleJitType<T, JT>, N1 extends Emitter.Next, N0 extends Emitter.Ent<N1, T>> Emitter<N1> genWriteFromStack(Emitter<N0> em, Local<Types.TRef<THIS>> localThis, JitCodeGenerator<THIS> gen, JitLocalOutVar v, JT type, Opnd.Ext ext, Scope scope)
      Description copied from interface: VarGen
      Write a value from a stack operand into the given variable
      Specified by:
      genWriteFromStack in interface VarGen<JitLocalOutVar>
      Type Parameters:
      THIS - the type of the generated class
      T - the JVM type of the stack operand
      JT - the p-code type of the stack operand
      N1 - the tail of the stack (...)
      N0 - ..., value
      Parameters:
      em - the emitter
      localThis - a handle to this
      gen - the code generator
      v - the variable to write
      type - the p-code type of the stack operand
      ext - the kind of extension to apply when adjusting from varnode size to JVM size
      scope - a scope for temporaries
      Returns:
      the emitter with ...
    • genWriteFromOpnd

      default <THIS extends JitCompiledPassage, N extends Emitter.Next> Emitter<N> genWriteFromOpnd(Emitter<N> em, Local<Types.TRef<THIS>> localThis, JitCodeGenerator<THIS> gen, JitLocalOutVar v, Opnd<JitType.MpIntJitType> opnd, Opnd.Ext ext, Scope scope)
      Description copied from interface: VarGen
      Write a value from a local operand into the given variable
      Specified by:
      genWriteFromOpnd in interface VarGen<JitLocalOutVar>
      Type Parameters:
      THIS - the type of the generated class
      N - the tail of the stack (...)
      Parameters:
      em - the emitter
      localThis - a handle to this
      gen - the code generator
      v - the variable to write
      opnd - the source operand
      ext - the kind of extension to apply when adjusting from varnode size to JVM size
      scope - a scope for temporaries
      Returns:
      the emitter with ...
    • genWriteFromArray

      default <THIS extends JitCompiledPassage, N1 extends Emitter.Next, N0 extends Emitter.Ent<N1, Types.TRef<int[]>>> Emitter<N1> genWriteFromArray(Emitter<N0> em, Local<Types.TRef<THIS>> localThis, JitCodeGenerator<THIS> gen, JitLocalOutVar v, JitType.MpIntJitType type, Opnd.Ext ext, Scope scope)
      Description copied from interface: VarGen
      Write a value from an array operand into the given variable
      Specified by:
      genWriteFromArray in interface VarGen<JitLocalOutVar>
      Type Parameters:
      THIS - the type of the generated class
      N1 - the tail of the stack (...)
      N0 - ..., arrayref
      Parameters:
      em - the emitter
      localThis - a handle to this
      gen - the code generator
      v - the variable to write
      type - the p-code type of the array operand
      ext - the kind of extension to apply when adjusting from varnode size to JVM size
      scope - a scope for temporaries
      Returns:
      the emitter with ...