From 30ed0a8f0b4557aeb8bbbeee1bb1904bc45f747e Mon Sep 17 00:00:00 2001 From: Daniel Jacobowitz Date: Mon, 15 Oct 2007 19:58:17 +0000 Subject: [PATCH] * 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. --- gdb/ChangeLog | 9 ++ gdb/features/Makefile | 10 ++- gdb/gdbserver/ChangeLog | 21 +++++ gdb/gdbserver/Makefile.in | 10 +++ gdb/gdbserver/configure | 64 ++++++++++++++ gdb/gdbserver/configure.ac | 22 +++++ gdb/gdbserver/configure.srv | 29 ++++++- gdb/gdbserver/linux-ppc-low.c | 114 ++++++++++++++++++++++++- gdb/gdbserver/linux-ppc64-low.c | 47 ++++++++++ gdb/regformats/rs6000/powerpc-32.dat | 108 +++++++++++++++++++++++ gdb/regformats/rs6000/powerpc-64.dat | 108 +++++++++++++++++++++++ gdb/regformats/rs6000/powerpc-e500.dat | 76 +++++++++++++++++ 12 files changed, 610 insertions(+), 8 deletions(-) create mode 100644 gdb/regformats/rs6000/powerpc-32.dat create mode 100644 gdb/regformats/rs6000/powerpc-64.dat create mode 100644 gdb/regformats/rs6000/powerpc-e500.dat diff --git a/gdb/ChangeLog b/gdb/ChangeLog index c8f1e9ea309..9c441c285e4 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,12 @@ +2007-10-15 Daniel Jacobowitz + + * 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 * ppc-linux-nat.c (ppc_linux_read_description): New. diff --git a/gdb/features/Makefile b/gdb/features/Makefile index b81c1b82bfb..ab8a1a19ed2 100644 --- a/gdb/features/Makefile +++ b/gdb/features/Makefile @@ -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 diff --git a/gdb/gdbserver/ChangeLog b/gdb/gdbserver/ChangeLog index c56f22f87d2..bafe109e1e0 100644 --- a/gdb/gdbserver/ChangeLog +++ b/gdb/gdbserver/ChangeLog @@ -1,3 +1,24 @@ +2007-10-15 Daniel Jacobowitz + + * 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 * linux-low.c (O_LARGEFILE): Define. diff --git a/gdb/gdbserver/Makefile.in b/gdb/gdbserver/Makefile.in index 4ebf5083046..a9ccf0e0239 100644 --- a/gdb/gdbserver/Makefile.in +++ b/gdb/gdbserver/Makefile.in @@ -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 diff --git a/gdb/gdbserver/configure b/gdb/gdbserver/configure index a283dcfbff6..0b5ed9d87c6 100755 --- a/gdb/gdbserver/configure +++ b/gdb/gdbserver/configure @@ -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 diff --git a/gdb/gdbserver/configure.ac b/gdb/gdbserver/configure.ac index de996ba8d2e..4e94f3146b3 100644 --- a/gdb/gdbserver/configure.ac +++ b/gdb/gdbserver/configure.ac @@ -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 diff --git a/gdb/gdbserver/configure.srv b/gdb/gdbserver/configure.srv index f62d276c184..24ee3089776 100644 --- a/gdb/gdbserver/configure.srv +++ b/gdb/gdbserver/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" diff --git a/gdb/gdbserver/linux-ppc-low.c b/gdb/gdbserver/linux-ppc-low.c index ed8cdc1e4fa..14ee29bf2d1 100644 --- a/gdb/gdbserver/linux-ppc-low.c +++ b/gdb/gdbserver/linux-ppc-low.c @@ -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 } }; diff --git a/gdb/gdbserver/linux-ppc64-low.c b/gdb/gdbserver/linux-ppc64-low.c index 9f6de8285f3..934ac4624be 100644 --- a/gdb/gdbserver/linux-ppc64-low.c +++ b/gdb/gdbserver/linux-ppc64-low.c @@ -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 } }; diff --git a/gdb/regformats/rs6000/powerpc-32.dat b/gdb/regformats/rs6000/powerpc-32.dat new file mode 100644 index 00000000000..80dd9f3e610 --- /dev/null +++ b/gdb/regformats/rs6000/powerpc-32.dat @@ -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 diff --git a/gdb/regformats/rs6000/powerpc-64.dat b/gdb/regformats/rs6000/powerpc-64.dat new file mode 100644 index 00000000000..00573d325f9 --- /dev/null +++ b/gdb/regformats/rs6000/powerpc-64.dat @@ -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 diff --git a/gdb/regformats/rs6000/powerpc-e500.dat b/gdb/regformats/rs6000/powerpc-e500.dat new file mode 100644 index 00000000000..5d33c59337e --- /dev/null +++ b/gdb/regformats/rs6000/powerpc-e500.dat @@ -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 -- 2.30.2