Interface InstanceFieldReq<T extends Types.BNonVoid>

Type Parameters:
T - the JVM type of the field
All Superinterfaces:
FieldReq<T>
All Known Implementing Classes:
FieldForArrDirect, FieldForExitSlot, FieldForSpaceIndirect, FieldForUserop

public interface InstanceFieldReq<T extends Types.BNonVoid> extends FieldReq<T>
An instance field request initialized in the class constructor
  • Method Details

    • genInit

      <THIS extends JitCompiledPassage, N extends Emitter.Next> Emitter<N> genInit(Emitter<N> em, Local<Types.TRef<THIS>> localThis, JitCodeGenerator<THIS> gen, org.objectweb.asm.ClassVisitor cv)
      Emit the field declaration and its initialization bytecode

      The declaration is emitted into the class definition, and the initialization code is emitted into the class constructor.

      Type Parameters:
      THIS - the type of the compiled 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
      cv - the visitor for the class definition
      Returns:
      the emitter typed with the incoming stack
    • genLoad

      <THIS extends JitCompiledPassage, N extends Emitter.Next> Emitter<Emitter.Ent<N,T>> genLoad(Emitter<N> em, Local<Types.TRef<THIS>> localThis, JitCodeGenerator<THIS> gen)
      Emit code to load the field onto the JVM stack
      Type Parameters:
      THIS - the type of the compiled 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
      Returns:
      the emitter typed with the resulting stack, i.e., having pushed the value