This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[commit] Patch for mips_o64_return_value to fix calling functions by hand (additional patch)


On Friday 05 May 2006 13:10, Daniel Jacobowitz wrote:
> Aside: The comment below the one you're deleting was written well
> before GCC 3.4, in particular http://gcc.gnu.org/gcc-3.4/mips-abi.html. 
> So the FIXME is probably fixed for o32 now.  And this is now an o64
> only function, so that comment could be deleted entirely.

OK, I added that to the change.

> > 2006-05-02  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.
> 
> OK.

Checked in now.

-Fred

============================================================================

  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.

 
Index: mips-tdep.c
===================================================================
RCS file: /cvs/src/src/gdb/mips-tdep.c,v
retrieving revision 1.390
diff -u -p -r1.390 mips-tdep.c
--- mips-tdep.c	5 May 2006 17:50:33 -0000	1.390
+++ mips-tdep.c	5 May 2006 18:02:59 -0000
@@ -3719,26 +3719,9 @@ mips_o64_push_dummy_call (struct gdbarch
 		     big endian targets.
 
 		     It does not seem to be necessary to do the
-		     same for integral types.
+		     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.  */
-
-		  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))


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]