Package ghidra.pcode.utils
Class Utils
java.lang.Object
ghidra.pcode.utils.Utils
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic byte[]bigIntegerToBytes(BigInteger val, int size, boolean bigEndian) static longbyte_swap(long val, int size) Swap the least-significant bytes of the given valuestatic BigIntegerbytesToBigInteger(byte[] byteBuf, int size, boolean bigEndian, boolean signed) static longbytesToLong(byte[] byteBuf, int size, boolean bigEndian) static BigIntegercalc_bigmask(int size) static longcalc_mask(int size) static BigIntegerconvertToSignedValue(BigInteger val, int byteSize) static BigIntegerconvertToUnsignedValue(BigInteger val, int byteSize) static byte[]longToBytes(long val, int size, boolean bigEndian) static longsign_extend(long in, int sizein, int sizeout) static booleansignbit_negative(long val, int size) Returns true if signbit is set (negative).static longuintb_negate(long in, int size) static longzzz_sign_extend(long val, int bit) static longzzz_zero_extend(long val, int bit)
-
Field Details
-
endl
-
-
Constructor Details
-
Utils
public Utils()
-
-
Method Details
-
convertToSignedValue
-
convertToUnsignedValue
-
calc_mask
public static long calc_mask(int size) -
calc_bigmask
-
signbit_negative
public static boolean signbit_negative(long val, int size) Returns true if signbit is set (negative).- Parameters:
val- the raw value as a longsize- the actual size (in bytes) of the value- Returns:
- true if signbit is set (negative)
-
uintb_negate
public static long uintb_negate(long in, int size) -
sign_extend
public static long sign_extend(long in, int sizein, int sizeout) -
zzz_sign_extend
public static long zzz_sign_extend(long val, int bit) -
zzz_zero_extend
public static long zzz_zero_extend(long val, int bit) -
byte_swap
public static long byte_swap(long val, int size) Swap the least-significant bytes of the given valueThe size must be less than 8, as that is the largest possible size of the given value. If size is larger than 8, there may be undefined behavior, e.g., bytes getting truncated.
- Parameters:
val- the value whose bytes to swapsize- the number of least-signifcant bytes to swap- Returns:
- the value with the swapped bytes
-
bytesToLong
public static long bytesToLong(byte[] byteBuf, int size, boolean bigEndian) -
longToBytes
public static byte[] longToBytes(long val, int size, boolean bigEndian) -
bytesToBigInteger
public static BigInteger bytesToBigInteger(byte[] byteBuf, int size, boolean bigEndian, boolean signed) -
bigIntegerToBytes
-