diff options
Diffstat (limited to 'gdb/gdbserver')
-rw-r--r-- | gdb/gdbserver/ChangeLog | 13 | ||||
-rw-r--r-- | gdb/gdbserver/Makefile.in | 10 | ||||
-rw-r--r-- | gdb/gdbserver/configure.srv | 4 | ||||
-rw-r--r-- | gdb/gdbserver/linux-ppc-low.c | 13 |
4 files changed, 36 insertions, 4 deletions
diff --git a/gdb/gdbserver/ChangeLog b/gdb/gdbserver/ChangeLog index 19e5590..095e65c 100644 --- a/gdb/gdbserver/ChangeLog +++ b/gdb/gdbserver/ChangeLog @@ -1,3 +1,16 @@ +2009-07-31 Ulrich Weigand <uweigand@de.ibm.com> + + * 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. + 2009-07-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> * Makefile.in (datarootdir): New variable. diff --git a/gdb/gdbserver/Makefile.in b/gdb/gdbserver/Makefile.in index cd44921..155094b 100644 --- a/gdb/gdbserver/Makefile.in +++ b/gdb/gdbserver/Makefile.in @@ -210,8 +210,8 @@ clean: rm -f arm-with-vfpv2.c arm-with-vfpv3.c arm-with-neon.c rm -f mips-linux.c mips64-linux.c rm -f powerpc-32l.c powerpc-64l.c powerpc-e500l.c - rm -f powerpc-altivec32l.c powerpc-vsx32l.c powerpc-altivec64l.c - rm -f powerpc-vsx64l.c + rm -f powerpc-altivec32l.c powerpc-cell32l.c powerpc-vsx32l.c + rm -f powerpc-altivec64l.c powerpc-cell64l.c powerpc-vsx64l.c rm -f powerpc-isa205-32l.c powerpc-isa205-64l.c rm -f powerpc-isa205-altivec32l.c powerpc-isa205-vsx32l.c powerpc-isa205-altivec64l.c rm -f powerpc-isa205-vsx64l.c @@ -371,6 +371,9 @@ powerpc-32l.c : $(srcdir)/../regformats/rs6000/powerpc-32l.dat $(regdat_sh) powerpc-altivec32l.o : powerpc-altivec32l.c $(regdef_h) powerpc-altivec32l.c : $(srcdir)/../regformats/rs6000/powerpc-altivec32l.dat $(regdat_sh) $(SHELL) $(regdat_sh) $(srcdir)/../regformats/rs6000/powerpc-altivec32l.dat powerpc-altivec32l.c +powerpc-cell32l.o : powerpc-cell32l.c $(regdef_h) +powerpc-cell32l.c : $(srcdir)/../regformats/rs6000/powerpc-cell32l.dat $(regdat_sh) + $(SHELL) $(regdat_sh) $(srcdir)/../regformats/rs6000/powerpc-cell32l.dat powerpc-cell32l.c powerpc-vsx32l.o : powerpc-vsx32l.c $(regdef_h) powerpc-vsx32l.c : $(srcdir)/../regformats/rs6000/powerpc-vsx32l.dat $(regdat_sh) $(SHELL) $(regdat_sh) $(srcdir)/../regformats/rs6000/powerpc-vsx32l.dat powerpc-vsx32l.c @@ -392,6 +395,9 @@ powerpc-64l.c : $(srcdir)/../regformats/rs6000/powerpc-64l.dat $(regdat_sh) powerpc-altivec64l.o : powerpc-altivec64l.c $(regdef_h) powerpc-altivec64l.c : $(srcdir)/../regformats/rs6000/powerpc-altivec64l.dat $(regdat_sh) $(SHELL) $(regdat_sh) $(srcdir)/../regformats/rs6000/powerpc-altivec64l.dat powerpc-altivec64l.c +powerpc-cell64l.o : powerpc-cell64l.c $(regdef_h) +powerpc-cell64l.c : $(srcdir)/../regformats/rs6000/powerpc-cell64l.dat $(regdat_sh) + $(SHELL) $(regdat_sh) $(srcdir)/../regformats/rs6000/powerpc-cell64l.dat powerpc-cell64l.c powerpc-vsx64l.o : powerpc-vsx64l.c $(regdef_h) powerpc-vsx64l.c : $(srcdir)/../regformats/rs6000/powerpc-vsx64l.dat $(regdat_sh) $(SHELL) $(regdat_sh) $(srcdir)/../regformats/rs6000/powerpc-vsx64l.dat powerpc-vsx64l.c diff --git a/gdb/gdbserver/configure.srv b/gdb/gdbserver/configure.srv index 900b565..7aded27 100644 --- a/gdb/gdbserver/configure.srv +++ b/gdb/gdbserver/configure.srv @@ -123,6 +123,7 @@ case "${target}" in ;; powerpc*-*-linux*) srv_regobj="powerpc-32l.o" srv_regobj="${srv_regobj} powerpc-altivec32l.o" + srv_regobj="${srv_regobj} powerpc-cell32l.o" srv_regobj="${srv_regobj} powerpc-vsx32l.o" srv_regobj="${srv_regobj} powerpc-isa205-32l.o" srv_regobj="${srv_regobj} powerpc-isa205-altivec32l.o" @@ -130,6 +131,7 @@ case "${target}" in srv_regobj="${srv_regobj} powerpc-e500l.o" srv_regobj="${srv_regobj} powerpc-64l.o" srv_regobj="${srv_regobj} powerpc-altivec64l.o" + srv_regobj="${srv_regobj} powerpc-cell64l.o" srv_regobj="${srv_regobj} powerpc-vsx64l.o" srv_regobj="${srv_regobj} powerpc-isa205-64l.o" srv_regobj="${srv_regobj} powerpc-isa205-altivec64l.o" @@ -137,6 +139,7 @@ case "${target}" in srv_tgtobj="linux-low.o linux-ppc-low.o" srv_xmlfiles="rs6000/powerpc-32l.xml" srv_xmlfiles="${srv_xmlfiles} rs6000/powerpc-altivec32l.xml" + srv_xmlfiles="${srv_xmlfiles} rs6000/powerpc-cell32l.xml" srv_xmlfiles="${srv_xmlfiles} rs6000/powerpc-vsx32l.xml" srv_xmlfiles="${srv_xmlfiles} rs6000/powerpc-isa205-32l.xml" srv_xmlfiles="${srv_xmlfiles} rs6000/powerpc-isa205-altivec32l.xml" @@ -151,6 +154,7 @@ case "${target}" in srv_xmlfiles="${srv_xmlfiles} rs6000/power-spe.xml" srv_xmlfiles="${srv_xmlfiles} rs6000/powerpc-64l.xml" srv_xmlfiles="${srv_xmlfiles} rs6000/powerpc-altivec64l.xml" + srv_xmlfiles="${srv_xmlfiles} rs6000/powerpc-cell64l.xml" srv_xmlfiles="${srv_xmlfiles} rs6000/powerpc-vsx64l.xml" srv_xmlfiles="${srv_xmlfiles} rs6000/powerpc-isa205-64l.xml" srv_xmlfiles="${srv_xmlfiles} rs6000/powerpc-isa205-altivec64l.xml" diff --git a/gdb/gdbserver/linux-ppc-low.c b/gdb/gdbserver/linux-ppc-low.c index 06adbd3..d630c17 100644 --- a/gdb/gdbserver/linux-ppc-low.c +++ b/gdb/gdbserver/linux-ppc-low.c @@ -28,6 +28,7 @@ #define PPC_FEATURE_HAS_VSX 0x00000080 #define PPC_FEATURE_HAS_ALTIVEC 0x10000000 #define PPC_FEATURE_HAS_SPE 0x00800000 +#define PPC_FEATURE_CELL 0x00010000 #define PPC_FEATURE_HAS_DFP 0x00000400 static unsigned long ppc_hwcap; @@ -37,6 +38,8 @@ static unsigned long ppc_hwcap; void init_registers_powerpc_32l (void); /* Defined in auto-generated file powerpc-altivec32l.c. */ void init_registers_powerpc_altivec32l (void); +/* Defined in auto-generated file powerpc-cell32l.c. */ +void init_registers_powerpc_cell32l (void); /* Defined in auto-generated file powerpc-vsx32l.c. */ void init_registers_powerpc_vsx32l (void); /* Defined in auto-generated file powerpc-isa205-32l.c. */ @@ -51,6 +54,8 @@ void init_registers_powerpc_e500l (void); void init_registers_powerpc_64l (void); /* Defined in auto-generated file powerpc-altivec64l.c. */ void init_registers_powerpc_altivec64l (void); +/* Defined in auto-generated file powerpc-cell64l.c. */ +void init_registers_powerpc_cell64l (void); /* Defined in auto-generated file powerpc-vsx64l.c. */ void init_registers_powerpc_vsx64l (void); /* Defined in auto-generated file powerpc-isa205-64l.c. */ @@ -272,7 +277,9 @@ ppc_arch_setup (void) if (msr < 0) { ppc_get_hwcap (&ppc_hwcap); - if (ppc_hwcap & PPC_FEATURE_HAS_VSX) + if (ppc_hwcap & PPC_FEATURE_CELL) + init_registers_powerpc_cell64l (); + else if (ppc_hwcap & PPC_FEATURE_HAS_VSX) { /* Power ISA 2.05 (implemented by Power 6 and newer processors) increases the FPSCR from 32 bits to 64 bits. Even though Power 7 @@ -302,7 +309,9 @@ ppc_arch_setup (void) init_registers_powerpc_32l (); ppc_get_hwcap (&ppc_hwcap); - if (ppc_hwcap & PPC_FEATURE_HAS_VSX) + if (ppc_hwcap & PPC_FEATURE_CELL) + init_registers_powerpc_cell32l (); + else if (ppc_hwcap & PPC_FEATURE_HAS_VSX) { if (ppc_hwcap & PPC_FEATURE_HAS_DFP) init_registers_powerpc_isa205_vsx32l (); |