This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
Re: [RFA] mips-o64-extract-return-value
- From: Michael Snyder <msnyder at redhat dot com>
- To: Andrew Cagney <cagney at gnu dot org>
- Cc: gdb-patches at sources dot redhat dot com, cagney <cagney at redhat dot com>, Eric Christopher <echristo at redhat dot com>
- Date: Tue, 25 Nov 2003 14:14:47 -0800
- Subject: Re: [RFA] mips-o64-extract-return-value
- Organization: Red Hat, Inc.
- References: <3FBC13EC.1040202@redhat.com> <3FBC1782.3000908@gnu.org>
Andrew Cagney wrote:
Hi Andrew,
This change fixes 100s of FAILs for mips64-elf, 'cause gdb can't
find the function's return value. It follows some work that you
were apparently doing w.r.t. the mips internal register representation.
I suspect that the same thing needs to be done for mips_eabi_extract...,
but I haven't tested that. What do you think?
Ok.
Amended and committed as follows:
2003-11-25 Michael Snyder <msnyder@redhat.com>
* mips-tdep.c (mips_o64_extract_return_value): Correct for
NUM_REGS (see changes 2003-06-21).
(mips_eabi_extract_return_value): Ditto.
Index: mips-tdep.c
===================================================================
RCS file: /cvs/src/src/gdb/mips-tdep.c,v
retrieving revision 1.261
diff -p -r1.261 mips-tdep.c
*** mips-tdep.c 23 Nov 2003 21:49:12 -0000 1.261
--- mips-tdep.c 25 Nov 2003 22:14:08 -0000
*************** mips_eabi_extract_return_value (struct t
*** 4696,4707 ****
return_value_location (valtype, &hi, &lo);
memcpy (valbuf + lo.buf_offset,
! regbuf + DEPRECATED_REGISTER_BYTE (lo.reg) + lo.reg_offset,
lo.len);
if (hi.len > 0)
memcpy (valbuf + hi.buf_offset,
! regbuf + DEPRECATED_REGISTER_BYTE (hi.reg) + hi.reg_offset,
hi.len);
}
--- 4696,4707 ----
return_value_location (valtype, &hi, &lo);
memcpy (valbuf + lo.buf_offset,
! regbuf + DEPRECATED_REGISTER_BYTE (NUM_REGS + lo.reg) + lo.reg_offset,
lo.len);
if (hi.len > 0)
memcpy (valbuf + hi.buf_offset,
! regbuf + DEPRECATED_REGISTER_BYTE (NUM_REGS + hi.reg) + hi.reg_offset,
hi.len);
}
*************** mips_o64_extract_return_value (struct ty
*** 4715,4726 ****
return_value_location (valtype, &hi, &lo);
memcpy (valbuf + lo.buf_offset,
! regbuf + DEPRECATED_REGISTER_BYTE (lo.reg) + lo.reg_offset,
lo.len);
if (hi.len > 0)
memcpy (valbuf + hi.buf_offset,
! regbuf + DEPRECATED_REGISTER_BYTE (hi.reg) + hi.reg_offset,
hi.len);
}
--- 4715,4726 ----
return_value_location (valtype, &hi, &lo);
memcpy (valbuf + lo.buf_offset,
! regbuf + DEPRECATED_REGISTER_BYTE (NUM_REGS + lo.reg) + lo.reg_offset,
lo.len);
if (hi.len > 0)
memcpy (valbuf + hi.buf_offset,
! regbuf + DEPRECATED_REGISTER_BYTE (NUM_REGS + hi.reg) + hi.reg_offset,
hi.len);
}