summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Cagney <cagney@redhat.com>2004-02-14 17:26:35 +0000
committerAndrew Cagney <cagney@redhat.com>2004-02-14 17:26:35 +0000
commit9b6ca4e9e58e549a365f22b669524064fbc8d5ce (patch)
treea614ec550ccd0e79a6b3c5c0ca716ad3b11a6c4a
parent0ebb615f39e58774dcb183ab443314d4c37f7697 (diff)
downloadgdb-9b6ca4e9e58e549a365f22b669524064fbc8d5ce.tar.gz
2004-02-14 Andrew Cagney <cagney@redhat.com>
* gdbarch.sh (DEPRECATED_REGISTER_CONVERTIBLE): Add predicate. * gdbarch.h, gdbarch.c: Re-generate. * arch-utils.c (deprecated_register_convertible_not): Delete. * arch-utils.h (deprecated_register_convertible_not): Delete. * mi/mi-main.c (get_register): Update. Update copyright. * infcmd.c (default_print_registers_info): Update.
-rw-r--r--gdb/ChangeLog7
-rw-r--r--gdb/arch-utils.c7
-rw-r--r--gdb/arch-utils.h3
-rw-r--r--gdb/gdbarch.c19
-rw-r--r--gdb/gdbarch.h15
-rwxr-xr-xgdb/gdbarch.sh2
-rw-r--r--gdb/infcmd.c3
-rw-r--r--gdb/mi/mi-main.c8
8 files changed, 48 insertions, 16 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 8b9d95902b2..b35e1691daa 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,12 @@
2004-02-14 Andrew Cagney <cagney@redhat.com>
+ * gdbarch.sh (DEPRECATED_REGISTER_CONVERTIBLE): Add predicate.
+ * gdbarch.h, gdbarch.c: Re-generate.
+ * arch-utils.c (deprecated_register_convertible_not): Delete.
+ * arch-utils.h (deprecated_register_convertible_not): Delete.
+ * mi/mi-main.c (get_register): Update. Update copyright.
+ * infcmd.c (default_print_registers_info): Update.
+
* gdbarch.sh (DEPRECATED_EXTRA_STACK_ALIGNMENT_NEEDED): Delete.
(DEPRECATED_CALL_DUMMY_STACK_ADJUST): Delete.
(DEPRECATED_CALL_DUMMY_ADDRESS): Delete.
diff --git a/gdb/arch-utils.c b/gdb/arch-utils.c
index e8c070d1080..f567a55c3a1 100644
--- a/gdb/arch-utils.c
+++ b/gdb/arch-utils.c
@@ -195,13 +195,6 @@ default_double_format (struct gdbarch *gdbarch)
/* Misc helper functions for targets. */
-int
-deprecated_register_convertible_not (int num)
-{
- return 0;
-}
-
-
CORE_ADDR
core_addr_identity (CORE_ADDR addr)
{
diff --git a/gdb/arch-utils.h b/gdb/arch-utils.h
index b15f6912cd8..158868ff5f2 100644
--- a/gdb/arch-utils.h
+++ b/gdb/arch-utils.h
@@ -32,9 +32,6 @@ struct gdbarch_info;
/* gdbarch trace variable */
extern int gdbarch_debug;
-/* Fallback for register convertible. */
-extern gdbarch_deprecated_register_convertible_ftype deprecated_register_convertible_not;
-
/* Implementation of extract return value that grubs around in the
register cache. */
extern gdbarch_extract_return_value_ftype legacy_extract_return_value;
diff --git a/gdb/gdbarch.c b/gdb/gdbarch.c
index 2fe3db8431e..86c2e02189d 100644
--- a/gdb/gdbarch.c
+++ b/gdb/gdbarch.c
@@ -500,7 +500,6 @@ gdbarch_alloc (const struct gdbarch_info *info,
current_gdbarch->cannot_fetch_register = cannot_register_not;
current_gdbarch->cannot_store_register = cannot_register_not;
current_gdbarch->deprecated_pc_in_call_dummy = generic_pc_in_call_dummy;
- current_gdbarch->deprecated_register_convertible = deprecated_register_convertible_not;
current_gdbarch->convert_register_p = legacy_convert_register_p;
current_gdbarch->register_to_value = legacy_register_to_value;
current_gdbarch->value_to_register = legacy_value_to_register;
@@ -656,7 +655,7 @@ verify_gdbarch (struct gdbarch *current_gdbarch)
/* Skip verify of deprecated_init_frame_pc_first, has predicate */
/* Skip verify of deprecated_init_frame_pc, has predicate */
/* Skip verify of deprecated_get_saved_register, has predicate */
- /* Skip verify of deprecated_register_convertible, invalid_p == 0 */
+ /* Skip verify of deprecated_register_convertible, has predicate */
/* Skip verify of deprecated_register_convert_to_virtual, invalid_p == 0 */
/* Skip verify of deprecated_register_convert_to_raw, invalid_p == 0 */
/* Skip verify of convert_register_p, invalid_p == 0 */
@@ -1426,6 +1425,15 @@ gdbarch_dump (struct gdbarch *current_gdbarch, struct ui_file *file)
"gdbarch_dump: DEPRECATED_REGISTER_BYTES = %d\n",
DEPRECATED_REGISTER_BYTES);
#endif
+#ifdef DEPRECATED_REGISTER_CONVERTIBLE_P
+ fprintf_unfiltered (file,
+ "gdbarch_dump: %s # %s\n",
+ "DEPRECATED_REGISTER_CONVERTIBLE_P()",
+ XSTRING (DEPRECATED_REGISTER_CONVERTIBLE_P ()));
+ fprintf_unfiltered (file,
+ "gdbarch_dump: DEPRECATED_REGISTER_CONVERTIBLE_P() = %d\n",
+ DEPRECATED_REGISTER_CONVERTIBLE_P ());
+#endif
#ifdef DEPRECATED_REGISTER_CONVERTIBLE
fprintf_unfiltered (file,
"gdbarch_dump: %s # %s\n",
@@ -3877,6 +3885,13 @@ set_gdbarch_deprecated_get_saved_register (struct gdbarch *gdbarch,
}
int
+gdbarch_deprecated_register_convertible_p (struct gdbarch *gdbarch)
+{
+ gdb_assert (gdbarch != NULL);
+ return gdbarch->deprecated_register_convertible != NULL;
+}
+
+int
gdbarch_deprecated_register_convertible (struct gdbarch *gdbarch, int nr)
{
gdb_assert (gdbarch != NULL);
diff --git a/gdb/gdbarch.h b/gdb/gdbarch.h
index 57c293a0519..d6b7b58bc51 100644
--- a/gdb/gdbarch.h
+++ b/gdb/gdbarch.h
@@ -1209,6 +1209,21 @@ extern void set_gdbarch_deprecated_get_saved_register (struct gdbarch *gdbarch,
/* For register <-> value conversions, replaced by CONVERT_REGISTER_P et.al.
For raw <-> cooked register conversions, replaced by pseudo registers. */
+#if defined (DEPRECATED_REGISTER_CONVERTIBLE)
+/* Legacy for systems yet to multi-arch DEPRECATED_REGISTER_CONVERTIBLE */
+#if !defined (DEPRECATED_REGISTER_CONVERTIBLE_P)
+#define DEPRECATED_REGISTER_CONVERTIBLE_P() (1)
+#endif
+#endif
+
+extern int gdbarch_deprecated_register_convertible_p (struct gdbarch *gdbarch);
+#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (DEPRECATED_REGISTER_CONVERTIBLE_P)
+#error "Non multi-arch definition of DEPRECATED_REGISTER_CONVERTIBLE"
+#endif
+#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) || !defined (DEPRECATED_REGISTER_CONVERTIBLE_P)
+#define DEPRECATED_REGISTER_CONVERTIBLE_P() (gdbarch_deprecated_register_convertible_p (current_gdbarch))
+#endif
+
typedef int (gdbarch_deprecated_register_convertible_ftype) (int nr);
extern int gdbarch_deprecated_register_convertible (struct gdbarch *gdbarch, int nr);
extern void set_gdbarch_deprecated_register_convertible (struct gdbarch *gdbarch, gdbarch_deprecated_register_convertible_ftype *deprecated_register_convertible);
diff --git a/gdb/gdbarch.sh b/gdb/gdbarch.sh
index bdda88eb8eb..8156a62070c 100755
--- a/gdb/gdbarch.sh
+++ b/gdb/gdbarch.sh
@@ -572,7 +572,7 @@ F:2:DEPRECATED_GET_SAVED_REGISTER:void:deprecated_get_saved_register:char *raw_b
#
# For register <-> value conversions, replaced by CONVERT_REGISTER_P et.al.
# For raw <-> cooked register conversions, replaced by pseudo registers.
-f:2:DEPRECATED_REGISTER_CONVERTIBLE:int:deprecated_register_convertible:int nr:nr:::deprecated_register_convertible_not::0
+F::DEPRECATED_REGISTER_CONVERTIBLE:int:deprecated_register_convertible:int nr:nr
# For register <-> value conversions, replaced by CONVERT_REGISTER_P et.al.
# For raw <-> cooked register conversions, replaced by pseudo registers.
f:2:DEPRECATED_REGISTER_CONVERT_TO_VIRTUAL:void:deprecated_register_convert_to_virtual:int regnum, struct type *type, char *from, char *to:regnum, type, from, to:::0::0
diff --git a/gdb/infcmd.c b/gdb/infcmd.c
index 2de769ed2c6..6e74f4e5431 100644
--- a/gdb/infcmd.c
+++ b/gdb/infcmd.c
@@ -1556,7 +1556,8 @@ default_print_registers_info (struct gdbarch *gdbarch,
The function frame_register_read() should have returned the
pre-cooked register so no conversion is necessary. */
/* Convert raw data to virtual format if necessary. */
- if (DEPRECATED_REGISTER_CONVERTIBLE (i))
+ if (DEPRECATED_REGISTER_CONVERTIBLE_P ()
+ && DEPRECATED_REGISTER_CONVERTIBLE (i))
{
DEPRECATED_REGISTER_CONVERT_TO_VIRTUAL (i, register_type (current_gdbarch, i),
raw_buffer, virtual_buffer);
diff --git a/gdb/mi/mi-main.c b/gdb/mi/mi-main.c
index 19eba99bded..db5f3b9a301 100644
--- a/gdb/mi/mi-main.c
+++ b/gdb/mi/mi-main.c
@@ -1,5 +1,8 @@
/* MI Command Set.
- Copyright 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+
+ Copyright 2000, 2001, 2002, 2003, 2004 Free Software Foundation,
+ Inc.
+
Contributed by Cygnus Solutions (a Red Hat company).
This file is part of GDB.
@@ -537,7 +540,8 @@ get_register (int regnum, int format)
/* Convert raw data to virtual format if necessary. */
- if (DEPRECATED_REGISTER_CONVERTIBLE (regnum))
+ if (DEPRECATED_REGISTER_CONVERTIBLE_P ()
+ && DEPRECATED_REGISTER_CONVERTIBLE (regnum))
{
DEPRECATED_REGISTER_CONVERT_TO_VIRTUAL (regnum,
register_type (current_gdbarch, regnum),