This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [RFC] Add support for PPC Altivec registers in gcore


Carlos Eduardo Seo wrote:

> Ulrich Weigand wrote:
> >
> > Carlos Eduardo Seo <cseo@linux.vnet.ibm.com> wrote on 11/06/2007
> > 02:42:43 PM:
> >
> > > I was taking a look at gdbarch.sh. Where's the "right" place to put
> > > the register list?
> >
> > In "function_list".   If you want to add a new data symbol, you'll
> > need type "v".  Best place is probably after regset_from_core_section.
> Do you think it's better to initialize this new structure with the
> registers names in gdbarch.c, or have it initialized in each
> arch-tdep.c file with the supported registers for that arch?

Maybe there is some misunderstanding: I was not talking about a list
of *register names*, rather a set of core file *section names*.

I'd suggest to define a data structure along the lines of:

struct core_regset_section
{
  const char *name;
  int len;
};

and then define arrays of those in the -tdep.c files, like:

static struct core_regset_section ppc_regset_sections[] =
{
  { ".reg", ... },
  { ".reg2", ... },
  { ".reg-vmx", ... },
  { NULL, 0 }
};


In gdbarch.sh, you'd then add an entry like:
v:struct core_regset_section *:core_regset_sections

which would generate functions
 gdbarch_core_regset_sections   and
 gdbarch_set_core_regset_sections


In the -tdep.c file, you'd now be able to install the array
defined above:

  gdbarch_set_core_regset_sections (gdbarch, ppc_regset_sections);

and in linux-nat.c, you'd be able to call gdbarch_core_regset_sections
to get at that list.

For platforms that do not override that gdbarch routine, you can
fall back to a default along the lines of

struct default_regset_sections[] = 
{
  { ".reg", sizeof (gdb_gregset_t) },
  { ".reg2", sizeof (gdb_fpregset_t) },
  { NULL, 0 }
};

Does this make sense?

Bye,
Ulrich

-- 
  Dr. Ulrich Weigand
  GNU Toolchain for Linux on System z and Cell BE
  Ulrich.Weigand@de.ibm.com


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]