Enum Class JitType.DoubleJitType

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

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

  • Method Details

    • values

      public static JitType.DoubleJitType[] 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.DoubleJitType 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.DoubleJitType 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
      Returns:
      the extended type
    • asInt

      public JitType.LongJitType 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