1
0
Fork 0
mirror of https://github.com/tobast/libunwind-eh_elf.git synced 2024-09-28 17:39:29 +02:00

(access_nat): Check for fp-location first and also do a direct get/put if

the NaT-location is a NaT-register.

(Logical change 1.183)
This commit is contained in:
hp.com!davidm 2004-03-19 02:38:39 +00:00
parent 94b71a1cd8
commit 43db353753

View file

@ -242,14 +242,6 @@ access_nat (struct cursor *c,
unw_fpreg_t tmp;
int ret;
if (IA64_IS_UC_LOC (reg_loc))
{
if (write)
return ia64_put (c, nat_loc, *valp);
else
return ia64_get (c, nat_loc, valp);
}
if (IA64_IS_FP_LOC (reg_loc))
{
/* NaT bit is saved as a NaTVal. This happens when a general
@ -295,6 +287,16 @@ access_nat (struct cursor *c,
return ret;
}
if ((IA64_IS_REG_LOC (nat_loc)
&& (unsigned) (IA64_GET_REG (nat_loc) - UNW_IA64_NAT) < 128)
|| IA64_IS_UC_LOC (reg_loc))
{
if (write)
return ia64_put (c, nat_loc, *valp);
else
return ia64_get (c, nat_loc, valp);
}
if (IA64_IS_NULL_LOC (nat_loc))
{
/* NaT bit is not saved. This happens if a general register is