Mirror of the gdb mailing list
 help / color / mirror / Atom feed
From: Andrew Cagney <ac131313@ges.redhat.com>
To: Jim Blandy <jimb@redhat.com>
Cc: gdb@sources.redhat.com
Subject: Re: WIP: Register doco
Date: Tue, 23 Jul 2002 17:34:00 -0000	[thread overview]
Message-ID: <3D3DF608.8010403@ges.redhat.com> (raw)
In-Reply-To: <np7kjm81tf.fsf@zwingli.cygnus.com>


>> I was talking generally.
>> 
>> However looking at specific manual set(1)
>> (http://developer.intel.com/design/pentium4/manuals), vol1 is the user
>> stuff; vol3 is the system stuff.  The GDB developer needs to look
>> beyond vol1 and and into vol3.  Vol1 8.1.10 Saving the x87 FPU's State
>> with the FXSAVE Instruction, for instance, just points the reader at
>> volume 3. In addition, the GDB developer ends up studying kernel
>> interfaces and too often (ulgh!) kernel sources.
> 
> 
> No, everything I cited was in volume 1, the user's manual set.  The
> diagrams explaining the underlying fixed registers and the rotating
> names for them are in the "user stuff" manual. 

Sorry, I'm lost here.

I was working my way through volume one and found, for some of the FP 
register stuff, it directed the reader to volume three.  Too completly 
understand the i387 FP stuff (for the P[34]) I need to [re-]read chunks 
from both the user and the system volumes.

Remember, my point was that the GDB developer needs to look beyond the 
user level documentation and on, into the system level documentation, 
and even kernel sources when designing GDB's register cache.  Even for 
the above case, that is true.

> I'm still trying to get a handle on your intent, though.  In a case
> like MIPS III (an ISA with 64-bit registers) running o32 (an ABI which
> only uses the lower 32 bits of each register), would you suggest that
> printing registers in the usual way should show the full 64 bits of
> the register, or only the lower 32 bits?

Sorry, I'm again lost.  I earlier wrote (note edits):

``No, ABI.  For instance mipsIII and o32.  The o32 ABI thinks registers 
have 32 bits yet the real register has 64 bits.  This gives two [cooked] 
views of the same [raw] register.  When o32 debug info indicates a value 
in two adjacent [cooked] registers, it is refering to 32 bit and not 64 
bit registers.''

I'm not discussing which of these should be printed since that is 
outside of the scope of this discussion.

> For the rest, all I'm saying is that the text you've written fails to
> draw the distinction you need to make.  The term "hardware registers"
> applies equally well to ST(0) and R0.  I've suggested a better way to
> make the distinction in the rego document, i.e., by giving examples
> showing how real architectures might use the distinction.  If you'd
> like me to do that, just let me know.

So "hardware" is as problematic as "physical"?  What you're telling me 
is that I should avoid all such terms, right?

>> > As a sanity check, assuming that SPARC register windows are analogous:
>> > the SPARC ISA spec talks about register windows immediately, as well.
>> > Figure 2 in the chapter on Registers shows "Three Overlapping Windows
>> > and the Eight Global Registers".  (For some reason, that makes me
>> > think of Goldilocks and the Three Bears.)
> 
>> 
>> Just FYI, an example involving the SPARC is on my things todo list for
>> frames.  It turns out that the OS for a register-window architecture
>> typically flushes all but the inner most window to memory before
>> transfering control to GDB.  Consequently the only raw registers that
>> GDB sees are those that are innermost.  It is the frame, and not the
>> register cache code, that needs to handle this one.
> 
> 
> Yeah, since there aren't any underlying protocols I know of that
> actually give you all the SPARC register windows directly, the SPARC
> would not be a good second example.  Perhaps the IA-64 with its
> rotating registers for software-pipelined loops?

If this section needs an example then (given MarkK's observation about 
the i387) then either d10v's two stack pointers or the SH's bank 
registers.  Neither of these are especially complicated.

Andrew



  reply	other threads:[~2002-07-24  0:34 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-07-19 17:31 Andrew Cagney
2002-07-19 20:11 ` Jim Blandy
2002-07-20 11:39   ` Andrew Cagney
2002-07-20 11:36     ` Jim Blandy
2002-07-20 13:41       ` Andrew Cagney
2002-07-20 15:26         ` Jim Blandy
2002-07-21  9:41           ` Andrew Cagney
2002-07-21 10:04             ` Daniel Jacobowitz
2002-07-22  9:38               ` Andrew Cagney
2002-07-22 10:30                 ` Daniel Jacobowitz
2002-07-23 16:25             ` Jim Blandy
2002-07-23 17:34               ` Andrew Cagney [this message]
2002-07-23 20:45                 ` Jim Blandy
2002-07-24  8:35                   ` Andrew Cagney
2002-07-24 22:08                     ` Jim Blandy
2002-07-25  8:13                       ` Andrew Cagney
2002-07-23 21:17                 ` Jim Blandy
2002-07-24  9:09                   ` Andrew Cagney
2002-07-24 22:03                     ` Jim Blandy
2002-07-25  8:11                       ` Andrew Cagney
2002-07-22 14:39         ` Mark Kettenis
2002-07-22 14:41         ` Mark Kettenis

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=3D3DF608.8010403@ges.redhat.com \
    --to=ac131313@ges.redhat.com \
    --cc=gdb@sources.redhat.com \
    --cc=jimb@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