ARM and virtual/raw registers

Andrew Cagney ac131313@cygnus.com
Sun May 12 08:41:00 GMT 2002


>  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





More information about the Gdb mailing list