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
next prev parent 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