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]

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


Kevin Buettner wrote:
> 
> 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.

Kevin, 

This change makes things worse for N32.  I haven't tested
N64 yet.  I think we're gonna have to look at these lines
from the perspective of all 3 (6) abis.





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