diff options
author | Fred Fish <fnf@specifix.com> | 2006-05-05 18:04:04 +0000 |
---|---|---|
committer | Fred Fish <fnf@specifix.com> | 2006-05-05 18:04:04 +0000 |
commit | 401835eb9ca4a19ca83d6fe120e14f3d3354437e (patch) | |
tree | b9bee367abfc941edfe7a82fd3f57fafb411fc34 | |
parent | 7a076fd259bad195b86f1acc207993d342997cf1 (diff) | |
download | gdb-401835eb9ca4a19ca83d6fe120e14f3d3354437e.zip gdb-401835eb9ca4a19ca83d6fe120e14f3d3354437e.tar.gz gdb-401835eb9ca4a19ca83d6fe120e14f3d3354437e.tar.bz2 |
Approved by Daniel Jacobowitz <drow@false.org>
2006-05-06 Fred Fish <fnf@specifix.com>
* mips-tdep.c (mips_o64_push_dummy_call): Left shift big endian
structs or unions independent of ABI register size.
-rw-r--r-- | gdb/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/mips-tdep.c | 21 |
2 files changed, 7 insertions, 19 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 8ede9c9..7b146df 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,10 @@ 2006-05-06 Fred Fish <fnf@specifix.com> + * mips-tdep.c (mips_o64_push_dummy_call): Left shift big endian + structs or unions independent of ABI register size. + +2006-05-06 Fred Fish <fnf@specifix.com> + * mips-tdep.c (mips_o64_return_value): Replace stub that always returned RETURN_VALUE_STRUCT_CONVENTION with a real function. diff --git a/gdb/mips-tdep.c b/gdb/mips-tdep.c index 48e926f..4378206 100644 --- a/gdb/mips-tdep.c +++ b/gdb/mips-tdep.c @@ -3719,26 +3719,9 @@ mips_o64_push_dummy_call (struct gdbarch *gdbarch, struct value *function, big endian targets. It does not seem to be necessary to do the - same for integral types. - - Also don't do this adjustment on O64 binaries. - - cagney/2001-07-23: gdb/179: Also, GCC, when - outputting LE O32 with sizeof (struct) < - mips_abi_regsize(), generates a left shift as - part of storing the argument in a register a - register (the left shift isn't generated when - sizeof (struct) >= mips_abi_regsize()). Since - it is quite possible that this is GCC - contradicting the LE/O32 ABI, GDB has not been - adjusted to accommodate this. Either someone - needs to demonstrate that the LE/O32 ABI - specifies such a left shift OR this new ABI gets - identified as such and GDB gets tweaked - accordingly. */ + same for integral types. */ - if (mips_abi_regsize (gdbarch) < 8 - && TARGET_BYTE_ORDER == BFD_ENDIAN_BIG + if (TARGET_BYTE_ORDER == BFD_ENDIAN_BIG && partial_len < mips_abi_regsize (gdbarch) && (typecode == TYPE_CODE_STRUCT || typecode == TYPE_CODE_UNION)) |