[PATCH] MIPS objdump: Recognize o64 ABI names
Maciej W. Rozycki
macro@orcam.me.uk
Wed Feb 26 11:52:11 GMT 2025
On Sat, 22 Feb 2025, Maciej W. Rozycki wrote:
> > With the recent addition of both EABIs, this completes support for the standard
> > ABI options (ABI-breaking options such as -modd-spreg or -mabi=32 -mfp64
> > notwithstanding). The names have been verified against GCC's usage of the
> > registers. Notably, the only(?) documentation that defines the o64 ABI at
> >
> > https://gcc.gnu.org/projects/mipso64-abi.html
Yes, this is the only document. See:
<https://inbox.sourceware.org/gcc-patches/200404022313.i32NDcnJ030115@sirius.codesourcery.com/>
for its origin.
> > appears to contain a mistake w.r.t. floating-point arguments. In particular:
> >
> > > If the first and second arguments floating-point arguments to a function are
> > > 32-bit values, they are passed in $f12 and $f14.
> >
> > This does not happen in GCC's implementation of the ABI; a pair of single-float
> > arguments are still passed in $f12 and $f13, the same as when one or both of the
> > arguments are double-precision floats. The registers $f12, $f13 and $f14 have
> > been named $fa0, $fa1 and $ft10 to match the implementation.
>
> The ABI was amended in GCC 4.0.0 with commit b11a9d5f3f90 back in 2004:
>
> (mips_arg_info): Don't allow fpr_p to affect the register or
> stack alignment. Remove o64 silliness.
>
> with the quirk IMHO rightfully referred to as "silliness". So be it, we
> set the standard for o64. I think I might be able to fix the web page if
> I remember/chase how to do it.
Now fixed.
Maciej
More information about the Binutils
mailing list