From 7aeecd6847f13b9a1e4c9d87516bd61af1b57af9 Mon Sep 17 00:00:00 2001 From: fnf Date: Fri, 5 May 2006 18:04:04 +0000 Subject: [PATCH] Approved by Daniel Jacobowitz 2006-05-06 Fred Fish * mips-tdep.c (mips_o64_push_dummy_call): Left shift big endian structs or unions independent of ABI register size. --- gdb/ChangeLog | 5 +++++ gdb/mips-tdep.c | 21 ++------------------- 2 files changed, 7 insertions(+), 19 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 8ede9c9057..7b146dfc21 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,10 @@ 2006-05-06 Fred Fish + * 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 + * 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 48e926f4b8..43782062eb 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)) -- 2.11.0