Re: [RFA] ppc/rs6000: use gdbarch_ps_regnum

Andrew Cagney
2004-10-25T23:25:09Z

Michael Snyder wrote:
>
>> On Fri, 15 Oct 2004 17:41:10 -0700
>> Michael Snyder <msnyder@redhat.com> wrote:
>>
>>> I just happened to notice this. Gdbarch implements PS_REGNUM,
>>> so there's no reason to keep it privately in the tdep struct.
>>
>>
>> Is there some good reason to move it out of the private tdep
>> struct and into the public eye?
>>
>> I'll note that ppc_fp0_regnum is also in the tdep struct, and
>> something comparable (FP0_REGNUM) is also in the gdbarch name space.
>> Yet, rs6000-tdep does not set FP0_REGNUM via set_gdbarch_fp0_regnum()
>> and I happen to like it this way. The reason is that there's no good
>> reason (that I know of) for the other parts of GDB to be aware of this
>> register numbering. Also, putting the indexes into the tdep struct
>> gives a uniform mechanism of accessing (most of) the PPC related
>> register numbers. If we were to move either the PS or FP0 register
>> number back out to gdbarch, then we'd be accessing some of the
>> registers via one mechanism and these others via another.
>> (Unfortunately, we still have SP_REGNUM and PC_REGNUM in gdbarch land.
>> But there are good reasons for other, non-ppc specific portions to
>> know about these register numbers.)

Kevin's correct, and just like DEPRECATED_FP_REGNUM, SP_REGNUM,
PC_REGNUM, and FP0_REGNUM are all on my hit list :-)

Andrew

> No special reason -- I just figured that if there was a public interface,
> there might be some motivation to use that instead of a private interface.
>
> PS_REGNUM is referred to quite a lot -- but mostly in other tdep and nat
> files that are orthogonal to this one. The major exception being
> std-regs.c,
> which sort-of groups PS in there with PC, SP and (cover your ears, Andrew)
> FP.
>
> I have no attachment to it, though, if you prefer it the way it is.
>
>