mirror of
https://github.com/tobast/libunwind-eh_elf.git
synced 2024-11-23 07:57:38 +01:00
Auto merged
2005/05/17 06:10:13-07:00 hp.com!davidm (tdep_access_reg): Don't rotate contents of UNW_IA64_PR. (Logical change 1.292)
This commit is contained in:
parent
e5426f4221
commit
a6ba57d556
1 changed files with 7 additions and 10 deletions
|
@ -323,8 +323,8 @@ tdep_access_reg (struct cursor *c, unw_regnum_t reg, unw_word_t *valp,
|
|||
int write)
|
||||
{
|
||||
ia64_loc_t loc, reg_loc, nat_loc;
|
||||
unw_word_t nat, mask, pr;
|
||||
int ret, readonly = 0;
|
||||
unw_word_t nat, mask;
|
||||
uint8_t nat_bitnr;
|
||||
|
||||
switch (reg)
|
||||
|
@ -385,20 +385,17 @@ tdep_access_reg (struct cursor *c, unw_regnum_t reg, unw_word_t *valp,
|
|||
break;
|
||||
|
||||
case UNW_IA64_PR:
|
||||
/*
|
||||
* Note: broad-side access to the predicates is NOT rotated
|
||||
* (i.e., it is done as if CFM.rrb.pr == 0.
|
||||
*/
|
||||
if (write)
|
||||
{
|
||||
c->pr = *valp; /* update the predicate cache */
|
||||
pr = pr_ltop (c, *valp);
|
||||
return ia64_put (c, c->loc[IA64_REG_PR], pr);
|
||||
return ia64_put (c, c->loc[IA64_REG_PR], *valp);
|
||||
}
|
||||
else
|
||||
{
|
||||
ret = ia64_get (c, c->loc[IA64_REG_PR], &pr);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
*valp = pr_ptol (c, pr);
|
||||
}
|
||||
return 0;
|
||||
return ia64_get (c, c->loc[IA64_REG_PR], valp);
|
||||
|
||||
case UNW_IA64_GR + 32 ... UNW_IA64_GR + 127: /* stacked reg */
|
||||
reg = rotate_gr (c, reg - UNW_IA64_GR);
|
||||
|
|
Loading…
Reference in a new issue