This is the mail archive of the
gdb@sources.redhat.com
mailing list for the GDB project.
Re: ARM and virtual/raw registers
- From: Andrew Cagney <ac131313 at cygnus dot com>
- To: Richard dot Earnshaw at arm dot com
- Cc: gdb at sources dot redhat dot com
- Date: Sun, 12 May 2002 11:41:31 -0400
- Subject: Re: ARM and virtual/raw registers
- References: <200205121525.QAA02703@cam-mail2.cambridge.arm.com>
> However, in this situation,
>> > pseudo_rengo("r0") != regcache_regno("r0"), yet we effectively have
>> >
>> > REGSITER_RAW_SIZE (pseudo_regno ("r0"))
>> > and
>> > REGISTER_RAW_SIZE (regcache_regno ("r0"))
>
>>
>> Sorry, I still don't understand.
>
>
> In my view of things, the domain of the result returned by pseudo_regno()
> is
> 0..Num_pseudos,
Pseudo-registers occupy the space:
[NUM_REGS .. NUM_REGS+NUM_PSEUDO_REGS)
there isn't an overlap.
As I said, I'd like to have strongly typed ``struct pseudoreg *'' and
``struct rawreg *''. In the mean time, this numeric separation is the
onlything we have.
> and the domain of regcache_regno() is
>
> 0..NUM_REGS
>
> But we have cases where the two functions return a different number for
> the same register; more precisely, we might encounter the situation where
>
> pseudo_regno ("int_reg0") == regcache_regno ("float_reg5")
That isn't correct.
Andrew