summaryrefslogtreecommitdiff
path: root/gdb/gdbarch.c
diff options
context:
space:
mode:
authorJim Blandy <jimb@codesourcery.com>2001-07-10 21:24:48 +0000
committerJim Blandy <jimb@codesourcery.com>2001-07-10 21:24:48 +0000
commit75af7f6801beb09d1c2726a1c80b92ef92ee2fce (patch)
treeaf5b534d8b2d6132fa3a5d20412706372bd4930b /gdb/gdbarch.c
parentef166cf46a1b37daf20f3470f1478b9c1e2ddbc6 (diff)
downloadbinutils-gdb-75af7f6801beb09d1c2726a1c80b92ef92ee2fce.tar.gz
Clean up the D10V port so that GDB and the target program no
longer disagree on how big pointers are. * findvar.c (value_from_register): Remove special case code for D10V. * printcmd.c (print_frame_args): Same. * valops.c (value_at, value_fetch_lazy): Same. * values.c (unpack_long): Same. * gdbarch.sh: Changes to effect the following: * gdbarch.h (GDB_TARGET_IS_D10V, D10V_MAKE_DADDR, gdbarch_d10v_make_daddr_ftype, gdbarch_d10v_make_daddr, set_gdbarch_d10v_make_daddr, D10V_MAKE_IADDR, gdbarch_d10v_make_iaddr_ftype, gdbarch_d10v_make_iaddr, set_gdbarch_d10v_make_iaddr, D10V_DADDR_P, gdbarch_d10v_daddr_p_ftype, gdbarch_d10v_daddr_p, set_gdbarch_d10v_daddr_p, D10V_IADDR_P, gdbarch_d10v_iaddr_p_ftype, gdbarch_d10v_iaddr_p, set_gdbarch_d10v_iaddr_p, D10V_CONVERT_DADDR_TO_RAW, gdbarch_d10v_convert_daddr_to_raw_ftype, gdbarch_d10v_convert_daddr_to_raw, set_gdbarch_d10v_convert_daddr_to_raw, D10V_CONVERT_IADDR_TO_RAW, gdbarch_d10v_convert_iaddr_to_raw_ftype, gdbarch_d10v_convert_iaddr_to_raw, set_gdbarch_d10v_convert_iaddr_to_raw): Delete declarations. * gdbarch.c: Delete the corresponding definitions. (struct gdbarch): Delete members d10v_make_daddr, d10v_make_iaddr, d10v_daddr_p, d10v_iaddr_p, d10v_convert_daddr_to_raw, and d10v_convert_iaddr_to_raw. (startup_gdbarch): Remove initializers for the above. (verify_gdbarch, gdbarch_dump): Don't verify or dump them any more. * d10v-tdep.c (d10v_register_virtual_type): Rather that claiming the stack pointer and PC are 32 bits long (which they aren't), say that the stack pointer is an int16_t, and the program counter is a function pointer. This allows the rest of GDB to make the appropriate conversions between the code pointer format and real addresses. (d10v_register_convertible, d10v_register_convert_to_virtual, d10v_register_convert_to_raw): Delete function; no registers are convertible now, so we use generic_register_convertible_not instead. (d10v_address_to_pointer, d10v_pointer_to_address): New gdbarch methods. (d10v_push_arguments, d10v_extract_return_value): Remove special cases for code and data pointers. (d10v_gdbarch_init): Set gdbarch_ptr_bit to 16, so that GDB and the target agree on how large pointers are. Say that addresses are 32 bits long. Register the address_to_pointer and pointer_to_address conversion functions. Since no registers are convertible now, register generic_register_convertible_not as the gdbarch_register_convertible method instead of d10v_register_convertible. Remove registrations for d10v_register_convert_to_virtual, d10v_register_convert_to_raw, gdbarch_d10v_make_daddr, gdbarch_d10v_make_iaddr, gdbarch_d10v_daddr_p, gdbarch_d10v_iaddr_p, gdbarch_d10v_convert_daddr_to_raw, and gdbarch_d10v_convert_iaddr_to_raw.
Diffstat (limited to 'gdb/gdbarch.c')
-rw-r--r--gdb/gdbarch.c204
1 files changed, 0 insertions, 204 deletions
diff --git a/gdb/gdbarch.c b/gdb/gdbarch.c
index bac36c2948b..40da7a4d22d 100644
--- a/gdb/gdbarch.c
+++ b/gdb/gdbarch.c
@@ -211,12 +211,6 @@ struct gdbarch
gdbarch_push_dummy_frame_ftype *push_dummy_frame;
gdbarch_push_return_address_ftype *push_return_address;
gdbarch_pop_frame_ftype *pop_frame;
- gdbarch_d10v_make_daddr_ftype *d10v_make_daddr;
- gdbarch_d10v_make_iaddr_ftype *d10v_make_iaddr;
- gdbarch_d10v_daddr_p_ftype *d10v_daddr_p;
- gdbarch_d10v_iaddr_p_ftype *d10v_iaddr_p;
- gdbarch_d10v_convert_daddr_to_raw_ftype *d10v_convert_daddr_to_raw;
- gdbarch_d10v_convert_iaddr_to_raw_ftype *d10v_convert_iaddr_to_raw;
gdbarch_store_struct_return_ftype *store_struct_return;
gdbarch_store_return_value_ftype *store_return_value;
gdbarch_extract_struct_value_address_ftype *extract_struct_value_address;
@@ -386,12 +380,6 @@ struct gdbarch startup_gdbarch =
0,
0,
0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
/* startup_gdbarch() */
};
@@ -695,12 +683,6 @@ verify_gdbarch (struct gdbarch *gdbarch)
&& (gdbarch->pop_frame == 0))
internal_error (__FILE__, __LINE__,
"gdbarch: verify_gdbarch: pop_frame invalid");
- /* Skip verify of d10v_make_daddr, invalid_p == 0 */
- /* Skip verify of d10v_make_iaddr, invalid_p == 0 */
- /* Skip verify of d10v_daddr_p, invalid_p == 0 */
- /* Skip verify of d10v_iaddr_p, invalid_p == 0 */
- /* Skip verify of d10v_convert_daddr_to_raw, invalid_p == 0 */
- /* Skip verify of d10v_convert_iaddr_to_raw, invalid_p == 0 */
if ((GDB_MULTI_ARCH >= 2)
&& (gdbarch->store_struct_return == 0))
internal_error (__FILE__, __LINE__,
@@ -1259,42 +1241,6 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
"POP_FRAME(-)",
XSTRING (POP_FRAME (-)));
#endif
-#ifdef D10V_MAKE_DADDR
- fprintf_unfiltered (file,
- "gdbarch_dump: %s # %s\n",
- "D10V_MAKE_DADDR(x)",
- XSTRING (D10V_MAKE_DADDR (x)));
-#endif
-#ifdef D10V_MAKE_IADDR
- fprintf_unfiltered (file,
- "gdbarch_dump: %s # %s\n",
- "D10V_MAKE_IADDR(x)",
- XSTRING (D10V_MAKE_IADDR (x)));
-#endif
-#ifdef D10V_DADDR_P
- fprintf_unfiltered (file,
- "gdbarch_dump: %s # %s\n",
- "D10V_DADDR_P(x)",
- XSTRING (D10V_DADDR_P (x)));
-#endif
-#ifdef D10V_IADDR_P
- fprintf_unfiltered (file,
- "gdbarch_dump: %s # %s\n",
- "D10V_IADDR_P(x)",
- XSTRING (D10V_IADDR_P (x)));
-#endif
-#ifdef D10V_CONVERT_DADDR_TO_RAW
- fprintf_unfiltered (file,
- "gdbarch_dump: %s # %s\n",
- "D10V_CONVERT_DADDR_TO_RAW(x)",
- XSTRING (D10V_CONVERT_DADDR_TO_RAW (x)));
-#endif
-#ifdef D10V_CONVERT_IADDR_TO_RAW
- fprintf_unfiltered (file,
- "gdbarch_dump: %s # %s\n",
- "D10V_CONVERT_IADDR_TO_RAW(x)",
- XSTRING (D10V_CONVERT_IADDR_TO_RAW (x)));
-#endif
#if defined (STORE_STRUCT_RETURN) && GDB_MULTI_ARCH
/* Macro might contain `[{}]' when not multi-arch */
fprintf_unfiltered (file,
@@ -1999,48 +1945,6 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
(long) current_gdbarch->pop_frame
/*POP_FRAME ()*/);
#endif
-#ifdef D10V_MAKE_DADDR
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: D10V_MAKE_DADDR = 0x%08lx\n",
- (long) current_gdbarch->d10v_make_daddr
- /*D10V_MAKE_DADDR ()*/);
-#endif
-#ifdef D10V_MAKE_IADDR
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: D10V_MAKE_IADDR = 0x%08lx\n",
- (long) current_gdbarch->d10v_make_iaddr
- /*D10V_MAKE_IADDR ()*/);
-#endif
-#ifdef D10V_DADDR_P
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: D10V_DADDR_P = 0x%08lx\n",
- (long) current_gdbarch->d10v_daddr_p
- /*D10V_DADDR_P ()*/);
-#endif
-#ifdef D10V_IADDR_P
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: D10V_IADDR_P = 0x%08lx\n",
- (long) current_gdbarch->d10v_iaddr_p
- /*D10V_IADDR_P ()*/);
-#endif
-#ifdef D10V_CONVERT_DADDR_TO_RAW
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: D10V_CONVERT_DADDR_TO_RAW = 0x%08lx\n",
- (long) current_gdbarch->d10v_convert_daddr_to_raw
- /*D10V_CONVERT_DADDR_TO_RAW ()*/);
-#endif
-#ifdef D10V_CONVERT_IADDR_TO_RAW
- if (GDB_MULTI_ARCH)
- fprintf_unfiltered (file,
- "gdbarch_dump: D10V_CONVERT_IADDR_TO_RAW = 0x%08lx\n",
- (long) current_gdbarch->d10v_convert_iaddr_to_raw
- /*D10V_CONVERT_IADDR_TO_RAW ()*/);
-#endif
#ifdef STORE_STRUCT_RETURN
if (GDB_MULTI_ARCH)
fprintf_unfiltered (file,
@@ -3708,114 +3612,6 @@ set_gdbarch_pop_frame (struct gdbarch *gdbarch,
gdbarch->pop_frame = pop_frame;
}
-CORE_ADDR
-gdbarch_d10v_make_daddr (struct gdbarch *gdbarch, CORE_ADDR x)
-{
- if (gdbarch->d10v_make_daddr == 0)
- internal_error (__FILE__, __LINE__,
- "gdbarch: gdbarch_d10v_make_daddr invalid");
- if (gdbarch_debug >= 2)
- fprintf_unfiltered (gdb_stdlog, "gdbarch_d10v_make_daddr called\n");
- return gdbarch->d10v_make_daddr (x);
-}
-
-void
-set_gdbarch_d10v_make_daddr (struct gdbarch *gdbarch,
- gdbarch_d10v_make_daddr_ftype d10v_make_daddr)
-{
- gdbarch->d10v_make_daddr = d10v_make_daddr;
-}
-
-CORE_ADDR
-gdbarch_d10v_make_iaddr (struct gdbarch *gdbarch, CORE_ADDR x)
-{
- if (gdbarch->d10v_make_iaddr == 0)
- internal_error (__FILE__, __LINE__,
- "gdbarch: gdbarch_d10v_make_iaddr invalid");
- if (gdbarch_debug >= 2)
- fprintf_unfiltered (gdb_stdlog, "gdbarch_d10v_make_iaddr called\n");
- return gdbarch->d10v_make_iaddr (x);
-}
-
-void
-set_gdbarch_d10v_make_iaddr (struct gdbarch *gdbarch,
- gdbarch_d10v_make_iaddr_ftype d10v_make_iaddr)
-{
- gdbarch->d10v_make_iaddr = d10v_make_iaddr;
-}
-
-int
-gdbarch_d10v_daddr_p (struct gdbarch *gdbarch, CORE_ADDR x)
-{
- if (gdbarch->d10v_daddr_p == 0)
- internal_error (__FILE__, __LINE__,
- "gdbarch: gdbarch_d10v_daddr_p invalid");
- if (gdbarch_debug >= 2)
- fprintf_unfiltered (gdb_stdlog, "gdbarch_d10v_daddr_p called\n");
- return gdbarch->d10v_daddr_p (x);
-}
-
-void
-set_gdbarch_d10v_daddr_p (struct gdbarch *gdbarch,
- gdbarch_d10v_daddr_p_ftype d10v_daddr_p)
-{
- gdbarch->d10v_daddr_p = d10v_daddr_p;
-}
-
-int
-gdbarch_d10v_iaddr_p (struct gdbarch *gdbarch, CORE_ADDR x)
-{
- if (gdbarch->d10v_iaddr_p == 0)
- internal_error (__FILE__, __LINE__,
- "gdbarch: gdbarch_d10v_iaddr_p invalid");
- if (gdbarch_debug >= 2)
- fprintf_unfiltered (gdb_stdlog, "gdbarch_d10v_iaddr_p called\n");
- return gdbarch->d10v_iaddr_p (x);
-}
-
-void
-set_gdbarch_d10v_iaddr_p (struct gdbarch *gdbarch,
- gdbarch_d10v_iaddr_p_ftype d10v_iaddr_p)
-{
- gdbarch->d10v_iaddr_p = d10v_iaddr_p;
-}
-
-CORE_ADDR
-gdbarch_d10v_convert_daddr_to_raw (struct gdbarch *gdbarch, CORE_ADDR x)
-{
- if (gdbarch->d10v_convert_daddr_to_raw == 0)
- internal_error (__FILE__, __LINE__,
- "gdbarch: gdbarch_d10v_convert_daddr_to_raw invalid");
- if (gdbarch_debug >= 2)
- fprintf_unfiltered (gdb_stdlog, "gdbarch_d10v_convert_daddr_to_raw called\n");
- return gdbarch->d10v_convert_daddr_to_raw (x);
-}
-
-void
-set_gdbarch_d10v_convert_daddr_to_raw (struct gdbarch *gdbarch,
- gdbarch_d10v_convert_daddr_to_raw_ftype d10v_convert_daddr_to_raw)
-{
- gdbarch->d10v_convert_daddr_to_raw = d10v_convert_daddr_to_raw;
-}
-
-CORE_ADDR
-gdbarch_d10v_convert_iaddr_to_raw (struct gdbarch *gdbarch, CORE_ADDR x)
-{
- if (gdbarch->d10v_convert_iaddr_to_raw == 0)
- internal_error (__FILE__, __LINE__,
- "gdbarch: gdbarch_d10v_convert_iaddr_to_raw invalid");
- if (gdbarch_debug >= 2)
- fprintf_unfiltered (gdb_stdlog, "gdbarch_d10v_convert_iaddr_to_raw called\n");
- return gdbarch->d10v_convert_iaddr_to_raw (x);
-}
-
-void
-set_gdbarch_d10v_convert_iaddr_to_raw (struct gdbarch *gdbarch,
- gdbarch_d10v_convert_iaddr_to_raw_ftype d10v_convert_iaddr_to_raw)
-{
- gdbarch->d10v_convert_iaddr_to_raw = d10v_convert_iaddr_to_raw;
-}
-
void
gdbarch_store_struct_return (struct gdbarch *gdbarch, CORE_ADDR addr, CORE_ADDR sp)
{