Package ghidra.pcode.emu.jit.analysis

# Enum Class JitType.FloatJitType

java.lang.Object
java.lang.Enum<JitType.FloatJitType>
ghidra.pcode.emu.jit.analysis.JitType.FloatJitType

All Implemented Interfaces:
  `JitType`, `JitType.SimpleJitType`, `Serializable`, `Comparable<JitType.FloatJitType>`, `Constable`

Enclosing interface:
  `JitType`

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

- ## Nested Class Summary

  ## Nested classes/interfaces inherited from class java.lang.Enum

  `Enum.EnumDesc<E extends Enum<E>>`

  ## Nested classes/interfaces inherited from interface ghidra.pcode.emu.jit.analysis.JitType

  `JitType.DoubleJitType, JitType.FloatJitType, JitType.IntJitType, JitType.LongJitType, JitType.MpFloatJitType, JitType.MpIntJitType, JitType.SimpleJitType`

- ## Enum Constant Summary

  Enum Constants
  Enum Constant
  Description
  `F4`
  `float4`: a 4-byte float

- ## Method Summary

  Modifier and Type
  Method
  Description
  `JitType.IntJitType`
  `asInt()`
  Re-apply the `integer` behavior to this type
  `JitType.FloatJitType`
  `ext()`
  Extend this p-code type to the p-code type that fills its entire host JVM type.
  `Class<?>`
  `javaType()`
  The JVM type of the variable that can represent a p-code variable of this type
  `List<JitType.FloatJitType>`
  `legTypes()`
  Get the p-code type that describes the part of the variable in each leg
  `String`
  `nm()`
  Part of the name of a JVM local variable allocated for this type
  `int`
  `opcodeLoad()`
  The JVM opcode to load a local variable of this type onto the stack
  `int`
  `opcodeStore()`
  The JVM opcode to store a local variable of this type from the stack
  `int`
  `pref()`
  The preference for this type.
  `int`
  `size()`
  The size of this type
  `static JitType.FloatJitType`
  `valueOf(String name)`
  Returns the enum constant of this class with the specified name.
  `static JitType.FloatJitType[]`
  `values()`
  Returns an array containing the constants of this enum class, in the order they are declared.

  ### Methods inherited from class java.lang.Enum

  `clone, compareTo, describeConstable, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf`

  ### Methods inherited from class java.lang.Object

  `getClass, notify, notifyAll, wait, wait, wait`

- ## Enum Constant Details

  - ### F4

    public static final JitType.FloatJitType F4
    `float4`: a 4-byte float

- ## 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

  - ### javaType

    public Class<?> javaType()
    Description copied from interface: `JitType.SimpleJitType`
    The JVM type of the variable that can represent a p-code variable of this type
    Specified by:
      `javaType` in interface `JitType.SimpleJitType`
    Returns:
      the primitive class (not boxed)

  - ### opcodeLoad

    public int opcodeLoad()
    Description copied from interface: `JitType.SimpleJitType`
    The JVM opcode to load a local variable of this type onto the stack
    Specified by:
      `opcodeLoad` in interface `JitType.SimpleJitType`
    Returns:
      the opcode

  - ### opcodeStore

    public int opcodeStore()
    Description copied from interface: `JitType.SimpleJitType`
    The JVM opcode to store a local variable of this type from the stack
    Specified by:
      `opcodeStore` in interface `JitType.SimpleJitType`
    Returns:
      the opcode

  - ### 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`
    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`
    Returns:
      this type as an int

  - ### legTypes

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