Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Daniel Jacobowitz <drow@false.org>
To: Nigel Stephens <nigel@mips.com>
Cc: gdb-patches@sourceware.org, Chris Dearman <chris@mips.com>,
		"Maciej W. Rozycki" <macro@linux-mips.org>
Subject: Re: MIPS: Handle the DSP registers
Date: Tue, 18 Dec 2007 15:15:00 -0000	[thread overview]
Message-ID: <20071218135623.GA6919@caradoc.them.org> (raw)
In-Reply-To: <4767CE18.3050307@mips.com>

On Tue, Dec 18, 2007 at 01:41:44PM +0000, Nigel Stephens wrote:
> Sounds like this mechanism could rapidly get unwieldy if there were many
> disjoint, optional register sets supported by an architecture -- would
> you need a different description for each possible permutation? For
> example with a bare-iron target you might want to omit the
> floating-point register descriptions for CPUs which don't have a h/w
> FPU, so then we've got Base, Base+FPU, Base+DSP, Base+FPU+DSP. Then
> double again for 32-bit vs 64-bit, and so on. Or have I missed something.

You have, but it's a very small thing.

The hand-written descriptions in the GDB source code serve three
purposes.  They are used for gdbserver (which could be made smarter);
they are used for GDB (but only to eliminate the build dependency on
expat); and they are used as canonical examples for stub writers.

There's at least two ways we could support a large set of combinations
in GDB.  One is to require expat, provide XML files at the feature
level, and generate the top level target description using strcat
(one of CodeSourcery's stubs does it this way).   The other is to
adjust the precompiling process, which currently generates a callable
C function per target description, to generate functions at the
feature level and call those from within GDB.  That's a bit nicer.

Since so far we only support MIPS with an attached FPU (due to change
somewhere in MTI's GDB patch collection, I think?) there's only four
descriptions, so no one's bothered to do that flexibility yet.  But
the framework is there when we need it :-)

gdbserver is not very bright; its register set is selected entirely at
compile time and the C parts know a bit about the layout of the XML
parts.  Eventually, it's going to grow multiple description support
just like GDB, I think.  I just haven't needed it yet.

-- 
Daniel Jacobowitz
CodeSourcery


  reply	other threads:[~2007-12-18 13:56 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-12-10 16:33 Maciej W. Rozycki
2007-12-18 13:42 ` Daniel Jacobowitz
2007-12-18 13:56   ` Nigel Stephens
2007-12-18 15:15     ` Daniel Jacobowitz [this message]
2007-12-18 16:06       ` Nigel Stephens
2008-03-19 17:07   ` Maciej W. Rozycki
2008-03-21 18:44     ` Daniel Jacobowitz
2008-03-26 16:59       ` Maciej W. Rozycki
2008-03-26 17:59         ` Daniel Jacobowitz
2008-03-27 17:13           ` Maciej W. Rozycki
2008-03-27 17:46             ` Daniel Jacobowitz
2008-03-28 17:16               ` Maciej W. Rozycki
2008-03-31 10:50                 ` Maciej W. Rozycki

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20071218135623.GA6919@caradoc.them.org \
    --to=drow@false.org \
    --cc=chris@mips.com \
    --cc=gdb-patches@sourceware.org \
    --cc=macro@linux-mips.org \
    --cc=nigel@mips.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox