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] [05/20] Get rid of current_gdbarch in armnbsd-nat.c


Hi,

this patch gets rid of some of the current_gdbarch's in armnbsd-nat.c

Is this ok to commit?

ChangeLog:


* armnbsd-nat.c (arm_supply_gregset, fetch_register, store_register) (store_regs): 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/armnbsd-nat.c dev/gdb/armnbsd-nat.c
--- src/gdb/armnbsd-nat.c	2007-08-23 20:08:26.000000000 +0200
+++ dev/gdb/armnbsd-nat.c	2007-10-30 06:11:21.000000000 +0100
@@ -50,7 +50,7 @@ arm_supply_gregset (struct regcache *reg
   regcache_raw_supply (regcache, ARM_LR_REGNUM,
 		       (char *) &gregset->r_lr);
   /* This is ok: we're running native...  */
-  r_pc = gdbarch_addr_bits_remove (current_gdbarch, gregset->r_pc);
+  r_pc = gdbarch_addr_bits_remove (get_regcache_arch (regcache), gregset->r_pc);
   regcache_raw_supply (regcache, ARM_PC_REGNUM, (char *) &r_pc);
 
   if (arm_apcs_32)
@@ -104,7 +104,8 @@ fetch_register (struct regcache *regcach
     case ARM_PC_REGNUM:
       /* This is ok: we're running native... */
       inferior_registers.r_pc = gdbarch_addr_bits_remove
-				  (current_gdbarch, inferior_registers.r_pc);
+				  (get_regcache_arch (regcache),
+				   inferior_registers.r_pc);
       regcache_raw_supply (regcache, ARM_PC_REGNUM,
 			   (char *) &inferior_registers.r_pc);
       break;
@@ -213,6 +214,7 @@ armnbsd_fetch_registers (struct regcache
 static void
 store_register (const struct regcache *regcache, int regno)
 {
+  struct gdbarch *gdbarch = get_regcache_arch (regcache);
   struct reg inferior_registers;
   int ret;
 
@@ -248,10 +250,9 @@ store_register (const struct regcache *r
 	  regcache_raw_collect (regcache, ARM_PC_REGNUM,
 				(char *) &pc_val);
 	  
-	  pc_val = gdbarch_addr_bits_remove (current_gdbarch, pc_val);
+	  pc_val = gdbarch_addr_bits_remove (gdbarch, pc_val);
 	  inferior_registers.r_pc ^= gdbarch_addr_bits_remove
-				       (current_gdbarch,
-					inferior_registers.r_pc);
+				       (gdbarch, inferior_registers.r_pc);
 	  inferior_registers.r_pc |= pc_val;
 	}
       break;
@@ -267,10 +268,9 @@ store_register (const struct regcache *r
 	  regcache_raw_collect (regcache, ARM_PS_REGNUM,
 				(char *) &psr_val);
 
-	  psr_val ^= gdbarch_addr_bits_remove (current_gdbarch, psr_val);
+	  psr_val ^= gdbarch_addr_bits_remove (gdbarch, psr_val);
 	  inferior_registers.r_pc = gdbarch_addr_bits_remove
-				      (current_gdbarch,
-				       inferior_registers.r_pc);
+				      (gdbarch, inferior_registers.r_pc);
 	  inferior_registers.r_pc |= psr_val;
 	}
       break;
@@ -291,6 +291,7 @@ store_register (const struct regcache *r
 static void
 store_regs (const struct regcache *regcache)
 {
+  struct gdbarch *gdbarch = get_regcache_arch (regcache);
   struct reg inferior_registers;
   int ret;
   int regno;
@@ -322,8 +323,8 @@ store_regs (const struct regcache *regca
       regcache_raw_collect (regcache, ARM_PS_REGNUM,
 			    (char *) &psr_val);
 	  
-      pc_val = gdbarch_addr_bits_remove (current_gdbarch, pc_val);
-      psr_val ^= gdbarch_addr_bits_remove (current_gdbarch, psr_val);
+      pc_val = gdbarch_addr_bits_remove (gdbarch, pc_val);
+      psr_val ^= gdbarch_addr_bits_remove (gdbarch, psr_val);
 
       inferior_registers.r_pc = pc_val | psr_val;
     }


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