Mirror of the gdb mailing list
 help / color / mirror / Atom feed
From: Jim Blandy <jimb@redhat.com>
To: Andrew Cagney <ac131313@redhat.com>
Cc: Ken Dyck <Ken.Dyck@dspfactory.com>, gdb@sources.redhat.com
Subject: Re: FW: Targeting dual Harvard architectures
Date: Wed, 29 Oct 2003 17:19:00 -0000	[thread overview]
Message-ID: <vt27k2om08p.fsf@zenia.home> (raw)
In-Reply-To: <3F9EA019.2030003@redhat.com>


Andrew Cagney <ac131313@redhat.com> writes:
> > "Ken Dyck" <Ken.Dyck@dspfactory.com> writes:
> >
> >> 1. Is it possible to modify gdb to support architectures with multiple
> >> memory spaces in a "user friendly" way (where "user friendly" is
> >> something like what David Taylor described in
> >> http://sources.redhat.com/ml/gdb/2001-02/msg00090.html)? So far my
> >> impression is yes.
> > Yes --- with the understanding that it's restricted to just distinct
> > code and data spaces at the moment --- you can say:
> >   x/i (@code char *) 0x1234
> >   x/i (@data char *) 0x1234
> > and it'll do the right thing, if you define the ADDRESS_TO_POINTER
> > and
> > POINTER_TO_ADDRESS methods appropriately.
> > (Hey, this isn't in the GDB manual anywhere!)
> > But you've actually got a case where this needs to be extended to
> > support an arbitrary set of architecture-defined spaces, which the
> > current code does not support.  If I recall correctly, this was
> > discussed when the current @code and @data support went in, but it was
> > left as a future extension, since we didn't know of any architectures
> > that actually wanted it.  Now we do.
> 
> Yep.  The original patch was integrated with the understanding that
> the hard-wired "code" and "data" namespaces would eventually be
> replaced with a generic address space naming mechanism (ex, 86 and
> @code @data @stack and @io).
> 
> For a broad idea of how it can be implemented, look at reggroups (and
> maint print register-groups).  It lets an architecture define an
> arbitrary number of register groupings.

Yeah, reggroups might be a nice model to imitate here.  They were very
straightforward to add to an unreleased port I was working on
recently --- not fussy at all.

The only thing I worry about is that, while reggroups exist mostly for
GDB's internal benefit (save/restore) and for user interface
(general/vector), the address spaces are a real part of the
architecture, so they have to model whatever freakyness the hardware
designers can come up with.

I was originally thinking, "Address spaces are mutually exclusive;
there's no way that attaching two address space qualifiers to a type
could be meaningful.  That's gotta be an error."  But when I think
about all the weird architectures out there, I'm really inclined to
just provide the expression syntax and space in 'struct type' to let
the architecture do *whatever it wants* with the address<->pointer
relationship, and have the architecture-independent code keep its
hands clean.  If there is some order to all this, let it come from the
architecture, rather than presuming it in the arch-independent code.


      reply	other threads:[~2003-10-29 17:19 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-10-27 13:13 Ken Dyck
2003-10-29  6:08 ` Jim Blandy
2003-10-29  6:16   ` Jim Blandy
2003-10-29  6:58   ` Eli Zaretskii
2003-10-29  8:21   ` Kevin Buettner
2003-10-29 15:44     ` Jim Blandy
2003-10-29 16:59   ` Andrew Cagney
2003-10-29 17:19     ` Jim Blandy [this message]

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=vt27k2om08p.fsf@zenia.home \
    --to=jimb@redhat.com \
    --cc=Ken.Dyck@dspfactory.com \
    --cc=ac131313@redhat.com \
    --cc=gdb@sources.redhat.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