2007-10-08 Markus Deuling <deuling@de.ibm.com>
authorUlrich Weigand <uweigand@de.ibm.com>
Mon, 8 Oct 2007 12:45:17 +0000 (12:45 +0000)
committerUlrich Weigand <uweigand@de.ibm.com>
Mon, 8 Oct 2007 12:45:17 +0000 (12:45 +0000)
* regcache.c (init_regcache_descr, register_type, read_pc_pid)
(write_pc_pid, regcache_dump): Replace current_gdbarch by gdbarch.
* regcache.c (regcache_raw_write): Use get_regcache_arch or
get_frame_arch to get at the current architecture by regcache or by
frame, respectively.

gdb/ChangeLog
gdb/regcache.c

index a0eec9e..1a7afee 100644 (file)
@@ -1,5 +1,13 @@
 2007-10-08  Markus Deuling  <deuling@de.ibm.com>
 
 2007-10-08  Markus Deuling  <deuling@de.ibm.com>
 
+       * regcache.c (init_regcache_descr, register_type, read_pc_pid)
+       (write_pc_pid, regcache_dump): Replace current_gdbarch by gdbarch.
+       * regcache.c (regcache_raw_write): Use get_regcache_arch or
+       get_frame_arch to get at the current architecture by regcache or by
+       frame, respectively.
+
+2007-10-08  Markus Deuling  <deuling@de.ibm.com>
+
        * findvar.c (value_of_register, locate_var_value): Use
        get_regcache_arch or get_frame_arch to get at the current architecture
        by regcache or by frame, respectively.
        * findvar.c (value_of_register, locate_var_value): Use
        get_regcache_arch or get_frame_arch to get at the current architecture
        by regcache or by frame, respectively.
index 5eb16cc..10314b4 100644 (file)
@@ -92,11 +92,11 @@ init_regcache_descr (struct gdbarch *gdbarch)
   /* Total size of the register space.  The raw registers are mapped
      directly onto the raw register cache while the pseudo's are
      either mapped onto raw-registers or memory.  */
   /* Total size of the register space.  The raw registers are mapped
      directly onto the raw register cache while the pseudo's are
      either mapped onto raw-registers or memory.  */
-  descr->nr_cooked_registers = gdbarch_num_regs (current_gdbarch)
-                              + gdbarch_num_pseudo_regs (current_gdbarch);
-  descr->sizeof_cooked_register_valid_p = gdbarch_num_regs (current_gdbarch)
+  descr->nr_cooked_registers = gdbarch_num_regs (gdbarch)
+                              + gdbarch_num_pseudo_regs (gdbarch);
+  descr->sizeof_cooked_register_valid_p = gdbarch_num_regs (gdbarch)
                                          + gdbarch_num_pseudo_regs 
                                          + gdbarch_num_pseudo_regs 
-                                             (current_gdbarch);
+                                             (gdbarch);
 
   /* Fill in a table of register types.  */
   descr->register_type
 
   /* Fill in a table of register types.  */
   descr->register_type
@@ -106,7 +106,7 @@ init_regcache_descr (struct gdbarch *gdbarch)
 
   /* Construct a strictly RAW register cache.  Don't allow pseudo's
      into the register cache.  */
 
   /* Construct a strictly RAW register cache.  Don't allow pseudo's
      into the register cache.  */
-  descr->nr_raw_registers = gdbarch_num_regs (current_gdbarch);
+  descr->nr_raw_registers = gdbarch_num_regs (gdbarch);
 
   /* FIXME: cagney/2002-08-13: Overallocate the register_valid_p
      array.  This pretects GDB from erant code that accesses elements
 
   /* FIXME: cagney/2002-08-13: Overallocate the register_valid_p
      array.  This pretects GDB from erant code that accesses elements
@@ -174,8 +174,8 @@ register_size (struct gdbarch *gdbarch, int regnum)
   struct regcache_descr *descr = regcache_descr (gdbarch);
   int size;
   gdb_assert (regnum >= 0
   struct regcache_descr *descr = regcache_descr (gdbarch);
   int size;
   gdb_assert (regnum >= 0
-             && regnum < (gdbarch_num_regs (current_gdbarch)
-                          + gdbarch_num_pseudo_regs (current_gdbarch)));
+             && regnum < (gdbarch_num_regs (gdbarch)
+                          + gdbarch_num_pseudo_regs (gdbarch)));
   size = descr->sizeof_register[regnum];
   return size;
 }
   size = descr->sizeof_register[regnum];
   return size;
 }
@@ -642,7 +642,7 @@ regcache_raw_write (struct regcache *regcache, int regnum,
 
   /* On the sparc, writing %g0 is a no-op, so we don't even want to
      change the registers array if something writes to this register.  */
 
   /* On the sparc, writing %g0 is a no-op, so we don't even want to
      change the registers array if something writes to this register.  */
-  if (gdbarch_cannot_store_register (current_gdbarch, regnum))
+  if (gdbarch_cannot_store_register (get_regcache_arch (regcache), regnum))
     return;
 
   /* If we have a valid copy of the register, and new value == old
     return;
 
   /* If we have a valid copy of the register, and new value == old
@@ -837,13 +837,13 @@ read_pc_pid (ptid_t ptid)
   if (gdbarch_read_pc_p (gdbarch))
     pc_val = gdbarch_read_pc (gdbarch, regcache);
   /* Else use per-frame method on get_current_frame.  */
   if (gdbarch_read_pc_p (gdbarch))
     pc_val = gdbarch_read_pc (gdbarch, regcache);
   /* Else use per-frame method on get_current_frame.  */
-  else if (gdbarch_pc_regnum (current_gdbarch) >= 0)
+  else if (gdbarch_pc_regnum (gdbarch) >= 0)
     {
       ULONGEST raw_val;
       regcache_cooked_read_unsigned (regcache,
     {
       ULONGEST raw_val;
       regcache_cooked_read_unsigned (regcache,
-                                    gdbarch_pc_regnum (current_gdbarch),
+                                    gdbarch_pc_regnum (gdbarch),
                                     &raw_val);
                                     &raw_val);
-      pc_val = gdbarch_addr_bits_remove (current_gdbarch, raw_val);
+      pc_val = gdbarch_addr_bits_remove (gdbarch, raw_val);
     }
   else
     internal_error (__FILE__, __LINE__, _("read_pc_pid: Unable to find PC"));
     }
   else
     internal_error (__FILE__, __LINE__, _("read_pc_pid: Unable to find PC"));
@@ -865,9 +865,9 @@ write_pc_pid (CORE_ADDR pc, ptid_t ptid)
 
   if (gdbarch_write_pc_p (gdbarch))
     gdbarch_write_pc (gdbarch, regcache, pc);
 
   if (gdbarch_write_pc_p (gdbarch))
     gdbarch_write_pc (gdbarch, regcache, pc);
-  else if (gdbarch_pc_regnum (current_gdbarch) >= 0)
+  else if (gdbarch_pc_regnum (gdbarch) >= 0)
     regcache_cooked_write_unsigned (regcache,
     regcache_cooked_write_unsigned (regcache,
-                                   gdbarch_pc_regnum (current_gdbarch), pc);
+                                   gdbarch_pc_regnum (gdbarch), pc);
   else
     internal_error (__FILE__, __LINE__,
                    _("write_pc_pid: Unable to update PC"));
   else
     internal_error (__FILE__, __LINE__,
                    _("write_pc_pid: Unable to update PC"));
@@ -938,14 +938,14 @@ regcache_dump (struct regcache *regcache, struct ui_file *file,
   fprintf_unfiltered (file, "sizeof_raw_register_valid_p %ld\n",
                      regcache->descr->sizeof_raw_register_valid_p);
   fprintf_unfiltered (file, "gdbarch_num_regs %d\n", 
   fprintf_unfiltered (file, "sizeof_raw_register_valid_p %ld\n",
                      regcache->descr->sizeof_raw_register_valid_p);
   fprintf_unfiltered (file, "gdbarch_num_regs %d\n", 
-                     gdbarch_num_regs (current_gdbarch));
+                     gdbarch_num_regs (gdbarch));
   fprintf_unfiltered (file, "gdbarch_num_pseudo_regs %d\n",
   fprintf_unfiltered (file, "gdbarch_num_pseudo_regs %d\n",
-                     gdbarch_num_pseudo_regs (current_gdbarch));
+                     gdbarch_num_pseudo_regs (gdbarch));
 #endif
 
   gdb_assert (regcache->descr->nr_cooked_registers
 #endif
 
   gdb_assert (regcache->descr->nr_cooked_registers
-             == (gdbarch_num_regs (current_gdbarch)
-                 + gdbarch_num_pseudo_regs (current_gdbarch)));
+             == (gdbarch_num_regs (gdbarch)
+                 + gdbarch_num_pseudo_regs (gdbarch)));
 
   for (regnum = -1; regnum < regcache->descr->nr_cooked_registers; regnum++)
     {
 
   for (regnum = -1; regnum < regcache->descr->nr_cooked_registers; regnum++)
     {
@@ -954,7 +954,7 @@ regcache_dump (struct regcache *regcache, struct ui_file *file,
        fprintf_unfiltered (file, " %-10s", "Name");
       else
        {
        fprintf_unfiltered (file, " %-10s", "Name");
       else
        {
-         const char *p = gdbarch_register_name (current_gdbarch, regnum);
+         const char *p = gdbarch_register_name (gdbarch, regnum);
          if (p == NULL)
            p = "";
          else if (p[0] == '\0')
          if (p == NULL)
            p = "";
          else if (p[0] == '\0')
@@ -971,11 +971,11 @@ regcache_dump (struct regcache *regcache, struct ui_file *file,
       /* Relative number.  */
       if (regnum < 0)
        fprintf_unfiltered (file, " %4s", "Rel");
       /* Relative number.  */
       if (regnum < 0)
        fprintf_unfiltered (file, " %4s", "Rel");
-      else if (regnum < gdbarch_num_regs (current_gdbarch))
+      else if (regnum < gdbarch_num_regs (gdbarch))
        fprintf_unfiltered (file, " %4d", regnum);
       else
        fprintf_unfiltered (file, " %4d",
        fprintf_unfiltered (file, " %4d", regnum);
       else
        fprintf_unfiltered (file, " %4d",
-                           (regnum - gdbarch_num_regs (current_gdbarch)));
+                           (regnum - gdbarch_num_regs (gdbarch)));
 
       /* Offset.  */
       if (regnum < 0)
 
       /* Offset.  */
       if (regnum < 0)
@@ -1050,7 +1050,7 @@ regcache_dump (struct regcache *regcache, struct ui_file *file,
              regcache_raw_read (regcache, regnum, buf);
              fprintf_unfiltered (file, "0x");
              dump_endian_bytes (file,
              regcache_raw_read (regcache, regnum, buf);
              fprintf_unfiltered (file, "0x");
              dump_endian_bytes (file,
-                                gdbarch_byte_order (current_gdbarch), buf,
+                                gdbarch_byte_order (gdbarch), buf,
                                 regcache->descr->sizeof_register[regnum]);
            }
        }
                                 regcache->descr->sizeof_register[regnum]);
            }
        }
@@ -1065,7 +1065,7 @@ regcache_dump (struct regcache *regcache, struct ui_file *file,
              regcache_cooked_read (regcache, regnum, buf);
              fprintf_unfiltered (file, "0x");
              dump_endian_bytes (file,
              regcache_cooked_read (regcache, regnum, buf);
              fprintf_unfiltered (file, "0x");
              dump_endian_bytes (file,
-                                gdbarch_byte_order (current_gdbarch), buf,
+                                gdbarch_byte_order (gdbarch), buf,
                                 regcache->descr->sizeof_register[regnum]);
            }
        }
                                 regcache->descr->sizeof_register[regnum]);
            }
        }