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 | 19d3fc80c110dc6dd4d962e8ac90bf1d8487d66b (patch) | |
tree | 0c1efaa12af87003b3cd39a4703ff317b7415f5c /gdb/arm-linux-tdep.c | |
parent | 3ab136500f06eb436f585ebb6ed640d17d27ab47 (diff) | |
download | gdb-19d3fc80c110dc6dd4d962e8ac90bf1d8487d66b.zip gdb-19d3fc80c110dc6dd4d962e8ac90bf1d8487d66b.tar.gz gdb-19d3fc80c110dc6dd4d962e8ac90bf1d8487d66b.tar.bz2 |
* 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 145adbd..30a698e 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 |