default long getSignedValue(byte[] b, int offset, int size) {
		long val = getValue(b, offset, size);

		int shiftBits = (8 /*sizeof(long)*/ - size) * 8;

		// this little bit of magic will sign-extend the value
		val = val << shiftBits;
		val = val >> shiftBits;
		return val;
	}
Get the <b>signed</b> value from the given byte array using the specified 
integer size, returned as a long.
<p>
Values with a size less than sizeof(long) will have their sign bit
extended.

@param b array containing bytes
@param size number of bytes (1 - 8) to use from array
@param offset offset into byte array for getting the long
@return signed value
@throws IndexOutOfBoundsException if byte array size is
less than offset+size or size is greater than 8 (sizeof long)
Ghidra/Framework/Generic/src/main/java/ghidra/util/DataConverter.java