1
0
Fork 0
mirror of https://github.com/tobast/libunwind-eh_elf.git synced 2024-11-26 17:17:39 +01:00

Auto merged

2005/05/17 14:14:23-07:00 hp.com!davidm
(tdep_access_reg): Access AR.EC via ec_loc instead of cfm_loc.

(Logical change 1.293)
This commit is contained in:
hp.com!davidm 2005-05-17 21:28:19 +00:00
parent 26fdb45d76
commit 8a1e0a2bcd

View file

@ -323,8 +323,8 @@ tdep_access_reg (struct cursor *c, unw_regnum_t reg, unw_word_t *valp,
int write) int write)
{ {
ia64_loc_t loc, reg_loc, nat_loc; ia64_loc_t loc, reg_loc, nat_loc;
unw_word_t nat, mask, val;
int ret, readonly = 0; int ret, readonly = 0;
unw_word_t nat, mask;
uint8_t nat_bitnr; uint8_t nat_bitnr;
switch (reg) switch (reg)
@ -418,15 +418,17 @@ tdep_access_reg (struct cursor *c, unw_regnum_t reg, unw_word_t *valp,
return update_nat (c, nat_loc, mask, valp, write); return update_nat (c, nat_loc, mask, valp, write);
case UNW_IA64_AR_EC: case UNW_IA64_AR_EC:
if ((ret = ia64_get (c, c->ec_loc, &val)) < 0)
return ret;
if (write) if (write)
{ {
c->cfm = ((c->cfm & ~((unw_word_t) 0x3f << 52)) val = ((val & ~((unw_word_t) 0x3f << 52)) | ((*valp & 0x3f) << 52));
| ((*valp & 0x3f) << 52)); return ia64_put (c, c->ec_loc, val);
return ia64_put (c, c->cfm_loc, c->cfm);
} }
else else
{ {
*valp = (c->cfm >> 52) & 0x3f; *valp = (val >> 52) & 0x3f;
return 0; return 0;
} }