Re: Register Groups (again)

Daniel Jacobowitz
2002-08-18T14:44:01Z

On Sun, Aug 18, 2002 at 01:45:40AM -0400, Andrew Cagney wrote:
> >On Sat, Aug 17, 2002 at 07:48:22PM -0400, Andrew Cagney wrote:
> >
> >>See: http://sources.redhat.com/ml/gdb/2001-02/msg00268.html for the
> >>origins of this idea.
> >>
> >>
> >>I'd like to propose a new object ``struct reggroup'' and a number of
> >>methods:
> >
> >
> >Hmm, it seems more intuitive to me to have attributes for each
> >register. Float, vector, system for the register's class or group, and
> >then we could have other not necessarily mutually exclusive flags.
> >Like, available in kernel or user mode.
> >
> >Just a thought though.
>
> Sorry, I think I'm missing something. I don't see a difference.
> s/reggroup/regattrib/?

In your scheme, you have reggroups as a structure. In mine, you'd have
a set of flags associated with each register. Not a fundamental
difference, but it seems a little more straightforward. As I said,
just a passing thought.

>
> >>- how it relates to frames
> >>
> >>It currently assumes that the register groups are identical between
> >>frames :-/
>
> i.e.:
> register_reggroup_p(gdbarch,regnum,group)
> rather than:
> frame_register_reggroup_p(frame,regnum,group)
>
> >With an attribute scheme, once we know which registers are present in a
> >frame we'd know which (say) float registers are present in that
> >frame...
>
> Now I'm really confused. How is this not possible using what I described?

I don't understand why this should be dependent on the frame? If
you're talking about a hypothetical future GDB where the gdbarch varies
by frame, then we'll have to know the gdbarch anyway...

I was just suggesting that, with an attribute attached to each
register, we would know "for free" which ones were in a register group
for a given frame. Maybe I'm wrong, since I don't understand how they
could ever vary.

--
Daniel Jacobowitz
MontaVista Software Debian GNU/Linux Developer