diff options
author | Ulrich Weigand <uweigand@de.ibm.com> | 2009-07-31 15:23:21 +0000 |
---|---|---|
committer | Ulrich Weigand <uweigand@de.ibm.com> | 2009-07-31 15:23:21 +0000 |
commit | f4d9badee6725f50cb4ebc607fad078a7da64584 (patch) | |
tree | 9eec2f5c46d74bbd41eb657d368296296212938f /gdb/ppc-linux-nat.c | |
parent | e35359c551b7ae1fb3bf1cdff1c58f3abafa07fb (diff) | |
download | gdb-f4d9badee6725f50cb4ebc607fad078a7da64584.zip gdb-f4d9badee6725f50cb4ebc607fad078a7da64584.tar.gz gdb-f4d9badee6725f50cb4ebc607fad078a7da64584.tar.bz2 |
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.
Diffstat (limited to 'gdb/ppc-linux-nat.c')
-rw-r--r-- | gdb/ppc-linux-nat.c | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/gdb/ppc-linux-nat.c b/gdb/ppc-linux-nat.c index 2447cc0..47b74ad 100644 --- a/gdb/ppc-linux-nat.c +++ b/gdb/ppc-linux-nat.c @@ -60,6 +60,9 @@ If they aren't, we can provide them ourselves (their values are fixed because they are part of the kernel ABI). They are used in the AT_HWCAP entry of the AUXV. */ +#ifndef PPC_FEATURE_CELL +#define PPC_FEATURE_CELL 0x00010000 +#endif #ifndef PPC_FEATURE_BOOKE #define PPC_FEATURE_BOOKE 0x00008000 #endif @@ -1547,6 +1550,7 @@ ppc_linux_read_description (struct target_ops *ops) int altivec = 0; int vsx = 0; int isa205 = 0; + int cell = 0; int tid = TIDGET (inferior_ptid); if (tid == 0) @@ -1600,9 +1604,14 @@ ppc_linux_read_description (struct target_ops *ops) if (ppc_linux_get_hwcap () & PPC_FEATURE_HAS_DFP) isa205 = 1; + if (ppc_linux_get_hwcap () & PPC_FEATURE_CELL) + cell = 1; + if (ppc_linux_target_wordsize () == 8) { - if (vsx) + if (cell) + return tdesc_powerpc_cell64l; + else if (vsx) return isa205? tdesc_powerpc_isa205_vsx64l : tdesc_powerpc_vsx64l; else if (altivec) return isa205? tdesc_powerpc_isa205_altivec64l : tdesc_powerpc_altivec64l; @@ -1610,7 +1619,9 @@ ppc_linux_read_description (struct target_ops *ops) return isa205? tdesc_powerpc_isa205_64l : tdesc_powerpc_64l; } - if (vsx) + if (cell) + return tdesc_powerpc_cell32l; + else if (vsx) return isa205? tdesc_powerpc_isa205_vsx32l : tdesc_powerpc_vsx32l; else if (altivec) return isa205? tdesc_powerpc_isa205_altivec32l : tdesc_powerpc_altivec32l; |