This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
Re: RFA: make sim interface use gdbarch methods for collect/supply
- From: Jim Blandy <jimb at redhat dot com>
- To: Daniel Jacobowitz <drow at false dot org>
- Cc: gdb-patches at sources dot redhat dot com
- Date: 30 Jun 2004 12:00:16 -0500
- Subject: Re: RFA: make sim interface use gdbarch methods for collect/supply
- References: <vt2vfh9avzo.fsf@zenia.home><20040630155329.GA19452@nevyn.them.org>
Daniel Jacobowitz <drow@false.org> writes:
> On Wed, Jun 30, 2004 at 10:47:23AM -0500, Jim Blandy wrote:
> >
> > At the moment, remote-sim.c's gdbsim_fetch_register and
> > gdbsim_store_register functions assume that the simulator's register
> > set (as visible via sim_fetch_register and sim_store_register)
> > corresponds exactly to GDB's raw register set. This patch is meant to
> > remove that assumption.
> >
> > Tested on i686-pc-linux-gnu x powerpc-eabispe (sim).
>
> We've got a whole lot of new mechanism for describing register sets.
> Can't you use that instead of adding new supply/collect routines?
I'd love to use some existing mechanism, but I couldn't see how to
apply what I know of to this problem. Can you give me a pointer?
If you mean the regset stuff: the sim doesn't present its registers in
terms of a single structure that one could pass to a
supply_regset_ftype or collect_regset_ftype value; you make one call
to a sim function to transfer each register.
I think what you're getting at is that SIM_COLLECT_REGISTER and
SIM_SUPPLY_REGISTER will in general have to re-implement some of the
raw/pseudo mapping. I agree that that's unfortunate, but it's
inherent in the design: we can only collect and supply raw register
values, and our raw regcache layout is not necessarily the same as the
sim's register layout.