diff options
author | Richard Earnshaw <richard.earnshaw@arm.com> | 2002-02-23 17:07:57 +0000 |
---|---|---|
committer | Richard Earnshaw <richard.earnshaw@arm.com> | 2002-02-23 17:07:57 +0000 |
commit | c673410979db13885296f87d07d85f44782dd224 (patch) | |
tree | 8b95e5ff4b81d15c5daec2e08cae62a0e4b1daeb /gdb/arm-linux-tdep.c | |
parent | eab147da3b51614b0dddc3f3ae5ee4c71eee521a (diff) | |
download | gdb-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.c | 19 |
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 |