private static byte[] getUnsignedValueArray(byte[] srcBytes, int byteLength) {
		if (srcBytes.length == byteLength) {
			return srcBytes;
		}
		byte[] result = new byte[byteLength];
		int srcStartIndex = Math.max(0, srcBytes.length - byteLength); // discard excessive most-significant bytes
		int copyCount = Math.min(byteLength, srcBytes.length); // limit copy to requested number of bytes
		int destStartIndex = byteLength - copyCount; // adjust if too few bytes provided
		System.arraycopy(srcBytes, srcStartIndex, result, destStartIndex, copyCount);
		return result;
	}
Generate an unsigned value array from variable length srcBytes extending or truncating
bytes as needed to ensure a returned length of byteLength.  The MSB is located
at byte index 0, therefore adjustments may be needed to ensure that the LSB retains
its position in the least-significant byte.  A short srcBytes array will result in 
zero-filled most-significant bytes within the result.
@param srcBytes unsigned source value array
@param byteLength desired result value length in bytes
@return a value byte array of the specified byteLength
Ghidra/Processors/PowerPC/src/main/java/ghidra/program/emulation/PPCEmulateInstructionStateModifier.java