Interface Opnd.MpToMpConv<FT extends Types.BPrim<?>,FLT extends JitType.SimpleJitType<FT,FLT>,FJT extends JitType.LeggedJitType<FT,FLT>,TT extends Types.BPrim<?>,TLT extends JitType.SimpleJitType<TT,TLT>,TJT extends JitType.LeggedJitType<TT,TLT>>

Type Parameters:
FT - the "from" JVM type for each mp leg
FLT - the "from" p-code type for each mp leg
FJT - the "from" p-code type
TT - the "to" JVM type for each mp leg
TLT - the "to" p-code type for each mp leg
TJT - the "to" p-code type
All Known Implementing Classes:
Opnd.MpIntToMpInt
Enclosing interface:
Opnd<T extends JitType>

public static interface Opnd.MpToMpConv<FT extends Types.BPrim<?>,FLT extends JitType.SimpleJitType<FT,FLT>,FJT extends JitType.LeggedJitType<FT,FLT>,TT extends Types.BPrim<?>,TLT extends JitType.SimpleJitType<TT,TLT>,TJT extends JitType.LeggedJitType<TT,TLT>>
An interface for converting between multi-precision operands
  • Method Details

    • convertOpndToOpnd

      <N extends Emitter.Next> Opnd.OpndEm<TJT,N> convertOpndToOpnd(Emitter<N> em, Opnd<FJT> from, TJT to, Opnd.Ext ext, Scope scope)
      Convert an operand in locals to another in locals

      NOTE: This may be accomplished in part be re-using legs from the source operand in the destination operand

      Type Parameters:
      N - the tail of the stack (...)
      Parameters:
      em - the emitter
      from - the source operand
      to - the destination p-code type
      ext - the kind of extension to apply
      scope - a scope for generated temporary variables
      Returns:
      the resulting operand and emitter with ...
    • convertOpndToArray

      <N extends Emitter.Next> Emitter<Emitter.Ent<N,Types.TRef<int[]>>> convertOpndToArray(Emitter<N> em, Opnd<FJT> from, TJT to, Opnd.Ext ext, Scope scope, int slack)
      Convert an operand in locals to an array
      Type Parameters:
      N - the tail of the stack (...)
      Parameters:
      em - the emitter
      from - the source operand
      to - the destination p-code type
      ext - the kind of extension to apply
      scope - a scope for generated temporary variables
      slack - the number of extra (more significant) elements to allocate in the array
      Returns:
      the emitter with ..., arrayref