This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
[RFA] mips_push_arguments(): Make O64 ABI test explicit
- From: Kevin Buettner <kevinb at redhat dot com>
- To: ac131313 at redhat dot com
- Cc: gdb-patches at sources dot redhat dot com
- Date: Wed, 31 Jul 2002 14:04:52 -0700
- Subject: [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 ||