[RFA] sim/ppc: stopgap for AltiVec

Elena Zannoni ezannoni@redhat.com
Mon Apr 15 09:06:00 GMT 2002


psim AltiVec support has not been committed yet, being still in
copyright limbo.

In the meantime, gdb will try to fetch/store AltiVec registers and the
simulator will error out. This happens for all the powerpc-*sim
targets.

As a stopgap, how about this patch?

Elena


2002-04-15  Elena Zannoni  <ezannoni@redhat.com>

       * sim_calls.c (sim_fetch_register, sim_store_register): Return -1 for
       AltiVec registers as a temporary stopgap.
 

Index: sim_calls.c
===================================================================
RCS file: /cvs/src/src/sim/ppc/sim_calls.c,v
retrieving revision 1.3
diff -u -p -r1.3 sim_calls.c
--- sim_calls.c	15 Dec 2001 05:08:44 -0000	1.3
+++ sim_calls.c	15 Apr 2002 16:04:51 -0000
@@ -194,7 +194,11 @@ sim_fetch_register (SIM_DESC sd, int reg
      But there are loops that just walk through the entire list of
      names and try to get everything.  */
   regname = gdbarch_register_name (current_gdbarch, regno);
-  if (! regname || regname[0] == '\0')
+  /* FIXME: ezannoni 2002/04/15 Remove the 'vr' and 'vscr' check
+     once AltiVec support is committed.  */
+  if (! regname || regname[0] == '\0'
+      || (regname[0] == 'v' && regname[1] == 'r')
+      || (strcmp (regname, "vscr") == 0))
     return -1;
 
   TRACE(trace_gdb, ("sim_fetch_register(regno=%d(%s), buf=0x%lx)\n",
@@ -215,7 +219,11 @@ sim_store_register (SIM_DESC sd, int reg
 
   /* See comments in sim_fetch_register, above.  */
   regname = gdbarch_register_name (current_gdbarch, regno);
-  if (! regname || regname[0] == '\0')
+  /* FIXME: ezannoni 2002/04/15 Remove the 'vr' and 'vscr' check
+     once AltiVec support is committed.  */
+  if (! regname || regname[0] == '\0'
+      || (regname[0] == 'v' && regname[1] == 'r')
+      || (strcmp (regname, "vscr") == 0))
     return -1;
 
   TRACE(trace_gdb, ("sim_store_register(regno=%d(%s), buf=0x%lx)\n",



More information about the Gdb-patches mailing list