Enum Class JitType.FloatJitType

java.lang.Object
java.lang.Enum<JitType.FloatJitType>
ghidra.pcode.emu.jit.analysis.JitType.FloatJitType
All Implemented Interfaces:
JitType, JitType.LeggedJitType<Types.TFloat,JitType.FloatJitType>, JitType.SimpleJitType<Types.TFloat,JitType.FloatJitType>, Serializable, Comparable<JitType.FloatJitType>, Constable
Enclosing interface:
JitType

public static enum JitType.FloatJitType extends Enum<JitType.FloatJitType> implements JitType.SimpleJitType<Types.TFloat,JitType.FloatJitType>
The p-code type for floating-point of size 4, i.e., that fits in a JVM float.
  • Enum Constant Details

  • Method Details

    • values

      public static JitType.FloatJitType[] values()
      Returns an array containing the constants of this enum class, in the order they are declared.
      Returns:
      an array containing the constants of this enum class, in the order they are declared
    • valueOf

      public static JitType.FloatJitType valueOf(String name)
      Returns the enum constant of this class with the specified name. The string must match exactly an identifier used to declare an enum constant in this class. (Extraneous whitespace characters are not permitted.)
      Parameters:
      name - the name of the enum constant to be returned.
      Returns:
      the enum constant with the specified name
      Throws:
      IllegalArgumentException - if this enum class has no constant with the specified name
      NullPointerException - if the argument is null
    • pref

      public int pref()
      Description copied from interface: JitType
      The preference for this type. Smaller is more preferred.
      Specified by:
      pref in interface JitType
      Returns:
      the preference
    • nm

      public String nm()
      Description copied from interface: JitType
      Part of the name of a JVM local variable allocated for this type
      Specified by:
      nm in interface JitType
      Returns:
      the "type" part of a JVM local's name
    • size

      public int size()
      Description copied from interface: JitType
      The size of this type
      Specified by:
      size in interface JitType
      Returns:
      the size in bytes
    • bType

      public Types.TFloat bType()
      Description copied from interface: JitType.SimpleJitType
      The JVM type of the variable that can represent a p-code variable of this type
      Specified by:
      bType in interface JitType.SimpleJitType<Types.TFloat,JitType.FloatJitType>
      Returns:
      the primitive type (not boxed)
    • ext

      public JitType.FloatJitType ext()
      Description copied from interface: JitType
      Extend this p-code type to the p-code type that fills its entire host JVM type.

      This is useful, e.g., when multiplying two int3 values using imul that the result might be an int4 and so may need additional conversion.

      Specified by:
      ext in interface JitType
      Specified by:
      ext in interface JitType.SimpleJitType<Types.TFloat,JitType.FloatJitType>
      Returns:
      the extended type
    • asInt

      public JitType.IntJitType asInt()
      Description copied from interface: JitType.SimpleJitType
      Re-apply the integer behavior to this type

      This may be slightly faster than JitTypeBehavior.INTEGER.resolve(this), because each type can pick its int type directly, and integer types can just return this.

      Specified by:
      asInt in interface JitType.SimpleJitType<Types.TFloat,JitType.FloatJitType>
      Returns:
      this type as an int
    • legTypesBE

      public List<JitType.FloatJitType> 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
      Specified by:
      legTypesBE in interface JitType.LeggedJitType<Types.TFloat,JitType.FloatJitType>
      Returns:
      the list of types, each fitting in a JVM int, in big-endian order.
    • legTypesLE

      public List<JitType.FloatJitType> legTypesLE()
      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:
      legTypesLE in interface JitType
      Returns:
      the list of types, each fitting in a JVM int, in little-endian order.