forked from Imagelibrary/binutils-gdb
ChangeLog:
* features/Makefile: Allow sub-platform specific expedite settings. (WHICH): Add rs6000/powerpc-cell32l and rs6000/powerpc-cell64l. (rs6000/powerpc-cell32l-expedite): Define. (rs6000/powerpc-cell64l-expedite): Likewise. * features/rs6000/powerpc-cell32l.xml: New file. * features/rs6000/powerpc-cell64l.xml: New file. * features/rs6000/powerpc-cell32l.c: New generated file. * features/rs6000/powerpc-cell64l.c: New generated file. * regformats/rs6000/powerpc-cell32l.dat: New generated file. * regformats/rs6000/powerpc-cell64l.dat: New generated file. * config/djgpp/fnchange.lst: Add mappings for new files. * ppc-linux-tdep.h (tdesc_powerpc_cell32l): Add prototype. (tdesc_powerpc_cell64l): Likewise. * ppc-linux-tdep.c: Include "features/rs6000/powerpc-cell32l.c" and "features/rs6000/powerpc-cell64l.c". (_initialize_ppc_linux_tdep): Initialize target descriptions. (ppc_linux_spu_section): New function. (ppc_linux_core_read_description): Detect Cell/B.E. core files. * ppc-linux-nat.c (PPC_FEATURE_CELL): Define. (ppc_linux_read_description): Detect Cell/B.E. architecture. * rs6000-tdep.c (rs6000_gdbarch_init): Do not trust BFD wordsize if exec file is not PowerPC architecture. gdbserver/ChangeLog: * configure.srv (powerpc*-*-linux*): Add powerpc-cell32l.o and powerpc-cell64l.o to srv_regobj. Add rs6000/powerpc-cell32l.xml and rs6000/powerpc-cell64l.xml to srv_xmlfiles. * Makefile.in (powerpc-cell32l.o, powerpc-cell32l.c): New rules. (powerpc-cell64l.o, powerpc-cell64l.c): Likewise. (clean): Handle powerpc-cell32l.c and powerpc-cell64l.c. * linux-ppc-low.c (PPC_FEATURE_CELL): Define. (init_registers_powerpc_cell32l): Add prototype. (init_registers_powerpc_cell64l): Likewise. (ppc_arch_setup): Detect Cell/B.E. architecture.
This commit is contained in:
@@ -41,12 +41,14 @@
|
||||
|
||||
#include "features/rs6000/powerpc-32l.c"
|
||||
#include "features/rs6000/powerpc-altivec32l.c"
|
||||
#include "features/rs6000/powerpc-cell32l.c"
|
||||
#include "features/rs6000/powerpc-vsx32l.c"
|
||||
#include "features/rs6000/powerpc-isa205-32l.c"
|
||||
#include "features/rs6000/powerpc-isa205-altivec32l.c"
|
||||
#include "features/rs6000/powerpc-isa205-vsx32l.c"
|
||||
#include "features/rs6000/powerpc-64l.c"
|
||||
#include "features/rs6000/powerpc-altivec64l.c"
|
||||
#include "features/rs6000/powerpc-cell64l.c"
|
||||
#include "features/rs6000/powerpc-vsx64l.c"
|
||||
#include "features/rs6000/powerpc-isa205-64l.c"
|
||||
#include "features/rs6000/powerpc-isa205-altivec64l.c"
|
||||
@@ -1034,11 +1036,18 @@ ppc_linux_write_pc (struct regcache *regcache, CORE_ADDR pc)
|
||||
regcache_cooked_write_unsigned (regcache, PPC_TRAP_REGNUM, -1);
|
||||
}
|
||||
|
||||
static int
|
||||
ppc_linux_spu_section (bfd *abfd, asection *asect, void *user_data)
|
||||
{
|
||||
return strncmp (bfd_section_name (abfd, asect), "SPU/", 4) == 0;
|
||||
}
|
||||
|
||||
static const struct target_desc *
|
||||
ppc_linux_core_read_description (struct gdbarch *gdbarch,
|
||||
struct target_ops *target,
|
||||
bfd *abfd)
|
||||
{
|
||||
asection *cell = bfd_sections_find_if (abfd, ppc_linux_spu_section, NULL);
|
||||
asection *altivec = bfd_get_section_by_name (abfd, ".reg-ppc-vmx");
|
||||
asection *vsx = bfd_get_section_by_name (abfd, ".reg-ppc-vsx");
|
||||
asection *section = bfd_get_section_by_name (abfd, ".reg");
|
||||
@@ -1048,7 +1057,9 @@ ppc_linux_core_read_description (struct gdbarch *gdbarch,
|
||||
switch (bfd_section_size (abfd, section))
|
||||
{
|
||||
case 48 * 4:
|
||||
if (vsx)
|
||||
if (cell)
|
||||
return tdesc_powerpc_cell32l;
|
||||
else if (vsx)
|
||||
return tdesc_powerpc_vsx32l;
|
||||
else if (altivec)
|
||||
return tdesc_powerpc_altivec32l;
|
||||
@@ -1056,7 +1067,9 @@ ppc_linux_core_read_description (struct gdbarch *gdbarch,
|
||||
return tdesc_powerpc_32l;
|
||||
|
||||
case 48 * 8:
|
||||
if (vsx)
|
||||
if (cell)
|
||||
return tdesc_powerpc_cell64l;
|
||||
else if (vsx)
|
||||
return tdesc_powerpc_vsx64l;
|
||||
else if (altivec)
|
||||
return tdesc_powerpc_altivec64l;
|
||||
@@ -1196,12 +1209,14 @@ _initialize_ppc_linux_tdep (void)
|
||||
/* Initialize the Linux target descriptions. */
|
||||
initialize_tdesc_powerpc_32l ();
|
||||
initialize_tdesc_powerpc_altivec32l ();
|
||||
initialize_tdesc_powerpc_cell32l ();
|
||||
initialize_tdesc_powerpc_vsx32l ();
|
||||
initialize_tdesc_powerpc_isa205_32l ();
|
||||
initialize_tdesc_powerpc_isa205_altivec32l ();
|
||||
initialize_tdesc_powerpc_isa205_vsx32l ();
|
||||
initialize_tdesc_powerpc_64l ();
|
||||
initialize_tdesc_powerpc_altivec64l ();
|
||||
initialize_tdesc_powerpc_cell64l ();
|
||||
initialize_tdesc_powerpc_vsx64l ();
|
||||
initialize_tdesc_powerpc_isa205_64l ();
|
||||
initialize_tdesc_powerpc_isa205_altivec64l ();
|
||||
|
||||
Reference in New Issue
Block a user