internal override TargetBlob ReadMemory(TargetMemoryAccess target, int size)
{
if (!is_valid)
throw new LocationInvalidException ();
if (HasAddress)
return base.ReadMemory (target, size);
// If this is a valuetype, the register hold the whole data.
long contents = address.Address;
byte[] buffer;
if (size == 1)
buffer = BitConverter.GetBytes ((byte) contents);
else if (size == 2)
buffer = BitConverter.GetBytes ((short) contents);
else if (size == 4)
buffer = BitConverter.GetBytes ((int) contents);
else if (size == 8)
buffer = BitConverter.GetBytes (contents);
else
throw new ArgumentException ();
return new TargetBlob (buffer, target.TargetMemoryInfo);
}