* mips-linux-nat.c: No longer include "gdbcore.h".
authorUlrich Weigand <uweigand@de.ibm.com>
Wed, 25 Apr 2007 22:22:11 +0000 (22:22 +0000)
committerUlrich Weigand <uweigand@de.ibm.com>
Wed, 25 Apr 2007 22:22:11 +0000 (22:22 +0000)
(mips_linux_register_addr): Move from mips-linux-tdep.c.
(mips64_linux_register_addr): Likewise.
(mips_linux_register_u_offset): Call mips_linux_register_addr or
mips64_linux_register_addr instead of register_addr.
* mips-linux-tdep.c (mips_linux_register_addr,
mips64_linux_register_addr): Move to mips-linux-nat.c.
(register_addr): Remove.
(register_addr_data, init_register_addr_data): Remove.
(_initialize_mips_linux_tdep): Do not initialize register_addr_data.
(set_mips_linux_register_addr): Remove.
(mips_linux_init_abi): Do not call set_mips_linux_register_addr.
* Makefile.in (mips-linux-nat.o): Update dependencies.

gdb/ChangeLog
gdb/Makefile.in
gdb/mips-linux-nat.c
gdb/mips-linux-tdep.c

index 50add55a756658499bc1f0c45b68eeb37d0e6514..bce1eddebe014d652af1535604e558fc9a15e74e 100644 (file)
@@ -1,3 +1,19 @@
+2007-04-25  Ulrich Weigand  <uweigand@de.ibm.com>
+
+       * mips-linux-nat.c: No longer include "gdbcore.h".
+       (mips_linux_register_addr): Move from mips-linux-tdep.c.
+       (mips64_linux_register_addr): Likewise.
+       (mips_linux_register_u_offset): Call mips_linux_register_addr or
+       mips64_linux_register_addr instead of register_addr.
+       * mips-linux-tdep.c (mips_linux_register_addr,
+       mips64_linux_register_addr): Move to mips-linux-nat.c.
+       (register_addr): Remove.
+       (register_addr_data, init_register_addr_data): Remove.
+       (_initialize_mips_linux_tdep): Do not initialize register_addr_data.
+       (set_mips_linux_register_addr): Remove.
+       (mips_linux_init_abi): Do not call set_mips_linux_register_addr.
+       * Makefile.in (mips-linux-nat.o): Update dependencies.
+
 2007-04-25  Ulrich Weigand  <uweigand@de.ibm.com>
 
        * linux-nat.c (linux_register_u_offset): Remove.
index 7885934e15419fa8c1de532bff44f0660dc11bd7..927d87eb753346054c99280e6e45eb1e5af041f4 100644 (file)
@@ -2341,7 +2341,7 @@ mips64obsd-tdep.o: mips64obsd-tdep.c $(defs_h) $(osabi_h) $(regcache_h) \
 mips-irix-tdep.o: mips-irix-tdep.c $(defs_h) $(osabi_h) $(elf_bfd_h)
 mips-linux-nat.o: mips-linux-nat.c $(defs_h) $(mips_tdep_h) $(target_h) \
        $(linux_nat_h) $(gdb_proc_service_h) $(mips_linux_tdep_h) \
-       $(gdbcore_h) $(inferior_h)
+       $(inferior_h)
 mips-linux-tdep.o: mips-linux-tdep.c $(defs_h) $(gdbcore_h) $(target_h) \
        $(solib_svr4_h) $(osabi_h) $(mips_tdep_h) $(gdb_string_h) \
        $(gdb_assert_h) $(frame_h) $(regcache_h) $(trad_frame_h) \
index d5a12025690a1adc6d86debca8ee183fb6d8c0f3..b4c275a3445c44469058e275fefb437b7d2a1d99 100644 (file)
@@ -26,7 +26,6 @@
 #include "target.h"
 #include "linux-nat.h"
 #include "mips-linux-tdep.h"
-#include "gdbcore.h"
 
 #include "gdb_proc_service.h"
 
@@ -87,6 +86,75 @@ mips_linux_cannot_store_register (int regno)
     return 1;
 }
 
+/* Map gdb internal register number to ptrace ``address''.
+   These ``addresses'' are normally defined in <asm/ptrace.h>.  */
+
+static CORE_ADDR
+mips_linux_register_addr (int regno)
+{
+  int regaddr;
+
+  if (regno < 0 || regno >= NUM_REGS)
+    error (_("Bogon register number %d."), regno);
+
+  if (regno < 32)
+    regaddr = regno;
+  else if ((regno >= mips_regnum (current_gdbarch)->fp0)
+          && (regno < mips_regnum (current_gdbarch)->fp0 + 32))
+    regaddr = FPR_BASE + (regno - mips_regnum (current_gdbarch)->fp0);
+  else if (regno == mips_regnum (current_gdbarch)->pc)
+    regaddr = PC;
+  else if (regno == mips_regnum (current_gdbarch)->cause)
+    regaddr = CAUSE;
+  else if (regno == mips_regnum (current_gdbarch)->badvaddr)
+    regaddr = BADVADDR;
+  else if (regno == mips_regnum (current_gdbarch)->lo)
+    regaddr = MMLO;
+  else if (regno == mips_regnum (current_gdbarch)->hi)
+    regaddr = MMHI;
+  else if (regno == mips_regnum (current_gdbarch)->fp_control_status)
+    regaddr = FPC_CSR;
+  else if (regno == mips_regnum (current_gdbarch)->fp_implementation_revision)
+    regaddr = FPC_EIR;
+  else
+    error (_("Unknowable register number %d."), regno);
+
+  return regaddr;
+}
+
+static CORE_ADDR
+mips64_linux_register_addr (int regno)
+{
+  int regaddr;
+
+  if (regno < 0 || regno >= NUM_REGS)
+    error (_("Bogon register number %d."), regno);
+
+  if (regno < 32)
+    regaddr = regno;
+  else if ((regno >= mips_regnum (current_gdbarch)->fp0)
+          && (regno < mips_regnum (current_gdbarch)->fp0 + 32))
+    regaddr = MIPS64_FPR_BASE + (regno - FP0_REGNUM);
+  else if (regno == mips_regnum (current_gdbarch)->pc)
+    regaddr = MIPS64_PC;
+  else if (regno == mips_regnum (current_gdbarch)->cause)
+    regaddr = MIPS64_CAUSE;
+  else if (regno == mips_regnum (current_gdbarch)->badvaddr)
+    regaddr = MIPS64_BADVADDR;
+  else if (regno == mips_regnum (current_gdbarch)->lo)
+    regaddr = MIPS64_MMLO;
+  else if (regno == mips_regnum (current_gdbarch)->hi)
+    regaddr = MIPS64_MMHI;
+  else if (regno == mips_regnum (current_gdbarch)->fp_control_status)
+    regaddr = MIPS64_FPC_CSR;
+  else if (regno == mips_regnum (current_gdbarch)->fp_implementation_revision)
+    regaddr = MIPS64_FPC_EIR;
+  else
+    error (_("Unknowable register number %d."), regno);
+
+  return regaddr;
+}
+
 /* Fetch the thread-local storage pointer for libthread_db.  */
 
 ps_err_e
@@ -253,10 +321,10 @@ mips64_linux_store_registers (int regnum)
 static CORE_ADDR
 mips_linux_register_u_offset (int regno)
 {
-  /* FIXME drow/2005-09-04: The hardcoded use of register_addr should go
-     away.  This requires disentangling the various definitions of it
-     (particularly alpha-nat.c's).  */
-  return register_addr (regno, 0);
+  if (mips_abi_regsize (current_gdbarch) == 8)
+    return mips64_linux_register_addr (regno);
+  else
+    return mips_linux_register_addr (regno);
 }
 
 void _initialize_mips_linux_nat (void);
index bf4c78635f3c01040cec397eeb62cae73474896e..dec2f4215e6abd3c58051e16b75fc382eb0c6cfc 100644 (file)
@@ -218,42 +218,6 @@ mips_fill_fpregset (mips_elf_fpregset_t *fpregsetp, int regno)
     }
 }
 
-/* Map gdb internal register number to ptrace ``address''.
-   These ``addresses'' are normally defined in <asm/ptrace.h>.  */
-
-static CORE_ADDR
-mips_linux_register_addr (int regno, CORE_ADDR blockend)
-{
-  int regaddr;
-
-  if (regno < 0 || regno >= NUM_REGS)
-    error (_("Bogon register number %d."), regno);
-
-  if (regno < 32)
-    regaddr = regno;
-  else if ((regno >= mips_regnum (current_gdbarch)->fp0)
-          && (regno < mips_regnum (current_gdbarch)->fp0 + 32))
-    regaddr = FPR_BASE + (regno - mips_regnum (current_gdbarch)->fp0);
-  else if (regno == mips_regnum (current_gdbarch)->pc)
-    regaddr = PC;
-  else if (regno == mips_regnum (current_gdbarch)->cause)
-    regaddr = CAUSE;
-  else if (regno == mips_regnum (current_gdbarch)->badvaddr)
-    regaddr = BADVADDR;
-  else if (regno == mips_regnum (current_gdbarch)->lo)
-    regaddr = MMLO;
-  else if (regno == mips_regnum (current_gdbarch)->hi)
-    regaddr = MMHI;
-  else if (regno == mips_regnum (current_gdbarch)->fp_control_status)
-    regaddr = FPC_CSR;
-  else if (regno == mips_regnum (current_gdbarch)->fp_implementation_revision)
-    regaddr = FPC_EIR;
-  else
-    error (_("Unknowable register number %d."), regno);
-
-  return regaddr;
-}
-
 /* Support for 64-bit ABIs.  */
 
 /* Figure out where the longjmp will land.
@@ -487,42 +451,6 @@ mips64_fill_fpregset (mips64_elf_fpregset_t *fpregsetp, int regno)
 }
 
 
-/* Map gdb internal register number to ptrace ``address''.
-   These ``addresses'' are normally defined in <asm/ptrace.h>.  */
-
-static CORE_ADDR
-mips64_linux_register_addr (int regno, CORE_ADDR blockend)
-{
-  int regaddr;
-
-  if (regno < 0 || regno >= NUM_REGS)
-    error (_("Bogon register number %d."), regno);
-
-  if (regno < 32)
-    regaddr = regno;
-  else if ((regno >= mips_regnum (current_gdbarch)->fp0)
-          && (regno < mips_regnum (current_gdbarch)->fp0 + 32))
-    regaddr = MIPS64_FPR_BASE + (regno - FP0_REGNUM);
-  else if (regno == mips_regnum (current_gdbarch)->pc)
-    regaddr = MIPS64_PC;
-  else if (regno == mips_regnum (current_gdbarch)->cause)
-    regaddr = MIPS64_CAUSE;
-  else if (regno == mips_regnum (current_gdbarch)->badvaddr)
-    regaddr = MIPS64_BADVADDR;
-  else if (regno == mips_regnum (current_gdbarch)->lo)
-    regaddr = MIPS64_MMLO;
-  else if (regno == mips_regnum (current_gdbarch)->hi)
-    regaddr = MIPS64_MMHI;
-  else if (regno == mips_regnum (current_gdbarch)->fp_control_status)
-    regaddr = MIPS64_FPC_CSR;
-  else if (regno == mips_regnum (current_gdbarch)->fp_implementation_revision)
-    regaddr = MIPS64_FPC_EIR;
-  else
-    error (_("Unknowable register number %d."), regno);
-
-  return regaddr;
-}
-
 /*  Use a local version of this function to get the correct types for
     regsets, until multi-arch core support is ready.  */
 
@@ -584,35 +512,6 @@ static struct core_fns regset_core_fns =
   NULL                                 /* next */
 };
 
-/* Handle for obtaining pointer to the current register_addr()
-   function for a given architecture.  */
-static struct gdbarch_data *register_addr_data;
-
-CORE_ADDR
-register_addr (int regno, CORE_ADDR blockend)
-{
-  CORE_ADDR (*register_addr_ptr) (int, CORE_ADDR) =
-    gdbarch_data (current_gdbarch, register_addr_data);
-
-  gdb_assert (register_addr_ptr != 0);
-
-  return register_addr_ptr (regno, blockend);
-}
-
-static void
-set_mips_linux_register_addr (struct gdbarch *gdbarch,
-                              CORE_ADDR (*register_addr_ptr) (int,
-                                                             CORE_ADDR))
-{
-  deprecated_set_gdbarch_data (gdbarch, register_addr_data,
-                              register_addr_ptr);
-}
-
-static void *
-init_register_addr_data (struct gdbarch *gdbarch)
-{
-  return 0;
-}
 
 /* Check the code at PC for a dynamic linker lazy resolution stub.
    Because they aren't in the .plt section, we pattern-match on the
@@ -1139,7 +1038,6 @@ mips_linux_init_abi (struct gdbarch_info info,
                                        mips_linux_get_longjmp_target);
        set_solib_svr4_fetch_link_map_offsets
          (gdbarch, svr4_ilp32_fetch_link_map_offsets);
-       set_mips_linux_register_addr (gdbarch, mips_linux_register_addr);
        tramp_frame_prepend_unwinder (gdbarch, &mips_linux_o32_sigframe);
        tramp_frame_prepend_unwinder (gdbarch, &mips_linux_o32_rt_sigframe);
        break;
@@ -1148,7 +1046,6 @@ mips_linux_init_abi (struct gdbarch_info info,
                                        mips_linux_get_longjmp_target);
        set_solib_svr4_fetch_link_map_offsets
          (gdbarch, svr4_ilp32_fetch_link_map_offsets);
-       set_mips_linux_register_addr (gdbarch, mips64_linux_register_addr);
        set_gdbarch_long_double_bit (gdbarch, 128);
        /* These floatformats should probably be renamed.  MIPS uses
           the same 128-bit IEEE floating point format that IA-64 uses,
@@ -1162,7 +1059,6 @@ mips_linux_init_abi (struct gdbarch_info info,
                                        mips64_linux_get_longjmp_target);
        set_solib_svr4_fetch_link_map_offsets
          (gdbarch, svr4_lp64_fetch_link_map_offsets);
-       set_mips_linux_register_addr (gdbarch, mips64_linux_register_addr);
        set_gdbarch_long_double_bit (gdbarch, 128);
        /* These floatformats should probably be renamed.  MIPS uses
           the same 128-bit IEEE floating point format that IA-64 uses,
@@ -1191,9 +1087,6 @@ _initialize_mips_linux_tdep (void)
 {
   const struct bfd_arch_info *arch_info;
 
-  register_addr_data =
-    gdbarch_data_register_post_init (init_register_addr_data);
-
   for (arch_info = bfd_lookup_arch (bfd_arch_mips, 0);
        arch_info != NULL;
        arch_info = arch_info->next)
This page took 0.031809 seconds and 4 git commands to generate.