* Makefile.in (clean): Remove new files.
(powerpc-32.o, powerpc-32.c, powerpc-e500.o, powerpc-e500.c) (powerpc-64.o, powerpc-64.c): New rules. * configure.srv: Use alternate register sets for powerpc64-*-linux* with AltiVec, powerpc-*-linux* with AltiVec, and powerpc-*-linux* with SPE. * linux-ppc-low.c (ppc_regmap): Do not fetch the FP registers for SPE targets. (ppc_cannot_store_register): Do not check for FPSCR for SPE targets. (PTRACE_GETVRREGS, PTRACE_SETVRREGS, SIZEOF_VRREGS, ppc_fill_vrregset) (ppc_store_vrregset, PTRACE_GETEVRREGS, PTRACE_SETEVRREGS) (struct gdb_evrregset_t, ppc_fill_evrregset, ppc_store_evrregset): New. (target_regsets): Add AltiVec and SPE register sets. * configure.ac: Check for AltiVec and SPE. * linux-ppc64-low.c (PTRACE_GETVRREGS, PTRACE_SETVRREGS, SIZEOF_VRREGS) (ppc_fill_vrregset, ppc_store_vrregset): New. (target_regsets): Add AltiVec register set. * configure: Regenerated. * features/Makefile (WHICH): Add PowerPC register definitions. (rs6000/powerpc-32-expedite, rs6000/powerpc-e500-expedite) (rs6000/powerpc-64-expedite): New macros. ($(outdir)/%.dat): Handle subdirectories. * regformats/rs6000/powerpc-32.dat, regformats/rs6000/powerpc-64.dat, regformats/rs6000/powerpc-e500.dat: New generated files.
This commit is contained in:
parent
310a98e102
commit
30ed0a8f0b
12 changed files with 610 additions and 8 deletions
|
@ -1,3 +1,12 @@
|
|||
2007-10-15 Daniel Jacobowitz <dan@codesourcery.com>
|
||||
|
||||
* features/Makefile (WHICH): Add PowerPC register definitions.
|
||||
(rs6000/powerpc-32-expedite, rs6000/powerpc-e500-expedite)
|
||||
(rs6000/powerpc-64-expedite): New macros.
|
||||
($(outdir)/%.dat): Handle subdirectories.
|
||||
* regformats/rs6000/powerpc-32.dat, regformats/rs6000/powerpc-64.dat,
|
||||
regformats/rs6000/powerpc-e500.dat: New generated files.
|
||||
|
||||
2007-10-15 Daniel Jacobowitz <dan@codesourcery.com>
|
||||
|
||||
* ppc-linux-nat.c (ppc_linux_read_description): New.
|
||||
|
|
|
@ -31,12 +31,16 @@
|
|||
# in the GDB repository. To generate C files:
|
||||
# make GDB=/path/to/gdb XMLTOC="xml files" cfiles
|
||||
|
||||
WHICH = arm-with-iwmmxt mips-linux mips64-linux
|
||||
WHICH = arm-with-iwmmxt mips-linux mips64-linux \
|
||||
rs6000/powerpc-32 rs6000/powerpc-e500 rs6000/powerpc-64
|
||||
|
||||
# Record which registers should be sent to GDB by default after stop.
|
||||
arm-with-iwmmxt-expedite = r11,sp,pc
|
||||
mips-linux-expedite = r29,pc
|
||||
mips64-linux-expedite = r29,pc
|
||||
rs6000/powerpc-32-expedite = r1,pc
|
||||
rs6000/powerpc-e500-expedite = r1,pc
|
||||
rs6000/powerpc-64-expedite = r1,pc
|
||||
|
||||
XSLTPROC = xsltproc
|
||||
outdir = ../regformats
|
||||
|
@ -50,9 +54,9 @@ all: $(OUTPUTS)
|
|||
|
||||
$(outdir)/%.dat: %.xml number-regs.xsl sort-regs.xsl gdbserver-regs.xsl
|
||||
echo "# DO NOT EDIT: generated from $<" > $(outdir)/$*.tmp
|
||||
echo "name:`echo $* | sed 's/-/_/g'`" >> $(outdir)/$*.tmp
|
||||
echo "name:`echo $(notdir $*) | sed 's/-/_/g'`" >> $(outdir)/$*.tmp
|
||||
echo "expedite:$($*-expedite)" >> $(outdir)/$*.tmp
|
||||
$(XSLTPROC) --xinclude number-regs.xsl $< | \
|
||||
$(XSLTPROC) --path "$(PWD)" --xinclude number-regs.xsl $< | \
|
||||
$(XSLTPROC) sort-regs.xsl - | \
|
||||
$(XSLTPROC) gdbserver-regs.xsl - >> $(outdir)/$*.tmp
|
||||
sh ../../move-if-change $(outdir)/$*.tmp $(outdir)/$*.dat
|
||||
|
|
|
@ -1,3 +1,24 @@
|
|||
2007-10-15 Daniel Jacobowitz <dan@codesourcery.com>
|
||||
|
||||
* Makefile.in (clean): Remove new files.
|
||||
(powerpc-32.o, powerpc-32.c, powerpc-e500.o, powerpc-e500.c)
|
||||
(powerpc-64.o, powerpc-64.c): New rules.
|
||||
* configure.srv: Use alternate register sets for powerpc64-*-linux*
|
||||
with AltiVec, powerpc-*-linux* with AltiVec, and powerpc-*-linux*
|
||||
with SPE.
|
||||
* linux-ppc-low.c (ppc_regmap): Do not fetch the FP registers for
|
||||
SPE targets.
|
||||
(ppc_cannot_store_register): Do not check for FPSCR for SPE targets.
|
||||
(PTRACE_GETVRREGS, PTRACE_SETVRREGS, SIZEOF_VRREGS, ppc_fill_vrregset)
|
||||
(ppc_store_vrregset, PTRACE_GETEVRREGS, PTRACE_SETEVRREGS)
|
||||
(struct gdb_evrregset_t, ppc_fill_evrregset, ppc_store_evrregset): New.
|
||||
(target_regsets): Add AltiVec and SPE register sets.
|
||||
* configure.ac: Check for AltiVec and SPE.
|
||||
* linux-ppc64-low.c (PTRACE_GETVRREGS, PTRACE_SETVRREGS, SIZEOF_VRREGS)
|
||||
(ppc_fill_vrregset, ppc_store_vrregset): New.
|
||||
(target_regsets): Add AltiVec register set.
|
||||
* configure: Regenerated.
|
||||
|
||||
2007-09-19 Daniel Jacobowitz <dan@codesourcery.com>
|
||||
|
||||
* linux-low.c (O_LARGEFILE): Define.
|
||||
|
|
|
@ -219,6 +219,7 @@ clean:
|
|||
rm -f reg-ppc.c reg-sh.c reg-spu.c reg-x86-64.c reg-i386-linux.c
|
||||
rm -f reg-cris.c reg-crisv32.c reg-x86-64-linux.c
|
||||
rm -f arm-with-iwmmxt.c mips-linux.c mips64-linux.c
|
||||
rm -f powerpc-32.c powerpc-64.c powerpc-e500.c
|
||||
rm -f xml-builtin.c stamp-xml target.xml
|
||||
|
||||
maintainer-clean realclean distclean: clean
|
||||
|
@ -356,6 +357,15 @@ reg-ppc.c : $(srcdir)/../regformats/reg-ppc.dat $(regdat_sh)
|
|||
reg-ppc64.o : reg-ppc64.c $(regdef_h)
|
||||
reg-ppc64.c : $(srcdir)/../regformats/reg-ppc64.dat $(regdat_sh)
|
||||
sh $(regdat_sh) $(srcdir)/../regformats/reg-ppc64.dat reg-ppc64.c
|
||||
powerpc-32.o : powerpc-32.c $(regdef_h)
|
||||
powerpc-32.c : $(srcdir)/../regformats/rs6000/powerpc-32.dat $(regdat_sh)
|
||||
sh $(regdat_sh) $(srcdir)/../regformats/rs6000/powerpc-32.dat powerpc-32.c
|
||||
powerpc-e500.o : powerpc-e500.c $(regdef_h)
|
||||
powerpc-e500.c : $(srcdir)/../regformats/rs6000/powerpc-e500.dat $(regdat_sh)
|
||||
sh $(regdat_sh) $(srcdir)/../regformats/rs6000/powerpc-e500.dat powerpc-e500.c
|
||||
powerpc-64.o : powerpc-64.c $(regdef_h)
|
||||
powerpc-64.c : $(srcdir)/../regformats/rs6000/powerpc-64.dat $(regdat_sh)
|
||||
sh $(regdat_sh) $(srcdir)/../regformats/rs6000/powerpc-64.dat powerpc-64.c
|
||||
reg-s390.o : reg-s390.c $(regdef_h)
|
||||
reg-s390.c : $(srcdir)/../regformats/reg-s390.dat $(regdat_sh)
|
||||
sh $(regdat_sh) $(srcdir)/../regformats/reg-s390.dat reg-s390.c
|
||||
|
|
64
gdb/gdbserver/configure
vendored
64
gdb/gdbserver/configure
vendored
|
@ -3567,6 +3567,70 @@ fi
|
|||
echo "$as_me:$LINENO: result: $gdb_cv_arm_iwmmxt" >&5
|
||||
echo "${ECHO_T}$gdb_cv_arm_iwmmxt" >&6
|
||||
;;
|
||||
powerpc*-*-*)
|
||||
echo "$as_me:$LINENO: checking if Altivec is selected" >&5
|
||||
echo $ECHO_N "checking if Altivec is selected... $ECHO_C" >&6
|
||||
if test "${gdb_cv_ppc_altivec+set}" = set; then
|
||||
echo $ECHO_N "(cached) $ECHO_C" >&6
|
||||
else
|
||||
save_CPPFLAGS="$CPPFLAGS"
|
||||
CPPFLAGS="$CPPFLAGS $CFLAGS"
|
||||
cat >conftest.$ac_ext <<_ACEOF
|
||||
/* confdefs.h. */
|
||||
_ACEOF
|
||||
cat confdefs.h >>conftest.$ac_ext
|
||||
cat >>conftest.$ac_ext <<_ACEOF
|
||||
/* end confdefs.h. */
|
||||
|
||||
#ifdef __ALTIVEC__
|
||||
got it
|
||||
#endif
|
||||
|
||||
_ACEOF
|
||||
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
|
||||
$EGREP "got it" >/dev/null 2>&1; then
|
||||
gdb_cv_ppc_altivec=yes
|
||||
else
|
||||
gdb_cv_ppc_altivec=no
|
||||
fi
|
||||
rm -f conftest*
|
||||
|
||||
CPPFLAGS="$save_CPPFLAGS"
|
||||
fi
|
||||
echo "$as_me:$LINENO: result: $gdb_cv_ppc_altivec" >&5
|
||||
echo "${ECHO_T}$gdb_cv_ppc_altivec" >&6
|
||||
echo "$as_me:$LINENO: checking if SPE is selected" >&5
|
||||
echo $ECHO_N "checking if SPE is selected... $ECHO_C" >&6
|
||||
if test "${gdb_cv_ppc_spe+set}" = set; then
|
||||
echo $ECHO_N "(cached) $ECHO_C" >&6
|
||||
else
|
||||
save_CPPFLAGS="$CPPFLAGS"
|
||||
CPPFLAGS="$CPPFLAGS $CFLAGS"
|
||||
cat >conftest.$ac_ext <<_ACEOF
|
||||
/* confdefs.h. */
|
||||
_ACEOF
|
||||
cat confdefs.h >>conftest.$ac_ext
|
||||
cat >>conftest.$ac_ext <<_ACEOF
|
||||
/* end confdefs.h. */
|
||||
|
||||
#ifdef __SPE__
|
||||
got it
|
||||
#endif
|
||||
|
||||
_ACEOF
|
||||
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
|
||||
$EGREP "got it" >/dev/null 2>&1; then
|
||||
gdb_cv_ppc_spe=yes
|
||||
else
|
||||
gdb_cv_ppc_spe=no
|
||||
fi
|
||||
rm -f conftest*
|
||||
|
||||
CPPFLAGS="$save_CPPFLAGS"
|
||||
fi
|
||||
echo "$as_me:$LINENO: result: $gdb_cv_ppc_spe" >&5
|
||||
echo "${ECHO_T}$gdb_cv_ppc_spe" >&6
|
||||
;;
|
||||
esac
|
||||
|
||||
. ${srcdir}/configure.srv
|
||||
|
|
|
@ -81,6 +81,28 @@ got it
|
|||
[gdb_cv_arm_iwmmxt=no])
|
||||
CPPFLAGS="$save_CPPFLAGS"])
|
||||
;;
|
||||
powerpc*-*-*)
|
||||
AC_CACHE_CHECK([if Altivec is selected], [gdb_cv_ppc_altivec],
|
||||
[save_CPPFLAGS="$CPPFLAGS"
|
||||
CPPFLAGS="$CPPFLAGS $CFLAGS"
|
||||
AC_EGREP_CPP([got it], [
|
||||
#ifdef __ALTIVEC__
|
||||
got it
|
||||
#endif
|
||||
], [gdb_cv_ppc_altivec=yes],
|
||||
[gdb_cv_ppc_altivec=no])
|
||||
CPPFLAGS="$save_CPPFLAGS"])
|
||||
AC_CACHE_CHECK([if SPE is selected], [gdb_cv_ppc_spe],
|
||||
[save_CPPFLAGS="$CPPFLAGS"
|
||||
CPPFLAGS="$CPPFLAGS $CFLAGS"
|
||||
AC_EGREP_CPP([got it], [
|
||||
#ifdef __SPE__
|
||||
got it
|
||||
#endif
|
||||
], [gdb_cv_ppc_spe=yes],
|
||||
[gdb_cv_ppc_spe=no])
|
||||
CPPFLAGS="$save_CPPFLAGS"])
|
||||
;;
|
||||
esac
|
||||
|
||||
. ${srcdir}/configure.srv
|
||||
|
|
|
@ -99,17 +99,38 @@ case "${target}" in
|
|||
srv_linux_usrregs=yes
|
||||
srv_linux_thread_db=yes
|
||||
;;
|
||||
powerpc64-*-linux*) srv_regobj=reg-ppc64.o
|
||||
srv_tgtobj="linux-low.o linux-ppc64-low.o"
|
||||
powerpc64-*-linux*) srv_tgtobj="linux-low.o linux-ppc64-low.o"
|
||||
srv_linux_usrregs=yes
|
||||
srv_linux_regsets=yes
|
||||
srv_linux_thread_db=yes
|
||||
if test $gdb_cv_ppc_altivec = yes; then
|
||||
srv_regobj=powerpc-64.o
|
||||
srv_xmltarget=rs6000/powerpc-64.xml
|
||||
srv_xmlfiles="rs6000/power-altivec.xml"
|
||||
srv_xmlfiles="$srv_xmlfiles rs6000/power64-core.xml"
|
||||
srv_xmlfiles="$srv_xmlfiles rs6000/power-fpu.xml"
|
||||
else
|
||||
srv_regobj=reg-ppc64.o
|
||||
fi
|
||||
;;
|
||||
powerpc-*-linux*) srv_regobj=reg-ppc.o
|
||||
srv_tgtobj="linux-low.o linux-ppc-low.o"
|
||||
powerpc-*-linux*) srv_tgtobj="linux-low.o linux-ppc-low.o"
|
||||
srv_linux_usrregs=yes
|
||||
srv_linux_regsets=yes
|
||||
srv_linux_thread_db=yes
|
||||
if test $gdb_cv_ppc_altivec = yes; then
|
||||
srv_regobj=powerpc-32.o
|
||||
srv_xmltarget=rs6000/powerpc-32.xml
|
||||
srv_xmlfiles="rs6000/power-altivec.xml"
|
||||
srv_xmlfiles="$srv_xmlfiles rs6000/power-core.xml"
|
||||
srv_xmlfiles="$srv_xmlfiles rs6000/power-fpu.xml"
|
||||
elif test $gdb_cv_ppc_spe = yes; then
|
||||
srv_regobj=powerpc-e500.o
|
||||
srv_xmltarget=rs6000/powerpc-e500.xml
|
||||
srv_xmlfiles="rs6000/power-spe.xml"
|
||||
srv_xmlfiles="$srv_xmlfiles rs6000/power-core.xml"
|
||||
else
|
||||
srv_regobj=reg-ppc.o
|
||||
fi
|
||||
;;
|
||||
s390-*-linux*) srv_regobj=reg-s390.o
|
||||
srv_tgtobj="linux-low.o linux-s390-low.o"
|
||||
|
|
|
@ -35,6 +35,16 @@ static int ppc_regmap[] =
|
|||
PT_R20 * 4, PT_R21 * 4, PT_R22 * 4, PT_R23 * 4,
|
||||
PT_R24 * 4, PT_R25 * 4, PT_R26 * 4, PT_R27 * 4,
|
||||
PT_R28 * 4, PT_R29 * 4, PT_R30 * 4, PT_R31 * 4,
|
||||
#ifdef __SPE__
|
||||
-1, -1, -1, -1,
|
||||
-1, -1, -1, -1,
|
||||
-1, -1, -1, -1,
|
||||
-1, -1, -1, -1,
|
||||
-1, -1, -1, -1,
|
||||
-1, -1, -1, -1,
|
||||
-1, -1, -1, -1,
|
||||
-1, -1, -1, -1,
|
||||
#else
|
||||
PT_FPR0*4, PT_FPR0*4 + 8, PT_FPR0*4+16, PT_FPR0*4+24,
|
||||
PT_FPR0*4+32, PT_FPR0*4+40, PT_FPR0*4+48, PT_FPR0*4+56,
|
||||
PT_FPR0*4+64, PT_FPR0*4+72, PT_FPR0*4+80, PT_FPR0*4+88,
|
||||
|
@ -43,15 +53,23 @@ static int ppc_regmap[] =
|
|||
PT_FPR0*4+160, PT_FPR0*4+168, PT_FPR0*4+176, PT_FPR0*4+184,
|
||||
PT_FPR0*4+192, PT_FPR0*4+200, PT_FPR0*4+208, PT_FPR0*4+216,
|
||||
PT_FPR0*4+224, PT_FPR0*4+232, PT_FPR0*4+240, PT_FPR0*4+248,
|
||||
#endif
|
||||
PT_NIP * 4, PT_MSR * 4, PT_CCR * 4, PT_LNK * 4,
|
||||
PT_CTR * 4, PT_XER * 4, PT_FPSCR * 4, };
|
||||
#ifdef __SPE__
|
||||
PT_CTR * 4, PT_XER * 4, -1
|
||||
#else
|
||||
PT_CTR * 4, PT_XER * 4, PT_FPSCR * 4
|
||||
#endif
|
||||
};
|
||||
|
||||
static int
|
||||
ppc_cannot_store_register (int regno)
|
||||
{
|
||||
#ifndef __SPE__
|
||||
/* Some kernels do not allow us to store fpscr. */
|
||||
if (regno == find_regno ("fpscr"))
|
||||
return 2;
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -113,7 +131,101 @@ static void ppc_fill_gregset (void *buf)
|
|||
collect_register (i, (char *) buf + ppc_regmap[i]);
|
||||
}
|
||||
|
||||
#ifdef __ALTIVEC__
|
||||
|
||||
#ifndef PTRACE_GETVRREGS
|
||||
#define PTRACE_GETVRREGS 18
|
||||
#define PTRACE_SETVRREGS 19
|
||||
#endif
|
||||
|
||||
#define SIZEOF_VRREGS 33*16+4
|
||||
|
||||
static void
|
||||
ppc_fill_vrregset (void *buf)
|
||||
{
|
||||
int i, base;
|
||||
char *regset = buf;
|
||||
|
||||
base = find_regno ("vr0");
|
||||
for (i = 0; i < 32; i++)
|
||||
collect_register (base + i, ®set[i * 16]);
|
||||
|
||||
collect_register_by_name ("vscr", ®set[32 * 16 + 12]);
|
||||
collect_register_by_name ("vrsave", ®set[33 * 16]);
|
||||
}
|
||||
|
||||
static void
|
||||
ppc_store_vrregset (const void *buf)
|
||||
{
|
||||
int i, base;
|
||||
const char *regset = buf;
|
||||
|
||||
base = find_regno ("vr0");
|
||||
for (i = 0; i < 32; i++)
|
||||
supply_register (base + i, ®set[i * 16]);
|
||||
|
||||
supply_register_by_name ("vscr", ®set[32 * 16 + 12]);
|
||||
supply_register_by_name ("vrsave", ®set[33 * 16]);
|
||||
}
|
||||
|
||||
#endif /* __ALTIVEC__ */
|
||||
|
||||
#ifdef __SPE__
|
||||
|
||||
#ifndef PTRACE_GETEVRREGS
|
||||
#define PTRACE_GETEVRREGS 20
|
||||
#define PTRACE_SETEVRREGS 21
|
||||
#endif
|
||||
|
||||
struct gdb_evrregset_t
|
||||
{
|
||||
unsigned long evr[32];
|
||||
unsigned long long acc;
|
||||
unsigned long spefscr;
|
||||
};
|
||||
|
||||
static void
|
||||
ppc_fill_evrregset (void *buf)
|
||||
{
|
||||
int i, ev0;
|
||||
struct gdb_evrregset_t *regset = buf;
|
||||
|
||||
ev0 = find_regno ("ev0h");
|
||||
for (i = 0; i < 32; i++)
|
||||
collect_register (ev0 + i, ®set->evr[i]);
|
||||
|
||||
collect_register_by_name ("acc", ®set->acc);
|
||||
collect_register_by_name ("spefscr", ®set->spefscr);
|
||||
}
|
||||
|
||||
static void
|
||||
ppc_store_evrregset (const void *buf)
|
||||
{
|
||||
int i, ev0;
|
||||
const struct gdb_evrregset_t *regset = buf;
|
||||
|
||||
ev0 = find_regno ("ev0h");
|
||||
for (i = 0; i < 32; i++)
|
||||
supply_register (ev0 + i, ®set->evr[i]);
|
||||
|
||||
supply_register_by_name ("acc", ®set->acc);
|
||||
supply_register_by_name ("spefscr", ®set->spefscr);
|
||||
}
|
||||
#endif /* __SPE__ */
|
||||
|
||||
struct regset_info target_regsets[] = {
|
||||
/* List the extra register sets before GENERAL_REGS. That way we will
|
||||
fetch them every time, but still fall back to PTRACE_PEEKUSER for the
|
||||
general registers. Some kernels support these, but not the newer
|
||||
PPC_PTRACE_GETREGS. */
|
||||
#ifdef __ALTIVEC__
|
||||
{ PTRACE_GETVRREGS, PTRACE_SETVRREGS, SIZEOF_VRREGS, EXTENDED_REGS,
|
||||
ppc_fill_vrregset, ppc_store_vrregset },
|
||||
#endif
|
||||
#ifdef __SPE__
|
||||
{ PTRACE_GETEVRREGS, PTRACE_SETEVRREGS, 32 * 4 + 8 + 4, EXTENDED_REGS,
|
||||
ppc_fill_evrregset, ppc_store_evrregset },
|
||||
#endif
|
||||
{ 0, 0, 0, GENERAL_REGS, ppc_fill_gregset, NULL },
|
||||
{ 0, 0, -1, -1, NULL, NULL }
|
||||
};
|
||||
|
|
|
@ -109,7 +109,54 @@ static void ppc_fill_gregset (void *buf)
|
|||
collect_register (i, (char *) buf + ppc_regmap[i]);
|
||||
}
|
||||
|
||||
#ifdef __ALTIVEC__
|
||||
|
||||
#ifndef PTRACE_GETVRREGS
|
||||
#define PTRACE_GETVRREGS 18
|
||||
#define PTRACE_SETVRREGS 19
|
||||
#endif
|
||||
|
||||
#define SIZEOF_VRREGS 33*16+4
|
||||
|
||||
static void
|
||||
ppc_fill_vrregset (void *buf)
|
||||
{
|
||||
int i, base;
|
||||
char *regset = buf;
|
||||
|
||||
base = find_regno ("vr0");
|
||||
for (i = 0; i < 32; i++)
|
||||
collect_register (base + i, ®set[i * 16]);
|
||||
|
||||
collect_register_by_name ("vscr", ®set[32 * 16 + 12]);
|
||||
collect_register_by_name ("vrsave", ®set[33 * 16]);
|
||||
}
|
||||
|
||||
static void
|
||||
ppc_store_vrregset (const void *buf)
|
||||
{
|
||||
int i, base;
|
||||
const char *regset = buf;
|
||||
|
||||
base = find_regno ("vr0");
|
||||
for (i = 0; i < 32; i++)
|
||||
supply_register (base + i, ®set[i * 16]);
|
||||
|
||||
supply_register_by_name ("vscr", ®set[32 * 16 + 12]);
|
||||
supply_register_by_name ("vrsave", ®set[33 * 16]);
|
||||
}
|
||||
|
||||
#endif /* __ALTIVEC__ */
|
||||
|
||||
struct regset_info target_regsets[] = {
|
||||
/* List the extra register sets before GENERAL_REGS. That way we will
|
||||
fetch them every time, but still fall back to PTRACE_PEEKUSER for the
|
||||
general registers. Some kernels support these, but not the newer
|
||||
PPC_PTRACE_GETREGS. */
|
||||
#ifdef __ALTIVEC__
|
||||
{ PTRACE_GETVRREGS, PTRACE_SETVRREGS, SIZEOF_VRREGS, EXTENDED_REGS,
|
||||
ppc_fill_vrregset, ppc_store_vrregset },
|
||||
#endif
|
||||
{ 0, 0, 0, GENERAL_REGS, ppc_fill_gregset, NULL },
|
||||
{ 0, 0, -1, -1, NULL, NULL }
|
||||
};
|
||||
|
|
108
gdb/regformats/rs6000/powerpc-32.dat
Normal file
108
gdb/regformats/rs6000/powerpc-32.dat
Normal file
|
@ -0,0 +1,108 @@
|
|||
# DO NOT EDIT: generated from rs6000/powerpc-32.xml
|
||||
name:powerpc_32
|
||||
expedite:r1,pc
|
||||
32:r0
|
||||
32:r1
|
||||
32:r2
|
||||
32:r3
|
||||
32:r4
|
||||
32:r5
|
||||
32:r6
|
||||
32:r7
|
||||
32:r8
|
||||
32:r9
|
||||
32:r10
|
||||
32:r11
|
||||
32:r12
|
||||
32:r13
|
||||
32:r14
|
||||
32:r15
|
||||
32:r16
|
||||
32:r17
|
||||
32:r18
|
||||
32:r19
|
||||
32:r20
|
||||
32:r21
|
||||
32:r22
|
||||
32:r23
|
||||
32:r24
|
||||
32:r25
|
||||
32:r26
|
||||
32:r27
|
||||
32:r28
|
||||
32:r29
|
||||
32:r30
|
||||
32:r31
|
||||
64:f0
|
||||
64:f1
|
||||
64:f2
|
||||
64:f3
|
||||
64:f4
|
||||
64:f5
|
||||
64:f6
|
||||
64:f7
|
||||
64:f8
|
||||
64:f9
|
||||
64:f10
|
||||
64:f11
|
||||
64:f12
|
||||
64:f13
|
||||
64:f14
|
||||
64:f15
|
||||
64:f16
|
||||
64:f17
|
||||
64:f18
|
||||
64:f19
|
||||
64:f20
|
||||
64:f21
|
||||
64:f22
|
||||
64:f23
|
||||
64:f24
|
||||
64:f25
|
||||
64:f26
|
||||
64:f27
|
||||
64:f28
|
||||
64:f29
|
||||
64:f30
|
||||
64:f31
|
||||
32:pc
|
||||
32:msr
|
||||
32:cr
|
||||
32:lr
|
||||
32:ctr
|
||||
32:xer
|
||||
32:fpscr
|
||||
128:vr0
|
||||
128:vr1
|
||||
128:vr2
|
||||
128:vr3
|
||||
128:vr4
|
||||
128:vr5
|
||||
128:vr6
|
||||
128:vr7
|
||||
128:vr8
|
||||
128:vr9
|
||||
128:vr10
|
||||
128:vr11
|
||||
128:vr12
|
||||
128:vr13
|
||||
128:vr14
|
||||
128:vr15
|
||||
128:vr16
|
||||
128:vr17
|
||||
128:vr18
|
||||
128:vr19
|
||||
128:vr20
|
||||
128:vr21
|
||||
128:vr22
|
||||
128:vr23
|
||||
128:vr24
|
||||
128:vr25
|
||||
128:vr26
|
||||
128:vr27
|
||||
128:vr28
|
||||
128:vr29
|
||||
128:vr30
|
||||
128:vr31
|
||||
32:vscr
|
||||
32:vrsave
|
108
gdb/regformats/rs6000/powerpc-64.dat
Normal file
108
gdb/regformats/rs6000/powerpc-64.dat
Normal file
|
@ -0,0 +1,108 @@
|
|||
# DO NOT EDIT: generated from rs6000/powerpc-64.xml
|
||||
name:powerpc_64
|
||||
expedite:r1,pc
|
||||
64:r0
|
||||
64:r1
|
||||
64:r2
|
||||
64:r3
|
||||
64:r4
|
||||
64:r5
|
||||
64:r6
|
||||
64:r7
|
||||
64:r8
|
||||
64:r9
|
||||
64:r10
|
||||
64:r11
|
||||
64:r12
|
||||
64:r13
|
||||
64:r14
|
||||
64:r15
|
||||
64:r16
|
||||
64:r17
|
||||
64:r18
|
||||
64:r19
|
||||
64:r20
|
||||
64:r21
|
||||
64:r22
|
||||
64:r23
|
||||
64:r24
|
||||
64:r25
|
||||
64:r26
|
||||
64:r27
|
||||
64:r28
|
||||
64:r29
|
||||
64:r30
|
||||
64:r31
|
||||
64:f0
|
||||
64:f1
|
||||
64:f2
|
||||
64:f3
|
||||
64:f4
|
||||
64:f5
|
||||
64:f6
|
||||
64:f7
|
||||
64:f8
|
||||
64:f9
|
||||
64:f10
|
||||
64:f11
|
||||
64:f12
|
||||
64:f13
|
||||
64:f14
|
||||
64:f15
|
||||
64:f16
|
||||
64:f17
|
||||
64:f18
|
||||
64:f19
|
||||
64:f20
|
||||
64:f21
|
||||
64:f22
|
||||
64:f23
|
||||
64:f24
|
||||
64:f25
|
||||
64:f26
|
||||
64:f27
|
||||
64:f28
|
||||
64:f29
|
||||
64:f30
|
||||
64:f31
|
||||
64:pc
|
||||
64:msr
|
||||
32:cr
|
||||
64:lr
|
||||
64:ctr
|
||||
32:xer
|
||||
32:fpscr
|
||||
128:vr0
|
||||
128:vr1
|
||||
128:vr2
|
||||
128:vr3
|
||||
128:vr4
|
||||
128:vr5
|
||||
128:vr6
|
||||
128:vr7
|
||||
128:vr8
|
||||
128:vr9
|
||||
128:vr10
|
||||
128:vr11
|
||||
128:vr12
|
||||
128:vr13
|
||||
128:vr14
|
||||
128:vr15
|
||||
128:vr16
|
||||
128:vr17
|
||||
128:vr18
|
||||
128:vr19
|
||||
128:vr20
|
||||
128:vr21
|
||||
128:vr22
|
||||
128:vr23
|
||||
128:vr24
|
||||
128:vr25
|
||||
128:vr26
|
||||
128:vr27
|
||||
128:vr28
|
||||
128:vr29
|
||||
128:vr30
|
||||
128:vr31
|
||||
32:vscr
|
||||
32:vrsave
|
76
gdb/regformats/rs6000/powerpc-e500.dat
Normal file
76
gdb/regformats/rs6000/powerpc-e500.dat
Normal file
|
@ -0,0 +1,76 @@
|
|||
# DO NOT EDIT: generated from rs6000/powerpc-e500.xml
|
||||
name:powerpc_e500
|
||||
expedite:r1,pc
|
||||
32:r0
|
||||
32:r1
|
||||
32:r2
|
||||
32:r3
|
||||
32:r4
|
||||
32:r5
|
||||
32:r6
|
||||
32:r7
|
||||
32:r8
|
||||
32:r9
|
||||
32:r10
|
||||
32:r11
|
||||
32:r12
|
||||
32:r13
|
||||
32:r14
|
||||
32:r15
|
||||
32:r16
|
||||
32:r17
|
||||
32:r18
|
||||
32:r19
|
||||
32:r20
|
||||
32:r21
|
||||
32:r22
|
||||
32:r23
|
||||
32:r24
|
||||
32:r25
|
||||
32:r26
|
||||
32:r27
|
||||
32:r28
|
||||
32:r29
|
||||
32:r30
|
||||
32:r31
|
||||
32:ev0h
|
||||
32:ev1h
|
||||
32:ev2h
|
||||
32:ev3h
|
||||
32:ev4h
|
||||
32:ev5h
|
||||
32:ev6h
|
||||
32:ev7h
|
||||
32:ev8h
|
||||
32:ev9h
|
||||
32:ev10h
|
||||
32:ev11h
|
||||
32:ev12h
|
||||
32:ev13h
|
||||
32:ev14h
|
||||
32:ev15h
|
||||
32:ev16h
|
||||
32:ev17h
|
||||
32:ev18h
|
||||
32:ev19h
|
||||
32:ev20h
|
||||
32:ev21h
|
||||
32:ev22h
|
||||
32:ev23h
|
||||
32:ev24h
|
||||
32:ev25h
|
||||
32:ev26h
|
||||
32:ev27h
|
||||
32:ev28h
|
||||
32:ev29h
|
||||
32:ev30h
|
||||
32:ev31h
|
||||
32:pc
|
||||
32:msr
|
||||
32:cr
|
||||
32:lr
|
||||
32:ctr
|
||||
32:xer
|
||||
0:
|
||||
64:acc
|
||||
32:spefscr
|
Loading…
Reference in a new issue