Approved by Daniel Jacobowitz <drow@false.org>
authorFred Fish <fnf@specifix.com>
Fri, 5 May 2006 18:04:04 +0000 (18:04 +0000)
committerFred Fish <fnf@specifix.com>
Fri, 5 May 2006 18:04:04 +0000 (18:04 +0000)
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.

gdb/ChangeLog
gdb/mips-tdep.c

index 8ede9c90578a117d9daf20526ddd695a307947de..7b146dfc2159d8640ca60cc4001c485fdcb5153f 100644 (file)
@@ -1,3 +1,8 @@
+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
index 48e926f4b87b8e05fc794430a20e36ffa67df96d..43782062ebe06ba833abbb14f5e3df60a57a4efb 100644 (file)
@@ -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))