[PATCH v2 02/13] regcache: Add functions suitable for regset_supply/collect.

Omair Javaid omair.javaid@linaro.org
Sat Jul 19 13:10:00 GMT 2014


On 10 July 2014 12:54, Andreas Arnez <arnez@linux.vnet.ibm.com> wrote:
> On Tue, Jul 08 2014, Omair Javaid wrote:
>
>> I think you are right its better off if we leave the single register
>> variants to target specific *-tdep where they can be retrieved using
>> regcache_raw_ supply/collect functions. All other options to get
>> around the loops wont be trivial.
>
> Hm, I'd actually prefer if the new functions could be used for any
> case where registers are supplied to the regcache from a buffer, or
> collected from the regcache to a buffer.
>
> Which variants do you mean?  Do you have examples where they are used?
>

Here's one implementation I saw for PPC, this is done for rs6000-tdep.c

ppc_supply_reg (struct regcache *regcache, int regnum,
const gdb_byte *regs, size_t offset, int regsize)
{
  if (regnum != -1 && offset != -1)
    {
      if (regsize > 4)
{
 struct gdbarch *gdbarch = get_regcache_arch (regcache);
 int gdb_regsize = register_size (gdbarch, regnum);
 if (gdb_regsize < regsize
     && gdbarch_byte_order (gdbarch) == BFD_ENDIAN_BIG)
   offset += regsize - gdb_regsize;
}
      regcache_raw_supply (regcache, regnum, regs + offset);
    }
}

But I agree that its better the way its been done already.



More information about the Gdb-patches mailing list