aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/ChangeLog15
-rw-r--r--gdb/aix-thread.c10
-rw-r--r--gdb/fbsd-nat.c2
-rw-r--r--gdb/gnu-v3-abi.c12
-rw-r--r--gdb/shnbsd-tdep.c11
-rw-r--r--gdb/xstormy16-tdep.c2
6 files changed, 33 insertions, 19 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 3e169d0..8049d36 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,20 @@
2007-11-07 Markus Deuling <deuling@de.ibm.com>
+ * shnbsd-tdep.c (shnbsd_supply_gregset, shnbsd_collect_gregset): Use
+ get_regcache_arch to get at the current architecture by regcache.
+ * xstormy16-tdep.c (xstormy16_frame_prev_register): Use get_frame_arch
+ to get at the current architecture by frame_info.
+ * fbsd-nat.c (fbsd_make_corefile_notes): Use get_regcache_arch to get
+ at the current architecture by regcache.
+ * gnu-v3-abi.c (gnuv3_skip_trampoline): Use get_frame_arch to get at
+ the current architecture by frame_info.
+ (build_gdb_vtable_type): Replace current_gdbarch by gdbarch.
+ * aix-thread.c (special_register_p): Add gdbarch as parameter.
+ (fetch_regs_kernel_thread, store_regs_kernel_thread): Add gdbarch to
+ caller of special_register_p.
+
+2007-11-07 Markus Deuling <deuling@de.ibm.com>
+
* infcall.c (call_function_by_hand): Use get_frame_arch to get at the
current architecture by frame_info.
diff --git a/gdb/aix-thread.c b/gdb/aix-thread.c
index a941ea7..794e7db 100644
--- a/gdb/aix-thread.c
+++ b/gdb/aix-thread.c
@@ -1060,11 +1060,11 @@ supply_fprs (struct regcache *regcache, double *vals)
/* Predicate to test whether given register number is a "special" register. */
static int
-special_register_p (int regno)
+special_register_p (struct gdbarch *gdbarch, int regno)
{
- struct gdbarch_tdep *tdep = gdbarch_tdep (current_gdbarch);
+ struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
- return regno == gdbarch_pc_regnum (current_gdbarch)
+ return regno == gdbarch_pc_regnum (gdbarch)
|| regno == tdep->ppc_ps_regnum
|| regno == tdep->ppc_cr_regnum
|| regno == tdep->ppc_lr_regnum
@@ -1237,7 +1237,7 @@ fetch_regs_kernel_thread (struct regcache *regcache, int regno,
/* Special-purpose registers. */
- if (regno == -1 || special_register_p (regno))
+ if (regno == -1 || special_register_p (gdbarch, regno))
{
if (arch64)
{
@@ -1554,7 +1554,7 @@ store_regs_kernel_thread (const struct regcache *regcache, int regno,
/* Special-purpose registers. */
- if (regno == -1 || special_register_p (regno))
+ if (regno == -1 || special_register_p (gdbarch, regno))
{
if (arch64)
{
diff --git a/gdb/fbsd-nat.c b/gdb/fbsd-nat.c
index 75775ec..2caf9bb 100644
--- a/gdb/fbsd-nat.c
+++ b/gdb/fbsd-nat.c
@@ -143,8 +143,8 @@ fbsd_find_memory_regions (int (*func) (CORE_ADDR, unsigned long,
char *
fbsd_make_corefile_notes (bfd *obfd, int *note_size)
{
- struct gdbarch *gdbarch = current_gdbarch;
const struct regcache *regcache = get_current_regcache ();
+ struct gdbarch *gdbarch = get_regcache_arch (regcache);
gregset_t gregs;
fpregset_t fpregs;
char *note_data = NULL;
diff --git a/gdb/gnu-v3-abi.c b/gdb/gnu-v3-abi.c
index c3e07a1..a76db90 100644
--- a/gdb/gnu-v3-abi.c
+++ b/gdb/gnu-v3-abi.c
@@ -98,9 +98,7 @@ enum {
described above, laid out appropriately for ARCH.
We use this function as the gdbarch per-architecture data
- initialization function. We assume that the gdbarch framework
- calls the per-architecture data initialization functions after it
- sets current_gdbarch to the new architecture. */
+ initialization function. */
static void *
build_gdb_vtable_type (struct gdbarch *arch)
{
@@ -116,7 +114,7 @@ build_gdb_vtable_type (struct gdbarch *arch)
/* ARCH can't give us the true ptrdiff_t type, so we guess. */
struct type *ptrdiff_type
= init_type (TYPE_CODE_INT,
- gdbarch_ptr_bit (current_gdbarch) / TARGET_CHAR_BIT, 0,
+ gdbarch_ptr_bit (arch) / TARGET_CHAR_BIT, 0,
"ptrdiff_t", 0);
/* We assume no padding is necessary, since GDB doesn't know
@@ -680,12 +678,12 @@ static CORE_ADDR
gnuv3_skip_trampoline (struct frame_info *frame, CORE_ADDR stop_pc)
{
CORE_ADDR real_stop_pc, method_stop_pc;
+ struct gdbarch *gdbarch = get_frame_arch (frame);
struct minimal_symbol *thunk_sym, *fn_sym;
struct obj_section *section;
char *thunk_name, *fn_name;
- real_stop_pc = gdbarch_skip_trampoline_code
- (current_gdbarch, frame, stop_pc);
+ real_stop_pc = gdbarch_skip_trampoline_code (gdbarch, frame, stop_pc);
if (real_stop_pc == 0)
real_stop_pc = stop_pc;
@@ -709,7 +707,7 @@ gnuv3_skip_trampoline (struct frame_info *frame, CORE_ADDR stop_pc)
method_stop_pc = SYMBOL_VALUE_ADDRESS (fn_sym);
real_stop_pc = gdbarch_skip_trampoline_code
- (current_gdbarch, frame, method_stop_pc);
+ (gdbarch, frame, method_stop_pc);
if (real_stop_pc == 0)
real_stop_pc = method_stop_pc;
diff --git a/gdb/shnbsd-tdep.c b/gdb/shnbsd-tdep.c
index 8fbb950..d0be64b 100644
--- a/gdb/shnbsd-tdep.c
+++ b/gdb/shnbsd-tdep.c
@@ -67,14 +67,14 @@ shnbsd_supply_gregset (const struct regset *regset,
struct regcache *regcache,
int regnum, const void *gregs, size_t len)
{
+ struct gdbarch *gdbarch = get_regcache_arch (regcache);
const gdb_byte *regs = gregs;
int i;
gdb_assert (len >= SHNBSD_SIZEOF_GREGS);
- if (regnum == gdbarch_pc_regnum (current_gdbarch) || regnum == -1)
- regcache_raw_supply (regcache,
- gdbarch_pc_regnum (current_gdbarch),
+ if (regnum == gdbarch_pc_regnum (gdbarch) || regnum == -1)
+ regcache_raw_supply (regcache, gdbarch_pc_regnum (gdbarch),
regs + (0 * 4));
if (regnum == SR_REGNUM || regnum == -1)
@@ -106,13 +106,14 @@ shnbsd_collect_gregset (const struct regset *regset,
const struct regcache *regcache,
int regnum, void *gregs, size_t len)
{
+ struct gdbarch *gdbarch = get_regcache_arch (regcache);
gdb_byte *regs = gregs;
int i;
gdb_assert (len >= SHNBSD_SIZEOF_GREGS);
- if (regnum == gdbarch_pc_regnum (current_gdbarch) || regnum == -1)
- regcache_raw_collect (regcache, gdbarch_pc_regnum (current_gdbarch),
+ if (regnum == gdbarch_pc_regnum (gdbarch) || regnum == -1)
+ regcache_raw_collect (regcache, gdbarch_pc_regnum (gdbarch),
regs + (0 * 4));
if (regnum == SR_REGNUM || regnum == -1)
diff --git a/gdb/xstormy16-tdep.c b/gdb/xstormy16-tdep.c
index 42d8546..21d9cc3 100644
--- a/gdb/xstormy16-tdep.c
+++ b/gdb/xstormy16-tdep.c
@@ -706,7 +706,7 @@ xstormy16_frame_prev_register (struct frame_info *next_frame,
{
/* Read the value in from memory. */
read_memory (*addrp, valuep,
- register_size (current_gdbarch, regnum));
+ register_size (get_frame_arch (next_frame), regnum));
}
return;
}