RFA: make sim interface use gdbarch methods for collect/supply

Daniel Jacobowitz drow@false.org
Thu Jul 1 02:48:00 GMT 2004


On Wed, Jun 30, 2004 at 12:00:16PM -0500, Jim Blandy wrote:
> 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.

The interface may need some surgery to do it, but the sim's registers
are conceptually a regset, aren't they?  We could collect each register
from the sim into a buffer and write a "struct regset" describing that.
This could happen in an arch-independent way in remote-sim, and then
the regset be provided by the target architecture.

> 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.

No, what I'm getting at is that I'd rather the number of interfaces for
accessing registers went down than up!  I want to standardize on using
the regset interface, because it's the most flexible.

-- 
Daniel Jacobowitz



More information about the Gdb-patches mailing list