diff options
author | Ulrich Weigand <uweigand@de.ibm.com> | 2007-10-13 00:49:15 +0000 |
---|---|---|
committer | Ulrich Weigand <uweigand@de.ibm.com> | 2007-10-13 00:49:15 +0000 |
commit | 2685572f6e11fbd387d4c6a3317373e65f42e7ff (patch) | |
tree | e1000cffe3d63692de765a37962c2641d9491e20 /gdb/ia64-tdep.c | |
parent | e041f13d5ac555c7485633dcd8288ebb6a67bf53 (diff) | |
download | binutils-gdb-2685572f6e11fbd387d4c6a3317373e65f42e7ff.tar.gz |
* ia64-linux-nat.c (ia64_register_addr): Add gdbarch parameter,
replacing use of global current_gdbarch.
(ia64_cannot_fetch_register, ia64_cannot_store_register): Likewise.
(ia64_linux_fetch_register, ia64_linux_store_register): Update callers.
* ia64-tdep.c (SIGCONTEXT_REGISTER_ADDRESS): Remove macro.
(ia64_sigtramp_frame_init_saved_regs): Add next_frame parameter,
replace uses of SIGCONTEXT_REGISTER_ADDRESS.
(ia64_sigtramp_frame_cache): Update caller.
Diffstat (limited to 'gdb/ia64-tdep.c')
-rw-r--r-- | gdb/ia64-tdep.c | 38 |
1 files changed, 19 insertions, 19 deletions
diff --git a/gdb/ia64-tdep.c b/gdb/ia64-tdep.c index debee50851c..ea030a763ea 100644 --- a/gdb/ia64-tdep.c +++ b/gdb/ia64-tdep.c @@ -274,9 +274,6 @@ struct ia64_frame_cache }; -#define SIGCONTEXT_REGISTER_ADDRESS \ - (gdbarch_tdep (current_gdbarch)->sigcontext_register_address) - int ia64_register_reggroup_p (struct gdbarch *gdbarch, int regnum, struct reggroup *group) @@ -1909,41 +1906,44 @@ ia64_frame_sniffer (struct frame_info *next_frame) /* Signal trampolines. */ static void -ia64_sigtramp_frame_init_saved_regs (struct ia64_frame_cache *cache) +ia64_sigtramp_frame_init_saved_regs (struct frame_info *next_frame, + struct ia64_frame_cache *cache) { - if (SIGCONTEXT_REGISTER_ADDRESS) + struct gdbarch_tdep *tdep = gdbarch_tdep (get_frame_arch (next_frame)); + + if (tdep->sigcontext_register_address) { int regno; cache->saved_regs[IA64_VRAP_REGNUM] = - SIGCONTEXT_REGISTER_ADDRESS (cache->base, IA64_IP_REGNUM); + tdep->sigcontext_register_address (cache->base, IA64_IP_REGNUM); cache->saved_regs[IA64_CFM_REGNUM] = - SIGCONTEXT_REGISTER_ADDRESS (cache->base, IA64_CFM_REGNUM); + tdep->sigcontext_register_address (cache->base, IA64_CFM_REGNUM); cache->saved_regs[IA64_PSR_REGNUM] = - SIGCONTEXT_REGISTER_ADDRESS (cache->base, IA64_PSR_REGNUM); + tdep->sigcontext_register_address (cache->base, IA64_PSR_REGNUM); cache->saved_regs[IA64_BSP_REGNUM] = - SIGCONTEXT_REGISTER_ADDRESS (cache->base, IA64_BSP_REGNUM); + tdep->sigcontext_register_address (cache->base, IA64_BSP_REGNUM); cache->saved_regs[IA64_RNAT_REGNUM] = - SIGCONTEXT_REGISTER_ADDRESS (cache->base, IA64_RNAT_REGNUM); + tdep->sigcontext_register_address (cache->base, IA64_RNAT_REGNUM); cache->saved_regs[IA64_CCV_REGNUM] = - SIGCONTEXT_REGISTER_ADDRESS (cache->base, IA64_CCV_REGNUM); + tdep->sigcontext_register_address (cache->base, IA64_CCV_REGNUM); cache->saved_regs[IA64_UNAT_REGNUM] = - SIGCONTEXT_REGISTER_ADDRESS (cache->base, IA64_UNAT_REGNUM); + tdep->sigcontext_register_address (cache->base, IA64_UNAT_REGNUM); cache->saved_regs[IA64_FPSR_REGNUM] = - SIGCONTEXT_REGISTER_ADDRESS (cache->base, IA64_FPSR_REGNUM); + tdep->sigcontext_register_address (cache->base, IA64_FPSR_REGNUM); cache->saved_regs[IA64_PFS_REGNUM] = - SIGCONTEXT_REGISTER_ADDRESS (cache->base, IA64_PFS_REGNUM); + tdep->sigcontext_register_address (cache->base, IA64_PFS_REGNUM); cache->saved_regs[IA64_LC_REGNUM] = - SIGCONTEXT_REGISTER_ADDRESS (cache->base, IA64_LC_REGNUM); + tdep->sigcontext_register_address (cache->base, IA64_LC_REGNUM); for (regno = IA64_GR1_REGNUM; regno <= IA64_GR31_REGNUM; regno++) cache->saved_regs[regno] = - SIGCONTEXT_REGISTER_ADDRESS (cache->base, regno); + tdep->sigcontext_register_address (cache->base, regno); for (regno = IA64_BR0_REGNUM; regno <= IA64_BR7_REGNUM; regno++) cache->saved_regs[regno] = - SIGCONTEXT_REGISTER_ADDRESS (cache->base, regno); + tdep->sigcontext_register_address (cache->base, regno); for (regno = IA64_FR2_REGNUM; regno <= IA64_FR31_REGNUM; regno++) cache->saved_regs[regno] = - SIGCONTEXT_REGISTER_ADDRESS (cache->base, regno); + tdep->sigcontext_register_address (cache->base, regno); } } @@ -1972,7 +1972,7 @@ ia64_sigtramp_frame_cache (struct frame_info *next_frame, void **this_cache) cache->cfm = extract_unsigned_integer (buf, 8); cache->sof = cache->cfm & 0x7f; - ia64_sigtramp_frame_init_saved_regs (cache); + ia64_sigtramp_frame_init_saved_regs (next_frame, cache); *this_cache = cache; return cache; |