Package ghidra.pcode.emu.jit.analysis
Record Class JitType.MpIntJitType
java.lang.Object
java.lang.Record
ghidra.pcode.emu.jit.analysis.JitType.MpIntJitType
- Record Components:
size- the size in bytes
- All Implemented Interfaces:
JitType
- Enclosing interface:
JitType
WIP: The p-code types for integers of size 9 and greater.
-
Nested Class Summary
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 -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionfinal booleanIndicates whether some other object is "equal to" this one.ext()Extend this p-code type to the p-code type that fills its entire host JVM type.static JitType.MpIntJitTypeforSize(int size) Get the type for an integer of the given size 9 or greaterfinal inthashCode()Returns a hash code value for this object.intThe total number of JVM int variables ("legs") required to store the intintThe number of legs that are filledlegTypes()Get the p-code type that describes the part of the variable in each legnm()Part of the name of a JVM local variable allocated for this typeintThe number of bytes filled in the last leg, if partialintpref()The preference for this type.intsize()Returns the value of thesizerecord component.final StringtoString()Returns a string representation of this record class.
-
Constructor Details
-
MpIntJitType
public MpIntJitType(int size) Creates an instance of aMpIntJitTyperecord class.- Parameters:
size- the value for thesizerecord component
-
-
Method Details
-
forSize
Get the type for an integer of the given size 9 or greater- Parameters:
size- the size in bytes- Returns:
- the type
- Throws:
IllegalArgumentException- for any size 8 or less
-
pref
public int pref()Description copied from interface:JitTypeThe preference for this type. Smaller is more preferred. -
nm
Description copied from interface:JitTypePart of the name of a JVM local variable allocated for this type -
legsAlloc
public int legsAlloc()The total number of JVM int variables ("legs") required to store the int- Returns:
- the total number of legs
-
legsWhole
public int legsWhole()The number of legs that are filled- Returns:
- the number of whole legs
-
partialSize
public int partialSize()The number of bytes filled in the last leg, if partial- Returns:
- the number of bytes in the partial leg, or 0 if all legs are whole
-
legTypes
Get the p-code type that describes the part of the variable in each legEach whole leg will have the type
JitType.IntJitType.I4, and the partial leg, if applicable, will have its appropriate smaller integer type.- Returns:
- the list of types, each fitting in a JVM int.
-
ext
Description copied from interface:JitType -
toString
Returns a string representation of this record class. The representation contains the name of the class, followed by the name and value of each of the record components. -
hashCode
public final int hashCode()Returns a hash code value for this object. The value is derived from the hash code of each of the record components. -
equals
Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. All components in this record class are compared with '=='. -
size
public int size()Returns the value of thesizerecord component.
-