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

Kevin Buettner kevinb@redhat.com
Wed Jul 31 15:40:00 GMT 2002


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 ||



More information about the Gdb-patches mailing list