summaryrefslogtreecommitdiff
path: root/gdb/arm-linux-tdep.c
diff options
context:
space:
mode:
authorRichard Earnshaw <richard.earnshaw@arm.com>2002-02-23 17:07:57 +0000
committerRichard Earnshaw <richard.earnshaw@arm.com>2002-02-23 17:07:57 +0000
commitc673410979db13885296f87d07d85f44782dd224 (patch)
tree8b95e5ff4b81d15c5daec2e08cae62a0e4b1daeb /gdb/arm-linux-tdep.c
parenteab147da3b51614b0dddc3f3ae5ee4c71eee521a (diff)
downloadgdb-c673410979db13885296f87d07d85f44782dd224.tar.gz
* arm-linux-tdep.c (arm_linux_extract_return_value): Make static.
(arm_linux_push_arguments): Likewise. (arm_linux_init_abi): Register them. Also register linux-specific call_dummy_words. (find_minsym_and_objfile): Use strcmp, not STREQ. * config/arm/tm-linux.h (CALL_DUMMY_WORDS): Delete. (arm_linux_call_dummy_words): Delete declaration. (EXTRACT_RETURN_VALUE, PUSH_ARGUMENTS): Delete. (arm_linux_extract_return_value, arm_linux_push_arguments): Delete declarations. (LOWEST_PC): Delete.
Diffstat (limited to 'gdb/arm-linux-tdep.c')
-rw-r--r--gdb/arm-linux-tdep.c19
1 files changed, 15 insertions, 4 deletions
diff --git a/gdb/arm-linux-tdep.c b/gdb/arm-linux-tdep.c
index 145adbd7082..30a698e03d6 100644
--- a/gdb/arm-linux-tdep.c
+++ b/gdb/arm-linux-tdep.c
@@ -66,8 +66,11 @@ LONGEST arm_linux_call_dummy_words[] =
/* Extract from an array REGBUF containing the (raw) register state
a function return value of type TYPE, and copy that, in virtual format,
into VALBUF. */
-
-void
+/* FIXME rearnsha/2002-02-23: This function shouldn't be necessary.
+ The ARM generic one should be able to handle the model used by
+ linux and the low-level formatting of the registers should be
+ hidden behind the regcache abstraction. */
+static void
arm_linux_extract_return_value (struct type *type,
char regbuf[REGISTER_BYTES],
char *valbuf)
@@ -101,7 +104,7 @@ arm_linux_extract_return_value (struct type *type,
#define MAKE_THUMB_ADDR(addr) ((addr) | 1)
#define UNMAKE_THUMB_ADDR(addr) ((addr) & ~1)
-CORE_ADDR
+static CORE_ADDR
arm_linux_push_arguments (int nargs, struct value **args, CORE_ADDR sp,
int struct_return, CORE_ADDR struct_addr)
{
@@ -360,7 +363,7 @@ find_minsym_and_objfile (char *name, struct objfile **objfile_p)
ALL_OBJFILE_MSYMBOLS (objfile, msym)
{
if (SYMBOL_NAME (msym)
- && STREQ (SYMBOL_NAME (msym), name))
+ && strcmp (SYMBOL_NAME (msym), name) == 0)
{
*objfile_p = objfile;
return msym;
@@ -523,6 +526,14 @@ arm_linux_init_abi (struct gdbarch_info info,
tdep->jb_pc = JB_PC;
tdep->jb_elt_size = JB_ELEMENT_SIZE;
+
+ set_gdbarch_call_dummy_words (gdbarch, arm_linux_call_dummy_words);
+ set_gdbarch_sizeof_call_dummy_words (gdbarch,
+ sizeof (arm_linux_call_dummy_words));
+
+ /* The following two overrides shouldn't be needed. */
+ set_gdbarch_extract_return_value (gdbarch, arm_linux_extract_return_value);
+ set_gdbarch_push_arguments (gdbarch, arm_linux_push_arguments);
}
void