Lines Matching refs:reg
31 linux_scratch_loc (struct cursor *c, unw_regnum_t reg, uint8_t *nat_bitnr) in linux_scratch_loc() argument
40 switch (reg) in linux_scratch_loc()
46 *nat_bitnr = (reg - UNW_IA64_NAT); in linux_scratch_loc()
52 addr += LINUX_SC_GR_OFF + 8 * (reg - UNW_IA64_GR); in linux_scratch_loc()
56 addr += LINUX_SC_FR_OFF + 16 * (reg - UNW_IA64_FR); in linux_scratch_loc()
78 addr += LINUX_SC_FR_OFF + 16 * (reg - UNW_IA64_FR); in linux_scratch_loc()
90 if (unw_is_fpreg (reg)) in linux_scratch_loc()
91 return IA64_FPREG_LOC (c, reg); in linux_scratch_loc()
93 return IA64_REG_LOC (c, reg); in linux_scratch_loc()
101 if ((unsigned) (reg - UNW_IA64_NAT) < 128) in linux_scratch_loc()
104 reg -= (UNW_IA64_NAT - UNW_IA64_GR); in linux_scratch_loc()
108 switch (reg) in linux_scratch_loc()
111 addr += LINUX_PT_B6_OFF + 8 * (reg - (UNW_IA64_BR + 6)); in linux_scratch_loc()
118 addr += LINUX_PT_R8_OFF + 8 * (reg - (UNW_IA64_GR + 8)); in linux_scratch_loc()
149 addr += LINUX_PT_R16_OFF + 8 * (reg - (UNW_IA64_GR + 16)); in linux_scratch_loc()
155 addr += LINUX_PT_F6_OFF + 16 * (reg - (UNW_IA64_FR + 6)); in linux_scratch_loc()
159 if (unw_is_fpreg (reg)) in linux_scratch_loc()
160 return IA64_FPREG_LOC (c, reg); in linux_scratch_loc()
162 return IA64_REG_LOC (c, reg); in linux_scratch_loc()
167 switch (reg) in linux_scratch_loc()
179 addr += LINUX_OLD_PT_R2_OFF + 8 * (reg - (UNW_IA64_GR + 2)); in linux_scratch_loc()
183 addr += LINUX_OLD_PT_R8_OFF + 8 * (reg - (UNW_IA64_GR + 8)); in linux_scratch_loc()
187 addr += LINUX_OLD_PT_R16_OFF + 8 * (reg - (UNW_IA64_GR + 16)); in linux_scratch_loc()
191 addr += LINUX_OLD_PT_F6_OFF + 16 * (reg - (UNW_IA64_FR + 6)); in linux_scratch_loc()
202 if (unw_is_fpreg (reg)) in linux_scratch_loc()
203 return IA64_FPREG_LOC (c, reg); in linux_scratch_loc()
205 return IA64_REG_LOC (c, reg); in linux_scratch_loc()
223 hpux_scratch_loc (struct cursor *c, unw_regnum_t reg, uint8_t *nat_bitnr) in hpux_scratch_loc() argument
226 return IA64_LOC_UC_REG (reg, c->sigcontext_addr); in hpux_scratch_loc()
233 ia64_scratch_loc (struct cursor *c, unw_regnum_t reg, uint8_t *nat_bitnr) in ia64_scratch_loc() argument
238 return linux_scratch_loc (c, reg, nat_bitnr); in ia64_scratch_loc()
240 return hpux_scratch_loc (c, reg, nat_bitnr); in ia64_scratch_loc()
245 return IA64_REG_LOC (c, reg); in ia64_scratch_loc()
360 tdep_access_reg (struct cursor *c, unw_regnum_t reg, unw_word_t *valp, in tdep_access_reg() argument
368 switch (reg) in tdep_access_reg()
399 loc = c->loc[IA64_REG_R4 + (reg - (UNW_IA64_GR + 4))]; in tdep_access_reg()
403 loc = c->loc[IA64_REG_NAT4 + (reg - (UNW_IA64_NAT + 4))]; in tdep_access_reg()
404 reg_loc = c->loc[IA64_REG_R4 + (reg - (UNW_IA64_NAT + 4))]; in tdep_access_reg()
405 nat_bitnr = c->nat_bitnr[reg - (UNW_IA64_NAT + 4)]; in tdep_access_reg()
441 reg = rotate_gr (c, reg - UNW_IA64_GR); in tdep_access_reg()
442 if (reg < 0) in tdep_access_reg()
444 ret = ia64_get_stacked (c, reg, &loc, NULL); in tdep_access_reg()
450 reg = rotate_gr (c, reg - UNW_IA64_NAT); in tdep_access_reg()
451 if (reg < 0) in tdep_access_reg()
453 ret = ia64_get_stacked (c, reg, &loc, &nat_loc); in tdep_access_reg()
492 loc = ia64_scratch_loc (c, reg, &nat_bitnr); in tdep_access_reg()
493 if (IA64_IS_NULL_LOC (loc) && reg == UNW_IA64_NAT + 1) in tdep_access_reg()
508 mask = 1 << (reg - (UNW_IA64_GR + 15)); in tdep_access_reg()
511 c->eh_args[reg - (UNW_IA64_GR + 15)] = *valp; in tdep_access_reg()
517 *valp = c->eh_args[reg - (UNW_IA64_GR + 15)]; in tdep_access_reg()
521 loc = ia64_scratch_loc (c, reg, NULL); in tdep_access_reg()
535 loc = ia64_scratch_loc (c, reg, NULL); in tdep_access_reg()
536 if (IA64_IS_NULL_LOC (loc) && reg == UNW_IA64_GR + 1) in tdep_access_reg()
551 Debug (1, "bad register number %d\n", reg); in tdep_access_reg()
562 tdep_access_fpreg (struct cursor *c, int reg, unw_fpreg_t *valp, in tdep_access_fpreg() argument
567 switch (reg) in tdep_access_fpreg()
591 loc = c->loc[IA64_REG_F16 + (reg - (UNW_IA64_FR + 16))]; in tdep_access_fpreg()
595 loc = ia64_scratch_loc (c, reg, NULL); in tdep_access_fpreg()
599 reg = rotate_fr (c, reg - UNW_IA64_FR) + UNW_IA64_FR; in tdep_access_fpreg()
600 loc = ia64_scratch_loc (c, reg, NULL); in tdep_access_fpreg()
604 Debug (1, "bad register number %d\n", reg); in tdep_access_fpreg()