mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-07-08 07:46:54 +08:00
TILEGX Linux: Fill 'collect_regset' in regset structure.
This commit is contained in:

committed by
Ulrich Weigand

parent
c5741217d3
commit
8f1cee41f8
@ -1,3 +1,13 @@
|
|||||||
|
2014-08-07 Andreas Arnez <arnez@linux.vnet.ibm.com>
|
||||||
|
|
||||||
|
* tilegx-linux-tdep.c (tilegx_linux_supply_regset): Delete
|
||||||
|
function. Move logic to...
|
||||||
|
(tilegx_linux_regmap): ... this new register map.
|
||||||
|
(tilegx_linux_regset): Refer to register map, replace supply
|
||||||
|
method by regcache_supply_regset, and add collect method.
|
||||||
|
* tilegx-tdep.h (enum tilegx_regnum): New enum value
|
||||||
|
TILEGX_FIRST_EASY_REGNUM.
|
||||||
|
|
||||||
2014-08-07 Andreas Arnez <arnez@linux.vnet.ibm.com>
|
2014-08-07 Andreas Arnez <arnez@linux.vnet.ibm.com>
|
||||||
|
|
||||||
* score-tdep.c (score7_linux_supply_gregset): Reduce to small stub
|
* score-tdep.c (score7_linux_supply_gregset): Reduce to small stub
|
||||||
|
@ -73,34 +73,22 @@ static const struct tramp_frame tilegx_linux_rt_sigframe =
|
|||||||
tilegx_linux_sigframe_init
|
tilegx_linux_sigframe_init
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Supply raw registers from REGCACHE to REGS. */
|
/* Register map; must match struct pt_regs in "ptrace.h". */
|
||||||
|
|
||||||
static void
|
static const struct regcache_map_entry tilegx_linux_regmap[] =
|
||||||
tilegx_linux_supply_regset (const struct regset *regset,
|
{
|
||||||
struct regcache *regcache,
|
{ TILEGX_NUM_EASY_REGS, TILEGX_FIRST_EASY_REGNUM, 8 },
|
||||||
int regnum, const void *regs, size_t len)
|
{ 1, TILEGX_PC_REGNUM, 8 },
|
||||||
{
|
{ 1, TILEGX_FAULTNUM_REGNUM, 8 },
|
||||||
struct gdbarch *arch = get_regcache_arch (regcache);
|
{ 0 }
|
||||||
const char *ptr = regs;
|
};
|
||||||
int i;
|
|
||||||
|
|
||||||
/* This logic must match that of struct pt_regs in "ptrace.h". */
|
|
||||||
for (i = 0; i < TILEGX_NUM_EASY_REGS + 2; i++, ptr += tilegx_reg_size)
|
|
||||||
{
|
|
||||||
int gri = (i < TILEGX_NUM_EASY_REGS)
|
|
||||||
? i : (i == TILEGX_NUM_EASY_REGS)
|
|
||||||
? TILEGX_PC_REGNUM : TILEGX_FAULTNUM_REGNUM;
|
|
||||||
|
|
||||||
if (regnum == gri || regnum == -1)
|
|
||||||
regcache_raw_supply (regcache, gri, ptr);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* TILE-Gx Linux kernel register set. */
|
/* TILE-Gx Linux kernel register set. */
|
||||||
|
|
||||||
static const struct regset tilegx_linux_regset =
|
static const struct regset tilegx_linux_regset =
|
||||||
{
|
{
|
||||||
NULL,
|
tilegx_linux_regmap,
|
||||||
tilegx_linux_supply_regset
|
regcache_supply_regset, regcache_collect_regset
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct regset *
|
static const struct regset *
|
||||||
|
@ -31,6 +31,7 @@
|
|||||||
enum tilegx_regnum
|
enum tilegx_regnum
|
||||||
{
|
{
|
||||||
TILEGX_R0_REGNUM,
|
TILEGX_R0_REGNUM,
|
||||||
|
TILEGX_FIRST_EASY_REGNUM = TILEGX_R0_REGNUM,
|
||||||
TILEGX_R1_REGNUM,
|
TILEGX_R1_REGNUM,
|
||||||
TILEGX_R2_REGNUM,
|
TILEGX_R2_REGNUM,
|
||||||
TILEGX_R3_REGNUM,
|
TILEGX_R3_REGNUM,
|
||||||
|
Reference in New Issue
Block a user