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]

[rfc] [09/12] Get rid of current_gdbarch in sh-tdep.c


Hi,

this patch gets rid of some of the current_gdbarch's in sh-tdep.c

Is this ok to commit?

ChangeLog:

	* sh-tdep.c (sh_push_dummy_call_fpu, sh_push_dummy_call_nofpu)
	(sh_sh2a_register_type, sh_sh3e_register_type, sh_sh4_register_type)
	(sh_register_reggroup_p, sh_dwarf2_frame_init_reg): Replace
	current_gdbarch by gdbarch.
	(sh_generic_show_regs, sh3_show_reg, sh2e_show_regs, sh2a_show_regs)
	(sh2a_nofpu_show_regs, sh3e_show_regs, sh3_dsp_show_regs)
	(sh4_show_regs, sh4_nofpu_show_regs, sh_dsp_show_regs, sh_frame_cache)
	(sh_frame_prev_register, sh_unwind_sp, sh_unwind_pc): Use FRAME to
	recognize current architecture.

--
Markus Deuling
GNU Toolchain for Linux on Cell BE
deuling@de.ibm.com






diff -urpN src/gdb/sh-tdep.c dev/gdb/sh-tdep.c
--- src/gdb/sh-tdep.c	2007-06-19 05:22:05.000000000 +0200
+++ dev/gdb/sh-tdep.c	2007-08-01 10:38:23.000000000 +0200
@@ -1094,7 +1094,7 @@ sh_push_dummy_call_fpu (struct gdbarch *
 		 register, increments the val and len values accordingly
 		 and then proceeds as normal by writing the second 32 bits
 		 into the next register. */
-	      if (gdbarch_byte_order (current_gdbarch) == BFD_ENDIAN_LITTLE
+	      if (gdbarch_byte_order (gdbarch) == BFD_ENDIAN_LITTLE
 	          && TYPE_LENGTH (type) == 2 * reg_size)
 	        {
 		  regcache_cooked_write_unsigned (regcache, flt_argreg + 1,
@@ -1123,7 +1123,7 @@ sh_push_dummy_call_fpu (struct gdbarch *
 
   /* Update stack pointer.  */
   regcache_cooked_write_unsigned (regcache,
-				  gdbarch_sp_regnum (current_gdbarch), sp);
+				  gdbarch_sp_regnum (gdbarch), sp);
 
   return sp;
 }
@@ -1194,7 +1194,7 @@ sh_push_dummy_call_nofpu (struct gdbarch
 
   /* Update stack pointer.  */
   regcache_cooked_write_unsigned (regcache,
-				  gdbarch_sp_regnum (current_gdbarch), sp);
+				  gdbarch_sp_regnum (gdbarch), sp);
 
   return sp;
 }
@@ -1327,7 +1327,8 @@ sh_generic_show_regs (struct frame_info 
   printf_filtered
     ("      PC %s       SR %08lx       PR %08lx     MACH %08lx\n",
      paddr (get_frame_register_unsigned (frame,
-					 gdbarch_pc_regnum (current_gdbarch))),
+					 gdbarch_pc_regnum
+					   (get_frame_arch (frame)))),
      (long) get_frame_register_unsigned (frame, SR_REGNUM),
      (long) get_frame_register_unsigned (frame, PR_REGNUM),
      (long) get_frame_register_unsigned (frame, MACH_REGNUM));
@@ -1366,7 +1367,8 @@ sh3_show_regs (struct frame_info *frame)
   printf_filtered
     ("      PC %s       SR %08lx       PR %08lx     MACH %08lx\n",
      paddr (get_frame_register_unsigned (frame,
-					 gdbarch_pc_regnum (current_gdbarch))),
+					 gdbarch_pc_regnum
+					   (get_frame_arch (frame)))),
      (long) get_frame_register_unsigned (frame, SR_REGNUM),
      (long) get_frame_register_unsigned (frame, PR_REGNUM),
      (long) get_frame_register_unsigned (frame, MACH_REGNUM));
@@ -1406,10 +1408,11 @@ sh3_show_regs (struct frame_info *frame)
 static void
 sh2e_show_regs (struct frame_info *frame)
 {
+  struct gdbarch *gdbarch = get_frame_arch (frame);
   printf_filtered
     ("      PC %s       SR %08lx       PR %08lx     MACH %08lx\n",
      paddr (get_frame_register_unsigned (frame,
-					 gdbarch_pc_regnum (current_gdbarch))),
+					 gdbarch_pc_regnum (gdbarch))),
      (long) get_frame_register_unsigned (frame, SR_REGNUM),
      (long) get_frame_register_unsigned (frame, PR_REGNUM),
      (long) get_frame_register_unsigned (frame, MACH_REGNUM));
@@ -1450,50 +1453,51 @@ sh2e_show_regs (struct frame_info *frame
   printf_filtered
     ("FP0-FP7  %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
      (long) get_frame_register_unsigned
-	      (frame, gdbarch_fp0_regnum (current_gdbarch) + 0),
+	      (frame, gdbarch_fp0_regnum (gdbarch) + 0),
      (long) get_frame_register_unsigned
-	      (frame, gdbarch_fp0_regnum (current_gdbarch) + 1),
+	      (frame, gdbarch_fp0_regnum (gdbarch) + 1),
      (long) get_frame_register_unsigned
-	      (frame, gdbarch_fp0_regnum (current_gdbarch) + 2),
+	      (frame, gdbarch_fp0_regnum (gdbarch) + 2),
      (long) get_frame_register_unsigned
-	      (frame, gdbarch_fp0_regnum (current_gdbarch) + 3),
+	      (frame, gdbarch_fp0_regnum (gdbarch) + 3),
      (long) get_frame_register_unsigned
-	      (frame, gdbarch_fp0_regnum (current_gdbarch) + 4),
+	      (frame, gdbarch_fp0_regnum (gdbarch) + 4),
      (long) get_frame_register_unsigned
-	      (frame, gdbarch_fp0_regnum (current_gdbarch) + 5),
+	      (frame, gdbarch_fp0_regnum (gdbarch) + 5),
      (long) get_frame_register_unsigned
-	      (frame, gdbarch_fp0_regnum (current_gdbarch) + 6),
+	      (frame, gdbarch_fp0_regnum (gdbarch) + 6),
      (long) get_frame_register_unsigned
-	      (frame, gdbarch_fp0_regnum (current_gdbarch) + 7));
+	      (frame, gdbarch_fp0_regnum (gdbarch) + 7));
   printf_filtered
     ("FP8-FP15 %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
      (long) get_frame_register_unsigned
-	      (frame, gdbarch_fp0_regnum (current_gdbarch) + 8),
+	      (frame, gdbarch_fp0_regnum (gdbarch) + 8),
      (long) get_frame_register_unsigned
-	      (frame, gdbarch_fp0_regnum (current_gdbarch) + 9),
+	      (frame, gdbarch_fp0_regnum (gdbarch) + 9),
      (long) get_frame_register_unsigned
-	      (frame, gdbarch_fp0_regnum (current_gdbarch) + 10),
+	      (frame, gdbarch_fp0_regnum (gdbarch) + 10),
      (long) get_frame_register_unsigned
-	      (frame, gdbarch_fp0_regnum (current_gdbarch) + 11),
+	      (frame, gdbarch_fp0_regnum (gdbarch) + 11),
      (long) get_frame_register_unsigned
-	      (frame, gdbarch_fp0_regnum (current_gdbarch) + 12),
+	      (frame, gdbarch_fp0_regnum (gdbarch) + 12),
      (long) get_frame_register_unsigned
-	      (frame, gdbarch_fp0_regnum (current_gdbarch) + 13),
+	      (frame, gdbarch_fp0_regnum (gdbarch) + 13),
      (long) get_frame_register_unsigned
-	      (frame, gdbarch_fp0_regnum (current_gdbarch) + 14),
+	      (frame, gdbarch_fp0_regnum (gdbarch) + 14),
      (long) get_frame_register_unsigned
-	      (frame, gdbarch_fp0_regnum (current_gdbarch) + 15));
+	      (frame, gdbarch_fp0_regnum (gdbarch) + 15));
 }
 
 static void
 sh2a_show_regs (struct frame_info *frame)
 {
+  struct gdbarch *gdbarch = get_frame_arch (frame);
   int pr = get_frame_register_unsigned (frame, FPSCR_REGNUM) & 0x80000;
 
   printf_filtered
     ("      PC %s       SR %08lx       PR %08lx     MACH %08lx\n",
      paddr (get_frame_register_unsigned (frame,
-					 gdbarch_pc_regnum (current_gdbarch))),
+					 gdbarch_pc_regnum (gdbarch))),
      (long) get_frame_register_unsigned (frame, SR_REGNUM),
      (long) get_frame_register_unsigned (frame, PR_REGNUM),
      (long) get_frame_register_unsigned (frame, MACH_REGNUM));
@@ -1536,40 +1540,40 @@ sh2a_show_regs (struct frame_info *frame
     (pr ? "DR0-DR6  %08lx%08lx  %08lx%08lx  %08lx%08lx  %08lx%08lx\n"
 	: "FP0-FP7  %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
      (long) get_frame_register_unsigned
-	      (frame, gdbarch_fp0_regnum (current_gdbarch) + 0),
+	      (frame, gdbarch_fp0_regnum (gdbarch) + 0),
      (long) get_frame_register_unsigned
-	      (frame, gdbarch_fp0_regnum (current_gdbarch) + 1),
+	      (frame, gdbarch_fp0_regnum (gdbarch) + 1),
      (long) get_frame_register_unsigned
-	      (frame, gdbarch_fp0_regnum (current_gdbarch) + 2),
+	      (frame, gdbarch_fp0_regnum (gdbarch) + 2),
      (long) get_frame_register_unsigned
-	      (frame, gdbarch_fp0_regnum (current_gdbarch) + 3),
+	      (frame, gdbarch_fp0_regnum (gdbarch) + 3),
      (long) get_frame_register_unsigned
-	      (frame, gdbarch_fp0_regnum (current_gdbarch) + 4),
+	      (frame, gdbarch_fp0_regnum (gdbarch) + 4),
      (long) get_frame_register_unsigned
-	      (frame, gdbarch_fp0_regnum (current_gdbarch) + 5),
+	      (frame, gdbarch_fp0_regnum (gdbarch) + 5),
      (long) get_frame_register_unsigned
-	      (frame, gdbarch_fp0_regnum (current_gdbarch) + 6),
+	      (frame, gdbarch_fp0_regnum (gdbarch) + 6),
      (long) get_frame_register_unsigned
-	      (frame, gdbarch_fp0_regnum (current_gdbarch) + 7));
+	      (frame, gdbarch_fp0_regnum (gdbarch) + 7));
   printf_filtered
     (pr ? "DR8-DR14 %08lx%08lx  %08lx%08lx  %08lx%08lx  %08lx%08lx\n"
 	: "FP8-FP15 %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
      (long) get_frame_register_unsigned
-	      (frame, gdbarch_fp0_regnum (current_gdbarch) + 8),
+	      (frame, gdbarch_fp0_regnum (gdbarch) + 8),
      (long) get_frame_register_unsigned
-	      (frame, gdbarch_fp0_regnum (current_gdbarch) + 9),
+	      (frame, gdbarch_fp0_regnum (gdbarch) + 9),
      (long) get_frame_register_unsigned
-	      (frame, gdbarch_fp0_regnum (current_gdbarch) + 10),
+	      (frame, gdbarch_fp0_regnum (gdbarch) + 10),
      (long) get_frame_register_unsigned
-	      (frame, gdbarch_fp0_regnum (current_gdbarch) + 11),
+	      (frame, gdbarch_fp0_regnum (gdbarch) + 11),
      (long) get_frame_register_unsigned
-	      (frame, gdbarch_fp0_regnum (current_gdbarch) + 12),
+	      (frame, gdbarch_fp0_regnum (gdbarch) + 12),
      (long) get_frame_register_unsigned
-	      (frame, gdbarch_fp0_regnum (current_gdbarch) + 13),
+	      (frame, gdbarch_fp0_regnum (gdbarch) + 13),
      (long) get_frame_register_unsigned
-	      (frame, gdbarch_fp0_regnum (current_gdbarch) + 14),
+	      (frame, gdbarch_fp0_regnum (gdbarch) + 14),
      (long) get_frame_register_unsigned
-	      (frame, gdbarch_fp0_regnum (current_gdbarch) + 15));
+	      (frame, gdbarch_fp0_regnum (gdbarch) + 15));
   printf_filtered
     ("BANK=%-3d\n", (int) get_frame_register_unsigned (frame, BANK_REGNUM));
   printf_filtered
@@ -1608,7 +1612,8 @@ sh2a_nofpu_show_regs (struct frame_info 
   printf_filtered
     ("      PC %s       SR %08lx       PR %08lx     MACH %08lx\n",
      paddr (get_frame_register_unsigned (frame,
-					 gdbarch_pc_regnum (current_gdbarch))),
+					 gdbarch_pc_regnum
+					   (get_frame_arch (frame)))),
      (long) get_frame_register_unsigned (frame, SR_REGNUM),
      (long) get_frame_register_unsigned (frame, PR_REGNUM),
      (long) get_frame_register_unsigned (frame, MACH_REGNUM));
@@ -1680,10 +1685,11 @@ sh2a_nofpu_show_regs (struct frame_info 
 static void
 sh3e_show_regs (struct frame_info *frame)
 {
+  struct gdbarch *gdbarch = get_frame_arch (frame);
   printf_filtered
     ("      PC %s       SR %08lx       PR %08lx     MACH %08lx\n",
      paddr (get_frame_register_unsigned (frame,
-					 gdbarch_pc_regnum (current_gdbarch))),
+					 gdbarch_pc_regnum (gdbarch))),
      (long) get_frame_register_unsigned (frame, SR_REGNUM),
      (long) get_frame_register_unsigned (frame, PR_REGNUM),
      (long) get_frame_register_unsigned (frame, MACH_REGNUM));
@@ -1724,39 +1730,39 @@ sh3e_show_regs (struct frame_info *frame
   printf_filtered
     ("FP0-FP7  %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
      (long) get_frame_register_unsigned
-	      (frame, gdbarch_fp0_regnum (current_gdbarch) + 0),
+	      (frame, gdbarch_fp0_regnum (gdbarch) + 0),
      (long) get_frame_register_unsigned
-	      (frame, gdbarch_fp0_regnum (current_gdbarch) + 1),
+	      (frame, gdbarch_fp0_regnum (gdbarch) + 1),
      (long) get_frame_register_unsigned
-	      (frame, gdbarch_fp0_regnum (current_gdbarch) + 2),
+	      (frame, gdbarch_fp0_regnum (gdbarch) + 2),
      (long) get_frame_register_unsigned
-	      (frame, gdbarch_fp0_regnum (current_gdbarch) + 3),
+	      (frame, gdbarch_fp0_regnum (gdbarch) + 3),
      (long) get_frame_register_unsigned
-	      (frame, gdbarch_fp0_regnum (current_gdbarch) + 4),
+	      (frame, gdbarch_fp0_regnum (gdbarch) + 4),
      (long) get_frame_register_unsigned
-	      (frame, gdbarch_fp0_regnum (current_gdbarch) + 5),
+	      (frame, gdbarch_fp0_regnum (gdbarch) + 5),
      (long) get_frame_register_unsigned
-	      (frame, gdbarch_fp0_regnum (current_gdbarch) + 6),
+	      (frame, gdbarch_fp0_regnum (gdbarch) + 6),
      (long) get_frame_register_unsigned
-	      (frame, gdbarch_fp0_regnum (current_gdbarch) + 7));
+	      (frame, gdbarch_fp0_regnum (gdbarch) + 7));
   printf_filtered
     ("FP8-FP15 %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
      (long) get_frame_register_unsigned
-	      (frame, gdbarch_fp0_regnum (current_gdbarch) + 8),
+	      (frame, gdbarch_fp0_regnum (gdbarch) + 8),
      (long) get_frame_register_unsigned
-	      (frame, gdbarch_fp0_regnum (current_gdbarch) + 9),
+	      (frame, gdbarch_fp0_regnum (gdbarch) + 9),
      (long) get_frame_register_unsigned
-	      (frame, gdbarch_fp0_regnum (current_gdbarch) + 10),
+	      (frame, gdbarch_fp0_regnum (gdbarch) + 10),
      (long) get_frame_register_unsigned
-	      (frame, gdbarch_fp0_regnum (current_gdbarch) + 11),
+	      (frame, gdbarch_fp0_regnum (gdbarch) + 11),
      (long) get_frame_register_unsigned
-	      (frame, gdbarch_fp0_regnum (current_gdbarch) + 12),
+	      (frame, gdbarch_fp0_regnum (gdbarch) + 12),
      (long) get_frame_register_unsigned
-	      (frame, gdbarch_fp0_regnum (current_gdbarch) + 13),
+	      (frame, gdbarch_fp0_regnum (gdbarch) + 13),
      (long) get_frame_register_unsigned
-	      (frame, gdbarch_fp0_regnum (current_gdbarch) + 14),
+	      (frame, gdbarch_fp0_regnum (gdbarch) + 14),
      (long) get_frame_register_unsigned
-	      (frame, gdbarch_fp0_regnum (current_gdbarch) + 15));
+	      (frame, gdbarch_fp0_regnum (gdbarch) + 15));
 }
 
 static void
@@ -1765,7 +1771,8 @@ sh3_dsp_show_regs (struct frame_info *fr
   printf_filtered
     ("      PC %s       SR %08lx       PR %08lx     MACH %08lx\n",
      paddr (get_frame_register_unsigned (frame,
-					 gdbarch_pc_regnum (current_gdbarch))),
+					 gdbarch_pc_regnum
+					   (get_frame_arch (frame)))),
      (long) get_frame_register_unsigned (frame, SR_REGNUM),
      (long) get_frame_register_unsigned (frame, PR_REGNUM),
      (long) get_frame_register_unsigned (frame, MACH_REGNUM));
@@ -1825,12 +1832,13 @@ sh3_dsp_show_regs (struct frame_info *fr
 static void
 sh4_show_regs (struct frame_info *frame)
 {
+  struct gdbarch *gdbarch = get_frame_arch (frame);
   int pr = get_frame_register_unsigned (frame, FPSCR_REGNUM) & 0x80000;
 
   printf_filtered
     ("      PC %s       SR %08lx       PR %08lx     MACH %08lx\n",
      paddr (get_frame_register_unsigned (frame,
-					 gdbarch_pc_regnum (current_gdbarch))),
+					 gdbarch_pc_regnum (gdbarch))),
      (long) get_frame_register_unsigned (frame, SR_REGNUM),
      (long) get_frame_register_unsigned (frame, PR_REGNUM),
      (long) get_frame_register_unsigned (frame, MACH_REGNUM));
@@ -1872,40 +1880,40 @@ sh4_show_regs (struct frame_info *frame)
     (pr ? "DR0-DR6  %08lx%08lx  %08lx%08lx  %08lx%08lx  %08lx%08lx\n"
 	: "FP0-FP7  %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
      (long) get_frame_register_unsigned
-	      (frame, gdbarch_fp0_regnum (current_gdbarch) + 0),
+	      (frame, gdbarch_fp0_regnum (gdbarch) + 0),
      (long) get_frame_register_unsigned
-	      (frame, gdbarch_fp0_regnum (current_gdbarch) + 1),
+	      (frame, gdbarch_fp0_regnum (gdbarch) + 1),
      (long) get_frame_register_unsigned
-	      (frame, gdbarch_fp0_regnum (current_gdbarch) + 2),
+	      (frame, gdbarch_fp0_regnum (gdbarch) + 2),
      (long) get_frame_register_unsigned
-	      (frame, gdbarch_fp0_regnum (current_gdbarch) + 3),
+	      (frame, gdbarch_fp0_regnum (gdbarch) + 3),
      (long) get_frame_register_unsigned
-	      (frame, gdbarch_fp0_regnum (current_gdbarch) + 4),
+	      (frame, gdbarch_fp0_regnum (gdbarch) + 4),
      (long) get_frame_register_unsigned
-	      (frame, gdbarch_fp0_regnum (current_gdbarch) + 5),
+	      (frame, gdbarch_fp0_regnum (gdbarch) + 5),
      (long) get_frame_register_unsigned
-	      (frame, gdbarch_fp0_regnum (current_gdbarch) + 6),
+	      (frame, gdbarch_fp0_regnum (gdbarch) + 6),
      (long) get_frame_register_unsigned
-	      (frame, gdbarch_fp0_regnum (current_gdbarch) + 7));
+	      (frame, gdbarch_fp0_regnum (gdbarch) + 7));
   printf_filtered
     (pr ? "DR8-DR14 %08lx%08lx  %08lx%08lx  %08lx%08lx  %08lx%08lx\n"
 	: "FP8-FP15 %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
      (long) get_frame_register_unsigned
-	      (frame, gdbarch_fp0_regnum (current_gdbarch) + 8),
+	      (frame, gdbarch_fp0_regnum (gdbarch) + 8),
      (long) get_frame_register_unsigned
-	      (frame, gdbarch_fp0_regnum (current_gdbarch) + 9),
+	      (frame, gdbarch_fp0_regnum (gdbarch) + 9),
      (long) get_frame_register_unsigned
-	      (frame, gdbarch_fp0_regnum (current_gdbarch) + 10),
+	      (frame, gdbarch_fp0_regnum (gdbarch) + 10),
      (long) get_frame_register_unsigned
-	      (frame, gdbarch_fp0_regnum (current_gdbarch) + 11),
+	      (frame, gdbarch_fp0_regnum (gdbarch) + 11),
      (long) get_frame_register_unsigned
-	      (frame, gdbarch_fp0_regnum (current_gdbarch) + 12),
+	      (frame, gdbarch_fp0_regnum (gdbarch) + 12),
      (long) get_frame_register_unsigned
-	      (frame, gdbarch_fp0_regnum (current_gdbarch) + 13),
+	      (frame, gdbarch_fp0_regnum (gdbarch) + 13),
      (long) get_frame_register_unsigned
-	      (frame, gdbarch_fp0_regnum (current_gdbarch) + 14),
+	      (frame, gdbarch_fp0_regnum (gdbarch) + 14),
      (long) get_frame_register_unsigned
-	      (frame, gdbarch_fp0_regnum (current_gdbarch) + 15));
+	      (frame, gdbarch_fp0_regnum (gdbarch) + 15));
 }
 
 static void
@@ -1914,7 +1922,8 @@ sh4_nofpu_show_regs (struct frame_info *
   printf_filtered
     ("      PC %s       SR %08lx       PR %08lx     MACH %08lx\n",
      paddr (get_frame_register_unsigned (frame,
-					 gdbarch_pc_regnum (current_gdbarch))),
+					 gdbarch_pc_regnum
+					   (get_frame_arch (frame)))),
      (long) get_frame_register_unsigned (frame, SR_REGNUM),
      (long) get_frame_register_unsigned (frame, PR_REGNUM),
      (long) get_frame_register_unsigned (frame, MACH_REGNUM));
@@ -1959,7 +1968,8 @@ sh_dsp_show_regs (struct frame_info *fra
   printf_filtered
     ("      PC %s       SR %08lx       PR %08lx     MACH %08lx\n",
      paddr (get_frame_register_unsigned (frame,
-					 gdbarch_pc_regnum (current_gdbarch))),
+					 gdbarch_pc_regnum
+					   (get_frame_arch (frame)))),
      (long) get_frame_register_unsigned (frame, SR_REGNUM),
      (long) get_frame_register_unsigned (frame, PR_REGNUM),
      (long) get_frame_register_unsigned (frame, MACH_REGNUM));
@@ -2020,7 +2030,7 @@ sh_show_regs_command (char *args, int fr
 static struct type *
 sh_sh2a_register_type (struct gdbarch *gdbarch, int reg_nr)
 {
-  if ((reg_nr >= gdbarch_fp0_regnum (current_gdbarch)
+  if ((reg_nr >= gdbarch_fp0_regnum (gdbarch)
        && (reg_nr <= FP_LAST_REGNUM)) || (reg_nr == FPUL_REGNUM))
     return builtin_type_float;
   else if (reg_nr >= DR0_REGNUM && reg_nr <= DR_LAST_REGNUM)
@@ -2034,7 +2044,7 @@ sh_sh2a_register_type (struct gdbarch *g
 static struct type *
 sh_sh3e_register_type (struct gdbarch *gdbarch, int reg_nr)
 {
-  if ((reg_nr >= gdbarch_fp0_regnum (current_gdbarch)
+  if ((reg_nr >= gdbarch_fp0_regnum (gdbarch)
        && (reg_nr <= FP_LAST_REGNUM)) || (reg_nr == FPUL_REGNUM))
     return builtin_type_float;
   else
@@ -2053,7 +2063,7 @@ sh_sh4_build_float_register_type (int hi
 static struct type *
 sh_sh4_register_type (struct gdbarch *gdbarch, int reg_nr)
 {
-  if ((reg_nr >= gdbarch_fp0_regnum (current_gdbarch)
+  if ((reg_nr >= gdbarch_fp0_regnum (gdbarch)
        && (reg_nr <= FP_LAST_REGNUM)) || (reg_nr == FPUL_REGNUM))
     return builtin_type_float;
   else if (reg_nr >= DR0_REGNUM && reg_nr <= DR_LAST_REGNUM)
@@ -2078,8 +2088,8 @@ int
 sh_register_reggroup_p (struct gdbarch *gdbarch, int regnum,
 			struct reggroup *reggroup)
 {
-  if (gdbarch_register_name (current_gdbarch, regnum) == NULL
-      || *gdbarch_register_name (current_gdbarch, regnum) == '\0')
+  if (gdbarch_register_name (gdbarch, regnum) == NULL
+      || *gdbarch_register_name (gdbarch, regnum) == '\0')
     return 0;
 
   if (reggroup == float_reggroup
@@ -2335,11 +2345,11 @@ sh_dwarf2_frame_init_reg (struct gdbarch
 			  struct frame_info *next_frame)
 {
   /* Mark the PC as the destination for the return address.  */
-  if (regnum == gdbarch_pc_regnum (current_gdbarch))
+  if (regnum == gdbarch_pc_regnum (gdbarch))
     reg->how = DWARF2_FRAME_REG_RA;
 
   /* Mark the stack pointer as the call frame address.  */
-  else if (regnum == gdbarch_sp_regnum (current_gdbarch))
+  else if (regnum == gdbarch_sp_regnum (gdbarch))
     reg->how = DWARF2_FRAME_REG_CFA;
 
   /* The above was taken from the default init_reg in dwarf2-frame.c
@@ -2442,7 +2452,8 @@ sh_frame_cache (struct frame_info *next_
          frame by looking at the stack pointer.  For truly "frameless"
          functions this might work too.  */
       cache->base = frame_unwind_register_unsigned
-		    (next_frame, gdbarch_sp_regnum (current_gdbarch));
+		    (next_frame,
+		     gdbarch_sp_regnum (get_frame_arch (next_frame)));
     }
 
   /* Now that we have the base address for the stack frame we can
@@ -2464,11 +2475,12 @@ sh_frame_prev_register (struct frame_inf
 			enum lval_type *lvalp, CORE_ADDR *addrp,
 			int *realnump, gdb_byte *valuep)
 {
+  struct gdbarch *gdbarch = get_frame_arch (next_frame);
   struct sh_frame_cache *cache = sh_frame_cache (next_frame, this_cache);
 
   gdb_assert (regnum >= 0);
 
-  if (regnum == gdbarch_sp_regnum (current_gdbarch) && cache->saved_sp)
+  if (regnum == gdbarch_sp_regnum (gdbarch) && cache->saved_sp)
     {
       *optimizedp = 0;
       *lvalp = not_lval;
@@ -2485,7 +2497,7 @@ sh_frame_prev_register (struct frame_inf
   /* The PC of the previous frame is stored in the PR register of
      the current frame.  Frob regnum so that we pull the value from
      the correct place.  */
-  if (regnum == gdbarch_pc_regnum (current_gdbarch))
+  if (regnum == gdbarch_pc_regnum (gdbarch))
     regnum = PR_REGNUM;
 
   if (regnum < SH_NUM_REGS && cache->saved_regs[regnum] != -1)
@@ -2498,7 +2510,7 @@ sh_frame_prev_register (struct frame_inf
 	{
 	  /* Read the value in from memory.  */
 	  read_memory (*addrp, valuep,
-		       register_size (current_gdbarch, regnum));
+		       register_size (gdbarch, regnum));
 	}
       return;
     }
@@ -2540,14 +2552,14 @@ static CORE_ADDR
 sh_unwind_sp (struct gdbarch *gdbarch, struct frame_info *next_frame)
 {
   return frame_unwind_register_unsigned (next_frame,
-					 gdbarch_sp_regnum (current_gdbarch));
+					 gdbarch_sp_regnum (gdbarch));
 }
 
 static CORE_ADDR
 sh_unwind_pc (struct gdbarch *gdbarch, struct frame_info *next_frame)
 {
   return frame_unwind_register_unsigned (next_frame,
-					 gdbarch_pc_regnum (current_gdbarch));
+					 gdbarch_pc_regnum (gdbarch));
 }
 
 static struct frame_id


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