Package ghidra.pcode.emu.jit.analysis
Record Class JitType.LongJitType
java.lang.Object
java.lang.Record
ghidra.pcode.emu.jit.analysis.JitType.LongJitType
- Record Components:
size- the size in bytes
- All Implemented Interfaces:
JitType,JitType.LeggedJitType<Types.TLong,,JitType.LongJitType> JitType.SimpleJitType<Types.TLong,JitType.LongJitType>
- Enclosing interface:
JitType
public static record JitType.LongJitType(int size)
extends Record
implements JitType.SimpleJitType<Types.TLong,JitType.LongJitType>
The p-code types for integers of size 5 through 8, i.e., that fit in a JVM long.
-
Nested Class Summary
Nested classes/interfaces inherited from interface ghidra.pcode.emu.jit.analysis.JitType
JitType.DoubleJitType, JitType.FloatJitType, JitType.IntJitType, JitType.LeggedJitType<T extends Types.BPrim<?>,LT extends JitType.SimpleJitType<T, LT>>, JitType.LongJitType, JitType.MpFloatJitType, JitType.MpIntJitType, JitType.SimpleJitType<T extends Types.BPrim<?>, JT extends JitType.SimpleJitType<T, JT>> -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final JitType.LongJitTypestatic final JitType.LongJitTypestatic final JitType.LongJitTypestatic final JitType.LongJitTypestatic final JitType.LongJitTypeint5: a 5-byte integerstatic final JitType.LongJitTypeint6: a 6-byte integerstatic final JitType.LongJitTypeint7: a 7-byte integerstatic final JitType.LongJitTypeint8: a 8-byte integer -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionasInt()Re-apply theintegerbehavior to this typebType()The JVM type of the variable that can represent a p-code variable of this typefinal 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.LongJitTypeforSize(int size) Get the type for an integer of the given size 5 through 8final inthashCode()Returns a hash code value for this object.Get the p-code type that describes the part of the variable in each legGet 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 typeintpref()The preference for this type.intsize()Returns the value of thesizerecord component.final StringtoString()Returns a string representation of this record class.Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface ghidra.pcode.emu.jit.analysis.JitType.LeggedJitType
castLegsLE
-
Field Details
-
I5
int5: a 5-byte integer -
I6
int6: a 6-byte integer -
I7
int7: a 7-byte integer -
I8
int8: a 8-byte integer -
I1
-
I2
-
I3
-
I4
-
-
Constructor Details
-
LongJitType
public LongJitType(int size) Compact constructor to check the size- Parameters:
size- the size in bytes
-
-
Method Details
-
forSize
Get the type for an integer of the given size 5 through 8- Parameters:
size- the size in bytes- Returns:
- the type
- Throws:
IllegalArgumentException- for any size not 5 through 8
-
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 -
bType
Description copied from interface:JitType.SimpleJitTypeThe JVM type of the variable that can represent a p-code variable of this type- Specified by:
bTypein interfaceJitType.SimpleJitType<Types.TLong,JitType.LongJitType> - Returns:
- the primitive type (not boxed)
-
ext
Description copied from interface:JitTypeExtend this p-code type to the p-code type that fills its entire host JVM type.This is useful, e.g., when multiplying two
int3values usingimulthat the result might be anint4and so may need additional conversion.- Specified by:
extin interfaceJitType- Specified by:
extin interfaceJitType.SimpleJitType<Types.TLong,JitType.LongJitType> - Returns:
- the extended type
-
asInt
Description copied from interface:JitType.SimpleJitTypeRe-apply theintegerbehavior to this typeThis may be slightly faster than
JitTypeBehavior.INTEGER.resolve(this), because each type can pick its int type directly, and integer types can just returnthis.- Specified by:
asIntin interfaceJitType.SimpleJitType<Types.TLong,JitType.LongJitType> - Returns:
- this type as an int
-
legTypesBE
Description copied from interface:JitTypeGet 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.- Specified by:
legTypesBEin interfaceJitType- Specified by:
legTypesBEin interfaceJitType.LeggedJitType<Types.TLong,JitType.LongJitType> - Returns:
- the list of types, each fitting in a JVM int, in big-endian order.
-
legTypesLE
Description copied from interface:JitTypeGet 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.- Specified by:
legTypesLEin interfaceJitType- Returns:
- the list of types, each fitting in a JVM int, in little-endian order.
-
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.
-