diff options
author | Mark Alexander <marka@cygnus> | 1997-03-22 04:40:03 +0000 |
---|---|---|
committer | Mark Alexander <marka@cygnus> | 1997-03-22 04:40:03 +0000 |
commit | c81a76b311a313707e80af5de287a11008fc72bc (patch) | |
tree | c652b707ee4b7218a2c6e756f55375fdb3dda613 /gdb/mdebugread.c | |
parent | 7cad1a894be0fce0f179275d89d575cc1e49a249 (diff) | |
download | gdb-c81a76b311a313707e80af5de287a11008fc72bc.zip gdb-c81a76b311a313707e80af5de287a11008fc72bc.tar.gz gdb-c81a76b311a313707e80af5de287a11008fc72bc.tar.bz2 |
* mips-tdep.c (mips_push_arguments): On non-EABI architectures,
copy first two floating point arguments to general registers, so that
MIPS16 functions will receive the arguments correctly.
(mips_print_register): Print double registers correctly on
little-endian hosts.
(mips_extract_return_value): Return double values correctly
on little-endian hosts.
* mdebugread.c (parse_procedure): Adjust address of procedure relative
to address in file descriptor record; this accounts for constant
strings that may precede functions in the text section. Remove
now-useless lowest_pdr_addr from argument list and all calls.
Diffstat (limited to 'gdb/mdebugread.c')
-rw-r--r-- | gdb/mdebugread.c | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/gdb/mdebugread.c b/gdb/mdebugread.c index 8047798..1e9fe6d 100644 --- a/gdb/mdebugread.c +++ b/gdb/mdebugread.c @@ -1893,14 +1893,13 @@ upgrade_type (fd, tpp, tq, ax, bigend, sym_name) to look for the function which contains the MIPS_EFI_SYMBOL_NAME symbol in question, or NULL to use top_stack->cur_block. */ -static void parse_procedure PARAMS ((PDR *, struct symtab *, CORE_ADDR, +static void parse_procedure PARAMS ((PDR *, struct symtab *, struct partial_symtab *)); static void -parse_procedure (pr, search_symtab, lowest_pdr_addr, pst) +parse_procedure (pr, search_symtab, pst) PDR *pr; struct symtab *search_symtab; - CORE_ADDR lowest_pdr_addr; struct partial_symtab *pst; { struct symbol *s, *i; @@ -2006,7 +2005,7 @@ parse_procedure (pr, search_symtab, lowest_pdr_addr, pst) e = (struct mips_extra_func_info *) SYMBOL_VALUE (i); e->pdr = *pr; e->pdr.isym = (long) s; - e->pdr.adr += pst->textlow - lowest_pdr_addr; + e->pdr.adr += cur_fdr->adr; /* PDR address is relative to FDR address */ /* Correct incorrect setjmp procedure descriptor from the library to make backtrace through setjmp work. */ @@ -3372,7 +3371,7 @@ psymtab_to_symtab_1 (pst, filename) pdr_in = pr_block; pdr_in_end = pdr_in + fh->cpd; for (; pdr_in < pdr_in_end; pdr_in++) - parse_procedure (pdr_in, st, lowest_pdr_addr, pst); + parse_procedure (pdr_in, st, pst); do_cleanups (old_chain); } @@ -3486,7 +3485,7 @@ psymtab_to_symtab_1 (pst, filename) pdr_in = pr_block; pdr_in_end = pdr_in + fh->cpd; for (; pdr_in < pdr_in_end; pdr_in++) - parse_procedure (pdr_in, 0, lowest_pdr_addr, pst); + parse_procedure (pdr_in, 0, pst); do_cleanups (old_chain); } |