aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFred Fish <fnf@specifix.com>2006-05-05 18:04:04 +0000
committerFred Fish <fnf@specifix.com>2006-05-05 18:04:04 +0000
commit401835eb9ca4a19ca83d6fe120e14f3d3354437e (patch)
treeb9bee367abfc941edfe7a82fd3f57fafb411fc34
parent7a076fd259bad195b86f1acc207993d342997cf1 (diff)
downloadgdb-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/ChangeLog5
-rw-r--r--gdb/mips-tdep.c21
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))