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] [16/20] Get rid of current_gdbarch in hpux-thread.c


Hi,

this patch gets rid of some of the current_gdbarch's in hpux-thread.c

Is this ok to commit?

ChangeLog:


* hpux-thread.c (hpux_thread_fetch_registers) (hpux_thread_store_registers): Use get_regcache_arch to get at the current architecture by regcache.



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



diff -urpN src/gdb/hpux-thread.c dev2/gdb/hpux-thread.c
--- src/gdb/hpux-thread.c	2007-08-23 20:08:34.000000000 +0200
+++ dev2/gdb/hpux-thread.c	2007-10-30 07:50:40.000000000 +0100
@@ -250,6 +250,7 @@ static char regmap[] =
 static void
 hpux_thread_fetch_registers (struct regcache *regcache, int regno)
 {
+  struct gdbarch *gdbarch = get_regcache_arch (regcache);
   cma__t_int_tcb tcb, *tcb_ptr;
   struct cleanup *old_chain;
   int i;
@@ -273,7 +274,7 @@ hpux_thread_fetch_registers (struct regc
   if (regno == -1)
     {
       first_regno = 0;
-      last_regno = gdbarch_num_regs (current_gdbarch) - 1;
+      last_regno = gdbarch_num_regs (gdbarch) - 1;
     }
   else
     {
@@ -294,13 +295,14 @@ hpux_thread_fetch_registers (struct regc
 
 	  if (regno == HPPA_FLAGS_REGNUM)
 	    /* Flags must be 0 to avoid bogus value for SS_INSYSCALL */
-	    memset (buf, '\000', register_size (current_gdbarch, regno));
+	    memset (buf, '\000', register_size (gdbarch, regno));
 	  else if (regno == HPPA_SP_REGNUM)
 	    store_unsigned_integer (buf, sizeof sp, sp);
 	  else if (regno == HPPA_PCOQ_HEAD_REGNUM)
-	    read_memory (sp - 20, buf, register_size (current_gdbarch, regno));
+	    read_memory (sp - 20, buf, register_size (gdbarch, regno));
 	  else
-	    read_memory (sp + regmap[regno], buf, register_size (current_gdbarch, regno));
+	    read_memory (sp + regmap[regno], buf,
+			 register_size (gdbarch, regno));
 
 	  regcache_raw_supply (regcache, regno, buf);
 	}
@@ -312,6 +314,7 @@ hpux_thread_fetch_registers (struct regc
 static void
 hpux_thread_store_registers (struct regcache *regcache, int regno)
 {
+  struct gdbarch *gdbarch = get_regcache_arch (regcache);
   cma__t_int_tcb tcb, *tcb_ptr;
   struct cleanup *old_chain;
   int i;
@@ -335,7 +338,7 @@ hpux_thread_store_registers (struct regc
   if (regno == -1)
     {
       first_regno = 0;
-      last_regno = gdbarch_num_regs (current_gdbarch) - 1;
+      last_regno = gdbarch_num_regs (gdbarch) - 1;
     }
   else
     {
@@ -360,7 +363,7 @@ hpux_thread_store_registers (struct regc
 	    {
 	      regcache_raw_collect (regcache, regno, buf);
 	      write_memory ((CORE_ADDR) &tcb_ptr->static_ctx.sp, buf,
-			    register_size (current_gdbarch, regno));
+			    register_size (gdbarch, regno));
 	      tcb_ptr->static_ctx.sp
 		= (cma__t_hppa_regs *) ((CORE_ADDR) buf + 160);
 	    }
@@ -368,13 +371,13 @@ hpux_thread_store_registers (struct regc
 	    {
 	      regcache_raw_collect (regcache, regno, buf);
 	      write_memory (sp - 20, buf,
-			    register_size (current_gdbarch, regno));
+			    register_size (gdbarch, regno));
 	    }
 	  else
 	    {
 	      regcache_raw_collect (regcache, regno, buf);
 	      write_memory (sp + regmap[regno], buf,
-			    register_size (current_gdbarch, regno));
+			    register_size (gdbarch, regno));
 	    }
 	}
     }


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