Interface JitType.LeggedJitType<T extends Types.BPrim<?>,LT extends JitType.SimpleJitType<T,LT>>

Type Parameters:
T - the JVM type of each leg
LT - the p-code type of each leg
All Superinterfaces:
JitType
All Known Subinterfaces:
JitType.SimpleJitType<T,JT>
All Known Implementing Classes:
JitType.DoubleJitType, JitType.FloatJitType, JitType.IntJitType, JitType.LongJitType, JitType.MpFloatJitType, JitType.MpIntJitType
Enclosing interface:
JitType

public static interface JitType.LeggedJitType<T extends Types.BPrim<?>,LT extends JitType.SimpleJitType<T,LT>> extends JitType
A type comprising of legs, each of simple type
  • Method Details

    • legTypesBE

      List<? extends LT> legTypesBE()
      Description copied from interface: JitType
      Get the p-code type that describes the part of the variable in each leg

      Each whole leg will have the type JitType.IntJitType.I4, and the partial leg, if applicable, will have its appropriate smaller integer type.

      Specified by:
      legTypesBE in interface JitType
      Returns:
      the list of types, each fitting in a JVM int, in big-endian order.
    • castLegsLE

      default List<SimpleOpnd<T,LT>> castLegsLE(Opnd<? extends JitType.LeggedJitType<?,?>> opnd)
      Cast the given operand's legs as having this type's leg type.

      This is (sadly) necessary because of the loss of type information in Opnd when it has a legged type.

      Parameters:
      opnd - the operand whose legs to cast
      Returns:
      the legs in little-endian order.