[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