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.
This commit is contained in:
parent
0b9dfe2bb3
commit
9970f04b03
6 changed files with 33 additions and 19 deletions
|
@ -1,3 +1,18 @@
|
|||
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
|
||||
|
|
|
@ -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)
|
||||
{
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue