Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Elena Zannoni <ezannoni@redhat.com>
To: Kevin Buettner <kevinb@redhat.com>
Cc: Elena Zannoni <ezannoni@redhat.com>,
	Andrew Cagney <ac131313@ges.redhat.com>,
	gdb-patches@sources.redhat.com
Subject: Re: [patch/wip] Save/restore cooked registers
Date: Mon, 26 Aug 2002 11:29:00 -0000	[thread overview]
Message-ID: <15722.29238.818092.258790@localhost.redhat.com> (raw)
In-Reply-To: <1020826172622.ZM31173@localhost.localdomain>

Kevin Buettner writes:
 > On Aug 26, 12:29pm, Elena Zannoni wrote:
 > 
 > > Kevin Buettner writes:
 > >  > On Aug 25,  3:16pm, Andrew Cagney wrote:
 > >  > 
 > >  > > The attached is work-in-progress to get gdb saving just a subset of 
 > >  > > cooked registers when doing things like an inferior function call.
 > >  > 
 > >  > Why is it necessary to save the cooked registers during an inferior
 > >  > function call?  I would have thought that being able to save/restore
 > >  > raw registers would be sufficient.
 > >  > 
 > >  > (Or did I miss a thread which explains this?)
 > >  > 
 > >  > Kevin
 > > 
 > > 
 > > On ppc the e500 general registers are pseudo (i.e.cooked). Those
 > > are used in inferior function calls, for parameter passing.
 > > I think this is part of the story.
 > 
 > If I'm not mistaken, the pseudos on the e500 are synthesized from the
 > raw registers without the need for outside sources such as memory. 
 > That being the case, saving the raw registers (or, more precisely, the
 > cooked registers corresponding to the raw registers) should be
 > sufficient.
 > 

Yes. I was thinking about this other problem I encountered:
http://sources.redhat.com/ml/gdb-patches/2002-08/msg00689.html

 > In fact, for the e500, I think we'll need to take care NOT to write
 > back the pseudos since this could potentially cause information to
 > be lost.  It would depend upon the order in which things were done.
 > If the pseudos are restored after the raw registers that they map
 > onto, the most significant bits would likely be wiped out.  (In this
 > case the pseudos are narrower than the raw registers, right?)
 > 

The pseudo register write function is written so that it preserves the
upper bits. If you use that technique you should be safe.

Elena


 > > Full explanation:
 > > 
 > > http://sources.redhat.com/ml/gdb/2002-08/msg00196.html
 > 
 > Yes, reading this explanation helped quite a lot.  When a pseduo register's
 > value is synthesized from sources outside of the raw register cache, e.g,
 > from memory, we need to save these values.  Later when writing them back,
 > the reverse transformation will occur potentially writing memory (or those
 > other outside sources).  This makes sense to me.
 > 
 > I've looked over Andrew's WIP patch.  I haven't checked all the details,
 > but the ideas seem sound and the interfaces look okay.  I'd like to see
 > the iterators better commented though.
 > 
 > Kevin


  parent reply	other threads:[~2002-08-26 18:25 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-08-25 12:23 Andrew Cagney
2002-08-26  9:05 ` Kevin Buettner
2002-08-26  9:31   ` Andrew Cagney
2002-08-26 10:26   ` Elena Zannoni
2002-08-26 11:21     ` Kevin Buettner
2002-08-26 11:25       ` Andrew Cagney
2002-08-26 13:52         ` Kevin Buettner
2002-08-26 11:29       ` Elena Zannoni [this message]
2002-08-26 12:04         ` Kevin Buettner
2002-08-28  7:42         ` Richard Earnshaw
2002-08-28  9:58           ` Andrew Cagney
2002-08-29  8:36             ` Elena Zannoni

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=15722.29238.818092.258790@localhost.redhat.com \
    --to=ezannoni@redhat.com \
    --cc=ac131313@ges.redhat.com \
    --cc=gdb-patches@sources.redhat.com \
    --cc=kevinb@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