Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Daniel Jacobowitz <drow@mvista.com>
To: gdb-patches@sources.redhat.com
Subject: Re: [PATCH] Add support for fpscr for Power / PowerPC targets
Date: Thu, 11 Apr 2002 12:25:00 -0000	[thread overview]
Message-ID: <20020411152555.A16075@nevyn.them.org> (raw)
In-Reply-To: <1020411191706.ZM3109@localhost.localdomain>

On Thu, Apr 11, 2002 at 12:17:06PM -0700, Kevin Buettner wrote:
> I've just committed the patch below.  It adds support for the fpscr
> register for Power and PowerPC targets.  I've tested this patch on
> GNU/Linux/PPC (native).  
> 
> For PowerPC, the fpscr regnum is 70, which was an unused slot.  For
> Power, I chose to use the first available slot (71).  The other change
> that this patch makes is to make MQ unavailable for all PowerPC
> targets except for the 601 processors (which is as it should be).
> 
> 	* ppc-tdep.h (struct gdbarch_tdep): Add new field ``ppc_fpscr_regnum''.
> 	* ppc-bdm.c (bdm_ppc_fetch_registers, bdm_ppc_store_registers):
> 	Add fpscr as an invalid/unfetchable register.
> 	* ppc-linux-nat.c (ppc_register_u_addr, store_register)
> 	(fetch_ppc_registers, store_ppc_registers, supply_fpregset)
> 	(fill_fpregset): Add support for register fpscr.
> 	(fetch_ppc_registers, store_ppc_registers, supply_gregset)
> 	(fill_gregset): Account for the fact that register ``mq'' might
> 	not exist.
> 	* rs6000-tdep.c (PPC_UISA_SPRS): Use (unused) slot 70 for fpscr.
> 	(registers_power): Add fpscr to register set at slot 71.
> 	(rs6000_gdbarch_init): Account for the fact that ``mq'' doesn't
> 	exist on most PPC architectures.  Initialize ppc_fpscr_regnum.

I know this is not adequately documented right now, but every change to
the format of the register cache is a change to the remote protocol.
The closest thing we've got to documentation are the files in
regformats/; they don't document a fraction of the possibilities,
though.  I've updated the PowerPC definition to match this change, as
well as updating gdbserver.

Before I commit either, though:

> @@ -376,6 +380,14 @@ store_register (int tid, int regno)
>        ptrace (PT_WRITE_U, tid, (PTRACE_ARG3_TYPE) regaddr,
>  	      *(PTRACE_XFER_TYPE *) & buf[i]);
>        regaddr += sizeof (PTRACE_XFER_TYPE);
> +
> +      if (errno == EIO 
> +          && regno == gdbarch_tdep (current_gdbarch)->ppc_fpscr_regnum)
> +	{
> +	  /* Some older kernel versions don't allow fpscr to be written.  */
> +	  continue;
> +	}
> +
>        if (errno != 0)
>  	{
>  	  sprintf (mess, "writing register %s (#%d)", 

What versions are we talking here?  Is it worth silencing the gdbserver
warning in this case?


-- 
Daniel Jacobowitz                           Carnegie Mellon University
MontaVista Software                         Debian GNU/Linux Developer


  reply	other threads:[~2002-04-11 19:25 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-04-11 12:17 Kevin Buettner
2002-04-11 12:25 ` Daniel Jacobowitz [this message]
2002-04-11 13:10   ` Kevin Buettner
2002-04-11 13:31     ` Daniel Jacobowitz
2002-04-11 13:08 ` Andrew Cagney
2002-04-11 13:39   ` Kevin Buettner
2002-04-14 14:52     ` Andrew Cagney

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=20020411152555.A16075@nevyn.them.org \
    --to=drow@mvista.com \
    --cc=gdb-patches@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