mirror of
https://github.com/bminor/binutils-gdb.git
synced 2025-12-05 15:15:42 +00:00
* regset.h (struct core_regset_section): Add HUMAN_NAME.
* i386-linux-tdep.c (i386_linux_regset_sections): Fill in HUMAN_NAME. * ppc-linux-tdep.c (ppc_linux_vsx_regset_sections): Likewise. (ppc_linux_vmx_regset_sections): Likewise. (ppc_linux_fp_regset_sections): Likewise. * corelow.c (get_core_register_section): Constify arguments. (get_core_registers): Use gdbarch_core_regset_sections instead of hard-coded platform-specific register section names.
This commit is contained in:
@@ -1,3 +1,15 @@
|
|||||||
|
2010-01-04 Ulrich Weigand <uweigand@de.ibm.com>
|
||||||
|
|
||||||
|
* regset.h (struct core_regset_section): Add HUMAN_NAME.
|
||||||
|
* i386-linux-tdep.c (i386_linux_regset_sections): Fill in HUMAN_NAME.
|
||||||
|
* ppc-linux-tdep.c (ppc_linux_vsx_regset_sections): Likewise.
|
||||||
|
(ppc_linux_vmx_regset_sections): Likewise.
|
||||||
|
(ppc_linux_fp_regset_sections): Likewise.
|
||||||
|
|
||||||
|
* corelow.c (get_core_register_section): Constify arguments.
|
||||||
|
(get_core_registers): Use gdbarch_core_regset_sections instead
|
||||||
|
of hard-coded platform-specific register section names.
|
||||||
|
|
||||||
2010-01-04 Ulrich Weigand <uweigand@de.ibm.com>
|
2010-01-04 Ulrich Weigand <uweigand@de.ibm.com>
|
||||||
|
|
||||||
* dwarf2loc.c (read_pieced_value): If a piece occupies part of
|
* dwarf2loc.c (read_pieced_value): If a piece occupies part of
|
||||||
|
|||||||
@@ -508,9 +508,9 @@ deprecated_core_resize_section_table (int num_added)
|
|||||||
|
|
||||||
static void
|
static void
|
||||||
get_core_register_section (struct regcache *regcache,
|
get_core_register_section (struct regcache *regcache,
|
||||||
char *name,
|
const char *name,
|
||||||
int which,
|
int which,
|
||||||
char *human_name,
|
const char *human_name,
|
||||||
int required)
|
int required)
|
||||||
{
|
{
|
||||||
static char *section_name = NULL;
|
static char *section_name = NULL;
|
||||||
@@ -591,6 +591,7 @@ static void
|
|||||||
get_core_registers (struct target_ops *ops,
|
get_core_registers (struct target_ops *ops,
|
||||||
struct regcache *regcache, int regno)
|
struct regcache *regcache, int regno)
|
||||||
{
|
{
|
||||||
|
struct core_regset_section *sect_list;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
if (!(core_gdbarch && gdbarch_regset_from_core_section_p (core_gdbarch))
|
if (!(core_gdbarch && gdbarch_regset_from_core_section_p (core_gdbarch))
|
||||||
@@ -601,16 +602,30 @@ get_core_registers (struct target_ops *ops,
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
get_core_register_section (regcache,
|
sect_list = gdbarch_core_regset_sections (get_regcache_arch (regcache));
|
||||||
".reg", 0, "general-purpose", 1);
|
if (sect_list)
|
||||||
get_core_register_section (regcache,
|
while (sect_list->sect_name != NULL)
|
||||||
".reg2", 2, "floating-point", 0);
|
{
|
||||||
get_core_register_section (regcache,
|
if (strcmp (sect_list->sect_name, ".reg") == 0)
|
||||||
".reg-xfp", 3, "extended floating-point", 0);
|
get_core_register_section (regcache, sect_list->sect_name,
|
||||||
get_core_register_section (regcache,
|
0, sect_list->human_name, 1);
|
||||||
".reg-ppc-vmx", 3, "ppc Altivec", 0);
|
else if (strcmp (sect_list->sect_name, ".reg2") == 0)
|
||||||
get_core_register_section (regcache,
|
get_core_register_section (regcache, sect_list->sect_name,
|
||||||
".reg-ppc-vsx", 4, "POWER7 VSX", 0);
|
2, sect_list->human_name, 0);
|
||||||
|
else
|
||||||
|
get_core_register_section (regcache, sect_list->sect_name,
|
||||||
|
3, sect_list->human_name, 0);
|
||||||
|
|
||||||
|
sect_list++;
|
||||||
|
}
|
||||||
|
|
||||||
|
else
|
||||||
|
{
|
||||||
|
get_core_register_section (regcache,
|
||||||
|
".reg", 0, "general-purpose", 1);
|
||||||
|
get_core_register_section (regcache,
|
||||||
|
".reg2", 2, "floating-point", 0);
|
||||||
|
}
|
||||||
|
|
||||||
/* Supply dummy value for all registers not found in the core. */
|
/* Supply dummy value for all registers not found in the core. */
|
||||||
for (i = 0; i < gdbarch_num_regs (get_regcache_arch (regcache)); i++)
|
for (i = 0; i < gdbarch_num_regs (get_regcache_arch (regcache)); i++)
|
||||||
|
|||||||
@@ -49,9 +49,9 @@
|
|||||||
/* Supported register note sections. */
|
/* Supported register note sections. */
|
||||||
static struct core_regset_section i386_linux_regset_sections[] =
|
static struct core_regset_section i386_linux_regset_sections[] =
|
||||||
{
|
{
|
||||||
{ ".reg", 144 },
|
{ ".reg", 144, "general-purpose" },
|
||||||
{ ".reg2", 108 },
|
{ ".reg2", 108, "floating-point" },
|
||||||
{ ".reg-xfp", 512 },
|
{ ".reg-xfp", 512, "extended floating-point" },
|
||||||
{ NULL, 0 }
|
{ NULL, 0 }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -516,25 +516,25 @@ ppc64_standard_linkage1_target (struct frame_info *frame,
|
|||||||
|
|
||||||
static struct core_regset_section ppc_linux_vsx_regset_sections[] =
|
static struct core_regset_section ppc_linux_vsx_regset_sections[] =
|
||||||
{
|
{
|
||||||
{ ".reg", 268 },
|
{ ".reg", 268, "general-purpose" },
|
||||||
{ ".reg2", 264 },
|
{ ".reg2", 264, "floating-point" },
|
||||||
{ ".reg-ppc-vmx", 544 },
|
{ ".reg-ppc-vmx", 544, "ppc Altivec" },
|
||||||
{ ".reg-ppc-vsx", 256 },
|
{ ".reg-ppc-vsx", 256, "POWER7 VSX" },
|
||||||
{ NULL, 0}
|
{ NULL, 0}
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct core_regset_section ppc_linux_vmx_regset_sections[] =
|
static struct core_regset_section ppc_linux_vmx_regset_sections[] =
|
||||||
{
|
{
|
||||||
{ ".reg", 268 },
|
{ ".reg", 268, "general-purpose" },
|
||||||
{ ".reg2", 264 },
|
{ ".reg2", 264, "floating-point" },
|
||||||
{ ".reg-ppc-vmx", 544 },
|
{ ".reg-ppc-vmx", 544, "ppc Altivec" },
|
||||||
{ NULL, 0}
|
{ NULL, 0}
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct core_regset_section ppc_linux_fp_regset_sections[] =
|
static struct core_regset_section ppc_linux_fp_regset_sections[] =
|
||||||
{
|
{
|
||||||
{ ".reg", 268 },
|
{ ".reg", 268, "general-purpose" },
|
||||||
{ ".reg2", 264 },
|
{ ".reg2", 264, "floating-point" },
|
||||||
{ NULL, 0}
|
{ NULL, 0}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -29,6 +29,7 @@ struct core_regset_section
|
|||||||
{
|
{
|
||||||
const char *sect_name;
|
const char *sect_name;
|
||||||
int size;
|
int size;
|
||||||
|
const char *human_name;
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Data structure describing a register set. */
|
/* Data structure describing a register set. */
|
||||||
|
|||||||
Reference in New Issue
Block a user