This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[patch] gdbserver support for e500 / altivec


And finally, the end of my patch flood for today.  This patch teaches
gdbserver about the e500 and AltiVec vector register sets, and lets
it return an XML description to GDB indicating which registers are
present.

I've tested this by hand on targets with AltiVec, SPE, and neither.
I'll commit it after the various patches it depends on, which I've
posted earlier today.

Oh, I suppose this needs a NEWS entry.  I'll handle that after it's
checked in.

-- 
Daniel Jacobowitz
CodeSourcery

2007-10-05  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.

	* 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/features/Makefile                  |   10 ++
 gdb/gdbserver/Makefile.in              |   10 ++
 gdb/gdbserver/configure                |   64 ++++++++++++++++++
 gdb/gdbserver/configure.ac             |   22 ++++++
 gdb/gdbserver/configure.srv            |   31 +++++++-
 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 ++++++++++++++++++++++
 10 files changed, 581 insertions(+), 9 deletions(-)

Index: src/gdb/gdbserver/configure
===================================================================
--- src.orig/gdb/gdbserver/configure	2007-10-04 14:23:56.000000000 -0400
+++ src/gdb/gdbserver/configure	2007-10-04 16:06:09.000000000 -0400
@@ -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
Index: src/gdb/gdbserver/Makefile.in
===================================================================
--- src.orig/gdb/gdbserver/Makefile.in	2007-10-04 14:23:56.000000000 -0400
+++ src/gdb/gdbserver/Makefile.in	2007-10-04 16:31:05.000000000 -0400
@@ -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-
 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
Index: src/gdb/gdbserver/configure.srv
===================================================================
--- src.orig/gdb/gdbserver/configure.srv	2007-10-04 14:23:56.000000000 -0400
+++ src/gdb/gdbserver/configure.srv	2007-10-04 16:06:09.000000000 -0400
@@ -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
-			;;
-  powerpc-*-linux*)	srv_regobj=reg-ppc.o
-			srv_tgtobj="linux-low.o linux-ppc-low.o"
+			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_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"
Index: src/gdb/gdbserver/linux-ppc-low.c
===================================================================
--- src.orig/gdb/gdbserver/linux-ppc-low.c	2007-10-04 14:23:56.000000000 -0400
+++ src/gdb/gdbserver/linux-ppc-low.c	2007-10-04 16:17:11.000000000 -0400
@@ -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, &regset[i * 16]);
+
+  collect_register_by_name ("vscr", &regset[32 * 16 + 12]);
+  collect_register_by_name ("vrsave", &regset[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, &regset[i * 16]);
+
+  supply_register_by_name ("vscr", &regset[32 * 16 + 12]);
+  supply_register_by_name ("vrsave", &regset[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, &regset->evr[i]);
+
+  collect_register_by_name ("acc", &regset->acc);
+  collect_register_by_name ("spefscr", &regset->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, &regset->evr[i]);
+
+  supply_register_by_name ("acc", &regset->acc);
+  supply_register_by_name ("spefscr", &regset->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 }
 };
Index: src/gdb/gdbserver/configure.ac
===================================================================
--- src.orig/gdb/gdbserver/configure.ac	2007-10-04 14:23:57.000000000 -0400
+++ src/gdb/gdbserver/configure.ac	2007-10-04 16:06:09.000000000 -0400
@@ -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
Index: src/gdb/gdbserver/linux-ppc64-low.c
===================================================================
--- src.orig/gdb/gdbserver/linux-ppc64-low.c	2007-10-04 14:23:57.000000000 -0400
+++ src/gdb/gdbserver/linux-ppc64-low.c	2007-10-04 16:06:09.000000000 -0400
@@ -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, &regset[i * 16]);
+
+  collect_register_by_name ("vscr", &regset[32 * 16 + 12]);
+  collect_register_by_name ("vrsave", &regset[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, &regset[i * 16]);
+
+  supply_register_by_name ("vscr", &regset[32 * 16 + 12]);
+  supply_register_by_name ("vrsave", &regset[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 }
 };
Index: src/gdb/features/Makefile
===================================================================
--- src.orig/gdb/features/Makefile	2007-10-04 14:23:57.000000000 -0400
+++ src/gdb/features/Makefile	2007-10-04 16:06:09.000000000 -0400
@@ -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
Index: src/gdb/regformats/rs6000/powerpc-32.dat
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ src/gdb/regformats/rs6000/powerpc-32.dat	2007-10-04 16:06:09.000000000 -0400
@@ -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
Index: src/gdb/regformats/rs6000/powerpc-64.dat
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ src/gdb/regformats/rs6000/powerpc-64.dat	2007-10-04 16:06:09.000000000 -0400
@@ -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
Index: src/gdb/regformats/rs6000/powerpc-e500.dat
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ src/gdb/regformats/rs6000/powerpc-e500.dat	2007-10-04 16:06:09.000000000 -0400
@@ -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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]