Commit graph

10137 commits

Author SHA1 Message Date
Andrew Cagney
9982c2e721 2004-03-17 Andrew Cagney <cagney@redhat.com>
* frame.c (legacy_get_prev_frame): Pass correct frame to
	frame_unwind_find_by_frame.
2004-03-17 23:43:36 +00:00
David Carlton
8dfe89858d 2004-03-17 David Carlton <carlton@kealia.com>
* NEWS: Mention C++ nested types and namespaces
2004-03-17 17:35:54 +00:00
Michael Chastain
ed47347a6d 2004-03-16 Michael Chastain <mec.gnu@mindspring.com>
* PROBLEMS: Add section headers, "Regressions since gdb 6.0"
	and "Regressions since gdb 5.3.".  Add known regressions since
	gdb 6.0.
2004-03-17 07:00:41 +00:00
Mark Kettenis
3248c32522 Fix typo in ChangeLog entry. 2004-03-17 00:21:17 +00:00
David Carlton
90aeadfcc3 2004-03-16 David Carlton <carlton@kealia.com>
* dwarf2read.c (process_structure_scope): Process children even
	when we're a declaration.
2004-03-16 22:43:15 +00:00
Andrew Cagney
73912b9b23 2004-03-16 Andrew Cagney <cagney@redhat.com>
* symtab.h (find_pc_sect_partial_function): Delete declaration.
	* blockframe.c (find_pc_partial_function)
	(find_pc_sect_partial_function): Merge into a single
	find_pc_partial_function.
2004-03-16 20:25:24 +00:00
Mark Kettenis
283accbcf2 * i386bsd-nat.c: s/regno/regnum/g.
(fetch_inferior_registers): Use I386_ST0_REGNUM instead of
FP0_REGNUM.
(store_inferior_registers): Likewise.
2004-03-16 13:54:10 +00:00
Mark Kettenis
f5b1afdf65 * i386bsd-nat.c (fill_fpregset): Call i387_collect_fsave instead
of i387_fill_fsave.
(store_inferior_registers): Call i387_collect_fsave and
i387_collect_fxsave instead of i387_fill_fsave and
i387_fill_fxsave.
2004-03-16 13:48:23 +00:00
Andrew Cagney
41fe5eb389 2004-03-15 Andrew Cagney <cagney@redhat.com>
* Makefile.in (frame-unwind.o): Update dependencies.
	* frame-unwind.c: Include "gdb_obstack.h".
	(frame_unwind_init): Replace "gdbarch" parameter with an "obstack"
	parameter.
	(append_predicate): Delete function.
	(struct frame_unwind_table_entry): New structure.
	(struct frame_unwind_table): Replace "sniffer" with "head" and
	"tail".
	(frame_unwind_append_sniffer): Update.
	(frame_unwind_find_by_frame): Update.
	(_initialize_frame_unwind): Registe frame_unwind_init using
	gdbarch_data_register_pre_init.
2004-03-15 23:08:28 +00:00
Mark Kettenis
3f63813d05 * i386bsd-nat.c: Update copyright year.
(CANNOT_FETCH_REGISTER, CANNOT_STORE_REGISTER): Undefine and then
define unconditionally.
2004-03-15 23:03:07 +00:00
Mark Kettenis
63b6c53fc1 * i387-tdep.h (i387_collect_fsave): New prototype.
* i387-tdep.c (i387_collect_fsave): New function containing most
of the code from i387_fill_fsave.
(i387_fill_fsave): Call i387_fill_fsave.
2004-03-15 22:44:12 +00:00
Mark Kettenis
871fbe6a50 * i386-linux-tdep.c: Update copyright year.
(i386_linux_svr4_fetch_link_map_offsets): Remove function.
(i386_linux_init_abi): Set solib_svr4_fetch_link_maop_offsets to
svr4_ilp32_link_map_offsets instead of
i386_linux_svr4_fetch_link_map_offsets.
2004-03-15 22:38:21 +00:00
David Carlton
8176b9b8a3 2004-03-15 David Carlton <carlton@kealia.com>
Fix for PR c++/1553:
	* dwarf2read.c (read_structure_type): Determine type name by
	calling determine_class_name.
	(determine_class_name): New.
	(determine_prefix): Look at TYPE_TAG_NAME and call
	determine_class_name when appropriate.
	(determine_prefix_aux, class_name): Delete.
2004-03-15 22:33:52 +00:00
Kevin Buettner
fe8bf7d723 * breakpoint.c (TARGET_REGION_SIZE_OK_FOR_HW_WATCHPOINT): Delete
unused macro definition.  The definition in target.h (or perhaps
	elsewhere) takes precedence.
2004-03-15 21:58:31 +00:00
Andrew Cagney
f9be684a36 2004-03-15 Andrew Cagney <cagney@redhat.com>
* ppc-tdep.h: Update copyright.
	(ppc_linux_supply_gregset, ppc_linux_supply_fpregset): Change
	function signatures to match "regsets.h".
	* ppc-linux-tdep.c: Include "regset.h".
	(ELF_GREGSET_SIZE): Delete.
	(right_supply_register): New function.
	(ppc_linux_supply_fpregset, ppc_linux_supply_gregset): Rewrite
	using right_supply_register.
	(ppc32_linux_supply_gregset, ppc64_linux_supply_gregset): New
	functions.
	(ppc64_linux_gregset, ppc32_linux_gregset): Define.
	(ppc_linux_init_abi): Register ppc_linux_regset_from_core_section.
	(_initialize_ppc_linux_tdep): Do not register
	ppc_linux_regset_core_fns.
	(ppc_linux_regset_from_core_section): Replace
	fetch_core_registers.
	(ppc_linux_regset_core_fns): Delete.
	* ppc-linux-nat.c: (right_fill_reg): New function.
	(supply_gregset): Update call to ppc_linux_supply_gregset.
	(fill_gregset): Clear the register set, use right_fill_reg.
	(supply_fpregset): Update call to ppc_linux_supply_fpregset.
	(fill_fpregset): Use right_fill_reg, correctly compute FP offsets.

Index: ppc-linux-nat.c
===================================================================
RCS file: /cvs/src/src/gdb/ppc-linux-nat.c,v
retrieving revision 1.28
diff -u -r1.28 ppc-linux-nat.c
--- ppc-linux-nat.c	8 Mar 2004 01:45:02 -0000	1.28
+++ ppc-linux-nat.c	15 Mar 2004 21:28:31 -0000
@@ -507,7 +507,24 @@
 void
 supply_gregset (gdb_gregset_t *gregsetp)
 {
-  ppc_linux_supply_gregset ((char *) gregsetp);
+  /* NOTE: cagney/2003-11-25: This is the word size used by the ptrace
+     interface, and not the wordsize of the program's ABI.  */
+  int wordsize = sizeof (PTRACE_XFER_TYPE);
+  ppc_linux_supply_gregset (current_regcache, -1, gregsetp,
+			    sizeof (gdb_gregset_t), wordsize);
+}
+
+static void
+right_fill_reg (int regnum, void *reg)
+{
+  /* NOTE: cagney/2003-11-25: This is the word size used by the ptrace
+     interface, and not the wordsize of the program's ABI.  */
+  int wordsize = sizeof (PTRACE_XFER_TYPE);
+  /* Right fill the register.  */
+  regcache_raw_collect (current_regcache, regnum,
+			((bfd_byte *) reg
+			 + wordsize
+			 - register_size (current_gdbarch, regnum)));
 }

 void
@@ -516,36 +533,42 @@
   int regi;
   elf_greg_t *regp = (elf_greg_t *) gregsetp;
   struct gdbarch_tdep *tdep = gdbarch_tdep (current_gdbarch);
+  const int elf_ngreg = 48;
+
+
+  /* Start with zeros.  */
+  memset (regp, 0, elf_ngreg * sizeof (*regp));

   for (regi = 0; regi < 32; regi++)
     {
       if ((regno == -1) || regno == regi)
-        regcache_collect (regi, regp + PT_R0 + regi);
+	right_fill_reg (regi, (regp + PT_R0 + regi));
     }

   if ((regno == -1) || regno == PC_REGNUM)
-    regcache_collect (PC_REGNUM, regp + PT_NIP);
+    right_fill_reg (PC_REGNUM, regp + PT_NIP);
   if ((regno == -1) || regno == tdep->ppc_lr_regnum)
-    regcache_collect (tdep->ppc_lr_regnum, regp + PT_LNK);
+    right_fill_reg (tdep->ppc_lr_regnum, regp + PT_LNK);
   if ((regno == -1) || regno == tdep->ppc_cr_regnum)
     regcache_collect (tdep->ppc_cr_regnum, regp + PT_CCR);
   if ((regno == -1) || regno == tdep->ppc_xer_regnum)
     regcache_collect (tdep->ppc_xer_regnum, regp + PT_XER);
   if ((regno == -1) || regno == tdep->ppc_ctr_regnum)
-    regcache_collect (tdep->ppc_ctr_regnum, regp + PT_CTR);
+    right_fill_reg (tdep->ppc_ctr_regnum, regp + PT_CTR);
 #ifdef PT_MQ
   if (((regno == -1) || regno == tdep->ppc_mq_regnum)
       && (tdep->ppc_mq_regnum != -1))
-    regcache_collect (tdep->ppc_mq_regnum, regp + PT_MQ);
+    right_fill_reg (tdep->ppc_mq_regnum, regp + PT_MQ);
 #endif
   if ((regno == -1) || regno == tdep->ppc_ps_regnum)
-    regcache_collect (tdep->ppc_ps_regnum, regp + PT_MSR);
+    right_fill_reg (tdep->ppc_ps_regnum, regp + PT_MSR);
 }

 void
 supply_fpregset (gdb_fpregset_t * fpregsetp)
 {
-  ppc_linux_supply_fpregset ((char *) fpregsetp);
+  ppc_linux_supply_fpregset (NULL, current_regcache, -1, fpregsetp,
+			     sizeof (gdb_fpregset_t));
 }

 /* Given a pointer to a floating point register set in /proc format
@@ -557,12 +580,13 @@
 {
   int regi;
   struct gdbarch_tdep *tdep = gdbarch_tdep (current_gdbarch);
+  bfd_byte *fpp = (void *) fpregsetp;

   for (regi = 0; regi < 32; regi++)
     {
       if ((regno == -1) || (regno == FP0_REGNUM + regi))
-	regcache_collect (FP0_REGNUM + regi, (char *) (*fpregsetp + regi));
+	regcache_collect (FP0_REGNUM + regi, fpp + 8 * regi);
     }
   if ((regno == -1) || regno == tdep->ppc_fpscr_regnum)
-    regcache_collect (tdep->ppc_fpscr_regnum, (char *) (*fpregsetp + regi));
+    right_fill_reg (tdep->ppc_fpscr_regnum, (fpp + 8 * 32));
 }
Index: ppc-linux-tdep.c
===================================================================
RCS file: /cvs/src/src/gdb/ppc-linux-tdep.c,v
retrieving revision 1.50
diff -u -r1.50 ppc-linux-tdep.c
--- ppc-linux-tdep.c	16 Feb 2004 21:49:22 -0000	1.50
+++ ppc-linux-tdep.c	15 Mar 2004 21:28:31 -0000
@@ -32,7 +32,7 @@
 #include "regcache.h"
 #include "value.h"
 #include "osabi.h"
-
+#include "regset.h"
 #include "solib-svr4.h"
 #include "ppc-tdep.h"

@@ -959,81 +959,114 @@
 };

 enum {
-  ELF_GREGSET_SIZE = (ELF_NGREG * 4),
   ELF_FPREGSET_SIZE = (ELF_NFPREG * 8)
 };

+static void
+right_supply_register (struct regcache *regcache, int wordsize, int regnum,
+		       const bfd_byte *buf)
+{
+  regcache_raw_supply (regcache, regnum,
+		       (buf + wordsize
+			- register_size (current_gdbarch, regnum)));
+}
+
+/* Extract the register values found in the WORDSIZED ABI GREGSET,
+   storing their values in REGCACHE.  Note that some are left-aligned,
+   while others are right aligned.  */
+
 void
-ppc_linux_supply_gregset (char *buf)
+ppc_linux_supply_gregset (struct regcache *regcache,
+			  int regnum, const void *gregs, size_t size,
+			  int wordsize)
 {
   int regi;
-  struct gdbarch_tdep *tdep = gdbarch_tdep (current_gdbarch);
+  struct gdbarch *regcache_arch = get_regcache_arch (regcache);
+  struct gdbarch_tdep *regcache_tdep = gdbarch_tdep (regcache_arch);
+  const bfd_byte *buf = gregs;

   for (regi = 0; regi < 32; regi++)
-    supply_register (regi, buf + 4 * regi);
+    right_supply_register (regcache, wordsize, regi, buf + wordsize * regi);
+
+  right_supply_register (regcache, wordsize, gdbarch_pc_regnum (regcache_arch),
+			 buf + wordsize * PPC_LINUX_PT_NIP);
+  right_supply_register (regcache, wordsize, regcache_tdep->ppc_lr_regnum,
+			 buf + wordsize * PPC_LINUX_PT_LNK);
+  regcache_raw_supply (regcache, regcache_tdep->ppc_cr_regnum,
+		       buf + wordsize * PPC_LINUX_PT_CCR);
+  regcache_raw_supply (regcache, regcache_tdep->ppc_xer_regnum,
+		       buf + wordsize * PPC_LINUX_PT_XER);
+  regcache_raw_supply (regcache, regcache_tdep->ppc_ctr_regnum,
+		       buf + wordsize * PPC_LINUX_PT_CTR);
+  if (regcache_tdep->ppc_mq_regnum != -1)
+    right_supply_register (regcache, wordsize, regcache_tdep->ppc_mq_regnum,
+			   buf + wordsize * PPC_LINUX_PT_MQ);
+  right_supply_register (regcache, wordsize, regcache_tdep->ppc_ps_regnum,
+			 buf + wordsize * PPC_LINUX_PT_MSR);
+}

-  supply_register (PC_REGNUM, buf + 4 * PPC_LINUX_PT_NIP);
-  supply_register (tdep->ppc_lr_regnum, buf + 4 * PPC_LINUX_PT_LNK);
-  supply_register (tdep->ppc_cr_regnum, buf + 4 * PPC_LINUX_PT_CCR);
-  supply_register (tdep->ppc_xer_regnum, buf + 4 * PPC_LINUX_PT_XER);
-  supply_register (tdep->ppc_ctr_regnum, buf + 4 * PPC_LINUX_PT_CTR);
-  if (tdep->ppc_mq_regnum != -1)
-    supply_register (tdep->ppc_mq_regnum, buf + 4 * PPC_LINUX_PT_MQ);
-  supply_register (tdep->ppc_ps_regnum, buf + 4 * PPC_LINUX_PT_MSR);
+static void
+ppc32_linux_supply_gregset (const struct regset *regset,
+			    struct regcache *regcache,
+			    int regnum, const void *gregs, size_t size)
+{
+  ppc_linux_supply_gregset (regcache, regnum, gregs, size, 4);
 }

+static struct regset ppc32_linux_gregset = {
+  NULL, ppc32_linux_supply_gregset
+};
+
+static void
+ppc64_linux_supply_gregset (const struct regset *regset,
+			    struct regcache * regcache,
+			    int regnum, const void *gregs, size_t size)
+{
+  ppc_linux_supply_gregset (regcache, regnum, gregs, size, 8);
+}
+
+static struct regset ppc64_linux_gregset = {
+  NULL, ppc64_linux_supply_gregset
+};
+
 void
-ppc_linux_supply_fpregset (char *buf)
+ppc_linux_supply_fpregset (const struct regset *regset,
+			   struct regcache * regcache,
+			   int regnum, const void *fpset, size_t size)
 {
   int regi;
-  struct gdbarch_tdep *tdep = gdbarch_tdep (current_gdbarch);
+  struct gdbarch *regcache_arch = get_regcache_arch (regcache);
+  struct gdbarch_tdep *regcache_tdep = gdbarch_tdep (regcache_arch);
+  const bfd_byte *buf = fpset;

   for (regi = 0; regi < 32; regi++)
-    supply_register (FP0_REGNUM + regi, buf + 8 * regi);
+    regcache_raw_supply (regcache, FP0_REGNUM + regi, buf + 8 * regi);

   /* The FPSCR is stored in the low order word of the last doubleword in the
      fpregset.  */
-  supply_register (tdep->ppc_fpscr_regnum, buf + 8 * 32 + 4);
+  regcache_raw_supply (regcache, regcache_tdep->ppc_fpscr_regnum,
+		       buf + 8 * 32 + 4);
 }

-/*
-  Use a local version of this function to get the correct types for regsets.
-*/
+static struct regset ppc_linux_fpregset = { NULL, ppc_linux_supply_fpregset };

-static void
-fetch_core_registers (char *core_reg_sect,
-		      unsigned core_reg_size,
-		      int which,
-		      CORE_ADDR reg_addr)
+static const struct regset *
+ppc_linux_regset_from_core_section (struct gdbarch *core_arch,
+				    const char *sect_name, size_t sect_size)
 {
-  if (which == 0)
+  struct gdbarch_tdep *tdep = gdbarch_tdep (core_arch);
+  if (strcmp (sect_name, ".reg") == 0)
     {
-      if (core_reg_size == ELF_GREGSET_SIZE)
-	ppc_linux_supply_gregset (core_reg_sect);
+      if (tdep->wordsize == 4)
+	return &ppc32_linux_gregset;
       else
-	warning ("wrong size gregset struct in core file");
-    }
-  else if (which == 2)
-    {
-      if (core_reg_size == ELF_FPREGSET_SIZE)
-	ppc_linux_supply_fpregset (core_reg_sect);
-      else
-	warning ("wrong size fpregset struct in core file");
+	return &ppc64_linux_gregset;
     }
+  if (strcmp (sect_name, ".reg2") == 0)
+    return &ppc_linux_fpregset;
+  return NULL;
 }

-/* Register that we are able to handle ELF file formats using standard
-   procfs "regset" structures.  */
-
-static struct core_fns ppc_linux_regset_core_fns =
-{
-  bfd_target_elf_flavour,	/* core_flavour */
-  default_check_format,		/* check_format */
-  default_core_sniffer,		/* core_sniffer */
-  fetch_core_registers,		/* core_read_registers */
-  NULL				/* next */
-};
-
 static void
 ppc_linux_init_abi (struct gdbarch_info info,
                     struct gdbarch *gdbarch)
@@ -1086,6 +1119,7 @@
       /* PPC64 malloc's entry-point is called ".malloc".  */
       set_gdbarch_name_of_malloc (gdbarch, ".malloc");
     }
+  set_gdbarch_regset_from_core_section (gdbarch, ppc_linux_regset_from_core_section);
 }

 void
@@ -1099,5 +1133,4 @@
                          ppc_linux_init_abi);
   gdbarch_register_osabi (bfd_arch_rs6000, bfd_mach_rs6k, GDB_OSABI_LINUX,
                          ppc_linux_init_abi);
-  add_core_fns (&ppc_linux_regset_core_fns);
 }
Index: ppc-tdep.h
===================================================================
RCS file: /cvs/src/src/gdb/ppc-tdep.h,v
retrieving revision 1.25
diff -u -r1.25 ppc-tdep.h
--- ppc-tdep.h	10 Nov 2003 22:47:28 -0000	1.25
+++ ppc-tdep.h	15 Mar 2004 21:28:31 -0000
@@ -1,6 +1,7 @@
 /* Target-dependent code for GDB, the GNU debugger.
-   Copyright 2000, 2001, 2002, 2003
-   Free Software Foundation, Inc.
+
+   Copyright 2000, 2001, 2002, 2003, 2004 Free Software Foundation,
+   Inc.

    This file is part of GDB.

@@ -62,8 +63,12 @@
 						    CORE_ADDR bpaddr);
 int ppc_linux_memory_remove_breakpoint (CORE_ADDR addr, char *contents_cache);
 struct link_map_offsets *ppc_linux_svr4_fetch_link_map_offsets (void);
-void ppc_linux_supply_gregset (char *buf);
-void ppc_linux_supply_fpregset (char *buf);
+void ppc_linux_supply_gregset (struct regcache *regcache,
+			       int regnum, const void *gregs, size_t size,
+			       int wordsize);
+void ppc_linux_supply_fpregset (const struct regset *regset,
+				struct regcache *regcache,
+				int regnum, const void *gregs, size_t size);

 enum return_value_convention ppc64_sysv_abi_return_value (struct gdbarch *gdbarch,
 							  struct type *valtype,
2004-03-15 21:35:25 +00:00
Andrew Cagney
ed6edd9bf2 2004-03-15 Andrew Cagney <cagney@redhat.com>
* rs6000-tdep.c (rs6000_register_virtual_type): Make registers
	unsigned.
2004-03-15 21:21:01 +00:00
Andrew Cagney
030f20e19e 2004-03-15 Andrew Cagney <cagney@redhat.com>
* gdbarch.sh (gdbarch_data_pre_init_fytpe)
	(gdbarch_data_register_pre_init, gdbarch_data_post_init_fytpe)
	(gdbarch_data_register_post_init): Replace gdbarch_data_init_ftype
	and register_gdbarch_data.
	(deprecated_set_gdbarch_data): Rename set_gdbarch_data.
	(struct gdbarch_data): Replace "init" by "pre_init" and
	"post_init".
	* gdbarch.h, gdbarch.c: Re-generate.
	* dwarf2-frame.c (dwarf2_frame_init): Replace "gdbarch" paramter
	with"obstack", use OBSTACK_ZALLOC.
	(dwarf2_frame_ops): Delete.
	(dwarf2_frame_set_init_reg): Use gdbarch_data.
	(dwarf2_frame_init_reg): Use gdbarch_data.
	(_initialize_dwarf2_frame): Use gdbarch_data_register_pre_init.
	* solib-svr4.c (set_solib_svr4_fetch_link_map_offsets)
	(_initialize_svr4_solib): Update.
	* user-regs.c (_initialize_user_regs): Update.
	* reggroups.c (_initialize_reggroup): Update.
	* regcache.c (_initialize_regcache): Update.
	* mips-linux-tdep.c (_initialize_mips_linux_tdep): Update.
	* libunwind-frame.c (_initialize_libunwind_frame): Update.
	* gnu-v3-abi.c (init_gnuv3_ops): Update.
	* frame-unwind.c (_initialize_frame_unwind): Update.
	* frame-base.c (_initialize_frame_base): Update.
	* user-regs.c (user_reg_add): Update.
	* reggroups.c (reggroup_add): Update.
	* mips-linux-tdep.c (set_mips_linux_register_addr): Update.
	* libunwind-frame.c (libunwind_frame_set_descr): Update.
	* frame-unwind.c (frame_unwind_append_sniffer): Update.
	* frame-base.c (frame_base_table): Update.
	* remote.c (_initialize_remote): Update.
	* gdb_obstack.h (OBSTACK_ZALLOC, OBSTACK_CALLOC): Define.
2004-03-15 20:38:08 +00:00
Andrew Cagney
3111a3fcb7 2004-03-15 Andrew Cagney <cagney@redhat.com>
* cris-tdep.c (bfd_lookup_symbol): Delete unused function.
2004-03-15 20:32:54 +00:00
Kevin Buettner
5ecb7103b5 * Makefile.in (frv-linux-tdep.o): Add dependencies.
* frv-linux-tdep.c: New file.
	* frv-tdep.c (struct gdbarch_tdep): Add new field
	``sigcontext_reg_addr''.
	(frv_set_sigcontext_reg_addr, frv_sigtramp,frame_cache)
	(frv_sigtramp_frame_this_id, frv_sigtramp_frame_prev_register)
	(frv_sigramp_frame_sniffer): New functions.
	(frv_sigtramp_frame_unwind): New static global.
	(frv_gdbarch_init): Hook in ABI-specific overrides.  Hook up frame
	sniffers.
	* frv-tdep.h (frv_set_sigcontext_reg_addr): New function.
	* config/frv/frv.mt (TDEPFILES): Add frv-linux-tdep.o.
2004-03-15 19:42:25 +00:00
Kevin Buettner
1ccda5e956 * frv-tdep.c (frv_analyze_prologue): Terminate prologue scan,
but not via a call to error(), when unable to read memory.
2004-03-15 18:49:02 +00:00
Kevin Buettner
b375a0a5da * frv-tdep.c (frv_call_dummy_words): Delete.
(frv_frame_unwind_cache): Delete unused variable, ``prev_sp''.
2004-03-15 18:31:37 +00:00
Andrew Cagney
4fdf61212c Index: ChangeLog
2004-03-15  Andrew Cagney  <cagney@redhat.com>

	* infrun.c (handle_step_into_function, step_over_function): Only
	update and use STEP_FRAME_ID when the system is using legacy
	frames.  Update comments.
2004-03-15 17:12:50 +00:00
Mark Kettenis
187e21d161 * amd64-linux-tdep.h: Remove file.
* amd64-linux-tdep.c: Don't include "inferior.h" and
"amd64-linux-tdep.h".  Include "frame.h" and "solib-svr4.h".
(USER_R15, USER_R14, USER_R13, USER_R12, USER_RBP, USER_RBX)
(USER_R11, USER_R10, USER_R9, USER_R8, USER_RAX, USER_RCX)
(USER_RDX, USER_RSI, USER_RDI, USER_RIP, USER_CS, USER_EFLAGS)
(USER_RSP, USER_SS, USER_DS, USER_ES, USER_FS, USER_GS): Remove
macros.
(user_to_gdb_regmap): Remove variable.
(amd64_linux_gregset_reg_offset): New variable.
(amd64_core_fns): Remove variable.
(fetch_core_registers): Remove function.
(amd64_linux_supply_gregset, amd64_linux_fill_gregset): Remove
functions.
(_initialize_amd64_linux_tdep): Don't set add_core_fns.
* amd64-linux-nat.c: Don't include "amd64-linux-tdep.h".
* Makefile.in (amd64_linux_tdep_h): Remove.
(amd64-linux-nat.o): Update dependencies.
(amd64-linux-tdep.o): Update dependencies.
2004-03-14 22:39:26 +00:00
Mark Kettenis
99679982ac * amd64-linux-nat.c (GETFPREGS_SUPPLIES): Remove macro.
(fetch_regs, fetch_fpregs, store_regs, store_fpregs): Remove
functions.
(fetch_inferior_registers, store_inferior_registers): Rewrite.
2004-03-14 22:11:25 +00:00
Mark Kettenis
34021503e6 * amd64-tdep.h (amd64_fill_fxsave): Remove prototype.
* amd64-tdep.c (amd64_fill_fxsave): Remove function.
2004-03-14 21:38:55 +00:00
Daniel Jacobowitz
134d01f12d * dwarf2read.c (read_structure_type): Rename from
read_structure_scope.  Don't create a symbol or call process_die.
	Return immediately if die->type is set.  Call read_type_die before
	dwarf2_add_member_fn.
	(process_structure_scope): New function.
	(read_enumeration_type, process_enumeration_scope): New functions,
	broken out from read_enumeration.  Don't create the enumeration
	type if it has already been created.
	(read_enumeration): Removed.
	(process_die): Call read_structure_type, process_structure_scope,
	read_enumeration_type, and process_enumeration_scope.  Just call
	new_symbol for base and subrange types.  Add a comment about other
	type dies.
	(read_type_die): Call read_enumeration_type.
	(add_partial_structure, new_symbol): Update comments.
2004-03-14 21:08:24 +00:00
Stephane Carrez
65760afbc0 * m68hc11-tdep.c (m68hc11_register_name): Get soft reg information. 2004-03-13 14:51:55 +00:00
Stephane Carrez
10f5941595 * tui/tui-win.h (tui_get_cmd_list): Declare.
* tui/tui-win.c (tui_command): New function.
	(tui_get_cmd_list): New function.
	(_initialize_tui_win): Moved initialization of tui command in
	tui_get_cmd_list.

	* tui/tui-data.c (init_content_element): Setup new data members.
	(init_win_info): Likewise.
	(free_content_elements): Free it.
	* tui/tui-data.h (struct tui_data_element): Store the register
	content to print.
	(struct tui_data_info): Keep the current register group.

	* tui/tui-layout.c (tui_set_layout): Update call to tui_show_registers.

	* tui/tui-regs.h (tui_show_registers): Update prototype.
	(tui_toggle_float_regs, tui_calculate_regs_column_count): Remove.
	(tui_resize_all): No need to calculate anything for register window.
	* tui/tui-regs.c (tui_calculate_regs_column_count): Remove.
	(tui_set_register_element, tui_set_general_regs_content): Remove.
	(tui_set_special_regs_content): Remove.
	(tui_set_general_and_special_regs_content): Remove.
	(tui_set_float_regs_content): Remove.
	(tui_reg_value_has_changed, tui_get_register_raw_value): Remove.
	(tui_set_regs_content): Remove.
	(tui_toggle_float_regs, _tui_toggle_float_regs_command): Remove.
	(tui_v_show_registers_command_support): Remove.
	(tui_show_registers): Use a reggroup to specify the registers to show.
	(tui_show_register_group): New function.
	(tui_display_registers_from): Compute the layout of register window
	and refresh with new API; be sure to delete old register windows.
	(tui_check_register_values): Update to use tui_get_register and
	tui_display_data.
	(tui_display_register): Just refresh the register window part.
	(tui_register_format): Format registers and save in tui_data_element.
	(tui_get_register): New to combine tui_reg_value_has_changed and
	tui_get_register_raw_value; fix to use the new gdb API.
	(tui_show_float_command): Renamed tui_reg_float_command.
	(tui_show_general_command): Renamed tui_reg_general_command.
	(tui_show_special_command): Renamed tui_reg_system_command.
	(_initialize_tui_regs): Remove unused commands.
2004-03-13 14:14:01 +00:00
Mark Kettenis
27d1e71648 * NEWS (New native configurations): Mention OpenBSD/amd64. 2004-03-13 13:11:53 +00:00
Mark Kettenis
c3364ea481 * config/i386/nm-fbsd.h: Include "config/nm-bsd.h".
(PTRACE_ARG3_TYPE, FETCH_INFERIOR_REGISTERS, ATTACH_DETACH):
Remove defines.
* config/i386/nm-fbsd64.h: Likewise.
* config/i386/nm-obsd.h: Likewise.
* config/sparc/nm-fbsd.h: Likewise.  Update copyright year.
* config/alpha/nm-fbsd.h: Likewise.  Update copyright year.
2004-03-13 13:07:20 +00:00
Kevin Buettner
76e4319948 Revise ChangeLog entry of previous commit to credit Richard Sandiford
for FR450 support.
2004-03-13 01:27:20 +00:00
Kevin Buettner
b2d6d697ea Add FR450 support. 2004-03-13 01:24:20 +00:00
Kevin Buettner
34ce532e64 * frv-tdep.c, frv-tdep.h (first_gpr_regnum, sp_regnum, fp_regnum)
(struct_return_regnum, last_gpr_regnum, first_fpr_regnum)
	(last_fpr_regnum, pc_regnum, first_spr_regnum, psr_regnum, ccr_regnum)
	(cccr_regnum, fdpic_loadmap_exec_regnum, fdpic_loadmap_interp_regnum)
	(tbr_regnum, brr_regnum, dbar0_regnum, dbar1_regnum, dbar2_regnum)
	(dbar3_regnum, lr_regnum, lcr_regnum, iacc0h_regnum, iacc0l_regnum)
	(last_spr_regnum, frv_num_regs, first_pseudo_regnum, iacc0_regnum)
	(last_pseudo_regnum, frv_num_pseudo_regs): Move constant (enum)
	definitions from frv-tdep.c to frv-tdep.h.
2004-03-13 01:13:04 +00:00
Kevin Buettner
c4d1051556 Add shared library support for FR-V FDPIC ABI. 2004-03-13 00:50:53 +00:00
Kevin Buettner
ed1bd989f7 Fix typo in Makefile.in; commit ChangeLog entries for previous change. 2004-03-13 00:36:53 +00:00
Mark Kettenis
82b38f72ae * solib-svr4.h: Change SOLIB_SVR4 wrapper into SOLIB_SVR4_H
wrapper.
2004-03-12 22:01:39 +00:00
Andrew Cagney
db1ea9ba51 2004-03-11 Andrew Cagney <cagney@redhat.com>
* solib-svr4.h: Add #ifndef SOLIB_SVR4 wrapper.
2004-03-11 23:51:58 +00:00
Kevin Buettner
f8766ec100 * solist.h (master_so_list): New function.
* solib.c (master_so_list): Likewise.
	* solib-svr4.c (enable_break): Iterate over so_list entries
	obtained from master list instead of entries obtained directly
	via svr4_current_sos().
2004-03-11 17:04:40 +00:00
Ben Elliston
523f6a2717 * MAINTAINERS: Update my mail address. 2004-03-10 02:58:24 +00:00
Kazuhiro Inaoka
37814c1874 2004-03-10 Kei Sakamoto <sakamoto.kei@renesas.com>
* remote-m32r-sdi.c: Support hardware watchpoint.
2004-03-10 00:18:44 +00:00
Daniel Jacobowitz
8b9740d8c9 * user-regs.c: Update copyright years.
(struct user_regs): Rename to gdb_user_regs.
	(append_user_reg, builtin_user_regs, user_regs_init)
	(user_reg_add, user_reg_map_name_to_regnum)
	(usernum_to_user_reg): Update.
2004-03-09 20:03:37 +00:00
Daniel Jacobowitz
4bb7a0a769 * dwarf2read.c (skip_leb128, peek_die_abbrev, skip_one_die)
(skip_children): New functions.
	(locate_pdi_sibling): Call skip_children.
2004-03-09 19:38:11 +00:00
Daniel Jacobowitz
44e1a9eb25 * arm-tdep.c (arm_use_struct_convention): Look through typedefs.
* gdbtypes.c (check_typedef): Update comments.
2004-03-09 17:08:25 +00:00
Daniel Jacobowitz
f3dd693351 * dwarf2read.c (struct comp_unit_head): Remove dwarf2_abbrevs array.
(struct dwarf2_cu): Add abbrev_obstack and dwarf2_abbrevs
	pointer.  Update comment about comp_unit_head.
	(struct abbrev_info): Shorten two int flags.
	(dwarf_alloc_abbrev): Take a CU argument.
	(dwarf2_build_psymtabs_hard): Call dwarf2_free_abbrev_table
	each time through the loop.  Update cleanup argument.
	(psymtab_to_symtab_1): Update cleanup call.
	(dwarf2_read_abbrevs, dwarf2_alloc_abbrev): Allocate on the
	abbrev_obstack.
	(dwarf2_free_abbrev_table): Renamed from dwarf2_empty_abbrev_table.
	Just call obstack_free and clear the pointer.
2004-03-09 16:57:44 +00:00
Daniel Jacobowitz
b40c7d58b1 * infrun.c (handle_inferior_event): Remove short-circuit code for
events in a different thread.
2004-03-09 16:40:08 +00:00
Daniel Jacobowitz
333dabeb90 * target.c (debug_to_xfer_memory): If targetdebug is 1, don't
print the whole transfer.
	(initialize_targets): Update description of "set debug target".
2004-03-09 16:16:52 +00:00
Daniel Jacobowitz
aa17d93ef5 * arm-tdep.c (thumb_get_next_pc): Handle Thumb BLX. 2004-03-09 15:44:26 +00:00
Nathan J. Williams
0b71f08f41 2004-03-08 Nathan J. Williams <nathanw@wasabisystems.com>
* MAINTAINERS (write after approval): Add myself.
2004-03-08 17:52:27 +00:00
Corinna Vinschen
3930f270e6 * sh-tdep.c (sh_print_registers_info): Use for loop.
Don't skip multiple registers when a float register is encountered.
2004-03-08 10:18:13 +00:00
Corinna Vinschen
a2b4a96c10 Fix PR tdep/1291.
* sh-tdep.c (sh_analyze_prologue): Align PC relative addressing
	to official SH documentation.
2004-03-08 10:15:33 +00:00