Interface MpAccessGen

All Superinterfaces:
AccessGen<JitType.MpIntJitType>
All Known Implementing Classes:
MpIntAccessGen

public interface MpAccessGen extends AccessGen<JitType.MpIntJitType>
An access generator for a multi-precision integer variable
  • Method Details

    • genReadToOpnd

      <THIS extends JitCompiledPassage, N extends Emitter.Next> Opnd.OpndEm<JitType.MpIntJitType,N> genReadToOpnd(Emitter<N> em, Local<Types.TRef<THIS>> localThis, JitCodeGenerator<THIS> gen, Varnode vn, JitType.MpIntJitType type, Opnd.Ext ext, Scope scope)
      Emit bytecode to load the varnode's value into several locals.
      Type Parameters:
      THIS - the type of the generated passage
      N - the incoming stack
      Parameters:
      em - the emitter typed with the incoming stack
      localThis - a handle to the local holding the this reference
      gen - the code generator
      vn - the varnode
      type - desired the p-code type of the value
      ext - the kind of extension to apply
      scope - a scope for generating temporary local storage
      Returns:
      the operand containing the locals, and the emitter typed with the incoming stack
    • genReadToArray

      <THIS extends JitCompiledPassage, N extends Emitter.Next> Emitter<Emitter.Ent<N,Types.TRef<int[]>>> genReadToArray(Emitter<N> em, Local<Types.TRef<THIS>> localThis, JitCodeGenerator<THIS> gen, Varnode vn, JitType.MpIntJitType type, Opnd.Ext ext, Scope scope, int slack)
      Emit bytecode to load the varnode's value into an integer array in little-endian order, pushing its ref onto the JVM stack.
      Type Parameters:
      THIS - the type of the generated passage
      N - the incoming stack
      Parameters:
      em - the emitter typed with the incoming stack
      localThis - a handle to the local holding the this reference
      gen - the code generator
      vn - the varnode
      type - desired the p-code type of the value
      ext - the kind of extension to apply
      scope - a scope for generating temporary local storage
      slack - the number of additional, more significant, elements to allocate in the array
      Returns:
      the emitter typed with the resulting stack, i.e., having the ref pushed onto it
    • genWriteFromOpnd

      <THIS extends JitCompiledPassage, N extends Emitter.Next> Emitter<N> genWriteFromOpnd(Emitter<N> em, Local<Types.TRef<THIS>> localThis, JitCodeGenerator<THIS> gen, Opnd<JitType.MpIntJitType> opnd, Varnode vn)
      Emit bytecode to store a value into a variable from the JVM stack.
      Type Parameters:
      THIS - the type of the generated passage
      N - the incoming stack
      Parameters:
      em - the emitter typed with the incoming stack
      localThis - a handle to the local holding the this reference
      gen - the code generator
      opnd - the operand whose locals contain the value to be stored
      vn - the varnode
      Returns:
      the emitter typed with the incoming stack
    • genWriteFromArray

      <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, Varnode vn, Scope scope)
      Emit bytecode to store a varnode's value from an array of integer legs, in little endian order
      Type Parameters:
      THIS - the type of the generated passage
      N1 - the tail of the incoming stack
      N0 - the incoming stack having the array ref on top
      Parameters:
      em - the emitter typed with the incoming stack
      localThis - a handle to the local holding the this reference
      gen - the code generator
      vn - the varnode
      scope - a scope for generating temporary local storage
      Returns:
      the emitter typed with the resulting stack, i.e., having popped the array