This is the mail archive of the gdb-patches@sources.redhat.com 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]

[RFA] mips_push_arguments(): Make O64 ABI test explicit


Now that mips-tdep.c defines another ABI such that

    mips_default_saved_regsize == 8,

it becomes necessary to revise one of the conditions in
mips_push_arguments().

The comment above the test in question says:

		     ...
		     Also don't do this adjustment on EABI and O64
		     binaries.
		     ...

I believe that the expression ``MIPS_SAVED_REGSIZE < 8'' was being used
to test to see if the O64 ABI was being used.  I've changed the test
so that it explicitly checks the tdep struct for the O64 ABI instead.

This patch fixes the following failures for the N64 ABI:

FAIL: gdb.base/call-ar-st.exp: print print_small_structs, pattern 4
FAIL: gdb.base/call-ar-st.exp: print print_small_structs from print_long_arg_list, pattern 4

Okay to commit?

	* mips-tdep.c (mips_push_arguments): Don't assume that
	``MIPS_SAVED_REGSIZE < 8'' means that the o64 abi is in use.
	Instead, test for it explicitly.

Index: mips-tdep.c
===================================================================
RCS file: /cvs/src/src/gdb/mips-tdep.c,v
retrieving revision 1.85
diff -u -p -r1.85 mips-tdep.c
--- mips-tdep.c	31 Jul 2002 20:26:49 -0000	1.85
+++ mips-tdep.c	31 Jul 2002 20:48:49 -0000
@@ -2615,7 +2615,7 @@ mips_push_arguments (int nargs,
 		     such and GDB gets tweaked accordingly.  */
 
 		  if (!MIPS_EABI
-		      && MIPS_SAVED_REGSIZE < 8
+		      && tdep->mips_abi != MIPS_ABI_O64
 		      && TARGET_BYTE_ORDER == BFD_ENDIAN_BIG
 		      && partial_len < MIPS_SAVED_REGSIZE
 		      && (typecode == TYPE_CODE_STRUCT ||


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