internal override void WriteAddress(TargetMemoryAccess target,
TargetAddress new_address)
{
if (!is_valid)
throw new LocationInvalidException ();
if (is_regoffset) {
TargetAddress the_addr;
if (is_byref)
the_addr = new TargetAddress (
target.AddressDomain, register.Value + regoffset);
else
the_addr = address;
target.WriteAddress (the_addr, new_address);
update (target);
} else {
register.WriteRegister (target, new_address.Address);
update (target);
}
}