[RFA] mips_push_arguments gdbarch-ified
Andrew Cagney
ac131313@ges.redhat.com
Fri Aug 9 19:36:00 GMT 2002
> Andrew Cagney wrote:
>
>>
>
>> > These changes fix 16 testsuite failures, based in the Irix native
>> > compiler running with -n32 (and produce no regressions for -o32).
>
>>
>> Yes, with tweaks.
>>
>> General comment. You may want to consider restructuring the function to
>> read:
>>
>> for (argument in arguments)
>> for (argument broken down in to 8 byte chunks)
>> if (fp argument && fnpreg <= num fp arg regs)
>> write argument chunk to fp register
>> else if (!fp argument && reg <= num arg regs)
>> write chunk (carefully aligned) to gp register
>> else
>> write chunk to (carefully aligned) memory
>
>
> OK, I've checked in, with all of your tweaks except for the above.
> Come on, you can't ask me to restructure the whole function just
> to get what was originally a 5-line change in!!! ;-)
If you haven't already, look through the document:
http://techpubs.sgi.com/library/tpl/cgi-bin/getdoc.cgi?coll=0650&db=bks&srch=&fname=/SGI_Developer/Mpro_n32_ABI/sgi_html/ch02.html
which Kevin cited. The above was based on that. With the introduction
of a new mips_n32n64_push_arguments() unction there is an oportunity to
start with a clean slate. To be honest, I think taking that oportunity
will make getting this working much easier! :-)
> As it is, I've fixed a bunch of bugs that weren't mine,
> just to get this in. Diffs that went in attached below.
Oops, I didn't mean for you to touch the old mips_push_arguments() code.
That can be left to rot.
> 2002-08-09 Michael Snyder <msnyder@redhat.com>
>
> * mips-tdep.c (ROUND_DOWN, ROUND_UP): Move to global scope.
> (mips_push_arguments): Correct some comments. Use paddr_nz
> for printing addresses in debug output. Replace static
> allocation using MAX_REGISTER_RAW_SIZE with alloca.
> (mips_n32n64_push_arguments): New function, cloned from
> mips_push_arguments and tuned for the n32/n64 ABI.
> (mips_push_register): Buffer needs dynamic allocation.
> (mips_print_register): Ditto.
> (do_gp_register_row): Ditto.
> (mips_store_return_value): Ditto.
> (mips_gdbarch_init): Set gdbarch_push_arguments per ABI.
ok, thanks
Andrew
More information about the Gdb-patches
mailing list