This is the mail archive of the gdb-patches@sources.redhat.com 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]

Re: [RFA] config/rs6000/tm-rs6000.h STAB_REG_TO_REGNUM


Andrew Cagney writes:
 > Just FYI,
 > 
 > It should be using the multi-arch method.
 > 
 > 	Andrew

Damn, yes, overlooked it.
Here is a new patch. Retested as well.

This shouldn't effect the linux-ppc platform.
I'll look at that next.

Elena

2001-11-22  Elena Zannoni <ezannoni@redhat.com>
 
      Based on a patch from Vladimir Makarov <vmakarov@redhat.com>:
      * config/rs6000/tm-rs6000.h (STAB_REG_TO_REGNUM): Delete it.
      It is now multiarched.
      * rs6000-tdep.c (rs6000_stab_reg_to_regnum): New function.
      (rs6000_gdbarch_init): Set gdbarch_stab_to_regnum.



Index: rs6000-tdep.c
===================================================================
RCS file: /cvs/src/src/gdb/rs6000-tdep.c,v
retrieving revision 1.28
diff -u -p -r1.28 rs6000-tdep.c
--- rs6000-tdep.c	2001/10/21 17:19:37	1.28
+++ rs6000-tdep.c	2001/11/30 20:58:50
@@ -1613,6 +1613,32 @@ rs6000_register_convert_to_raw (struct t
     memcpy (to, from, REGISTER_RAW_SIZE (n));
 }
 
+/* Convert a dbx stab register number (from `r' declaration) to a gdb
+   REGNUM */
+static int
+rs6000_stab_reg_to_regnum (int num)
+{
+  int regnum;
+  switch (num)
+    {
+    case 64: /* mq */
+      if (TARGET_ARCHITECTURE->mach == bfd_mach_ppc_601)
+	regnum = 124;
+      else
+	regnum = 70;
+      break;
+    case 65: regnum = 67; /* lr	*/
+      break;
+    case 66: regnum = 68; /* ctr */
+      break;
+    case 76: regnum = 69; /* xer */
+      break;
+    default: regnum = num;
+      break;
+    }
+  return regnum;
+}
+
 /* Store the address of the place in which to copy the structure the
    subroutine will return.  This is called from call_function.
 
@@ -2340,6 +2366,7 @@ rs6000_gdbarch_init (struct gdbarch_info
 	rs6000_frameless_function_invocation);
       set_gdbarch_frame_chain (gdbarch, rs6000_frame_chain);
       set_gdbarch_frame_saved_pc (gdbarch, rs6000_frame_saved_pc);
+      set_gdbarch_stab_reg_to_regnum (gdbarch, rs6000_stab_reg_to_regnum);
 
       set_gdbarch_frame_init_saved_regs (gdbarch, rs6000_frame_init_saved_regs);
       set_gdbarch_init_extra_frame_info (gdbarch, rs6000_init_extra_frame_info);
Index: config/rs6000/tm-rs6000.h
===================================================================
RCS file: /cvs/src/src/gdb/config/rs6000/tm-rs6000.h,v
retrieving revision 1.13
diff -u -p -r1.13 tm-rs6000.h
--- tm-rs6000.h	2001/05/01 19:36:11	1.13
+++ tm-rs6000.h	2001/11/30 20:58:58
@@ -86,10 +86,6 @@ extern void aix_process_linenos (void);
 #define	FIRST_UISA_SP_REGNUM 64	/* first special register number */
 #define LAST_UISA_SP_REGNUM  70	/* last special register number */
 
-/* convert a dbx stab register number (from `r' declaration) to a gdb REGNUM */
-
-#define STAB_REG_TO_REGNUM(value)	(value)
-
 /* Define other aspects of the stack frame.  */
 
 #define INIT_FRAME_PC_FIRST(fromleaf, prev) \


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